• pimNH
  • Registratie: Mei 2011
  • Laatst online: 20-04 21:31
mgroen81 schreef op maandag 13 april 2026 @ 19:30:
Na de update van 3.2 naar 4.0 en hogen is de rekentijd toegenomen van ongeveer 20-30 seconde naar 300 seconde. Zijn er meer die dit ervaren?
Verder is er in mijn config niets veranderd. Wat zou ik hier aan kunnen doen?
Bij mij doet hij het er op een Rpi 4 direct in homeassistant 1 seconde over. Wellicht kun je de max gap wat hoger zetten -> "max_gap": 0.005, zo staat hij bij mij.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
Lasoul schreef op maandag 13 april 2026 @ 12:49:
[...]


Dat snap ik maar het zou ook goed ingezet kunnen worden voor bijvoorbeeld een warmtepomp. Het verbruik van de warmtepomp is afhankelijk van de buitentemperatuur en het warmteverlies van de woning. Daar zou je prima een ml model op kunnen trainen en is niet anders dan PV opwek of windenergie.
ja mijn idee ook, waarom zou je de warmteverliezen van de woning (=opwek warmtepomp) samen met de buitentemperaturen niet meenemen in de ML en berekeningen?

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


  • mgroen81
  • Registratie: September 2010
  • Laatst online: 15:19
pimNH schreef op maandag 13 april 2026 @ 20:43:
[...]


Bij mij doet hij het er op een Rpi 4 direct in homeassistant 1 seconde over. Wellicht kun je de max gap wat hoger zetten -> "max_gap": 0.005, zo staat hij bij mij.
Bedankt voor de tip. Ik zie deze setting nu voor het eerst.
Ik gebruik een odroid N2+ dus vergelijkbaar met rpi4. Iet krachtiger misschien zelfds.
edit: is niet de oplossing.

[ Voor 3% gewijzigd door mgroen81 op 13-04-2026 22:06 ]

Mitsubishi PUHZ-W50VHA + EHPT20X-VM2C / 30x JASolar 265Wp oost/west + SolarEdge 7K

balk schreef op maandag 13 april 2026 @ 15:42:
Ik krijg use_self_compiled_miplib niet werkend.
Compileren gaat goed:

[...]

Model trainen lijkt ook goed te gaan:

[...]

maar wanneer ik daarna een run doe krijg ik fouten:

[...]

weet iemand wat hier mis gaat?
edit:
"logging_level": "debug" geeft geen duidelijkere info. Ik gebruik een VM op Proxmox.
Ik vrees dat voor jou de self-complied mip-binaries ook niet gaan werken.
Er heeft laatst iemand een issue op github aangemaakt met een VM op Proxmox.
Misschien zelf even opzoeken in de "closed" issues.
Hij heeft uiteindelijk zelf een oplossing gevonden door in de VM de processor op "host" te zetten.
Als de de zelf compiled binaries niet meer wilt gebruiken moet je "de knop omzetten en de map "miplib" uit je config-map verwijderen.

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

konehead schreef op maandag 13 april 2026 @ 09:06:
Voordat ik allerlei logging ga posten: Ik heb vanaf 1 nov zondata in mijn database. Ik zie 'zo zo' resultaten met het ML model voor voorspellingen. Ik dacht gelezen te hebben dat je minimaal 3 maanden aan zondata moet hebben (en liever 12). Voor vandaag is de DAO prognose 6 KWh en ML 10 KWh. Wat zijn jullie ervaringen qua lengte historische data? Moet ik nog even wachten met ML totdat ik meer historie heb?
Drie wintermaanden zijn wel erg weinig voor het trainen van je ml-model(len).
Het gaat beter als er data van meer seizoenen (liefst zomer en winter) bij betrokken zijn en nog beter als je minimaal een jaar aan data hebt.
Als je drie jaar aan data hebt werkt het (bij mij) perfect.

Maar ..
je blijft afhankelijk van de stralingsvoorspelling. Vandaag was bij mij (net als bij jou) de voorspelling 6 kWh en de productie 10 kWh. Een paar wolkjes minder (of later) kan veel verschil maken.

[ Voor 11% gewijzigd door KC27 op 13-04-2026 22:45 ]

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

Er is een testversie gepubliceerd: 2026.4.3.rc1
Dit staat er in de changelog:
Changes
- Added flatpickr datetime picker in Home-menu (PR from @Dogooder )
Fixes
  • changed ev-ampere from integer to float
  • Skip NaN values when persisting DB records
  • Fix startup issue (PR from @simnet)
Met deze testversie moet het makkelijker worden om "fouten" in je config te corrigeren, omdat het opstartproces van de app/addon doorloopt ook als er iets wordt geconstateerd.
Je kunt dan met de editor in het dashboard alsnog je wijzigingen aanbrengen.

@Dogooder heeft een fraaie date/time picker toegevoegd aan het Home-menu:
Afbeeldingslocatie: https://tweakers.net/i/WJt6JrfKW4GPUtdHdGASwIwntcE=/800x/filters:strip_exif()/f/image/ZEbiEunWnFeNnqFlG6elhCYx.png?f=fotoalbum_large
Veel dank daarvoor!

Graag testen, als het goed bevalt kunnen we deze versie snel doorzetten naar "productie".

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

mgroen81 schreef op maandag 13 april 2026 @ 19:30:
Na de update van 3.2 naar 4.0 en hogen is de rekentijd toegenomen van ongeveer 20-30 seconde naar 300 seconde. Zijn er meer die dit ervaren?
Verder is er in mijn config niets veranderd. Wat zou ik hier aan kunnen doen?
Ik zag het zelf ook gistermiddag vanaf 13:00 uur.
Ik denk dat het een combinatie is van "weinig spreiding in de prijzen", laag verbruik van de wp.
Als ik de wp even "uit" zet dan gaat de berekening een factor 10 sneller.
Mijn ervaring is wel dat de binaries die met de laatste versie van mip zijn meegekomen sneller zijn dan de oude 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


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Ik ben ook met DAO aan de slag gegaan. Heb voorlopig EVCC de deur uit gedaan en heb Tibber maar gewoon losgelaten op de Laadpalen voor wat Grid Rewards. De batterij ben ik nu aan het proberen aan te sturen met DAO. Maar heb de EV's voorlopig nog wel uit de DAO berekeningen gelaten, aangezien voor de Grid Rewards ik Tibber de controle moet geven. Ik hoop dat het niet al te veel problemen gaat geven maar ik zal jullie op de hoogte houden. EVCC is mooie software maar speelde een te complexe rol in dit hele verhaal + is zo erg gefocust op zon terwijl wij overdag werken dus de zon helaas niet echt kunnen gebruiken om mee te laden behalve voor de accu's.

  • tonvanboven
  • Registratie: Oktober 2022
  • Laatst online: 14-04 13:31
mgroen81 schreef op maandag 13 april 2026 @ 19:30:
Na de update van 3.2 naar 4.0 en hogen is de rekentijd toegenomen van ongeveer 20-30 seconde naar 300 seconde. Zijn er meer die dit ervaren?
Verder is er in mijn config niets veranderd. Wat zou ik hier aan kunnen doen?
Onlangs heb ik bij mijn zwager een 20kWh accu systeem geinstalleerd en uiteraard aan laten sturen met DAO op een HA Green. De rekentijd was voor de update met een max_gap van default 0,005 circa 2 minuten. Door de max_gap via een HA entiteit instelbaar te maken en deze te brengen naar 0,1 is de tijd aanzienlijk korter geworden: 3 seconden. Geen verschil in de winst.

Update 13:30u: na het ophalen van de prijzen helaas weer 300s rekentijd nodig :(

[ Voor 5% gewijzigd door tonvanboven op 14-04-2026 13:31 ]

Tibber; 3-fase Victron 5000 ESS, 60 kWh opslag; Day Ahead Optimizing van @KC27; PV 10kWp sinds 2010, EV sinds 2014; gasloos sinds 2001


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Hoe wil DAO de waardes hebben? Ik heb namelijk een aantal waardes die per week of per dag resetten. Ik doel hier voornamelijk mee op de waardes van bijvoorbeeld PV:
Afbeeldingslocatie: https://tweakers.net/i/82G9Nw7DqrI6AOs6eCnoCk2lEK4=/800x/filters:strip_exif()/f/image/f1L8LKtcCcyPGAmPyOXafpQf.png?f=fotoalbum_large

Ik zit al te kijken of ik op de een of andere manier deze waarde kan laten doorlopen door een Home Assistant helper. Want ik weet anders geen raad hiermee.

  • konehead
  • Registratie: Januari 2005
  • Laatst online: 06:57
KC27 schreef op maandag 13 april 2026 @ 22:42:
[...]

Drie wintermaanden zijn wel erg weinig voor het trainen van je ml-model(len).
Het gaat beter als er data van meer seizoenen (liefst zomer en winter) bij betrokken zijn en nog beter als je minimaal een jaar aan data hebt.
Als je drie jaar aan data hebt werkt het (bij mij) perfect.

Maar ..
je blijft afhankelijk van de stralingsvoorspelling. Vandaag was bij mij (net als bij jou) de voorspelling 6 kWh en de productie 10 kWh. Een paar wolkjes minder (of later) kan veel verschil maken.
Thx, helaas in Nov een DB crash gehad met HA.. all mijn zon data weg, Ik ga het proberen met ML. vandaag: Productie: 17 KWh, DAO: 14.2 KWh, ML 21.. best wel wat overfitting, maar is einde dag. Tot 15h volgt ML de productie prima.. (dan is mijn accu toch al vol).

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
KC27 schreef op maandag 13 april 2026 @ 22:39:
[...]


Ik vrees dat voor jou de self-complied mip-binaries ook niet gaan werken.
Er heeft laatst iemand een issue op github aangemaakt met een VM op Proxmox.
Misschien zelf even opzoeken in de "closed" issues.
Hij heeft uiteindelijk zelf een oplossing gevonden door in de VM de processor op "host" te zetten.
Als de de zelf compiled binaries niet meer wilt gebruiken moet je "de knop omzetten en de map "miplib" uit je config-map verwijderen.
Ik denk dat het me gelukt is om het werkend te krijgen. Gemini adviseerde me om het volgende te doen
* CPU type "host" (had ik al)
* architecture q35 (hielp niet)
* compileer met CXXFLAGS="-O2 -march=x86-64-v2 -pipe" ipv -march=native -O3

Ik denk dat dat laatste ook gelukt is door in de docker te bashen, build_miplib.sh aan te passen en dan opnieuw te draaien. Hierna geen foutmeldingen maar ik weet niet zeker of de custom miplib wordt gebruikt. Is er een manier om te zien welke lib gebruikt wordt?

Dit was wel een behoorlijke omweg, en niet persistent. Is het misschien mogelijk om CXXFLAGS aan te gaan passen via een config?

====
hmm, nu toch weer een foutmelding.

  • thesaxofonist
  • Registratie: November 2016
  • Nu online
Ik simuleer een hybride batterij en zie dat DAO af en toe rendement berekent als dat niet relevant is (en dan ook niet klopt), bijvoorbeeld deze ochtend. Om 8.30 uur wordt er een beetje energie opgewekt en teruggeleverd aan het net. Er wordt geen rendement van de batterij getoond en dat lijkt me correct.

Om 9.00 is er nog dezelfde situatie en wordt een batterijrendement van 105,26% getoond. Dat lijkt me niet correct. Om 9.45 wordt energie naar de batterij gestuurd en wijzigt het rendement naar 95% (correct).

De rest van de berekeningen lijken te kloppen. Het is alleen deze kolom. Ik heb er verder geen last van.

Afbeeldingslocatie: https://tweakers.net/i/giwQnxmw29avQ2p9aTj7Bk_K5F8=/800x/filters:strip_icc():strip_exif()/f/image/7sD2pMcFj4OFkBK4AK4Ui1U4.jpg?f=fotoalbum_large
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
2026-04-15 08:30:00 info: Day Ahead Optimalisering versie: 2026.04.0.rc3
2026-04-15 08:30:00 info: Day Ahead Optimalisering gestart op: 15-04-2026 08:30:00
2026-04-15 08:30:00 info: Day Ahead Optimalisatie gestart: 15-04-2026 08:30:00 taak: calc_optimum
2026-04-15 08:30:00 info: Debug = False
2026-04-15 08:30:00 info: Baseload uit instellingen
2026-04-15 08:30:00 info: ML prediction string4enNoord
                   date_time  prediction
0  2026-04-15 08:00:00+02:00       0.186
1  2026-04-15 09:00:00+02:00       0.562
2  2026-04-15 10:00:00+02:00       1.237
3  2026-04-15 11:00:00+02:00       1.788
4  2026-04-15 12:00:00+02:00       2.084
5  2026-04-15 13:00:00+02:00       1.685
6  2026-04-15 14:00:00+02:00       1.865
7  2026-04-15 15:00:00+02:00       1.996
8  2026-04-15 16:00:00+02:00       1.818
9  2026-04-15 17:00:00+02:00       1.557
10 2026-04-15 18:00:00+02:00       0.944
11 2026-04-15 19:00:00+02:00       0.245
12 2026-04-15 20:00:00+02:00       0.004
13 2026-04-15 21:00:00+02:00       0.004
14 2026-04-15 22:00:00+02:00       0.002
15 2026-04-15 23:00:00+02:00       0.002
2026-04-15 08:30:00 info: ML prediction Envoy
                   date_time  prediction
0  2026-04-15 08:00:00+02:00       0.160
1  2026-04-15 09:00:00+02:00       0.347
2  2026-04-15 10:00:00+02:00       0.427
3  2026-04-15 11:00:00+02:00       0.420
4  2026-04-15 12:00:00+02:00       0.411
5  2026-04-15 13:00:00+02:00       0.450
6  2026-04-15 14:00:00+02:00       0.446
7  2026-04-15 15:00:00+02:00       0.434
8  2026-04-15 16:00:00+02:00       0.410
9  2026-04-15 17:00:00+02:00       0.460
10 2026-04-15 18:00:00+02:00       0.457
11 2026-04-15 19:00:00+02:00       0.120
12 2026-04-15 20:00:00+02:00       0.008
13 2026-04-15 21:00:00+02:00       0.008
14 2026-04-15 22:00:00+02:00       0.008
15 2026-04-15 23:00:00+02:00       0.009
2026-04-15 08:30:01 info: ML prediction string1
                   date_time  prediction
0  2026-04-15 08:00:00+02:00       0.425
1  2026-04-15 09:00:00+02:00       0.411
2  2026-04-15 10:00:00+02:00       1.844
3  2026-04-15 11:00:00+02:00       2.268
4  2026-04-15 12:00:00+02:00       2.525
5  2026-04-15 13:00:00+02:00       1.837
6  2026-04-15 14:00:00+02:00       1.810
7  2026-04-15 15:00:00+02:00       1.563
8  2026-04-15 16:00:00+02:00       1.756
9  2026-04-15 17:00:00+02:00       1.421
10 2026-04-15 18:00:00+02:00       0.704
11 2026-04-15 19:00:00+02:00       0.087
12 2026-04-15 20:00:00+02:00       0.001
13 2026-04-15 21:00:00+02:00       0.001
14 2026-04-15 22:00:00+02:00       0.001
15 2026-04-15 23:00:00+02:00       0.001
2026-04-15 08:30:01 info: ML prediction string2en3
                   date_time  prediction
0  2026-04-15 08:00:00+02:00       0.267
1  2026-04-15 09:00:00+02:00       0.411
2  2026-04-15 10:00:00+02:00       1.024
3  2026-04-15 11:00:00+02:00       1.928
4  2026-04-15 12:00:00+02:00       2.088
5  2026-04-15 13:00:00+02:00       1.485
6  2026-04-15 14:00:00+02:00       1.556
7  2026-04-15 15:00:00+02:00       1.556
8  2026-04-15 16:00:00+02:00       1.537
9  2026-04-15 17:00:00+02:00       1.144
10 2026-04-15 18:00:00+02:00       0.560
11 2026-04-15 19:00:00+02:00       0.109
12 2026-04-15 20:00:00+02:00       0.000
13 2026-04-15 21:00:00+02:00       0.001
14 2026-04-15 22:00:00+02:00       0.001
15 2026-04-15 23:00:00+02:00       0.001
2026-04-15 08:30:01 info: Start waarden: 
      uur                tijd  spot   p_l   p_t  base  pv_ac  pv_dc
0   08:30 2026-04-15 08:30:00 0.136 0.312 0.164 0.050  0.104  0.177
1   08:45 2026-04-15 08:45:00 0.114 0.286 0.138 0.050  0.139  0.185
2   09:00 2026-04-15 09:00:00 0.130 0.305 0.157 0.052  0.172  0.163
3   09:15 2026-04-15 09:15:00 0.122 0.295 0.148 0.052  0.207  0.171
4   09:30 2026-04-15 09:30:00 0.109 0.279 0.132 0.052  0.242  0.180
5   09:45 2026-04-15 09:45:00 0.103 0.272 0.125 0.045  0.289  0.307
6   10:00 2026-04-15 10:00:00 0.126 0.300 0.152 0.033  0.349  0.536
7   10:15 2026-04-15 10:15:00 0.095 0.263 0.115 0.027  0.396  0.664
8   10:30 2026-04-15 10:30:00 0.084 0.250 0.102 0.020  0.443  0.792
9   10:45 2026-04-15 10:45:00 0.074 0.237 0.089 0.020  0.477  0.875
10  11:00 2026-04-15 11:00:00 0.088 0.254 0.107 0.023  0.505  0.939
11  11:15 2026-04-15 11:15:00 0.075 0.239 0.091 0.023  0.539  1.022
12  11:30 2026-04-15 11:30:00 0.064 0.225 0.077 0.023  0.573  1.105
13  11:45 2026-04-15 11:45:00 0.049 0.207 0.059 0.030  0.591  1.131
14  12:00 2026-04-15 12:00:00 0.060 0.221 0.073 0.044  0.607  1.141
15  12:15 2026-04-15 12:15:00 0.050 0.208 0.061 0.050  0.625  1.167
16  12:30 2026-04-15 12:30:00 0.048 0.205 0.057 0.056  0.643  1.193
17  12:45 2026-04-15 12:45:00 0.042 0.199 0.051 0.050  0.620  1.112
18  13:00 2026-04-15 13:00:00 0.041 0.197 0.050 0.031  0.559  0.931
19  13:15 2026-04-15 13:15:00 0.041 0.197 0.049 0.025  0.537  0.850
20  13:30 2026-04-15 13:30:00 0.042 0.198 0.051 0.019  0.514  0.769
21  13:45 2026-04-15 13:45:00 0.046 0.203 0.056 0.025  0.525  0.772
22  14:00 2026-04-15 14:00:00 0.035 0.190 0.042 0.044  0.562  0.842
23  14:15 2026-04-15 14:15:00 0.053 0.212 0.065 0.050  0.573  0.845
24  14:30 2026-04-15 14:30:00 0.064 0.225 0.077 0.056  0.584  0.847
25  14:45 2026-04-15 14:45:00 0.075 0.239 0.091 0.050  0.591  0.832
26  15:00 2026-04-15 15:00:00 0.057 0.216 0.069 0.033  0.601  0.796
27  15:15 2026-04-15 15:15:00 0.066 0.228 0.080 0.027  0.609  0.781
28  15:30 2026-04-15 15:30:00 0.075 0.238 0.091 0.020  0.616  0.765
29  15:45 2026-04-15 15:45:00 0.084 0.250 0.102 0.020  0.604  0.776
30  16:00 2026-04-15 16:00:00 0.075 0.238 0.090 0.019  0.576  0.821
31  16:15 2026-04-15 16:15:00 0.085 0.251 0.103 0.019  0.564  0.832
32  16:30 2026-04-15 16:30:00 0.092 0.260 0.112 0.019  0.551  0.843
33  16:45 2026-04-15 16:45:00 0.098 0.267 0.119 0.044  0.538  0.797
34  17:00 2026-04-15 17:00:00 0.096 0.264 0.117 0.094  0.530  0.718
35  17:15 2026-04-15 17:15:00 0.105 0.274 0.127 0.119  0.517  0.673
36  17:30 2026-04-15 17:30:00 0.117 0.289 0.141 0.144  0.504  0.627
37  17:45 2026-04-15 17:45:00 0.127 0.301 0.153 0.144  0.465  0.546
38  18:00 2026-04-15 18:00:00 0.115 0.286 0.139 0.130  0.415  0.434
39  18:15 2026-04-15 18:15:00 0.122 0.295 0.147 0.130  0.376  0.353
40  18:30 2026-04-15 18:30:00 0.134 0.309 0.162 0.130  0.338  0.272
41  18:45 2026-04-15 18:45:00 0.149 0.328 0.180 0.111  0.273  0.205
42  19:00 2026-04-15 19:00:00 0.146 0.325 0.177 0.073  0.178  0.136
43  19:15 2026-04-15 19:15:00 0.161 0.343 0.195 0.055  0.113  0.069
44  19:30 2026-04-15 19:30:00 0.165 0.348 0.200 0.036  0.048  0.008
45  19:45 2026-04-15 19:45:00 0.190 0.378 0.230 0.036  0.026  0.001
46  20:00 2026-04-15 20:00:00 0.189 0.376 0.228 0.052  0.031  0.015
47  20:15 2026-04-15 20:15:00 0.178 0.362 0.215 0.052  0.009  0.003
48  20:30 2026-04-15 20:30:00 0.172 0.356 0.209 0.052  0.000  0.000
49  20:45 2026-04-15 20:45:00 0.152 0.332 0.184 0.045  0.000  0.000
50  21:00 2026-04-15 21:00:00 0.166 0.349 0.201 0.033  0.003  0.000
51  21:15 2026-04-15 21:15:00 0.147 0.325 0.178 0.027  0.003  0.000
52  21:30 2026-04-15 21:30:00 0.140 0.317 0.169 0.020  0.003  0.000
53  21:45 2026-04-15 21:45:00 0.126 0.300 0.152 0.020  0.003  0.000
54  22:00 2026-04-15 22:00:00 0.140 0.318 0.170 0.025  0.003  0.000
55  22:15 2026-04-15 22:15:00 0.133 0.308 0.160 0.025  0.003  0.000
56  22:30 2026-04-15 22:30:00 0.127 0.301 0.153 0.025  0.003  0.000
57  22:45 2026-04-15 22:45:00 0.123 0.297 0.149 0.025  0.003  0.000
58  23:00 2026-04-15 23:00:00 0.130 0.305 0.157 0.025  0.003  0.000
59  23:15 2026-04-15 23:15:00 0.121 0.294 0.146 0.025  0.003  0.000
60  23:30 2026-04-15 23:30:00 0.112 0.284 0.136 0.025  0.003  0.000
61  23:45 2026-04-15 23:45:00 0.103 0.273 0.125 0.025  0.003  0.000
2026-04-15 08:30:01 info: No reduced hours applied for QCells1
2026-04-15 08:30:01 info: No reduced power applied during discharging at low soc
2026-04-15 08:30:01 info: No reduced power applied during charging at high soc
2026-04-15 08:30:01 info: Startwaarde SoC QCells1: 10.0%

2026-04-15 08:30:01 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2026-04-15 08:30:01 info: Warmtepomp niet aanwezig - warmtepomp wordt niet ingepland
2026-04-15 08:30:01 info: Strategie: minimale kosten
2026-04-15 08:30:01 info: Maximale fout (maximal gap): 0.001000 euro
2026-04-15 08:30:02 info: Rekentijd: 0.48  sec
2026-04-15 08:30:02 info: Het programma heeft een optimale oplossing gevonden.
2026-04-15 08:30:02 info: Ontlaad volume in uur 0 08:30 0.16372964347247038 kWh
2026-04-15 08:30:02 info: 1 0.21830619129662718 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 1 08:45 0.1712590173119679 kWh
2026-04-15 08:30:02 info: 1 0.2283453564159572 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 2 09:00 0.1511065558525727 kWh
2026-04-15 08:30:02 info: 1 0.2014754078034303 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 3 09:15 0.1586359296925366 kWh
2026-04-15 08:30:02 info: 1 0.2115145729233821 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 4 09:30 0.1661653035325508 kWh
2026-04-15 08:30:02 info: 1 0.2215537380434011 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 5 09:45 0.0030785069924745504 kWh
2026-04-15 08:30:02 info: 1 0.004104675989966068 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 6 10:00 0.75 kWh
2026-04-15 08:30:02 info: 1 1.0 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 7 10:15 0.6143441941589116 kWh
2026-04-15 08:30:02 info: 1 0.8191255922118822 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 8 10:30 0.7326008919626473 kWh
2026-04-15 08:30:02 info: 1 0.9768011892835298 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 9 10:45 0.8068764743573489 kWh
2026-04-15 08:30:02 info: 1 0.9544988205141209 3.0
2026-04-15 08:30:02 info: 2 0.04550117948587905 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 10 11:00 0.8632631265221441 kWh
2026-04-15 08:30:02 info: 1 0.9093894987822848 3.0
2026-04-15 08:30:02 info: 2 0.09061050121771529 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 11 11:15 0.9367982949467099 kWh
2026-04-15 08:30:02 info: 1 0.8505613640426323 3.0
2026-04-15 08:30:02 info: 2 0.14943863595736767 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 12 11:30 1.0103334897653538 kWh
2026-04-15 08:30:02 info: 1 0.791733208187717 3.0
2026-04-15 08:30:02 info: 2 0.208266791812283 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 13 11:45 0.623111484560527 kWh
2026-04-15 08:30:02 info: 1 0.8308153127473692 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 14 12:00 1.0422189217655264 kWh
2026-04-15 08:30:02 info: 1 0.7662248625875787 3.0
2026-04-15 08:30:02 info: 2 0.23377513741242123 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 15 12:15 0.7500000000000001 kWh
2026-04-15 08:30:02 info: 1 1.0 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 16 12:30 0.40962869767099613 kWh
2026-04-15 08:30:02 info: 1 0.5461715968946614 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 17 12:45 0.335042222030461 kWh
2026-04-15 08:30:02 info: 1 0.4467229627072813 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 18 13:00 0.1671812804415825 kWh
2026-04-15 08:30:02 info: 1 0.22290837392211 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 19 13:15 0.09259483236819518 kWh
2026-04-15 08:30:02 info: 1 0.12345977649092689 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 20 13:30 0.01800832916051172 kWh
2026-04-15 08:30:02 info: 1 0.024011105547348952 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 21 13:45 0.02050180528312937 kWh
2026-04-15 08:30:02 info: 1 0.027335740377505826 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 22 14:00 0.08499193694442489 kWh
2026-04-15 08:30:02 info: 1 0.1133225825925665 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 23 14:15 0.7799062465535517 kWh
2026-04-15 08:30:02 info: 1 0.9760750027571587 3.0
2026-04-15 08:30:02 info: 2 0.023924997242841226 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 24 14:30 0.7822936173092495 kWh
2026-04-15 08:30:02 info: 1 0.9741651061526004 3.0
2026-04-15 08:30:02 info: 2 0.025834893847399485 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 25 14:45 0.7686467703947044 kWh
2026-04-15 08:30:02 info: 1 0.9850825836842366 3.0
2026-04-15 08:30:02 info: 2 0.014917416315763423 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 26 15:00 0.7365848273038863 kWh
2026-04-15 08:30:02 info: 1 0.9821131030718485 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 27 15:15 0.7223314262926581 kWh
2026-04-15 08:30:02 info: 1 0.9631085683902106 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 28 15:30 0.7080780528485775 kWh
2026-04-15 08:30:02 info: 1 0.94410407046477 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 29 15:45 0.7181334733963012 kWh
2026-04-15 08:30:02 info: 1 0.957511297861735 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 30 16:00 0.7590606193989514 kWh
2026-04-15 08:30:02 info: 1 0.9927515044808388 3.0
2026-04-15 08:30:02 info: 2 0.007248495519161079 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 31 16:15 0.7686882024987581 kWh
2026-04-15 08:30:02 info: 1 0.9850494380009936 3.0
2026-04-15 08:30:02 info: 2 0.014950561999006374 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 32 16:30 0.7783157328104087 kWh
2026-04-15 08:30:02 info: 1 0.9773474137516733 3.0
2026-04-15 08:30:02 info: 2 0.02265258624832677 8.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 33 16:45 0.7374585267156362 kWh
2026-04-15 08:30:02 info: 1 0.9832780356208483 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 34 17:00 0.6644736300222575 kWh
2026-04-15 08:30:02 info: 1 0.8859648400296766 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 35 17:15 0.6223579193465413 kWh
2026-04-15 08:30:02 info: 1 0.8298105591287217 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 36 17:30 0.580242236237973 kWh
2026-04-15 08:30:02 info: 1 0.7736563149839639 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 37 17:45 0.5050897932611407 kWh
2026-04-15 08:30:02 info: 1 0.6734530576815211 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 38 18:00 0.40181325264275086 kWh
2026-04-15 08:30:02 info: 1 0.5357510035236678 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 39 18:15 0.3266607958823443 kWh
2026-04-15 08:30:02 info: 1 0.4355477278431257 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 40 18:30 0.2515083529055119 kWh
2026-04-15 08:30:02 info: 1 0.33534447054068256 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 41 18:45 0.1897420346736908 kWh
2026-04-15 08:30:02 info: 1 0.2529893795649211 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 42 19:00 0.12539886950980875 kWh
2026-04-15 08:30:02 info: 1 0.16719849267974496 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 43 19:15 0.6849126309537054 kWh
2026-04-15 08:30:02 info: 1 0.9132168412716073 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 44 19:30 0.7010467187385074 kWh
2026-04-15 08:30:02 info: 1 0.93472895831801 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 45 19:45 0.6947275203070602 kWh
2026-04-15 08:30:02 info: 1 0.9263033604094136 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 46 20:00 0.7080270365009257 kWh
2026-04-15 08:30:02 info: 1 0.9440360486679008 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 47 20:15 0.6967264216521927 kWh
2026-04-15 08:30:02 info: 1 0.9289685622029233 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 48 20:30 0.6937499999999999 kWh
2026-04-15 08:30:02 info: 1 0.9249999999999997 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 49 20:45 0.04531249999999999 kWh
2026-04-15 08:30:02 info: 1 0.06041666666666665 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 50 21:00 0.6940475771265029 kWh
2026-04-15 08:30:02 info: 1 0.9253967695020038 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 51 21:15 0.02355339879868552 kWh
2026-04-15 08:30:02 info: 1 0.0314045317315807 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 52 21:30 0.017308410594705496 kWh
2026-04-15 08:30:02 info: 1 0.023077880792940656 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 53 21:45 0.0173856899375096 kWh
2026-04-15 08:30:02 info: 1 0.023180919916679466 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 54 22:00 0.0222315386403352 kWh
2026-04-15 08:30:02 info: 1 0.029642051520446928 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 55 22:15 0.022308818041346965 kWh
2026-04-15 08:30:02 info: 1 0.029745090721795948 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 56 22:30 0.022386097384151073 kWh
2026-04-15 08:30:02 info: 1 0.029848129845534758 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 57 22:45 0.022355902276467533 kWh
2026-04-15 08:30:02 info: 1 0.02980786970195671 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 58 23:00 0.022245101607404647 kWh
2026-04-15 08:30:02 info: 1 0.02966013547653953 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 59 23:15 0.022214906732551755 kWh
2026-04-15 08:30:02 info: 1 0.02961987564340234 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 60 23:30 0.022184711624868212 kWh
2026-04-15 08:30:02 info: 1 0.029579615499824283 3.0
2026-04-15 08:30:02 info: Ontlaad volume in uur 61 23:45 0.02215451651718467 kWh
2026-04-15 08:30:02 info: 1 0.029539355356246227 3.0
2026-04-15 08:30:02 info: In- en uitgaande energie per kwartier batterij QCells1
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 08:30  -0.16  92.50  -0.18   0.18   0.00     --   0.00     --  10.00
 08:45  -0.17  92.50  -0.19   0.19   0.00     --   0.00     --  10.00
 09:00  -0.15  92.50  -0.16   0.16   0.00 105.26   0.00     --  10.00
 09:15  -0.16  92.50  -0.17   0.17   0.00     --   0.00     --  10.00
 09:30  -0.17  92.50  -0.18   0.18  -0.00 105.26  -0.00     --  10.00
 09:45  -0.00  92.50  -0.00   0.31   0.30  95.00   0.29     --  14.01
 10:00  -0.75  92.50  -0.81   0.54  -0.27  95.00  -0.29     --  10.00
 10:15  -0.61  92.50  -0.66   0.66   0.00     --   0.00     --  10.00
 10:30  -0.73  92.50  -0.79   0.79   0.00     --   0.00     --  10.00
 10:45  -0.81  92.21  -0.88   0.88   0.00     --   0.00     --  10.00
 11:00  -0.86  91.96  -0.94   0.94   0.00     --   0.00     --  10.00
 11:15  -0.94  91.69  -1.02   1.02   0.00     --   0.00     --  10.00
 11:30  -1.01  91.45  -1.10   1.10   0.00     --   0.00     --  10.00
 11:45  -0.62  92.50  -0.67   1.13   0.46  95.00   0.43     --  16.03
 12:00  -1.04  91.36  -1.14   1.14   0.00     --   0.00     --  16.03
 12:15  -0.75  92.50  -0.81   1.17   0.36  95.00   0.34     --  20.73
 12:30  -0.41  92.50  -0.44   1.19   0.75  95.00   0.71     --  30.62
 12:45  -0.34  92.50  -0.36   1.11   0.75  95.00   0.71     --  40.52
 13:00  -0.17  92.50  -0.18   0.93   0.75  95.00   0.71     --  50.42
 13:15  -0.09  92.50  -0.10   0.85   0.75  95.00   0.71     --  60.31
 13:30  -0.02  92.50  -0.02   0.77   0.75  95.00   0.71     --  70.21
 13:45  -0.02  92.50  -0.02   0.77   0.75  95.00   0.71     --  80.10
 14:00  -0.08  92.50  -0.09   0.84   0.75  95.00   0.71     --  90.00
 14:15  -0.78  92.34  -0.84   0.84   0.00     --   0.00     --  90.00
 14:30  -0.78  92.33  -0.85   0.85   0.00     --   0.00     --  90.00
 14:45  -0.77  92.40  -0.83   0.83   0.00     --   0.00     --  90.00
 15:00  -0.74  92.50  -0.80   0.80   0.00     --   0.00     --  90.00
 15:15  -0.72  92.50  -0.78   0.78   0.00     --   0.00     --  90.00
 15:30  -0.71  92.50  -0.77   0.77   0.00     --   0.00     --  90.00
 15:45  -0.72  92.50  -0.78   0.78   0.00     --   0.00     --  90.00
 16:00  -0.76  92.45  -0.82   0.82   0.00     --   0.00     --  90.00
 16:15  -0.77  92.40  -0.83   0.83   0.00     --   0.00     --  90.00
 16:30  -0.78  92.35  -0.84   0.84   0.00     --   0.00     --  90.00
 16:45  -0.74  92.50  -0.80   0.80   0.00     --   0.00     --  90.00
 17:00  -0.66  92.50  -0.72   0.72   0.00     --   0.00     --  90.00
 17:15  -0.62  92.50  -0.67   0.67   0.00     --   0.00     --  90.00
 17:30  -0.58  92.50  -0.63   0.63   0.00     --   0.00     --  90.00
 17:45  -0.51  92.50  -0.55   0.55   0.00     --   0.00     --  90.00
 18:00  -0.40  92.50  -0.43   0.43   0.00     --   0.00     --  90.00
 18:15  -0.33  92.50  -0.35   0.35   0.00     --   0.00     --  90.00
 18:30  -0.25  92.50  -0.27   0.27   0.00     --   0.00     --  90.00
 18:45  -0.19  92.50  -0.21   0.21   0.00     --   0.00     --  90.00
 19:00  -0.13  92.50  -0.14   0.14   0.00     --   0.00     --  90.00
 19:15  -0.68  92.50  -0.74   0.07  -0.67  95.00  -0.71     --  80.18
 19:30  -0.70  92.50  -0.76   0.01  -0.75  95.00  -0.79     --  69.22
 19:45  -0.69  92.50  -0.75   0.00  -0.75  95.00  -0.79     --  58.25
 20:00  -0.71  92.50  -0.77   0.02  -0.75  95.00  -0.79     --  47.29
 20:15  -0.70  92.50  -0.75   0.00  -0.75  95.00  -0.79     --  36.32
 20:30  -0.69  92.50  -0.75   0.00  -0.75  95.00  -0.79  87.88  25.36
 20:45  -0.05  92.50  -0.05   0.00  -0.05  95.00  -0.05  87.88  24.64
 21:00  -0.69  92.50  -0.75   0.00  -0.75  95.00  -0.79     --  13.67
 21:15  -0.02  92.50  -0.03   0.00  -0.03  95.00  -0.03     --  13.31
 21:30  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  13.04
 21:45  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  12.77
 22:00  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  12.43
 22:15  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.03     --  12.08
 22:30  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.03     --  11.73
 22:45  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.03     --  11.38
 23:00  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  11.04
 23:15  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  10.69
 23:30  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  10.34
 23:45  -0.02  92.50  -0.02   0.00  -0.02  95.00  -0.02     --  10.00
Totaal -27.15        -29.41  30.03   0.62         -0.00              
2026-04-15 08:30:09 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 08:30    0.00     0.16   0.00   0.22   0.05   0.00   0.00   0.00   0.10   0.00   -0.04  20.00
 08:45    0.00     0.17   0.00   0.26   0.05   0.00   0.00   0.00   0.14   0.00   -0.04  20.00
 09:00    0.00     0.15   0.00   0.27   0.05   0.00   0.00   0.00   0.17   0.00   -0.04  20.00
 09:15    0.00     0.16   0.00   0.31   0.05   0.00   0.00   0.00   0.21   0.00   -0.05  20.00
 09:30    0.00     0.17   0.00   0.36   0.05   0.00   0.00   0.00   0.24   0.00   -0.05  20.00
 09:45    0.00     0.00   0.00   0.25   0.05   0.00   0.00   0.00   0.29   0.00   -0.03  20.00
 10:00    0.00     0.75   0.00   1.07   0.03   0.00   0.00   0.00   0.35   0.00   -0.16  20.00
 10:15    0.00     0.61   0.00   0.98   0.03   0.00   0.00   0.00   0.40   0.00   -0.11  20.00
 10:30    0.00     0.73   0.00   1.16   0.02   0.00   0.00   0.00   0.44   0.00   -0.12  20.00
 10:45    0.00     0.81   0.00   1.26   0.02   0.00   0.00   0.00   0.48   0.00   -0.11  20.00
 11:00    0.00     0.86   0.00   1.34   0.02   0.00   0.00   0.00   0.51   0.00   -0.14  20.00
 11:15    0.00     0.94   0.00   1.45   0.02   0.00   0.00   0.00   0.54   0.00   -0.13  20.00
 11:30    0.00     1.01   0.00   1.56   0.02   0.00   0.00   0.00   0.57   0.00   -0.12  20.00
 11:45    0.00     0.62   0.00   1.18   0.03   0.00   0.00   0.00   0.59   0.00   -0.07  20.00
 12:00    0.00     1.04   0.00   1.61   0.04   0.00   0.00   0.00   0.61   0.00   -0.12  20.00
 12:15    0.00     0.75   0.00   1.32   0.05   0.00   0.00   0.00   0.62   0.00   -0.08  20.00
 12:30    0.00     0.41   0.00   1.00   0.06   0.00   0.00   0.00   0.64   0.00   -0.06  20.00
 12:45    0.00     0.34   0.00   0.91   0.05   0.00   0.00   0.00   0.62   0.00   -0.05  20.00
 13:00    0.00     0.17   0.00   0.70   0.03   0.00   0.00   0.00   0.56   0.00   -0.03  20.00
 13:15    0.00     0.09   0.00   0.60   0.03   0.00   0.00   0.00   0.54   0.00   -0.03  20.00
 13:30    0.00     0.02   0.00   0.51   0.02   0.00   0.00   0.00   0.51   0.00   -0.03  20.00
 13:45    0.00     0.02   0.00   0.52   0.03   0.00   0.00   0.00   0.53   0.00   -0.03  20.00
 14:00    0.00     0.08   0.00   0.60   0.04   0.00   0.00   0.00   0.56   0.00   -0.03  20.00
 14:15    0.00     0.78   0.00   1.30   0.05   0.00   0.00   0.00   0.57   0.00   -0.08  20.00
 14:30    0.00     0.78   0.00   1.31   0.06   0.00   0.00   0.00   0.58   0.00   -0.10  20.00
 14:45    0.00     0.77   0.00   1.31   0.05   0.00   0.00   0.00   0.59   0.00   -0.12  20.00
 15:00    0.00     0.74   0.00   1.31   0.03   0.00   0.00   0.00   0.60   0.00   -0.09  20.00
 15:15    0.00     0.72   0.00   1.30   0.03   0.00   0.00   0.00   0.61   0.00   -0.10  20.00
 15:30    0.00     0.71   0.00   1.30   0.02   0.00   0.00   0.00   0.62   0.00   -0.12  20.00
 15:45    0.00     0.72   0.00   1.30   0.02   0.00   0.00   0.00   0.60   0.00   -0.13  20.00
 16:00    0.00     0.76   0.00   1.32   0.02   0.00   0.00   0.00   0.58   0.00   -0.12  20.00
 16:15    0.00     0.77   0.00   1.31   0.02   0.00   0.00   0.00   0.56   0.00   -0.14  20.00
 16:30    0.00     0.78   0.00   1.31   0.02   0.00   0.00   0.00   0.55   0.00   -0.15  20.00
 16:45    0.00     0.74   0.00   1.23   0.04   0.00   0.00   0.00   0.54   0.00   -0.15  20.00
 17:00    0.00     0.66   0.00   1.10   0.09   0.00   0.00   0.00   0.53   0.00   -0.13  20.00
 17:15    0.00     0.62   0.00   1.02   0.12   0.00   0.00   0.00   0.52   0.00   -0.13  20.00
 17:30    0.00     0.58   0.00   0.94   0.14   0.00   0.00   0.00   0.50   0.00   -0.13  20.00
 17:45    0.00     0.51   0.00   0.83   0.14   0.00   0.00   0.00   0.47   0.00   -0.13  20.00
 18:00    0.00     0.40   0.00   0.69   0.13   0.00   0.00   0.00   0.41   0.00   -0.10  20.00
 18:15    0.00     0.33   0.00   0.57   0.13   0.00   0.00   0.00   0.38   0.00   -0.08  20.00
 18:30    0.00     0.25   0.00   0.46   0.13   0.00   0.00   0.00   0.34   0.00   -0.07  20.00
 18:45    0.00     0.19   0.00   0.35   0.11   0.00   0.00   0.00   0.27   0.00   -0.06  20.00
 19:00    0.00     0.13   0.00   0.23   0.07   0.00   0.00   0.00   0.18   0.00   -0.04  20.00
 19:15    0.00     0.68   0.00   0.74   0.05   0.00   0.00   0.00   0.11   0.00   -0.14  20.00
 19:30    0.00     0.70   0.00   0.71   0.04   0.00   0.00   0.00   0.05   0.00   -0.14  20.00
 19:45    0.00     0.69   0.00   0.68   0.04   0.00   0.00   0.00   0.03   0.00   -0.16  20.00
 20:00    0.00     0.71   0.00   0.69   0.05   0.00   0.00   0.00   0.03   0.00   -0.16  20.00
 20:15    0.00     0.70   0.00   0.65   0.05   0.00   0.00   0.00   0.01   0.00   -0.14  20.00
 20:30    0.00     0.69   0.00   0.64   0.05   0.00   0.00   0.00   0.00   0.00   -0.13  20.00
 20:45    0.00     0.05   0.00   0.00   0.05   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 21:00    0.00     0.69   0.00   0.66   0.03   0.00   0.00   0.00   0.00   0.00   -0.13  20.00
 21:15    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 21:30    0.00     0.02   0.00   0.00   0.02   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 21:45    0.00     0.02   0.00   0.00   0.02   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 22:00    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 22:15    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 22:30    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 22:45    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 23:00    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 23:15    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 23:30    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 23:45    0.00     0.02   0.00   0.00   0.03   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
Totaal    0.00    27.15   0.00  44.73   2.90   0.00   0.00   0.00  20.48   0.00   -4.84    NaN

2026-04-15 08:30:09 info: Consumption               0.00 (kWh)
2026-04-15 08:30:09 info: Cost consumption          0.00 (€)
2026-04-15 08:30:09 info: Tariff consumption        0.000 (€/kWh)
2026-04-15 08:30:09 info: Production               44.73 (kWh)
2026-04-15 08:30:09 info: Profit production        -4.84 (€)
2026-04-15 08:30:09 info: Tariff production         0.108 (€/kWh)

2026-04-15 08:30:09 info: 
Calculation profit after optimize in €
Cost before optimize             -4.01
Cost consumption      0.00
Cycle cost            0.06
Penalty cost          0.00
Battery storage       0.00
Boiler storage        0.00
Profit production    -4.84
Total                -4.78
Cost after optimize              -4.78
Profit:                           0.76
2026-04-15 08:30:09 info: Doorzetten van alle settings naar HA
2026-04-15 08:30:09 info: Grid set point: -872.0 W
2026-04-15 08:30:09 info: Cycle cost QCells1: 0.06 euro
2026-04-15 08:30:09 info: Netto vermogen naar(+)/uit(-) omvormer QCells1: -3000 W  tot: 2026-04-15 08:33
2026-04-15 08:30:09 info: Balanceren: off
2026-04-15 08:30:09 info: Vermogen uit batterij: 0W
2026-04-15 08:30:09 info: Vermogen dat binnenkomt van pv: 708W
2026-04-15 08:30:09 info: Vermogen dat binnenkomt van ac: -708W
2026-04-15 08:30:09 info: Waarde SoC na eerste uur: 10.0%
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
{
  "config_version": 0,
  "homeassistant": {},
  "database_ha": {
    "engine": "sqlite",
    "db_path": "/homeassistant",
    "database": "home-assistant_v2.db"
  },
  "database_da": {
    "engine": "sqlite",
    "db_path": "../data",
    "database": "day_ahead.db"
  },
  "meteoserver_key": "!secret meteoserver-key",
  "meteoserver_model": "harmonie",
  "meteoserver_attemps": 2,
  "prices": {
    "source_day_ahead": "nordpool",
    "entsoe-api-key": "!secret entsoe-api-key",
    "energy_taxes_consumption": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.1088,
      "2025-01-01": 0.10154
    },
    "energy_taxes_production": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.1088,
      "2025-01-01": 0.10154
    },
    "cost_supplier_consumption": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "cost_supplier_production": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496,
      "2026-01-01": 0.0
    },
    "vat_consumption": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "vat_production": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "last_invoice": "2025-09-01",
    "tax_refund": false,
    "regular high": 0.5,
    "regular low": 0.4,
    "switch to low": 23
  },
  "logging_level": "info",
  "use_calc_baseload": false,
  "baseload_calc_periode": 56,
  "baseload": [
    0.10,
    0.10,
    0.10,
    0.10,
    0.10,
    0.10,
    0.10,
    0.20,
    0.20,
    0.20,
    0.10,
    0.10,
    0.20,
    0.10,
    0.20,
    0.10,
    0.10,
    0.50,
    0.50,
    0.20,
    0.20,
    0.10,
    0.10,
    0.10
  ],
  "graphical_backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "battery_balance": true,
    "prices_consumption": true,
    "prices_production": false,
    "prices_spot": true,
    "average_consumption": true,
    "show": "true"
  },
  "interval": "15min",
  "strategy": "minimize cost",
  "max_gap": 0.001,
  "notifications": {
    "opstarten": false,
    "berekening": false
  },
  "grid": {
    "max_power": 17.0
  },
  "history": {
    "save_days": 7
  },
  "dashboard": {
    "port": 5000
  },
