• Mirabis
  • Registratie: Juli 2013
  • Niet online
Ik maak inmiddels (i.v.m. testen) ook gebruik van de ml_predictions: true en het draait. Echter heb ik geen idee waarom ik de Solar report "grafieken over de predictions" niet kan zien. Er komt geen additioneel tabblad, of optie naast/onder Reports bij.

Ben ik dan iets vergeten? Heb meermaals de Changelog.md bekeken maar kon het niet pinpointen. De docs/jsons zelf zijn nog niet helemaal up-to-date dus wellicht mis ik iets.

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh

Mirabis schreef op dinsdag 6 januari 2026 @ 09:22:
Ik maak inmiddels (i.v.m. testen) ook gebruik van de ml_predictions: true en het draait. Echter heb ik geen idee waarom ik de Solar report "grafieken over de predictions" niet kan zien. Er komt geen additioneel tabblad, of optie naast/onder Reports bij.

Ben ik dan iets vergeten? Heb meermaals de Changelog.md bekeken maar kon het niet pinpointen. De docs/jsons zelf zijn nog niet helemaal up-to-date dus wellicht mis ik iets.
In deze versie nog is een restart van de addon nodig. In de volgende versie werkt dat autodynamisch :) .

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


  • storeman
  • Registratie: April 2004
  • Laatst online: 15:51
Ik weet niet of er al eens een discussie over geweest is, moeilijk teruglezen, maar de stages van de warmtepomp zijn imho niet geheel dekkend?

In de basis klopt het dat een hoger elektrisch vermogen een lagere COP oplevert, echter heeft de buitentemperatuur en de aanvoertemperatuur een behoorlijke impact op de COP. Ik heb een polynoom gemaakt op basis van meetgegevens van Nibe waarmee ik dus een theoretische COP kan berekenen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        {# Polynomial surface fit (Excel). Inputs:
           - To: outdoor temp (BT1)
           - Ts: supply line temp (BT12)
        #}
        {% set To = states('sensor.current_outdoor_temperature_bt1_30002') | float(0) %}
        {% set Ts = states('sensor.supply_line_eb101_bt12_31479') | float(0) %}
    
        {% set To2 = To * To %}
        {% set Ts2 = Ts * Ts %}
    
        {% set a = (-0.00000119 * To2) + (-0.00006452 * To) + (-0.00001429) %}
        {% set b = ( 0.00010600 * To2) + ( 0.00401571 * To) + (-0.06374286) %}
        {% set c = (-0.00115257 * To2) + ( 0.01403286 * To) + ( 6.26945) %}
    
        {{ (a * Ts2 + b * Ts + c) | round(2) }}


Ik snap dat dit een stuk ingewikkelder is om te implementeren. Hoe gaan jullie hiermee om? Wat houden jullie aan voor de power stages van de warmtepomp?

EDIT
Ik ben hier nog eens ingedoken, en bij de temperatuurverschillen op de aanvoertemperatuur is het allemaal niet heel spannend en zijn de verschillen niet gigantisch. In mijn actuele COP zitten ook DHW runs en dan zie je de COP wel even flink droppen. Voor de heating is dat minder relevant.

[ Voor 10% gewijzigd door storeman op 06-01-2026 10:17 . Reden: Nuance toegevoegd ]

"Chaos kan niet uit de hand lopen"


  • Herbertnl
  • Registratie: Maart 2022
  • Laatst online: 22:54
Goedemiddag allen,
nog steeds een beetje aan het stoeien hier. Dao draait nu een week, baseloads is nog wel een dingetje en mijn vriendin klaagt nu over de binnen temperatuur (oei) iets te laag. Ook zit ik ineens met een lege accu terwijl hij wel had moeten laden (maar stiekem in self consumption modus van de Solis omvormer blijft hangen) Daar ga ik nog induiken. Waar ik nu even tegenaan loop is de volgende melding die ik hier in het forum niet tegen kom:

info: Kan starturen wp niet bepalen Mijn warmtepomp pruttelt bijna de hele dag door. Op zich niet zo erg want hij stopt als de prijs hoog is, maar echt overrulen lijkt lastig.

hieronder de rest van de berekening (het lijkt dat een aantal variabelen nog niet door Dao herkent worden?)

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
2026-01-06 12:46:40 info: Gewogen graaddagen vandaag: 20.0 K.day
2026-01-06 12:46:40 info: Gewogen graaddagen totaal: 20.0 K.day
2026-01-06 12:46:40 info: Degree days factor: 3.6 kWh/K.day
2026-01-06 12:46:40 info: Totaal benodigde warmte: 72.1 kWh
2026-01-06 12:46:40 info: Reeds geproduceerde warmte: 0.0 kWh
2026-01-06 12:46:40 info: Nog benodigde warmte: 72.1 kWh
2026-01-06 12:46:40 info: Regeling warmtepomp: heating curve
2026-01-06 12:46:40 info: Actuele warmtevraag: Ja
2026-01-06 12:46:40 info: Minimale runlengte 1 uur
2026-01-06 12:46:40 info: Warmtepomp met power-regeling/stooklijnverschuiving wordt ingepland.
2026-01-06 12:46:40 info: Maximaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Minimaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Aantal beschikbare uren: 10.00
2026-01-06 12:46:40 info: Maximaal te produceren hoeveelheid warmte: 110.7 kWh
2026-01-06 12:46:40 info: Minimaal te produceren hoeveelheid warmte: 110.7 kWh
2026-01-06 12:46:40 info: Aantal in te plannen uren: 6.0
2026-01-06 12:46:40 info: Kan starturen wp niet bepalen
2026-01-06 12:46:40 info: geen data in geconfigureerde wp-sensor(s)'
2026-01-06 12:46:40 info: Warmtepomp draait al minimaal -2 uur
2026-01-06 12:46:40 info: Eerste blok van 1 uur
2026-01-06 12:46:40 info: Tussenin 1 blokken van 3 uur
2026-01-06 12:46:40 info: Laatste blok van 2.0 uur
2026-01-06 12:46:40 info: Totaal aantal blokken: 3
2026-01-06 12:46:40 info: Strategie: minimale kosten
2026-01-06 12:46:40 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-06 12:46:40 info: Rekentijd: 0.03  sec
2026-01-06 12:46:40 waarschuwing: Geen oplossing voor: minimize cost

  • Noshi
  • Registratie: Januari 2007
  • Laatst online: 21:49
De software heeft eindelijk wat te doen nu de er wat variatie in de prijzen begint te komen :-).

Mijn batterij zit op dit moment rond "optimal lower level" (40%).
Ik merk dat de software steeds pingelt rond dit niveau. Dit komt o.a. doordat het ontlaad momenten inplant die niet kunnen door "minimum power" (1000W). Voorbeeld beneden: De software berekent dat er 0.13kWh ontladen moet worden, maar het minimum is 1kW*1h. Na het laden zit de batterij daardoor onder het gewenste niveau. De DAO corrigeert dit meestal het uur erop. Dit herhaalt zich een paar keer per dag.
Zijn er andere mensen die dit ook zien?


Edit: Ik vermoed dat ik "entity stop inverter" had moeten implementeren :) .
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
2026-01-06 15:39:43 info: Day Ahead Optimalisering versie: 2025.12.1
2026-01-06 15:39:43 info: Day Ahead Optimalisering gestart op: 06-01-2026 15:39:43
2026-01-06 15:39:43 info: Day Ahead Optimalisatie gestart: 06-01-2026 15:39:43 taak: calc_optimum_met_debug
2026-01-06 15:39:43 info: Debug = True
2026-01-06 15:39:43 info: Baseload uit instellingen
2026-01-06 15:39:43 info: Start waarden: 
      uur                tijd  spot   p_l   p_t  base  pv_ac  pv_dc
0   15:00 2026-01-06 15:00:00 0.134 0.297 0.297 0.500  0.446      0
1   16:00 2026-01-06 16:00:00 0.145 0.310 0.310 0.500  0.232      0
2   17:00 2026-01-06 17:00:00 0.153 0.320 0.320 0.600  0.000      0
3   18:00 2026-01-06 18:00:00 0.148 0.314 0.314 0.600  0.000      0
4   19:00 2026-01-06 19:00:00 0.139 0.303 0.303 0.600  0.000      0
5   20:00 2026-01-06 20:00:00 0.122 0.282 0.282 0.500  0.000      0
6   21:00 2026-01-06 21:00:00 0.087 0.240 0.240 0.500  0.000      0
7   22:00 2026-01-06 22:00:00 0.087 0.240 0.240 0.300  0.000      0
8   23:00 2026-01-06 23:00:00 0.077 0.228 0.228 0.300  0.000      0
9   00:00 2026-01-07 00:00:00 0.088 0.241 0.241 0.300  0.000      0
10  01:00 2026-01-07 01:00:00 0.083 0.235 0.235 0.300  0.000      0
11  02:00 2026-01-07 02:00:00 0.080 0.231 0.231 0.300  0.000      0
12  03:00 2026-01-07 03:00:00 0.079 0.230 0.230 0.300  0.000      0
13  04:00 2026-01-07 04:00:00 0.078 0.229 0.229 0.300  0.000      0
14  05:00 2026-01-07 05:00:00 0.079 0.230 0.230 0.300  0.000      0
15  06:00 2026-01-07 06:00:00 0.090 0.243 0.243 0.300  0.000      0
16  07:00 2026-01-07 07:00:00 0.094 0.249 0.249 0.500  0.000      0
17  08:00 2026-01-07 08:00:00 0.105 0.261 0.261 0.500  0.000      0
18  09:00 2026-01-07 09:00:00 0.111 0.269 0.269 0.500  0.066      0
19  10:00 2026-01-07 10:00:00 0.108 0.265 0.265 0.500  0.274      0
20  11:00 2026-01-07 11:00:00 0.099 0.255 0.255 0.500  0.626      0
21  12:00 2026-01-07 12:00:00 0.095 0.250 0.250 0.500  0.253      0
22  13:00 2026-01-07 13:00:00 0.092 0.245 0.245 0.500  0.231      0
23  14:00 2026-01-07 14:00:00 0.094 0.248 0.248 0.500  0.232      0
24  15:00 2026-01-07 15:00:00 0.100 0.256 0.256 0.500  0.233      0
25  16:00 2026-01-07 16:00:00 0.112 0.270 0.270 0.500  0.066      0
26  17:00 2026-01-07 17:00:00 0.124 0.285 0.285 0.600  0.000      0
27  18:00 2026-01-07 18:00:00 0.111 0.270 0.270 0.600  0.000      0
28  19:00 2026-01-07 19:00:00 0.097 0.252 0.252 0.600  0.000      0
29  20:00 2026-01-07 20:00:00 0.091 0.244 0.244 0.500  0.000      0
30  21:00 2026-01-07 21:00:00 0.093 0.247 0.247 0.500  0.000      0
31  22:00 2026-01-07 22:00:00 0.091 0.245 0.245 0.300  0.000      0
32  23:00 2026-01-07 23:00:00 0.087 0.240 0.240 0.300  0.000      0
2026-01-06 15:39:43 info: No reduced hours applied for Batterij
2026-01-06 15:39:43 info: Startwaarde SoC Batterij: 40.3%

2026-01-06 15:39:44 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2026-01-06 15:39:44 info: Instellingen voor laden van EV: Mini
2026-01-06 15:39:44 info: Direct laden is uit
2026-01-06 15:39:44 info:  Ampere  Effic. Grid kW Accu kW
2026-01-06 15:39:44 info:    0.00    1.00    0.00    0.00
2026-01-06 15:39:44 info:    6.00    0.95    4.14    3.93
2026-01-06 15:39:44 info:   10.00    0.96    6.90    6.62
2026-01-06 15:39:44 info:   13.00    0.97    8.97    8.70
2026-01-06 15:39:44 info:   16.00    0.98   11.04   10.82
2026-01-06 15:39:44 info: Capaciteit accu: 50.0 kWh
2026-01-06 15:39:44 info: Maximaal laadvermogen: 11.04 kW
2026-01-06 15:39:44 info: Klaar met laden op: 07-01-2026 07:00:00
2026-01-06 15:39:44 info: Huidig laadniveau: 26.0 %
2026-01-06 15:39:44 info: Gewenst laadniveau:80.0 %
2026-01-06 15:39:44 info: Marge voor het laden: 1 %
2026-01-06 15:39:44 info: Locatie: home
2026-01-06 15:39:44 info: Ingeplugged:True
2026-01-06 15:39:44 info: Benodigde netto energie: 27.000 kWh
2026-01-06 15:39:44 info: Tijd nodig om te laden: 2:30 uur
2026-01-06 15:39:44 info: Afgerond naar hele intervallen: 3 uur
2026-01-06 15:39:44 info: Stand laden schakelaar: off
2026-01-06 15:39:44 info: Stand aantal ampere laden: 0.0 A
2026-01-06 15:39:44 info: Opladen wordt ingepland.
2026-01-06 15:39:44 info: Warmtepomp niet aanwezig - warmtepomp wordt niet ingepland
2026-01-06 15:39:44 info: Strategie: minimale kosten
2026-01-06 15:39:44 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-06 15:39:44 info: Rekentijd: 0.20  sec
2026-01-06 15:39:44 info: Het programma heeft een optimale oplossing gevonden.
2026-01-06 15:39:44 info: In- en uitgaande energie per uur batterij Batterij
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 15:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.30
 16:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.30
 17:00  -0.13  92.00  -0.14   0.00  -0.14 100.00  -0.14  92.00  40.00
 18:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 19:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 00:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 01:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 02:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 03:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 04:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 05:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 06:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 07:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 08:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 09:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 10:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 11:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 12:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 13:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 14:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 15:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 16:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 17:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 18:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 19:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  40.00
Totaal  -0.13     --  -0.14   0.00  -0.14     --  -0.14     --       
2026-01-06 15:39:44 info: Berekende prognoses zijn niet opgeslagen.
2026-01-06 15:39:44 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 15:00    0.00     0.00   0.00   0.28   0.50   0.00   0.00   0.00   0.45   0.00   -0.08  20.00
 16:00    0.00     0.00   0.27   0.00   0.50   0.00   0.00   0.00   0.23   0.08   -0.00  20.00
 17:00    0.00     0.13   0.47   0.00   0.60   0.00   0.00   0.00   0.00   0.15   -0.00  20.00
 18:00    0.00     0.00   0.60   0.00   0.60   0.00   0.00   0.00   0.00   0.19   -0.00  20.00
 19:00    0.00     0.00   0.60   0.00   0.60   0.00   0.00   0.00   0.00   0.18   -0.00  20.00
 20:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.14   -0.00  20.00
 21:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 22:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 23:00    0.00     0.00  11.34   0.00   0.30   0.00   0.00  11.04   0.00   2.59   -0.00  20.00
 00:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 01:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 02:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 03:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 04:00    0.00     0.00  11.34   0.00   0.30   0.00   0.00  11.04   0.00   2.59   -0.00  20.00
 05:00    0.00     0.00   5.77   0.00   0.30   0.00   0.00   5.47   0.00   1.33   -0.00  20.00
 06:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 07:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 08:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.13   -0.00  20.00
 09:00    0.00     0.00   0.43   0.00   0.50   0.00   0.00   0.00   0.07   0.12   -0.00  20.00
 10:00    0.00     0.00   0.23   0.00   0.50   0.00   0.00   0.00   0.27   0.06   -0.00  20.00
 11:00    0.00     0.00   0.00   0.13   0.50   0.00   0.00   0.00   0.63   0.00   -0.03  20.00
 12:00    0.00     0.00   0.25   0.00   0.50   0.00   0.00   0.00   0.25   0.06   -0.00  20.00
 13:00    0.00     0.00   0.27   0.00   0.50   0.00   0.00   0.00   0.23   0.07   -0.00  20.00
 14:00    0.00     0.00   0.27   0.00   0.50   0.00   0.00   0.00   0.23   0.07   -0.00  20.00
 15:00    0.00     0.00   0.27   0.00   0.50   0.00   0.00   0.00   0.23   0.07   -0.00  20.00
 16:00    0.00     0.00   0.43   0.00   0.50   0.00   0.00   0.00   0.07   0.12   -0.00  20.00
 17:00    0.00     0.00   0.60   0.00   0.60   0.00   0.00   0.00   0.00   0.17   -0.00  20.00
 18:00    0.00     0.00   0.60   0.00   0.60   0.00   0.00   0.00   0.00   0.16   -0.00  20.00
 19:00    0.00     0.00   0.60   0.00   0.60   0.00   0.00   0.00   0.00   0.15   -0.00  20.00
 20:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 21:00    0.00     0.00   0.50   0.00   0.50   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 22:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
 23:00    0.00     0.00   0.30   0.00   0.30   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
Totaal    0.00     0.13  39.73   0.40  14.90   0.00   0.00  27.55   2.66   9.48   -0.11       

2026-01-06 15:39:44 info: Consumption              39.73 (kWh)
2026-01-06 15:39:44 info: Cost consumption          9.48 (€)
2026-01-06 15:39:44 info: Tariff consumption        0.239 (€/kWh)
2026-01-06 15:39:44 info: Production                0.40 (kWh)
2026-01-06 15:39:44 info: Profit production        -0.11 (€)
2026-01-06 15:39:44 info: Tariff production         0.283 (€/kWh)

