Skip to content

Navigation Menu

Sign in
Sign up

2. Installatie en basis configuratie

tomvandepoel3 edited this page Jul 31, 2026 · 23 revisions

Vereisten

Voor een correcte werking van DAO zijn de volgende vereisten van toepassing:

Hardware

  • Ondersteunde architecturen: arm64, amd64, (削除) i386 (削除ここまで)
  • Minimale systeemvereisten:
    • Raspberry Pi 4 of vergelijkbare hardware (voor arm64)
    • Intel 64-bit processor (voor amd64)
    • (削除) Intel 32-bit processor (voor i386) (削除ここまで)*
    • Minimaal 2 GB RAM
    • Minimaal 10 GB vrije opslagruimte

Let op: *Vanaf versie 202570 ondersteunt dao geen machines met i386 architectuur meer

Software

  • Home Assistant geïnstalleerd en operationeel
  • Docker (indien niet via Home Assistant geïnstalleerd)
  • Python 3.9+ (voor handmatige installatie)
  • Toegang tot NordPool of Entsoe API's voor dynamische energieprijzen
  • Meteoserver API voor weersvoorspellingen

Installatie-instructies

Add-on binnen Home Assistant

DAO wordt geïnstalleerd als een community add-on voor Home Assistant. Volg deze stappen:

  1. Open Home Assistant en ga naar Instellingen.
  2. Klik op Add-ons en vervolgens op Add-on shop (vanaf versie 2026.2 klik op Apps en vervolgens rechtsonder op Install app).
  3. Open het drie-puntjes menu rechtsboven en kies Repositories.
  4. Voeg de repository toe: https://github.com/corneel27/day-ahead/
  5. Klik op Toevoegen en wacht enkele seconden.
  6. Vernieuw de pagina (F5) en zoek de DAO add-on/app in de lijst.
  7. Klik op de add-on/app en selecteer Installeer.
  8. Wacht tot de installatie is voltooid (afhankelijk van je processor kan dit enkele minuten duren).
  9. Start de add-on/app en open het dashboard via de zijbalk of de knop Open web-ui.

Als de add-on/app met succes is geinstalleerd krijg je het volgende scherm: img_start.png
Dat is de informatie-pagina van de add-on/app. Je hebt bovenin 4 menu-opties:

  • Informatie: Hiermee ga je naar de informatiepagina
  • Documentatie: Hiermee krijg je deze documentatie te zien
  • Configuratie: Hiermee kun je de netwerk-poort van het dashboard wijzigen
  • Logboek: Hiermee krijg toegang tot de logging van de add-on. Handig om te zien wat er fout gaat als iets niet lukt.

Als je klikt op Toon in zijbalk kun je altijd makkelijk bij het dashboard van de add-on kunt komen. Je kunt ook bij het dashboard komen via de knop Open web-ui op het informatiescherm van de add-on/app.

Docker-container

Er zijn situaties waarin het gebruik van een Home Assistant add-on/app niet mogelijk of gewenst is. Bijvoorbeeld:

  • Home Assistant draait zelf in een Docker-container zonder HA OS of Supervisor.
  • Je wilt DAO los van Home Assistant draaien voor flexibiliteit en betere integratie met andere services.

In deze gevallen kun je DAO installeren als een zelfstandige Docker-container met Docker Compose.

Stap 1: Maak een docker-compose bestand Maak een nieuw bestand docker-compose.yaml aan met de volgende inhoud, of voeg dit toe aan je bestaande Docker Compose configuratie:

services:
 dao:
 container_name: dao
 image: ghcr.io/corneel27/<docker-image>:latest
 volumes:
 - /volume1/docker/homeassistant/config:/homeassistant
 - /volume1/docker/dao/data:/config
 ports:
 - <poortnummer>:5000
 restart: unless-stopped
 environment:
 - TZ=Europe/Amsterdam

