Day Ahead Optimizer is een add-on voor Home Assistant waarmee je je elektriciteitsverbruik en -productie kunt optimaliseren.
Het programma haalt voor de berekening de volgende zaken op:
met de naam "Mixed-Integer lineair Programming". Meer daarover kun je lezen op de
website die ook het algoritme en allerlei bijbehorende hulpmiddelen aanbiedt:
https://python-mip.com/
Deze implementatie berekent een optimale inzet van je thuisaccu('s), boiler, warmtepomp, pv, ev('s) en huishoudelijke apparatuur, waarbij naar keuze wordt gestreefd naar minimalisering van je kostenof naar minimalisering van je inkoop (nul op de meter) of
een combinatie van beide. Daarvoor worden de volgende zaken berekend:
Aan de hand van de gekozen strategie kan met behulp van het algoritme de meest optimale setting van al deze variabelen worden berekend. Dit zijn:
Het geheel kan grafisch worden weergegeven:
/f/image/V3j6tXKKliBiozrMHpYFJFcP.png?f=fotoalbum_large)
Deze addon is open-source, staat op github en kan door iedereen worden geïnstalleerd:
https://github.com/corneel27/day-ahead
Dit topic is o.a. bedoeld voor de volgende situaties:
op te geven (dus met #addon erachter).
Belangrijk om te weten:
Dat kan met docker compose.
Maak een docker-compose bestand aan met de volgende inhoud, of voeg dit toe aan je bestaande docker compose bestand:
Toelichting: het build deel bouwt een image op, op basis van de GitHub repository (je hoeft zelf dus niets te downloaden). Hiervoor moet je 3 argumenten instellen die de Dockerfile gebruikt:
Je runt het image in een container met:
Of in een keer:
Hierna kun je dao benaderen via <ip-adres docker>:<ingestelde poortnummer> (bijvoorbeeld 192.168.1.123:5009)
Volg verder de handleiding vanaf het kopje instellingen in DOCS.md op GitHub. Belangrijk hierbij is het instellen van de toegang tot homeassistant in de config:
Er wordt in de handleiding verder verwezen naar herstarten en logboek. Dat moet je uiteraard doen in je eigen docker omgeving (je kunt daarvoor portainer gebruiken).
Het programma haalt voor de berekening de volgende zaken op:
- de uurlijkse day ahead prijzen van vandaag en morgen
- de weersvoorspelling voor het bereken van de opbrengst van de zonnepanelen en de warmtebehoefte van de warmtepomp.
met de naam "Mixed-Integer lineair Programming". Meer daarover kun je lezen op de
website die ook het algoritme en allerlei bijbehorende hulpmiddelen aanbiedt:
https://python-mip.com/
Deze implementatie berekent een optimale inzet van je thuisaccu('s), boiler, warmtepomp, pv, ev('s) en huishoudelijke apparatuur, waarbij naar keuze wordt gestreefd naar minimalisering van je kostenof naar minimalisering van je inkoop (nul op de meter) of
een combinatie van beide. Daarvoor worden de volgende zaken berekend:
- uit de prognose van het weer (globale straling) per uur wordt een voorspelling berekend van de productie van je
- zonnepanelen
- met de tarieven van je dynamische leverancier (incl. opslag, belastingen en btw) worden per uur de kosten
- en opbrengsten van het verbruik c.q. teruglevering berekend
- m.b.v. de karakteristieken van je accu's worden per uur het laad- c.q. ontlaadvermogen berekend
- wanneer moet je elektrische auto worden geladen
Aan de hand van de gekozen strategie kan met behulp van het algoritme de meest optimale setting van al deze variabelen worden berekend. Dit zijn:
- per uur verbruik en kosten op de inkoopmeter
- per uur teruglevering en opbrengst op de inkoopmeter
- per uur laad- cq ontlaadvermogen van de thuisaccu('s) en de SoC aan het einde van het uur
- tijdstip waarop de boiler moet worden opgewarmd
- uurvakken waarin de elektrische auto moet worden geladen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| 2025-03-31 23:00:02 info: Berekende prognoses: uur bat_in bat_out cons prod base boil wp ev pv_ac cost profit b_tem mach 23.00 0.00 2.40 0.00 2.24 0.15 0.00 -0.00 0.00 0.00 0.00 -0.61 51.00 0.00 0.00 0.00 2.40 0.00 2.23 0.17 0.00 -0.00 0.00 0.00 0.00 -0.60 50.50 0.00 1.00 0.00 0.03 0.37 0.00 0.40 0.00 -0.00 0.00 0.00 0.10 -0.00 50.00 0.00 2.00 0.00 0.00 0.18 0.00 0.18 0.00 -0.00 0.00 0.00 0.05 -0.00 49.50 0.00 3.00 0.00 0.00 2.13 0.00 0.50 0.00 -0.00 0.00 0.00 0.55 -0.00 49.00 1.62 4.00 0.00 0.00 0.94 0.00 0.15 0.00 0.04 0.00 0.00 0.24 -0.00 48.50 0.75 5.00 0.00 2.40 0.00 2.27 0.13 0.00 -0.00 0.00 0.00 0.00 -0.60 48.00 0.00 6.00 0.00 3.60 0.00 3.46 0.14 0.00 -0.00 0.00 0.00 0.00 -1.02 47.50 0.00 7.00 0.00 4.14 0.00 4.02 0.17 0.00 -0.00 0.00 0.05 0.00 -1.45 47.00 0.00 8.00 0.00 4.14 0.00 4.37 0.21 0.00 -0.00 0.00 0.44 0.00 -1.49 46.50 0.00 9.00 0.00 2.40 0.00 3.57 0.35 0.00 -0.00 0.00 1.52 0.00 -0.99 46.00 0.00 10.00 0.00 0.00 0.00 2.10 0.23 0.00 0.23 0.00 2.55 0.00 -0.51 45.50 0.00 11.00 0.00 0.00 0.00 2.94 0.21 0.00 0.30 0.00 3.45 0.00 -0.62 45.00 0.00 12.00 4.80 0.00 1.40 0.00 0.28 0.00 0.40 0.00 4.08 0.22 -0.00 44.50 0.00 13.00 4.80 0.00 1.08 0.00 0.26 0.00 0.50 0.00 4.47 0.13 0.00 44.00 0.00 14.00 4.80 0.00 2.88 0.00 0.38 1.07 -0.00 0.00 4.47 0.32 0.00 56.50 1.10 15.00 4.80 0.00 1.55 0.00 0.28 0.00 0.40 0.00 4.06 0.22 0.00 56.00 0.12 16.00 2.40 0.00 0.00 0.50 0.15 0.00 0.30 0.00 3.34 0.00 -0.10 55.50 0.00 17.00 0.00 0.00 0.00 1.44 0.56 0.00 0.30 0.00 2.30 0.00 -0.33 55.00 0.00 18.00 0.00 3.60 0.00 4.51 0.32 0.00 -0.00 0.00 1.23 0.00 -1.24 54.50 0.00 19.00 0.00 4.14 0.00 4.16 0.33 0.00 -0.00 0.00 0.35 0.00 -1.32 54.00 0.00 20.00 0.00 4.14 0.00 3.90 0.24 0.00 -0.00 0.00 0.00 0.00 -1.20 53.50 0.00 21.00 0.00 3.60 0.00 3.38 0.22 0.00 -0.00 0.00 0.00 0.00 -0.92 53.00 0.00 22.00 0.00 1.20 0.00 1.03 0.17 0.00 -0.00 0.00 0.00 0.00 -0.27 52.50 0.00 23.00 0.00 0.00 0.38 0.00 0.15 0.00 0.23 0.00 0.00 0.09 -0.00 52.00 0.00 Totaal 21.60 38.19 10.92 46.11 6.35 1.07 2.69 0.00 32.31 1.92 -13.26 3.60 |
Het geheel kan grafisch worden weergegeven:
/f/image/V3j6tXKKliBiozrMHpYFJFcP.png?f=fotoalbum_large)
Deze addon is open-source, staat op github en kan door iedereen worden geïnstalleerd:
https://github.com/corneel27/day-ahead
Dit topic is o.a. bedoeld voor de volgende situaties:
- primair: uitwisseling van ervaringen en tips van andere gebruikers
- problemen met het programma of vragen over het gebruik van de addonkunnen hier gesteld en beantwoord worden
- Er komt in juni nog een belangrijke update van DAO aan: overgang van uur naar kwartier waarden van de day-ahead prijzen. Ook de ervaringen daarmee kunnen we in het forum delen.
Testen
De test-versie installeer je door als repositorycode:
1
| https://github.com/corneel27/day-ahead#addon |
op te geven (dus met #addon erachter).
Belangrijk om te weten:
- Je installeert hiermee een tweede versie van DAO naast je "productie-versie"
- Geef de testversie een ander poort-nummer (bijv 5001) mee, dat kun je doen via "Configureer" op de informatiepagina van de addon.
- Na installatie kun je je instellingen en secrets kopiëren van je productie-versie naar je testversie, waarna je de testversie beter een keer herstart.
- Laat NOOIT de productie-versie en test-versie tegelijk rekenen of meteodata cq prijsdata ophalen, omdat dat mogelijk database-problemen en/of ha-problemen kan opleveren doordat tegelijkertijd dezelfde data worden opgeslagen/weggeschreven.
DAO installeren in een aparte container (geen addon).
Er zijn situaties waarin een addon van HA niet mogelijk of gewenst is. Bijv. HA draait zelf in een container en er is geen HA-OS en/of supervisor. Dan kan je DAO ook installeren als een aparte Docker-container.Dat kan met docker compose.
Maak een docker-compose bestand aan met de volgende inhoud, of voeg dit toe aan je bestaande docker compose bestand:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| dao: #bron: https://gathering.tweakers.net/forum/list_messages/2293338?data%5Bfilter_keywords%5D=docker container_name: dao build: context: https://github.com/corneel27/day-ahead.git#main:dao dockerfile: Dockerfile args: - BUILD_ARCH=amd64 - BUILD_FROM=ghcr.io/hassio-addons/debian-base/amd64:stable - BUILD_VERSION=<nummer laatste versie> tags: - "dao:latest" volumes: - /volume1/docker/homeassistant/config:/homeassistant - /volume1/docker/dao/data:/config ports: - <poortnummer>:5000 restart: unless-stopped environment: - TZ=Europe/Amsterdam |
Toelichting: het build deel bouwt een image op, op basis van de GitHub repository (je hoeft zelf dus niets te downloaden). Hiervoor moet je 3 argumenten instellen die de Dockerfile gebruikt:
- voor BUILD_ARCH moet je de processor invullen van je machine, momenteel worden alleen amd64 (=intel 64 bit), aarch64 (o.a. raspberry pi 4 en 5) en i386 (intel 32 bit)
- voor BUILD_FROM heb je ook weer de keuze uit:
* ghcr.io/hassio-addons/debian-base/aarch64:stable
* ghcr.io/hassio-addons/debian-base/amd64:stable
* ghcr.io/hassio-addons/debian-base/i386:stable - Voor BUILD_VERSION vul je de huidige versie van de GitHub repository van dao in.
- Volumes: Maak de eerste keer een directory voor dao aan waar dao zijn data kan opslaan buiten de container (bijvoorbeeld een subdirectory dao/data binnen je docker directory).
- Verwijs in het deel volumes naar het pad waar je home assistant database staat, en het pad waar je dao data directory staat. Doe dit in het deel voor de ":", het deel erna is de interne verwijzing binnen de container zelf
- Ports: als poort 5000 (de standaardpoort van dao) al is bezet voor DSM verander je hiermee de poort waarop je dao op kunt benaderen bijvoorbeeld 5009.
code:
1
| docker-compose build dao |
Je runt het image in een container met:
code:
1
| docker-compose up -d dao |
Of in een keer:
code:
1
| docker-compose up -d --build --force-recreate dao |
Hierna kun je dao benaderen via <ip-adres docker>:<ingestelde poortnummer> (bijvoorbeeld 192.168.1.123:5009)
Volg verder de handleiding vanaf het kopje instellingen in DOCS.md op GitHub. Belangrijk hierbij is het instellen van de toegang tot homeassistant in de config:
code:
1
2
3
4
5
| "homeassistant": { "ip adress": "<ip adres waar home assistant draait>", "ip port": <poort nummer van home asssitant, standaard 8123>, "token": "<je long lived access token>" }, |
Er wordt in de handleiding verder verwezen naar herstarten en logboek. Dat moet je uiteraard doen in je eigen docker omgeving (je kunt daarvoor portainer gebruiken).
[ Voor 42% gewijzigd door KC27 op 17-04-2025 14:24 ]
WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer