• hemertje
  • Registratie: Juli 2015
  • Laatst online: 22:44
Beekforel schreef op donderdag 7 mei 2026 @ 10:57:
@hemertje ik zie DAO en PID als twee losse zaken: als DAO 'Battery Balance' mode aanzet dan vertel ik mijn accu's dat ze NOM moeten draaien, als DAO dat niet aanzet dan gebruik ik de Battery Feed In waarde die ik verdeel over de accu's.

Wat ik overigens wel vind, gevoelsmatig, is dat DAO mijn batterij redelijk weinig in plant ofzo. Zou iemand een sanity check kunnen doen op mijn huidige config?


[...]
Hallo @Beekforel

Concrete implementatie-vragen om je werkende setup te begrijpen:
πŸ”Œ Hardware & stack
  1. Welke batterij(en) gebruik je en via welke HA-integratie? (zenSDK, Marstek, eigen MQTT?)
  2. Hoeveel inverters/units en wie verdeelt het gevraagde vermogen daarover?
  3. Hoe meet je P1 / grid power? (HomeWizard, DSMR, anders) en met welke update-frequentie?
🎯 NoM-implementatie tijdens Battery Balance
  1. Welke entity zet je in DAO config bij entity balance switch?
  2. Hoe vertel je je accu "NoM-modus aan"? Eigen firmware-feature, of HA-side regelaar (PID, P-only, andere)?
  3. Wat is de regelfrequentie van je NoM-loop? (1s, 5s, kwartier?)
  4. Welke entity is de actuator (input_number, number.set_value, MQTT publish)?
πŸ”„ Hand-over DAO ↔ Balance
  1. Wat gebeurt er op het moment dat DAO balance_switch op on zet?
    • Stop je een ander commando? Reset je iets?
  2. Wat gebeurt er bij balance_switch=off (terug naar Battery Feed In)?
    • Hoe voorkom je dat de NoM-controller nog napuft?
  3. Schrijft DAO set_power_feedin = 0 tijdens balance, of laat hij vorige waarde staan?
πŸ“Š Resultaten & tuning
  1. Hoe dichtbij 0W kom je gemiddeld op de meter tijdens balance? (KC27 haalt ~50-100W)
  2. Welke regelparameters gebruik je (Kp/Ki/Kd of P-band/step-size)?
  3. Hoe lang heeft het tunen geduurd en welke typische valkuilen ben je tegengekomen?
⚠️ Veiligheid & edge cases
  1. Hoe ga je om met EV-laden of grote loads die het systeem doen overschrijden?
  2. Wat doe je bij batterij vol/leeg terwijl balance nog actief is?
  3. Heb je een watchdog voor het geval DAO of de NoM-controller hangt?
πŸ“ Code/config
  1. Zou je je automation YAML of NodeRED-flow willen delen? (volledige hand-over logic)

Wil jeje grafiek over een hele dag tonen (laden β†’ balance β†’ ontladen β†’ balance overgangen) β€” dat onthult of hand-over schoon verloopt?

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal


  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 22:44
Bravo schreef op donderdag 7 mei 2026 @ 14:55:
[...]

Een andere strategie zou kunnen zijn dat je de NOM PID omvormt naar een XOM PID (X op de meter), waarbij je X laat varieren bij de verschillende toestanden van DAO. Zelf gebruik ik dit momenteel voor de PV installatie bij negatieve uren om terugschakelen van de batterij te voorkomen als de GRID aansluiting overbelast dreigt te raken. Dan schakelen de PV panelen een tandje bij.

Instelling: X = -8000 (35A aansluiting)

Voor DAO is er volgens mij ook een grid setpoint wat wordt berekend? (heb even niet de tijd om in de documentatie te duiken), deze zou je als X kunnen gebruiken voor het richtpunt van de Gielz integratie.
Hoi @Bravo

ook voor jou een aantal concrete implementatie-vragen over je XOM PID setup:
πŸ”Œ Hardware & stack
  1. Welke batterij/PV-installatie stuur je aan? (omvormer-merk, integratiemethode)
  2. Hoe meet je grid power? (P1, slimme meter, CT-clamps) en update-frequentie?
  3. Welke aansluiting heb je? (35A 3-fase = 24kW, of 1-fase?) (bevestiging van de βˆ’8000W limiet)
🎯 XOM PID-implementatie
  1. Welke PID-integratie gebruik je? (simple_pid_controller, eigen pyscript, NodeRED?)
  2. Hoe stuur je X dynamisch aan? (automation op DAO state-change, template, anders?)
  3. Wat is de regelfrequentie van je PID-loop?
  4. Welke entity is de actuator (batterij-setpoint, grid-target voor PV-omvormer)?