Vervang <docker-image> door de juiste versie:

  • Productie-versie:

    • ghcr.io/corneel27/dao-amd64:latest
    • ghcr.io/corneel27/dao-aarch64:latest
    • ghcr.io/corneel27/dao-i386:latest*
  • Test-versie:

    • ghcr.io/corneel27/dao-amd64:testing
    • ghcr.io/corneel27/dao-aarch64:testing
    • ghcr.io/corneel27/dao-i386-addon:testing*

Let op 1: Gebruik "latest" om altijd de nieuwste stabiele versie te installeren. Wil je een specifieke versie? Vervang "latest" door bijvoorbeeld "2025.5.0.rc4c".

Let op 2: *Vanaf versie 202570 ondersteunt dao geen machines met i386 architectuur meer

Stap 2: Directories aanmaken Maak de eerste keer een directory aan waar DAO zijn data kan opslaan buiten de container. Bijvoorbeeld:

mkdir -p /volume1/docker/dao/data

Zorg ervoor dat:

  • Je in Volumes het juiste pad gebruikt naar je Home Assistant database.
  • Het pad naar de DAO data directory correct is ingesteld.

Stap 3: Poort instellen Standaard gebruikt DAO poort 5000, maar als die al bezet is (bijv. door DSM op een Synology NAS), kun je een andere poort instellen. Bijvoorbeeld:

ports:
 - "5009:5000"

Hiermee kun je DAO benaderen via http://<docker-ip>:5009.

Stap 4: Image ophalen Gebruik het volgende commando om het Docker-image op te halen:

docker-compose pull dao

Stap 5: Container starten Start de DAO-container met:

docker-compose up -d dao

Hierna kun je het DAO dashboard benaderen via:

http://<ip-adres docker>:<ingestelde poortnummer>

Bijvoorbeeld: http://192.168.1.123:5009

Configuratie en eerste stappen

Eerste keer starten

Na installatie (via Home Assistant of Docker) start je het DAO dashboard als volgt:

  1. Open het dashboard:

    • Via de zijbalk in Home Assistant (indien ingeschakeld).
    • Of via de knop Open web-ui.
    • Of rechtstreeks via http://<ip-adres>:<poortnummer> (standaard poort is 5000).
  2. Geen dashboard zichtbaar?

    • Controleer of poort 5000 vrij is. Zo niet, wijzig deze in de configuratie.
    • Bekijk het logboek in Home Assistant of gebruik docker logs dao om foutmeldingen te achterhalen.

💡 De eerste keer starten kan foutmeldingen opleveren omdat nog niet alle instellingen correct zijn ingevuld. Dat is normaal.


Basisconfiguratie via het dashboard

Zodra het dashboard bereikbaar is, stel je de eerste onderdelen in. Dat doe je via de menu-optie "Config" in het dashboard. Je krijgt dan een tekst-editor waarmee je de instellingen in json kunt aanpassen. Als je klaar bent met aanpassen klik je op het "vinkje" en als je een "geldige json" hebt ingetypt wordt het bestand opgeslagen.

Toegang tot Home Assistant

Als je de add-on via Home Assistant installeert hoeft hier niets ingesteld te worden. Dus:
"homeassistant": {},
Heb je de add-on via docker geïnstalleerd, dan moet je de volgende gegevens instellen zodat dao Home Assistent kan benaderen:

"homeassistant": {
 "host": "<ip adres waar home assistant draait>",
 "ip port": <poort nummer van home asssitant, standaard 8123>,
 "token": "<je long lived access token, eventueel opgenomen bij de secrets>"
 },

Toegang tot de database van Home Assistant

De database van Home Assistant wordt door DAO alleen gebruikt om er data uit te lezen voor berekeningen en voor rapportages. Er zullen door DAO geen data in worden weggeschreven.Er zijn drie mogelijke engines om te verbinden met de database van Home Assistant. Een en ander is afhankelijk van wat je in Home Assistant hebt ingesteld. Standaard is dit tegenwoordig sqlite:

  • sqlite: dan vul je het volgende in:
     "database ha": {
     "engine": "sqlite",
     "database": "home-assistant_v2.db",
     "db_path": "/homeassistant"
     }
    
  • mysql/mariabdb: zie de geavanceerde database configuratie
  • postgresql: zie de geavanceerde database configuratie