2026-01-06 15:39:44 info: 
Calculation profit after optimize in €
Cost before optimize              9.51
Cost consumption      9.48
Cycle cost            0.00
Penalty cost          0.00
Battery storage      -1.13
Boiler storage        0.00
Profit production    -0.11
Total                 8.24
Cost after optimize               8.24
Profit:                           1.27
2026-01-06 15:39:44 info: Onderstaande settings worden NIET doorgezet naar HA (debug-run)
2026-01-06 15:39:44 info: Inzet-factor laden Mini per stap
uur      0.0A   6.0A  10.0A  13.0A  16.0A      cons  power
15:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
16:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
17:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
18:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
19:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
20:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
21:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
22:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
23:00    0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   1.00(1.0)     11.040  11.040
00:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
01:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
02:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
03:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
04:00    0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   1.00(1.0)     11.040  11.040
05:00    0.50(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.50(1.0)     5.471  11.040
06:00    1.00(1.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)   0.00(0.0)     0.000  0.000
2026-01-06 15:39:44 info: Mini wordt geladen tussen 2026-01-06 23:00:00 en 2026-01-07 06:00:00
2026-01-06 15:39:44 info: Berekeningsuitkomst voor opladen van Mini:
2026-01-06 15:39:44 info: - aantal ampere 0A (was 0.0A)
2026-01-06 15:39:44 info: - stand schakelaar 'off' (was 'off')
2026-01-06 15:39:44 info: - positie: home
2026-01-06 15:39:44 info: - ingeplugd: True
2026-01-06 15:39:44 info: Evaluatie status laden Mini op 2026-01-06 15:39
2026-01-06 15:39:44 info: - schakelaar laden: off
2026-01-06 15:39:44 info: - aantal ampere: 0.0
2026-01-06 15:39:44 info: Grid set point: -821.0 W
2026-01-06 15:39:44 info: Cycle cost Batterij: 0.00 euro
2026-01-06 15:39:44 info: Netto vermogen naar(+)/uit(-) batterij Batterij zou zijn: 0 W
2026-01-06 15:39:44 info: Balanceren zou zijn: False
storeman schreef op dinsdag 6 januari 2026 @ 10:06:
Ik weet niet of er al eens een discussie over geweest is, moeilijk teruglezen, maar de stages van de warmtepomp zijn imho niet geheel dekkend?

In de basis klopt het dat een hoger elektrisch vermogen een lagere COP oplevert, echter heeft de buitentemperatuur en de aanvoertemperatuur een behoorlijke impact op de COP. Ik heb een polynoom gemaakt op basis van meetgegevens van Nibe waarmee ik dus een theoretische COP kan berekenen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        {# Polynomial surface fit (Excel). Inputs:
           - To: outdoor temp (BT1)
           - Ts: supply line temp (BT12)
        #}
        {% set To = states('sensor.current_outdoor_temperature_bt1_30002') | float(0) %}
        {% set Ts = states('sensor.supply_line_eb101_bt12_31479') | float(0) %}
    
        {% set To2 = To * To %}
        {% set Ts2 = Ts * Ts %}
    
        {% set a = (-0.00000119 * To2) + (-0.00006452 * To) + (-0.00001429) %}
        {% set b = ( 0.00010600 * To2) + ( 0.00401571 * To) + (-0.06374286) %}
        {% set c = (-0.00115257 * To2) + ( 0.01403286 * To) + ( 6.26945) %}
    
        {{ (a * Ts2 + b * Ts + c) | round(2) }}


Ik snap dat dit een stuk ingewikkelder is om te implementeren. Hoe gaan jullie hiermee om? Wat houden jullie aan voor de power stages van de warmtepomp?

EDIT
Ik ben hier nog eens ingedoken, en bij de temperatuurverschillen op de aanvoertemperatuur is het allemaal niet heel spannend en zijn de verschillen niet gigantisch. In mijn actuele COP zitten ook DHW runs en dan zie je de COP wel even flink droppen. Voor de heating is dat minder relevant.
Ik heb zelf een water/water warmtepomp en die werkt minder afhankelijk van de buitentemperatuur. Alleen zakt de cop bij hogere vermogens. Die heb ik zelf empirisch vastgesteld en ingevoerd in een aantal "stages".
Bij een lucht/water warmtepomp zou dat ook moeten werken alleen ligt daar het verband anders.
Voor het maken van DHW heb ik de boiler ingesteld en bij de boiler staat:
code:
1
"boiler heated by heatpump": "True",

De uren dat de boiler wordt opgewarmd is deze niet beschikbaar voor de wp-ruimteverwarming.

Kun je hiermee verder?

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

Herbertnl schreef op dinsdag 6 januari 2026 @ 12:59:
Goedemiddag allen,
nog steeds een beetje aan het stoeien hier. Dao draait nu een week, baseloads is nog wel een dingetje en mijn vriendin klaagt nu over de binnen temperatuur (oei) iets te laag. Ook zit ik ineens met een lege accu terwijl hij wel had moeten laden (maar stiekem in self consumption modus van de Solis omvormer blijft hangen) Daar ga ik nog induiken. Waar ik nu even tegenaan loop is de volgende melding die ik hier in het forum niet tegen kom:

info: Kan starturen wp niet bepalen Mijn warmtepomp pruttelt bijna de hele dag door. Op zich niet zo erg want hij stopt als de prijs hoog is, maar echt overrulen lijkt lastig.

hieronder de rest van de berekening (het lijkt dat een aantal variabelen nog niet door Dao herkent worden?)

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
2026-01-06 12:46:40 info: Gewogen graaddagen vandaag: 20.0 K.day
2026-01-06 12:46:40 info: Gewogen graaddagen totaal: 20.0 K.day
2026-01-06 12:46:40 info: Degree days factor: 3.6 kWh/K.day
2026-01-06 12:46:40 info: Totaal benodigde warmte: 72.1 kWh
2026-01-06 12:46:40 info: Reeds geproduceerde warmte: 0.0 kWh
2026-01-06 12:46:40 info: Nog benodigde warmte: 72.1 kWh
2026-01-06 12:46:40 info: Regeling warmtepomp: heating curve
2026-01-06 12:46:40 info: Actuele warmtevraag: Ja
2026-01-06 12:46:40 info: Minimale runlengte 1 uur
2026-01-06 12:46:40 info: Warmtepomp met power-regeling/stooklijnverschuiving wordt ingepland.
2026-01-06 12:46:40 info: Maximaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Minimaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Aantal beschikbare uren: 10.00
2026-01-06 12:46:40 info: Maximaal te produceren hoeveelheid warmte: 110.7 kWh
2026-01-06 12:46:40 info: Minimaal te produceren hoeveelheid warmte: 110.7 kWh
2026-01-06 12:46:40 info: Aantal in te plannen uren: 6.0
2026-01-06 12:46:40 info: Kan starturen wp niet bepalen
2026-01-06 12:46:40 info: geen data in geconfigureerde wp-sensor(s)'
2026-01-06 12:46:40 info: Warmtepomp draait al minimaal -2 uur
2026-01-06 12:46:40 info: Eerste blok van 1 uur
2026-01-06 12:46:40 info: Tussenin 1 blokken van 3 uur
2026-01-06 12:46:40 info: Laatste blok van 2.0 uur
2026-01-06 12:46:40 info: Totaal aantal blokken: 3
2026-01-06 12:46:40 info: Strategie: minimale kosten
2026-01-06 12:46:40 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-06 12:46:40 info: Rekentijd: 0.03  sec
2026-01-06 12:46:40 waarschuwing: Geen oplossing voor: minimize cost
Wat als eerste opvalt:
code:
1
2026-01-06 12:46:40 info: Reeds geproduceerde warmte: 0.0 kWh

Dus blijkbaar heb je een verkeerde of geen sensor gekoppeld aan:
code:
1
"entity hp heat produced": "sensor.daily_heat_production_heating",

De bedoeling is dat je in HA met een helper (type utiliy_meter) een sensor definieert die de dagelijks geproduceerde hoeveelheid warmte bijhoudt (begint iedere keer om 0:00uur op nul).
Als jee die sensor koppelt in je heatpump settings ben je al een stuk verder..
Dan de houdt de warmtepomp, ook bij deze koude dagen genoeg tijd over in de resterende de rest van de benodigde warmte te produceren.
Tweede wat opvalt:
code:
1
2
2026-01-06 12:46:40 info: Maximaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Minimaal warmteproducerend vermogen: 12.0 kW

Mijn vraag daarover is:
Heeft jouw wp maar 1 vermogen, kan hij niet moduleren?

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

Noshi schreef op dinsdag 6 januari 2026 @ 15:47:
De software heeft eindelijk wat te doen nu de er wat variatie in de prijzen begint te komen :-).

Mijn batterij zit op dit moment rond "optimal lower level" (40%).
Ik merk dat de software steeds pingelt rond dit niveau. Dit komt o.a. doordat het ontlaad momenten inplant die niet kunnen door "minimum power" (1000W). Voorbeeld beneden: De software berekent dat er 0.13kWh ontladen moet worden, maar het minimum is 1kW*1h. Na het laden zit de batterij daardoor onder het gewenste niveau. De DAO corrigeert dit meestal het uur erop. Dit herhaalt zich een paar keer per dag.
Zijn er andere mensen die dit ook zien?

Edit: Ik vermoed dat ik "entity stop inverter" had moeten implementeren :) .


[...]
Als je werkt met een minimum vermogen is het dringend gewenst dat:
je gebruikt maakt van
code:
1
"entity stop inverter": "input_datetime.stop_victron",

Hierin komt dan een datum/tijd waarin het berekende verbruik is geladen/ontladen.
Je zult dan zelf in HA een automation moeten maken die getriggerd wordt door deze datum/tijden die de omvormer uitzet.

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


  • Impossibl3
  • Registratie: November 2012
  • Laatst online: 21:29
KC27 schreef op dinsdag 6 januari 2026 @ 16:26:
[...]
code:
1
"entity hp heat produced": "sensor.daily_heat_production_heating",

De bedoeling is dat je in HA met een helper (type utiliy_meter) een sensor definieert die de dagelijks geproduceerde hoeveelheid warmte bijhoudt (begint iedere keer om 0:00uur op nul).
Even een dubbel check. Het gaat hier om de thermisch geproduceerde warmte of elektrische hoeveelheid die door de WP is verbruikt? Ik heb dit niet meer scherp.

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


  • storeman
  • Registratie: April 2004
  • Laatst online: 15:51
Dat is thermisch. Een WP produceert geen elektriciteit ;)

"Chaos kan niet uit de hand lopen"


  • Herbertnl
  • Registratie: Maart 2022
  • Laatst online: 22:54
KC27 schreef op dinsdag 6 januari 2026 @ 16:26:
[...]

Wat als eerste opvalt:
code:
1
2026-01-06 12:46:40 info: Reeds geproduceerde warmte: 0.0 kWh

Dus blijkbaar heb je een verkeerde of geen sensor gekoppeld aan:
code:
1
"entity hp heat produced": "sensor.daily_heat_production_heating",

De bedoeling is dat je in HA met een helper (type utiliy_meter) een sensor definieert die de dagelijks geproduceerde hoeveelheid warmte bijhoudt (begint iedere keer om 0:00uur op nul).
Als jee die sensor koppelt in je heatpump settings ben je al een stuk verder..
Dan de houdt de warmtepomp, ook bij deze koude dagen genoeg tijd over in de resterende de rest van de benodigde warmte te produceren.
Tweede wat opvalt:
code:
1
2
2026-01-06 12:46:40 info: Maximaal warmteproducerend vermogen: 12.0 kW
2026-01-06 12:46:40 info: Minimaal warmteproducerend vermogen: 12.0 kW

Mijn vraag daarover is:
Heeft jouw wp maar 1 vermogen, kan hij niet moduleren?
Ik was inderdaad zover gekomen dat er met het optellen van de thermisch vermogen iets niet helemaal goed ging. Daar een nieuwe sensor voor gemaakt en erin gezet en een helper die hem iedere dag weer op 0 zet (0.00 's-nachts) Mijn wp kan moduleren tussen 1.05~3.85 kWh (elektrisch) en het vermogen wordt aangestuurd door de compressor harder te laten werken (frequentie geregeld in hz) Maar frequentie input veranderen kan ik niet. Dus wat DAO doet is de gewenste kamer temperatuur verhogen (en als de prijs te hoog is, dan verlaagt hij zodat de wp stopt)

Ergens was er al een periode verzonden waardoor de WP nu in "prijs besparing" staat en niet meer wilde inschakelen, DAO uitgezet (addon gestop) helaas. (óók niet via de thermostaat) wp gereset ook geen resultaat. uiteindelijk de mod-bus uitgeschakeld (utp eruit) wp gereset, alle tijdklokken gereset en zowaar starte de wp weer op.

Dus ik duik er nog eens in wanneer de buitentemperatuur iets vriendelijker is. Wellicht is het een idee (of wellicht heeft iemand dat al gemaakt) om een soort 'over-rule' knop te maken waarmee je altijd (ongeacht het schema) de boel kunt inschakelen.

Eerst nog eens een keer weer de manual doornemen en misschien kan ik een test laten draaien die wel kijkt naar alle sensoren en simuleert maar niet direct aanstuurt (bestaat zoiets en is daar een manual voor?)

En uiteraard alvast bedankt voor het meedenken !

  • The Source
  • Registratie: April 2000
  • Laatst online: 22:35
Ik was met Emhass aan het klooien, maar mij werd dit aangeraden. Echter krijg ik bij de setup al een fout.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 4467, in <module>
    main()
    ~~~~^^
  File "/root/dao/webserver/../prog/day_ahead.py", line 4430, in main
    da_calc = DaCalc("../data/options.json")
  File "/root/dao/webserver/../prog/day_ahead.py", line 29, in __init__
    super().__init__(file_name=file_name)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_base.py", line 125, in __init__
    self.meteo = Meteo(self.config, self.db_da)
                 ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_meteo.py", line 21, in __init__
    self.meteoserver_key = config.get(["meteoserver-key"])
                           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_config.py", line 37, in get
    result = self.secrets[result[8:]]
             ~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'meteoserver-key'


Mijn key staat waar de x-jes staan.

code:
1
 "xxxx": "key meteo server",


Ik zag een half jaar geleden na een search een soortgelijke fout echter zou dat in de huidige release gefxed zijn. Mijn meteo account is activated, onbetaald en de key in mijn mail was hetzelfde als in het meteo back-end. Als ik day ahead prijzen ophalen draai dan dezelfde error.

[ Voor 6% gewijzigd door The Source op 06-01-2026 21:33 ]


  • Mirabis
  • Registratie: Juli 2013
  • Niet online
The Source schreef op dinsdag 6 januari 2026 @ 21:31:
Ik was met Emhass aan het klooien, maar mij werd dit aangeraden. Echter krijg ik bij de setup al een fout.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 4467, in <module>
    main()
    ~~~~^^
  File "/root/dao/webserver/../prog/day_ahead.py", line 4430, in main
    da_calc = DaCalc("../data/options.json")
  File "/root/dao/webserver/../prog/day_ahead.py", line 29, in __init__
    super().__init__(file_name=file_name)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_base.py", line 125, in __init__
    self.meteo = Meteo(self.config, self.db_da)
                 ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_meteo.py", line 21, in __init__
    self.meteoserver_key = config.get(["meteoserver-key"])
                           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_config.py", line 37, in get
    result = self.secrets[result[8:]]
             ~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'meteoserver-key'


Mijn key staat waar de x-jes staan.

code:
1
 "xxxx": "key meteo server",


Ik zag een half jaar geleden na een search een soortgelijke fout echter zou dat in de huidige release gefxed zijn. Mijn meteo account is activated, onbetaald en de key in mijn mail was hetzelfde als in het meteo back-end. Als ik day ahead prijzen ophalen draai dan dezelfde error.
Het kan zijn dat ik je bericht verkeerd lees of je hebt het daadwerkelijk verkeerd om opgegeven. Het zou moeten zijn:
Options:
code:
1
"meteoserver-key": "!secret meteoserver-key",

Secrets:
code:
1
2
3
{ 
"meteoserver-key": "XXXXX",
}


Of rechtstreeks in je config zonder !secret maar gewoon hardcoded.

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh


  • The Source
  • Registratie: April 2000
  • Laatst online: 22:35
Mirabis schreef op dinsdag 6 januari 2026 @ 21:43:
[...]


Het kan zijn dat ik je bericht verkeerd lees of je hebt het daadwerkelijk verkeerd om opgegeven. Het zou moeten zijn:
Options:
code:
1
"meteoserver-key": "!secret meteoserver-key",

Secrets:
code:
1
2
3
{ 
"meteoserver-key": "XXXXX",
}


Of rechtstreeks in je config zonder !secret maar gewoon hardcoded.
Dat werkt wel :) Dank!. Ik had de text te letterlijk genomen:
code:
1
2
En je vult bij "meteoserver-key" jouw api key in:
  "meteoserver-key": "<api key>",
Herbertnl schreef op dinsdag 6 januari 2026 @ 18:14:
[...]


Ik was inderdaad zover gekomen dat er met het optellen van de thermisch vermogen iets niet helemaal goed ging. Daar een nieuwe sensor voor gemaakt en erin gezet en een helper die hem iedere dag weer op 0 zet (0.00 's-nachts) Mijn wp kan moduleren tussen 1.05~3.85 kWh (elektrisch) en het vermogen wordt aangestuurd door de compressor harder te laten werken (frequentie geregeld in hz) Maar frequentie input veranderen kan ik niet. Dus wat DAO doet is de gewenste kamer temperatuur verhogen (en als de prijs te hoog is, dan verlaagt hij zodat de wp stopt)

Ergens was er al een periode verzonden waardoor de WP nu in "prijs besparing" staat en niet meer wilde inschakelen, DAO uitgezet (addon gestop) helaas. (óók niet via de thermostaat) wp gereset ook geen resultaat. uiteindelijk de mod-bus uitgeschakeld (utp eruit) wp gereset, alle tijdklokken gereset en zowaar starte de wp weer op.

Dus ik duik er nog eens in wanneer de buitentemperatuur iets vriendelijker is. Wellicht is het een idee (of wellicht heeft iemand dat al gemaakt) om een soort 'over-rule' knop te maken waarmee je altijd (ongeacht het schema) de boel kunt inschakelen.

Eerst nog eens een keer weer de manual doornemen en misschien kan ik een test laten draaien die wel kijkt naar alle sensoren en simuleert maar niet direct aanstuurt (bestaat zoiets en is daar een manual voor?)

En uiteraard alvast bedankt voor het meedenken !
Dat simuleren kan heel eenvoudig.
Bijna altijd stuur je metDAO niet direct een sensor of switch aan die direct (via een integratie) ingrijpt op een apparaat. Meestal maak je een of meer helpers in HA aan waar DAO zijn berekende resultaten naar toe schrijft. Die wijziging van "state" gebruik je dan om een automation te triggeren die de berekende waarde (soms omgerekend) schrijft naar een sensor/switch die wel direct gekoppeld is aan een integratie en waarmee je het betreffende apparaat bestuurt.
Als je nu die laatste stap achterwege laat heb je voor jezelf een mooie speeltuin gemaakt om van alles te simuleren, zonder dat je apparatuur daarvan op hol slaat.

Als je een utility meter maakt met cycle "daily" heb je sensor die vanzelf iedere dag opnieuw begint te tellen.

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

Zojuist heeft versie 2026.01.0.rc3 het licht gezien
Dit staat in de changelog:
  • Fixed error on first time running ml_training (reported by @simnet)
  • Added "ml_predictions" and "entities sensors" to options_example.json
  • Added "train_ml_predictions" to scheduler and options_example.json
  • Dynamical change of dashboard menu after changing ml_prediction (no restart needed anymore)
  • Fixed error with api_run.html (reported by @DaBit
Kleine toelichting:
Op grond van diverse ervaringen is conclusie:
Het gebruik van de ml-voorspeller geeft betere voorspellingen dan de DAO-berekening/voorspelling als je minimaal meer dan een half jaar en liefst een heel jaar of meer aan geregistreerde productie van je zonnepanelen hebt, zodat je je modellen voldoende kunt trainen. Ik kreeg zelf pas veel betere resultaten mer 3 jaar aan productiegegevens.
Kijk goed naar de resultaten van de training. Als je een R² van minder dan 0,9 hebt dan is het gebruik de voorspeller nog niet aan te raden.

Als je "ML modellen trainen" start vanuit het run-menu kan het soms langer dan 2 minuten duren en dan krijg je een time-out-error en wordt de berekening afgebroken. Om deze reden en ook om dagelijks de berekende modellen te updaten verdient het aanbeveling om de training eens per dag via de scheduler te laten lopen met deze extra regel: "2350": "train_ml_predictions", waarbij je natuurlijk zelf het tijdstip mag bepalen.

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


  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 21:14
Bedoel je dan een training R² of testing R² >0.9?
Bij mij is de training R² structureel hoger dan 0.9, maar de testing R² niet.

'schuurplatnoord' is een extreme: training R² van 0.95, testing R² van amper 0.51. En die voorspelt inderdaad niet geweldig rond deze tijd. Of-ie dat in de zomermaanden wel doet kan ik niet zien; als ik terug probeer te kijken dan krijg ik voor alle datums voor 2025-09-15 een 'Internal Server Error' als ik kijk bij solar -> <kies een array> -> <grafiek of tabel maakt niet uit> -> met pijltje bladeren of datum kiezen voor 2025-09-14

(@KC27: dat probleem is niet nieuw, dus aan de data die ik je stuurde zou je voldoende moeten hebben. Maar als je een verse dataset wil, geef maar een gil)
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
 2026-01-07 08:30:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 08:30:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 08:30:00
2026-01-07 08:30:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 08:30:00 taak: train_ml_predictions
2026-01-07 08:30:02 info: KNMI-weerstation: 375 VOLKEL
2026-01-07 08:30:02 info: Er zijn knmi-data aanwezig vanaf 2023-01-04 01:00:00 tot 2026-01-06 00:00:00
2026-01-07 08:30:02 info: Er zijn data van het KNMI binnengekomen vanaf 2026-01-05 00:00:00+01:00 tot en met 2026-01-05 23:00:00+01:00
2026-01-07 08:30:07 info: Starting solar prediction model for Growatt training...
2026-01-07 08:30:07 info: Loading and processing data...
2026-01-07 08:30:08 info: Merging weather and solar data...
2026-01-07 08:30:08 info: Merged dataset: 26281 records
2026-01-07 08:30:08 info: Date range: 2023-01-06 23:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:08 info: Detecting outliers...
2026-01-07 08:30:09 info: Outliers removed: 1020 (3.9%)
2026-01-07 08:30:09 info: Clean dataset: 25261 records
2026-01-07 08:30:09 info: Training samples: 20208
2026-01-07 08:30:09 info: Testing samples: 5053
2026-01-07 08:30:09 info: Tune hyperparameters: True
2026-01-07 08:30:09 info: Tuning hyperparameters...
2026-01-07 08:30:09 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:24 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 3, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:24 info: Training final model...
2026-01-07 08:30:24 info: Parameters: {'learning_rate': 0.05, 'max_depth': 3, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:24 info: Model training van Growatt complete
2026-01-07 08:30:24 info: Model saved to: ../data/prediction/models/Growatt.pkl
2026-01-07 08:30:24 info: Training MAE: 0.1173 kWh
2026-01-07 08:30:24 info: Testing MAE: 0.1271 kWh
2026-01-07 08:30:24 info: Training R²: 0.9579
2026-01-07 08:30:24 info: Testing R²: 0.9508
2026-01-07 08:30:24 info: Sorted features:
2026-01-07 08:30:24 info:   1. irradiance: 0.951
2026-01-07 08:30:24 info:   2. week_nr: 0.011
2026-01-07 08:30:24 info:   3. season: 0.010
2026-01-07 08:30:24 info:   4. quarter: 0.009
2026-01-07 08:30:24 info:   5. hour: 0.007
2026-01-07 08:30:24 info:   6. temperature: 0.004
2026-01-07 08:30:24 info:   7. month: 0.004
2026-01-07 08:30:24 info:   8. day_of_week: 0.004
2026-01-07 08:30:25 info: Starting solar prediction model for schuurzuid training...
2026-01-07 08:30:25 info: Loading and processing data...
2026-01-07 08:30:26 info: Merging weather and solar data...
2026-01-07 08:30:26 info: Merged dataset: 18520 records
2026-01-07 08:30:26 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:26 info: Detecting outliers...
2026-01-07 08:30:27 info: Outliers removed: 433 (2.3%)
2026-01-07 08:30:27 info: Clean dataset: 18087 records
2026-01-07 08:30:27 info: Training samples: 14469
2026-01-07 08:30:27 info: Testing samples: 3618
2026-01-07 08:30:27 info: Tune hyperparameters: True
2026-01-07 08:30:27 info: Tuning hyperparameters...
2026-01-07 08:30:27 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:33 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:30:33 info: Training final model...
2026-01-07 08:30:33 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:30:33 info: Model training van schuurzuid complete
2026-01-07 08:30:33 info: Model saved to: ../data/prediction/models/schuurzuid.pkl
2026-01-07 08:30:33 info: Training MAE: 0.0194 kWh
2026-01-07 08:30:33 info: Testing MAE: 0.0212 kWh
2026-01-07 08:30:33 info: Training R²: 0.9359
2026-01-07 08:30:33 info: Testing R²: 0.7806
2026-01-07 08:30:33 info: Sorted features:
2026-01-07 08:30:33 info:   1. irradiance: 0.829
2026-01-07 08:30:33 info:   2. hour: 0.039
2026-01-07 08:30:33 info:   3. quarter: 0.031
2026-01-07 08:30:33 info:   4. week_nr: 0.031
2026-01-07 08:30:33 info:   5. season: 0.029
2026-01-07 08:30:33 info:   6. month: 0.025
2026-01-07 08:30:33 info:   7. temperature: 0.010
2026-01-07 08:30:33 info:   8. day_of_week: 0.007
2026-01-07 08:30:34 info: Starting solar prediction model for schuurmidden training...
2026-01-07 08:30:34 info: Loading and processing data...
2026-01-07 08:30:35 info: Merging weather and solar data...
2026-01-07 08:30:35 info: Merged dataset: 18520 records
2026-01-07 08:30:35 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:35 info: Detecting outliers...
2026-01-07 08:30:35 info: Outliers removed: 405 (2.2%)
2026-01-07 08:30:35 info: Clean dataset: 18115 records
2026-01-07 08:30:35 info: Training samples: 14492
2026-01-07 08:30:35 info: Testing samples: 3623
2026-01-07 08:30:35 info: Tune hyperparameters: True
2026-01-07 08:30:35 info: Tuning hyperparameters...
2026-01-07 08:30:35 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:42 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 200, 'subsample': 0.8}
2026-01-07 08:30:42 info: Training final model...
2026-01-07 08:30:42 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 200, 'subsample': 0.8}
2026-01-07 08:30:42 info: Model training van schuurmidden complete
2026-01-07 08:30:42 info: Model saved to: ../data/prediction/models/schuurmidden.pkl
2026-01-07 08:30:42 info: Training MAE: 0.0184 kWh
2026-01-07 08:30:42 info: Testing MAE: 0.0223 kWh
2026-01-07 08:30:42 info: Training R²: 0.9433
2026-01-07 08:30:42 info: Testing R²: 0.7307
2026-01-07 08:30:42 info: Sorted features:
2026-01-07 08:30:42 info:   1. irradiance: 0.827
2026-01-07 08:30:42 info:   2. hour: 0.050
2026-01-07 08:30:42 info:   3. quarter: 0.041
2026-01-07 08:30:42 info:   4. week_nr: 0.034
2026-01-07 08:30:42 info:   5. month: 0.026
2026-01-07 08:30:42 info:   6. temperature: 0.009
2026-01-07 08:30:42 info:   7. day_of_week: 0.009
2026-01-07 08:30:42 info:   8. season: 0.005
2026-01-07 08:30:42 info: Starting solar prediction model for schuurnoord training...
2026-01-07 08:30:42 info: Loading and processing data...
2026-01-07 08:30:43 info: Merging weather and solar data...
2026-01-07 08:30:43 info: Merged dataset: 18520 records
2026-01-07 08:30:43 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:43 info: Detecting outliers...
2026-01-07 08:30:44 info: Outliers removed: 393 (2.1%)
2026-01-07 08:30:44 info: Clean dataset: 18127 records
2026-01-07 08:30:44 info: Training samples: 14501
2026-01-07 08:30:44 info: Testing samples: 3626
2026-01-07 08:30:44 info: Tune hyperparameters: True
2026-01-07 08:30:44 info: Tuning hyperparameters...
2026-01-07 08:30:44 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:51 info: Best parameters: {'learning_rate': 0.1, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:51 info: Training final model...
2026-01-07 08:30:51 info: Parameters: {'learning_rate': 0.1, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:51 info: Model training van schuurnoord complete
2026-01-07 08:30:51 info: Model saved to: ../data/prediction/models/schuurnoord.pkl
2026-01-07 08:30:51 info: Training MAE: 0.0177 kWh
2026-01-07 08:30:51 info: Testing MAE: 0.0216 kWh
2026-01-07 08:30:51 info: Training R²: 0.9479
2026-01-07 08:30:51 info: Testing R²: 0.7620
2026-01-07 08:30:51 info: Sorted features:
2026-01-07 08:30:51 info:   1. irradiance: 0.845
2026-01-07 08:30:51 info:   2. hour: 0.040
2026-01-07 08:30:51 info:   3. week_nr: 0.031
2026-01-07 08:30:51 info:   4. month: 0.030
2026-01-07 08:30:51 info:   5. quarter: 0.022
2026-01-07 08:30:51 info:   6. season: 0.016
2026-01-07 08:30:51 info:   7. day_of_week: 0.009
2026-01-07 08:30:51 info:   8. temperature: 0.007
2026-01-07 08:30:52 info: Starting solar prediction model for schuurplatnoord training...
2026-01-07 08:30:52 info: Loading and processing data...
2026-01-07 08:30:53 info: Merging weather and solar data...
2026-01-07 08:30:53 info: Merged dataset: 14817 records
2026-01-07 08:30:53 info: Date range: 2024-04-28 15:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:53 info: Detecting outliers...
2026-01-07 08:30:53 info: Outliers removed: 344 (2.3%)
2026-01-07 08:30:53 info: Clean dataset: 14473 records
2026-01-07 08:30:53 info: Training samples: 11578
2026-01-07 08:30:53 info: Testing samples: 2895
2026-01-07 08:30:53 info: Tune hyperparameters: True
2026-01-07 08:30:53 info: Tuning hyperparameters...
2026-01-07 08:30:53 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:00 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:00 info: Training final model...
2026-01-07 08:31:00 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:00 info: Model training van schuurplatnoord complete
2026-01-07 08:31:00 info: Model saved to: ../data/prediction/models/schuurplatnoord.pkl
2026-01-07 08:31:00 info: Training MAE: 0.0187 kWh
2026-01-07 08:31:00 info: Testing MAE: 0.0137 kWh
2026-01-07 08:31:00 info: Training R²: 0.9491
2026-01-07 08:31:00 info: Testing R²: 0.5098
2026-01-07 08:31:00 info: Sorted features:
2026-01-07 08:31:00 info:   1. irradiance: 0.822
2026-01-07 08:31:00 info:   2. quarter: 0.058
2026-01-07 08:31:00 info:   3. week_nr: 0.047
2026-01-07 08:31:00 info:   4. temperature: 0.024
2026-01-07 08:31:00 info:   5. hour: 0.017
2026-01-07 08:31:00 info:   6. month: 0.016
2026-01-07 08:31:00 info:   7. season: 0.012
2026-01-07 08:31:00 info:   8. day_of_week: 0.005
2026-01-07 08:31:00 info: Starting solar prediction model for erker training...
2026-01-07 08:31:00 info: Loading and processing data...
2026-01-07 08:31:01 info: Merging weather and solar data...
2026-01-07 08:31:01 info: Merged dataset: 14984 records
2026-01-07 08:31:01 info: Date range: 2024-04-21 16:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:31:01 info: Detecting outliers...
2026-01-07 08:31:02 info: Outliers removed: 267 (1.8%)
2026-01-07 08:31:02 info: Clean dataset: 14717 records
2026-01-07 08:31:02 info: Training samples: 11773
2026-01-07 08:31:02 info: Testing samples: 2944
2026-01-07 08:31:02 info: Tune hyperparameters: True
2026-01-07 08:31:02 info: Tuning hyperparameters...
2026-01-07 08:31:02 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:08 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:08 info: Training final model...
2026-01-07 08:31:08 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:08 info: Model training van erker complete
2026-01-07 08:31:08 info: Model saved to: ../data/prediction/models/erker.pkl
2026-01-07 08:31:08 info: Training MAE: 0.0096 kWh
2026-01-07 08:31:08 info: Testing MAE: 0.0065 kWh
2026-01-07 08:31:08 info: Training R²: 0.9069
2026-01-07 08:31:08 info: Testing R²: 0.6481
2026-01-07 08:31:08 info: Sorted features:
2026-01-07 08:31:08 info:   1. irradiance: 0.519
2026-01-07 08:31:08 info:   2. hour: 0.387
2026-01-07 08:31:08 info:   3. month: 0.027
2026-01-07 08:31:08 info:   4. day_of_week: 0.019
2026-01-07 08:31:08 info:   5. temperature: 0.018
2026-01-07 08:31:08 info:   6. week_nr: 0.017
2026-01-07 08:31:08 info:   7. season: 0.008
2026-01-07 08:31:08 info:   8. quarter: 0.006
2026-01-07 08:31:08 info: Starting solar prediction model for aanbouw training...
2026-01-07 08:31:08 info: Loading and processing data...
2026-01-07 08:31:09 info: Merging weather and solar data...
2026-01-07 08:31:09 info: Merged dataset: 15139 records
2026-01-07 08:31:09 info: Date range: 2024-04-15 05:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:31:09 info: Detecting outliers...
2026-01-07 08:31:10 info: Outliers removed: 276 (1.8%)
2026-01-07 08:31:10 info: Clean dataset: 14863 records
2026-01-07 08:31:10 info: Training samples: 11890
2026-01-07 08:31:10 info: Testing samples: 2973
2026-01-07 08:31:10 info: Tune hyperparameters: True
2026-01-07 08:31:10 info: Tuning hyperparameters...
2026-01-07 08:31:10 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:16 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:31:16 info: Training final model...
2026-01-07 08:31:16 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:31:16 info: Model training van aanbouw complete
2026-01-07 08:31:16 info: Model saved to: ../data/prediction/models/aanbouw.pkl
2026-01-07 08:31:16 info: Training MAE: 0.0191 kWh
2026-01-07 08:31:16 info: Testing MAE: 0.0129 kWh
2026-01-07 08:31:16 info: Training R²: 0.9256
2026-01-07 08:31:16 info: Testing R²: 0.6801
2026-01-07 08:31:16 info: Sorted features:
2026-01-07 08:31:16 info:   1. irradiance: 0.559
2026-01-07 08:31:16 info:   2. hour: 0.382
2026-01-07 08:31:16 info:   3. week_nr: 0.020
2026-01-07 08:31:16 info:   4. temperature: 0.015
2026-01-07 08:31:16 info:   5. month: 0.011
2026-01-07 08:31:16 info:   6. day_of_week: 0.006
2026-01-07 08:31:16 info:   7. quarter: 0.005
2026-01-07 08:31:16 info:   8. season: 0.001
DaBit schreef op woensdag 7 januari 2026 @ 09:08:
Bedoel je dan een training R² of testing R² >0.9?
Bij mij is de training R² structureel hoger dan 0.9, maar de testing R² niet.
Dat is altijd. Het programma verdeelt alle beschikbare data tussen twee sets; een training set en een testing set.
Hij traint het model met de training set, dus die fit het beste. Daarna gaat hij kijken hoe de fitting is met de testing-set. Dat is eigenlijk een goede controle. Als die testing-set ook goed scoort heb je een goed model te pakken.
Overigens: ml-modellen zijn niet de heilige graal, maar kunnen beter zijn dan de dao-voorspelling, maar dat hoeft niet altijd. Bij mij werken ze beter omdat mijn panelen 's morgens tot 10 uur last hebben van beschaduwing door de bosrand. Die vist het ml-model er naadloos uit.
Ik kan kijken of ik in de training-routine voor de testing-set ook de DAO-voorspelling kan reproduceren en daar ook een R² voorspelling van kan berekenen en presenteren. Dan kunnen we de methoden nog beter vergelijken.
Tenslotte: de voorspellingen van dao en de ml-voorspeller voor vandaag en morgen worden gedaan met de voorspelling van de globale straling. Ook die kan flink afwijken van de werkelijk gemeten globale stralingen dat levert dan ook extra "ruis" op.
'schuurplatnoord' is een extreme: training R² van 0.95, testing R² van amper 0.51. En die voorspelt inderdaad niet geweldig rond deze tijd. Of-ie dat in de zomermaanden wel doet kan ik niet zien; als ik terug probeer te kijken dan krijg ik voor alle datums voor 2025-09-15 een 'Internal Server Error' als ik kijk bij solar -> <kies een array> -> <grafiek of tabel maakt niet uit> -> met pijltje bladeren of datum kiezen voor 2025-09-14

(@KC27: dat probleem is niet nieuw, dus aan de data die ik je stuurde zou je voldoende moeten hebben. Maar als je een verse dataset wil, geef maar een gil)

[...]
Ik wil die "Internal server error" wel oplossen, maar dan heb ik de logging daarvan nodig in de HA-logging van de addon direct na het optreden van deze fout. Die heb ik nog niet. Wil je me die sturen of het laatste stuk daarvan hier posten?

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: 22:01
Ik krijg deze foutmelding wanneer ik naar de Solar tab ga (rc3)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[2026-01-07 12:33:15,245] fout in app: Exception on / [POST]
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/root/dao/webserver/app/routes.py", line 316, in menu
    return solar()
  File "/root/dao/webserver/app/routes.py", line 635, in solar
    report_df = report.calc_solar_data(
        solar_items[active_subject], active_date, active_view
    )
  File "/root/dao/prog/da_report.py", line 3014, in calc_solar_data
    device, row.tijd.timestamp(), row.prognose_straling, 1
            ~~~~~~~~~~~~~~~~~~^^
  File "pandas/_libs/tslibs/nattype.pyx", line 54, in pandas._libs.tslibs.nattype._make_error_func.f
ValueError: NaTType does not support timestamp

  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 21:14
KC27 schreef op woensdag 7 januari 2026 @ 12:01:
Ik wil die "Internal server error" wel oplossen, maar dan heb ik de logging daarvan nodig in de HA-logging van de addon direct na het optreden van deze fout. Die heb ik nog niet. Wil je me die sturen of het laatste stuk daarvan hier posten?
Kun je me exact vertellen wat je hebben wil?
Als ik bij Settings -> System -> Logs en dan rechts bovenin '刀 Day Ahead Optimizer (TESTING)' kies ipv HomeAssistant Core dan is dit het resultaat:
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
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
2026-01-07 08:30:02 info: KNMI-weerstation: 375 VOLKEL
2026-01-07 08:30:02 info: Er zijn knmi-data aanwezig vanaf 2023-01-04 01:00:00 tot 2026-01-06 00:00:00
2026-01-07 08:30:02 info: Er zijn data van het KNMI binnengekomen vanaf 2026-01-05 00:00:00+01:00 tot en met 2026-01-05 23:00:00+01:00
2026-01-07 08:30:07 info: Starting solar prediction model for Growatt training...
2026-01-07 08:30:07 info: Loading and processing data...
2026-01-07 08:30:08 info: Merging weather and solar data...
2026-01-07 08:30:08 info: Merged dataset: 26281 records
2026-01-07 08:30:08 info: Date range: 2023-01-06 23:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:08 info: Detecting outliers...
2026-01-07 08:30:09 info: Outliers removed: 1020 (3.9%)
2026-01-07 08:30:09 info: Clean dataset: 25261 records
2026-01-07 08:30:09 info: Training samples: 20208
2026-01-07 08:30:09 info: Testing samples: 5053
2026-01-07 08:30:09 info: Tune hyperparameters: True
2026-01-07 08:30:09 info: Tuning hyperparameters...
2026-01-07 08:30:09 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:24 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 3, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:24 info: Training final model...
2026-01-07 08:30:24 info: Parameters: {'learning_rate': 0.05, 'max_depth': 3, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:24 info: Model training van Growatt complete
2026-01-07 08:30:24 info: Model saved to: ../data/prediction/models/Growatt.pkl
2026-01-07 08:30:24 info: Training MAE: 0.1173 kWh
2026-01-07 08:30:24 info: Testing MAE: 0.1271 kWh
2026-01-07 08:30:24 info: Training R²: 0.9579
2026-01-07 08:30:24 info: Testing R²: 0.9508
2026-01-07 08:30:24 info: Sorted features:
2026-01-07 08:30:24 info:   1. irradiance: 0.951
2026-01-07 08:30:24 info:   2. week_nr: 0.011
2026-01-07 08:30:24 info:   3. season: 0.010
2026-01-07 08:30:24 info:   4. quarter: 0.009
2026-01-07 08:30:24 info:   5. hour: 0.007
2026-01-07 08:30:24 info:   6. temperature: 0.004
2026-01-07 08:30:24 info:   7. month: 0.004
2026-01-07 08:30:24 info:   8. day_of_week: 0.004
2026-01-07 08:30:25 info: Starting solar prediction model for schuurzuid training...
2026-01-07 08:30:25 info: Loading and processing data...
2026-01-07 08:30:26 info: Merging weather and solar data...
2026-01-07 08:30:26 info: Merged dataset: 18520 records
2026-01-07 08:30:26 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:26 info: Detecting outliers...
2026-01-07 08:30:27 info: Outliers removed: 433 (2.3%)
2026-01-07 08:30:27 info: Clean dataset: 18087 records
2026-01-07 08:30:27 info: Training samples: 14469
2026-01-07 08:30:27 info: Testing samples: 3618
2026-01-07 08:30:27 info: Tune hyperparameters: True
2026-01-07 08:30:27 info: Tuning hyperparameters...
2026-01-07 08:30:27 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:33 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:30:33 info: Training final model...
2026-01-07 08:30:33 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:30:33 info: Model training van schuurzuid complete
2026-01-07 08:30:33 info: Model saved to: ../data/prediction/models/schuurzuid.pkl
2026-01-07 08:30:33 info: Training MAE: 0.0194 kWh
2026-01-07 08:30:33 info: Testing MAE: 0.0212 kWh
2026-01-07 08:30:33 info: Training R²: 0.9359
2026-01-07 08:30:33 info: Testing R²: 0.7806
2026-01-07 08:30:33 info: Sorted features:
2026-01-07 08:30:33 info:   1. irradiance: 0.829
2026-01-07 08:30:33 info:   2. hour: 0.039
2026-01-07 08:30:33 info:   3. quarter: 0.031
2026-01-07 08:30:33 info:   4. week_nr: 0.031
2026-01-07 08:30:33 info:   5. season: 0.029
2026-01-07 08:30:33 info:   6. month: 0.025
2026-01-07 08:30:33 info:   7. temperature: 0.010
2026-01-07 08:30:33 info:   8. day_of_week: 0.007
2026-01-07 08:30:34 info: Starting solar prediction model for schuurmidden training...
2026-01-07 08:30:34 info: Loading and processing data...
2026-01-07 08:30:35 info: Merging weather and solar data...
2026-01-07 08:30:35 info: Merged dataset: 18520 records
2026-01-07 08:30:35 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:35 info: Detecting outliers...
2026-01-07 08:30:35 info: Outliers removed: 405 (2.2%)
2026-01-07 08:30:35 info: Clean dataset: 18115 records
2026-01-07 08:30:35 info: Training samples: 14492
2026-01-07 08:30:35 info: Testing samples: 3623
2026-01-07 08:30:35 info: Tune hyperparameters: True
2026-01-07 08:30:35 info: Tuning hyperparameters...
2026-01-07 08:30:35 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:42 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 200, 'subsample': 0.8}
2026-01-07 08:30:42 info: Training final model...
2026-01-07 08:30:42 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 200, 'subsample': 0.8}
2026-01-07 08:30:42 info: Model training van schuurmidden complete
2026-01-07 08:30:42 info: Model saved to: ../data/prediction/models/schuurmidden.pkl
2026-01-07 08:30:42 info: Training MAE: 0.0184 kWh
2026-01-07 08:30:42 info: Testing MAE: 0.0223 kWh
2026-01-07 08:30:42 info: Training R²: 0.9433
2026-01-07 08:30:42 info: Testing R²: 0.7307
2026-01-07 08:30:42 info: Sorted features:
2026-01-07 08:30:42 info:   1. irradiance: 0.827
2026-01-07 08:30:42 info:   2. hour: 0.050
2026-01-07 08:30:42 info:   3. quarter: 0.041
2026-01-07 08:30:42 info:   4. week_nr: 0.034
2026-01-07 08:30:42 info:   5. month: 0.026
2026-01-07 08:30:42 info:   6. temperature: 0.009
2026-01-07 08:30:42 info:   7. day_of_week: 0.009
2026-01-07 08:30:42 info:   8. season: 0.005
2026-01-07 08:30:42 info: Starting solar prediction model for schuurnoord training...
2026-01-07 08:30:42 info: Loading and processing data...
2026-01-07 08:30:43 info: Merging weather and solar data...
2026-01-07 08:30:43 info: Merged dataset: 18520 records
2026-01-07 08:30:43 info: Date range: 2023-11-26 08:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:43 info: Detecting outliers...
2026-01-07 08:30:44 info: Outliers removed: 393 (2.1%)
2026-01-07 08:30:44 info: Clean dataset: 18127 records
2026-01-07 08:30:44 info: Training samples: 14501
2026-01-07 08:30:44 info: Testing samples: 3626
2026-01-07 08:30:44 info: Tune hyperparameters: True
2026-01-07 08:30:44 info: Tuning hyperparameters...
2026-01-07 08:30:44 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:30:51 info: Best parameters: {'learning_rate': 0.1, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:51 info: Training final model...
2026-01-07 08:30:51 info: Parameters: {'learning_rate': 0.1, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:30:51 info: Model training van schuurnoord complete
2026-01-07 08:30:51 info: Model saved to: ../data/prediction/models/schuurnoord.pkl
2026-01-07 08:30:51 info: Training MAE: 0.0177 kWh
2026-01-07 08:30:51 info: Testing MAE: 0.0216 kWh
2026-01-07 08:30:51 info: Training R²: 0.9479
2026-01-07 08:30:51 info: Testing R²: 0.7620
2026-01-07 08:30:51 info: Sorted features:
2026-01-07 08:30:51 info:   1. irradiance: 0.845
2026-01-07 08:30:51 info:   2. hour: 0.040
2026-01-07 08:30:51 info:   3. week_nr: 0.031
2026-01-07 08:30:51 info:   4. month: 0.030
2026-01-07 08:30:51 info:   5. quarter: 0.022
2026-01-07 08:30:51 info:   6. season: 0.016
2026-01-07 08:30:51 info:   7. day_of_week: 0.009
2026-01-07 08:30:51 info:   8. temperature: 0.007
2026-01-07 08:30:52 info: Starting solar prediction model for schuurplatnoord training...
2026-01-07 08:30:52 info: Loading and processing data...
2026-01-07 08:30:53 info: Merging weather and solar data...
2026-01-07 08:30:53 info: Merged dataset: 14817 records
2026-01-07 08:30:53 info: Date range: 2024-04-28 15:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:30:53 info: Detecting outliers...
2026-01-07 08:30:53 info: Outliers removed: 344 (2.3%)
2026-01-07 08:30:53 info: Clean dataset: 14473 records
2026-01-07 08:30:53 info: Training samples: 11578
2026-01-07 08:30:53 info: Testing samples: 2895
2026-01-07 08:30:53 info: Tune hyperparameters: True
2026-01-07 08:30:53 info: Tuning hyperparameters...
2026-01-07 08:30:53 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:00 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:00 info: Training final model...
2026-01-07 08:31:00 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:00 info: Model training van schuurplatnoord complete
2026-01-07 08:31:00 info: Model saved to: ../data/prediction/models/schuurplatnoord.pkl
2026-01-07 08:31:00 info: Training MAE: 0.0187 kWh
2026-01-07 08:31:00 info: Testing MAE: 0.0137 kWh
2026-01-07 08:31:00 info: Training R²: 0.9491
2026-01-07 08:31:00 info: Testing R²: 0.5098
2026-01-07 08:31:00 info: Sorted features:
2026-01-07 08:31:00 info:   1. irradiance: 0.822
2026-01-07 08:31:00 info:   2. quarter: 0.058
2026-01-07 08:31:00 info:   3. week_nr: 0.047
2026-01-07 08:31:00 info:   4. temperature: 0.024
2026-01-07 08:31:00 info:   5. hour: 0.017
2026-01-07 08:31:00 info:   6. month: 0.016
2026-01-07 08:31:00 info:   7. season: 0.012
2026-01-07 08:31:00 info:   8. day_of_week: 0.005
2026-01-07 08:31:00 info: Starting solar prediction model for erker training...
2026-01-07 08:31:00 info: Loading and processing data...
2026-01-07 08:31:01 info: Merging weather and solar data...
2026-01-07 08:31:01 info: Merged dataset: 14984 records
2026-01-07 08:31:01 info: Date range: 2024-04-21 16:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:31:01 info: Detecting outliers...
2026-01-07 08:31:02 info: Outliers removed: 267 (1.8%)
2026-01-07 08:31:02 info: Clean dataset: 14717 records
2026-01-07 08:31:02 info: Training samples: 11773
2026-01-07 08:31:02 info: Testing samples: 2944
2026-01-07 08:31:02 info: Tune hyperparameters: True
2026-01-07 08:31:02 info: Tuning hyperparameters...
2026-01-07 08:31:02 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:08 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:08 info: Training final model...
2026-01-07 08:31:08 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.8}
2026-01-07 08:31:08 info: Model training van erker complete
2026-01-07 08:31:08 info: Model saved to: ../data/prediction/models/erker.pkl
2026-01-07 08:31:08 info: Training MAE: 0.0096 kWh
2026-01-07 08:31:08 info: Testing MAE: 0.0065 kWh
2026-01-07 08:31:08 info: Training R²: 0.9069
2026-01-07 08:31:08 info: Testing R²: 0.6481
2026-01-07 08:31:08 info: Sorted features:
2026-01-07 08:31:08 info:   1. irradiance: 0.519
2026-01-07 08:31:08 info:   2. hour: 0.387
2026-01-07 08:31:08 info:   3. month: 0.027
2026-01-07 08:31:08 info:   4. day_of_week: 0.019
2026-01-07 08:31:08 info:   5. temperature: 0.018
2026-01-07 08:31:08 info:   6. week_nr: 0.017
2026-01-07 08:31:08 info:   7. season: 0.008
2026-01-07 08:31:08 info:   8. quarter: 0.006
2026-01-07 08:31:08 info: Starting solar prediction model for aanbouw training...
2026-01-07 08:31:08 info: Loading and processing data...
2026-01-07 08:31:09 info: Merging weather and solar data...
2026-01-07 08:31:09 info: Merged dataset: 15139 records
2026-01-07 08:31:09 info: Date range: 2024-04-15 05:00:00+00:00 to 2026-01-05 23:00:00+00:00
2026-01-07 08:31:09 info: Detecting outliers...
2026-01-07 08:31:10 info: Outliers removed: 276 (1.8%)
2026-01-07 08:31:10 info: Clean dataset: 14863 records
2026-01-07 08:31:10 info: Training samples: 11890
2026-01-07 08:31:10 info: Testing samples: 2973
2026-01-07 08:31:10 info: Tune hyperparameters: True
2026-01-07 08:31:10 info: Tuning hyperparameters...
2026-01-07 08:31:10 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-07 08:31:16 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:31:16 info: Training final model...
2026-01-07 08:31:16 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-07 08:31:16 info: Model training van aanbouw complete
2026-01-07 08:31:16 info: Model saved to: ../data/prediction/models/aanbouw.pkl
2026-01-07 08:31:16 info: Training MAE: 0.0191 kWh
2026-01-07 08:31:16 info: Testing MAE: 0.0129 kWh
2026-01-07 08:31:16 info: Training R²: 0.9256
2026-01-07 08:31:16 info: Testing R²: 0.6801
2026-01-07 08:31:16 info: Sorted features:
2026-01-07 08:31:16 info:   1. irradiance: 0.559
2026-01-07 08:31:16 info:   2. hour: 0.382
2026-01-07 08:31:16 info:   3. week_nr: 0.020
2026-01-07 08:31:16 info:   4. temperature: 0.015
2026-01-07 08:31:16 info:   5. month: 0.011
2026-01-07 08:31:16 info:   6. day_of_week: 0.006
2026-01-07 08:31:16 info:   7. quarter: 0.005
2026-01-07 08:31:16 info:   8. season: 0.001
2026-01-07 08:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 08:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 08:55:00
2026-01-07 08:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 08:55:00 taak: get_day_ahead_prices
2026-01-07 08:55:00 info: Day ahead data already present
2026-01-07 09:30:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 09:30:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 09:30:00
2026-01-07 09:30:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 09:30:00 taak: calc_baseloads
2026-01-07 09:30:16 info: baseload voor weekdag 0 :
2026-01-07 09:30:16 info: 2.236 0.967 0.639 0.843 0.719 0.515 0.425 0.621 0.727 0.792 0.732 0.603 0.702 0.692 0.546 0.539 0.619 0.995 1.143 0.586 0.545 0.586 0.507 0.412 
2026-01-07 09:30:30 info: baseload voor weekdag 1 :
2026-01-07 09:30:30 info: 2.32 0.585 0.874 0.775 0.73 0.531 0.541 0.93 1.38 1.238 0.954 1.488 1.42 1.452 1.023 0.992 0.966 0.914 0.776 0.792 0.552 0.6 0.513 0.61 
2026-01-07 09:30:44 info: baseload voor weekdag 2 :
2026-01-07 09:30:44 info: 2.088 0.569 0.515 0.736 0.64 0.462 0.446 0.613 0.843 0.771 0.592 0.758 0.91 0.9 0.668 0.59 0.605 0.913 1.089 0.778 0.568 0.683 0.664 0.522 
2026-01-07 09:30:58 info: baseload voor weekdag 3 :
2026-01-07 09:30:58 info: 2.14 0.58 0.667 0.76 0.91 0.538 0.61 0.721 0.82 0.563 0.783 0.639 0.591 0.696 0.671 0.548 1.3 0.637 0.595 0.758 0.577 0.536 0.523 0.576 
2026-01-07 09:31:12 info: baseload voor weekdag 4 :
2026-01-07 09:31:12 info: 2.284 0.864 0.75 0.933 0.778 0.489 0.502 0.883 1.413 1.3 1.296 1.56 1.647 1.14 0.897 1.013 1.077 1.165 1.413 0.645 0.582 0.533 0.52 0.583 
2026-01-07 09:31:26 info: baseload voor weekdag 5 :
2026-01-07 09:31:26 info: 2.236 0.649 0.443 0.54 0.511 0.565 0.68 0.771 0.88 1.275 1.13 1.197 1.158 1.168 1.002 0.952 0.771 1.037 1.454 0.735 0.611 0.706 0.737 0.719 
2026-01-07 09:31:41 info: baseload voor weekdag 6 :
2026-01-07 09:31:41 info: 2.336 0.49 0.498 0.567 0.551 0.391 0.531 0.736 1.052 0.92 1.074 0.992 1.293 1.476 1.324 0.976 1.04 1.349 1.267 0.642 0.607 0.654 0.487 0.655 
2026-01-07 09:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 09:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 09:55:00
2026-01-07 09:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 09:55:00 taak: get_day_ahead_prices
2026-01-07 09:55:00 info: Day ahead data already present
2026-01-07 10:33:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 10:33:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 10:33:00
2026-01-07 10:33:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 10:33:00 taak: get_meteo_data
2026-01-07 10:33:00 info: Meteodata model harmonie
2026-01-07 10:33:00 info: Aantal uitgevoerde ophaalpogingen: 1 van maximaal: 2
2026-01-07 10:33:00 info: Aantal records: 39
2026-01-07 10:33:00 info: Data harmonie: 
          tijd           tijd_nl  gr temp winds neersl
0   1767780000  07-01-2026 11:00   7   -1     8    0.5
1   1767783600  07-01-2026 12:00   7   -1     7    0.2
2   1767787200  07-01-2026 13:00  10   -1     7    0.5
3   1767790800  07-01-2026 14:00  11   -1     7      0
4   1767794400  07-01-2026 15:00   6   -1     6    0.3
5   1767798000  07-01-2026 16:00   2   -1     6    0.3
6   1767801600  07-01-2026 17:00   0   -1     6    0.6
7   1767805200  07-01-2026 18:00   0   -1     7    0.3
8   1767808800  07-01-2026 19:00   0   -1     6      0
9   1767812400  07-01-2026 20:00   0   -0     6    0.2
10  1767816000  07-01-2026 21:00   0    0     6    0.1
11  1767819600  07-01-2026 22:00   0    1     5    0.2
12  1767823200  07-01-2026 23:00   0    1     5    0.1
13  1767826800  08-01-2026 00:00   0    1     4    0.1
14  1767830400  08-01-2026 01:00   0    1     4    0.2
15  1767834000  08-01-2026 02:00   0    1     4      0
16  1767837600  08-01-2026 03:00   0    1     4    0.1
17  1767841200  08-01-2026 04:00   0    1     4    0.1
18  1767844800  08-01-2026 05:00   0    1     4    0.2
19  1767848400  08-01-2026 06:00   0    1     5      0
20  1767852000  08-01-2026 07:00   0    1     4      0
21  1767855600  08-01-2026 08:00   0    1     4      0
22  1767859200  08-01-2026 09:00   4    1     5    0.2
23  1767862800  08-01-2026 10:00  23    1     5      0
24  1767866400  08-01-2026 11:00  48    2     5      0
25  1767870000  08-01-2026 12:00  48    2     4      0
26  1767873600  08-01-2026 13:00  55    2     3      0
27  1767877200  08-01-2026 14:00  44    2     3      0
28  1767880800  08-01-2026 15:00  21    2     3      0
29  1767884400  08-01-2026 16:00   2    2     3      0
30  1767888000  08-01-2026 17:00   0    2     3      0
31  1767891600  08-01-2026 18:00   0    2     5    0.2
32  1767895200  08-01-2026 19:00   0    2     5    0.5
33  1767898800  08-01-2026 20:00   0    2     5    0.9
34  1767902400  08-01-2026 21:00   0    2     6    1.4
35  1767906000  08-01-2026 22:00   0    2     6    1.2
36  1767909600  08-01-2026 23:00   0    2     7    1.3
37  1767913200  09-01-2026 00:00   0    2     7    1.7
38  1767916800  09-01-2026 01:00   0    2     7    3.2
2026-01-07 10:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 10:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 10:55:00
2026-01-07 10:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 10:55:00 taak: get_day_ahead_prices
2026-01-07 10:55:00 info: Day ahead data already present
2026-01-07 11:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 11:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 11:55:00
2026-01-07 11:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 11:55:00 taak: get_day_ahead_prices
2026-01-07 11:55:00 info: Day ahead data already present
2026-01-07 12:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 12:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 12:55:00
2026-01-07 12:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 12:55:00 taak: get_day_ahead_prices
2026-01-07 12:55:00 fout: Geen data van Nordpool: tussen 2026-01-07 00:00:00+01:00 en 2026-01-09 00:00:00+01:00
2026-01-07 13:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 13:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 13:55:00
2026-01-07 13:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 13:55:00 taak: get_day_ahead_prices
2026-01-07 13:55:00 info: Day ahead prijzen van Nordpool:
 [ { 'end': datetime.datetime(2026, 1, 7, 23, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 7, 23, 0, tzinfo=tzutc()),
    'value': 86.16},
  { 'end': datetime.datetime(2026, 1, 7, 23, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 7, 23, 15, tzinfo=tzutc()),
    'value': 85.01},
  { 'end': datetime.datetime(2026, 1, 7, 23, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 7, 23, 30, tzinfo=tzutc()),
    'value': 82.05},
  { 'end': datetime.datetime(2026, 1, 8, 0, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 7, 23, 45, tzinfo=tzutc()),
    'value': 80.8},
  { 'end': datetime.datetime(2026, 1, 8, 0, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 0, 0, tzinfo=tzutc()),
    'value': 83.89},
  { 'end': datetime.datetime(2026, 1, 8, 0, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 0, 15, tzinfo=tzutc()),
    'value': 81.37},
  { 'end': datetime.datetime(2026, 1, 8, 0, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 0, 30, tzinfo=tzutc()),
    'value': 82.8},
  { 'end': datetime.datetime(2026, 1, 8, 1, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 0, 45, tzinfo=tzutc()),
    'value': 81.46},
  { 'end': datetime.datetime(2026, 1, 8, 1, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 1, 0, tzinfo=tzutc()),
    'value': 84.7},
  { 'end': datetime.datetime(2026, 1, 8, 1, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 1, 15, tzinfo=tzutc()),
    'value': 84.94},
  { 'end': datetime.datetime(2026, 1, 8, 1, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 1, 30, tzinfo=tzutc()),
    'value': 83.59},
  { 'end': datetime.datetime(2026, 1, 8, 2, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 1, 45, tzinfo=tzutc()),
    'value': 84.86},
  { 'end': datetime.datetime(2026, 1, 8, 2, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 2, 0, tzinfo=tzutc()),
    'value': 82.64},
  { 'end': datetime.datetime(2026, 1, 8, 2, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 2, 15, tzinfo=tzutc()),
    'value': 83.01},
  { 'end': datetime.datetime(2026, 1, 8, 2, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 2, 30, tzinfo=tzutc()),
    'value': 81.76},
  { 'end': datetime.datetime(2026, 1, 8, 3, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 2, 45, tzinfo=tzutc()),
    'value': 82.48},
  { 'end': datetime.datetime(2026, 1, 8, 3, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 3, 0, tzinfo=tzutc()),
    'value': 81.04},
  { 'end': datetime.datetime(2026, 1, 8, 3, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 3, 15, tzinfo=tzutc()),
    'value': 85.0},
  { 'end': datetime.datetime(2026, 1, 8, 3, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 3, 30, tzinfo=tzutc()),
    'value': 87.3},
  { 'end': datetime.datetime(2026, 1, 8, 4, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 3, 45, tzinfo=tzutc()),
    'value': 86.89},
  { 'end': datetime.datetime(2026, 1, 8, 4, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 4, 0, tzinfo=tzutc()),
    'value': 85.26},
  { 'end': datetime.datetime(2026, 1, 8, 4, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 4, 15, tzinfo=tzutc()),
    'value': 86.43},
  { 'end': datetime.datetime(2026, 1, 8, 4, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 4, 30, tzinfo=tzutc()),
    'value': 87.83},
  { 'end': datetime.datetime(2026, 1, 8, 5, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 4, 45, tzinfo=tzutc()),
    'value': 89.11},
  { 'end': datetime.datetime(2026, 1, 8, 5, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 5, 0, tzinfo=tzutc()),
    'value': 85.37},
  { 'end': datetime.datetime(2026, 1, 8, 5, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 5, 15, tzinfo=tzutc()),
    'value': 87.08},
  { 'end': datetime.datetime(2026, 1, 8, 5, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 5, 30, tzinfo=tzutc()),
    'value': 102.8},
  { 'end': datetime.datetime(2026, 1, 8, 6, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 5, 45, tzinfo=tzutc()),
    'value': 111.51},
  { 'end': datetime.datetime(2026, 1, 8, 6, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 6, 0, tzinfo=tzutc()),
    'value': 102.36},
  { 'end': datetime.datetime(2026, 1, 8, 6, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 6, 15, tzinfo=tzutc()),
    'value': 107.79},
  { 'end': datetime.datetime(2026, 1, 8, 6, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 6, 30, tzinfo=tzutc()),
    'value': 129.48},
  { 'end': datetime.datetime(2026, 1, 8, 7, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 6, 45, tzinfo=tzutc()),
    'value': 159.13},
  { 'end': datetime.datetime(2026, 1, 8, 7, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 7, 0, tzinfo=tzutc()),
    'value': 167.59},
  { 'end': datetime.datetime(2026, 1, 8, 7, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 7, 15, tzinfo=tzutc()),
    'value': 165.48},
  { 'end': datetime.datetime(2026, 1, 8, 7, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 7, 30, tzinfo=tzutc()),
    'value': 167.27},
  { 'end': datetime.datetime(2026, 1, 8, 8, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 7, 45, tzinfo=tzutc()),
    'value': 170.92},
  { 'end': datetime.datetime(2026, 1, 8, 8, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 8, 0, tzinfo=tzutc()),
    'value': 180.19},
  { 'end': datetime.datetime(2026, 1, 8, 8, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 8, 15, tzinfo=tzutc()),
    'value': 192.77},
  { 'end': datetime.datetime(2026, 1, 8, 8, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 8, 30, tzinfo=tzutc()),
    'value': 211.21},
  { 'end': datetime.datetime(2026, 1, 8, 9, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 8, 45, tzinfo=tzutc()),
    'value': 183.44},
  { 'end': datetime.datetime(2026, 1, 8, 9, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 9, 0, tzinfo=tzutc()),
    'value': 204.01},
  { 'end': datetime.datetime(2026, 1, 8, 9, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 9, 15, tzinfo=tzutc()),
    'value': 219.64},
  { 'end': datetime.datetime(2026, 1, 8, 9, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 9, 30, tzinfo=tzutc()),
    'value': 200.28},
  { 'end': datetime.datetime(2026, 1, 8, 10, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 9, 45, tzinfo=tzutc()),
    'value': 198.67},
  { 'end': datetime.datetime(2026, 1, 8, 10, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 10, 0, tzinfo=tzutc()),
    'value': 218.4},
  { 'end': datetime.datetime(2026, 1, 8, 10, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 10, 15, tzinfo=tzutc()),
    'value': 200.2},
  { 'end': datetime.datetime(2026, 1, 8, 10, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 10, 30, tzinfo=tzutc()),
    'value': 207.29},
  { 'end': datetime.datetime(2026, 1, 8, 11, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 10, 45, tzinfo=tzutc()),
    'value': 205.31},
  { 'end': datetime.datetime(2026, 1, 8, 11, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 11, 0, tzinfo=tzutc()),
    'value': 210.14},
  { 'end': datetime.datetime(2026, 1, 8, 11, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 11, 15, tzinfo=tzutc()),
    'value': 210.29},
  { 'end': datetime.datetime(2026, 1, 8, 11, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 11, 30, tzinfo=tzutc()),
    'value': 211.31},
  { 'end': datetime.datetime(2026, 1, 8, 12, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 11, 45, tzinfo=tzutc()),
    'value': 226.0},
  { 'end': datetime.datetime(2026, 1, 8, 12, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 12, 0, tzinfo=tzutc()),
    'value': 208.2},
  { 'end': datetime.datetime(2026, 1, 8, 12, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 12, 15, tzinfo=tzutc()),
    'value': 226.07},
  { 'end': datetime.datetime(2026, 1, 8, 12, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 12, 30, tzinfo=tzutc()),
    'value': 231.13},
  { 'end': datetime.datetime(2026, 1, 8, 13, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 12, 45, tzinfo=tzutc()),
    'value': 234.6},
  { 'end': datetime.datetime(2026, 1, 8, 13, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 13, 0, tzinfo=tzutc()),
    'value': 217.17},
  { 'end': datetime.datetime(2026, 1, 8, 13, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 13, 15, tzinfo=tzutc()),
    'value': 248.35},
  { 'end': datetime.datetime(2026, 1, 8, 13, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 13, 30, tzinfo=tzutc()),
    'value': 273.13},
  { 'end': datetime.datetime(2026, 1, 8, 14, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 13, 45, tzinfo=tzutc()),
    'value': 257.38},
  { 'end': datetime.datetime(2026, 1, 8, 14, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 14, 0, tzinfo=tzutc()),
    'value': 237.03},
  { 'end': datetime.datetime(2026, 1, 8, 14, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 14, 15, tzinfo=tzutc()),
    'value': 252.28},
  { 'end': datetime.datetime(2026, 1, 8, 14, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 14, 30, tzinfo=tzutc()),
    'value': 247.47},
  { 'end': datetime.datetime(2026, 1, 8, 15, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 14, 45, tzinfo=tzutc()),
    'value': 252.64},
  { 'end': datetime.datetime(2026, 1, 8, 15, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 15, 0, tzinfo=tzutc()),
    'value': 215.85},
  { 'end': datetime.datetime(2026, 1, 8, 15, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 15, 15, tzinfo=tzutc()),
    'value': 231.1},
  { 'end': datetime.datetime(2026, 1, 8, 15, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 15, 30, tzinfo=tzutc()),
    'value': 260.01},
  { 'end': datetime.datetime(2026, 1, 8, 16, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 15, 45, tzinfo=tzutc()),
    'value': 286.08},
  { 'end': datetime.datetime(2026, 1, 8, 16, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 16, 0, tzinfo=tzutc()),
    'value': 243.88},
  { 'end': datetime.datetime(2026, 1, 8, 16, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 16, 15, tzinfo=tzutc()),
    'value': 250.04},
  { 'end': datetime.datetime(2026, 1, 8, 16, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 16, 30, tzinfo=tzutc()),
    'value': 216.58},
  { 'end': datetime.datetime(2026, 1, 8, 17, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 16, 45, tzinfo=tzutc()),
    'value': 189.5},
  { 'end': datetime.datetime(2026, 1, 8, 17, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 17, 0, tzinfo=tzutc()),
    'value': 262.59},
  { 'end': datetime.datetime(2026, 1, 8, 17, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 17, 15, tzinfo=tzutc()),
    'value': 195.58},
  { 'end': datetime.datetime(2026, 1, 8, 17, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 17, 30, tzinfo=tzutc()),
    'value': 176.29},
  { 'end': datetime.datetime(2026, 1, 8, 18, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 17, 45, tzinfo=tzutc()),
    'value': 142.0},
  { 'end': datetime.datetime(2026, 1, 8, 18, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 18, 0, tzinfo=tzutc()),
    'value': 171.24},
  { 'end': datetime.datetime(2026, 1, 8, 18, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 18, 15, tzinfo=tzutc()),
    'value': 163.37},
  { 'end': datetime.datetime(2026, 1, 8, 18, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 18, 30, tzinfo=tzutc()),
    'value': 114.17},
  { 'end': datetime.datetime(2026, 1, 8, 19, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 18, 45, tzinfo=tzutc()),
    'value': 94.08},
  { 'end': datetime.datetime(2026, 1, 8, 19, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 19, 0, tzinfo=tzutc()),
    'value': 127.39},
  { 'end': datetime.datetime(2026, 1, 8, 19, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 19, 15, tzinfo=tzutc()),
    'value': 100.41},
  { 'end': datetime.datetime(2026, 1, 8, 19, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 19, 30, tzinfo=tzutc()),
    'value': 86.02},
  { 'end': datetime.datetime(2026, 1, 8, 20, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 19, 45, tzinfo=tzutc()),
    'value': 82.76},
  { 'end': datetime.datetime(2026, 1, 8, 20, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 20, 0, tzinfo=tzutc()),
    'value': 100.31},
  { 'end': datetime.datetime(2026, 1, 8, 20, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 20, 15, tzinfo=tzutc()),
    'value': 94.36},
  { 'end': datetime.datetime(2026, 1, 8, 20, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 20, 30, tzinfo=tzutc()),
    'value': 88.01},
  { 'end': datetime.datetime(2026, 1, 8, 21, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 20, 45, tzinfo=tzutc()),
    'value': 82.51},
  { 'end': datetime.datetime(2026, 1, 8, 21, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 21, 0, tzinfo=tzutc()),
    'value': 99.81},
  { 'end': datetime.datetime(2026, 1, 8, 21, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 21, 15, tzinfo=tzutc()),
    'value': 87.89},
  { 'end': datetime.datetime(2026, 1, 8, 21, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 21, 30, tzinfo=tzutc()),
    'value': 86.15},
  { 'end': datetime.datetime(2026, 1, 8, 22, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 21, 45, tzinfo=tzutc()),
    'value': 79.62},
  { 'end': datetime.datetime(2026, 1, 8, 22, 15, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 22, 0, tzinfo=tzutc()),
    'value': 91.51},
  { 'end': datetime.datetime(2026, 1, 8, 22, 30, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 22, 15, tzinfo=tzutc()),
    'value': 82.4},
  { 'end': datetime.datetime(2026, 1, 8, 22, 45, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 22, 30, tzinfo=tzutc()),
    'value': 70.6},
  { 'end': datetime.datetime(2026, 1, 8, 23, 0, tzinfo=tzutc()),
    'start': datetime.datetime(2026, 1, 8, 22, 45, tzinfo=tzutc()),
    'value': 68.55}]
2026-01-07 14:55:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc3
2026-01-07 14:55:00 info: Day Ahead Optimalisering gestart op: 07-01-2026 14:55:00
2026-01-07 14:55:00 info: Day Ahead Optimalisatie gestart: 07-01-2026 14:55:00 taak: get_day_ahead_prices
2026-01-07 14:55:00 info: Day ahead data already present
Daar staat echter niks in gerelateerd aan die internal server error
(Training om 8.30 klopt; die had ik ingeschaald na de update. Eventuele logging van die internal server error zou na 14:55 nog gekomen moeten zijn want ik had 'm getriggerd door data van 2025-09-01 op te vragen).

Helpt het als ik je toegang geef tot mijn HA instantie? Soms is het wel prettig als je een keer over andermans schutting kunt kijken. Ik zou 'm ook kunnen klonen voor je en toegang geven tot de kloon; dan kun je in die sandbox prutsen en stukmaken wat je wil alleen dan heb je geen sensoren/actuatoren.
Nee dat is allemaal teveel.
Waar het mij om gaat is het volgende;
Jij genereert die Internal Server Error door in het Solar menu een datum voor (uit mijn hoofd) 2025-09-14) te kiezen.
Daarna ga jij in HA naar Instellingen/ Addons en kiest de DAO testing addon.
Daar heb je een tab met logging.
Onderaan die logging heb je dan de tracking van de gegenereerde fout.
Die wil ik graag zien.

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 woensdag 7 januari 2026 @ 12:35:
Ik krijg deze foutmelding wanneer ik naar de Solar tab ga (rc3)

[...]
Dank voor het melden; ik ga ernaar kijken.
Had je al wel de/het "model(len) getraind?

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


  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 21:14
KC27 schreef op woensdag 7 januari 2026 @ 17:16:
Onderaan die logging heb je dan de tracking van de gegenereerde fout.
Die wil ik graag zien.
Zo te zien is dat dezelfde log. Daar verschijnt eigenlijk helemaal niets...
Ik heb er nog een keer deze bij gekregen tijdens het proberen, maar ik ben er niet helemaal zeker van of dat het directe gevolg is van een internal server error triggeren:
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
debug:root:Connection status Pool size: 5  Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0 at line 215 in /root/dao/prog/da_base.py
[2026-01-07 18:17:30,226] fout in app: Exception on / [POST]
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/root/dao/webserver/app/routes.py", line 301, in menu
    return solar()
  File "/root/dao/webserver/app/routes.py", line 635, in solar
    report_df = report.calc_solar_data(
        solar_items[active_subject], active_date, active_view
    )
  File "/root/dao/prog/da_report.py", line 3014, in calc_solar_data
    device, row.tijd.timestamp(), row.prognose_straling, 1
            ~~~~~~~~~~~~~~~~~~^^
  File "pandas/_libs/tslibs/nattype.pyx", line 54, in pandas._libs.tslibs.nattype._make_error_func.f
ValueError: NaTType does not support timestamp
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>openresty</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->

[ Voor 12% gewijzigd door DaBit op 07-01-2026 18:21 ]

DaBit schreef op woensdag 7 januari 2026 @ 18:20:
[...]


Zo te zien is dat dezelfde log. Daar verschijnt eigenlijk helemaal niets...
Ik heb er nog een keer deze bij gekregen tijdens het proberen, maar ik ben er niet helemaal zeker van of dat het directe gevolg is van een internal server error triggeren:


[...]
Dat is de goede logging, dank.
Ik denk dat die komt door het triggeren.
Exact dezelfde fout en op dezelfde plaats als bij @balk.
ik ga ermee aan de slag.

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


  • Mirabis
  • Registratie: Juli 2013
  • Niet online
@KC27 (of iemand anders) een idee waarom DAO af en toe zelf een waarde kiest en afwijkt van de stages die opgegeven zijn? Het kiest nu weer voor op laag/lager vermogen terugleveren terwijl de efficientie op de hogere opties beter is. Logs: https://pastebin.com/rQWZHvEJ

Het lijkt ±1382W uit te willen smeren over 1 uur i.p.v. de efficientere 2x00 te doen met een stop timer na x minuten (of automatisch leeg).

code:
1
2
3
4
5
6
7
8
2026-01-08 16:00:00 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-08 16:00:00 info: Rekentijd: 0.03  sec
2026-01-08 16:00:00 info: Het programma heeft een optimale oplossing gevonden.
2026-01-08 16:00:00 info: In- en uitgaande energie per uur batterij Marstek
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 16:00  -1.18  85.56  -1.38   0.00  -1.38 100.00  -1.38  85.56  11.00
....

Wat overeen komt met de max stage en efficiency opgegeven.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            "charge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.9482
                }
            ],
            "discharge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.8556
                }
            ],


Maar is niet wat het doorzet naar de batterij. Dus i.p.v. de max waar we efficienctie van weten berekent het nu zelf iets en levert het minder. Ik had juist het aantal charge stages verminderd (op aanraden van iemand anders hier) maar zo werkt het ook niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2026-01-08 16:00:00 info: 
Calculation profit after optimize in €
Cost before optimize              1.58
Cost consumption      2.42
Cycle cost            0.07
Penalty cost          0.00
Battery storage      -0.68
Boiler storage        0.00
Profit production    -0.45
Total                 1.37
Cost after optimize               1.37
Profit:                           0.21
2026-01-08 16:00:00 info: Doorzetten van alle settings naar HA
2026-01-08 16:00:00 info: Grid set point: -1039.0 W
2026-01-08 16:00:00 info: Cycle cost Marstek: 0.07 euro
2026-01-08 16:00:00 info: Netto vermogen naar(+)/uit(-) omvormer Marstek: -1182 W
2026-01-08 16:00:00 info: Balanceren: False
2026-01-08 16:00:00 info: Vermogen uit batterij: 1382W
2026-01-08 16:00:00 info: Vermogen dat binnenkomt van pv: 0W
2026-01-08 16:00:00 info: Vermogen dat binnenkomt van ac: -1382W
2026-01-08 16:00:00 info: Waarde SoC na eerste uur: 11.0%
Volledige config. Ik heb zowel met veel als weinig stages geprobeerd.
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
{
    "baseload": [],
    "baseload calc periode": 14,
    "battery": [
        {
            "entity actual level": "sensor.lilygo_rs485_marstek_battery_state_of_charge",
            "entity balance switch": "input_boolean.dao_balance_grid",
            "entity calculated soc": "input_number.dao_marstek_calculated_soc",
            "entity from ac": "input_number.dao_marstek_from_ac",
            "entity from battery": "input_number.dao_from_battery",
            "entity from pv": "input_number.dao_marstek_from_pv",
            "entity max soc end opt": "input_number.dao_max_soc_einde_opt",
            "entity min soc end opt": "input_number.dao_min_soc_einde_opt",
            "entity set operating mode": "input_select.dao_set_operating_mode",
            "entity set power feedin": "input_number.dao_set_power_feedin",
            "entity stop inverter": "input_datetime.dao_stop_marstek",
            "lower limit": 11,
            "optimal lower level": 11,
            "minimum power": 500,
            "name": "Marstek",
            "description": "Marstek Venus-E 5.12kWh",
            "reduced hours": {},
            "solar": [],
            "upper limit": 100,
            "bat_to_dc efficiency": 1,
            "capacity": 5.12,
            "cycle cost": 0.0123,
            "cycle cost calculated": 0.02561,
            "dc_to_bat efficiency": 1,
            "charge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.9482
                }
            ],
            "discharge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.8556
                }
            ],
            "#charge stages": [
                {
                    "efficiency": 1,
                    "power": 0
                },
                {
                    "efficiency": 0.7095,
                    "power": 300
                },
                {
                    "efficiency": 0.7789,
                    "power": 400
                },
                {
                    "efficiency": 0.8273,
                    "power": 500
                },
                {
                    "efficiency": 0.8576,
                    "power": 600
                },
                {
                    "efficiency": 0.9041,
                    "power": 900
                },
                {
                    "efficiency": 0.9197,
                    "power": 1100
                },
                {
                    "efficiency": 0.9298,
                    "power": 1300
                },
                {
                    "efficiency": 0.9365,
                    "power": 1500
                },
                {
                    "efficiency": 0.9416,
                    "power": 1700
                },
                {
                    "efficiency": 0.944,
                    "power": 1900
                },
                {
                    "efficiency": 0.946,
                    "power": 2100
                },
                {
                    "efficiency": 0.9471,
                    "power": 2200
                },
                {
                    "efficiency": 0.9485,
                    "power": 2300
                },
                {
                    "efficiency": 0.949,
                    "power": 2400
                },
                {
                    "efficiency": 0.9482,
                    "power": 2500
                }
            ],
            "#discharge stages": [
                {
                    "efficiency": 1,
                    "power": 0
                },
                {
                    "efficiency": 0.7146,
                    "power": 300
                },
                {
                    "efficiency": 0.7581,
                    "power": 400
                },
                {
                    "efficiency": 0.7855,
                    "power": 500
                },
                {
                    "efficiency": 0.8048,
                    "power": 600
                },
                {
                    "efficiency": 0.8276,
                    "power": 800
                },
                {
                    "efficiency": 0.8414,
                    "power": 1000
                },
                {
                    "efficiency": 0.8482,
                    "power": 1200
                },
                {
                    "efficiency": 0.8522,
                    "power": 1400
                },
                {
                    "efficiency": 0.8552,
                    "power": 1600
                },
                {
                    "efficiency": 0.8556,
                    "power": 1800
                },
                {
                    "efficiency": 0.8547,
                    "power": 2000
                },
                {
                    "efficiency": 0.8543,
                    "power": 2200
                },
                {
                    "efficiency": 0.8531,
                    "power": 2300
                },
                {
                    "efficiency": 0.8522,
                    "power": 2400
                },
                {
                    "efficiency": 0.8514,
                    "power": 2500
                }
            ]
        }
    ],
    "boiler": {
        "boiler present": "False"
    },
    "dashboard": {
        "port": 5000
    },
    "database da": {
        "db_path": "../data",
        "engine": "sqlite"
    },
    "database ha": {
        "database": "home-assistant_v2.db",
        "db_path": "/homeassistant",
        "engine": "sqlite"
    },
    "electric vehicle": [],
    "electric vehicle skip": [
        {
            "capacity": 103,
            "charge scheduler": {
                "entity ready datetime": "input_datetime.dao_datum_klaar_met_laden",
                "entity set level same": "sensor.enode_battery_percentage_normalized",
                "entity set level": "input_number.dao_ev_entity_set_level",
                "level margin": 2
            },
            "charge stages": [
                {
                    "ampere": 0,
                    "efficiency": 1
                },
                {
                    "ampere": 16,
                    "efficiency": 0.95
                }
            ],
            "charge switch": "input_boolean.dao_ev_charge_switch",
            "charge switch REAL": "switch.voordeur_charger_enabled",
            "charge three phase": "True",
            "entity actual level": "sensor.enode_battery_percentage_normalized",
            "entity max amperage": "input_number.dao_ev_set_max_charge_amps",
            "entity max amperage REAL": "sensor.voordeur_dynamic_charger_limit",
            "entity plugged in": "input_boolean.dao_spoof_plugged_in",
            "entity plugged in REAL": "binary_sensor.xpeng_g9_plugged_in",
            "entity position": "input_text.dao_spoof_car_location",
            "entity position REAL": "device_tracker.xpeng_g9_location_tracker",
            "entity set charging ampere": "sensor.xpeng_g9_max_current",
            "name": "XPENG G9"
        }
    ],
    "graphical backend": "",
    "graphics": {
        "average consumption": "True",
        "battery balance": "True",
        "prices consumption": "True",
        "prices production": "True",
        "prices spot": "True",
        "show": "true",
        "style": "Solarize_Light2"
    },
    "grid": {
        "max_power": 17
    },
    "heating": {
        "heater present": "False"
    },
    "history": {
        "save days": 90
    },
    "homeassistant": {
        "host": "172.31.20.108",
        "ip port": 8123,
        "protocol api": "http",
        "token": "!secret homeassistant-token"
    },
    "interval": "1hour",
    "logging level": "info",
    "machines": [],
    "max gap": 0.005,
    "meteoserver-attempts": "2",
    "meteoserver-key": "!secret meteoserver-key",
    "meteoserver-model": "harmonie",
    "notifications": {
        "berekening": "True",
        "last activity entity": "input_datetime.dao_laatste_activiteit",
        "notification entity": "input_text.notification_dao",
        "opstarten": "False"
    },
    "prices": {
        "cost supplier consumption": {
            "2024-08-01": 0.020496,
            "2026-01-01": 0.01652893
        },
        "cost supplier production": {
            "2024-08-01": 0.020496,
            "2026-01-01": 0.01818182
        },
        "energy taxes consumption": {
            "2024-01-01": 0.1088,
            "2025-01-01": 0.10154,
            "2026-01-01": 0.09161
        },
        "energy taxes production": {
            "2024-01-01": 0.1088,
            "2025-01-01": 0.10154,
            "2026-01-01": 0.09161,
            "2027-01-01": 0
        },
        "vat production": {
            "2023-01-01": 21,
            "2027-01-01": 0
        },
        "entsoe-api-key": "!secret entsoe-api-key",
        "last invoice": "2026-01-01",
        "source day ahead": "nordpool",
        "tax refund": "True",
        "vat consumption": {
            "2023-01-01": 21
        }
    },
    "report": {
        "entities battery consumption": [
            "sensor.energy_socket_marstek_energy_import"
        ],
        "entities battery production": [
            "sensor.energy_socket_marstek_energy_export"
        ],
        "entities boiler consumption": [],
        "entities ev consumption": [
            "sensor.voordeur_lifetime_energy"
        ],
        "entities grid consumption": [
            "sensor.p1_meter_energy_import"
        ],
        "entities grid production": [
            "sensor.p1_meter_energy_export"
        ],
        "entities machine consumption": [
            "sensor.bosch_dryer_energy_2",
            "sensor.wasmachine_energy_socket_energy_import",
            "sensor.bosch_dishwasher_energy"
        ],
        "entities solar production ac": [
            "sensor.kwh_meter_3_phase_energy_export_2"
        ],
        "entities solar production dc": [
            "sensor.growatt_total_pv1_solar_energy",
            "sensor.growatt_total_pv2_solar_energy"
        ],
        "entities solar production dc heb pas historie sinds 21 nov": [
            "sensor.growatt_total_solar_energy"
        ],
        "entities wp consumption": [],
        "entity co2-intensity": [
            "sensor.co2_signal_co2_intensity"
        ]
    },
    "scheduler": {
        "1150": "get_meteo_data",
        "1258": "get_day_ahead_prices",
        "1313": "get_day_ahead_prices",
        "1328": "get_day_ahead_prices",
        "1343": "get_day_ahead_prices",
        "1358": "get_day_ahead_prices",
        "1455": "get_day_ahead_prices",
        "1535": "get_day_ahead_prices",
        "1750": "get_meteo_data",
        "2340": "get_meteo_data",
    "2347": "calc_baseloads",
    "2350": "train_ml_predictions",
        "2357": "clean_data",
        "0550": "get_meteo_data",
        "active": "True",
        "xx00": "calc_optimum"
    },
    "solar": [
        {
            "entity pv switch": "input_boolean.dao_panelen_aan_uit",
            "max power": 7,
      "ml_prediction": "true",
      "entities sensors": [
            "sensor.growatt_total_pv1_solar_energy",
            "sensor.growatt_total_pv2_solar_energy"
        ],
            "name": "Growatt",
            "description": "9240Wp PhonoSolar Growatt MOD7000-TL XH(BP)",
            "strings": [
                {
                    "capacity": 4.2,
                    "name": "North-West",
                    "orientation": 135,
                    "tilt": 40,
                    "yield": 0.00971,
                    "yield-dao": 0.008925
                },
                {
                    "capacity": 5.04,
                    "name": "South-East",
                    "orientation": -45,
                    "tilt": 40,
                    "yield": 0.011886,
                    "yield-dao": 0.01071
                }
            ]
        }
    ],
    "strategy": "minimize cost",
    "tibber": {
        "api_token": "!secret tibber-api-token"
    },
    "use_calc_baseload": "True"
}

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh

Mirabis schreef op donderdag 8 januari 2026 @ 16:08:
@KC27 (of iemand anders) een idee waarom DAO af en toe zelf een waarde kiest en afwijkt van de stages die opgegeven zijn? Het kiest nu weer voor op laag/lager vermogen terugleveren terwijl de efficientie op de hogere opties beter is. Logs: https://pastebin.com/rQWZHvEJ

code:
1
2
3
4
5
6
7
8
2026-01-08 16:00:00 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-08 16:00:00 info: Rekentijd: 0.03  sec
2026-01-08 16:00:00 info: Het programma heeft een optimale oplossing gevonden.
2026-01-08 16:00:00 info: In- en uitgaande energie per uur batterij Marstek
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 16:00  -1.18  85.56  -1.38   0.00  -1.38 100.00  -1.38  85.56  11.00
....

Wat overeen komt met de max stage en efficiency opgegeven.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            "charge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.9482
                }
            ],
            "discharge stages": [
                {
                    "power": 0,
                    "efficiency": 1
                },
                {
                    "power": 2500,
                    "efficiency": 0.8556
                }
            ],


Maar is niet wat het doorzet naar de batterij. Dus i.p.v. de max waar we efficienctie van weten berekent het nu zelf iets en levert het minder. Ik had juist het aantal charge stages verminderd (op aanraden van iemand anders hier) maar zo werkt het ook niet.

[...]


Volledige config. Ik heb zowel met veel als weinig stages geprobeerd.

[...]
Ik vind het verschil tussen twee en veertien stages wel heel groot.
IK zou er ca 8 kiezen waarbij je selecteert op het efficiency verschil: steeds ongeveer 0,01 verschil met de voorgaande.
Ik kan het nu net niet goed beoordelen. Heb je voor mij de volledige logging van 16:00uur?

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


  • Mirabis
  • Registratie: Juli 2013
  • Niet online
KC27 schreef op donderdag 8 januari 2026 @ 16:26:
[...]

Ik vind het verschil tussen twee en veertien stages wel heel groot.
IK zou er ca 8 kiezen waarbij je selecteert op het efficiency verschil: steeds ongeveer 0,01 verschil met de voorgaande.
Ik kan het nu net niet goed beoordelen. Heb je voor mij de volledige logging van 16:00uur?
Logs: https://pastebin.com/rQWZHvEJ

Het lijkt ±1382W uit te willen smeren over 1 uur i.p.v. de efficientere 2x00 te doen met een stop timer na x minuten (of automatisch leeg). Buiten NOM is er geen enkel scenario dat ik van de meest efficiente charge/discharge stage wil afwijken. Dus die schaalbaarheid is in m.i. ongewenst. Kan 8 stages wel proberen de komende dagen.

De logs bij 14 stages (in mijn ogen geen verschil): https://pastebin.com/v3cGqr2e

[ Voor 19% gewijzigd door Mirabis op 08-01-2026 16:39 ]

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh

Mirabis schreef op donderdag 8 januari 2026 @ 16:37:
[...]


Logs: https://pastebin.com/rQWZHvEJ

Het lijkt ±1382W uit te willen smeren over 1 uur i.p.v. de efficientere 2x00 te doen met een stop timer na x minuten (of automatisch leeg). Buiten NOM is er geen enkel scenario dat ik van de meest efficiente charge/discharge stage wil afwijken. Dus die schaalbaarheid is in m.i. ongewenst. Kan 8 stages wel proberen de komende dagen.

De logs bij 14 stages (in mijn ogen geen verschil): https://pastebin.com/v3cGqr2e
Dit is wel een heel interessante casus, waar nog niet in is voorzien. We hebben het hier natuurlijk over peanuts maar het gaat om het principe.
Het ontlaad optimum (qua efficiëntie) ligt bij 1800W (volgens het uitgecommentarieerde deel van jouw settings).
Er zit nog bruto 1,38 kWh in de batterij en hoe haal je die op de meest efficiënte manier uit de batterij?
Tot nu toe gaat DAO interpoleren tussen de twee vermogens zodat na het uur de batterij leeg is.
Maar eigenlijk wil je dat hij het efficiëntste vermogen kiest en eerder stopt.
Ik ga het onderzoeken en kom er op terug.

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


  • simnet
  • Registratie: Januari 2020
  • Laatst online: 13-01 08:30
Komt die 1300 watt niet ongeveer overeen met je geschatte zonnepanelen opbrengst (1.3kWh)?
Want ik heb liever een lagere efficiëntie, door het laden in de tijd uit te smeren, waarbij de PV opwek optimaal wordt benut; tov in een korte tijd de accu volblazen met het risico dat ik van het net moet importeren. Hetzelfde geldt voor ontladen tegen een ongunstig tarief.

[ Voor 11% gewijzigd door simnet op 08-01-2026 23:41 ]


  • Mirabis
  • Registratie: Juli 2013
  • Niet online
simnet schreef op donderdag 8 januari 2026 @ 23:37:
Komt die 1300 watt niet ongeveer overeen met je geschatte zonnepanelen opbrengst (1.3kWh)?
Want ik heb liever een lagere efficiëntie, door het laden in de tijd uit te smeren, waarbij de PV opwek optimaal wordt benut; tov in een korte tijd de accu volblazen met het risico dat ik van het net moet importeren. Hetzelfde geldt voor ontladen tegen een ongunstig tarief.
Het ging hier om ontladen van kWhs die al in de accu zaten :)

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh

Er is een nieuwe testversie gepubliceerd: 2026.01.0.rc4
Hierin zijn de fouten die @DaBit en @balk vonden geadresseerd en hopelijk ook gerepareerd.

Dit staat in de changelog:
Fixed solar report errors with missing radiation or measured solar data (reported by @Dabit and @balk)

De fout gemeld door @Mirabis is nog in onderzoek.

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: 22:01
KC27 schreef op vrijdag 9 januari 2026 @ 13:38:
Er is een nieuwe testversie gepubliceerd: 2026.01.0.rc4
Hierin zijn de fouten die @DaBit en @balk vonden geadresseerd en hopelijk ook gerepareerd.

Dit staat in de changelog:
Fixed solar report errors with missing radiation or measured solar data (reported by @Dabit and @balk)

De fout gemeld door @Mirabis is nog in onderzoek.
Dankjewel! Helaas gaat het met deze ook fout. Ik train het model. Als ik daarna op Solar klik, krijg ik nu (wel) een grafiek. Maar 1 dag terug geeft deze error. Kan het komen door gebrek aan zonnestroom de afgelopen dagen?
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
[2026-01-09 13:47:54,207] fout in app: Exception on / [POST]
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 407, in pandas_feature_info
    new_feature_types.append(_pandas_dtype_mapper[dtype.name])
                             ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'object'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/root/dao/webserver/app/routes.py", line 301, in menu
    return solar()
  File "/root/dao/webserver/app/routes.py", line 635, in solar
    report_df = report.calc_solar_data(
        solar_items[active_subject], active_date, active_view
    )
  File "/root/dao/prog/da_report.py", line 3033, in calc_solar_data
    solar_prog = solar_predictor.predict_solar_device(device, start, end)
  File "/root/dao/prog/solar_predictor.py", line 1037, in predict_solar_device
    prediction = self.predict(weather_data)
  File "/root/dao/prog/solar_predictor.py", line 700, in predict
    prediction = self.model.predict(featured_df)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 774, 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 774, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 2852, in inplace_predict
    data, fns, _ = _transform_pandas_df(data, enable_categorical)
                   ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 662, in _transform_pandas_df
    feature_names, feature_types = pandas_feature_info(             ~~~~~~~~~~~~~~~~~~~^
        data, meta, feature_names, feature_types, enable_categorical
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 409, in pandas_feature_info
    _invalid_dataframe_dtype(data)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 372, in _invalid_dataframe_dtype
    raise ValueError(msg)
ValueError: DataFrame.dtypes for data must be int, float, bool or category. When categorical type is supplied, the experimental DMatrix parameter`enable_categorical` must be set to `True`.  Invalid columns:temperature: object, irradiance: object
balk schreef op vrijdag 9 januari 2026 @ 13:49:
[...]

Dankjewel! Helaas gaat het met deze ook fout. Ik train het model. Als ik daarna op Solar klik, krijg ik nu (wel) een grafiek. Maar 1 dag terug geeft deze error. Kan het komen door gebrek aan zonnestroom de afgelopen dagen?

[...]
Ik zie dat hij meteogegevens mist.
En omdat jij het over "1 dag terug" hebt denk ik aan gisteren.
Blijkbaar ontbreken er prognose-gegevens van Meteoserver van gisteren.
Ben je met een blanco database begonnen?

Het werkt het beste als je start (met een kopie) van je originele database en dan de add-on herstart.
Dan worden de prognose data verplaatst van de "values-tabel"naar de "prognose-tabel, waar ze horen (ontwerpfout).
Misschien gaat dat bij jou (met postgresql toch?) fout.
Dat kun je terugvinden in de logging bij het de eerste keer opstarten van de rc met een database van voor 2025.12.2.

Die prognoses van gisteren kunnen niet meer worden opgehaald. De voorspelling van DAO en van de ML-voorspeller moeten die prognoses hebben om hun berekening te kunnen reproduceren.
Ik kan proberen deze fout te corrigeren met gemeten waarden, maar die komen van het knmi met een vertraging van minstens 48 uur.

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: 22:01
KC27 schreef op vrijdag 9 januari 2026 @ 16:18:
[...]

Ik zie dat hij meteogegevens mist.
En omdat jij het over "1 dag terug" hebt denk ik aan gisteren.
Blijkbaar ontbreken er prognose-gegevens van Meteoserver van gisteren.
Ben je met een blanco database begonnen?

Het werkt het beste als je start (met een kopie) van je originele database en dan de add-on herstart.
Dan worden de prognose data verplaatst van de "values-tabel"naar de "prognose-tabel, waar ze horen (ontwerpfout).
Misschien gaat dat bij jou (met postgresql toch?) fout.
Dat kun je terugvinden in de logging bij het de eerste keer opstarten van de rc met een database van voor 2025.12.2.

Die prognoses van gisteren kunnen niet meer worden opgehaald. De voorspelling van DAO en van de ML-voorspeller moeten die prognoses hebben om hun berekening te kunnen reproduceren.
Ik kan proberen deze fout te corrigeren met gemeten waarden, maar die komen van het knmi met een vertraging van minstens 48 uur.
Wellicht ligt daar het probleem inderdaad. Ik heb wel de meteo gegevens opgehaald, of in ieder geval op de knop gedrukt. Maar ik gebruik de database die ik bij rc1 heb gekopieerd maar die is niet helemaal bij intussen. Ik zal morgen eens opnieuw beginnen, met een versie kopie van de productie versie.

  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 21:14
Helaas, het 'Internal server error' probleem is met rc4 niet opgelost. Ik heb 'm geinstalleerd, de ML-modellen overnieuw laten trainen via de scheduler, de addon herstart, maar zo gauw ik probeer van 2025-09-01 solar op te vragen is het 'internal server error'.

In de log bij Settings->Addons->刀 Day Ahead Optimizer (TESTING)->Log verschijnt niets. Ik bekeek solar->Growatt->2025-09-01 om 9u26 en dit is het relevante deel van de log:
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
..
..
2026-01-10 09:01:14 info: Starting solar prediction model for aanbouw training...
2026-01-10 09:01:14 info: Loading and processing data...
2026-01-10 09:01:15 info: Merging weather and solar data...
2026-01-10 09:01:15 info: Merged dataset: 15152 records
2026-01-10 09:01:15 info: Date range: 2024-04-15 05:00:00+00:00 to 2026-01-06 12:00:00+00:00
2026-01-10 09:01:15 info: Detecting outliers...
2026-01-10 09:01:15 info: Outliers removed: 276 (1.8%)
2026-01-10 09:01:15 info: Clean dataset: 14876 records
2026-01-10 09:01:15 info: Training samples: 11900
2026-01-10 09:01:15 info: Testing samples: 2976
2026-01-10 09:01:15 info: Tune hyperparameters: True
2026-01-10 09:01:15 info: Tuning hyperparameters...
2026-01-10 09:01:15 info: Parameter grid: {'n_estimators': [100, 200, 300], 'max_depth': [3, 4, 6], 'learning_rate': [0.05, 0.1, 0.15], 'subsample': [0.8, 0.9]}
2026-01-10 09:01:22 info: Best parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-10 09:01:22 info: Training final model...
2026-01-10 09:01:22 info: Parameters: {'learning_rate': 0.05, 'max_depth': 4, 'n_estimators': 100, 'subsample': 0.9}
2026-01-10 09:01:23 info: Model training van aanbouw complete
2026-01-10 09:01:23 info: Model saved to: ../data/prediction/models/aanbouw.pkl
2026-01-10 09:01:23 info: Training MAE: 0.0191 kWh
2026-01-10 09:01:23 info: Testing MAE: 0.0130 kWh
2026-01-10 09:01:23 info: Training R²: 0.9254
2026-01-10 09:01:23 info: Testing R²: 0.6759
2026-01-10 09:01:23 info: Sorted features:
2026-01-10 09:01:23 info:   1. irradiance: 0.553
2026-01-10 09:01:23 info:   2. hour: 0.388
2026-01-10 09:01:23 info:   3. week_nr: 0.020
2026-01-10 09:01:23 info:   4. temperature: 0.015
2026-01-10 09:01:23 info:   5. month: 0.008
2026-01-10 09:01:23 info:   6. day_of_week: 0.008
2026-01-10 09:01:23 info:   7. quarter: 0.007
2026-01-10 09:01:23 info:   8. season: 0.002
2026-01-10 09:30:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc4
2026-01-10 09:30:00 info: Day Ahead Optimalisering gestart op: 10-01-2026 09:30:00
2026-01-10 09:30:00 info: Day Ahead Optimalisatie gestart: 10-01-2026 09:30:00 taak: calc_baseloads
2026-01-10 09:30:18 info: baseload voor weekdag 0 :
2026-01-10 09:30:18 info: 2.236 0.967 0.639 0.843 0.719 0.515 0.425 0.621 0.727 0.792 0.732 0.603 0.702 0.692 0.546 0.539 0.619 0.995 1.143 0.586 0.545 0.586 0.507 0.412 
2026-01-10 09:30:33 info: baseload voor weekdag 1 :
2026-01-10 09:30:33 info: 2.32 0.585 0.874 0.775 0.73 0.531 0.541 0.93 1.38 1.238 0.954 1.488 1.42 1.452 1.023 0.992 0.966 0.914 0.776 0.792 0.552 0.6 0.513 0.61 
2026-01-10 09:30:47 info: baseload voor weekdag 2 :
2026-01-10 09:30:47 info: 2.082 0.515 0.536 0.726 0.632 0.494 0.459 0.605 0.818 0.825 0.637 0.737 0.919 0.944 0.71 0.597 0.597 0.872 1.098 0.878 0.585 0.685 0.672 0.533 
2026-01-10 09:31:01 info: baseload voor weekdag 3 :
2026-01-10 09:31:01 info: 2.167 0.745 0.546 0.698 0.773 0.495 0.599 0.753 0.844 0.585 0.791 0.635 0.558 0.646 0.66 0.608 1.18 0.654 0.72 0.738 0.562 0.543 0.527 0.616 
2026-01-10 09:31:16 info: baseload voor weekdag 4 :
2026-01-10 09:31:16 info: 2.294 0.868 0.823 0.972 0.848 0.501 0.449 0.909 1.536 1.33 1.302 1.452 1.569 1.174 0.949 1.036 1.018 1.098 1.336 0.54 0.552 0.469 0.495 0.492 
2026-01-10 09:31:30 info: baseload voor weekdag 5 :
2026-01-10 09:31:30 info: 2.236 0.649 0.443 0.54 0.511 0.565 0.68 0.771 0.88 1.275 1.13 1.197 1.158 1.168 1.002 0.952 0.771 1.037 1.454 0.735 0.611 0.706 0.737 0.719 
2026-01-10 09:31:45 info: baseload voor weekdag 6 :
2026-01-10 09:31:45 info: 2.336 0.49 0.498 0.567 0.551 0.391 0.531 0.736 1.052 0.92 1.074 0.992 1.293 1.476 1.324 0.976 1.04 1.349 1.267 0.642 0.607 0.654 0.487 0.655
De ML training die ik om 9.00 gescheduled had en de baseloadberekening spugen naar log, opvragen solar niet.

Pas na een forse tijd (10 minuten?) verschijnt er dit nog

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>openresty</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
DaBit schreef op zaterdag 10 januari 2026 @ 09:38:
Helaas, het 'Internal server error' probleem is met rc4 niet opgelost. Ik heb 'm geinstalleerd, de ML-modellen overnieuw laten trainen via de scheduler, de addon herstart, maar zo gauw ik probeer van 2025-09-01 solar op te vragen is het 'internal server error'.

In de log bij Settings->Addons->刀 Day Ahead Optimizer (TESTING)->Log verschijnt niets. Ik bekeek solar->Growatt->2025-09-01 om 9u26 en dit is het relevante deel van de log:


[...]


De ML training die ik om 9.00 gescheduled had en de baseloadberekening spugen naar log, opvragen solar niet.

Pas na een forse tijd (10 minuten?) verschijnt er dit nog

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>openresty</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
Nu tast ik in het duister....
Misschien is het toch goed dat je mij toegang heeft naar een kloon van je setup.
Stuur maar een dm.

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


  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 21:14
Ga ik regelen voor je.

  • balk
  • Registratie: Januari 2000
  • Laatst online: 22:01
Bij mij hetzelfde. Ik heb een nieuwe kopie gemaakt van mijn sqlite db, meteo gegevens en pricing gedaan etc. ml_solver loopt goed. Maar wanneer ik in menu Solar terug in de tijd ga, dan crasht ie. Interessante is dat dit dezelfde datum is als waarbij ik eerder een internal server error kreeg (zie hier). Wanneer ik in de sqlite db gluur dan zie ik op die datum ook missende data in prognoses voor de helft van de dag.
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
[2026-01-10 10:51:15,574] fout in app: Exception on / [POST]
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 407, in pandas_feature_info
    new_feature_types.append(_pandas_dtype_mapper[dtype.name])
                             ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'object'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/root/dao/webserver/app/routes.py", line 301, in menu
    return solar()
  File "/root/dao/webserver/app/routes.py", line 635, in solar
    report_df = report.calc_solar_data(
        solar_items[active_subject], active_date, active_view
    )
  File "/root/dao/prog/da_report.py", line 3033, in calc_solar_data
    solar_prog = solar_predictor.predict_solar_device(device, start, end)
  File "/root/dao/prog/solar_predictor.py", line 1037, in predict_solar_device
    prediction = self.predict(weather_data)
  File "/root/dao/prog/solar_predictor.py", line 700, in predict
    prediction = self.model.predict(featured_df)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 774, 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 774, in inner_f
    return func(**kwargs)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/core.py", line 2852, in inplace_predict
    data, fns, _ = _transform_pandas_df(data, enable_categorical)
                   ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 662, in _transform_pandas_df
    feature_names, feature_types = pandas_feature_info(
                                   ~~~~~~~~~~~~~~~~~~~^
        data, meta, feature_names, feature_types, enable_categorical
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 409, in pandas_feature_info
    _invalid_dataframe_dtype(data)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/xgboost/data.py", line 372, in _invalid_dataframe_dtype
    raise ValueError(msg)
ValueError: DataFrame.dtypes for data must be int, float, bool or category. When categorical type is supplied, the experimental DMatrix parameter`enable_categorical` must be set to `True`.  Invalid columns:temperature: object, irradiance: object
Wil je ook mijn database en config?

  • rescla
  • Registratie: November 2012
  • Laatst online: 23:51
Vraagje, hoe kan ik een machine NIET laten inplannen? De vaatwasser hoeft bij ons niet altijd elke dag te draaine. Ik los het nu op met een extra helper boolean, maar het is mooier als hij helemaal niet ingepland wordt.

Wat ik geprobeerd heb is om de start en eind window op 0:00 te zetten, maar dat heeft niet het gewenste effect.

Er staat wel in de logging
code:
1
2
3
2026-01-10 19:53:49 info: Apparaat: Vaatwasser
2026-01-10 19:53:49 info: Programma: Auto2
2026-01-10 19:53:49 info: Niet ingepland

Maar vervolgens zie ik hem wel gewoon in de grafiek staan. Ik gebruik 'time' voor de window overigens, dateTIme gaf dacht ik een error.

Oh wacht, als ik de entity calculated start en end entity op een eerdere dag zet wordt hij niet meer in de grafiek getoond. Dus misschien moet ik beide doen.

[ Voor 11% gewijzigd door rescla op 10-01-2026 19:58 ]


  • storeman
  • Registratie: April 2004
  • Laatst online: 15:51
@rescla ik gebruik een datum tijd veld hiervoor. Op mijn wallpanel zit een knop 'inplannen'. Dat zet het window op nu t/m eerstvolgende 7u of 17u. Daarna wordt er een rest commandant uitgevoerd om dao opnieuw te laten rekenen.

Zodra er een datum is, staat er bij de button de tijd hoe laat de vaatwasser wordt gestart.

Verder, zodra de vaatwasser gaat starten, zet ik het program-select weer op 'Uit'. Dubbele check dus.

[ Voor 13% gewijzigd door storeman op 10-01-2026 20:16 ]

"Chaos kan niet uit de hand lopen"

Vandaag is een nieuwe test-versie gepubliceerd: 2026.01.0.rc5
Dit staat in de changelog:
  • Fixed errors in solar-reports (reported by @balk and @DaBit)
  • Fixed problem with managing battery with short periods (reported by @Mirabis)
Dank aan eenieder voor het testen, meewerken en meedenken.
Korte toelichting:
In de solar-reports wordt in het vervolg de dao-voorspelling en de ml-voorspelling berekend met gemeten straling (knmi-data). Bij ontbreken daarvan (knmi meetdata zijn maar tot uiterlijk eergisteren beschikbaar) worden de prognose-data (van Meteoserver) gebruikt.
Het probleem van @Mirabis is getackled door de berekening van de inzet van de batterij(en) met sos (special order sets) verder door te voeren en (wanneer van toepassing) de resultaten daarvan te gebruiken om de batterij met een hoger optimaal vermogen (meest efficiënt) te laden of te ontladen gedurende een korte periode. De entity "stop omvormer" wordt voorzien van een datum/tijd waarop de omvormer moet worden gestopt om toch het goede volume te bereiken.

Graag opnieuw testen en ik ben benieuwd naar jullie bevindingen.

WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer


  • balk
  • Registratie: Januari 2000
  • Laatst online: 22:01
@KC27 Ik heb de sqlite db opnieuw gekopieerd, meteo en prijzen gedaan. Ik krijg deze log bij handmatig ml_trainen:
code:
1
2
3
4
5
6
7
8
9
10
11
debug:root:hass/api/config: {"allowlist_external_dirs":["/media","/config/www"],"allowlist_external_urls":[],"components":["backup.event","hassio","tod","energy_meter.sensor","switch_as_x.light","spook.number","tuya.climate","smartthings.update","homekit_controller.sensor","tuya.cover","samsungtv_smart","plant","zwave_js.switch","input_number","tado.water_heater","smartthings.switch","buienalarm.sensor","lock","utility_meter.sensor","ping.device_tracker","nodered.number","mqtt.fan","nodered.sensor","adguard.switch","wake_on_lan","scene","mqtt.number","spook.select","search","spook.binary_sensor","spook.event","buienalarm","unifi.image","sessy.update","schedule","github.sensor","input_text","sessy.select","labs","device_tracker","application_credentials","sun.sensor","binary_sensor","tuya.button","homekit_controller.select","spook","esphome.select","spotifyplus.media_player","sun.binary_sensor","command_line","http","homeassistant.scene","esphome.cover","counter","shell_command","ical.calendar","unifi.switch","co2signal","mqtt.event","solaredge_modbus.sensor","ping","sensor","mobile_app.sensor","nodered.binary_sensor","smartthings","conversation","local_calendar.calendar","buienradar","sessy.number","proxmoxve.binary_sensor","samsungtv","proxmoxve.button","smart_thermostat.climate","google_generative_ai_conversation.ai_task","sessy.switch","template.switch","command_line.sensor","sessy","cover","auth","api","homeassistant","smartthings.cover","tado.switch","auto_backup.sensor","tod.binary_sensor","analytics","esphome.switch","proxmoxve.sensor","pvoutput","tuya.select","smartthings.climate","tuya","adguard.sensor","event","threshold.binary_sensor","calendar","smartthings.button","siren","integration.sensor","local_todo.todo","nederlandse_spoorwegen.binary_sensor","tado.sensor","update","tts","sun","mqtt.sensor","esphome.event","smartthings.sensor","smartthings.fan","zwave_js.update","trace","cast.media_player","tuya.event","co2signal.sensor","cloud.stt","solaredgeoptimizers","humidifier","template.binary_sensor","person","system_log","hacs","solaredge_modbus","my","statistics.sensor","hardware","spook.sensor","adguard","generic_thermostat.climate","spotify","device_automation","zwave_js.cover","network","cloud","openweathermap","persistent_notification","image_upload","mpd.media_player","template.select","adaptive_lighting","localtuya.switch","zwave_js.event","watchman.sensor","unifi.update","todo","dsmr_reader.sensor","tuya.siren","hassio.update","assist_pipeline","tag","adaptive_lighting.switch","toyota","local_calendar","min_max.sensor","number","tibber.notify","tuya.switch","water_heater","smartthings.binary_sensor","tuya.light","local_todo","homekit_controller.climate","cloud.tts","mqtt.switch","auto_backup","zwave_js","tuya.camera","sessy.binary_sensor","file_upload","tibber.sensor","zwave_js.button","repairs","smartthings.vacuum","version.sensor","nodered.text","tuya.number","smartthings.event","zwave_js.fan","switch_as_x","afvalwijzer","system_health","sessy.time","adguard.update","webhook","config","mobile_app.device_tracker","zwave_js.light","tuya.humidifier","mobile_app.binary_sensor","statistics","spotify.media_player","esphome.sensor","ping.binary_sensor","group.notify","notify","nodered","input_button","zwave_js.select","localtuya.number","rest.sensor","group","tado","tuya.sensor","scheduler.switch","climate","watchman","intent","wake_word","derivative.sensor","samsungtv.media_player","input_datetime","min_max","zeroconf","nederlandse_spoorwegen.sensor","stt","mqtt.light","spook.button","solaredge_modbus.number","smartthings.lock","entsoe.sensor","ffmpeg","smartthings.water_heater","media_source","samsungtv.remote","esphome","localtuya","tuya.fan","sessy.button","github","tuya.alarm_control_panel","pvoutput.sensor","automation","diagnostics","scheduler","script","zwave_js.siren","nodered.time","openweathermap.sensor","zwave_js.number","sessy.sensor","nodered.select","systemmonitor","tado.climate","google_generative_ai_conversation.stt","history","select","version","auto_backup.button","hacs.update","light","smartthings.number","usb","time","mqtt.select","buienradar.weather","tuya.scene","forecast_solar","filter.sensor","hassio.sensor","utility_meter","integration","afvalwijzer.sensor","spook.time","logbook","ssdp","image","spotifyplus","logger","hacs.switch","derivative","solaredge_modbus.select","hassio.switch","backup.sensor","google_generative_ai_conversation.conversation","timer","twinkly","entsoe","nodered.button","smartthings.select","frontend","sql","tado.device_tracker","unifi.button","buienradar.sensor","esphome.button","tado.binary_sensor","zone","tuya.valve","energy.sensor","history_stats.sensor","input_select","universal.media_player","wake_on_lan.switch","unifi","mqtt.binary_sensor","threshold","bluetooth_adapters","blueprint","ai_task","zwave_js.binary_sensor","esphome.camera","workday","button","smartthings.valve","ping.sensor","dsmr_reader","template.sensor","google_generative_ai_conversation.tts","homekit_controller","nodered.switch","template","smartthings.media_player","recorder","smartthings.scene","rest_command","group.light","samsungtv_smart.media_player","bluetooth","switch","systemmonitor.sensor","esphome.light","version.binary_sensor","text","mpd","mqtt.text","alarm_control_panel","fan","wled","valve","mqtt.climate","energy_meter","esphome.number","spook.switch","mobile_app","rest","input_boolean","google_generative_ai_conversation","esphome.binary_sensor","zwave_js.humidifier","samsungtv_smart.remote","unifi.device_tracker","homekit_controller.button","zwave_js.lock","workday.binary_sensor","weather","proxmoxve","mqtt","smartthings.light","remote","tuya.vacuum","workday.calendar","localtuya.sensor","mobile_app.notify","tibber","auto_backup.binary_sensor","camera","cast","unifi.sensor","kleenex_pollenradar.sensor","buienradar.camera","zwave_js.climate","openweathermap.weather","sql.sensor","ical.sensor","systemmonitor.binary_sensor","backup","cloud.binary_sensor","media_player","unifi.light","nederlandse_spoorwegen","ical","vacuum","websocket_api","onboarding","hassio.binary_sensor","utility_meter.select","tuya.binary_sensor","time_date.sensor","forecast_solar.sensor","kleenex_pollenradar","esphome.update","lovelace","zwave_js.sensor","energy","esphome.media_player"],"config_dir":"/config","config_source":"storage","country":"NL","currency":"EUR","debug":false,"elevation":0,"external_url":null,"internal_url":null,"language":"en","latitude":52.01789586139738,"location_name":"Home","longitude":4.3583106994628915,"radius":100,"recovery_mode":false,"safe_mode":false,"state":"RUNNING","time_zone":"Europe/Amsterdam","unit_system":{"length":"km","accumulated_precipitation":"mm","area":"m²","mass":"g","pressure":"Pa","temperature":"°C","volume":"L","wind_speed":"m/s"},"version":"2025.12.5","whitelist_external_dirs":["/media","/config/www"]}
debug:root:Dialect: sqlite, database: day_ahead.db, db_path: ../data
debug:root:db_url: sqlite://///root/dao/data/day_ahead.db
debug:root:Dialect: postgresql, database: homeassistant3, server: 192.168.1.111
debug:root:db_url: postgresql+psycopg2://postgres:RMzK5tzHN2zebj@192.168.1.111:5432/homeassistant3
debug:urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.7:8123
debug:urllib3.connectionpool:http://192.168.1.7:8123 "GET /api/states/input_select.dao_strategy HTTP/1.1" 200 429
debug:urllib3.connectionpool:Starting new HTTP connection (1): 192.168.1.7:8123
debug:urllib3.connectionpool:http://192.168.1.7:8123 "POST /api/services/input_datetime/set_datetime HTTP/1.1" 200 324
debug:root:Connection status Pool size: 5  Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0 at line 215 in /root/dao/prog/da_base.py
debug:root:Connection status Pool size: 5  Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0 at line 4698 in /root/dao/webserver/../prog/day_ahead.py

Meer niet, lijkt dus niet te draaien. Ook geen andere meldingen in de HA log.
Nee draait inderdaad niet.
Ik zal het vanavond repareren en een nieuwe rc publiceren.
Gelukkig draait het nog wel als je het via de scheduler opstart, bijvoorbeeld:
code:
1
"1938": "train_ml_predictions"

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: 22:01
KC27 schreef op maandag 12 januari 2026 @ 19:35:
Nee draait inderdaad niet.
Ik zal het vanavond repareren en een nieuwe rc publiceren.
Gelukkig draait het nog wel als je het via de scheduler opstart, bijvoorbeeld:
code:
1
"1938": "train_ml_predictions"
koel! Hij gaat inderdaad verder dan voorheen :)
Is ergens terug te zien welke model een betere voorspelling geeft? Het Prognose_dao of Prognose_ml? Of is het ene model misschien beter in de zomer en de ander in de winter?
Je kunt in de logging van de training (bereikbaar via Home en dan "tabel" en dan bladeren) zien wat de R2 van de traning was.
Per dag kun je het vergelijken met de dao-voorspelling.

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

Ik heb de fout gerepareerd in de laatste testversie: 2026.01.0.rc6
Changelog:
Fixed not starting ml-training from run-menu (reported by @balk)

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: 22:01
KC27 schreef op maandag 12 januari 2026 @ 23:08:
Ik heb de fout gerepareerd in de laatste testversie: 2026.01.0.rc6
Changelog:
Fixed not starting ml-training from run-menu (reported by @balk)
Dank! Dat werkt. Ik zie nog wel wat geks. Voorheen liep de interface vast op 27 juni. Nu niet meer. Maar de prognose data ontbreekt tussen 13 mei en 27 juni. Heb jij een idee wat dat zou kunnen betekenen?
Afbeeldingslocatie: https://tweakers.net/i/lCxKNs4I7TWgc3oqrq4l0-CDryU=/x800/filters:strip_exif()/f/image/yAeng7U724G6EbZkheb53P0N.png?f=fotoalbum_largeAfbeeldingslocatie: https://tweakers.net/i/l_EDuSMaKf9oKN7c3YiyvmnXciY=/x800/filters:strip_exif()/f/image/zF12Do1krG8tuVpbl1p6mVHg.png?f=fotoalbum_large
--edit--
Verder vroeg ik mij af wat Testing R²? Ik neem aan dat Training R² tussen de gemeten data en de ml-voorspelde data is? Is Testing tussen de gemeten data en de oude methode?

[ Voor 7% gewijzigd door balk op 13-01-2026 19:19 ]


  • The Source
  • Registratie: April 2000
  • Laatst online: 22:35
Ik ben het 'report' deel aan het invullen zodat mijn base load opgehaald kan worden. Mijn beginners vragen:

- Ik heb bij machine consumption het energie verbruik in kWh van mijn airco ingevuld, is dat ok? Of is machine ergens anders voor?
- De waterpomp daar heb ik zowel de 3 fase (verwarmen) als de 1 fase (legionelle) in kWh ingevuld, is dat ook ok? Deze heb ik nog niet bij heating ingevuld kan dat? Het geeft geen fout.
- Solar wordt weer in Watt ingevuld, beetje verwarrend omdat bovenstaande in kWh staat en deze in watt, klopt dit? Want de solar AC heb ik enkel in kWh en niet in Watt.

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
  "report": {
    "entities grid consumption": [
      "sensor.p1_meter_3c39e7276316_total_power_import_t1",
      "sensor.p1_meter_3c39e7276316_total_power_import_t2"
    ],
    "entities grid production": [
      "sensor.p1_meter_3c39e7276316_total_power_export_t1",
      "sensor.p1_meter_3c39e7276316_total_power_export_t2"
    ],
    "entities solar production ac": [],

    "entities solar production dc": [
      "sensor.solaredge_i1_ac_energy",
      "sensor.deye_pv1_power",
      "sensor.deye_pv2_power"
    ],
    "entities ev consumption" : [],
    "entities wp consumption" : [
      "sensor.power_ecodan_3p_energy",
      "sensor.power_ecodan_1p_energy"
],
    "entities boiler consumption": [],
    "entities machine consumption": [
      "sensor.power_airco_kantoor_energy", 
      "sensor.power_airco_ramie_energy"
],
    "entities battery consumption": [],
    "entities battery production": []

[ Voor 44% gewijzigd door The Source op 13-01-2026 21:26 ]

balk schreef op dinsdag 13 januari 2026 @ 19:16:
[...]

Dank! Dat werkt. Ik zie nog wel wat geks. Voorheen liep de interface vast op 27 juni. Nu niet meer. Maar de prognose data ontbreekt tussen 13 mei en 27 juni. Heb jij een idee wat dat zou kunnen betekenen?
[Afbeelding][Afbeelding]
--edit--
Verder vroeg ik mij af wat Testing R²? Ik neem aan dat Training R² tussen de gemeten data en de ml-voorspelde data is? Is Testing tussen de gemeten data en de oude methode?
Dat zit ergens in jouw database. Mis je die gegevens ook in de database van je productie versie, dan moet je kijken in de "values" tabel. Bij het installeren van de versie 2026.01.0.rcx op de originele database worden de meteogevens van straling en temperatuur (wat prognose gegevens zijn van Meteoserver) verhuisd naar de prognose-tabel (waar ze thuis horen, ontwerpfoutje ;) )
Maar behalve voor deze rapportages worden ze niet meer gebruikt, dus je hebt ze ook niet echt nodig.

[ Voor 3% gewijzigd door KC27 op 13-01-2026 22:51 ]

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


  • Mirabis
  • Registratie: Juli 2013
  • Niet online
KC27 schreef op maandag 12 januari 2026 @ 13:06:
Vandaag is een nieuwe test-versie gepubliceerd: 2026.01.0.rc5
Dit staat in de changelog:
  • Fixed errors in solar-reports (reported by @balk and @DaBit)
  • Fixed problem with managing battery with short periods (reported by @Mirabis)
Dank aan eenieder voor het testen, meewerken en meedenken.
Korte toelichting:
In de solar-reports wordt in het vervolg de dao-voorspelling en de ml-voorspelling berekend met gemeten straling (knmi-data). Bij ontbreken daarvan (knmi meetdata zijn maar tot uiterlijk eergisteren beschikbaar) worden de prognose-data (van Meteoserver) gebruikt.
Het probleem van @Mirabis is getackled door de berekening van de inzet van de batterij(en) met sos (special order sets) verder door te voeren en (wanneer van toepassing) de resultaten daarvan te gebruiken om de batterij met een hoger optimaal vermogen (meest efficiënt) te laden of te ontladen gedurende een korte periode. De entity "stop omvormer" wordt voorzien van een datum/tijd waarop de omvormer moet worden gestopt om toch het goede volume te bereiken.

Graag opnieuw testen en ik ben benieuwd naar jullie bevindingen.
Hmm het gaat nog niet helemaal goed. Het maakte zojuist de keuze voor 1382W terwijl eerdere logging 94.90 efficientie aangaf wat duidt op power=2400W.
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
 2026-01-13 23:00:00 info: Day Ahead Optimalisering versie: 2026.01.0.rc6
2026-01-13 23:00:00 info: Day Ahead Optimalisering gestart op: 13-01-2026 23:00:00
2026-01-13 23:00:00 info: Day Ahead Optimalisatie gestart: 13-01-2026 23:00:00 taak: calc_optimum
2026-01-13 23:00:00 info: Debug = False
2026-01-13 23:00:00 info: Zelf berekende baseload
2026-01-13 23:00:00 info: ML prediction Growatt
                   date_time  prediction
0  2026-01-13 23:00:00+01:00       0.007
1  2026-01-14 00:00:00+01:00       0.007
2  2026-01-14 01:00:00+01:00       0.000
3  2026-01-14 02:00:00+01:00       0.000
4  2026-01-14 03:00:00+01:00       0.000
5  2026-01-14 04:00:00+01:00       0.000
6  2026-01-14 05:00:00+01:00       0.000
7  2026-01-14 06:00:00+01:00       0.000
8  2026-01-14 07:00:00+01:00       0.000
9  2026-01-14 08:00:00+01:00       0.000
10 2026-01-14 09:00:00+01:00       0.216
11 2026-01-14 10:00:00+01:00       1.111
12 2026-01-14 11:00:00+01:00       2.130
13 2026-01-14 12:00:00+01:00       2.074
14 2026-01-14 13:00:00+01:00       1.826
15 2026-01-14 14:00:00+01:00       1.506
16 2026-01-14 15:00:00+01:00       0.763
17 2026-01-14 16:00:00+01:00       0.063
18 2026-01-14 17:00:00+01:00       0.000
19 2026-01-14 18:00:00+01:00       0.000
20 2026-01-14 19:00:00+01:00       0.000
21 2026-01-14 20:00:00+01:00       0.000
22 2026-01-14 21:00:00+01:00       0.000
23 2026-01-14 22:00:00+01:00       0.000
2026-01-13 23:00:00 info: Start waarden: 
      uur                tijd  spot   p_l   p_t   base  pv_ac  pv_dc
0   23:00 2026-01-13 23:00:00 0.082 0.231 0.233  4.028  0.007      0
1   00:00 2026-01-14 00:00:00 0.086 0.234 0.236 -2.446  0.007      0
2   01:00 2026-01-14 01:00:00 0.084 0.233 0.235 -0.260  0.000      0
3   02:00 2026-01-14 02:00:00 0.086 0.235 0.237  0.808  0.000      0
4   03:00 2026-01-14 03:00:00 0.086 0.235 0.237  2.765  0.000      0
5   04:00 2026-01-14 04:00:00 0.088 0.237 0.239  0.908  0.000      0
6   05:00 2026-01-14 05:00:00 0.090 0.239 0.241 -0.615  0.000      0
7   06:00 2026-01-14 06:00:00 0.093 0.244 0.246  0.002  0.000      0
8   07:00 2026-01-14 07:00:00 0.105 0.257 0.259 -1.204  0.000      0
9   08:00 2026-01-14 08:00:00 0.128 0.286 0.288 -0.421  0.000      0
10  09:00 2026-01-14 09:00:00 0.130 0.288 0.290  0.342  0.216      0
11  10:00 2026-01-14 10:00:00 0.115 0.270 0.272  0.373  1.111      0
12  11:00 2026-01-14 11:00:00 0.103 0.256 0.258  0.383  2.130      0
13  12:00 2026-01-14 12:00:00 0.098 0.249 0.251  0.890  2.074      0
14  13:00 2026-01-14 13:00:00 0.100 0.252 0.254  0.753  1.826      0
15  14:00 2026-01-14 14:00:00 0.114 0.269 0.271  0.477  1.506      0
16  15:00 2026-01-14 15:00:00 0.138 0.298 0.300  0.560  0.763      0
17  16:00 2026-01-14 16:00:00 0.148 0.310 0.312  0.576  0.063      0
18  17:00 2026-01-14 17:00:00 0.193 0.365 0.367  0.522  0.000      0
19  18:00 2026-01-14 18:00:00 0.181 0.350 0.352  0.458  0.000      0
20  19:00 2026-01-14 19:00:00 0.158 0.322 0.324  0.377  0.000      0
21  20:00 2026-01-14 20:00:00 0.130 0.288 0.290  0.384  0.000      0
22  21:00 2026-01-14 21:00:00 0.100 0.252 0.254  0.356  0.000      0
23  22:00 2026-01-14 22:00:00 0.092 0.243 0.245  0.622  0.000      0
24  23:00 2026-01-14 23:00:00 0.092 0.242 0.244  0.511  0.000      0
2026-01-13 23:00:00 info: No reduced hours applied for Marstek
2026-01-13 23:00:00 info: Startwaarde SoC Marstek: 11.0%

2026-01-13 23:00:00 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2026-01-13 23:00:00 info: Warmtepomp niet aanwezig - warmtepomp wordt niet ingepland
2026-01-13 23:00:00 info: Strategie: minimale kosten
2026-01-13 23:00:00 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-13 23:00:00 info: Rekentijd: 0.07  sec
2026-01-13 23:00:00 info: Het programma heeft een optimale oplossing gevonden.
2026-01-13 23:00:00 info: Laad volume in uur 0 23:00 0.0 kWh
2026-01-13 23:00:00 info: 14 0.9827771797633137 2.4
2026-01-13 23:00:00 info: 15 0.017222820236686243 2.5
2026-01-13 23:00:00 info: Laad volume in uur 3 02:00 0.0 kWh
2026-01-13 23:00:00 info: 14 1.0 2.4
2026-01-13 23:00:00 info: Ontlaad volume in uur 18 17:00 2.13604928962385 kWh
2026-01-13 23:00:00 info: 11 0.3197535518807504 2.0
2026-01-13 23:00:00 info: 12 0.6802464481192496 2.2
2026-01-13 23:00:00 info: Ontlaad volume in uur 19 18:00 1.75979808 kWh
2026-01-13 23:00:00 info: 10 0.9776655999999999 1.8
2026-01-13 23:00:00 info: In- en uitgaande energie per uur batterij Marstek
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 23:00   2.40  94.90   2.28   0.00   2.28 100.00   2.28  94.90  55.52
 00:00   0.00     --   0.00   0.00   0.00     --   0.00     --  55.52
 01:00   0.00     --   0.00   0.00   0.00     --   0.00     --  55.52
 02:00   2.40  94.90   2.28   0.00   2.28 100.00   2.28  94.90 100.00
 03:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 04:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 05:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 06:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 07:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 08:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 09:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 10:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 11:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 12:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 13:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 14:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 15:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 16:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 17:00  -2.14  85.44  -2.50   0.00  -2.50 100.00  -2.50  85.44  51.17
 18:00  -1.76  85.56  -2.06   0.00  -2.06 100.00  -2.06  85.56  11.00
 19:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
Totaal   0.91     --  -0.00   0.00  -0.00     --  -0.00     --       
2026-01-13 23:00:00 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 23:00    2.40     0.00   6.42   0.00   4.03   0.00   0.00   0.00   0.01   1.48   -0.00  20.00
 00:00    0.00     0.00   0.00   2.45  -2.45   0.00   0.00   0.00   0.01   0.00   -0.58  20.00
 01:00    0.00     0.00   0.00   0.26  -0.26   0.00   0.00   0.00   0.00   0.00   -0.06  20.00
 02:00    2.40     0.00   3.21   0.00   0.81   0.00   0.00   0.00   0.00   0.75   -0.00  20.00
 03:00    0.00     0.00   2.76   0.00   2.77   0.00   0.00   0.00   0.00   0.65   -0.00  20.00
 04:00    0.00     0.00   0.91   0.00   0.91   0.00   0.00   0.00   0.00   0.22   -0.00  20.00
 05:00    0.00     0.00   0.00   0.62  -0.61   0.00   0.00   0.00   0.00   0.00   -0.15  20.00
 06:00    0.00     0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 07:00    0.00     0.00   0.00   1.20  -1.20   0.00   0.00   0.00   0.00   0.00   -0.31  20.00
 08:00    0.00     0.00   0.00   0.42  -0.42   0.00   0.00   0.00   0.00   0.00   -0.12  20.00
 09:00    0.00     0.00   0.13   0.00   0.34   0.00   0.00   0.00   0.22   0.04   -0.00  20.00
 10:00    0.00     0.00   0.00   0.74   0.37   0.00   0.00   0.00   1.11   0.00   -0.20  20.00
 11:00    0.00     0.00   0.00   1.75   0.38   0.00   0.00   0.00   2.13   0.00   -0.45  20.00
 12:00    0.00     0.00   0.00   1.18   0.89   0.00   0.00   0.00   2.07   0.00   -0.30  20.00
 13:00    0.00     0.00   0.00   1.07   0.75   0.00   0.00   0.00   1.83   0.00   -0.27  20.00
 14:00    0.00     0.00   0.00   1.03   0.48   0.00   0.00   0.00   1.51   0.00   -0.28  20.00
 15:00    0.00     0.00   0.00   0.20   0.56   0.00   0.00   0.00   0.76   0.00   -0.06  20.00
 16:00    0.00     0.00   0.51   0.00   0.58   0.00   0.00   0.00   0.06   0.16   -0.00  20.00
 17:00    0.00     2.14   0.00   1.61   0.52   0.00   0.00   0.00   0.00   0.00   -0.59  20.00
 18:00    0.00     1.76   0.00   1.30   0.46   0.00   0.00   0.00   0.00   0.00   -0.46  20.00
 19:00    0.00     0.00   0.38   0.00   0.38   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 20:00    0.00     0.00   0.38   0.00   0.38   0.00   0.00   0.00   0.00   0.11   -0.00  20.00
 21:00    0.00     0.00   0.36   0.00   0.36   0.00   0.00   0.00   0.00   0.09   -0.00  20.00
 22:00    0.00     0.00   0.62   0.00   0.62   0.00   0.00   0.00   0.00   0.15   -0.00  20.00
 23:00    0.00     0.00   0.51   0.00   0.51   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
Totaal    4.80     3.90  16.20  13.84  11.15   0.00   0.00   0.00   9.70   3.89   -3.83       

2026-01-13 23:00:00 info: Consumption              16.20 (kWh)
2026-01-13 23:00:00 info: Cost consumption          3.89 (€)
2026-01-13 23:00:00 info: Tariff consumption        0.240 (€/kWh)
2026-01-13 23:00:00 info: Production               13.84 (kWh)
2026-01-13 23:00:00 info: Profit production        -3.83 (€)
2026-01-13 23:00:00 info: Tariff production         0.277 (€/kWh)

2026-01-13 23:00:00 info: 
Calculation profit after optimize in €
Cost before optimize              0.34
Cost consumption      3.89
Cycle cost            0.11
Penalty cost          0.00
Battery storage       0.00
Boiler storage        0.00
Profit production    -3.83
Total                 0.17
Cost after optimize               0.17
Profit:                           0.17
2026-01-13 23:00:00 info: Doorzetten van alle settings naar HA
2026-01-13 23:00:00 info: Grid set point: 6423.0 W
2026-01-13 23:00:00 info: Cycle cost Marstek: 0.11 euro
2026-01-13 23:00:00 info: Netto vermogen naar(+)/uit(-) omvormer Marstek: 1356 W tot: 2026-01-13 23:16
2026-01-13 23:00:00 info: Balanceren: False tot: 2026-01-13 23:16
2026-01-13 23:00:00 info: Vermogen uit batterij: -2279W
2026-01-13 23:00:00 info: Vermogen dat binnenkomt van pv: 0W
2026-01-13 23:00:00 info: Vermogen dat binnenkomt van ac: 2279W
2026-01-13 23:00:00 info: Waarde SoC na eerste uur: 55.5%
charge stages (min:500 elders geconfigureerd):
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
"charge stages": [
                {
                    "efficiency": 1,
                    "power": 0
                },
                {
                    "efficiency": 0.7095,
                    "power": 300
                },
                {
                    "efficiency": 0.7789,
                    "power": 400
                },
                {
                    "efficiency": 0.8273,
                    "power": 500
                },
                {
                    "efficiency": 0.8576,
                    "power": 600
                },
                {
                    "efficiency": 0.9041,
                    "power": 900
                },
                {
                    "efficiency": 0.9197,
                    "power": 1100
                },
                {
                    "efficiency": 0.9298,
                    "power": 1300
                },
                {
                    "efficiency": 0.9365,
                    "power": 1500
                },
                {
                    "efficiency": 0.9416,
                    "power": 1700
                },
                {
                    "efficiency": 0.944,
                    "power": 1900
                },
                {
                    "efficiency": 0.946,
                    "power": 2100
                },
                {
                    "efficiency": 0.9471,
                    "power": 2200
                },
                {
                    "efficiency": 0.9485,
                    "power": 2300
                },
                {
                    "efficiency": 0.949,
                    "power": 2400
                },
                {
                    "efficiency": 0.9482,
                    "power": 2500
                }
            ],
Als ik een paar minuten later handmatig een berekening start pakt hij wel de hogere waarde:
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
Home Run Reports Savings Solar Config
Voer een bewerking, berekening of actie uit door een van onderstaande onderdelen aan te klikken
 Optimaliseringsberekening met debug
 Optimaliseringsberekening zonder debug
 Verbruiksgegevens bij Tibber ophalen
 Meteoprognoses ophalen
 Day ahead prijzen ophalen prijzen_start 
jjjj-mm-dd
 prijzen_tot 
jjjj-mm-dd

 Bereken de baseloads
 ML modellen trainen
Logging van bewerking "Optimaliseringsberekening zonder debug":
2026-01-13 23:03:45 info: Day Ahead Optimalisering versie: 2026.01.0.rc6
2026-01-13 23:03:45 info: Day Ahead Optimalisering gestart op: 13-01-2026 23:03:45
2026-01-13 23:03:45 info: Day Ahead Optimalisatie gestart: 13-01-2026 23:03:45 taak: calc_optimum
2026-01-13 23:03:45 info: Debug = False
2026-01-13 23:03:46 info: Zelf berekende baseload
2026-01-13 23:03:46 info: ML prediction Growatt
                   date_time  prediction
0  2026-01-13 23:00:00+01:00       0.007
1  2026-01-14 00:00:00+01:00       0.007
2  2026-01-14 01:00:00+01:00       0.000
3  2026-01-14 02:00:00+01:00       0.000
4  2026-01-14 03:00:00+01:00       0.000
5  2026-01-14 04:00:00+01:00       0.000
6  2026-01-14 05:00:00+01:00       0.000
7  2026-01-14 06:00:00+01:00       0.000
8  2026-01-14 07:00:00+01:00       0.000
9  2026-01-14 08:00:00+01:00       0.000
10 2026-01-14 09:00:00+01:00       0.216
11 2026-01-14 10:00:00+01:00       1.111
12 2026-01-14 11:00:00+01:00       2.130
13 2026-01-14 12:00:00+01:00       2.074
14 2026-01-14 13:00:00+01:00       1.826
15 2026-01-14 14:00:00+01:00       1.506
16 2026-01-14 15:00:00+01:00       0.763
17 2026-01-14 16:00:00+01:00       0.063
18 2026-01-14 17:00:00+01:00       0.000
19 2026-01-14 18:00:00+01:00       0.000
20 2026-01-14 19:00:00+01:00       0.000
21 2026-01-14 20:00:00+01:00       0.000
22 2026-01-14 21:00:00+01:00       0.000
23 2026-01-14 22:00:00+01:00       0.000
2026-01-13 23:03:46 info: Start waarden: 
      uur                tijd  spot   p_l   p_t   base  pv_ac  pv_dc
0   23:00 2026-01-13 23:00:00 0.082 0.231 0.233  4.028  0.007      0
1   00:00 2026-01-14 00:00:00 0.086 0.234 0.236 -2.446  0.007      0
2   01:00 2026-01-14 01:00:00 0.084 0.233 0.235 -0.260  0.000      0
3   02:00 2026-01-14 02:00:00 0.086 0.235 0.237  0.808  0.000      0
4   03:00 2026-01-14 03:00:00 0.086 0.235 0.237  2.765  0.000      0
5   04:00 2026-01-14 04:00:00 0.088 0.237 0.239  0.908  0.000      0
6   05:00 2026-01-14 05:00:00 0.090 0.239 0.241 -0.615  0.000      0
7   06:00 2026-01-14 06:00:00 0.093 0.244 0.246  0.002  0.000      0
8   07:00 2026-01-14 07:00:00 0.105 0.257 0.259 -1.204  0.000      0
9   08:00 2026-01-14 08:00:00 0.128 0.286 0.288 -0.421  0.000      0
10  09:00 2026-01-14 09:00:00 0.130 0.288 0.290  0.342  0.216      0
11  10:00 2026-01-14 10:00:00 0.115 0.270 0.272  0.373  1.111      0
12  11:00 2026-01-14 11:00:00 0.103 0.256 0.258  0.383  2.130      0
13  12:00 2026-01-14 12:00:00 0.098 0.249 0.251  0.890  2.074      0
14  13:00 2026-01-14 13:00:00 0.100 0.252 0.254  0.753  1.826      0
15  14:00 2026-01-14 14:00:00 0.114 0.269 0.271  0.477  1.506      0
16  15:00 2026-01-14 15:00:00 0.138 0.298 0.300  0.560  0.763      0
17  16:00 2026-01-14 16:00:00 0.148 0.310 0.312  0.576  0.063      0
18  17:00 2026-01-14 17:00:00 0.193 0.365 0.367  0.522  0.000      0
19  18:00 2026-01-14 18:00:00 0.181 0.350 0.352  0.458  0.000      0
20  19:00 2026-01-14 19:00:00 0.158 0.322 0.324  0.377  0.000      0
21  20:00 2026-01-14 20:00:00 0.130 0.288 0.290  0.384  0.000      0
22  21:00 2026-01-14 21:00:00 0.100 0.252 0.254  0.356  0.000      0
23  22:00 2026-01-14 22:00:00 0.092 0.243 0.245  0.622  0.000      0
24  23:00 2026-01-14 23:00:00 0.092 0.242 0.244  0.511  0.000      0
2026-01-13 23:03:47 info: No reduced hours applied for Marstek
2026-01-13 23:03:47 info: Startwaarde SoC Marstek: 13.0%

2026-01-13 23:03:47 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2026-01-13 23:03:47 info: Warmtepomp niet aanwezig - warmtepomp wordt niet ingepland
2026-01-13 23:03:47 info: Strategie: minimale kosten
2026-01-13 23:03:47 info: Maximale fout (maximal gap): 0.005000 euro
2026-01-13 23:03:47 info: Rekentijd: 0.10  sec
2026-01-13 23:03:47 info: Het programma heeft een optimale oplossing gevonden.
2026-01-13 23:03:47 info: Laad volume in uur 0 23:00 0.0 kWh
2026-01-13 23:03:47 info: 14 0.5229278794402717 2.4
2026-01-13 23:03:47 info: 15 0.4770721205597282 2.5
2026-01-13 23:03:47 info: Laad volume in uur 2 01:00 0.0 kWh
2026-01-13 23:03:47 info: 14 1.0 2.4
2026-01-13 23:03:47 info: Ontlaad volume in uur 18 17:00 2.13604928962385 kWh
2026-01-13 23:03:47 info: 11 0.3197535518807504 2.0
2026-01-13 23:03:47 info: 12 0.6802464481192496 2.2
2026-01-13 23:03:47 info: Ontlaad volume in uur 19 18:00 1.7597980799999995 kWh
2026-01-13 23:03:47 info: 10 0.9776655999999997 1.8
2026-01-13 23:03:47 info: In- en uitgaande energie per uur batterij Marstek
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 23:00   2.29  94.86   2.18   0.00   2.18 100.00   2.18  94.86  55.52
 00:00   0.00     --   0.00   0.00   0.00     --   0.00     --  55.52
 01:00   2.40  94.90   2.28   0.00   2.28 100.00   2.28  94.90 100.00
 02:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 03:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 04:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 05:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 06:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 07:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 08:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 09:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 10:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 11:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 12:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 13:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 14:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 15:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 16:00   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 17:00  -2.14  85.44  -2.50   0.00  -2.50 100.00  -2.50  85.44  51.17
 18:00  -1.76  85.56  -2.06   0.00  -2.06 100.00  -2.06  85.56  11.00
 19:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  11.00
Totaal   0.80     --  -0.10   0.00  -0.10     --  -0.10     --       
2026-01-13 23:03:47 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 23:00    2.29     0.00   6.06   0.00   4.03   0.00   0.00   0.00   0.01   1.40   -0.00  20.00
 00:00    0.00     0.00   0.00   2.45  -2.45   0.00   0.00   0.00   0.01   0.00   -0.58  20.00
 01:00    2.40     0.00   2.14   0.00  -0.26   0.00   0.00   0.00   0.00   0.50   -0.00  20.00
 02:00    0.00     0.00   0.81   0.00   0.81   0.00   0.00   0.00   0.00   0.19   -0.00  20.00
 03:00    0.00     0.00   2.76   0.00   2.77   0.00   0.00   0.00   0.00   0.65   -0.00  20.00
 04:00    0.00     0.00   0.91   0.00   0.91   0.00   0.00   0.00   0.00   0.22   -0.00  20.00
 05:00    0.00     0.00   0.00   0.62  -0.61   0.00   0.00   0.00   0.00   0.00   -0.15  20.00
 06:00    0.00     0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
 07:00    0.00     0.00   0.00   1.20  -1.20   0.00   0.00   0.00   0.00   0.00   -0.31  20.00
 08:00    0.00     0.00   0.00   0.42  -0.42   0.00   0.00   0.00   0.00   0.00   -0.12  20.00
 09:00    0.00     0.00   0.13   0.00   0.34   0.00   0.00   0.00   0.22   0.04   -0.00  20.00
 10:00    0.00     0.00   0.00   0.74   0.37   0.00   0.00   0.00   1.11   0.00   -0.20  20.00
 11:00    0.00     0.00   0.00   1.75   0.38   0.00   0.00   0.00   2.13   0.00   -0.45  20.00
 12:00    0.00     0.00   0.00   1.18   0.89   0.00   0.00   0.00   2.07   0.00   -0.30  20.00
 13:00    0.00     0.00   0.00   1.07   0.75   0.00   0.00   0.00   1.83   0.00   -0.27  20.00
 14:00    0.00     0.00   0.00   1.03   0.48   0.00   0.00   0.00   1.51   0.00   -0.28  20.00
 15:00    0.00     0.00   0.00   0.20   0.56   0.00   0.00   0.00   0.76   0.00   -0.06  20.00
 16:00    0.00     0.00   0.51   0.00   0.58   0.00   0.00   0.00   0.06   0.16   -0.00  20.00
 17:00    0.00     2.14   0.00   1.61   0.52   0.00   0.00   0.00   0.00   0.00   -0.59  20.00
 18:00    0.00     1.76   0.00   1.30   0.46   0.00   0.00   0.00   0.00   0.00   -0.46  20.00
 19:00    0.00     0.00   0.38   0.00   0.38   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
 20:00    0.00     0.00   0.38   0.00   0.38   0.00   0.00   0.00   0.00   0.11   -0.00  20.00
 21:00    0.00     0.00   0.36   0.00   0.36   0.00   0.00   0.00   0.00   0.09   -0.00  20.00
 22:00    0.00     0.00   0.62   0.00   0.62   0.00   0.00   0.00   0.00   0.15   -0.00  20.00
 23:00    0.00     0.00   0.51   0.00   0.51   0.00   0.00   0.00   0.00   0.12   -0.00  20.00
Totaal    4.69     3.90  15.58  13.58  11.15   0.00   0.00   0.00   9.70   3.74   -3.77       

2026-01-13 23:03:47 info: Consumption              15.58 (kWh)
2026-01-13 23:03:47 info: Cost consumption          3.74 (€)
2026-01-13 23:03:47 info: Tariff consumption        0.240 (€/kWh)
2026-01-13 23:03:47 info: Production               13.58 (kWh)
2026-01-13 23:03:47 info: Profit production        -3.77 (€)
2026-01-13 23:03:47 info: Tariff production         0.278 (€/kWh)

2026-01-13 23:03:47 info: 
Calculation profit after optimize in €
Cost before optimize              0.34
Cost consumption      3.74
Cycle cost            0.11
Penalty cost          0.00
Battery storage       0.02
Boiler storage        0.00
Profit production    -3.77
Total                 0.10
Cost after optimize               0.10
Profit:                           0.24
2026-01-13 23:03:47 info: Doorzetten van alle settings naar HA
2026-01-13 23:03:47 info: Grid set point: 6469.0 W
2026-01-13 23:03:47 info: Cycle cost Marstek: 0.11 euro
2026-01-13 23:03:47 info: Netto vermogen naar(+)/uit(-) omvormer Marstek: 2447 W
2026-01-13 23:03:47 info: Balanceren: False
2026-01-13 23:03:47 info: Vermogen uit batterij: -2321W
2026-01-13 23:03:47 info: Vermogen dat binnenkomt van pv: 0W
2026-01-13 23:03:47 info: Vermogen dat binnenkomt van ac: 2321W
2026-01-13 23:03:47 info: Waarde SoC na eerste uur: 55.5%
 © 2026: Apache 2.0  Day Ahead Optimizer version: 2026.01.0.rc6

[ Voor 46% gewijzigd door Mirabis op 13-01-2026 23:05 ]

1x Venus-E v153 +LilyGo HA, CT003 V117 | 5040Wp ZO + 4200Wp NW | Zonneplan, 3x25A, Easee Charge Lite | EV 98kWh

The Source schreef op dinsdag 13 januari 2026 @ 21:24:
Ik ben het 'report' deel aan het invullen zodat mijn base load opgehaald kan worden. Mijn beginners vragen:

- Ik heb bij machine consumption het energie verbruik in kWh van mijn airco ingevuld, is dat ok? Of is machine ergens anders voor?
- De waterpomp daar heb ik zowel de 3 fase (verwarmen) als de 1 fase (legionelle) in kWh ingevuld, is dat ook ok? Deze heb ik nog niet bij heating ingevuld kan dat? Het geeft geen fout.
- Solar wordt weer in Watt ingevuld, beetje verwarrend omdat bovenstaande in kWh staat en deze in watt, klopt dit? Want de solar AC heb ik enkel in kWh en niet in Watt.

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
  "report": {
    "entities grid consumption": [
      "sensor.p1_meter_3c39e7276316_total_power_import_t1",
      "sensor.p1_meter_3c39e7276316_total_power_import_t2"
    ],
    "entities grid production": [
      "sensor.p1_meter_3c39e7276316_total_power_export_t1",
      "sensor.p1_meter_3c39e7276316_total_power_export_t2"
    ],
    "entities solar production ac": [],

    "entities solar production dc": [
      "sensor.solaredge_i1_ac_energy",
      "sensor.deye_pv1_power",
      "sensor.deye_pv2_power"
    ],
    "entities ev consumption" : [],
    "entities wp consumption" : [
      "sensor.power_ecodan_3p_energy",
      "sensor.power_ecodan_1p_energy"
],
    "entities boiler consumption": [],
    "entities machine consumption": [
      "sensor.power_airco_kantoor_energy", 
      "sensor.power_airco_ramie_energy"
],
    "entities battery consumption": [],
    "entities battery production": []
Alle sensoren die je invult moeten in kWh rapporteren.
Ik weet dat HA dat netjes voor je oplost in het energy-dashboard, maar DAO is nog niet zo slim ;) .
Desnoods maak je in HA een template sensor aan die Wh omzet naar kWh. Als je vermogens sensoren hebt (in Watt) dan moet je deze in HA omzetten naar volume (in kWh) met de Riemann-integratie van HA.
Verder moeten het sensoren zijn met oplopende energiestanden (dezelfde soort sensoren die je ook gebruikt in het energy-dashboard van HA).
Bij machines vul je de sensoren in die het verbruik van je DAO-machines opvolgen, dus meestal zijn dat een vaatwasser, wasmachine, wasdroger dat soort dingen.
De solaredge omvormer is een ac-gebonden omvormer en die vul je in bij "entities solar production ac"
Warmtepomp lijkt me prima.
Die airco's zijn eigenlijk warmtepompen en horen daar dus thuis.
Als je ze aanstuurt als "machine" staan ze nu goed.
Als je ze aanstuurt als warmtepomp dan verhuizen naar de wp.
Als je ze niet aanstuurt met DAO: dan niet opnemen in dit overzicht en dan verhuizen ze automatisch naar de baseload.

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

Mirabis schreef op dinsdag 13 januari 2026 @ 23:03:
[...]


Hmm het gaat nog niet helemaal goed. Het maakte zojuist de keuze voor 1382W terwijl eerdere logging 94.90 efficientie aangaf wat duidt op power=2400W.


[...]


charge stages (min:500 elders geconfigureerd):

[...]


Als ik een paar minuten later handmatig een berekening start pakt hij wel de hogere waarde:


[...]
Goed dat je het hebt getest.
Ik kon de geconstateerde fout hier nadoen en oplossen (ik had gelukkig jouw setup hier nog ergens geparkeerd).
Er komt binnenkort (toch nog) een nieuwe rc.

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 nieuwe test-versie gepubliceerd: 2026.01.0.rc7
Changelog:
  • Updated several python packages
  • Update README.md, link to wiki: https://github.com/corneel27/day-ahead/wiki
  • Implemented check op AWS (only AWS stations have irradiance data, reported by @steynovich)
  • Fix error calculating charge-power "new style" (reported by @Mirabis )

WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer

Pagina: 1 ... 25 26 Laatste