πŸ“Š X-bepaling per modus
  1. Welke concrete X-waarden gebruik je voor:
    • Laden (DAO positief feedin)
    • NoM / balance
    • Ontladen / dumpen
    • Anti-overbelasting (de βˆ’8000W case)
  2. Gebruik je DAO dao_set_power_feedin rechtstreeks als X? Of leid je X af uit andere sensors?
  3. Hoe ga je om met het verschil tussen batterij-setpoint (DAO) en grid-setpoint (XOM PID)? Bijv: DAO zegt "laad 2500W" maar er is ook 3000W zon β€” wat is je X dan?
πŸ”„ Hand-over tussen DAO-modi
  1. Laat je PID continu draaien of toggle je Auto Mode bij modus-wissel?
  2. Hoe demp je setpoint-sprongen bij kwartier-overgangen? (ramp, slew-rate, PID-integraal?)
  3. Reset je de I-term bij modus-wissel? Zo ja, hoe?
πŸ›‘οΈ Anti-overbelasting (PV-omvormer regelen)
  1. Hoe detecteert PV-omvormer dat hij moet bijschakelen? Krijgt hij een setpoint, of regelt PID hem zelf?
  2. Welke prioriteit heeft anti-overbelasting? (override aan alle andere modi?)
  3. Heb je het 35A-limiet ooit zien werken in praktijk? Hoe snel reageert de keten?
πŸ“Š Resultaten & tuning
  1. Hoe dichtbij X kom je gemiddeld op de meter? (P-band, RMS-fout)
  2. Welke regelparameters (Kp/Ki/Kd, windup protection)?
  3. Heb je oscillatie ervaren bij grote X-sprongen? Hoe opgelost?
πŸ“ Code/config
  1. Zou je je automation/template/PID-config YAML willen delen? Vooral de mode→X mapping logica is interessant.
  2. Heb je een dashboard-screenshot van een dag waar verschillende X-modi voorbij komen?

Belangrijkste vraag (vraag 9–10): Hoe overbrug je het feit dat DAO's dao_set_power_feedin een batterij-setpoint is, niet een grid-setpoint?

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:01

Beekforel

Is eigenlijk geen vis

Misschien wat minder ChatGPT gebruiken @hemertje, je eigen reacties beginnen ook aardig AI te lijken. :D

Ik wil vandaag of morgen mijn setup met Marstek batterijen even beschrijven. Zal proberen ook de door jou gevraagde informatie erbij te zetten.
vincent_1971 schreef op donderdag 7 mei 2026 @ 11:09:
Ben me er zelf hier aan het "inlezen" Waar ik nog niet echt uitkom is wat als je een vast contract hebt ( eneco 1 jaar )?

Is er een mogelijk om met vaste tarieven het een en ander in te stellen?

Heb zelf zonnepanelen, vloerverwarming, airco's en ook straks een warmtepompboiler.
Zoals @Torch1969 ook al zei: het zit er (nog) niet in, maar ik zie (net als @Torch1969) wel een markt voor tweakers met een vast contract, waarbij of de kosten of de levering worden geminimaliseerd.
Ik neem het mee als "gewenste" feature.

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

@hemertje
Ik heb het probleem van het schrijven van de berekende "feedin" richting de thuisbatterij als volgt opgelost:
DAO schrijft ieder kwartier de berekende feedin naar een eerste helper: input_number.dao_setpoint_feedin_ess
Ik heb een tweede helper gemaakt:
input_number.calculated_setpoint_feedin_ess
Zodra de eerste helper wijzigt (alleen door DAO meestal eens per kwartier) triggert die een automation die de waarde van helper 1 doorzet naar helper 2.
Als DAO dan ook nog "nul op de meter" wil (input_boolean.balanceer_grid) dan zet deze de pid-regelaar aan en die neemt als startwaarde de door DAO berekende feedin (van helper 1)
De output van de pid-regelaar gaat iedere seconde naar helper 2.
Ik heb ook nog twee beveiligingen draaien (boven op de beveiliging van mijn bms) die de feedin van mijn thuisbatterij beperkt als de thuisbatterij kritieke spanningsniveaus nadert. Die berekende beperkingen worden (nu nog) ook weggeschreven naar helper 2 omdat (nu nog) zowel pid als de beperkingen bijna nooit beide tegelijk actief zijn.
Ik ga dat voor 1 januari a.s. wel uitsplitsen omdat ik verwacht dat volgende jaar het systeem heel vaak NOM gaat draaien en dan ook in de buurt gaat komen van kritieke spanningsniveaus.

Over cycle-cost.
Die staan bij mij op 0.01 en die zijn veel lager dan mijn afschrijvingskosten (berekend over 5 jaar). Mijn batterij slijt nauwelijks omdat mijn laad-/ontlaadvermogen altijd minder is dan 0,2C en ik de batterij daarmee nauwelijks thermisch belast. Het spul draait nu 4 jaar en ik heb nog geen afname van capaciteit mogen constateren.
Maar ga je met laden en ontladen wel harder dan 0,2 C dan moet je misschien wel afschrijven op je batterij omdat je ze dan wel degelijk "flink aan de tand voelt".

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


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:01

Beekforel

Is eigenlijk geen vis

@hemertje bij deze.

Ik heb een Home Assistant package gemaakt waarin ik al mijn (generieke) helpers, automations en scripts heb gemaakt.

https://gist.github.com/fbloemhof/ded1c1dcfd797d11e4b61e66c101e4f0

Denk er aan dat je op regel 19 je eigen notify target invult en op regel 1170 het IP adres van DAO invult.

Ik heb hiernaast nog een andere file waarin ik wat persoonlijkere config heb, specifieker voor mijn setup.

In de DAO configuratie heb ik dan mijn battery als volgt geconfigureerd:
JSON:
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
29
30
31
   "battery": [
    {
      "name": "Marstek",
      "capacity": 10.4,
      "entity_actual_level": "sensor.dao_battery_soc_combined",
      "entity_set_power_feedin": "input_number.dao_battery_power_feedin",
      "entity_stop_inverter": "input_datetime.dao_battery_stop",
      "entity_set_operating_mode": "input_select.dao_battery_operating_mode",
      "entity_balance_switch": "input_boolean.dao_battery_balance_mode",
      "upper_limit": 100,
      "lower_limit": 11,
      "charge_stages": [
        { "power": 0,    "efficiency": 1.0 },
        { "power": 200,  "efficiency": 0.90 },
        { "power": 1000, "efficiency": 0.95 },
        { "power": 2400, "efficiency": 0.96 },
        { "power": 3000, "efficiency": 0.94 }
      ],
      "discharge_stages": [
        { "power": 0,    "efficiency": 1.0 },
        { "power": 200,  "efficiency": 0.90 },
        { "power": 1000, "efficiency": 0.95 },
        { "power": 2400, "efficiency": 0.96 },
        { "power": 3000, "efficiency": 0.94 }
      ],
      "minimum_power": 50,
      "dc_to_bat_efficiency": 0.93,
      "bat_to_dc_efficiency": 0.93,
      "cycle_cost": 0.025
    }
  ],
De keten is dan: DAO run past input_boolean.dao_battery_balance_mode en/of input_number.dao_battery_power_feedin aan, wat vervolgens automation.dao_marstek_battery_bridge zal triggeren. Die automation roept vervolgens script.marstek_control aan die de daadwerkelijke batterijen aanstuurt. Mijn batterijen hebben zelf een PID meter (in dit topic geleerd) en die kunnen daarmee prima zelf NOM aanhouden.

Er zit, nu nog eens bekeken, toch wel wat specifieke dingen van mij in de package, ik houd bijvoorbeeld ook rekening met het laden van mijn EV. Ook heb ik momenteel wat gedonder met 1 van mijn 3 accu's, dus die is grotendeels uitgezonderd in de sensoren/automations.

Er zit ook allemaal voorbereiding in voor machines, die ik nog helemaal niet heb. :D De Ariston boiler boost werkt wel, rest niet.

Ik begon hieraan met de ambitie een zo generiek mogelijke file te maken die mogelijk opgenomen kan worden in de DAO wiki, maar ik denk dat ik bij nader inzien dit beter in losse packages ("modules") kan gaan gieten zodat je kunt kiezen wat je wel/niet wilt hebben.

Ik heb zoveel mogelijk generieke naamgeving aangehouden (alles begint altijd met DAO) en ook opmaak en comments zo overzichtelijk mogelijk gehouden, maar het is een hoop avonduurtjes pielerij dus er sluipt ook wel eens wat luiheid doorheen.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 22:44
Beekforel schreef op donderdag 7 mei 2026 @ 19:02:
Misschien wat minder ChatGPT gebruiken @hemertje, je eigen reacties beginnen ook aardig AI te lijken. :D