Toegang tot de database van day ahead optimizer

DAO heeft zijn eigen database om alle benodigde data in op te slaan en om mee te rekenen. DAO onderhoudt zelf deze database. Ook hier heb je de keuze uit drie engines: dezelfde die je ook toegang geven tot de database van Home Assistant.Je kunt (zeker als je begint) het beste dezelfde engine voor DAO gebruiken als de engine die jouw Home Assistant gebruikt. De default instellingen voor deze engines zijn als volgt:

  • sqlite
     "database da": {
     "engine": "sqlite",
     "db_path": "../data"
    },
    
  • mysql/mariabdb: zie de geavanceerde database configuratie
  • postgresql: zie de geavanceerde database configuratie

Dao herstarten voor toegang en aanmaken database's

Als je alles goed hebt ingevuld herstart je DAO (In Home assistant via het Informatiescherm van de add-on en klik op "Herstarten", of herstart de container mbo docker restart dao), zodat alle instellingen worden overgenomen. Controleer via het Logboek op de informatiepagina of je geen foutmeldingen krijgt tijdens het herstarten. Als alles goed is gegaan zie je in (het einde van) de logging de vermeldingen dat de data directory is aangemaakt, de tabellen zijn aangemaakt, de processen zijn gestart en dao luistert op de ingestelde poort.

Basisconfiguratie van databronnen

Voordat het programma kan gaan rekenen moet je eerst een aantal data verzamelen met name van meteogegevens, dynamische uur- of kwartieprijzen en je basisverbruik

Meteogegevens

DAO gebruik de metrogegevens van het bedrijf Meteoserver. Dit betreft met name de voorspelde zonopbrengst. Voor gebruik van hun api heb je een key nodig. Je genereert deze key (token) als volgt:

  • ga naar de website van meteoserver: https://meteoserver.nl/login.php
  • registreer je als gebruiker (onthoudt je inlogcode en je wachtwoord)
  • daarna klik je op Account, tabje "API Beheer" en je ziet je key staan
    Opmerking: je kunt gratis maximaal 500 dataverzoeken per maand doen, we doen er maar maximaal 8 per dag = max 248 per maand.
  • Je vult die api-key in in de configuratie. Daar staat nu:
    "meteoserver-key": "!secret meteoserver-key",
    Dat betekent dat je key wordt opgeslagen in het bestand "secrets.json"
  • Je klikt boven in het submenu (onder "Config") op "secrets"
  • En je vult bij "meteoserver-key" jouw api key in:
    "meteoserver-key": "<api key>",
  • Klik op het vinkje om je aanpassing op te slaan.
  • Om te testen of het geheel werkt: selecteer in het dashboard het Run-menu:
    meteo_1.png
  • Na ca 30 seconden wordt - als het goed gaat - de logging van deze operatie getoond:
    meteo_2.png

Dynamische uur- of kwartierprijzen

Vanaf 1 oktober 2025 zijn er leveranciers die werken met kwartierprijzen, andere leveranciers werken (voorlopig?) nog met uurprijzen. DAO ondersteunt beide. Je geeft bij de instellingen submenu "interval" aan of je werkt met uurprijzen: "interval": "1hour", (default) of met kwartieprijzen: "interval": "15min", Ook het ophalen van dynamische prijzen (day ahead prices) stel je in via de configuratie, submenu "options", onderdeel prices
prices_1.png
Daar is alles al ingevuld, maar je kunt het aanpassen aan jouw situatie. De belangrijkste onderdelen zijn:
* source day ahead: waar haal je de data vandaan: nordpool is een goede eerste keuze
* energy taxes consumption: energiebelasting (euro/kWh, ex BTW) bij afname
* energy taxes production: energiebelasting bij teruglevering (euro/kWh, ex BTW)
* cost supplier consumption: kosten leverancier voor levering (euro/kWh, ex BTW)
* cost supplier production; teruggave leverancier bij teruglevering (euro/kWh, ex BTW)
* vat consumption: btw in procenten bij afname
* vat production: btw in procenten bij teruglevering
* multiplier_consumption: vermenigvuldingsfactor voor het kale afname tarief, default waarde = 1
* multiplier_production: vermenigvuldingsfactor voor het kale teruglevering tarief, default waarde = 1
De meeste onderdelen zijn voorzien van meer regels met een datum. Deze data zijn een begindatum van een nieuw tarief of een nieuwe waarde. De oude waarden zijn belangrijk voor historische berekeningen. We kunnen dit onderdeel ook weer testen via het Run-menu van het dashboard: prices_2.png
Daar is nu eerst een vanaf datum ingevuld, maar deze kun je leeg laten. In dat geval zal voor 12 uur de data van vandaag worden opgehaald en vanaf één uur zullen de data van morgen worden opgehaald (als ze beschikbaar zijn).
Dit resulteert dan (als alles goed gaat) in de volgende logging:
prices_3.png
De gebruikt formules voor de berekening van een tarief zien er als volgt uit:
tarief = (epex_tarief x multiplier + energy_taxes + cost_supplier) x (100 + vat)/100

Basisverbruik

Tenslotte heeft het programma je basisverbruik (=baseload) nodig. Je basisverbruik is het verbruik van je woning voor 24 uur voor alle onderdelen die niet door het programma kunnen worden gestuurd, zoals lampen, koelkast, koken, servers, routers, vijver(s), aquarium enz.
Voor een woning met weinig extra verbruikers ziet het basisverbruik (=baseload) met 24 waarden (voor elk uur van de dag een, te beginnen met het uur van 0:00 tot 1:00) er ongeveer zo uit:

 "baseload": [
 0.14,
 0.38,
 0.26,
 0.42,
 0.15,
 0.12,
 0.13,
 0.15,
 0.23,
 0.26,
 0.31,
 0.32,
 0.31,
 0.23,
 0.26,
 0.21,
 0.21,
 0.54,
 0.26,
 0.26,
 0.22,
 0.19,
 0.18,
 0.16
 ],

Je kunt deze getallen aanpassen, zodat ze ongeveer overeenkomen met jouw basisverbruik. DAO kan deze baseload ook zelf berekenen. Dat kan pas nadat dao voor een bepaalde periode je energie verbruik heeft kunnen bijhouden. Zie ....

In principe is DAO nu klaar voor gebruik. Je kunt nu je energiebronnen configureren waarvoor DAO de berekeningen moet maken. Je kunt de strategie bepalen op basis van je gewenste optimalisatiedoel. En je kunt configureren op welke momenten geautomatiseerd zijn taken moet uitvoeren. Zie hiervoor het volgende hoofdstuk configuratie

PV-productie voorspellen

Vanaf versie 2026010 is DAO voorzien van de mogelijkheid om je PV-productie op twee manieren te voorspellen:

  1. De rekenkundige methode waarbij met behulp van de helling, de orientatie, de capaciteit en de yield de uurlijkse productie wordt berekent met behulp van de voorspelde globale straling in dat uur. Deze methode is beschreven bij de solar-definities.
  2. Een methode gebaseerd op machine learning. Hierbij wordt behulp van historische data van de productie van je panelen (tot maximaal 3 jaar terug) en meetgegevens van de globale straling en andere parameters (zoals uur van de dag, weeknummer, seizoen enz) van een knmi-weerstation bij jou in de buurt een "model" getraind dat DAO in staat stelt de uurlijkse productie van je panelen te voorspellen aan de hand van dezezz voorspelling van de globale straling. Deze tweede methode is uitgebreid getest en gefinetuned en is vanaf 2026010 beschikbaar in de productieversie.

Configuratie

Je maakt per solar-device (zowel ac als dc-gebonden) een keuze welke voorspellingsmethode je gebruikt. De ml-voorspellng gaat alleen werken er minimaal voor een half jaar meetgegevens van dat solar-device beschikbaar zijn in Home Assistant. De keuze voor de methode gebeurt door onderstaande twee regels op te nemen in de betreffende solar-definitie:

 "ml_prediction": "true",
 "entities sensors": ["sensor.solaredge_woning_ac_energy_kwh"],