"battery": [
    {"name" : "QCells1",
     "entity actual level": "input_number.dao_calculated_soc",
     "capacity": 7.2,
     "upper limit": 90,
     "lower limit": 10,
     "charge stages" : [
        {"power": 0.0, "efficiency": 1}
    ],
     "discharge stages" : [
        {"power": 0.0, "efficiency": 1},
        {"power": 3000, "efficiency": 0.925},
        {"power": 8000, "efficiency": 0.9}
    ],
     "minimum power" : 100,
     "dc_to_bat_max_power": 3000,
     "bat_to_dc_max_power": 3000,
     "dc_to_bat efficiency" : 0.95,
     "bat_to_dc efficiency": 0.95,
     "cycle cost" : 0.005,
     "entity set power feedin": "input_number.dao_set_power_feedin",
     "entity balance switch": "input_boolean.dao_balance_switch",
     "entity from battery": "input_number.dao_from_battery",
     "entity calculated soc": "input_number.dao_calculated_soc",
"solar": [
  {
    "name": "string1",
    "ml_prediction": "true",
    "entities sensors": ["sensor.saj_sununo_plus_4k_m_total_yield"],
    "tilt": 30,
    "orientation": 0,
    "capacity": 3.300,
    "yield": 0.0059
  },
  {
    "name": "string2en3",
    "ml_prediction": "true",
    "entities sensors": ["sensor.saj_sununo_plus_5k_m_total_yield"],
    "tilt": 30,
    "orientation": 0,
    "capacity": 3.850,
    "yield": 0.0075
  }
]
    }
  ],
"solar": [
  {
    "name": "string4enNoord",
    "ml_prediction": "true",
    "entities sensors": ["sensor.saj_r5_3_6k_s2_total_yield_gefilterd"],
    "tilt": 30,
    "orientation": 0,
    "capacity": 6.695,
    "yield": 0.008
  },
  {
    "name": "Envoy",
    "ml_prediction": "true",
    "entities sensors": ["sensor.envoy_121317004432_lifetime_energy_production"],
    "tilt": 15,
    "orientation": 0,
    "capacity": 5.000,
    "yield": 0.0029
  }
],
  "electric_vehicle": [],
  "machines": [],
  "boiler": {
    "boiler_present": false,
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater_present": false,
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
  "tibber": {
    "api_token": "!secret tibber_api_token",
    "api_url": "https://api.tibber.com/v1-beta/gql"
  },
  "xgboost": {
    "tune_hyperparameters": true
  },
  "report": {
    "entities_grid_consumption": [
      "sensor.grid_consumption_low",
      "sensor.grid_consumption_high"
    ],
    "entities_grid_production": [
      "sensor.grid_production_low",
      "sensor.grid_production_high"
    ],
    "entities_solar_production_ac": [
      "sensor.solaredge_woning_ac_energy_kwh"
    ],
    "entities_solar_production_dc": [],
    "entities_ev_consumption": [
      "sensor.laadpunt_total_energy"
    ],
    "entities_wp_consumption": [],
    "entities_boiler_consumption": [],
    "entities_battery_consumption": [
      "sensor.ess_grid_consumption"
    ],
    "entities_battery_production": [
      "sensor.ess_grid_production"
    ],
    "entities_machine_consumption": []
  },
  "scheduler": {
    "active": true,
    "schedule": [
      {
        "time": "0430",
        "action": "get_meteo_data"
      },
      {
        "time": "1030",
        "action": "get_meteo_data"
      },
      {
        "time": "1630",
        "action": "get_meteo_data"
      },
      {
        "time": "2230",
        "action": "get_meteo_data"
      },
      {
        "time": "1255",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1355",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1455",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1554",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1655",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "xx00",
        "action": "calc_optimum"
      },
      {
        "time": "xx15",
        "action": "calc_optimum"
      },
      {
        "time": "xx30",
        "action": "calc_optimum"
      },
      {
        "time": "xx45",
        "action": "calc_optimum"
      },
      {
        "time": "2359",
        "action": "clean_data"
      },
      {
        "time": "0005",
        "action": "train_ml_predictions"
      }
    ]
  }
}
thomvh schreef op dinsdag 14 april 2026 @ 15:48:
Hoe wil DAO de waardes hebben? Ik heb namelijk een aantal waardes die per week of per dag resetten. Ik doel hier voornamelijk mee op de waardes van bijvoorbeeld PV:
[Afbeelding]

Ik zit al te kijken of ik op de een of andere manier deze waarde kan laten doorlopen door een Home Assistant helper. Want ik weet anders geen raad hiermee.
Sorry ik snap je vraag niet zo goed.
De data die DAO wil hebben kunnen gewoon in een sensor of input_number of input_boolean staan.
De door DAO berekende waarden kunt je het beste naar een helper (input_....) laten schrijven en deze met een automation of template doorzetten naar je thuisbatterij of anderszins.

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


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
KC27 schreef op woensdag 15 april 2026 @ 10:19:
[...]

Sorry ik snap je vraag niet zo goed.
De data die DAO wil hebben kunnen gewoon in een sensor of input_number of input_boolean staan.
De door DAO berekende waarden kunt je het beste naar een helper (input_....) laten schrijven en deze met een automation of template doorzetten naar je thuisbatterij of anderszins.
Het gaat hierbij om de reporting functie en baseload berekening straks. Mijn waardes gaan naar nul op wekelijkse basis. Ik kan me zo voorstellen dat DAO deze graag als totaal wil hebben die gewoon op blijft lopen. Ik heb dit nu met een utility meter opgelost.

  • Psycho_Mantis
  • Registratie: Februari 2007
  • Laatst online: 07:22

Psycho_Mantis

Wow. So Amaze.

Sinds een week werkt DOA plots niet meer correct. (versie 2026.4.2)
2026-04-15 13:10:16 INFO: Loaded 6 secrets from ../data/secrets.json
2026-04-15 13:10:16 INFO: Validating configuration with ConfigurationV0
2026-04-15 13:10:16 info: Day Ahead Optimalisering versie: 2026.04.2
2026-04-15 13:10:16 info: Day Ahead Optimalisering gestart op: 15-04-2026 13:10:16
2026-04-15 13:10:16 info: Day Ahead Optimalisatie gestart: 15-04-2026 13:10:16 taak: calc_optimum_met_debug
2026-04-15 13:10:16 info: Debug = True
2026-04-15 13:10:16 fout: Er ontbreken kwartierwaarden van de day-ahead tarieven, de berekening wordt afgebroken
Ik gebruik nordpool al een poosje. Daarvoor ook tibber gebruikt, maar beide gaan momenteel niet zo lekker.
"prices": {
"source_day_ahead": "nordpool",

Snap niet zo goed waar het mis gaat. als ik het handmatig ophaal lijkt hij wel data binnen te halen.

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Wat mij ook op valt, en misschien moet ik mijn automation hier voor aanpassen is dat DAO in cost optimized heel graag terug levert aan het net. Alleen loop momenteel een beetje te botsen met hoe ik allemaal goed kan automatiseren. Als ik bijvoorbeeld hier naar 15:15 - 15:30 kijk. Hierbij zal ik dan "Zero export to CT" moeten aanzetten op mijn Deye omvormer met een limiet op de "Max charge current"?

Afbeeldingslocatie: https://tweakers.net/i/CxEq5lbbjgLzW72fCrCdp-B0O74=/x800/filters:strip_exif()/f/image/llaDkRaF1q1vSPVG3bqj6Buo.png?f=fotoalbum_large
Psycho_Mantis schreef op woensdag 15 april 2026 @ 13:18:
Sinds een week werkt DOA plots niet meer correct. (versie 2026.4.2)


[...]


Ik gebruik nordpool al een poosje. Daarvoor ook tibber gebruikt, maar beide gaan momenteel niet zo lekker.
"prices": {
"source_day_ahead": "nordpool",

Snap niet zo goed waar het mis gaat. als ik het handmatig ophaal lijkt hij wel data binnen te halen.
Als je "handmatig" prijs-data ophaalt bij Nordpool gaat dat per dag: dus eerst van vandaag; daarna van morgen.
Komen ook de meteodata binnen?

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

thomvh schreef op woensdag 15 april 2026 @ 13:22:
Wat mij ook op valt, en misschien moet ik mijn automation hier voor aanpassen is dat DAO in cost optimized heel graag terug levert aan het net. Alleen loop momenteel een beetje te botsen met hoe ik allemaal goed kan automatiseren. Als ik bijvoorbeeld hier naar 15:15 - 15:30 kijk. Hierbij zal ik dan "Zero export to CT" moeten aanzetten op mijn Deye omvormer met een limiet op de "Max charge current"?

[Afbeelding]
Ik weet helaas te weinig van Deye, misschien kunnen andere gebruikers je helpen?

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

thesaxofonist schreef op woensdag 15 april 2026 @ 09:06:
Ik simuleer een hybride batterij en zie dat DAO af en toe rendement berekent als dat niet relevant is (en dan ook niet klopt), bijvoorbeeld deze ochtend. Om 8.30 uur wordt er een beetje energie opgewekt en teruggeleverd aan het net. Er wordt geen rendement van de batterij getoond en dat lijkt me correct.

Om 9.00 is er nog dezelfde situatie en wordt een batterijrendement van 105,26% getoond. Dat lijkt me niet correct. Om 9.45 wordt energie naar de batterij gestuurd en wijzigt het rendement naar 95% (correct).

De rest van de berekeningen lijken te kloppen. Het is alleen deze kolom. Ik heb er verder geen last van.

[Afbeelding]


[...]


[...]
Die hoge efficiencies komen door je pv_dc. Dat is eigenlijk nog een foutje in DAO.
Ik zal er nog een keer naar kijken, voorlopig zou ik mezelf maar even "rijk" rekenen.

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

balk schreef op dinsdag 14 april 2026 @ 22:06:
[...]

Ik denk dat het me gelukt is om het werkend te krijgen. Gemini adviseerde me om het volgende te doen
* CPU type "host" (had ik al)
* architecture q35 (hielp niet)
* compileer met CXXFLAGS="-O2 -march=x86-64-v2 -pipe" ipv -march=native -O3

Ik denk dat dat laatste ook gelukt is door in de docker te bashen, build_miplib.sh aan te passen en dan opnieuw te draaien. Hierna geen foutmeldingen maar ik weet niet zeker of de custom miplib wordt gebruikt. Is er een manier om te zien welke lib gebruikt wordt?

Dit was wel een behoorlijke omweg, en niet persistent. Is het misschien mogelijk om CXXFLAGS aan te gaan passen via een config?

====
hmm, nu toch weer een foutmelding.
Als je de berekening runt met log level "debug" dan wordt bij het begin van de mip-berekening de compileerdatum getoond.
Die van mip-zelf zijn van maart 2026, die van jezelf hebben jouw compileerdatum.
Verder als je een terminal ingang naar de app/addon hebt kun je met "printenv" zien welke env-variabelen er zijn.
Daar zouden dan de mip-variabelen (PMIP_CBC_LIBRARY, LD_LIBRARY_PATH) tussen moeten staan en die moeten dan verwijzen naar /root/dao/prog/miplib/lib.
Tenslotte in opstart-log van de app/addon moet zoiets staan als hij jouw binaries gebruikt:
bashio::log.info "Copying saved miplib-binaries"(of draai jij buiten HA om?)

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


  • thesaxofonist
  • Registratie: November 2016
  • Nu online
KC27 schreef op woensdag 15 april 2026 @ 19:32:
[...]

Die hoge efficiencies komen door je pv_dc. Dat is eigenlijk nog een foutje in DAO.
Ik zal er nog een keer naar kijken, voorlopig zou ik mezelf maar even "rijk" rekenen.
Prima. Ik heb er geen last van. Hoeft wat mij betreft niet aangepast te worden.

En ik wil ook even zeggen dat ik het een geweldig programma vindt. Dus mijn complimenten aan iedereen die bij de bouw ervan betrokken is!

[ Voor 16% gewijzigd door thesaxofonist op 15-04-2026 20:15 ]


  • diamanten
  • Registratie: Juli 2024
  • Laatst online: 16:43
Deze week geupdate naar 2026.04.2.
Toevallig keek ik er net naar: prijzen ophalen werkt wel, maar een optimaliseringsberekening geeft een foutmelding:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
2026-04-15 21:39:42 INFO: Loaded 6 secrets from ../data/secrets.json
2026-04-15 21:39:42 INFO: Validating configuration with ConfigurationV0
2026-04-15 21:39:42 info: Day Ahead Optimalisering versie: 2026.04.2
2026-04-15 21:39:42 info: Day Ahead Optimalisering gestart op: 15-04-2026 21:39:42
2026-04-15 21:39:42 info: Day Ahead Optimalisatie gestart: 15-04-2026 21:39:42 taak: calc_optimum_met_debug
2026-04-15 21:39:42 info: Debug = True
2026-04-15 21:39:42 info: Baseload uit instellingen
2026-04-15 21:39:43 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
  File "/root/dao/prog/da_base.py", line 694, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 538, in calc_optimum_met_debug
    dacalc.calc_optimum()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/day_ahead.py", line 288, in calc_optimum
    solar_prog = self.calc_solar_predictions(
        self.solar[s], start_interval_dt, end, self.interval
    )
  File "/root/dao/prog/da_base.py", line 587, in calc_solar_predictions
    solar_prog = solar_predictor.predict_solar_device(
        solar_option, vanaf, tot
    )
  File "/root/dao/prog/solar_predictor.py", line 1024, in predict_solar_device
    prediction = self.predict(weather_data)
  File "/root/dao/prog/solar_predictor.py", line 702, in predict
    prediction = self.model.predict(featured_df)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 751, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/sklearn.py", line 1446, in predict
    predts = self.get_booster().inplace_predict(
        data=X,
    ...<4 lines>...
        validate_features=validate_features,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 751, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 2854, in inplace_predict
    self._validate_features(fns)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 3429, in _validate_features
    raise ValueError(msg.format(self.feature_names, feature_names))
ValueError: feature_names mismatch: ['temperature', 'irradiance', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr'] ['temperature', 'irradiance', 'windvelocity', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr']
training data did not have the following fields: windvelocity
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 4709, in <module>
    main()
    ~~~~^^
  File "/root/dao/webserver/../prog/day_ahead.py", line 4680, in main
    da_calc.run_task_function("calc_optimum_met_debug")
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_base.py", line 694, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 538, in calc_optimum_met_debug
    dacalc.calc_optimum()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/day_ahead.py", line 288, in calc_optimum
    solar_prog = self.calc_solar_predictions(
        self.solar[s], start_interval_dt, end, self.interval
    )
  File "/root/dao/prog/da_base.py", line 587, in calc_solar_predictions
    solar_prog = solar_predictor.predict_solar_device(
        solar_option, vanaf, tot
    )
  File "/root/dao/prog/solar_predictor.py", line 1024, in predict_solar_device
    prediction = self.predict(weather_data)
  File "/root/dao/prog/solar_predictor.py", line 702, in predict
    prediction = self.model.predict(featured_df)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 751, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/sklearn.py", line 1446, in predict
    predts = self.get_booster().inplace_predict(
        data=X,
    ...<4 lines>...
        validate_features=validate_features,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 751, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 2854, in inplace_predict
    self._validate_features(fns)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 3429, in _validate_features
    raise ValueError(msg.format(self.feature_names, feature_names))
ValueError: feature_names mismatch: ['temperature', 'irradiance', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr'] ['temperature', 'irradiance', 'windvelocity', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr']
training data did not have the following fields: windvelocity
De config heb ik verder niet gewijzigd, wat kan er aan de hand zijn?

  • rescla
  • Registratie: November 2012
  • Nu online
diamanten schreef op woensdag 15 april 2026 @ 21:50:
Deze week geupdate naar 2026.04.2.
Toevallig keek ik er net naar: prijzen ophalen werkt wel, maar een optimaliseringsberekening geeft een foutmelding:

[...]

De config heb ik verder niet gewijzigd, wat kan er aan de hand zijn?
Je moet de "ML modellen trainen" run even triggeren. Als die klaar is doet hij het weer.

  • diamanten
  • Registratie: Juli 2024
  • Laatst online: 16:43
rescla schreef op woensdag 15 april 2026 @ 21:54:
[...]

Je moet de "ML modellen trainen" run even triggeren. Als die klaar is doet hij het weer.
Helaas, werkt niet:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
2026-04-15 21:58:59 INFO: Loaded 6 secrets from ../data/secrets.json
2026-04-15 21:58:59 INFO: Validating configuration with ConfigurationV0
2026-04-15 21:58:59 info: Day Ahead Optimalisering versie: 2026.04.2
2026-04-15 21:58:59 info: Day Ahead Optimalisering gestart op: 15-04-2026 21:58:59
2026-04-15 21:58:59 info: Day Ahead Optimalisatie gestart: 15-04-2026 21:58:59 taak: train_ml_predictions
2026-04-15 21:58:59 info: KNMI-weerstation: 278 HEINO
2026-04-15 21:58:59 info: Er zijn nog geen winddata van knmi aanwezig
2026-04-15 21:59:00 info: Er zijn data van het KNMI binnengekomen vanaf 2023-04-14 00:00:00+02:00 tot en met 2026-04-09 23:00:00+02:00
2026-04-15 22:00:32 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 151, in execute
    query = self.mogrify(query, args)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 129, in mogrify
    query = query % self._escape_args(args, conn)
                    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 104, in _escape_args
    return {key: conn.literal(val) for (key, val) in args.items()}
                 ~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 542, in literal
    return self.escape(obj, self.encoders)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 535, in escape
    return converters.escape_item(obj, self.charset, mapping=mapping)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 25, in escape_item
    val = encoder(val, mapping)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 56, in escape_float
    raise ProgrammingError("%s can not be used with MySQL" % s)
pymysql.err.ProgrammingError: nan can not be used with MySQL

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/dao/prog/da_base.py", line 694, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 644, in train_ml_predictions
    solar_predictor.run_train()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/solar_predictor.py", line 979, in run_train
    weather_data = self.get_weatherdata(start=start)
  File "/root/dao/prog/solar_predictor.py", line 895, in get_weatherdata
    self.import_knmi_df(start, end)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/prog/solar_predictor.py", line 854, in import_knmi_df
    self.get_and_save_knmi_data(start, latest_dt, ["FH"])
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/solar_predictor.py", line 824, in get_and_save_knmi_data
    self.db_da.savedata(save_df, tablename="values")
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/lib/db_manager.py", line 308, in savedata
    connection.execute(insert_value)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 151, in execute
    query = self.mogrify(query, args)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 129, in mogrify
    query = query % self._escape_args(args, conn)
                    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 104, in _escape_args
    return {key: conn.literal(val) for (key, val) in args.items()}
                 ~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 542, in literal
    return self.escape(obj, self.encoders)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 535, in escape
    return converters.escape_item(obj, self.charset, mapping=mapping)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 25, in escape_item
    val = encoder(val, mapping)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 56, in escape_float
    raise ProgrammingError("%s can not be used with MySQL" % s)
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) nan can not be used with MySQL
[SQL: INSERT INTO `values` (variabel, time, value) VALUES (%(variabel)s, %(time)s, %(value)s)]
[parameters: {'variabel': 23, 'time': 1740513600, 'value': nan}]
(Background on this error at: https://sqlalche.me/e/20/f405)
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 151, in execute
    query = self.mogrify(query, args)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 129, in mogrify
    query = query % self._escape_args(args, conn)
                    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 104, in _escape_args
    return {key: conn.literal(val) for (key, val) in args.items()}
                 ~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 542, in literal
    return self.escape(obj, self.encoders)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 535, in escape
    return converters.escape_item(obj, self.charset, mapping=mapping)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 25, in escape_item
    val = encoder(val, mapping)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 56, in escape_float
    raise ProgrammingError("%s can not be used with MySQL" % s)
pymysql.err.ProgrammingError: nan can not be used with MySQL

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 4709, in <module>
    main()
    ~~~~^^
  File "/root/dao/webserver/../prog/day_ahead.py", line 4703, in main
    da_calc.run_task_function("train_ml_predictions")
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_base.py", line 694, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 644, in train_ml_predictions
    solar_predictor.run_train()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/solar_predictor.py", line 979, in run_train
    weather_data = self.get_weatherdata(start=start)
  File "/root/dao/prog/solar_predictor.py", line 895, in get_weatherdata
    self.import_knmi_df(start, end)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/prog/solar_predictor.py", line 854, in import_knmi_df
    self.get_and_save_knmi_data(start, latest_dt, ["FH"])
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/solar_predictor.py", line 824, in get_and_save_knmi_data
    self.db_da.savedata(save_df, tablename="values")
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/lib/db_manager.py", line 308, in savedata
    connection.execute(insert_value)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
        self,
        distilled_parameters,
        execution_options or NO_OPTIONS,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
    return connection._execute_clauseelement(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self, distilled_params, execution_options
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
        dialect,
    ...<8 lines>...
        cache_hit=cache_hit,
    )
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ~~~~~~~~~~~~~~~~~~~~~~~~~^
        dialect, context, statement, parameters
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        e, str_statement, effective_parameters, cursor, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        cursor, str_statement, effective_parameters, context
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 151, in execute
    query = self.mogrify(query, args)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 129, in mogrify
    query = query % self._escape_args(args, conn)
                    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/cursors.py", line 104, in _escape_args
    return {key: conn.literal(val) for (key, val) in args.items()}
                 ~~~~~~~~~~~~^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 542, in literal
    return self.escape(obj, self.encoders)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/connections.py", line 535, in escape
    return converters.escape_item(obj, self.charset, mapping=mapping)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 25, in escape_item
    val = encoder(val, mapping)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pymysql/converters.py", line 56, in escape_float
    raise ProgrammingError("%s can not be used with MySQL" % s)
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) nan can not be used with MySQL
[SQL: INSERT INTO `values` (variabel, time, value) VALUES (%(variabel)s, %(time)s, %(value)s)]
[parameters: {'variabel': 23, 'time': 1740513600, 'value': nan}]
(Background on this error at: https://sqlalche.me/e/20/f405)
Vervogens alles opnieuw geladen. Deze foutmelding staat er een paar keer in:
code:
1
2
ValueError: feature_names mismatch: ['temperature', 'irradiance', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr'] ['temperature', 'irradiance', 'windvelocity', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr']
training data did not have the following fields: windvelocity

  • rescla
  • Registratie: November 2012
  • Nu online
diamanten schreef op woensdag 15 april 2026 @ 22:02:
[...]

Helaas, werkt niet:

[...]


Vervogens alles opnieuw geladen. Deze foutmelding staat er een paar keer in:
code:
1
2
ValueError: feature_names mismatch: ['temperature', 'irradiance', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr'] ['temperature', 'irradiance', 'windvelocity', 'day_of_week', 'hour', 'quarter', 'month', 'season', 'week_nr']
training data did not have the following fields: windvelocity
Ik ben niet de ontwikkelaar, maar dat die feature names mismatch komt doordat het ML model niet opnieuw getrained is. Die andere fout met nan in values 23, values 23 is windsnelheid. Waarom die nan is weet ik niet, er lijkt iets fout te gaan bij het verwerken van de data die van het KNMI terugkomt?

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
KC27 schreef op donderdag 4 december 2025 @ 09:43:
[...]

Klopt, zit er (nog) niet in, maar bij mij gebruikt hij maar 50W (passieve koeling met twee waterpompen), dus ik vind het niet te moeite om dat te optimaliseren.
Mocht je nog bijhouden hoeveel interesse er is, ik ben ook geïnteresseerd! Mijn WP kan een Koel of een Verwarm offset meegeven met een "PV request" toggle. Afbeeldingslocatie: https://tweakers.net/i/VImTju_bHVuEg670VNqAdIZpntA=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/AU5mleTgwByw5sDWwdI6ifmk.png?f=user_large
diamanten schreef op woensdag 15 april 2026 @ 21:50:
Deze week geupdate naar 2026.04.2.
Toevallig keek ik er net naar: prijzen ophalen werkt wel, maar een optimaliseringsberekening geeft een foutmelding:

[...]

De config heb ik verder niet gewijzigd, wat kan er aan de hand zijn?
Zie de changelog: je moet je ml-modellen opnieuw trainen.

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

rescla schreef op woensdag 15 april 2026 @ 22:30:
[...]

Ik ben niet de ontwikkelaar, maar dat die feature names mismatch komt doordat het ML model niet opnieuw getrained is. Die andere fout met nan in values 23, values 23 is windsnelheid. Waarom die nan is weet ik niet, er lijkt iets fout te gaan bij het verwerken van de data die van het KNMI terugkomt?
Dat NaN-probleem is opgelost in versie 2026.4.3 die komt over een klein uurtje.

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

Versie 2026.4.3 is gepubliceerd.
Deze is exact gelijk aan testversie 2026.4.3.rc1.
Dit staat in de changelog:
Changes
- Added flatpickr datetime picker in Home-menu (PR from @Dogooder)

Fixes
- changed ev-ampere from integer to float
- Skip NaN values when persisting DB records
- Fix startup issue (PR from @simnet)

Voor een nadere toelichting verwijs ik graag naar de aankondiging van de testversie:
KC27 in "Day Ahead Optimizer: ervaringen met Home Assistant-addon DAO"

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


  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
KC27 schreef op woensdag 15 april 2026 @ 23:15:
Versie 2026.4.3 is gepubliceerd.
Deze is exact gelijk aan testversie 2026.4.3.rc1.
Dit staat in de changelog:
Changes
- Added flatpickr datetime picker in Home-menu (PR from @Dogooder)

Fixes
- changed ev-ampere from integer to float
- Skip NaN values when persisting DB records
- Fix startup issue (PR from @simnet)

Voor een nadere toelichting verwijs ik graag naar de aankondiging van de testversie:
KC27 in "Day Ahead Optimizer: ervaringen met Home Assistant-addon DAO"
Ik krijg deze foutmelding in de supervisor logs. DAO start niet.
code:
1
2
2026-04-16 06:43:04.830 ERROR (MainThread) [supervisor.docker.manager] Image ghcr.io/corneel27/dao-amd64:2026.04.3 does not exist
2026-04-16 06:43:04.830 ERROR (MainThread) [supervisor.addons.addon] Could not start container for app 94e386ba_day_ahead_opt: Image ghcr.io/corneel27/dao-amd64:2026.04.3 does not exist
Gelukkig heb ik een backup :)

  • Psycho_Mantis
  • Registratie: Februari 2007
  • Laatst online: 07:22

Psycho_Mantis

Wow. So Amaze.

KC27 schreef op woensdag 15 april 2026 @ 19:29:
[...]

Als je "handmatig" prijs-data ophaalt bij Nordpool gaat dat per dag: dus eerst van vandaag; daarna van morgen.
Komen ook de meteodata binnen?
Het is blijkbaar een hardware probleem. Het fannetje van mijn intel-nuc is kapot gedraaid na 7 jaar :+
Heel home assistant was traag geworden en begon requests te missen door oververhitting.
balk schreef op donderdag 16 april 2026 @ 06:48:
[...]

Ik krijg deze foutmelding in de supervisor logs. DAO start niet.
code:
1
2
2026-04-16 06:43:04.830 ERROR (MainThread) [supervisor.docker.manager] Image ghcr.io/corneel27/dao-amd64:2026.04.3 does not exist
2026-04-16 06:43:04.830 ERROR (MainThread) [supervisor.addons.addon] Could not start container for app 94e386ba_day_ahead_opt: Image ghcr.io/corneel27/dao-amd64:2026.04.3 does not exist
Gelukkig heb ik een backup :)
Deze snap ik echt niet.
Afbeeldingslocatie: https://tweakers.net/i/KuL-NzqkhfkHKtAWNkcObiRu6go=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/hM165vZvsKhiaQZKgjDN3dDS.png?f=user_large
168 andere gebruikers gingen je inmiddels voor ...

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


  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
KC27 schreef op donderdag 16 april 2026 @ 09:21:
[...]

Deze snap ik echt niet.
[Afbeelding]
168 andere gebruikers gingen je inmiddels voor ...
Ik zal het nog eens proberen

  • diamanten
  • Registratie: Juli 2024
  • Laatst online: 16:43
KC27 schreef op woensdag 15 april 2026 @ 23:03:
[...]

Dat NaN-probleem is opgelost in versie 2026.4.3 die komt over een klein uurtje.
Dank, het werkt weer!

  • f.welvering
  • Registratie: Oktober 2009
  • Laatst online: 13:23
Hallo Allen,

Mijn solar prediction grafiekjes zien er allemaal een beetje uit als onderstaande.
Hierin valt op dat de werkelijke opwek eigenlijk altijd wat eerder is en ook eerder stopt.
Aan welke waarde moet ik nu gaan sleutelen om dit te verbeteren?

Afbeeldingslocatie: https://tweakers.net/i/rxniDaREgqglbcSYZ1moIyEz2TM=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/sAHsaVdOQinz343oB8tz7JLS.png?f=user_large

WP: DeWarmte PompAO 6.4Kw Hybrid, CV Intergas, Thermostaat Netatmo, 70m2 vvw, PV: 34x 325wp solaredge omvormer en optimizers,Wan ip adres weten? https://mijnips.eu

f.welvering schreef op donderdag 16 april 2026 @ 11:42:
Hallo Allen,

Mijn solar prediction grafiekjes zien er allemaal een beetje uit als onderstaande.
Hierin valt op dat de werkelijke opwek eigenlijk altijd wat eerder is en ook eerder stopt.
Aan welke waarde moet ik nu gaan sleutelen om dit te verbeteren?

[Afbeelding]
Ik denk dat er niks mis mee is.
Heb je de panelen op oost liggen?
Kun je ook de tabel delen, dan zie je de r².

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


  • Oilman
  • Registratie: December 2012
  • Laatst online: 17:38
f.welvering schreef op donderdag 16 april 2026 @ 11:42:
Hallo Allen,

Mijn solar prediction grafiekjes zien er allemaal een beetje uit als onderstaande.
Hierin valt op dat de werkelijke opwek eigenlijk altijd wat eerder is en ook eerder stopt.
Aan welke waarde moet ik nu gaan sleutelen om dit te verbeteren?

[Afbeelding]
In de loop van de middag steeds meer schaduw op de panelen?

  • ThaDude
  • Registratie: December 2000
  • Laatst online: 12:26

ThaDude

Hang Loose

@KC27 ik ben deze week gestart via de addon in HA! Tof project weer dit zeg!

Ik had wat problemen met de normale release dus heb de experimentele versie gepakt. Deze kreeg ik wel werkende in HA. De normale liep eruit iets met Da_calc oid. Kon er niks over vinden in de Issues.

Vast enorme N00P vraag maar is er een manier om terug te switchen/up te graden? Ik zie hier nergens wat over namelijk.

We're machines just like everything else in nature. (gasloos sinds 01-10-2020, WP: SW75YAA/ERSD-VM2D, DJG WPS 300, 18 hp CPC, 11,1 kWp


  • f.welvering
  • Registratie: Oktober 2009
  • Laatst online: 13:23
KC27 schreef op donderdag 16 april 2026 @ 12:12:
[...]

Ik denk dat er niks mis mee is.
Heb je de panelen op oost liggen?
Kun je ook de tabel delen, dan zie je de r².
Panelen liggen inderdaad oostelijk.
Misschien interpeteer ik het dan verkeerd, ik had het idee dat die mooie boog met de opwek mee moest lopen.

Mijn tabel:
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
29
Straling    Productie
uur     gemeten     prognose    gemeten     prognose dao    prognose ml
    J/cm2   J/cm2   kWh     kWh     kWh
00:00   0.000   0.000   0.000   0.000   0.003
01:00   0.000   0.000   0.000   0.000   0.003
02:00   0.000   0.000   0.000   0.000   0.013
03:00   0.000   0.000   0.000   0.000   0.012
04:00   0.000   0.000   0.000   0.000   0.012
05:00   0.000   0.000   0.000   0.000   0.012
06:00   1.000   1.000   0.000   0.021   0.012
07:00   27.000  27.000  0.456   0.646   0.562
08:00   80.000  82.000  1.828   2.108   2.447
09:00   135.000     139.000     3.092   3.635   4.268
10:00   183.000     190.000     5.928   4.790   6.206
11:00   223.000     232.000     8.176   5.498   6.505
12:00   199.000     259.000     5.944   4.271   5.684
13:00   181.000     270.000     5.128   3.355   3.951
14:00   248.000     258.000     4.136   3.361   3.410
15:00   205.000     234.000     2.096   1.354   2.351
16:00   198.000     199.000     0.860   0.379   2.175
17:00   152.000     143.000     0.636   0.291   1.068
18:00   94.000  87.000  0.424   0.180   0.965
19:00   39.000  20.000  0.196   0.719   0.488
20:00   4.000   3.000   0.012   0.086   0.023
21:00   0.000   0.000   0.000   0.000   0.003
22:00   0.000   0.000   0.000   0.000   0.003
23:00   0.000   0.000   0.000   0.000   0.002
Totaal  1969.000    2144.000    38.912  30.695  40.182
R²      0.933       0.878   0.934
Afbeeldingslocatie: https://tweakers.net/i/FkXUL9Sqd6jVYGuzrX9OzX2m_zk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/S7qn0poOIZcZrIKWzeGy9hcV.png?f=user_large

[ Voor 6% gewijzigd door f.welvering op 16-04-2026 16:15 ]

WP: DeWarmte PompAO 6.4Kw Hybrid, CV Intergas, Thermostaat Netatmo, 70m2 vvw, PV: 34x 325wp solaredge omvormer en optimizers,Wan ip adres weten? https://mijnips.eu

f.welvering schreef op donderdag 16 april 2026 @ 16:14:
[...]


Panelen liggen inderdaad oostelijk.
Misschien interpeteer ik het dan verkeerd, ik had het idee dat die mooie boog met de opwek mee moest lopen.

Mijn tabel:
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
29
Straling    Productie
uur     gemeten     prognose    gemeten     prognose dao    prognose ml
    J/cm2   J/cm2   kWh     kWh     kWh
00:00   0.000   0.000   0.000   0.000   0.003
01:00   0.000   0.000   0.000   0.000   0.003
02:00   0.000   0.000   0.000   0.000   0.013
03:00   0.000   0.000   0.000   0.000   0.012
04:00   0.000   0.000   0.000   0.000   0.012
05:00   0.000   0.000   0.000   0.000   0.012
06:00   1.000   1.000   0.000   0.021   0.012
07:00   27.000  27.000  0.456   0.646   0.562
08:00   80.000  82.000  1.828   2.108   2.447
09:00   135.000     139.000     3.092   3.635   4.268
10:00   183.000     190.000     5.928   4.790   6.206
11:00   223.000     232.000     8.176   5.498   6.505
12:00   199.000     259.000     5.944   4.271   5.684
13:00   181.000     270.000     5.128   3.355   3.951
14:00   248.000     258.000     4.136   3.361   3.410
15:00   205.000     234.000     2.096   1.354   2.351
16:00   198.000     199.000     0.860   0.379   2.175
17:00   152.000     143.000     0.636   0.291   1.068
18:00   94.000  87.000  0.424   0.180   0.965
19:00   39.000  20.000  0.196   0.719   0.488
20:00   4.000   3.000   0.012   0.086   0.023
21:00   0.000   0.000   0.000   0.000   0.003
22:00   0.000   0.000   0.000   0.000   0.003
23:00   0.000   0.000   0.000   0.000   0.002
Totaal  1969.000    2144.000    38.912  30.695  40.182
R²      0.933       0.878   0.934
[Afbeelding]
Is inderdaad allemaal prima.
Die globale straling data van Meteoserver (prognose) en KNMI (gemeten) weten niks van de oriëntatie en de helling van jouw panelen, dat is gewoon de straling op een plat vlak. DAO en de voorspeller vertalen dat naar jouw panelen. De ml voorspelling heeft een goede correlatie (0,93) met de werkelijke productie.
Dus: houden zo.

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

ThaDude schreef op donderdag 16 april 2026 @ 15:36:
@KC27 ik ben deze week gestart via de addon in HA! Tof project weer dit zeg!

Ik had wat problemen met de normale release dus heb de experimentele versie gepakt. Deze kreeg ik wel werkende in HA. De normale liep eruit iets met Da_calc oid. Kon er niks over vinden in de Issues.

Vast enorme N00P vraag maar is er een manier om terug te switchen/up te graden? Ik zie hier nergens wat over namelijk.
Je kunt niet zomaar switchen/upgraden van de test-versie naar de productie versie.
Je kunt wel de productieversie opnieuw installeren en daarna met behulp van samba je config kopiëren van de experimentele test-versie naar de productie-versie.

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


  • ThaDude
  • Registratie: December 2000
  • Laatst online: 12:26

ThaDude

Hang Loose

@KC27 oke en staat dit ergens beschreven dan (wat te kopieren) ?

We're machines just like everything else in nature. (gasloos sinds 01-10-2020, WP: SW75YAA/ERSD-VM2D, DJG WPS 300, 18 hp CPC, 11,1 kWp

ThaDude schreef op donderdag 16 april 2026 @ 17:13:
@KC27 oke en staat dit ergens beschreven dan (wat te kopieren) ?
Helaas niet maar het gaat om "options.json"

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


  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
KC27 schreef op donderdag 16 april 2026 @ 09:21:
[...]

Deze snap ik echt niet.
[Afbeelding]
168 andere gebruikers gingen je inmiddels voor ...
Ik snap het ook niet. Maar nu werkt het wel.
balk schreef op donderdag 16 april 2026 @ 19:50:
[...]

Ik snap het ook niet. Maar nu werkt het wel.
En hij rekent ook?

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


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Ik lees twee verschillende dingen over het berekenen van de cycle cost.

In de wiki:
Afschrijfkosten (in euro) van het laden óf ontladen van 1 kWh. B.v. als 1 hele cycle van een 5kWh batterij 10 cent afschrijving kost, dan vul je €0.10/5kWh/2(laden+ ontladen) = 0.01 in.
Dus dan kom ik bij mij op 0,02305 uit.

In het SETTINGS.md document:
cycle cost

Degradation cost per full charge-discharge cycle in euros. Used to factor battery wear into optimization. Calculate as: (battery_cost / warranted_cycles). Example: €5000 battery with 6000 cycles = €0.83/cycle.
Dan kom ik op 2,83 uit.

Dat is nogal een verschil, vandaar dat ik even wil navragen de originele intentie is geweest.

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Nog een additionele vraag. Ik zou er vanuit gaan dat het logischer is om de overtollige zonnestroom op te gaan slaan. Maar het model zoals ik dit interpreteer lijkt de zonnestroom gewoon rustig terug te leveren 1:1 en alleen op goedkope uren te gaan laden.

Ik heb alleen het onderbuik gevoel dat ik iets verkeerds geconfigureerd heb. Mijn persoonlijke redenatie is namelijk dat je de zonnestroom alleen negeert als er genoeg tijd is met negatieve energie, die op papier natuurlijk goedkoper is dan je zonnestroom ivm afschrijving etc. Al is het momenteel natuurlijk met salderen dat het misschien wel voordeliger is, maar daar houd mijn brein naar 3 dagen DAO klooien even op 8)7

Afbeeldingslocatie: https://tweakers.net/i/eiBjtFUMtCC6K63GvGsNd7md61A=/x800/filters:strip_exif()/f/image/DqTJIBN5N20FeOkb82DGeUrH.png?f=fotoalbum_large

Mijn config:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
{
  "config_version": 0,
  "homeassistant": {
    "ip_address": "supervisor",
    "protocol_api": "http"
  },
  "database_ha": {
    "engine": "sqlite",
    "db_path": "/homeassistant",
    "database": "home-assistant_v2.db"
  },
  "database_da": {
    "engine": "sqlite",
    "db_path": "../data",
    "database": "day_ahead.db"
  },
  "meteoserver_key": "!secret meteoserver-key",
  "meteoserver_model": "harmonie",
  "meteoserver_attemps": 2,
  "prices": {
    "source_day_ahead": "tibber",
    "energy_taxes_consumption": {
      "2026-04-01": 0.09161
    },
    "energy_taxes_production": {
      "2026-04-01": 0.09161
    },
    "cost_supplier_consumption": {
      "2026-04-01": 0.020496
    },
    "cost_supplier_production": {
      "2026-04-01": 0.020496
    },
    "vat_consumption": {
      "2026-04-01": 21.0
    },
    "vat_production": {
      "2026-04-01": 21.0
    },
    "last_invoice": "2026-04-15",
    "tax_refund": true,
    "regular high": 0.33,
    "regular low": 0.28,
    "switch to low": 21
  },
  "logging_level": "info",
  "use_calc_baseload": false,
  "baseload_calc_periode": 56,
  "baseload": [
    1.12,
    0.98,
    0.92,
    0.85,
    1.10,
    1.34,
    1.04,
    1.25,
    1.64,
    1.34,
    1.03,
    0.95,
    1.15,
    1.09,
    1.02,
    1.19,
    1.31,
    1.49,
    2.12,
    1.83,
    1.73,
    2.38,
    2.04,
    1.28
  ],
  "graphical_backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "battery_balance": true,
    "prices_consumption": true,
    "prices_production": false,
    "prices_spot": true,
    "average_consumption": true,
    "show": "true"
  },
  "interval": "15min",
  "strategy": "minimize cost",
  "max_gap": 0.005,
  "notifications": {
    "opstarten": false,
    "berekening": false
  },
  "grid": {
    "max_power": 17.0
  },
  "history": {
    "save_days": 7
  },
  "dashboard": {
    "port": 5000
  },
  "battery": [
    {
      "name": "Voll 12 XL",
      "entity_actual_level": "sensor.deye_sunsynk_sol_ark_3_phase_battery_state_of_charge",
      "capacity": 61.4,
      "upper_limit": 100,
      "lower_limit": 20,
      "optimal_lower_level": 33,
      "penalty_low_soc": 0.00025,
      "charge_stages": [
        {"power": 0.0,     "efficiency": 1.00},
        {"power": 2000.0,  "efficiency": 0.944},
        {"power": 5000.0,  "efficiency": 0.970},
        {"power": 10000.0, "efficiency": 0.975},
        {"power": 15000.0, "efficiency": 0.968},
        {"power": 17000.0, "efficiency": 0.961}
      ],
      "discharge_stages": [
        {"power": 0.0,     "efficiency": 1.00},
        {"power": 2000.0,  "efficiency": 0.944},
        {"power": 5000.0,  "efficiency": 0.970},
        {"power": 10000.0, "efficiency": 0.975},
        {"power": 15000.0, "efficiency": 0.968},
        {"power": 17000.0, "efficiency": 0.961}
      ],
      "reduced_hours": {},
      "reduce_power_low_soc": [],
      "reduce_power_high_soc": [],
      "dc_to_bat_efficiency": 0.985,
      "bat_to_dc_efficiency": 0.985,
      "minimum_power": 200,
      "cycle_cost": 0.02305,
      "entity_set_power_feedin": "input_number.dao_power_feedin",
      "entity_set_operating_mode": "input_select.dao_operating_mode",
      "entity_set_operating_mode_on": "Aan",
      "entity_set_operating_mode_off": "Uit",
      "entity_balance_switch": "input_boolean.dao_balance_switch",
      "entity_from_pv": "input_number.dao_power_from_pv",
      "entity_from_ac": "input_number.dao_power_from_ac",
      "entity_calculated_soc": "input_number.dao_calculated_soc",
      "solar": [],
      "entity from batterij": "input_number.dao_power_from_battery"
    }
  ],
  "solar": [
    {
      "name": "Dak voor",
      "tilt": 50.0,
      "orientation": 26.0,
      "capacity": 7.8,
      "yield_factor": 0.01808,
      "strings": [],
      "ml_prediction": false,
      "entities_sensors": [
        "sensor.deye_sunsynk_sol_ark_3_phase_pv_energy_total"
      ],
      "max_power": 8.0
    }
  ],
  "electric_vehicle": [],
  "machines": [],
  "boiler": {
    "boiler_present": false,
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater_present": false,
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
  "tibber": {
    "api_token": "!secret tibber_api_token",
    "api_url": "https://api.tibber.com/v1-beta/gql"
  },
  "xgboost": {
    "tune_hyperparameters": true
  },
  "report": {
    "entities_grid_consumption": [
      "sensor.energy_consumed_tariff_1",
      "sensor.energy_consumed_tariff_2"
    ],
    "entities_grid_production": [
      "sensor.energy_produced_tariff_1",
      "sensor.energy_produced_tariff_2"
    ],
    "entities_solar_production_ac": [
      "sensor.deye_sunsynk_sol_ark_3_phase_pv_energy_total"
    ],
    "entities_solar_production_dc": [],
    "entities_ev_consumption": [
      "sensor.oprit_l1_energy_meter",
      "sensor.oprit_l2_energy_meter",
      "sensor.oprit_r1_energy_meter"
    ],
    "entities_wp_consumption": [
      "sensor.heliotherm_heatpump_electricity_meter_total_gesamt"
    ],
    "entities_boiler_consumption": [],
    "entities_battery_consumption": [
      "sensor.deye_sunsynk_sol_ark_3_phase_battery_energy_in_total"
    ],
    "entities_battery_production": [
      "sensor.deye_sunsynk_sol_ark_3_phase_battery_energy_out_total"
    ],
    "entities_machine_consumption": []
  },
  "scheduler": {
    "active": true,
    "schedule": [
      {
        "time": "0432",
        "action": "get_meteo_data"
      },
      {
        "time": "1032",
        "action": "get_meteo_data"
      },
      {
        "time": "1632",
        "action": "get_meteo_data"
      },
      {
        "time": "2232",
        "action": "get_meteo_data"
      },
      {
        "time": "1255",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1355",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1455",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1555",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1655",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "xx00",
        "action": "calc_optimum"
      },
      {
        "time": "xx15",
        "action": "calc_optimum"
      },
      {
        "time": "xx30",
        "action": "calc_optimum"
      },
      {
        "time": "xx45",
        "action": "calc_optimum"
      },
      {
        "time": "2359",
        "action": "clean_data"
      },
      {
        "time": "2233",
        "action": "calc_baseloads"
      }
    ]
  }
}

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
thomvh schreef op vrijdag 17 april 2026 @ 00:36:
Ik lees twee verschillende dingen over het berekenen van de cycle cost.

In de wiki:

[...]

Dus dan kom ik bij mij op 0,02305 uit.

In het SETTINGS.md document:

[...]

Dan kom ik op 2,83 uit.

Dat is nogal een verschil, vandaar dat ik even wil navragen de originele intentie is geweest.
Deze post, en een hele serie er na praten hier over. Eerder is er ook al veel over gepraat. Het hangt er van af wat je wil; wil je de gedane investering 'eerlijk terugbetalen' dan kies je een hogere cycle cost van 10 cent. Wil je vooruit sparen voor een toekomstige uitgave (goedkoper per kWh) dan kies je een lagere waarde. Ben je de uitgave vergeten, dan kies je 1 cent om onnodig (ont)laden te voorkomen.
De waarde die je quote uit SETTINGS.md moet je nog delen door het aantal kWh van je accu. Veel mensen zweven ergens tussen de 12 en 2 cent per kWh per cycle. In de DAO settings is dat tussen de 6 en 1 cent (want de setting is per halve cycle).

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
thomvh schreef op vrijdag 17 april 2026 @ 10:37:
Nog een additionele vraag. Ik zou er vanuit gaan dat het logischer is om de overtollige zonnestroom op te gaan slaan. Maar het model zoals ik dit interpreteer lijkt de zonnestroom gewoon rustig terug te leveren 1:1 en alleen op goedkope uren te gaan laden.

Ik heb alleen het onderbuik gevoel dat ik iets verkeerds geconfigureerd heb. Mijn persoonlijke redenatie is namelijk dat je de zonnestroom alleen negeert als er genoeg tijd is met negatieve energie, die op papier natuurlijk goedkoper is dan je zonnestroom ivm afschrijving etc. Al is het momenteel natuurlijk met salderen dat het misschien wel voordeliger is, maar daar houd mijn brein naar 3 dagen DAO klooien even op 8)7

[Afbeelding]
Jouw batterij is vrij fors, maar ook met vrij forse omvormer; in ongeveer 4 uur kan je hem vol krijgen. Het is kosten effectiever om goedkoop van het net te laden tussen 12 en 16 en daaromheen zonnestroom te verkopen. DAO maakt elk kwartier of uur het sommetje opnieuw wat voor jouw situatie het meest optimale is. Jij gebruikt "strategy": "minimize cost", dus dat resulteert in meer laden vanaf het net. "minimize consumption" is minder kosteneffectief maar kan beter "voelen".

Wanneer je een lagere cycle cost kiest (jij hebt nu 2,305 cent per kWh per halve cycle) dan zal je zien dat de berekening anders gaat worden. Ik gebruik overigens 1 cent per kWh per halve cycle.

kan je even je config tussen quote blokken zetten?

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
balk schreef op vrijdag 17 april 2026 @ 12:47:
[...]

Deze post, en een hele serie er na praten hier over. Eerder is er ook al veel over gepraat. Het hangt er van af wat je wil; wil je de gedane investering 'eerlijk terugbetalen' dan kies je een hogere cycle cost van 10 cent. Wil je vooruit sparen voor een toekomstige uitgave (goedkoper per kWh) dan kies je een lagere waarde. Ben je de uitgave vergeten, dan kies je 1 cent om onnodig (ont)laden te voorkomen.
De waarde die je quote uit SETTINGS.md moet je nog delen door het aantal kWh van je accu. Veel mensen zweven ergens tussen de 12 en 2 cent per kWh per cycle. In de DAO settings is dat tussen de 6 en 1 cent (want de setting is per halve cycle).
Dit snap ik en dat had ik ook gelezen. Ik zie alleen een contradictie in de teksten in github. De een zegt dat het hanteert wat een volledige cyclus cost. De ander zegt dat het de kosten per kWh voor een cyclus kost. Daar zit nogal een verschil. Voer ik namelijk de volledige cyclus als kost in. Dan wordt de batterij gewoon niet gebruikt, wat volkomen logisch is. Dus ik wilde even dubbel checken of het dus per kWh "hoort" te zijn. Of da het echt per cyclus is. Ik heb hem voor nu op de kWh berekening gezet, wat je ook ziet.

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
KC27 schreef op zondag 14 december 2025 @ 09:10:
[...]

In DAO is maar 1 parameter waarin je de totale (gesommeerde) "opslag" van je leverancier onderbrengt. Bij Tibber ontvang je vanaf 1 januari bij teruglevering nog wel de opslag (je inkoopvergoeding) terug (dat zijn de salderingsregels), maar je betaalt ook een verkoopvergoeding aan Tibber voor het terugleveren.
Als je op jaarbasis meer verbruikt dan teruglevert zijn die twee samen precies nul.
Maar als je meer teruglevert dan afneemt (op jaarbasis) moet daar een negatief bedrag (-0.020496) staan,omdat je de inkoopvergoeding niet meer mag salderen.
nevermind, verkeerd gelezen.
Ik vraag me toch af of dit klopt. Moet de config voor Tibber niet als volgt zijn, ongeacht of je binnen salderen bent of niet? Buiten salderen zal je energy_taxes_production niet meer terug krijgen.
[code]
"prices": {
"energy_taxes_consumption": { "2026-01-01": 0.09157 },
"energy_taxes_production": { "2026-01-01": 0.09157 },
"cost_supplier_consumption": { "2026-01-01": 0.020496 },
"cost_supplier_production": { "2026-01-01": -0.020496 }
[/code]
Dus met een negatieve vergoeding? Zoals ik het begrijp betaal ik 2,0496 cent per geconsumeerde kWh en en krijg ik minus 2,0496 cent per geleverde kWh. Dus dat moet ik betalen. Zie ook hier.

@thomvh jij gebruikt een positieve vergoeding; heb je Tibber? Dat verklaart ook (ten onrechte) de neiging tot terugleveren.

[ Voor 4% gewijzigd door balk op 17-04-2026 14:00 . Reden: nevermind ]


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
balk schreef op vrijdag 17 april 2026 @ 13:01:
[...]

Jouw batterij is vrij fors, maar ook met vrij forse omvormer; in ongeveer 4 uur kan je hem vol krijgen. Het is kosten effectiever om goedkoop van het net te laden tussen 12 en 16 en daaromheen zonnestroom te verkopen. DAO maakt elk kwartier of uur het sommetje opnieuw wat voor jouw situatie het meest optimale is. Jij gebruikt "strategy": "minimize cost", dus dat resulteert in meer laden vanaf het net. "minimize consumption" is minder kosteneffectief maar kan beter "voelen".

Wanneer je een lagere cycle cost kiest (jij hebt nu 2,305 cent per kWh per halve cycle) dan zal je zien dat de berekening anders gaat worden. Ik gebruik overigens 1 cent per kWh per halve cycle.

kan je even je config tussen quote blokken zetten?
Klopt, het pakket is vrij fors omdat we eerlijk gezegd gewoon een erg goede deal kregen, we het ook voor noodstroom willen gebruiken en daarom ook het hogere vermogen omvormer omdat het huis (Alles is electrisch WP, koken, oven etc volledig gasloos) en eventueel elektrische auto's ook gewoon geladen moeten kunnen worden in een noodgeval.

Ja ik kom op 2,305 cent uit wanneer ik de aanschaf kosten (Inclusief omvormer) neem en deze door het aantal cyclussen deel die ik als garantie krijg ((aanschafwaarde / (cycli x kWh) ) / 2). Dat was eigenlijk de volledige onderliggende beredenering.

Maar bedankt voor de uitleg, ik had ergens al een donker bruin vermoeden dat het door het hoge vermogen kunnen laden en ontladen kwam waardoor het gewoon interessanter is. Nu nog even de afweging maken of het de extra slijtage waard is...

Ik heb voor de grap de MQTT logs eens vergeleken van het model wat mijn leverancier gebruikt als aansturing. Die doen dus in de "idle" mode eigenlijk balanceren (Als in NOM), wat ik alleen als ik naar de DAO graphs kijk het model eigenlijk niet wil. Die hebben een soort hybrid want die doen dus altijd NOM tenzij ze aan het verkopen zijn.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Ontladen (Tot 25%, want 25% beschikbaar voor Noodstroom; Grid peak shaving moet UIT als je wilt ontladen anders ontlaadt de omvormer niet)
[Tue Mar 03 08:01:54] Set 'Grid peak shaving' to 'Disabled': Saved.
[Tue Mar 03 08:01:49] Set 'Work mode' to 'Selling first': Saved.
[Tue Mar 03 08:01:44] Set 'Grid charge point 6' to 'false': Saved.
[Tue Mar 03 08:01:40] Set 'Grid charge point 5' to 'false': Saved.
[Tue Mar 03 08:01:35] Set 'Grid charge point 4' to 'false': Saved.
[Tue Mar 03 08:01:31] Set 'Grid charge point 3' to 'false': Saved.
[Tue Mar 03 08:01:30] Set 'Grid charge point 2' to 'false': Saved.
[Tue Mar 03 08:01:25] Set 'Grid charge point 1' to 'false': Saved.
[Tue Mar 03 08:01:20] Set 'Capacity point 6' to '25': Saved.
[Tue Mar 03 08:01:16] Set 'Capacity point 5' to '25': Saved.
[Tue Mar 03 08:01:11] Set 'Capacity point 4' to '25': Saved.
[Tue Mar 03 08:01:07] Set 'Capacity point 3' to '25': Saved.
[Tue Mar 03 08:01:02] Set 'Capacity point 2' to '25': Saved.
[Tue Mar 03 08:00:58] Set 'Capacity point 1' to '25': Saved.

Idle 
[Tue Mar 03 06:46:56] Set 'Grid peak shaving' to 'Enabled': Saved.
[Tue Mar 03 06:46:51] Set 'Work mode' to 'Zero export to CT': Saved.
[Tue Mar 03 06:46:47] Set 'Grid charge point 6' to 'true': Saved.
[Tue Mar 03 06:46:42] Set 'Grid charge point 5' to 'true': Saved.
[Tue Mar 03 06:46:38] Set 'Grid charge point 4' to 'true': Saved.
[Tue Mar 03 06:46:33] Set 'Grid charge point 3' to 'true': Saved.
[Tue Mar 03 06:46:29] Set 'Grid charge point 2' to 'true': Saved.
[Tue Mar 03 06:46:24] Set 'Grid charge point 1' to 'true': Saved.
[Tue Mar 03 06:46:20] Set 'Capacity point 6' to '25': Saved.
[Tue Mar 03 06:46:15] Set 'Capacity point 5' to '25': Saved.
[Tue Mar 03 06:46:11] Set 'Capacity point 4' to '25': Saved.
[Tue Mar 03 06:46:06] Set 'Capacity point 3' to '25': Saved.
[Tue Mar 03 06:46:02] Set 'Capacity point 2' to '25': Saved.
[Tue Mar 03 06:45:57] Set 'Capacity point 1' to '25': Saved.


Opladen
Set 'Work mode' to 'Zero export to CT': Saved.
Set 'Grid charge point 6' to 'true': Saved.
Set 'Grid charge point 5' to 'true': Saved.
Set 'Grid charge point 4' to 'true': Saved.
Set 'Grid charge point 3' to 'true': Saved.
Set 'Grid charge point 2' to 'true': Saved.
Set 'Grid charge point 1' to 'true': Saved.
Set 'Capacity point 6' to '100': Saved.
Set 'Capacity point 5' to '100': Saved.
Set 'Capacity point 4' to '100': Saved.
Set 'Capacity point 3' to '100': Saved.
Set 'Capacity point 2' to '100': Saved.
Set 'Capacity point 1' to '100': Saved.
Set 'Grid peak shaving' to 'Enabled': Saved.

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
balk schreef op vrijdag 17 april 2026 @ 13:22:
[...]

Ik vraag me toch af of dit klopt. Moet de config voor Tibber niet als volgt zijn, ongeacht of je binnen salderen bent of niet? Buiten salderen zal je energy_taxes_production niet meer terug krijgen.
code:
1
2
3
4
5
"prices": {
    "energy_taxes_consumption": { "2026-01-01": 0.09157 },
    "energy_taxes_production": { "2026-01-01": 0.09157 },
    "cost_supplier_consumption": { "2026-01-01": 0.020496 },
    "cost_supplier_production": { "2026-01-01": -0.020496 }
Dus met een negatieve vergoeding? Zoals ik het begrijp betaal ik 2,0496 cent per geconsumeerde kWh en en krijg ik minus 2,0496 cent per geleverde kWh. Dus dat moet ik betalen. Zie ook hier.
@thomvh jij gebruikt een positieve vergoeding; heb je Tibber? Dat verklaart ook (ten onrechte) de neiging tot terugleveren.
Dat zou wel het een en ander verklaren, ik heb inderdaad Tibber. Maar ik las het als de kosten die je moet betalen om terug te leveren per kWh. Dus ik was er al een soort van uitgegaan dat dat een negatieve waarde is.
Supplier fees for feed-in/production (excluding VAT) indexed by effective date. May be negative (credit).
Als ik deze beschrijving lees dan zou het echter een credit zijn, wat ook niet klopt volgens mij? Want je betaald het nog steeds aan Tibber, ook tijdens het salderen.
Binnen salderen krijg je voor je teruglevering dus de beursprijs, inclusief alle belastingen en inkoopvergoeding. Daar gaat vervolgens een verkoopvergoeding van 2,48 cent per kWh uur vanaf.
Is de cost voor productie dan niet gewoon 0? Want de twee strepen tegen elkaar weg. Zolang je maar niet meer teruglevert dan je afneemt.

Dan krijg je namelijk de volgende situatie. Waar het verschil tussen inkopen en terugleveren de "verkoopvergoeding" is. Wat ook klopt.
Afbeeldingslocatie: https://tweakers.net/i/01TnoMTZsjJsmlTH3fys_0RZthw=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/6irJp79phG0d0EwsbOo98H62.png?f=user_large

[ Voor 10% gewijzigd door thomvh op 17-04-2026 13:52 ]


  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
thomvh schreef op vrijdag 17 april 2026 @ 13:37:
Is de cost voor productie dan niet gewoon 0? Want de twee strepen tegen elkaar weg. Zolang je maar niet meer teruglevert dan je afneemt.
Zoals ik dit lees, moet betaal je die 2,48 cent. Stel er is een uur met gelijke prijzen en de beurs prijs met BTW is 20 cent. Ik consumeer in het eerste half uur 1 kWh, dan betaal ik 22,48 cent. Als ik in het tweede half uur terug lever dan krijg ik 17,52 cent. Het streept dus niet tegen elkaar weg; althans zo interpreteer ik het.

Van de tibber site:
Als je teruglevert bij Tibber krijg je hier een dynamisch tarief voor. Op het moment dat je teruglevert geven we je per kWh de beursprijs die op dat moment geldt (deze gelijk aan de beursprijs wanneer je stroom zou afnemen), inclusief energiebelasting en inkoopvergoeding plus de btw minus de verkoopvergoeding. De verkoopvergoeding van 2,48 cent is gelijk aan de inkoopvergoeding die je bij je afgenomen stroom betaalt.

Binnen salderen krijg je voor je teruglevering dus de beursprijs, inclusief alle belastingen en inkoopvergoeding. Daar gaat vervolgens een verkoopvergoeding van 2,48 cent per kWh uur vanaf.

Als voorbeeld: Stel dat tussen 14:00 en 14:15 de totale stroomprijs €0,28 per kWh incl. is, dan krijg je op dat moment €0,28 - €0,0248 verkoopvergoeding = €0,2552 per teruggeleverde kWh van ons terug.
ok, ik heb het nog 3x gelezen. Ik denk dat KC27 in deze post toch gelijk heeft. Het moet 0 zijn omdat "inclusief energiebelasting en inkoopvergoeding plus de btw minus de verkoopvergoeding" is. Ik zet het op 0!

[ Voor 18% gewijzigd door balk op 17-04-2026 13:58 ]


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
balk schreef op vrijdag 17 april 2026 @ 13:54:
[...]

Zoals ik dit lees, moet betaal je die 2,48 cent. Stel er is een uur met gelijke prijzen en de beurs prijs met BTW is 20 cent. Ik consumeer in het eerste half uur 1 kWh, dan betaal ik 22,48 cent. Als ik in het tweede half uur terug lever dan krijg ik 17,52 cent. Het streept dus niet tegen elkaar weg; althans zo interpreteer ik het.

Van de tibber site:

[...]
Alleen als je meer inkoopt dan teruglevert. Is er altijd een inkoop vergoeding (Die je terug krijgt) waar je de verkoop vergoeding tegen weg kunt strepen. Waardoor je prijs om terug te leveren 0,0248 cent lager ligt dan je inkoop prijs. Zie de grafiek in mijn vorige post. Daar staat de productie kost op 0. Als je -0,0248 instelt zeg je eigenlijk dat je 0,0248 cent extra krijgt. Zo interpreteer ik het.

@balk Ik heb hem ook op 0 gezet nu. Hij is ineens minder happig om terug te leveren. Maar dat is nu ook logisch. Want nu kost het teminste iets.

[ Voor 6% gewijzigd door thomvh op 18-04-2026 10:46 ]


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Ik ben benieuwd hoe jullie dit op zouden lossen. Ik heb momenteel bij het laden en ontladen last van clipping. De batterij is eigenlijk altijd sneller dan DAO berekend heeft. Ik kan natuurlijk gewoon 5 tot 10% extra aan de calculated battery percentage toe voegen (Deze stel ik in als limit's in de omvormer). Maar ik was benieuwd of jullie een mooiere oplossing heb.

Afbeeldingslocatie: https://tweakers.net/i/GHcuORBDz9KiK8N6IfdDmD4DPYk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/jOX9ffrweXuK5sYc6dDAjDJg.png?f=user_large

Mijn DAO config:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
{
  "config_version": 0,
  "homeassistant": {
    "ip_address": "supervisor",
    "protocol_api": "http"
  },
  "database_ha": {
    "engine": "sqlite",
    "db_path": "/homeassistant",
    "database": "home-assistant_v2.db"
  },
  "database_da": {
    "engine": "sqlite",
    "db_path": "../data",
    "database": "day_ahead.db"
  },
  "meteoserver_key": "!secret meteoserver-key",
  "meteoserver_model": "harmonie",
  "meteoserver_attemps": 2,
  "prices": {
    "source_day_ahead": "tibber",
    "energy_taxes_consumption": {
      "2026-04-01": 0.09161
    },
    "energy_taxes_production": {
      "2026-04-01": 0.09161
    },
    "cost_supplier_consumption": {
      "2026-04-01": 0.020496
    },
    "cost_supplier_production": {
      "2026-04-01": 0
    },
    "vat_consumption": {
      "2026-04-01": 21.0
    },
    "vat_production": {
      "2026-04-01": 21.0
    },
    "last_invoice": "2026-04-15",
    "tax_refund": true,
    "regular high": 0.33,
    "regular low": 0.28,
    "switch to low": 21
  },
  "logging_level": "info",
  "use_calc_baseload": false,
  "baseload_calc_periode": 56,
  "baseload": [
    1.12,
    0.98,
    0.92,
    0.85,
    1.10,
    1.34,
    1.04,
    1.25,
    1.64,
    1.34,
    1.03,
    0.95,
    1.15,
    1.09,
    1.02,
    1.19,
    1.31,
    1.49,
    2.12,
    1.83,
    1.73,
    2.38,
    2.04,
    1.28
  ],
  "graphical_backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "battery_balance": true,
    "prices_consumption": true,
    "prices_production": true,
    "prices_spot": true,
    "average_consumption": true,
    "show": "true"
  },
  "interval": "15min",
  "strategy": "minimize cost",
  "max_gap": 0.005,
  "notifications": {
    "opstarten": false,
    "berekening": false,
    "last activity entity": "input_datetime.dao_latest_update"
  },
  "grid": {
    "max_power": 17.0
  },
  "history": {
    "save_days": 7
  },
  "dashboard": {
    "port": 5000
  },
  "battery": [
    {
      "name": "Voll 12 XL",
      "entity_actual_level": "sensor.deye_sunsynk_sol_ark_3_phase_battery_state_of_charge",
      "capacity": 61.4,
      "upper_limit": 90,
      "lower_limit": 25,
      "optimal_lower_level": 33,
      "penalty_low_soc": 0.00025,
      "charge_stages": [
        {"power": 0.0,     "efficiency": 1.00},
        {"power": 2000.0,  "efficiency": 0.944},
        {"power": 5000.0,  "efficiency": 0.970},
        {"power": 10000.0, "efficiency": 0.975},
        {"power": 15000.0, "efficiency": 0.968},
        {"power": 17000.0, "efficiency": 0.961}
      ],
      "discharge_stages": [
        {"power": 0.0,     "efficiency": 1.00},
        {"power": 2000.0,  "efficiency": 0.944},
        {"power": 5000.0,  "efficiency": 0.970},
        {"power": 10000.0, "efficiency": 0.975},
        {"power": 15000.0, "efficiency": 0.968},
        {"power": 17000.0, "efficiency": 0.961}
      ],
      "reduced_hours": {},
      "reduce_power_low_soc": [],
      "reduce_power_high_soc": [],
      "dc_to_bat_efficiency": 0.985,
      "bat_to_dc_efficiency": 0.985,
      "minimum_power": 200,
      "cycle_cost": 0.02305,
      "entity_set_power_feedin": "input_number.dao_power_feedin",
      "entity_set_operating_mode": "input_select.dao_operating_mode",
      "entity_set_operating_mode_on": "Aan",
      "entity_set_operating_mode_off": "Uit",
      "entity_balance_switch": "input_boolean.dao_balance_switch",
      "entity_from_pv": "input_number.dao_power_from_pv",
      "entity_from_ac": "input_number.dao_power_from_ac",
      "entity_calculated_soc": "input_number.dao_calculated_soc",
      "solar": [],
      "entity from battery": "input_number.dao_power_from_battery"
    }
  ],
  "solar": [
    {
      "name": "Dak voor",
      "tilt": 50.0,
      "orientation": 26.0,
      "capacity": 7.8,
      "yield_factor": 0.01808,
      "strings": [],
      "ml_prediction": false,
      "entities_sensors": [
        "sensor.deye_sunsynk_sol_ark_3_phase_pv_energy_total"
      ],
      "max_power": 8.0
    }
  ],
  "electric_vehicle": [],
  "machines": [],
  "boiler": {
    "boiler_present": false,
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater_present": false,
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
  "tibber": {
    "api_token": "!secret tibber_api_token",
    "api_url": "https://api.tibber.com/v1-beta/gql"
  },
  "xgboost": {
    "tune_hyperparameters": true
  },
  "report": {
    "entities_grid_consumption": [
      "sensor.energy_consumed_tariff_1",
      "sensor.energy_consumed_tariff_2"
    ],
    "entities_grid_production": [
      "sensor.energy_produced_tariff_1",
      "sensor.energy_produced_tariff_2"
    ],
    "entities_solar_production_ac": [
      "sensor.deye_sunsynk_sol_ark_3_phase_pv_energy_total"
    ],
    "entities_solar_production_dc": [],
    "entities_ev_consumption": [
      "sensor.oprit_l1_energy_meter",
      "sensor.oprit_l2_energy_meter",
      "sensor.oprit_r1_energy_meter"
    ],
    "entities_wp_consumption": [
      "sensor.heliotherm_heatpump_electricity_meter_total_gesamt"
    ],
    "entities_boiler_consumption": [],
    "entities_battery_consumption": [
      "sensor.deye_sunsynk_sol_ark_3_phase_battery_energy_in_total"
    ],
    "entities_battery_production": [
      "sensor.deye_sunsynk_sol_ark_3_phase_battery_energy_out_total"
    ],
    "entities_machine_consumption": []
  },
  "scheduler": {
    "active": true,
    "schedule": [
      {
        "time": "0432",
        "action": "get_meteo_data"
      },
      {
        "time": "1032",
        "action": "get_meteo_data"
      },
      {
        "time": "1632",
        "action": "get_meteo_data"
      },
      {
        "time": "2232",
        "action": "get_meteo_data"
      },
      {
        "time": "1255",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1355",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1455",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1555",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "1655",
        "action": "get_day_ahead_prices"
      },
      {
        "time": "xx00",
        "action": "calc_optimum"
      },
      {
        "time": "xx15",
        "action": "calc_optimum"
      },
      {
        "time": "xx30",
        "action": "calc_optimum"
      },
      {
        "time": "xx45",
        "action": "calc_optimum"
      },
      {
        "time": "2359",
        "action": "clean_data"
      },
      {
        "time": "2233",
        "action": "calc_baseloads"
      }
    ]
  }
}
Mijn automation:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
alias: DAO - Battery Mode Control
description: Translates DAO commands to Deye inverter via Solar Assistant TOU slots
triggers:
  - entity_id:
      - input_datetime.dao_latest_update
    trigger: state
    id: dao_update
conditions: []
actions:
  - delay: "00:00:05"
  - variables:
      target_power: >-
        {% set v = states('input_number.dao_power_from_battery') | float(0) |
        abs | round(0) | int %} {{ [v, 80000] | min }}
      target_soc: >-
        {% set v = states('input_number.dao_calculated_soc') | float(0) |
        round(0, 'floor') | int %} {% if v < 20 %}
          20
        {% elif v > 100 %}
          100
        {% else %}
          {{ v }}
        {% endif %}
  - choose:
      - alias: Battery Idle
        conditions:
          - condition: state
            entity_id: input_select.dao_operating_mode
            state: Uit
        sequence:
          - action: script.dao_set_all_power_points
            data:
              power: 20000
          - wait_template: "{{ is_state('script.dao_set_all_power_points', 'off') }}"
          - action: script.dao_set_capacity_points
            data:
              capacity: "{{ target_soc }}"
          - wait_template: "{{ is_state('script.dao_set_capacity_points', 'off') }}"
          - action: script.dao_grid_charge_points
            data:
              enabled: false
          - wait_template: "{{ is_state('script.dao_grid_charge_points', 'off') }}"
          - action: select.select_option
            target:
              entity_id: select.deye_sunsynk_sol_ark_3_phase_work_mode
            data:
              option: Selling First
      - alias: Battery Balancing
        conditions:
          - condition: state
            entity_id: input_boolean.dao_balance_switch
            state: "on"
        sequence:
          - action: script.dao_set_capacity_points
            data:
              capacity: "{{ target_soc }}"
          - wait_template: "{{ is_state('script.dao_set_capacity_points', 'off') }}"
          - action: script.dao_set_all_power_points
            data:
              power: 20000
          - wait_template: "{{ is_state('script.dao_set_all_power_points', 'off') }}"
          - action: script.dao_grid_charge_points
            data:
              enabled: false
          - wait_template: "{{ is_state('script.dao_grid_charge_points', 'off') }}"
          - action: select.select_option
            target:
              entity_id: select.deye_sunsynk_sol_ark_3_phase_work_mode
            data:
              option: Zero export to CT
      - alias: Battery Sell
        conditions:
          - condition: state
            entity_id: input_boolean.dao_balance_switch
            state: "off"
          - condition: template
            value_template: "{{ states('input_number.dao_power_feedin') | float(0) < 0 }}"
        sequence:
          - action: script.dao_set_capacity_points
            data:
              capacity: "{{ target_soc }}"
          - wait_template: "{{ is_state('script.dao_set_capacity_points', 'off') }}"
          - action: script.dao_grid_charge_points
            data:
              enabled: false
          - wait_template: "{{ is_state('script.dao_grid_charge_points', 'off') }}"
          - action: script.dao_set_all_power_points
            data:
              power: "{{ target_power }}"
          - wait_template: "{{ is_state('script.dao_set_all_power_points', 'off') }}"
          - action: select.select_option
            target:
              entity_id: select.deye_sunsynk_sol_ark_3_phase_work_mode
            data:
              option: Selling first
      - alias: Battery Charge
        conditions:
          - condition: state
            entity_id: input_boolean.dao_balance_switch
            state: "off"
          - condition: template
            value_template: "{{ states('input_number.dao_power_feedin') | float(0) > 0 }}"
        sequence:
          - variables:
              ac_watts: >-
                {{ [states('input_number.dao_power_from_ac') | float(0), 17300]
                | min }}
              batt_v: >-
                {{ states('sensor.deye_sunsynk_sol_ark_3_phase_battery_voltage')
                | float(51.2) }}
              raw_amps: "{{ (ac_watts / batt_v) | round(0) | int }}"
              charge_amps: "{{ [[raw_amps, 0] | max, 350] | min }}"
          - action: script.dao_set_capacity_points
            data:
              capacity: "{{ target_soc }}"
          - wait_template: "{{ is_state('script.dao_set_capacity_points', 'off') }}"
          - action: script.dao_set_all_power_points
            data:
              power: 20000
          - wait_template: "{{ is_state('script.dao_set_all_power_points', 'off') }}"
          - action: number.set_value
            target:
              entity_id: number.deye_sunsynk_sol_ark_3_phase_max_grid_charge_current
            data:
              value: "{{ charge_amps }}"
          - delay: "00:00:05"
          - action: script.dao_grid_charge_points
            data:
              enabled: true
          - wait_template: "{{ is_state('script.dao_grid_charge_points', 'off') }}"
          - action: select.select_option
            target:
              entity_id: select.deye_sunsynk_sol_ark_3_phase_work_mode
            data:
              option: Zero export to CT
mode: restart
trace:
  stored_traces: 20

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
thomvh schreef op zaterdag 18 april 2026 @ 12:34:
Ik ben benieuwd hoe jullie dit op zouden lossen. Ik heb momenteel bij het laden en ontladen last van clipping. De batterij is eigenlijk altijd sneller dan DAO berekend heeft. Ik kan natuurlijk gewoon 5 tot 10% extra aan de calculated battery percentage toe voegen (Deze stel ik in als limit's in de omvormer). Maar ik was benieuwd of jullie een mooiere oplossing heb.

[Afbeelding]

Mijn DAO config:

[...]


Mijn automation:

[...]
Ik snap niet helemaal wat je nu zegt. Wat laat het plaatje zien? x as is tijd, maar y as? Hoe bedoel je "sneller"? Wanneer DAO zegt: 4000 W, gaat de batterij dan met 4000 W laden? Klopt je werkelijk bruikbare vermogen wel met het opgegeven vermogen? Ik zag in de handleiding een DoD van 90%, betekent het dat bij 10% chemisch geladen, jouw app 0% aangeeft? Want dan mis je al 6 kWh.

  • Dogooder
  • Registratie: April 2004
  • Laatst online: 17:26

Dogooder

dus...

Bedoel je, want dat zie ik in ieder geval, dat als DAO op het duurste kwartier gaat ontladen dat er dan een inverter stop na 13 of 14 minuten is. En vervolgens gaat dao weer maximaal ontladen op het een na duurste kwartier voor 13-14 minuten.
Terwijl je verwacht bij maximale winst gewoon volle 15 minuten ontladen op max power.

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
@balk @Dogooder Yes, ik loop er dus tegen aan dat mijn omvormer "sneller" is dan de AC waarde die DAO berekent. Hierdoor stopt mijn omvormer omdat die het batterij limiet eerder haalt dan het kwartier voorbij is. Zelfde gebeurt bij laden trouwens. Ik kan dit simpel op lossen door het berekende batterij percentage wat DAO berekend iets op te hogen met een paar procent. Maar het lijkt me eerder dat het ergens in de afstelling van de charging en discharging stages zit.

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 13:01
thomvh schreef op zaterdag 18 april 2026 @ 16:07:
@balk @Dogooder Yes, ik loop er dus tegen aan dat mijn omvormer "sneller" is dan de AC waarde die DAO berekent. Hierdoor stopt mijn omvormer omdat die het batterij limiet eerder haalt dan het kwartier voorbij is. Zelfde gebeurt bij laden trouwens. Ik kan dit simpel op lossen door het berekende batterij percentage wat DAO berekend iets op te hogen met een paar procent. Maar het lijkt me eerder dat het ergens in de afstelling van de charging en discharging stages zit.
Dan kloppen de efficiency’s bij de charging stage’s in je config niet voor de gebruikte vermogens. Je batterij is blijkbaar iets efficiënter dan je denkt. Je kunt ze (bij laden) iets verlagen en kijken hoe het dan gaat.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
@KC27

heb je aan deze donordocumenten iets?

eventueel ter inspiratie?

edjes in "Zendure producten in Home Assistant integreren deel 2"
Ik heb zes kantjes en maanden werk in een ROI. 8)

Hier, kan je spelen.
Uitgangspunt: zonnepanelen (solaredge), tibber
Het is erg complex, maar zeer volledig.
Plaats roi.yaml in packages
ROI.yaml:
https://www.dropbox.com/s...rk8dxxsb35xuyksi&e=1&dl=0

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


  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Torch1969 schreef op zaterdag 18 april 2026 @ 16:48:
[...]

Dan kloppen de efficiency’s bij de charging stage’s in je config niet voor de gebruikte vermogens. Je batterij is blijkbaar iets efficiënter dan je denkt. Je kunt ze (bij laden) iets verlagen en kijken hoe het dan gaat.
Thanks! Ik heb voor nu het Batterij-DC terug naar 1 gezet. Even kijken hoe dat gaat en anders rustig aan tweaken.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
Heb AI eens gevraag of @edjes ROI toegevoegde waarde is voor DAO:
<knip>

@edjes ROI is waardevol als complementaire monitoring tool die DAO's predictive kracht combineert met real-world validation en investeringsanalyse.

AI / LLM dumps zijn niet toegestaan. Prima dat je het gebruikt, zelf de samenvatting maken.

[ Voor 80% gewijzigd door Septillion op 20-04-2026 10:46 ]

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


  • Lasoul
  • Registratie: November 2001
  • Laatst online: 16:31
Heb nu al een tijdje ML aanstaan voor een aantal dakvlakken maar bij mij wordt de gemeten straling nooit ingevuld.

Iemand enig idee waarom niet?

Afbeeldingslocatie: https://tweakers.net/i/88IFies4UPZwyASEL-3FxWwgMgw=/800x/filters:strip_exif()/f/image/E4TRO75pX4k3NJ1YTVL2wWCn.png?f=fotoalbum_large

  • Batavia
  • Registratie: Mei 2011
  • Laatst online: 16:02
Is er nog een verschil tussen het gebruik van 1 van de day ahead price opties of is Noordpool zo goed als de rest?

  • Impossibl3
  • Registratie: November 2012
  • Laatst online: 20-04 19:26
Batavia schreef op zondag 19 april 2026 @ 16:22:
Is er nog een verschil tussen het gebruik van 1 van de day ahead price opties of is Noordpool zo goed als de rest?
Noordpool is prima.

PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP


  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
de FAQ van @edjes die erbij hoort:

https://www.dropbox.com/s...z40pryulq1ch778p&e=2&dl=0

[ Voor 85% gewijzigd door Septillion op 20-04-2026 10:47 ]

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


  • wmc
  • Registratie: November 2012
  • Laatst online: 16:40

wmc

Ligt het aan mij of is dit een LLM gegenereerd overzicht met halve waarheden?

[ Voor 89% gewijzigd door Septillion op 20-04-2026 10:46 ]


  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
wmc schreef op zondag 19 april 2026 @ 20:33:
[...]


Ligt het aan mij of is dit een LLM gegenereerd overzicht met halve waarheden?
ik ben niet de maker, dat is @edjes
dus als je vragen hebt, graag aan hem richten

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


  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 13:01
hemertje schreef op zondag 19 april 2026 @ 21:36:
[...]


ik ben niet de maker, dat is @edjes
dus als je vragen hebt, graag aan hem richten
Ik denk dat de vraag van @wmc meer is of je de output van AI die je hier hebt gepost hebt gecontroleerd op juistheid en waar nodig gecorrigeerd.

  • wmc
  • Registratie: November 2012
  • Laatst online: 16:40

wmc

[quote]Torch1969 schreef op maandag 20 april 2026 @ 06:10:
[...]

Ik denk dat de vraag van @wmc meer is of je de output van AI die je hier hebt gepost hebt gecontroleerd op juistheid en waar nodig gecorrigeerd.

[\quote]


Ja, precies dat.

Voorbeeld, punt 3:
3. 15-minuut Granularity:
DAO: Uurlijkse planning
edjes ROI: 15-minuut tracking - veel gedetailleerder
DAO werkt gewoon op 15 minuten. Mijn suggestie zou zijn deze post nog eens goed te controleren...

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
los van de punten en komma's denk/vind ik dat een ROI een toegevoegde waarde heeft voor het DAO systeem.

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


  • Batavia
  • Registratie: Mei 2011
  • Laatst online: 16:02
hemertje schreef op maandag 20 april 2026 @ 08:00:
los van de punten en komma's denk/vind ik dat een ROI een toegevoegde waarde heeft voor het DAO systeem.
Los van alle misinformatie in jou posts

Mijn AI antwoord zou zijn dat je een geweldige post hebt die net niet de goede informatie bevat om welke conclusie dan ook te kunnen trekken

  • wmc
  • Registratie: November 2012
  • Laatst online: 16:40

wmc

hemertje schreef op maandag 20 april 2026 @ 08:00:
los van de punten en komma's denk/vind ik dat een ROI een toegevoegde waarde heeft voor het DAO systeem.
Gevalletje “de beste manier om het juiste antwoord te krijgen op internet is om het verkeerde antwoord te posten”? 7(8)7

  • balk
  • Registratie: Januari 2000
  • Laatst online: 20-04 22:08
Zullen we stoppen met @hemertje bashen en dit topic vervuilen? Sales pitch van hemertje was misschien wat hoekig en incompleet maar er kan wel waarde inzitten. Ik zie nog niet hoe dit in DAO geïmplementeerd kan worden, maar wellicht heeft iemand daar een constructief idee over.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
@Batavia @wmc

kritiek mag altijd, foutje bedankt, ik zag zo geen misinformatie 1-2-3

ben wel benieuwd of jullie een ROI toevoeging zien zitten in DAO en op welke manier deze informatie zichtbaar te krijgen?

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


  • Dogooder
  • Registratie: April 2004
  • Laatst online: 17:26

Dogooder

dus...

Een ROI berekening toevoegen heeft ongetwijfeld toegevoegde waarde, maar dat moet altijd worden weggezet tegen de hoeveelheid werk.
DAO levert al rapportages met de opbrengst en via de API kan je al heel veel al dan niet alles naar HA halen.
Daarnaast is volgens mij de ROI berekening zoals aangedragen geheel in HA en niet specifiek afhankelijk van de batterij. Je bent dus altijd vrij om die er zelf naast DAO in HA te zetten.
Als iemand een mooi Home Assistant DAO dashboard kan bouwen met ROI elementen dan zijn vele, inclusief ikzelf, daar vast heel blij mee. Maar binnen DAO moet denk ik wel de focus liggen om het juist uitvoeren van de strategie met alle bijhorende EV's, WP's, boilers. En zou ik liever een ML voor de WP hebben dan een ROI.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
Dogooder schreef op maandag 20 april 2026 @ 11:33:
Een ROI berekening toevoegen heeft ongetwijfeld toegevoegde waarde, maar dat moet altijd worden weggezet tegen de hoeveelheid werk.
DAO levert al rapportages met de opbrengst en via de API kan je al heel veel al dan niet alles naar HA halen.
Daarnaast is volgens mij de ROI berekening zoals aangedragen geheel in HA en niet specifiek afhankelijk van de batterij. Je bent dus altijd vrij om die er zelf naast DAO in HA te zetten.
Als iemand een mooi Home Assistant DAO dashboard kan bouwen met ROI elementen dan zijn vele, inclusief ikzelf, daar vast heel blij mee. Maar binnen DAO moet denk ik wel de focus liggen om het juist uitvoeren van de strategie met alle bijhorende EV's, WP's, boilers. En zou ik liever een ML voor de WP hebben dan een ROI.
ook een mooie zienswijze!

en een ML voor de WP zie ik ook wel zitten (y)

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


  • simnet
  • Registratie: Januari 2020
  • Laatst online: 16:15
hemertje schreef op maandag 20 april 2026 @ 15:09:
[...]


ook een mooie zienswijze!

en een ML voor de WP zie ik ook wel zitten (y)
Wat zou je willen voorspellen van je WP?

  • Dogooder
  • Registratie: April 2004
  • Laatst online: 17:26

Dogooder

dus...

Mijn warmtepomp, een Itho Daalderop bodem warmtepomp, laat zich niet sturen of inplannen. Die doet automatisch zijn ding, ook met het maken van warm water.
Dit is bij mij wel ongeveer de grootste energieverbruiker die ik nu maar meeneem in de baseload.
De boiler zou ik misschien nog wel in dao kunnen zetten, ik kan de boiler temperatuur wel uitlezen. Maar warmtevraag van het huis is gewoon afhankelijk van de buitentemperatuur en wellicht de windsnelheid. Ik denk dat daar nog wel wat voorspellingen in te vinden is.
Ik heb zelf helaas nog geen 4 seizoenen aan specifiek warmtepomp verbruik, home wizard meter te laat geïnstalleerd, anders had ik er wellicht zelf al mee geëxperimenteerd.

  • simnet
  • Registratie: Januari 2020
  • Laatst online: 16:15
Dus een gebruik voorspelling?

Je zit dan te kijken naar features zoals: Buiten temperatuur, binnen temperatuur, setpoint temperatuur, windsnelheid, luchtvochtigheid, dag vh jaar, weekdag.

Je hebt met deze systemen echter wel een trage factor, namelijk opwarm snelheid. Alle features zijn niet direct afhankelijk van elkaar maar er zit een lag in.
Dat is wel wat lastiger modelleren.

Nog meer ideeen?

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Opzich nu met de zomermaanden zou ik eigenlijk een koel functie voor de WP willen. Verwarmen kan DAO al maar koelen niet. Wordt ook lastig om dat met de verwarmings module te doen aangezien die naar de buiten temperatuur kijkt.

  • arro3038
  • Registratie: November 2023
  • Laatst online: 08:55
simnet schreef op maandag 20 april 2026 @ 20:07:
Dus een gebruik voorspelling?

Je zit dan te kijken naar features zoals: Buiten temperatuur, binnen temperatuur, setpoint temperatuur, windsnelheid, luchtvochtigheid, dag vh jaar, weekdag.

Je hebt met deze systemen echter wel een trage factor, namelijk opwarm snelheid. Alle features zijn niet direct afhankelijk van elkaar maar er zit een lag in.
Dat is wel wat lastiger modelleren.

Nog meer ideeen?
Ik kan me zo voorstellen dat stand van de zon en of die schijnt of niet (instraling door de ramen) ook interessant is?

  • Dogooder
  • Registratie: April 2004
  • Laatst online: 17:26

Dogooder

dus...

Dat van die lag is wel een goed punt, daar had ik nog niet zo goed over nagedacht. Ik heb zelf slechts data sinds december vorig jaar dus dat is niet heel veel. Ik zal, als ik tijd heb, eens kijken of ik ergens een correlatie kan spotten.

  • hemertje
  • Registratie: Juli 2015
  • Laatst online: 17:07
simnet schreef op maandag 20 april 2026 @ 19:31:
[...]


Wat zou je willen voorspellen van je WP?
ik heb een Panasonic WP en gebruik @edterbak's Node Red dashboard voor HeisHamon

Heishamon <> Node Red voor Panasonic warmtepompen

https://github.com/edterbak/HeishaMoNR

voor de ML denk ik dan aan het verwachte verbruik van de CV en warmtapwater n.a.v. het jaargetijde en de weersverwachting i.c.m. het warmteverlies van de woning en de dynamische energietarieven

via de Scheduler kan je enigszins sturen

@edterbak heb jij nog ideeën hoe we de Panasonic nog enigszins kunnen sturen?

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: 17:07
simnet schreef op maandag 20 april 2026 @ 20:07:
Dus een gebruik voorspelling?

Je zit dan te kijken naar features zoals: Buiten temperatuur, binnen temperatuur, setpoint temperatuur, windsnelheid, luchtvochtigheid, dag vh jaar, weekdag.

Je hebt met deze systemen echter wel een trage factor, namelijk opwarm snelheid. Alle features zijn niet direct afhankelijk van elkaar maar er zit een lag in.
Dat is wel wat lastiger modelleren.

Nog meer ideeen?
in de goedkope dynamische perioden een graadje warmer stoken om tijdens de dure periodes de WP uit te kunnen zetten?

warm tapwater maken tijdens de goedkopere uren, in de zomer overdag op je overschot PV en in de winter afhankelijk van de dynamische tarieven i.c.m. de COP

nadeel is dat je ' s nachts tijdens de goedkopere periodes een slechte COP hebt wanneer je die ook mee wil nemen...

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


  • Lasoul
  • Registratie: November 2001
  • Laatst online: 16:31
Ik zie hem eigenlijk heel simpel. Laat de WP gewoon zijn werk doen met lange runs en laad de batterij op, op de goedkoopste momenten zodat de WP altijd goedkoop draait.
WP is eigenlijk te traag om bij te sturen met graadje meer of minder.

  • simnet
  • Registratie: Januari 2020
  • Laatst online: 16:15
Ik denk dat het aansturen van een WP beter overgelaten kan worden aan het regelsysteem van het apparaat zelf.

Op zich is bijstoken een optie (je kunt een hoop thermische energie kwijt in een huis), maar ik vraag me sterk af of je daar heel veel winst uit kunt behalen, gezien de traagheid van het systeem. Even 15min, met lage prijzen, full power heeft niet zoveel nut (denk ik).

Ik ben totaal geen expert op dat gebied, maar voor zover ik heb begrepen is het beter om hem (bij wijze van spreke) 24x7 op lage temperatuur te laten draaien, dan te pendelen met eventuele compressor start/stops tot gevolg.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 14:22

Hippe Lip

Er valt altijd wat te leren

offtopic:
Juist met de traagheid van een WP (ik heb betonnen vloeren en vloerverwarming door het hele huis) kan ik heel eenvoudig besparen. Sinds januari heb ik een dynamisch contract en zet nu gedurende de 24 (!) duurste kwartieren van het etmaal de WP op non-actief. De temperatuur varieerde minder dan 1 graad piek-piek (dus +/-0,5°).
Dat bespaart toch behoorlijk!

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • simnet
  • Registratie: Januari 2020
  • Laatst online: 16:15
Hippe Lip schreef op dinsdag 21 april 2026 @ 06:59:
offtopic:
Juist met de traagheid van een WP (ik heb betonnen vloeren en vloerverwarming door het hele huis) kan ik heel eenvoudig besparen. Sinds januari heb ik een dynamisch contract en zet nu gedurende de 24 (!) duurste kwartieren van het etmaal de WP op non-actief. De temperatuur varieerde minder dan 1 graad piek-piek (dus +/-0,5°).
Dat bespaart toch behoorlijk!
Ik ben wel benieuwd hoe je dit hebt gedaan. Moeten die kwartieren aaneengesloten zijn? Of mag (in theorie) bij jou de WP 24x een start/stop doen?

Afgezien daarvan, denk ik niet dat DAO of een ML hier veel toegevoegde waarde heeft. Uitrekenen wat de duurste 1/3 van de dag is kan een simpele automation ook.

Ik vraag me ook wel een beetje af of je echt wel bespaart op energie of dat het alleen maar zo voelt. Maar dat is volledig ongenuanceerd :)

[ Voor 8% gewijzigd door simnet op 21-04-2026 08:29 ]


  • djoenez
  • Registratie: April 2007
  • Laatst online: 11:21
Waar het vooral bij zou kunnen helpen als het echt meerdaags zou zijn. Mijn WP (Panasonic via heishamon) zet ik al met de scheduler lager bij de dure Ochtend en avond momenten. Maar hij kan best wel forse overshoots doen als het morgen toch al zonnig wordt

  • simnet
  • Registratie: Januari 2020
  • Laatst online: 16:15
Ja, meerdaags kan ik me wel de voordelen bedenken. Het wordt wel lastig zonder lange termijn tarieven voor energie.

  • Hippe Lip
  • Registratie: Februari 2011
  • Laatst online: 14:22

Hippe Lip

Er valt altijd wat te leren

simnet schreef op dinsdag 21 april 2026 @ 08:26:
Ik ben wel benieuwd hoe je dit hebt gedaan. Moeten die kwartieren aaneengesloten zijn? Of mag (in theorie) bij jou de WP 24x een start/stop doen?
Heel eenvoudig met de Dynamisch-HA van @gielz. Daar stel ik in dat ik de 24 duurste kwartieren wil markeren. Een automatisering zorgt er vervolgens voor dat als duur=ja, dat de WP op non-actief gaat (en daarna weer terug ;) )
Afgezien daarvan, denk ik niet dat DAO of een ML hier veel toegevoegde waarde heeft. Uitrekenen wat de duurste 1/3 van de dag is kan een simpele automation ook.
Eens, en dat is dus ook wat ik doe.
Ik vraag me ook wel een beetje af of je echt wel bespaart op energie of dat het alleen maar zo voelt. Maar dat is volledig ongenuanceerd :)
Natuurlijk bespaart het. De warmtebehoefte (kWh) per 24 uur blijft gelijk: het warmteverlies van het huis. En die vul ik in tijdens de 72 goedkoopste kwartieren van de dag. Ik mijd de piek in de prijzen en bespaar dus.

Maar we gaan hiermee wel erg offtopic… 😱

Verdraagzaamheid is het hoogste gebod
en wie dat niet eert die schoppen we rot.
<John O`Mill>


  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 13:01
Hippe Lip schreef op dinsdag 21 april 2026 @ 08:51:
[...]

Natuurlijk bespaart het. De warmtebehoefte (kWh) per 24 uur blijft gelijk: het warmteverlies van het huis. En die vul ik in tijdens de 72 goedkoopste kwartieren van de dag. Ik mijd de piek in de prijzen en bespaar dus.

Maar we gaan hiermee wel erg offtopic… 😱
Daar verschillen we over van mening. Een WP of cv die rustig door kan pruttelen verbruikt ter compensatie van dat warmteverlies minder energie (kan met betere lagere aanvoertemperatuur en daarmee betere COP of rendement) dan als die moet hollen en stilstaan.
Vergelijk met auto. Een afstand van 100 km kan ik in een auto die 2 uur lang 50km/u rijdt zuiniger overbruggen dan met een auto die een kwartier stilstaat en daarna een kwartier 100km/u rijdt. Zelfde afstand, zelfde tijd, maar ander verbruik….

  • thomvh
  • Registratie: September 2013
  • Laatst online: 17:19
Wel grappig, DAO heeft vandaag berekend dat zelfverbruik de meest financieel voordelige optie is:

Afbeeldingslocatie: https://tweakers.net/i/wAo83PxRSKP8cGO2zefxiKLSK38=/x800/filters:strip_exif()/f/image/3XmWLrdrYZKrUJcwBvfG9ZKZ.png?f=fotoalbum_large

Eerste dag dat die niet volle bak gaat bijladen gedurende de middag uren.

  • axelb96
  • Registratie: Juli 2014
  • Laatst online: 15:44
Dogooder schreef op maandag 20 april 2026 @ 19:51:
Mijn warmtepomp, een Itho Daalderop bodem warmtepomp, laat zich niet sturen of inplannen. Die doet automatisch zijn ding, ook met het maken van warm water.
Dit is bij mij wel ongeveer de grootste energieverbruiker die ik nu maar meeneem in de baseload.
De boiler zou ik misschien nog wel in dao kunnen zetten, ik kan de boiler temperatuur wel uitlezen. Maar warmtevraag van het huis is gewoon afhankelijk van de buitentemperatuur en wellicht de windsnelheid. Ik denk dat daar nog wel wat voorspellingen in te vinden is.
Ik heb zelf helaas nog geen 4 seizoenen aan specifiek warmtepomp verbruik, home wizard meter te laat geïnstalleerd, anders had ik er wellicht zelf al mee geëxperimenteerd.
Wat voor Itho heb je?

Mijn Itho WPU-5g (aluhoedje) werkt op zich prima in DAO. Het verwarmen van het boilervat wordt netjes aangestuurd, alleen de legionella-run lijkt een eigen leven te leiden.

Voor de warmtevraag maak ik momenteel nog gebruik van de on/off van DAO; buiten de goedkope uren om blokkeer ik het verwarmen. Toch levert dat niet altijd het gewenste resultaat op, omdat de warmtepomp dan nog steeds de regie houdt. Met de nieuwe trapsgewijze off/eco/max-sturing vanuit DAO verwacht ik dit een stuk beter onder controle te krijgen.

Koeling laat ik bewust 24/7 toe vanwege het comfort en het minimale verbruik.

Misschien kan @arjenhiemstra hier nog extra inzicht in geven. Zonder zijn module had ik dit namelijk ook nooit voor elkaar gekregen _/-\o_ Aan zijn bijdragen in dit topic te zien, is hij mogelijk ook DAO-gebruiker.

  • arjenhiemstra
  • Registratie: Oktober 2003
  • Laatst online: 16:41
axelb96 schreef op dinsdag 21 april 2026 @ 15:43:
[...]

Wat voor Itho heb je?

Mijn Itho WPU-5g (aluhoedje) werkt op zich prima in DAO. Het verwarmen van het boilervat wordt netjes aangestuurd, alleen de legionella-run lijkt een eigen leven te leiden.

Voor de warmtevraag maak ik momenteel nog gebruik van de on/off van DAO; buiten de goedkope uren om blokkeer ik het verwarmen. Toch levert dat niet altijd het gewenste resultaat op, omdat de warmtepomp dan nog steeds de regie houdt. Met de nieuwe trapsgewijze off/eco/max-sturing vanuit DAO verwacht ik dit een stuk beter onder controle te krijgen.

Koeling laat ik bewust 24/7 toe vanwege het comfort en het minimale verbruik.

Misschien kan @arjenhiemstra hier nog extra inzicht in geven. Zonder zijn module had ik dit namelijk ook nooit voor elkaar gekregen _/-\o_ Aan zijn bijdragen in dit topic te zien, is hij mogelijk ook DAO-gebruiker.
Ik ben zeker een tevreden DAO gebruiker :)

Ik heb (helaas) geen grond gebonden Itho warmtepomp maar een L/W WeHeat (die ik vooralsnog niet goed kan aansturen buiten de WeHeat app om)

@Dogooder
Er loopt een eigen topic voor WPU bezitters waarin een hoop info staat over wat er te besturen valt aan de WPU als je gebruik maakt van de add-on.
Itho WPU5G water/water-warmtepomp ervaringen

  • Dogooder
  • Registratie: April 2004
  • Laatst online: 17:26

Dogooder

dus...

Het is hier wel offtopic, maar @axelb96 @arjenhiemstra ik ben al jaren zeer tevreden gebruiker van de addon. Echter heb ik de wpu4g en die kan je wel uitlezen, maar laat zich niet temmen.

  • thewhi
  • Registratie: April 2021
  • Laatst online: 17:16
Hippe Lip schreef op dinsdag 21 april 2026 @ 08:51:
[...]

Heel eenvoudig met de Dynamisch-HA van @gielz. Daar stel ik in dat ik de 24 duurste kwartieren wil markeren. Een automatisering zorgt er vervolgens voor dat als duur=ja, dat de WP op non-actief gaat (en daarna weer terug ;) )

[...]

Eens, en dat is dus ook wat ik doe.

[...]

Natuurlijk bespaart het. De warmtebehoefte (kWh) per 24 uur blijft gelijk: het warmteverlies van het huis. En die vul ik in tijdens de 72 goedkoopste kwartieren van de dag. Ik mijd de piek in de prijzen en bespaar dus.

Maar we gaan hiermee wel erg offtopic… 😱
Je creëert hiermee extra starts en stops voor je warmtepompcompressor. "Onnnodige/ongewenste" start/stop zorgt voor meer slijtage dan een de machine lekker laten doortuffen. Het bespaart wellicht op elektrakosten maar je zult waarschijnlijk flink eerder je warmtepomp (of hopelijk enkel je compressor) moeten vervangen.

Wel zou je (bijvoorbeeld er voor kunnen kiezen om je kloktijden op andere momenten te zetten, waardoor je bijv enkele uren eerder gaat voorverwarmen, maar schakel vooral niet op kwartierbasis, zeker niet als je nog garantie hebt op je machine of van je installateur..
Pagina: 1 ... 36 37 Laatste