Ik wil vandaag of morgen mijn setup met Marstek batterijen even beschrijven. Zal proberen ook de door jou gevraagde informatie erbij te zetten.
ja is herkenbaar he :P

ik gebruik Claude Code voor men reis door Home Assistant...

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal


  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 22:44
Beekforel schreef op donderdag 7 mei 2026 @ 21:41:
@hemertje bij deze.

Ik heb een Home Assistant package gemaakt waarin ik al mijn (generieke) helpers, automations en scripts heb gemaakt. https://gist.github.com/f...75396a57c84c1b2313f59626f
Hoi, dankjewel voor deze informatie!

ik krijg een 404 foutmelding op je Github link


@Bravo ik lees in je handtekening dat ook jij in een prachtige EV mag rijden :P

hoe voorkom jij dat je wanneer je de EV laad je de kWh uit je thuisbatterijen haalt?

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:01

Beekforel

Is eigenlijk geen vis

hemertje schreef op donderdag 7 mei 2026 @ 22:03:
[...]

Hoi, dankjewel voor deze informatie!

ik krijg een 404 foutmelding op je Github link


@Bravo ik lees in je handtekening dat ook jij in een prachtige EV mag rijden :P

hoe voorkom jij dat je wanneer je de EV laad je de kWh uit je thuisbatterijen haalt?
Oeps, heb delink gerepareerd.

Ik laad mijn EV overigens niet met DAO, dat laat ik over aan Tibber. Die knalt er dus wel doorheen maar DAO gaat daar goed mee om.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 22:44
Beekforel schreef op donderdag 7 mei 2026 @ 22:08:
[...]

Oeps, heb delink gerepareerd.

Ik laad mijn EV overigens niet met DAO, dat laat ik over aan Tibber. Die knalt er dus wel doorheen maar DAO gaat daar goed mee om.
helaas nog steeds een 404 op https://gist.github.com/fbloemhof/ac5943a75396a57c84c1b2313f59626f

Gasloos 2019 + WP Panasonic H-serie 7kW + 300 liter boilervat + PV 12.415Wp + Home Assistant + Hyundai Ioniq 6 First Edition + Zaptec laadpaal


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:01

Beekforel

Is eigenlijk geen vis

De link in de post is aangepast.
Er is een nieuwe test-versie gepubliceerd: 2026.5.0.rc1
Er zijn een aantal plooien gladgestreken.

Dit staat in de changelog:
  • Updated for several python modules
  • Corrected typos in DOCS.md
  • Changed boiler heating_allowed_below to flex-setting (reported by @Impossibl3, pr from tomvanterve)
  • Fixed error logging during execution of a run
  • Fixed typo "Battery" -> Machine in machines.py
  • Added x-help-text with 0 W stages
  • Changed typo meteo-attemps -> meteo_attempts
  • Changed timeout hassapi to 10 sec.
  • Converted ev "entity stop laden" -> "entity_stop_charging" (reported by @Darkwings)
  • Made boiler cooling_rate float and flexsetting (pr from tomvanterve)
Omdat er nogal wat is veranderd komt eerst een testversie uit, zodat eventuele foutjes eerst gemeld en gefixed kunnen worden voordat we over een paar dagen een nieuwe stabiele versie publiceren.
Dus we horen graag jullie bevindingen.

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

eagle73 schreef op donderdag 7 mei 2026 @ 12:39:
[...]


Logisch inderdaad en gisteravond daar niet aandacht dat het beschibare tijdsvenster te klein is. Ik gebruik DAO momenteel voor het inplannen van apparatuur en op termijn zal er een keer een batterij komen. In de voorgaande versies van DAO kreeg ik ook een melding dat een apparaat niet ingepland kan worden maar het resulteerde wel in een uiteindelijk in de pagina met de verwachte solar opbrengst en de andere grafieken.

Ik heb nu alleen de vaatwasser in de machines laten staan er de rest weggehaald. DAO blijft nog steeds hangen in de MIP optimalisation. Dit levert de volgende output:


[...]


In 2026.3.2 heeft dit nog gewerkt en bij de stap naar 2026.4.4 blijft hij hangen in deze stap.
Het lijkt erop dat hij op jouw HA-machine wel overweg kan met de oude zelf gecompileerde binaries maar niet met de binaries "off the shelf".
Wat je kunt doen: compileer binaries voor je eigen machine.
Hier staat hoe je dat moet doen:
https://github.com/cornee...ecompileerde-mip-binaries

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

Pagina: 1 ... 39 40 Laatste