Zet je ml_prediction op true dan kies je voor dit solar device voor de ml-voorspeller, zet je hem op false of laat je de regel weg dan wordt de rekenkundige methode van dao gebruikt om je pv productie te voorspellen. Zet je "ml_prediction" op true dan moet bij "entities sensors" een of meer sensoren invullen waarmee je de productie van dat device in Home Assiatnt registreert (dezelfde sensor(en), die je ook gebruikt in het Energy Dashboard van Home Assistant) Vanaf versie 2026年5月2日 kun je in je solar-definitie een start-datum opnemen (ml_training_start_date). Die ia van belang als je binnen de laatste 3 jaar de configuratie van je pv-installatie hebt gewijzigd. Die zet je dan op een datum van waaraf de configuratie weer stabiele data produceert om het model mee te trainen.

ML modellen trainen

Als je voor een of meer solar-devices ml_prediction hebt aangezet is deze pas bruikbaar als je daarvoor een model hebt getraind. Je kunt voor de geconfigureerde solar-devices ml-modellen op twee manieren trainen:

  1. Handmatig via het run-menu, met de nieuwe optie: ML modellen trainen
  2. Via de scheduler met een extra-regel: bijvoorbeeld: "2240": "train_ml_predictions", Het resulaat van een training is een model dat wordt opgeslagen in de data-directory, zodat het steeds bruikbaar is wanneer DAO nieuwe pv-voorspellingen nodig heeft. Train je het model opnieuw (of via de scheduler dagelijks) dan wordt steeds alleen het laatste berekende model bewaard en gebruikt voor de nieuwe voorspellingen.

Van elke training wordt een logging gemaakt. Bijvoorbeeld:

2026年01月16日 23:04:08 info: Day Ahead Optimalisering versie: 2026010
2026年01月16日 23:04:08 info: Day Ahead Optimalisering gestart op: 16-01-2026 23:04:08
2026年01月16日 23:04:08 info: Day Ahead Optimalisatie gestart: 16-01-2026 23:04:08 taak: train_ml_predictions
2026年01月16日 23:04:08 info: KNMI-weerstation: 275 DEELEN
2026年01月16日 23:04:08 info: Er zijn knmi-data aanwezig vanaf 2018年12月31日 01:00:00 tot 2026年01月15日 00:00:00
2026年01月16日 23:04:08 info: Er zijn geen aanvullende knmi-data beschikbaar vanaf 2026年01月15日 00:00:00-2026年01月16日 23:04:08.286771
2026年01月16日 23:04:12 info: Starting solar prediction model for woning training...
2026年01月16日 23:04:12 info: Loading and processing data...
2026年01月16日 23:04:14 info: Merging weather and solar data...
2026年01月16日 23:04:14 info: Merged dataset: 25872 records
2026年01月16日 23:04:14 info: Date range: 2023年02月02日 00:00:00+00:00 to 2026年01月14日 23:00:00+00:00
2026年01月16日 23:04:14 info: Detecting outliers...
2026年01月16日 23:04:14 info: Outliers removed: 591 (2.3%)
2026年01月16日 23:04:14 info: Clean dataset: 25281 records
2026年01月16日 23:04:14 info: Training samples: 20224
2026年01月16日 23:04:14 info: Testing samples: 5057
2026年01月16日 23:04:14 info: Tune hyperparameters: True
2026年01月16日 23:04:14 info: Tuning hyperparameters...
2026年01月16日 23:04:14 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026年01月16日 23:04:23 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026年01月16日 23:04:23 info: Training final model...
2026年01月16日 23:04:23 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026年01月16日 23:04:23 info: Model training van woning complete
2026年01月16日 23:04:23 info: Model saved to: ../data/prediction/models/woning.pkl
2026年01月16日 23:04:23 info: Training MAE: 0.0789 kWh
2026年01月16日 23:04:23 info: Testing MAE: 0.0775 kWh
2026年01月16日 23:04:23 info: Training R2: 0.9549
2026年01月16日 23:04:23 info: Testing R2: 0.9474
2026年01月16日 23:04:23 info: Sorted features:
2026年01月16日 23:04:23 info: 1. irradiance: 0.807
2026年01月16日 23:04:23 info: 2. quarter: 0.057
2026年01月16日 23:04:23 info: 3. hour: 0.041
2026年01月16日 23:04:23 info: 4. week_nr: 0.040
2026年01月16日 23:04:23 info: 5. month: 0.025
2026年01月16日 23:04:23 info: 6. season: 0.022
2026年01月16日 23:04:23 info: 7. temperature: 0.005
2026年01月16日 23:04:23 info: 8. day_of_week: 0.004

Korte toelichting:
Het programma heeft historische meetgegevens van de globale straling nodig. Die haalt het op bij het KNMI, dankzij de coordinaten van je huis in HA kan DAO het dichtstbijzijnde weerstation bepalen en daarvan de meetgegevens ophalen. Het programma haalt uurwaarden van de pv-productie op uit de HA database tot maximaal 3 jaar terug of korter als er niet meer aanwezig zijn. Daarmee wordt het model getraind. Het programaa verdeelt willekeurig de waarnemingen in twee sets: de training-set (ca 80%) en de test-set (de overige 20%) Met de training-set wordt het model getraind en met de test-set wordt gecontroleerd of het model bruikbaar is. Het programma berekent hoe nauwkeurig het model in staat is om de productie te voorspellen. Met de traning-set: R2: 0.9549 Met de test-set: R2: 0.9474 De R2-score is een maat hoe nauwkeurig de berekende voorspellingen overeenkomen met de waarnemeingen: hoe dichter bij 1 hoe beter. We zien dat in de test-set het verbruik ietsje slechter voorspelt dan de trainingset, maar nog steeds is 0,95 (afgerond) een hele goede score, zodat het model goed bruikbaar is. Als je de modellen getraind hebt worden ze direct gebruikt voor de pv-voorspelling in de DAO-optimaliseringsberekening. Mocht jouw score (nog) te laag zijn dan kunt je ml_prediction weer op "false" zetten en dan gebruikt DAO weer de rekenkundige methode.

Controle van het model via tabel en grafiek

Via het dashboard,menu-optie Solar: Een tabel solar_table.png
Een grafiek
solar_graph.png

Installatie zelf gecompileerde mip-binaries

In sommige situaties (bijvoorbeeld wanneer je HA in een VM draait) geven de meegeleverde binaries bij de MIP-module problemen met een foutmelding of de berekening blijft hangen. In die situatie kan het zelf compileren van de binaries op de machine met de problemen een oplossing bieden.

Wat moet je doen: In de app(add-on) pagina van DAO ga je naar "Configuratie". Daar vind je dit scherm: [画像:afbeelding] Zet "use_self_compiled_miplib" op "aan". Klik op "Bewaar" of "Save". Bevestig de herstart van de app (add-on). Nu worden de binaries gecompileerd, dat kan afhankelijk van de snelheid van je systeem 5 tot ca 30 minuten duren. Om dit proces te volgen: ga ja naar "Logboek" Als het compileren klaar is zijn er twee dingen gebeurt:

  • de nieuwe binaries zijn geinstalleerd.
  • er staat een kopie van de binaries in je /config map, zodat bij een update van DAO deze weer worden gebruikt en je niet opnieuw hoeft te compileren.

Probleemoplossing

Hier zijn enkele veelvoorkomende installatieproblemen en oplossingen:

  • Geen toegang tot het dashboard → Controleer of poort 5000 vrij is of wijzig deze.
  • Foutmeldingen bij eerste start → Controleer de instellingen en API-sleutels.
  • Add-on verschijnt niet in de lijst → Zorg ervoor dat de repository correct is toegevoegd en vernieuw de pagina.

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /