Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
Ik heb ze omgedraait, maar nog steeds niks. Ik denk ook niet dat dat iets te maken heeft met de "sqlalchemy.exc.NoSuchTableError: statistics" error die ik krijg. Het lijkt erop dat hij die tabel niet kan vinden.

Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
Ik heb het al opgelost, de database naam klopte niet.

Acties:
  • 0 Henk 'm!

  • Batavia
  • Registratie: Mei 2011
  • Laatst online: 23-10 17:33
code:
1
2
      "optimal lower level": 20,
      "lower limit": 10,


I have these settings for my battery. However dao seems to never go below 20.

Under what conditions should it go to 10% instead of 20?

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Deikke schreef op donderdag 16 oktober 2025 @ 10:50:
Laat maar, al opgelost

Ik krijg het helaas niet voor elkaar om de baseloads te berekenen. Ik krijg telkens onderstaande foutmelding, enig idee wat hier mis gaat?

[code] Logging van bewerking "Bereken de baseloads":

2025-10-16 10:44:31 info: Day Ahead Optimalisering versie: 2025.10.4
2025-10-16 10:44:31 info: Day Ahead Optimalisering gestart op: 16-10-2025 10:44:31
2025-10-16 10:44:31 info: Day Ahead Optimalisatie gestart: 16-10-2025 10:44:31 taak: calc_baseloads
2025-10-16 10:44:34 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
File "/root/dao/prog/da_base.py", line 594, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 539, in calc_baseloads
report.calc_save_baseloads()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_report.py", line 2738, in calc_save_baseloads
baseload = self.calc_weekday_baseload(weekday)
File "/root/dao/prog/da_report.py", line 2643, in calc_weekday_baseload
grid_consumption = self.get_sensor_week_sum(
self.grid_consumption_sensors,
...<2 lines>...
"grid_consumption",
)
File "/root/dao/prog/da_report.py", line 2617, in get_sensor_week_sum
df = self.get_sensor_week_data(sensor, weekday, vanaf, tot, col_name)
File "/root/dao/prog/da_report.py", line 2536, in get_sensor_week_data
statistics = Table(
"statistics", self.db_ha.metadata, autoload_with=self.db_ha.engine
)
File "<string>", line 2, in __new__
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py", line 281, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 429, in __new__
return cls._new(*args, **kw)
~~~~~~~~^^^^^^^^^^^^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 483, in _new
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 224, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 479, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw) # type: ignore[misc] # noqa: E501
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 861, in __init__
self._autoload(
~~~~~~~~~~~~~~^
metadata,
^^^^^^^^^
...<4 lines>...
resolve_fks=resolve_fks,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 893, in _autoload
conn_insp.reflect_table(
~~~~~~~~~~~~~~~~~~~~~~~^
self,
^^^^^
...<4 lines>...
_reflect_info=_reflect_info,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py", line 1548, in reflect_table
raise exc.NoSuchTableError(table_name)
sqlalchemy.exc.NoSuchTableError: statistics
Traceback (most recent call last):
File "/root/dao/webserver/../prog/day_ahead.py", line 3945, in <module>
main()
~~~~^^
File "/root/dao/webserver/../prog/day_ahead.py", line 3939, in main
da_calc.run_task_function("calc_baseloads")
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/root/dao/prog/da_base.py", line 594, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 539, in calc_baseloads
report.calc_save_baseloads()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_report.py", line 2738, in calc_save_baseloads
baseload = self.calc_weekday_baseload(weekday)
File "/root/dao/prog/da_report.py", line 2643, in calc_weekday_baseload
grid_consumption = self.get_sensor_week_sum(
self.grid_consumption_sensors,
...<2 lines>...
"grid_consumption",
)
File "/root/dao/prog/da_report.py", line 2617, in get_sensor_week_sum
df = self.get_sensor_week_data(sensor, weekday, vanaf, tot, col_name)
File "/root/dao/prog/da_report.py", line 2536, in get_sensor_week_data
statistics = Table(
"statistics", self.db_ha.metadata, autoload_with=self.db_ha.engine
)
File "<string>", line 2, in __new__
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/util/deprecations.py", line 281, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 429, in __new__
return cls._new(*args, **kw)
~~~~~~~~^^^^^^^^^^^^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 483, in _new
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 224, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 479, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw) # type: ignore[misc] # noqa: E501
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 861, in __init__
self._autoload(
~~~~~~~~~~~~~~^
metadata,
^^^^^^^^^
...<4 lines>...
resolve_fks=resolve_fks,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/sql/schema.py", line 893, in _autoload
conn_insp.reflect_table(
~~~~~~~~~~~~~~~~~~~~~~~^
self,
^^^^^
...<4 lines>...
_reflect_info=_reflect_info,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py", line 1548, in reflect_table
raise exc.NoSuchTableError(table_name)
sqlalchemy.exc.NoSuchTableError: statistics
[/code]

config:

[code]{
"homeassistant": {
},
"database ha": {
"engine": "postgresql",
"server": "77b2833f-timescaledb",
"port": 5432,
"database": "dao",
"username": "dao",
"password": "!secret db_ha_password"
},
"database da": {
"engine": "postgresql",
"server": "77b2833f-timescaledb",
"port": 5432,
"database": "dao",
"username": "dao",
"password": "!secret db_da_password"
},
"meteoserver-key": "!secret meteoserver-key",
"prices": {
"source day ahead": "nordpool",
"regular high": 0.5,
"regular low": 0.4,
"switch to low": 23,
"energy taxes consumption": {
"2022-01-01": 0.06729,
"2023-01-01": 0.12599,
"2024-01-01": 0.1088,
"2025-01-01": 0.10154
},
"energy taxes production": {
"2022-01-01": 0.06729,
"2023-01-01": 0.12599,
"2024-01-01": 0.1088,
"2025-01-01": 0.10154
},
"cost supplier consumption": {
"2022-01-01": 0.002,
"2023-03-01": 0.018,
"2024-04-01": 0.0175,
"2024-08-01": 0.020496
},
"cost supplier production": {
"2022-01-01": 0.002,
"2023-03-01": 0.018,
"2024-04-01": 0.0175,
"2024-08-01": 0.020496
},
"vat consumption": {
"2022-01-01": 21,
"2022-07-01": 9,
"2023-01-01": 21
},
"vat production": {
"2022-01-01": 21,
"2022-07-01": 9,
"2023-01-01": 21
},
"last invoice": "2025-09-01",
"tax refund": "True"
},
"interval": "15min",
"logging level": "info",
"use_calc_baseload": "False",
"baseload calc periode": 56,
"baseload": [
0.14,
0.38,
0.26,
0.42,
0.15,
0.12,
0.13,
0.15,
0.23,
0.26,
0.31,
0.32,
0.31,
0.23,
0.26,
0.21,
0.21,
0.54,
0.26,
0.26,
0.22,
0.19,
0.18,
0.16
],
"graphical backend": "",
"graphics": {
"style": "Solarize_Light2",
"show": "true",
"battery balance": "True",
"prices consumption": "True",
"prices production": "False",
"prices spot": "True",
"average consumption": "True"
},
"strategy": "minimize cost",
"notifications": {
},
"grid": {
"max_power": 17
},
"history": {
"save days": 7
},
"dashboard": {
"port": 5000
},
"boiler": {
"boiler present": "False",
"entity actual temp.": "sensor.boiler_gemeten",
"entity setpoint": "sensor.boiler_ingesteld",
"entity hysterese": "sensor.hysterese_hot_water",
"cop": 2.9,
"cooling rate": 0.4,
"volume": 180,
"heating allowed below": 44,
"elec. power": 1500,
"activate service": "press",
"activate entity": "input_button.hw_trigger"
},
"heating": {
"heater present": "False",
"degree days factor": 3.6,
"stages": [
{
"max_power": 225,
"cop": 7.1
},
{
"max_power": 300,
"cop": 7.0
},
{
"max_power": 400,
"cop": 6.5
},
{
"max_power": 500,
"cop": 6.0
},
{
"max_power": 600,
"cop": 5.5
},
{
"max_power": 750,
"cop": 5.0
},
{
"max_power": 1000,
"cop": 4.5
},
{
"max_power": 1250,
"cop": 4.0
}
],
"entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
"adjustment factor": 0.04
},
"battery": [
{
"name": "Batterij",
"entity actual level": "sensor.solis_s5_eh1p_battery_soc",
"capacity": 10,
"upper limit": 98,
"lower limit": 21,
"optimal lower level": 21,
"minimum power": 0,
"charge stages": [
{
"power": 0.0,
"efficiency": 1
},
{
"power": 50.0,
"efficiency": 0.825
},
{
"power": 100.0,
"efficiency": 0.861
},
{
"power": 150.0,
"efficiency": 0.873
},
{
"power": 300.0,
"efficiency": 0.886
},
{
"power": 600.0,
"efficiency": 0.893
},
{
"power": 1200.0,
"efficiency": 0.896
},
{
"power": 2000.0,
"efficiency": 0.897
},
{
"power": 3000.0,
"efficiency": 0.898
}
],
"discharge stages": [
{
"power": 0.0,
"efficiency": 1
},
{
"power": 50.0,
"efficiency": 0.825
},
{
"power": 100.0,
"efficiency": 0.861
},
{
"power": 150.0,
"efficiency": 0.873
},
{
"power": 300.0,
"efficiency": 0.886
},
{
"power": 600.0,
"efficiency": 0.893
},
{
"power": 1200.0,
"efficiency": 0.896
},
{
"power": 2000.0,
"efficiency": 0.897
},
{
"power": 3000.0,
"efficiency": 0.898
}
],
"dc_to_bat efficiency": 0.95,
"dc_to_bat max power": 3000.0,
"bat_to_dc efficiency": 0.93,
"bat_to_dc max power": 3000.0,
"cycle cost": 0.03,
"solar": [
{
"name": "Dak bijkeuken",
"entity pv switch": "",
"strings": [
{
"tilt": 15,
"orientation": -85,
"capacity": 2.8,
"yield": 0.02
},
{
"tilt": 15,
"orientation": 95,
"capacity": 2.8,
"yield": 0.02
}
]
}
]
}
],
"solar": [
{
"name": "Dak zuid",
"entity pv switch": "",
"tilt": 10,
"orientation": 5,
"capacity": 3.6,
"yield": 0.02
}
],
"electric vehicle": [
],
"machines": [
],
"tibber": {
"api_token": "!secret tibber_api_token"
},
"report": {
"entities grid consumption": [
"sensor.dsmr_reading_electricity_delivered_1",
"sensor.dsmr_reading_electricity_delivered_2"
],
"entities grid production": [
"sensor.dsmr_reading_electricity_returned_1",
"sensor.dsmr_reading_electricity_returned_2"
],
"entities solar production ac": [
"sensor.shelly_em_6eaabc_total_returned_1"
],
"entities solar production dc": [
"sensor.solis_s5_eh1p_pv_today_energy_generation"
],
"entities ev consumption": [
"sensor.shelly_em_6eaabc_total_0"
],
"entities wp consumption": [
],
"entities boiler consumption": [
],
"entities battery consumption": [
"sensor.solis_s5_eh1p_today_battery_discharge_energy"
],
"entities battery production": [
"sensor.solis_s5_eh1p_today_battery_charge_energy"
]
},
"scheduler": {
"active": "true",
"0425": "get_meteo_data",
"1025": "get_meteo_data",
"1625": "get_meteo_data",
"2225": "get_meteo_data",
"1257": "get_day_ahead_prices",
"1356": "get_day_ahead_prices",
"1455": "get_day_ahead_prices",
"1554": "get_day_ahead_prices",
"1655": "get_day_ahead_prices",
"xx00": "calc_optimum",
"xx15": "calc_optimum",
"xx30": "calc_optimum",
"xx45": "calc_optimum",
"2359": "clean_data"
}
}[/code]
Hoi @Deikke er is zo te zien iets niet goed gegaan met je code en quote blokken, zou je dat even willen herstellen? Scheelt de lezers hier wat scrollwerk :P

Acties:
  • 0 Henk 'm!

  • BBuilds
  • Registratie: November 2013
  • Laatst online: 23-10 09:33
Ik heb m'n entiteiten in de report sectie ondertussen goed gezet denk ik. Iemand zin om dat even te dubbelchecken?
code:
1
2
3
4
5
6
7
8
9
10
11
12
  "report": {
    "entities grid consumption": [ "sensor.energy_export_total" ],
    "entities grid production": [ "sensor.energy_import_total"  ],
    "entities solar production ac": [ ],
    "entities solar production dc": [ "sensor.solar_energy_template" ],
    "entities ev consumption" : ["sensor.ev_charger_energy_consumption"],
    "entities wp consumption" : [""],
    "entities boiler consumption": ["sensor.heatpump_boiler_energy_template"],
    "entities battery consumption": ["sensor.home_battery_charged_energy"],
    "entities battery production": ["sensor.home_battery_discharged_energy"],
    "entity co2-intensity": ["sensor.electricity_maps_co2_intensiteit"]
  },
Toch krijg ik in het midden van de dag nog steeds een negatieve baseload waardes.
Is dat omdat er overdag meer opbrengst is geweest dan verbruik? (energie geladen in de batterij en geëxporteerd naar het net)
Of hoort het allemaal zo te zijn?

Ik heb de source entiteiten in HA allemaal nagekeken en deze geven de te verwachte data. Elke sensor is een Utility meter in HA met waardes die oplopen als er verbruik of injectie is.
In het Energy dashboard van HA werkt alles met dezelfde entiteiten goed
Afbeeldingslocatie: https://tweakers.net/i/mgYqeDTp2JpFXJTO605QD0a23eU=/800x/filters:strip_exif()/f/image/84PJccFrPLq7mfZ7FiwWH2Ql.png?f=fotoalbum_large

Baseload waardes na de berekening:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2025-10-16 14:09:15 info: Day Ahead Optimalisering versie: 2025.10.4
2025-10-16 14:09:15 info: Day Ahead Optimalisering gestart op: 16-10-2025 14:09:15
2025-10-16 14:09:15 info: Day Ahead Optimalisatie gestart: 16-10-2025 14:09:15 taak: calc_baseloads
2025-10-16 14:09:15 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-16 14:09:25 info: baseload voor weekdag 0 :
2025-10-16 14:09:25 info: 0.302 0.25 0.298 0.289 0.264 0.262 0.288 0.14 -0.379 -0.928 -1.281 -1.064 -0.509 0.282 1.737 1.233 1.313 0.902 0.359 0.878 0.616 0.632 0.231 -0.243 
2025-10-16 14:09:36 info: baseload voor weekdag 1 :
2025-10-16 14:09:36 info: -0.231 -0.273 -0.297 -0.273 -0.257 -0.247 0.287 0.04 -0.34 -0.767 -0.808 -0.573 0.034 0.144 0.232 0.742 0.569 0.676 0.35 0.706 0.532 0.459 0.311 0.377 
2025-10-16 14:09:46 info: baseload voor weekdag 2 :
2025-10-16 14:09:46 info: 0.237 0.275 0.287 0.227 0.264 0.237 0.277 0.23 -0.09 -0.69 -0.968 -0.894 -0.988 -0.665 0.352 0.16 0.809 0.574 0.477 0.466 0.451 0.39 0.312 0.244 
2025-10-16 14:09:57 info: baseload voor weekdag 3 :
2025-10-16 14:09:57 info: 0.301 0.302 0.301 0.264 0.277 0.276 0.252 0.084 -0.562 -0.816 -1.001 -0.602 -0.64 0.228 0.59 1.214 2.415 1.45 0.871 0.398 0.436 0.464 0.326 0.287 
2025-10-16 14:10:07 info: baseload voor weekdag 4 :
2025-10-16 14:10:07 info: 0.264 0.264 0.275 0.251 0.276 0.29 0.325 0.106 -0.77 -1.192 -1.208 -0.427 -0.455 0.004 0.257 -0.545 0.61 0.54 0.374 0.483 0.497 0.538 0.375 0.322 
2025-10-16 14:10:18 info: baseload voor weekdag 5 :
2025-10-16 14:10:18 info: 0.282 0.298 0.239 0.326 0.339 0.277 0.302 0.346 -0.316 -0.905 -0.746 -0.941 0.181 0.487 1.18 0.507 0.094 0.496 0.36 0.38 0.294 0.351 0.34 0.295 
2025-10-16 14:10:28 info: baseload voor weekdag 6 :
2025-10-16 14:10:28 info: 0.288 0.31 0.286 0.29 0.251 0.238 0.263 0.089 -0.718 -1.158 -1.401 -1.4 -1.032 -0.32 0.392 1.152 1.242 1.176 0.48 0.456 0.475 0.67 0.422 0.401 
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7ffeda8e6e30>
Ziet er toch maar gek uit in het charts gedeelte:
Afbeeldingslocatie: https://tweakers.net/i/S9jy7iIjhoi7qtOPXzfbz9Ge9Yk=/x800/filters:strip_exif()/f/image/Hl9XRfl66mvMLmyPZCq41n2Y.png?f=fotoalbum_large

Edit:
Hier nog even een volledige debug log van de berekening van de baseloads, als iemand daar wat aan heeft:
https://notebin.de/?aaaf2...FTPMKbz3sUWuSB91qGiqmM7LT

[ Voor 3% gewijzigd door BBuilds op 16-10-2025 15:19 ]


Acties:
  • +1 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 19:57

Bravo

Second Best

BBuilds schreef op donderdag 16 oktober 2025 @ 14:20:
Ik heb m'n entiteiten in de report sectie ondertussen goed gezet denk ik. Iemand zin om dat even te dubbelchecken?

code:
1
2
3
4
5
6
7
8
9
10
11
12
  "report": {
    "entities grid consumption": [ "sensor.energy_export_total" ],
    "entities grid production": [ "sensor.energy_import_total"  ],
    "entities solar production ac": [ ],
    "entities solar production dc": [ "sensor.solar_energy_template" ],
    "entities ev consumption" : ["sensor.ev_charger_energy_consumption"],
    "entities wp consumption" : [""],
    "entities boiler consumption": ["sensor.heatpump_boiler_energy_template"],
    "entities battery consumption": ["sensor.home_battery_charged_energy"],
    "entities battery production": ["sensor.home_battery_discharged_energy"],
    "entity co2-intensity": ["sensor.electricity_maps_co2_intensiteit"]
  },
grid consumption -> stroom uit het net. Dus import_total
grid production -> stroom naar het net. Dus export_total
batterij staat wel goed

Edit: Al zou het ook mijn voorkeur hebben om als we het over de netaansluiting hebben te praten over import en export ipv consumption en production. Maar dat mag ergens op de lange lijst van mogelijke verbeteringen.

[ Voor 9% gewijzigd door Bravo op 16-10-2025 17:19 ]

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • +1 Henk 'm!

  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 20:17
BBuilds schreef op donderdag 16 oktober 2025 @ 14:20:
Toch krijg ik in het midden van de dag nog steeds een negatieve baseload waardes.
Is dat omdat er overdag meer opbrengst is geweest dan verbruik? (energie geladen in de batterij en geëxporteerd naar het net)
Of hoort het allemaal zo te zijn?
Bij mij is/was dat omdat de werkelijke opbrangst van de zonnestroom-omvormers afwijkt van de gerapporteerde. Hoe meer zon hoe negatiever mijn baseload. Als jouw baseload ook een relatie heeft met de zonnestraling...

We gaan er allemaal maar vanuit dat de sensoren waar we mee meten accuraat zijn, maar dat zijn ze bepaald niet. Veel van het slimme-stekker, shelly, zonnestroom-omvormer, etc. spul zit er makkelijk 5-10% naast. Het ergste is een Shelly 1PM; die rapporteert 2600W als er amper 2000 doorheen gaat. :|

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
DaBit schreef op donderdag 16 oktober 2025 @ 18:09:
[...]


Bij mij is/was dat omdat de werkelijke opbrangst van de zonnestroom-omvormers afwijkt van de gerapporteerde. Hoe meer zon hoe negatiever mijn baseload. Als jouw baseload ook een relatie heeft met de zonnestraling...

We gaan er allemaal maar vanuit dat de sensoren waar we mee meten accuraat zijn, maar dat zijn ze bepaald niet. Veel van het slimme-stekker, shelly, zonnestroom-omvormer, etc. spul zit er makkelijk 5-10% naast. Het ergste is een Shelly 1PM; die rapporteert 2600W als er amper 2000 doorheen gaat. :|
@BBuilds waar ik tegen aanliep is dat niet alle sensoren met elkaar in sync lopen met hun rapportage van vermogen en energieverbruik. Als er maar één is die een paar minuten na ijlt (bij mij de laadpaal) en dat gaat net over de uurgrens heen, dan is de rapportage op uur niveau uit balans. En daarmee ook de baseload berekening.

Acties:
  • 0 Henk 'm!

  • Voogel
  • Registratie: April 2016
  • Laatst online: 23-10 09:44
Ik blijf timeout meldingen (en forced restart van DAO) houden bij de baseload calculatie op een HA Green, 7 dagen gaat prima maar zodra ik meer doe gaat het mis. CPU en memory pieken niet opvallend en full debug logging laat ook niks zien…. Iemand nog een suggestie?

4x SF165 & 3x SF170 op huisje uit 1896


Acties:
  • +1 Henk 'm!

  • BBuilds
  • Registratie: November 2013
  • Laatst online: 23-10 09:33
@Bravo Bedankt voor de hulp. Ik begrijp de logica achter de naamgeving * production/consumption nog steeds niet 100%, maar door jouw hulp staat het nu goed geconfigureerd, waarvoor dank.

Ik heb ondertussen ook de calc_baseload functie in orde gekregen door mijn solar productie bij entities solar production ac te plaatsen ipv bij entities solar production dc (trial and error), ookal heb ik een hybride solar omvormer met dc gekoppelde batterij.
Heb ik de config daarvan verkeerd begrepen? Welk soort solar moet er dan bij Solar DC geconfigureerd worden?

Als ik m'n solar bij entities solar production dc vermeld krijg ik overdag allemaal negatieve waarden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2025-10-16 21:11:26 info: Day Ahead Optimalisering versie: 2025.10.4
2025-10-16 21:11:26 info: Day Ahead Optimalisering gestart op: 16-10-2025 21:11:26
2025-10-16 21:11:26 info: Day Ahead Optimalisatie gestart: 16-10-2025 21:11:26 taak: calc_baseloads
2025-10-16 21:11:26 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-16 21:11:36 info: baseload voor weekdag 0 :
2025-10-16 21:11:36 info: 0.347 0.297 0.347 0.335 0.309 0.309 0.335 0.184 -0.202 -0.855 -0.999 -1.269 -1.756 -2.742 -2.449 -1.991 -2.022 -1.62 -0.166 0.976 0.697 0.771 0.641 0.635 
2025-10-16 21:11:46 info: baseload voor weekdag 1 :
2025-10-16 21:11:46 info: 0.646 0.609 0.585 0.61 0.621 0.592 0.334 0.083 -0.228 -0.616 -0.873 -1.376 -1.643 -1.975 -2.257 -1.966 -1.916 -1.179 -0.093 0.711 0.659 0.584 0.372 0.422 
2025-10-16 21:11:56 info: baseload voor weekdag 2 :
2025-10-16 21:11:56 info: 0.285 0.322 0.335 0.272 0.31 0.285 0.322 0.284 -0.017 -0.551 -0.997 -1.237 -1.558 -1.641 -1.908 -1.678 -1.556 -0.501 0.012 0.422 0.497 0.434 0.359 0.384 
2025-10-16 21:12:07 info: baseload voor weekdag 3 :
2025-10-16 21:12:07 info: 0.347 0.347 0.347 0.31 0.322 0.322 0.297 0.132 -0.255 -0.789 -1.161 -1.351 -1.482 -1.427 -2.04 -2.14 -2.518 -1.265 -0.404 0.358 0.485 0.572 0.447 0.335 
2025-10-16 21:12:17 info: baseload voor weekdag 4 :
2025-10-16 21:12:17 info: 0.31 0.31 0.322 0.297 0.322 0.334 0.372 0.158 -0.34 -0.688 -1.075 -1.348 -1.661 -2.18 -2.053 -1.39 -2.306 -1.48 0.083 0.572 0.572 0.584 0.497 0.697 
2025-10-16 21:12:27 info: baseload voor weekdag 5 :
2025-10-16 21:12:27 info: 0.809 0.634 0.547 0.634 0.447 0.322 0.347 0.434 -0.117 -0.473 -1.015 -1.704 -2.136 -2.499 -2.901 -2.215 -1.878 -1.672 -0.275 0.455 0.359 0.397 0.384 0.659 
2025-10-16 21:12:37 info: baseload voor weekdag 6 :
2025-10-16 21:12:37 info: 0.659 0.684 0.409 0.334 0.297 0.285 0.31 0.134 -0.235 -0.866 -1.248 -1.303 -1.823 -2.48 -2.677 -2.911 -2.603 -1.612 -0.304 0.492 0.584 0.872 0.622 0.471 
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7ffee3cd6e30>


Als ik dezelfde entiteit bij entities solar production ac vermeld in de config komen er wel allemaal geloofwaardige positieve waardes

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2025-10-16 21:22:10 info: Day Ahead Optimalisering versie: 2025.10.4
2025-10-16 21:22:10 info: Day Ahead Optimalisering gestart op: 16-10-2025 21:22:10
2025-10-16 21:22:10 info: Day Ahead Optimalisatie gestart: 16-10-2025 21:22:10 taak: calc_baseloads
2025-10-16 21:22:10 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-16 21:22:21 info: baseload voor weekdag 0 :
2025-10-16 21:22:21 info: 0.347 0.297 0.347 0.335 0.309 0.309 0.335 0.26 0.385 0.745 1.126 1.393 1.081 1.145 1.339 1.347 1.09 1.13 0.896 1.101 0.697 0.771 0.641 0.635 
2025-10-16 21:22:31 info: baseload voor weekdag 1 :
2025-10-16 21:22:31 info: 0.646 0.609 0.585 0.61 0.621 0.592 0.334 0.295 0.397 0.796 0.764 0.799 0.932 1.3 1.455 1.109 0.572 0.896 0.582 0.861 0.671 0.584 0.372 0.422 
2025-10-16 21:22:41 info: baseload voor weekdag 2 :
2025-10-16 21:22:41 info: 0.285 0.322 0.335 0.272 0.31 0.285 0.322 0.372 0.258 0.399 0.628 0.775 1.067 1.296 0.867 0.935 0.832 0.724 0.575 0.596 0.522 0.434 0.359 0.384 
2025-10-16 21:22:52 info: baseload voor weekdag 3 :
2025-10-16 21:22:52 info: 0.347 0.347 0.347 0.31 0.322 0.322 0.297 0.283 0.533 0.611 0.989 1.186 1.68 1.648 1.072 0.622 0.52 0.798 0.858 0.571 0.498 0.572 0.447 0.335 
2025-10-16 21:23:02 info: baseload voor weekdag 4 :
2025-10-16 21:23:02 info: 0.31 0.31 0.322 0.297 0.322 0.334 0.372 0.371 0.685 0.987 1.162 1.19 1.176 1.244 1.135 1.547 1.169 0.995 1.07 0.797 0.61 0.584 0.497 0.697 
2025-10-16 21:23:12 info: baseload voor weekdag 5 :
2025-10-16 21:23:12 info: 0.809 0.634 0.547 0.634 0.447 0.322 0.347 0.534 0.708 1.114 0.835 0.772 0.764 0.576 0.661 0.985 0.959 0.74 0.775 0.58 0.384 0.397 0.384 0.659 
2025-10-16 21:23:22 info: baseload voor weekdag 6 :
2025-10-16 21:23:22 info: 0.659 0.684 0.409 0.334 0.297 0.285 0.31 0.284 0.653 0.972 1.152 1.385 1.289 1.307 1.398 0.951 0.822 0.825 0.708 0.567 0.597 0.872 0.622 0.471 
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fff3c7f6e30>


Ziet er veel beter uit zo! d:)b
Afbeeldingslocatie: https://tweakers.net/i/KDXgLVn7d018rME8FM-Zi_gnOcI=/x800/filters:strip_exif()/f/image/JZFKA8mhd9t3brX7D7LIjCJG.png?f=fotoalbum_large

Acties:
  • +2 Henk 'm!

  • balk
  • Registratie: Januari 2000
  • Laatst online: 05:37
@KC27 is het een idee om enkele veel voorkomende fouten af te vangen met een try/except? En dan de gebruiker een keurige notification voorschotelen? Ik heb nu deze fout (in de test versie, dus niet erg), en ik vermoed dat het komt door gebrek aan meteo en prijs data. Over het algemeen gaat het goed maar laatst was er geen prijs data op tijd en draaide DAO de soep in. Ik moest toen handmatig de prijzen ophalen. Met een goede foutmelding, of zelfs specifieke fout code zou je de recovery kunnen automatiseren. Idee?
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
2025-10-16 22:44:47 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
  File "/root/dao/prog/da_base.py", line 622, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 552, in calc_optimum_met_debug
    dacalc.calc_optimum()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/day_ahead.py", line 93, in calc_optimum
    price_data = report.get_price_data(
        dt.datetime.fromtimestamp(start_hour), end=None, interval=self.interval
    )
  File "/root/dao/prog/da_report.py", line 2847, in get_price_data
    end = datetime.datetime.strptime(df_da["time"].iloc[-1], "%Y-%m-%d %H:%M")
                                     ~~~~~~~~~~~~~~~~~~^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1192, in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1753, in _getitem_axis
    self._validate_integer(key, axis)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1686, in _validate_integer
    raise IndexError("single positional indexer is out-of-bounds")
IndexError: single positional indexer is out-of-bounds
2025-10-16 22:44:47 debug: Starting new HTTP connection (1): 192.168.1.7:8123
2025-10-16 22:44:47 debug: http://192.168.1.7:8123 "POST /api/services/input_text/set_value HTTP/1.1" 200 334
debug:root:hass/api/config: {"allowlist_external_dirs":["/media","/config/www"],"allowlist_external_urls":[],"components":["api","history","shell_command","samsungtv_smart","group.notify","unifi.device_tracker","logbook","spook.number","tuya.siren","websocket_api","update","generic_thermostat.climate","lock","cloud","spook.select","energy","weather","spotifyplus.media_player","remote","unifi.image","google_generative_ai_conversation.conversation","homeassistant","ssdp","tado","hassio","zwave_js.sensor","spook.button","switch_as_x","tuya.switch","mqtt.switch","kleenex_pollenradar","google_generative_ai_conversation.tts","sun.binary_sensor","energy.sensor","mqtt","solaredgeoptimizers","utility_meter.sensor","mqtt.number","timer","tuya.climate","workday.calendar","input_boolean","unifi","tibber.sensor","bluetooth_adapters","zwave_js.event","group.light","derivative","nederlandse_spoorwegen.sensor","mqtt.sensor","homekit_controller.climate","template","openweathermap.weather","system_health","tibber","ical.sensor","samsungtv_smart.media_player","solaredge_modbus.select","onboarding","ffmpeg","wake_on_lan.switch","diagnostics","hassio.update","group","buienradar.camera","nederlandse_spoorwegen","mobile_app","backup.sensor","systemmonitor.sensor","homekit_controller","statistics","rest.sensor","binary_sensor","tuya.sensor","local_todo.todo","esphome.media_player","file_upload","cloud.stt","command_line","sessy","statistics.sensor","assist_pipeline","threshold","version","rest","hassio.sensor","mobile_app.notify","tado.sensor","zwave_js.siren","dsmr_reader.sensor","zwave_js.fan","input_button","switch_as_x.light","smart_thermostat.climate","localtuya.number","cloud.binary_sensor","unifi.update","esphome.button","proxmoxve","samsungtv_smart.remote","mqtt.select","workday","sql","adguard.switch","zwave_js.button","button","template.select","mqtt.text","unifi.sensor","todo","backup.event","integration","kleenex_pollenradar.sensor","tado.water_heater","tuya.select","cast.media_player","hacs.switch","blueprint","sessy.binary_sensor","google_generative_ai_conversation","unifi.switch","spotifyplus","repairs","solaredge_modbus","esphome.update","hassio.switch","backup","climate","conversation","spook.event","afvalwijzer","utility_meter","proxmoxve.binary_sensor","homekit_controller.select","http","ping.sensor","zwave_js","bluetooth","systemmonitor","mqtt.light","mqtt.event","esphome.sensor","application_credentials","tuya.event","input_number","sessy.update","stt","github","openweathermap","tado.switch","local_todo","spook.time","tuya.valve","homeassistant.scene","frank_energie.sensor","cloud.tts","google_generative_ai_conversation.ai_task","zwave_js.cover","switch","spook.binary_sensor","tuya.vacuum","mqtt.binary_sensor","afvalwijzer.sensor","tuya.humidifier","system_log","ical.calendar","watchman","esphome.camera","wake_on_lan","utility_meter.select","mqtt.climate","auto_backup.binary_sensor","config","mobile_app.device_tracker","rest_command","mqtt.fan","trace","esphome.light","tuya.cover","zwave_js.number","tado.device_tracker","template.binary_sensor","tuya.alarm_control_panel","version.sensor","buienalarm.sensor","alarm_control_panel","esphome","tod.binary_sensor","tuya.scene","workday.binary_sensor","google_generative_ai_conversation.stt","tibber.notify","hacs.update","sessy.switch","sun.sensor","watchman.sensor","mobile_app.binary_sensor","zwave_js.binary_sensor","frontend","filter.sensor","media_player","intent","openweathermap.sensor","image","mobile_app.sensor","esphome.number","sessy.sensor","version.binary_sensor","history_stats.sensor","pvoutput","mpd","frank_energie","universal.media_player","media_source","tag","sql.sensor","vacuum","samsungtv","tado.climate","buienradar","ical","cast","person","command_line.sensor","min_max","homekit_controller.sensor","schedule","buienradar.weather","localtuya.sensor","sessy.button","hacs","adguard.sensor","ping.device_tracker","recorder","template.switch","spook.switch","event","spotify","zwave_js.climate","number","tuya.fan","tuya.button","device_tracker","derivative.sensor","dsmr_reader","search","ping.binary_sensor","integration.sensor","zwave_js.light","solaredgeoptimizers.sensor","nodered","scene","wled","entsoe","usb","light","energy_meter.sensor","solaredge_modbus.number","plant","zone","zwave_js.update","ping","humidifier","webhook","scheduler.switch","spook","select","samsungtv.media_player","input_datetime","homekit_controller.button","tuya.number","network","sessy.number","counter","localtuya.switch","input_text","camera","tuya.camera","proxmoxve.button","forecast_solar.sensor","localtuya","adguard","lovelace","tuya","auto_backup","spotify.media_player","template.sensor","sessy.select","notify","valve","text","tado.binary_sensor","hassio.binary_sensor","automation","zwave_js.switch","unifi.button","esphome.switch","my","pvoutput.sensor","energy_meter","esphome.binary_sensor","threshold.binary_sensor","min_max.sensor","buienradar.sensor","ai_task","script","zwave_js.lock","systemmonitor.binary_sensor","zwave_js.select","water_heater","esphome.select","image_upload","solaredge_modbus.sensor","auth","entsoe.sensor","device_automation","toyota","tuya.binary_sensor","forecast_solar","logger","spook.sensor","local_calendar.calendar","persistent_notification","proxmoxve.sensor","sessy.time","scheduler","calendar","siren","mpd.media_player","zwave_js.humidifier","input_select","hardware","tuya.light","zeroconf","cover","github.sensor","esphome.event","nodered.sensor","wake_word","frank_energie.button","buienalarm","auto_backup.button","samsungtv.remote","co2signal.sensor","time","sun","fan","tod","sensor","analytics","co2signal","tts","time_date.sensor","local_calendar","auto_backup.sensor","esphome.cover"],"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.10.2","whitelist_external_dirs":["/media","/config/www"]}
debug:root:Dialect: postgresql, database: day_ahead_test, server: 192.168.1.111
debug:root:db_url: postgresql+psycopg2://day_ahead:G2DpVx66hfM2zK@192.168.1.111:5432/day_ahead_test
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 436
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 322
debug:root:Connection status Pool size: 5  Connections in pool: 0 Current Overflow: -5 Current Checked out connections: 0 at line 210 in /root/dao/prog/da_base.py
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 3967, in <module>
    main()
    ~~~~^^
  File "/root/dao/webserver/../prog/day_ahead.py", line 3941, in main
    da_calc.run_task_function("calc_optimum_met_debug")
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/prog/da_base.py", line 622, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 552, in calc_optimum_met_debug
    dacalc.calc_optimum()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/day_ahead.py", line 93, in calc_optimum
    price_data = report.get_price_data(
        dt.datetime.fromtimestamp(start_hour), end=None, interval=self.interval
    )
  File "/root/dao/prog/da_report.py", line 2847, in get_price_data
    end = datetime.datetime.strptime(df_da["time"].iloc[-1], "%Y-%m-%d %H:%M")
                                     ~~~~~~~~~~~~~~~~~~^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1192, in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1753, in _getitem_axis
    self._validate_integer(key, axis)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1686, in _validate_integer
    raise IndexError("single positional indexer is out-of-bounds")
IndexError: single positional indexer is out-of-bounds

Acties:
  • +2 Henk 'm!

  • balk
  • Registratie: Januari 2000
  • Laatst online: 05:37
Ander idee: Is het mogelijk te maken om de baseload tijdelijk te overschrijven? Stel ik weet 's middags dat er 's avonds pizzas de oven in gaan. Dan kan ik dat in het oor van DAO fluisteren en houdt ie er rekening mee.

Acties:
  • +3 Henk 'm!
Vanavond zijn de volgende (identieke) versies gepubliceerd:
- productie versie 2025.10.5
- test versie 2025.10.5.rc6
Dit staat in de changelog van de productieversie:
Changed:
  • implemented **flex setting** of settings:
    • direct via your settings
    • indirect from HA via an entity in your settings
    More info in DOCS.md
  • Updated several used pyhton-modules (cryptography, numpy)
  • Added "max gap" (flex setting), see DOCS.md
  • Added logging "Rekentijd" in sec
  • made degree_days_factor, boiler_setpoint, boiler_hysterese and strategy flex setting
  • support voor machine consumptions sensors
  • added meteo parameter: wind-snelheid
Fixed:
  • Fixed error when planning wp-hours with 15min interval (reported by TomKuipers1983)
  • Fixed error when calculating "stop invertor" with 15min-interval
  • corrected output of hp with less than 8 stages
  • fixed error second graph
  • fixed error planning ev last hour with 15min prices (reported by @dabit)
  • fixed error when boiler is heated by heatpump

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


Acties:
  • +1 Henk 'm!
balk schreef op donderdag 16 oktober 2025 @ 22:59:
@KC27 is het een idee om enkele veel voorkomende fouten af te vangen met een try/except? En dan de gebruiker een keurige notification voorschotelen? Ik heb nu deze fout (in de test versie, dus niet erg), en ik vermoed dat het komt door gebrek aan meteo en prijs data. Over het algemeen gaat het goed maar laatst was er geen prijs data op tijd en draaide DAO de soep in. Ik moest toen handmatig de prijzen ophalen. Met een goede foutmelding, of zelfs specifieke fout code zou je de recovery kunnen automatiseren. Idee?


[...]
Dank je wel voor het meedenken.
Wordt gemaakt in de volgende (test)versie.

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


Acties:
  • 0 Henk 'm!

  • xarow
  • Registratie: Februari 2011
  • Laatst online: 22:56
xarow schreef op woensdag 15 oktober 2025 @ 21:34:
[...]


Mooie addon en interessant om toe te passen. Ik ben momenteel aan het kijken hoe ik de warmtepomp kan regelen en wil dit doen op basis van het verschuiven van de stooklijn. Bovenstaand gaf je aan dat er nog een fout in zat, waardoor de stages en graaddagen factor ook ingesteld moesten worden bij de verplaatsing van de stooklijn.

Het lijkt er op dat die fout er nog in zit, of is dit bewust benodigd?
@KC27 Ik denk dat er over mijn vraag is heen gelezen. Is het een bug of een feature dat de stages ingesteld dienen te worden indien je de warmtepomp wilt regelen op basis van de stooklijn?

Acties:
  • 0 Henk 'm!
xarow schreef op vrijdag 17 oktober 2025 @ 14:15:
[...]


@KC27 Ik denk dat er over mijn vraag is heen gelezen. Is het een bug of een feature dat de stages ingesteld dienen te worden indien je de warmtepomp wilt regelen op basis van de stooklijn?
Ja, sorry. Te druk met het project (en andere dingen) en dan schiet er soms een reactie bij in.
Nou het is een feature,
Ik werk zelf ook met stooklijnverschuiving en de berekening van die verschuiving gaat helemaal buiten de optimaliseringsberekening om. Het liefst zou ik de inzet van mijn warmtepomp berekenen met behulp van de stages en dan inzetten op de goedkoopste uren en uitzetten op de dure uren. Maar helaas kan ik het elektrisch vermogen van mijn warmtepomp niet rechtstreeks aansturen.
De berekening van de inzet van mijn warmtepomp maakt DAO toch voor mij en het blijkt dat dit goed overeenkomt met het uiteindelijke resultaat van de stooklijnverschuiving.
Als die stages voor jou niet interessant zijn kun je eventueel volstaan met twee stages, bijvoorbeeld:
code:
1
2
3
4
"stages": [
  { "power": 0, "cop": 3.0},
  { "power": 1500, "cop" : 3.0}
]

Als je het allemaal echt heel storend vindt kan ik zien of ik ze bij de "adjustment: heating curve" optioneel kan maken.

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


Acties:
  • +1 Henk 'm!

  • f.welvering
  • Registratie: Oktober 2009
  • Laatst online: 20:37
KC27 schreef op vrijdag 17 oktober 2025 @ 23:18:
[...]

Ja, sorry. Te druk met het project (en andere dingen) en dan schiet er soms een reactie bij in.
Nou het is een feature,
Ik werk zelf ook met stooklijnverschuiving en de berekening van die verschuiving gaat helemaal buiten de optimaliseringsberekening om. Het liefst zou ik de inzet van mijn warmtepomp berekenen met behulp van de stages en dan inzetten op de goedkoopste uren en uitzetten op de dure uren. Maar helaas kan ik het elektrisch vermogen van mijn warmtepomp niet rechtstreeks aansturen.
De berekening van de inzet van mijn warmtepomp maakt DAO toch voor mij en het blijkt dat dit goed overeenkomt met het uiteindelijke resultaat van de stooklijnverschuiving.
Als die stages voor jou niet interessant zijn kun je eventueel volstaan met twee stages, bijvoorbeeld:
code:
1
2
3
4
"stages": [
  { "power": 0, "cop": 3.0},
  { "power": 1500, "cop" : 3.0}
]

Als je het allemaal echt heel storend vindt kan ik zien of ik ze bij de "adjustment: heating curve" optioneel kan maken.
Hoe pas jij die strooklijn verschuiving toe?
Pas je de configuratie van je wp aan of stuur je de Thermostaat / woonkamer temperatuur aan?

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


Acties:
  • 0 Henk 'm!

  • Impossibl3
  • Registratie: November 2012
  • Laatst online: 23:19
f.welvering schreef op zaterdag 18 oktober 2025 @ 09:09:
[...]


Hoe pas jij die strooklijn verschuiving toe?
Pas je de configuratie van je wp aan of stuur je de Thermostaat / woonkamer temperatuur aan?
Ik ga dit doen door mijn thermostaat te verhogen/verlagen. Die stuurt vervolgens de wp aan met een aan/uit signaal waar weer de eigen stooklijn in zit (die ik niet kan aanpassen)

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


Acties:
  • 0 Henk 'm!

  • xarow
  • Registratie: Februari 2011
  • Laatst online: 22:56
KC27 schreef op vrijdag 17 oktober 2025 @ 23:18:
[...]

Ja, sorry. Te druk met het project (en andere dingen) en dan schiet er soms een reactie bij in.
Nou het is een feature,
Ik werk zelf ook met stooklijnverschuiving en de berekening van die verschuiving gaat helemaal buiten de optimaliseringsberekening om. Het liefst zou ik de inzet van mijn warmtepomp berekenen met behulp van de stages en dan inzetten op de goedkoopste uren en uitzetten op de dure uren. Maar helaas kan ik het elektrisch vermogen van mijn warmtepomp niet rechtstreeks aansturen.
De berekening van de inzet van mijn warmtepomp maakt DAO toch voor mij en het blijkt dat dit goed overeenkomt met het uiteindelijke resultaat van de stooklijnverschuiving.
Als die stages voor jou niet interessant zijn kun je eventueel volstaan met twee stages, bijvoorbeeld:
code:
1
2
3
4
"stages": [
  { "power": 0, "cop": 3.0},
  { "power": 1500, "cop" : 3.0}
]

Als je het allemaal echt heel storend vindt kan ik zien of ik ze bij de "adjustment: heating curve" optioneel kan maken.
Duidelijk, dan ga ik even kijken hoe ik die stages ga invullen. Bedankt!

Acties:
  • +1 Henk 'm!
f.welvering schreef op zaterdag 18 oktober 2025 @ 09:09:
[...]


Hoe pas jij die stooklijn verschuiving toe?
Pas je de configuratie van je wp aan of stuur je de Thermostaat / woonkamer temperatuur aan?
Mijn wp heeft de mogelijkheid om de stooklijn parallel te verschuiven. Dat is een instelling op wp zelf maar dat kan ook op afstand. Dat doe ik met DAO via de Home Assistant custom integratie.

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


Acties:
  • +1 Henk 'm!

  • diamanten
  • Registratie: Juli 2024
  • Laatst online: 23-10 16:30
Na upgrade naar 2025.10.5, ik krijg nu:
code:
1
2
changed to 2025-10-19 08:30:00 waarschuwing: Er is te weinig tijd om tot 80.0% te laden triggered by action input_text: Set
08:30:00 - 13 minutes ago - Supervisor

terwijl de auto niet ingeplugd is:
code:
1
2025-10-19 08:30:23 info: Kia Niro EV is niet thuis of niet ingeplugd

Klopt dit?

Acties:
  • +1 Henk 'm!
diamanten schreef op zondag 19 oktober 2025 @ 08:46:
Na upgrade naar 2025.10.5, ik krijg nu:
code:
1
2
changed to 2025-10-19 08:30:00 waarschuwing: Er is te weinig tijd om tot 80.0% te laden triggered by action input_text: Set
08:30:00 - 13 minutes ago - Supervisor

terwijl de auto niet ingeplugd is:
code:
1
2025-10-19 08:30:23 info: Kia Niro EV is niet thuis of niet ingeplugd

Klopt dit?
Dat is inderdaad een foutje.
Ik zal het in de volgende versie aanpassen door daar extra check's op te zetten.
Dank voor het melden.

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


Acties:
  • +1 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
Ik heb van de week deze integratie ontdekt en na wat uurtjes puzzelen met de configuratie heb ik de zaak nu draaiend. Heel erg bedankt voor het bouwen van deze integratie, echt super!

Ik heb wel een vraagje, het viel me op dat ik qua hem meetwaardes alleen mijn accu percentage sensor hoef in te vullen, verder geen opbrengst/verbruik of zonnepaneel sensors. Betekent dit dat jullie een aantal zaken zelf al standaard kunnen ophalen? Ik vermoed via de settings van het energy dashboard?

Acties:
  • +1 Henk 'm!

  • Impossibl3
  • Registratie: November 2012
  • Laatst online: 23:19
CopyCatz schreef op zondag 19 oktober 2025 @ 16:17:
Ik heb van de week deze integratie ontdekt en na wat uurtjes puzzelen met de configuratie heb ik de zaak nu draaiend. Heel erg bedankt voor het bouwen van deze integratie, echt super!

Ik heb wel een vraagje, het viel me op dat ik qua hem meetwaardes alleen mijn accu percentage sensor hoef in te vullen, verder geen opbrengst/verbruik of zonnepaneel sensors. Betekent dit dat jullie een aantal zaken zelf al standaard kunnen ophalen? Ik vermoed via de settings van het energy dashboard?
Nee onder aan de configuratie uit het voorbeeld staan wat sensoren zoals grid, pv etc. Daar vul je de kwh meters in.

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


Acties:
  • 0 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
Impossibl3 schreef op zondag 19 oktober 2025 @ 16:57:
[...]


Nee onder aan de configuratie uit het voorbeeld staan wat sensoren zoals grid, pv etc. Daar vul je de kwh meters in.
Doh! helemaal gemist.

[ Voor 22% gewijzigd door CopyCatz op 19-10-2025 18:12 ]


Acties:
  • 0 Henk 'm!

  • f.welvering
  • Registratie: Oktober 2009
  • Laatst online: 20:37
KC27 schreef op zaterdag 18 oktober 2025 @ 19:26:
[...]

Mijn wp heeft de mogelijkheid om de stooklijn parallel te verschuiven. Dat is een instelling op wp zelf maar dat kan ook op afstand. Dat doe ik met DAO via de Home Assistant custom integratie.
Ik zat even naar jouw eerdere post te kijken met een screenshot van de HA kaart.
Hoewel mijn aansturing anders is zou ik mijn thermostaat dan + of - het aantal graden moeten doen op basis van het advies van DAO? Of gebruik ik juist de ON/OFF. Ik ben de weg wat kwijt zoals je wellicht merkt.

Ik krijg ondertussen deze grafiek vanuit DAO richting HA, zowel de stooklijn verschuiving als de WP ON/OFF.

Afbeeldingslocatie: https://tweakers.net/i/B7MPnIGazvKBw-LSZPhd6qPBU68=/800x/filters:strip_exif()/f/image/AqiIxzjCKzMU75A8qJRnxA5T.png?f=fotoalbum_large

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


Acties:
  • 0 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
Is het ook mogelijk om een aantal dagen historie te wissen? ik heb een fout gemaakt in de config, per ongeluk bij entities grid consumption twee keer dezelfde sensor ingevuld waardoor er nu dubbel geteld is. Als ik dan later de baseload wil laten uitrekenen heb ik liever de incorrecte data eerst verwijderd.

Acties:
  • 0 Henk 'm!

  • itavero
  • Registratie: Oktober 2004
  • Nu online
Goede vraag, CopyCatz! Dat vroeg ik mij ook nog af. Een van mijn entiteiten had de verkeerde eenheid, waardoor die er een factor 1000 naast zat. 😅

Ik overweeg binnenkort over te stappen van Frank Energie naar een andere energieleverancier.
Momenteel twijfel ik tussen Tibber en Zonneplan.

Zonneplan biedt een "zonnebonus": 10% extra vergoeding voor teruglevering tussen zonsopkomst en zonsondergang.
Dit is momenteel nog niet te modelleren in DAO, toch?

De vergoedingen tussen beide leveranciers schelen elkaar niet zo veel. Overal is Zonneplan in mijn situatie waarschijnlijk iets goedkoper, maar Tibber heeft weer als voordeel dat een van onze EVs gekoppeld kan worden voor de "Grid Rewards".

Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
@KC27 Volgens mij gaat er hier iets mis. Het lijkt erop dat de DC PV naar de accu zou moeten, gezien die is verdwenen in de geoptimaliseerde grafiek. Maar de SOC is een vlakke lijn.

Afbeeldingslocatie: https://tweakers.net/i/KqNeM4XrO1r9IonI-woro8dMZLs=/x800/filters:strip_exif()/f/image/z9MxK1SHZvSvb2eKfWIfQLa4.png?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22:03
@itavero Tibber heeft kwartierprijzen, Zonneplan niet, misschien ook nog iets om rekening mee te houden?

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • sMoKeFiSh
  • Registratie: Februari 2003
  • Laatst online: 23-10 15:02
Ik zie de laatste paar dagen ook de volgende errors staan onderin m'n log:

<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f8e614b5120>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f8e61c87010>

Had iemand toevallig al gevonden hoe dit te verhelpen is zonder over te schakelen naar MySQL?

Full Electric | 2x Deye 12KSG04LP3 met 1.680Ah LFP 51,2V (4x Seplos Mason 280, 2x Seplos vertical 280) | 23,3 kWp PV


Acties:
  • +1 Henk 'm!

  • Dogooder
  • Registratie: April 2004
  • Laatst online: 00:12

Dogooder

dus...

Dat komt volgens mij door de upgrade van python 3.12 naar 3.13. Versie 3.13 geeft hier een warning over, https://docs.python.org/3/whatsnew/3.13.html#sqlite3, waar 3.12 het gewoon negeerde.

Snelle scan leert dat db_manager.py bij de get x functies geen connections.close() heeft. Daar zou het theoretisch aan kunnen liggen. Ik heb het niet getest.

[ Voor 28% gewijzigd door Dogooder op 20-10-2025 15:57 ]


Acties:
  • 0 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
Ik snap niet helemaal hoe ik de reports moet instellen. Ik heb nu dit:

"report": {
"entities grid consumption": [
"sensor.shellypro3em_total_active_energy"
],
"entities grid production": [
"sensor.shellypro3em_total_active_returned_energy"
],
"entities solar production ac": [
"sensor.kwh_meter_total_energy_export"
],

Ik zie in het report bv verbruik, productie, netto:
15:00 0.185 0.342 -0.157

Het lijkt erop dat verbruik al verbruik minus opwek is (shellypro3em_total_active_returned_energy is alleen wat retour het net op gaat), en nu wordt nog een keer daar de productie van afgetrokken. Hoe los ik dit slim op? Of maak ik een denkfout?

Acties:
  • 0 Henk 'm!
Dogooder schreef op maandag 20 oktober 2025 @ 15:50:
Dat komt volgens mij door de upgrade van python 3.12 naar 3.13. Versie 3.13 geeft hier een warning over, https://docs.python.org/3/whatsnew/3.13.html#sqlite3, waar 3.12 het gewoon negeerde.

Snelle scan leert dat db_manager.py bij de get x functies geen connections.close() heeft. Daar zou het theoretisch aan kunnen liggen. Ik heb het niet getest.
Ik had er al naar gekeken, maar alle connections worden geopend met een with-context en die zouden door sql-alchemy gesloten moeten worden.
Ik zal er nog eens naar kijken.
Bedankt voor de tip!

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


Acties:
  • 0 Henk 'm!
CopyCatz schreef op maandag 20 oktober 2025 @ 12:01:
Is het ook mogelijk om een aantal dagen historie te wissen? ik heb een fout gemaakt in de config, per ongeluk bij entities grid consumption twee keer dezelfde sensor ingevuld waardoor er nu dubbel geteld is. Als ik dan later de baseload wil laten uitrekenen heb ik liever de incorrecte data eerst verwijderd.
De historie wordt door DAO niet opgeslagen.
DAO haalt de historie uit de db van Home Assistant.
Als je je sensoren goed zet dan herberekent DAO met die nieuwe setting (als die goed is) de juiste baseloads.
Lukt dat niet met het run-menu (time out) doe het dan met de scheduler, zet eventueel tijdelijk een extra taak in je scheduler en wacht het resultaat af.

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


Acties:
  • +1 Henk 'm!

  • wmc
  • Registratie: November 2012
  • Laatst online: 23-10 18:16

wmc

Ik ben sinds vandaag ook begonnen met DAO, echter ik loop al vrij snel tegen een probleem aan. Ik heb de meteoserver werkend gerekegen, als ook de rapportage van day ahead prijzen. Als ik vervolgens met de default waardes op "Optimaliseringsberekening met debug" druk krijg ik onderstaande fout. Oftewel, ergens wordt door nul gedeeld met de default waardes. Wat doe ik fout?

+++++++++++++++++++++++++++++++++++++++++++++++++
Logging van bewerking "Optimaliseringsberekening met debug":
2025-10-20 19:11:19 info: Day Ahead Optimalisering versie: 2025.10.5
2025-10-20 19:11:19 info: Day Ahead Optimalisering gestart op: 20-10-2025 19:11:19
2025-10-20 19:11:19 info: Day Ahead Optimalisatie gestart: 20-10-2025 19:11:19 taak: calc_optimum_met_debug
2025-10-20 19:11:19 info: Debug = True
2025-10-20 19:11:19 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
File "/root/dao/prog/da_base.py", line 623, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 553, in calc_optimum_met_debug
dacalc.calc_optimum()
~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/day_ahead.py", line 166, in calc_optimum
p_avg = sum(pl) / U # max(pl) #
~~~~~~~~^~~
ZeroDivisionError: division by zero
Traceback (most recent call last):
File "/root/dao/webserver/../prog/day_ahead.py", line 3967, in <module>
main()
~~~~^^
File "/root/dao/webserver/../prog/day_ahead.py", line 3941, in main
da_calc.run_task_function("calc_optimum_met_debug")
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/dao/prog/da_base.py", line 623, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 553, in calc_optimum_met_debug
dacalc.calc_optimum()
~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/day_ahead.py", line 166, in calc_optimum
p_avg = sum(pl) / U # max(pl) #
~~~~~~~~^~~
ZeroDivisionError: division by zero
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f9daa2200>
++++++++++++++++++++++

Acties:
  • +1 Henk 'm!
wmc schreef op maandag 20 oktober 2025 @ 19:17:
Ik ben sinds vandaag ook begonnen met DAO, echter ik loop al vrij snel tegen een probleem aan. Ik heb de meteoserver werkend gerekegen, als ook de rapportage van day ahead prijzen. Als ik vervolgens met de default waardes op "Optimaliseringsberekening met debug" druk krijg ik onderstaande fout. Oftewel, ergens wordt door nul gedeeld met de default waardes. Wat doe ik fout?

+++++++++++++++++++++++++++++++++++++++++++++++++
Logging van bewerking "Optimaliseringsberekening met debug":
2025-10-20 19:11:19 info: Day Ahead Optimalisering versie: 2025.10.5
2025-10-20 19:11:19 info: Day Ahead Optimalisering gestart op: 20-10-2025 19:11:19
2025-10-20 19:11:19 info: Day Ahead Optimalisatie gestart: 20-10-2025 19:11:19 taak: calc_optimum_met_debug
2025-10-20 19:11:19 info: Debug = True
2025-10-20 19:11:19 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
File "/root/dao/prog/da_base.py", line 623, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 553, in calc_optimum_met_debug
dacalc.calc_optimum()
~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/day_ahead.py", line 166, in calc_optimum
p_avg = sum(pl) / U # max(pl) #
~~~~~~~~^~~
ZeroDivisionError: division by zero
Traceback (most recent call last):
File "/root/dao/webserver/../prog/day_ahead.py", line 3967, in <module>
main()
~~~~^^
File "/root/dao/webserver/../prog/day_ahead.py", line 3941, in main
da_calc.run_task_function("calc_optimum_met_debug")
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/dao/prog/da_base.py", line 623, in run_task_function
getattr(self, run_task["function"])()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/da_base.py", line 553, in calc_optimum_met_debug
dacalc.calc_optimum()
~~~~~~~~~~~~~~~~~~~^^
File "/root/dao/prog/day_ahead.py", line 166, in calc_optimum
p_avg = sum(pl) / U # max(pl) #
~~~~~~~~^~~
ZeroDivisionError: division by zero
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f9daa2200>
++++++++++++++++++++++
Heb je de prijzen van vandaag en morgen opgehaald?
Voor vandaag: vul het "prijzen vanaf"-veld in met 2025-10-20 en klik op "prijzen ophalen"
Voor morgen: prijzen vanaf of blanco of 2025-10-21

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


Acties:
  • 0 Henk 'm!
CopyCatz schreef op maandag 20 oktober 2025 @ 16:18:
Ik snap niet helemaal hoe ik de reports moet instellen. Ik heb nu dit:

"report": {
"entities grid consumption": [
"sensor.shellypro3em_total_active_energy"
],
"entities grid production": [
"sensor.shellypro3em_total_active_returned_energy"
],
"entities solar production ac": [
"sensor.kwh_meter_total_energy_export"
],

Ik zie in het report bv verbruik, productie, netto:
15:00 0.185 0.342 -0.157

Het lijkt erop dat verbruik al verbruik minus opwek is (shellypro3em_total_active_returned_energy is alleen wat retour het net op gaat), en nu wordt nog een keer daar de productie van afgetrokken. Hoe los ik dit slim op? Of maak ik een denkfout?
Bij consumption alleen sensoren opgeven die het verbruik vanaf het net naar je meterkast registeren
Bij production alleen sensoren die registeren wat er vanaf je huis terug naar het net gaat.
Die data worden ook apart geregistreerd met je slimme meter. Als je die uitleest via de P1-poort (er zijn diverse integraties voor) en in HA aan sensoren koppelt heb je exact dezelfde data als je energieleverancier.
Als je dat allemaal al hebt en je hebt het energy-dashboard van HA geconfigureerd dan kun je diezelfde sensoren opgeven in DAO.

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


Acties:
  • 0 Henk 'm!
Deikke schreef op maandag 20 oktober 2025 @ 12:21:
@KC27 Volgens mij gaat er hier iets mis. Het lijkt erop dat de DC PV naar de accu zou moeten, gezien die is verdwenen in de geoptimaliseerde grafiek. Maar de SOC is een vlakke lijn.

[Afbeelding]
Er klopt iets niet. Heb je voor mij (liefs in quotes vanwege de lengte):
  • een kopie van je battery-settings
  • een kopie van de logging van de berekening (logging level "info")

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


Acties:
  • +2 Henk 'm!
itavero schreef op maandag 20 oktober 2025 @ 12:19:
Goede vraag, CopyCatz! Dat vroeg ik mij ook nog af. Een van mijn entiteiten had de verkeerde eenheid, waardoor die er een factor 1000 naast zat. 😅

Ik overweeg binnenkort over te stappen van Frank Energie naar een andere energieleverancier.
Momenteel twijfel ik tussen Tibber en Zonneplan.

Zonneplan biedt een "zonnebonus": 10% extra vergoeding voor teruglevering tussen zonsopkomst en zonsondergang.
Dit is momenteel nog niet te modelleren in DAO, toch?

De vergoedingen tussen beide leveranciers schelen elkaar niet zo veel. Overal is Zonneplan in mijn situatie waarschijnlijk iets goedkoper, maar Tibber heeft weer als voordeel dat een van onze EVs gekoppeld kan worden voor de "Grid Rewards".
Zie mijn reactie op @CopyCatz voor de "historie".
Ik ben bezig met de prijs-berekening flexibeler te maken. Je kunt dan daadwerkelijk de gekste formules invullen. Daarmee kunnen onze zuiderburen DAO beter gebruiken, maar ook de zonnebonus van Zonneplan kan dan worden geconfigureerd.
Ook voor gebruikers met een SAP kunnen dan losgaan met de "laagste" inkoopprijs" cq de "hoogste terugleverprijs".

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


Acties:
  • 0 Henk 'm!

  • wmc
  • Registratie: November 2012
  • Laatst online: 23-10 18:16

wmc

KC27 schreef op maandag 20 oktober 2025 @ 19:25:
[...]

Heb je de prijzen van vandaag en morgen opgehaald?
Voor vandaag: vul het "prijzen vanaf"-veld in met 2025-10-20 en klik op "prijzen ophalen"
Voor morgen: prijzen vanaf of blanco of 2025-10-21
Daar ging het blijkbaar fout, ik had vandaag wel, maar morgen niet. Dank voor de snelle hulp!

Acties:
  • 0 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
In de installatie handleiding staat “ In de documentatie verderop zul je nog een methode vinden waarmee je na ca 6 weken gebruik van het programma de baseload door het programma zelf kunt laten berekenenen en dan ook nog verschillend per dag van de week. “

dus ik nam aan dat daarvoor eerst historie moest worden opgebouwd :)

Acties:
  • 0 Henk 'm!

  • DaBit
  • Registratie: Januari 2000
  • Laatst online: 20:17
Schoonheidsfoutje?
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
 2025-10-20 18:00:06 info: Day Ahead Optimalisering versie: 2025.10.5.rc6
2025-10-20 18:00:06 info: Day Ahead Optimalisering gestart op: 20-10-2025 18:00:06
2025-10-20 18:00:06 info: Day Ahead Optimalisatie gestart: 20-10-2025 18:00:06 taak: calc_optimum
..
..
2025-10-20 18:00:07 info: Instellingen voor laden van EV: boiler
2025-10-20 18:00:07 info: Direct laden is uit
2025-10-20 18:00:07 info:  Ampere  Effic. Grid kW Accu kW
2025-10-20 18:00:07 info:    0.00    1.00    0.00    0.00
2025-10-20 18:00:07 info:    4.00    0.93    0.92    0.86
2025-10-20 18:00:07 info:    5.00    0.93    1.15    1.07
2025-10-20 18:00:07 info:    6.00    0.95    1.38    1.31
2025-10-20 18:00:07 info:    7.00    0.97    1.61    1.56
2025-10-20 18:00:07 info:    8.00    0.99    1.84    1.82
2025-10-20 18:00:07 info:    9.00    0.99    2.07    2.05
2025-10-20 18:00:07 info:   10.00    0.99    2.30    2.28
2025-10-20 18:00:07 info: Capaciteit accu: 13.4 kWh
2025-10-20 18:00:07 info: Maximaal laadvermogen: 2.3 kW
2025-10-20 18:00:07 info: Klaar met laden op: 20-10-2025 18:00:00
2025-10-20 18:00:07 info: Huidig laadniveau: 18.5249996185303 %
2025-10-20 18:00:07 info: Gewenst laadniveau:70.0 %
2025-10-20 18:00:07 info: Marge voor het laden: 1 %
2025-10-20 18:00:07 info: Locatie: home
2025-10-20 18:00:07 info: Ingeplugged:False
2025-10-20 18:00:07 waarschuwing: Er is te weinig tijd om tot 70.0% te laden
2025-10-20 18:00:07 info: Bijgesteld gewenst laadniveau:17.5 %
2025-10-20 18:00:07 info: Benodigde netto energie: 0.000 kWh
2025-10-20 18:00:07 info: Tijd nodig om te laden: 0:0 uur
2025-10-20 18:00:07 info: Afgerond naar hele intervallen: 0 kwartier
2025-10-20 18:00:07 info: Stand laden schakelaar: on
2025-10-20 18:00:07 info: Stand aantal ampere laden: 10.0 A
2025-10-20 18:00:07 info: Opladen wordt niet ingepland, omdat werkelijk niveau (18.5%) hoger is of gelijk aan gewenst niveau (17.5% minus de marge 1%), auto is niet ingeplugd, opgegeven tijdstip (2025-10-20 18:00:00) is verouderd.
Ingeplugged:False, maar wel de waarschuwing dat er te weinig tijd is om tot 70.0% te laden. Maar dat hoeft dan ook niet...

[ Voor 6% gewijzigd door DaBit op 20-10-2025 22:19 ]


Acties:
  • +1 Henk 'm!
CopyCatz schreef op maandag 20 oktober 2025 @ 21:33:
In de installatie handleiding staat “ In de documentatie verderop zul je nog een methode vinden waarmee je na ca 6 weken gebruik van het programma de baseload door het programma zelf kunt laten berekenenen en dan ook nog verschillend per dag van de week. “

dus ik nam aan dat daarvoor eerst historie moest worden opgebouwd :)
Ik zal het aanpassen. 6 weken historie in Home Assistant volstaat.
Dank voor je opmerkzaamheid!

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


Acties:
  • 0 Henk 'm!
DaBit schreef op maandag 20 oktober 2025 @ 22:19:
Schoonheidsfoutje?


[...]


Ingeplugged:False, maar wel de waarschuwing dat er te weinig tijd is om tot 70.0% te laden. Maar dat hoeft dan ook niet...
Klopt, was ook al door anderen gesignaleerd.
Volgende versie is dit opgelost!

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


Acties:
  • +2 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op dinsdag 14 oktober 2025 @ 12:50:
[...]

Het kan beide, maar het is wellicht slim om de boel te ontkoppelen met helpers en dan de waarden via een automatisering te actualiseren. Dan kun je de koppeling eenvoudig deactiveren door de automatisering uit te zetten.
Ik vind dit zelf ook het meest ingewikkelde. Ik ben een half jaar geleden met DAO begonnen en heb het nooit echt aan de gang gekregen. Ik krijg vaak errors en dan geef ik het na dagen weer op. Het lijkt me geweldige software maar het is voor mij echt te ingewikkeld.

Ik probeer zoveel mogelijk json voorbeelden uit dit topic te gebruiken van andere gebruikers die een Marstek hebben. Misschien heeft iemand zin om de helpers eens uit te leggen? Dit is voor mij het allerlastigst.

Automations is voor volgende week. Eerst correcte helpers denk ik?

Afbeeldingslocatie: https://tweakers.net/i/F1X-PGD1V2Yn8bwplilIlT_NujA=/800x/filters:strip_exif()/f/image/rH1fAXaAodNw5WXQqhP11GMj.png?f=fotoalbum_large
"entity min soc end opt": "input_number.dao_min_soc_einde_opt", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde
"entity max soc end opt": "input_number.dao_max_soc_einde_opt", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde
"entity set power feedin": "input_number.dao_set_power_feedin", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity set operating mode": "input_select.dao_set_operating_mode", >> Geen idee welke opties hier in moeten?
"entity stop inverter": "input_datetime.dao_stop_marstek", >> Ik heb een date/time helper aangemaakt met deze exacte naam
"entity balance switch": "input_boolean.dao_balance_grid", >> Alleen een switch aangemaakt met deze naam
"entity from battery": "input_number.dao_from_battery", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity from pv": "input_number.dao_marstek_from_pv", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity from ac": "input_number.dao_marstek_from_ac", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity calculated soc": "input_number.dao_marstek_calculated_soc", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde
Deze helpers heb ik aangemaakt op basis van de json van @Mirabis
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
{
  "homeassistant": { },
  "database ha": {
    "engine": "sqlite",
    "database": "home-assistant_v2.db",
    "db_path": "/homeassistant"
  },
  "database da": {
    "engine": "sqlite",
    "db_path": "../data"
  },
  "meteoserver-key": "!secret meteoserver-key",
  "prices": {
    "source day ahead": "nordpool",
    "regular high": 0.50,
    "regular low": 0.40,
    "switch to low": 23,
    "energy taxes consumption": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.10880,
      "2025-01-01": 0.10154
    },
    "energy taxes production": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.10880,
      "2025-01-01": 0.10154
    },
    "cost supplier consumption": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "cost supplier production": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "vat consumption": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "vat production": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
   "last invoice": "2022-09-01",
    "tax refund": "True"
  },
  "logging level" : "info",
  "use_calc_baseload": "False",
  "baseload calc periode": 56,
  "baseload": [
    0.33,
    0.33,
    0.32,
    0.32,
    0.31,
    0.33,
    0.33,
    0.34,
    0.33,
    0.35,
    0.35,
    0.33,
    0.31,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.32,
    0.31,
    0.31,
    0.31
  ],
  "graphical backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "show" : "true",
    "battery balance": "True",
    "prices consumption": "True",
    "prices production": "True",
    "prices spot": "True",
    "average consumption": "True"
  },
  "strategy": "minimize cost",
  "notifications": {
  },
  "grid": {
    "max_power": 8
  },
  "history": {
    "save days": 7
  },
  "dashboard": {
    "port": 5000
  },
  "boiler": {
    "boiler present": "False",
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater present": "False",
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
"battery": [
    {
      "name": "Marstek Venus-E 5.12kWh",
      "capacity": 5.12,
      "lower limit": 11,
      "upper limit": 100,
      "optimal lower level": 11,
      "charge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 100.0,
          "efficiency": 0.36
        },
        {
          "power": 200.0,
          "efficiency": 0.8221
        },
        {
          "power": 400.0,
          "efficiency": 0.8673
        },
        {
          "power": 600.0,
          "efficiency": 0.8861
        },
        {
          "power": 800.0,
          "efficiency": 0.8975
        },
        {
          "power": 1000.0,
          "efficiency": 0.8933
        },
        {
          "power": 1500.0,
          "efficiency": 0.9015
        },
        {
          "power": 2000.0,
          "efficiency": 0.9010
        },
        {
          "power": 2500.0,
          "efficiency": 0.9017
        }
      ],
      "discharge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 100.0,
          "efficiency": 0.7907
        },
        {
          "power": 200.0,
          "efficiency": 0.8957
        },
        {
          "power": 400.0,
          "efficiency": 0.9581
        },
        {
          "power": 600.0,
          "efficiency": 0.9767
        },
        {
          "power": 800.0,
          "efficiency": 0.9812
        },
        {
          "power": 1000.0,
          "efficiency": 0.9890
        },
        {
          "power": 1500.0,
          "efficiency": 0.9907
        },
        {
          "power": 2000.0,
          "efficiency": 0.9841
        },
        {
          "power": 2500.0,
          "efficiency": 0.9928
        }
      ],
      "reduced hours": {},
      "dc_to_bat max power": 2500.0,
      "bat_to_dc max power": 2500.0,
      "dc_to_bat efficiency": 0.935,
      "bat_to_dc efficiency": 0.935,
      "cycle cost": 0.005,
      "minimum power": 400,
      "entity actual level": "sensor.lilygo_rs485_marstek_battery_state_of_charge",
      "entity min soc end opt": "input_number.dao_min_soc_einde_opt",
      "entity max soc end opt": "input_number.dao_max_soc_einde_opt",
      "entity set power feedin": "input_number.dao_set_power_feedin",
      "entity set operating mode": "input_select.dao_set_operating_mode",
      "entity stop inverter": "input_datetime.dao_stop_marstek",
      "entity balance switch": "input_boolean.dao_balance_grid",
      "entity from battery": "input_number.dao_from_battery",
      "entity from pv": "input_number.dao_marstek_from_pv",
      "entity from ac": "input_number.dao_marstek_from_ac",
      "entity calculated soc": "input_number.dao_marstek_calculated_soc",
      "solar": []
    }
  ],


  "solar": [
    { "name" : "Oost West",
      "entity pv switch": "input_boolean.oost_west_turn_inverter_on_off",
      "strings": [
        {
        "tilt": 45,
        "orientation": -135,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": -135,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": 45,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": 45,
        "capacity": 0.43,
        "yield": 0.00624
        }
      ]
    },
    {
      "name": "Zuid paneel",
      "entity pv switch": "input_boolean.zuid_paneel_on_off",
      "tilt": 60,
      "orientation": -45,
      "capacity": 0.43,
      "yield": 0.00624
    },
    {
      "name": "Schuine dak",
      "entity pv switch": "input_boolean.schuin_dak_on_off",
      "tilt": 45,
      "orientation": 45,
      "capacity": 0.50,
      "yield": 0.00798
    }
     
  ],
  "electric vehicle": [ ],
  "machines" : [ ],
  "tibber": {
    "api_token": "!secret tibber_api_token"
  },
  "report": {
    "entities grid consumption": [
      "sensor.electricity_meter_energieverbruik_tarief_1",
      "sensor.electricity_meter_energieverbruik_tarief_2"
    ],
    "entities grid production": [
      "sensor.electricity_meter_energieproductie_tarief_1",
      "sensor.electricity_meter_energieproductie_tarief_2"
    ],
    "entities solar production ac": [
      "sensor.hms_2000_4t_yieldtotal",
      "sensor.zuid_paneel_yieldtotal",
      "sensor.schuine_dak_yieldtotal"
    ],
    "entities battery consumption": ["sensor.lilygo_rs485_marstek_total_charging_energy"],
    "entities battery production": ["sensor.lilygo_rs485_marstek_total_discharging_energy"]
  },
  "scheduler": {
    "active": "True",
    "0430": "get_meteo_data",
    "1030": "get_meteo_data",
    "1630": "get_meteo_data",
    "2230": "get_meteo_data",
    "1255": "get_day_ahead_prices",
    "1355": "get_day_ahead_prices",
    "1455": "get_day_ahead_prices",
    "1554": "get_day_ahead_prices",
    "1655": "get_day_ahead_prices",
    "xx00": "calc_optimum",
    "2359": "clean_data"
  }
}
Daarna krijg ik nog een rits aan errors:
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
2025-10-21 02:02:38 info: Day Ahead Optimalisering versie: 2025.10.5.rc6
2025-10-21 02:02:38 info: Day Ahead Optimalisering gestart op: 21-10-2025 02:02:38
2025-10-21 02:02:38 info: Day Ahead Optimalisatie gestart: 21-10-2025 02:02:38 taak: calc_optimum
2025-10-21 02:02:38 info: Debug = False
2025-10-21 02:02:38 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-21 02:02:38 info: Baseload uit instellingen
2025-10-21 02:02:38 info: Start waarden: 
      uur                tijd   p_l   p_t  base  pv_ac  pv_dc
0   02:00 2025-10-21 02:00:00 0.180 0.180 0.320  0.000      0
1   03:00 2025-10-21 03:00:00 0.168 0.168 0.320  0.000      0
2   04:00 2025-10-21 04:00:00 0.173 0.173 0.310  0.000      0
3   05:00 2025-10-21 05:00:00 0.195 0.195 0.330  0.000      0
4   06:00 2025-10-21 06:00:00 0.230 0.230 0.330  0.000      0
5   07:00 2025-10-21 07:00:00 0.245 0.245 0.340  0.000      0
6   08:00 2025-10-21 08:00:00 0.260 0.260 0.330  0.039      0
7   09:00 2025-10-21 09:00:00 0.253 0.253 0.350  0.157      0
8   10:00 2025-10-21 10:00:00 0.238 0.238 0.350  0.948      0
9   11:00 2025-10-21 11:00:00 0.226 0.226 0.330  0.733      0
10  12:00 2025-10-21 12:00:00 0.205 0.205 0.310  2.505      0
11  13:00 2025-10-21 13:00:00 0.184 0.184 0.330  0.578      0
12  14:00 2025-10-21 14:00:00 0.186 0.186 0.330  4.863      0
13  15:00 2025-10-21 15:00:00 0.215 0.215 0.330  3.272      0
14  16:00 2025-10-21 16:00:00 0.230 0.230 0.330  1.981      0
15  17:00 2025-10-21 17:00:00 0.265 0.265 0.330  0.536      0
16  18:00 2025-10-21 18:00:00 0.292 0.292 0.330  0.000      0
17  19:00 2025-10-21 19:00:00 0.289 0.289 0.330  0.000      0
18  20:00 2025-10-21 20:00:00 0.269 0.269 0.320  0.000      0
19  21:00 2025-10-21 21:00:00 0.245 0.245 0.310  0.000      0
20  22:00 2025-10-21 22:00:00 0.245 0.245 0.310  0.000      0
21  23:00 2025-10-21 23:00:00 0.236 0.236 0.310  0.000      0
2025-10-21 02:02:39 info: No reduced hours applied for Marstek Venus-E 5.12kWh
2025-10-21 02:02:39 info: Startwaarde SoC Marstek Venus-E 5.12kWh: 27.0%

2025-10-21 02:02:39 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2025-10-21 02:02:39 info: Warmtepomp niet aanwezig of enabled - warmtepomp wordt niet ingepland

2025-10-21 02:02:39 info: Strategie: minimale kosten
2025-10-21 02:02:39 info: Maximale fout (maximal gap): 0.005000 euro
2025-10-21 02:02:39 info: Rekentijd: 0.13  sec
2025-10-21 02:02:39 info: Het programma heeft een optimale oplossing gevonden.
2025-10-21 02:02:39 info: In- en uitgaande energie per uur batterij Marstek Venus-E 5.12kWh
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 02:00   0.00     --   0.00   0.00   0.00     --   0.00     --  27.00
 03:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31  68.17
 04:00   1.93  90.11   1.74   0.00   1.74  93.50   1.63  84.25 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  -2.48  99.28  -2.50   0.00  -2.50  93.50  -2.67  92.83  47.78
 09:00  -1.43  99.07  -1.44   0.00  -1.44  93.50  -1.54  92.63  17.67
 10:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 11:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 12:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 13:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31  58.83
 14:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31 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   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 18:00  -2.18  99.28  -2.20   0.00  -2.20  93.50  -2.35  92.83  54.08
 19:00  -2.00  99.28  -2.01   0.00  -2.01  93.50  -2.15  92.83  12.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
Totaal   1.34     --   0.35   0.00   0.35     --  -0.77     --       
2025-10-21 02:02:40 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 02:00    0.00     0.00   0.31   0.00   0.32   0.00   0.00   0.00   0.00   0.06   -0.00  20.00
 03:00    2.50     0.00   2.82   0.00   0.32   0.00   0.00   0.00   0.00   0.47   -0.00  20.00
 04:00    1.93     0.00   2.24   0.00   0.31   0.00   0.00   0.00   0.00   0.39   -0.00  20.00
 05:00    0.00     0.00   0.33   0.00   0.33   0.00   0.00   0.00   0.00   0.06   -0.00  20.00
 06:00    0.00     0.00   0.33   0.00   0.33   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 07:00    0.00     0.00   0.34   0.00   0.34   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 08:00    0.00     2.48   0.00   2.19   0.33   0.00   0.00   0.00   0.04   0.00   -0.57  20.00
 09:00    0.00     1.43   0.00   1.23   0.35   0.00   0.00   0.00   0.16   0.00   -0.31  20.00
 10:00    0.00     0.00   0.00   0.60   0.35   0.00   0.00   0.00   0.95   0.00   -0.14  20.00
 11:00    0.00     0.00   0.00   0.40   0.33   0.00   0.00   0.00   0.73   0.00   -0.09  20.00
 12:00    0.00     0.00   0.00   2.19   0.31   0.00   0.00   0.00   2.50   0.00   -0.45  20.00
 13:00    2.50     0.00   2.25   0.00   0.33   0.00   0.00   0.00   0.58   0.42   -0.00  20.00
 14:00    2.50     0.00   0.00   2.03   0.33   0.00   0.00   0.00   4.86   0.00   -0.38  20.00
 15:00    0.00     0.00   0.00   2.94   0.33   0.00   0.00   0.00   3.27   0.00   -0.63  20.00
 16:00    0.00     0.00   0.00   1.65   0.33   0.00   0.00   0.00   1.98   0.00   -0.38  20.00
 17:00    0.00     0.00   0.00   0.21   0.33   0.00   0.00   0.00   0.54   0.00   -0.05  20.00
 18:00    0.00     2.18   0.00   1.85   0.33   0.00   0.00   0.00   0.00   0.00   -0.54  20.00
 19:00    0.00     2.00   0.00   1.67   0.33   0.00   0.00   0.00   0.00   0.00   -0.48  20.00
 20:00    0.00     0.00   0.32   0.00   0.32   0.00   0.00   0.00   0.00   0.09   -0.00  20.00
 21:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 22:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 23:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
Totaal    9.43     8.09   9.87  16.97   7.18   0.00   0.00   0.00  15.61   1.87   -4.03       

2025-10-21 02:02:40 info: Consumption               9.87 (kWh)
2025-10-21 02:02:40 info: Cost consumption          1.87 (€)
2025-10-21 02:02:40 info: Tariff consumption        0.189 (€/kWh)
2025-10-21 02:02:40 info: Production               16.97 (kWh)
2025-10-21 02:02:40 info: Profit production        -4.03 (€)
2025-10-21 02:02:40 info: Tariff production         0.238 (€/kWh)

2025-10-21 02:02:40 info: 
Calculation profit after optimize in €
Cost before optimize              -1.62
Cost consumption      1.87
Profit production    -4.03
Cycle cost            0.08
Battery storage       0.16
Boiler storage        0.00
Total                -1.93
Cost after optimize              -1.93
Profit:                           0.30
2025-10-21 02:02:40 info: Doorzetten van alle settings naar HA
2025-10-21 02:02:40 info: Grid set point: 320.0 W
2025-10-21 02:02:40 info: Cycle cost Marstek Venus-E 5.12kWh: 0.08 euro
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3967, in <module>
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3943, in main
2025-10-21 02:02:40 fout: File: /root/dao/prog/da_base.py, line 623, in run_task_function
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3304, in calc_optimum
2025-10-21 02:02:40 fout: File: /root/dao/prog/da_base.py, line 476, in set_entity_option
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py, line 49, in select_option
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py, line 28, in call_service
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 68, in _post
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 90, in _process_response
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 95, in _raise_error
2025-10-21 02:02:40 fout: Onverwachte fout: 500 status code returned from http://supervisor/core/api/services/input_select/select_option
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 3095, in calc_optimum
    self.set_entity_option(
    ~~~~~~~~~~~~~~~~~~~~~~^
        "entity set operating mode", self.battery_options[b], new_state
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/prog/da_base.py", line 476, in set_entity_option
    self.select_option(entity_id, value)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py", line 49, in select_option
    return self.call_service("select_option", entity_id=entity_id, option=option)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py", line 28, in call_service
    self._post(
    ~~~~~~~~~~^
        endpoint=f"/services/{domain}/{service}",
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        entity_id=entity_id,
        ^^^^^^^^^^^^^^^^^^^^
        **kwargs,  # type: ignore
        ^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 68, in _post
    return self._process_response(
           ~~~~~~~~~~~~~~~~~~~~~~^
        requests.post(
        ^^^^^^^^^^^^^^
    ...<5 lines>...
        )
        ^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 90, in _process_response
    self._raise_error(response.status_code, response.url)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 95, in _raise_error
    raise error(f"{status_code} status code returned from {url}",)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hassapi.exceptions.InternalServerError: 500 status code returned from http://supervisor/core/api/services/input_select/select_option
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f5b9ae589a0>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f5b9bae2c50>
Ook al wil ik het bijna opgeven. Er gaat ook veel goed ;) Alleen haal ik echt geen 4kWh uit mijn zonnepanelen
Afbeeldingslocatie: https://tweakers.net/i/FV3OmNUHan_KrxBRKgZw0_lA110=/x800/filters:strip_exif()/f/image/0nVf6iDL3feNsjbhIX4gFnd8.png?f=fotoalbum_large

[ Voor 145% gewijzigd door Animal op 21-10-2025 12:26 ]


Acties:
  • +3 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op dinsdag 21 oktober 2025 @ 01:27:
[...]

Ik vind dit zelf ook het meest ingewikkelde. Ik ben een half jaar geleden met DAO begonnen en heb het nooit echt aan de gang gekregen. Ik krijg vaak errors en dan geef ik het na dagen weer op. Het lijkt me geweldige software maar het is voor mij echt te ingewikkeld.

Ik probeer zoveel mogelijk json voorbeelden uit dit topic te gebruiken van andere gebruikers die een Marstek hebben. Misschien heeft iemand zin om de helpers eens uit te leggen? Dit is voor mij het allerlastigst.

Automations is voor volgende week. Eerst correcte helpers denk ik?

[Afbeelding]

"entity min soc end opt": "input_number.dao_min_soc_einde_opt", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde
"entity max soc end opt": "input_number.dao_max_soc_einde_opt", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde
"entity set power feedin": "input_number.dao_set_power_feedin", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity set operating mode": "input_select.dao_set_operating_mode", >> Geen idee welke opties hier in moeten?
"entity stop inverter": "input_datetime.dao_stop_marstek", >> Ik heb een date/time helper aangemaakt met deze exacte naam
"entity balance switch": "input_boolean.dao_balance_grid", >> Alleen een switch aangemaakt met deze naam
"entity from battery": "input_number.dao_from_battery", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity from pv": "input_number.dao_marstek_from_pv", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity from ac": "input_number.dao_marstek_from_ac", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 2500 als waarde
"entity calculated soc": "input_number.dao_marstek_calculated_soc", >> Ik heb voor nu gewoon een input number aangemaakt met minimaal 0 en maximaal 100 als waarde


Deze helpers heb ik aangemaakt op basis van de json van @Mirabis

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
{
  "homeassistant": { },
  "database ha": {
    "engine": "sqlite",
    "database": "home-assistant_v2.db",
    "db_path": "/homeassistant"
  },
  "database da": {
    "engine": "sqlite",
    "db_path": "../data"
  },
  "meteoserver-key": "!secret meteoserver-key",
  "prices": {
    "source day ahead": "nordpool",
    "regular high": 0.50,
    "regular low": 0.40,
    "switch to low": 23,
    "energy taxes consumption": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.10880,
      "2025-01-01": 0.10154
    },
    "energy taxes production": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.10880,
      "2025-01-01": 0.10154
    },
    "cost supplier consumption": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "cost supplier production": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "vat consumption": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "vat production": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
   "last invoice": "2022-09-01",
    "tax refund": "True"
  },
  "logging level" : "info",
  "use_calc_baseload": "False",
  "baseload calc periode": 56,
  "baseload": [
    0.33,
    0.33,
    0.32,
    0.32,
    0.31,
    0.33,
    0.33,
    0.34,
    0.33,
    0.35,
    0.35,
    0.33,
    0.31,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.33,
    0.32,
    0.31,
    0.31,
    0.31
  ],
  "graphical backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "show" : "true",
    "battery balance": "True",
    "prices consumption": "True",
    "prices production": "True",
    "prices spot": "True",
    "average consumption": "True"
  },
  "strategy": "minimize cost",
  "notifications": {
  },
  "grid": {
    "max_power": 8
  },
  "history": {
    "save days": 7
  },
  "dashboard": {
    "port": 5000
  },
  "boiler": {
    "boiler present": "False",
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater present": "False",
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
"battery": [
    {
      "name": "Marstek Venus-E 5.12kWh",
      "capacity": 5.12,
      "lower limit": 11,
      "upper limit": 100,
      "optimal lower level": 11,
      "charge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 100.0,
          "efficiency": 0.36
        },
        {
          "power": 200.0,
          "efficiency": 0.8221
        },
        {
          "power": 400.0,
          "efficiency": 0.8673
        },
        {
          "power": 600.0,
          "efficiency": 0.8861
        },
        {
          "power": 800.0,
          "efficiency": 0.8975
        },
        {
          "power": 1000.0,
          "efficiency": 0.8933
        },
        {
          "power": 1500.0,
          "efficiency": 0.9015
        },
        {
          "power": 2000.0,
          "efficiency": 0.9010
        },
        {
          "power": 2500.0,
          "efficiency": 0.9017
        }
      ],
      "discharge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 100.0,
          "efficiency": 0.7907
        },
        {
          "power": 200.0,
          "efficiency": 0.8957
        },
        {
          "power": 400.0,
          "efficiency": 0.9581
        },
        {
          "power": 600.0,
          "efficiency": 0.9767
        },
        {
          "power": 800.0,
          "efficiency": 0.9812
        },
        {
          "power": 1000.0,
          "efficiency": 0.9890
        },
        {
          "power": 1500.0,
          "efficiency": 0.9907
        },
        {
          "power": 2000.0,
          "efficiency": 0.9841
        },
        {
          "power": 2500.0,
          "efficiency": 0.9928
        }
      ],
      "reduced hours": {},
      "dc_to_bat max power": 2500.0,
      "bat_to_dc max power": 2500.0,
      "dc_to_bat efficiency": 0.935,
      "bat_to_dc efficiency": 0.935,
      "cycle cost": 0.005,
      "minimum power": 400,
      "entity actual level": "sensor.lilygo_rs485_marstek_battery_state_of_charge",
      "entity min soc end opt": "input_number.dao_min_soc_einde_opt",
      "entity max soc end opt": "input_number.dao_max_soc_einde_opt",
      "entity set power feedin": "input_number.dao_set_power_feedin",
      "entity set operating mode": "input_select.dao_set_operating_mode",
      "entity stop inverter": "input_datetime.dao_stop_marstek",
      "entity balance switch": "input_boolean.dao_balance_grid",
      "entity from battery": "input_number.dao_from_battery",
      "entity from pv": "input_number.dao_marstek_from_pv",
      "entity from ac": "input_number.dao_marstek_from_ac",
      "entity calculated soc": "input_number.dao_marstek_calculated_soc",
      "solar": []
    }
  ],


  "solar": [
    { "name" : "Oost West",
      "entity pv switch": "input_boolean.oost_west_turn_inverter_on_off",
      "strings": [
        {
        "tilt": 45,
        "orientation": -135,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": -135,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": 45,
        "capacity": 0.43,
        "yield": 0.00624
        },
        {
        "tilt": 45,
        "orientation": 45,
        "capacity": 0.43,
        "yield": 0.00624
        }
      ]
    },
    {
      "name": "Zuid paneel",
      "entity pv switch": "input_boolean.zuid_paneel_on_off",
      "tilt": 60,
      "orientation": -45,
      "capacity": 0.43,
      "yield": 0.00624
    },
    {
      "name": "Schuine dak",
      "entity pv switch": "input_boolean.schuin_dak_on_off",
      "tilt": 45,
      "orientation": 45,
      "capacity": 0.50,
      "yield": 0.00798
    }
     
  ],
  "electric vehicle": [ ],
  "machines" : [ ],
  "tibber": {
    "api_token": "!secret tibber_api_token"
  },
  "report": {
    "entities grid consumption": [
      "sensor.electricity_meter_energieverbruik_tarief_1",
      "sensor.electricity_meter_energieverbruik_tarief_2"
    ],
    "entities grid production": [
      "sensor.electricity_meter_energieproductie_tarief_1",
      "sensor.electricity_meter_energieproductie_tarief_2"
    ],
    "entities solar production ac": [
      "sensor.hms_2000_4t_yieldtotal",
      "sensor.zuid_paneel_yieldtotal",
      "sensor.schuine_dak_yieldtotal"
    ],
    "entities battery consumption": ["sensor.lilygo_rs485_marstek_total_charging_energy"],
    "entities battery production": ["sensor.lilygo_rs485_marstek_total_discharging_energy"]
  },
  "scheduler": {
    "active": "True",
    "0430": "get_meteo_data",
    "1030": "get_meteo_data",
    "1630": "get_meteo_data",
    "2230": "get_meteo_data",
    "1255": "get_day_ahead_prices",
    "1355": "get_day_ahead_prices",
    "1455": "get_day_ahead_prices",
    "1554": "get_day_ahead_prices",
    "1655": "get_day_ahead_prices",
    "xx00": "calc_optimum",
    "2359": "clean_data"
  }
}


Daarna krijg ik nog een rits aan errors:

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
2025-10-21 02:02:38 info: Day Ahead Optimalisering versie: 2025.10.5.rc6
2025-10-21 02:02:38 info: Day Ahead Optimalisering gestart op: 21-10-2025 02:02:38
2025-10-21 02:02:38 info: Day Ahead Optimalisatie gestart: 21-10-2025 02:02:38 taak: calc_optimum
2025-10-21 02:02:38 info: Debug = False
2025-10-21 02:02:38 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-21 02:02:38 info: Baseload uit instellingen
2025-10-21 02:02:38 info: Start waarden: 
      uur                tijd   p_l   p_t  base  pv_ac  pv_dc
0   02:00 2025-10-21 02:00:00 0.180 0.180 0.320  0.000      0
1   03:00 2025-10-21 03:00:00 0.168 0.168 0.320  0.000      0
2   04:00 2025-10-21 04:00:00 0.173 0.173 0.310  0.000      0
3   05:00 2025-10-21 05:00:00 0.195 0.195 0.330  0.000      0
4   06:00 2025-10-21 06:00:00 0.230 0.230 0.330  0.000      0
5   07:00 2025-10-21 07:00:00 0.245 0.245 0.340  0.000      0
6   08:00 2025-10-21 08:00:00 0.260 0.260 0.330  0.039      0
7   09:00 2025-10-21 09:00:00 0.253 0.253 0.350  0.157      0
8   10:00 2025-10-21 10:00:00 0.238 0.238 0.350  0.948      0
9   11:00 2025-10-21 11:00:00 0.226 0.226 0.330  0.733      0
10  12:00 2025-10-21 12:00:00 0.205 0.205 0.310  2.505      0
11  13:00 2025-10-21 13:00:00 0.184 0.184 0.330  0.578      0
12  14:00 2025-10-21 14:00:00 0.186 0.186 0.330  4.863      0
13  15:00 2025-10-21 15:00:00 0.215 0.215 0.330  3.272      0
14  16:00 2025-10-21 16:00:00 0.230 0.230 0.330  1.981      0
15  17:00 2025-10-21 17:00:00 0.265 0.265 0.330  0.536      0
16  18:00 2025-10-21 18:00:00 0.292 0.292 0.330  0.000      0
17  19:00 2025-10-21 19:00:00 0.289 0.289 0.330  0.000      0
18  20:00 2025-10-21 20:00:00 0.269 0.269 0.320  0.000      0
19  21:00 2025-10-21 21:00:00 0.245 0.245 0.310  0.000      0
20  22:00 2025-10-21 22:00:00 0.245 0.245 0.310  0.000      0
21  23:00 2025-10-21 23:00:00 0.236 0.236 0.310  0.000      0
2025-10-21 02:02:39 info: No reduced hours applied for Marstek Venus-E 5.12kWh
2025-10-21 02:02:39 info: Startwaarde SoC Marstek Venus-E 5.12kWh: 27.0%

2025-10-21 02:02:39 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2025-10-21 02:02:39 info: Warmtepomp niet aanwezig of enabled - warmtepomp wordt niet ingepland

2025-10-21 02:02:39 info: Strategie: minimale kosten
2025-10-21 02:02:39 info: Maximale fout (maximal gap): 0.005000 euro
2025-10-21 02:02:39 info: Rekentijd: 0.13  sec
2025-10-21 02:02:39 info: Het programma heeft een optimale oplossing gevonden.
2025-10-21 02:02:39 info: In- en uitgaande energie per uur batterij Marstek Venus-E 5.12kWh
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 02:00   0.00     --   0.00   0.00   0.00     --   0.00     --  27.00
 03:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31  68.17
 04:00   1.93  90.11   1.74   0.00   1.74  93.50   1.63  84.25 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  -2.48  99.28  -2.50   0.00  -2.50  93.50  -2.67  92.83  47.78
 09:00  -1.43  99.07  -1.44   0.00  -1.44  93.50  -1.54  92.63  17.67
 10:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 11:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 12:00   0.00     --   0.00   0.00   0.00     --   0.00     --  17.67
 13:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31  58.83
 14:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31 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   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 18:00  -2.18  99.28  -2.20   0.00  -2.20  93.50  -2.35  92.83  54.08
 19:00  -2.00  99.28  -2.01   0.00  -2.01  93.50  -2.15  92.83  12.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
Totaal   1.34     --   0.35   0.00   0.35     --  -0.77     --       
2025-10-21 02:02:40 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 02:00    0.00     0.00   0.31   0.00   0.32   0.00   0.00   0.00   0.00   0.06   -0.00  20.00
 03:00    2.50     0.00   2.82   0.00   0.32   0.00   0.00   0.00   0.00   0.47   -0.00  20.00
 04:00    1.93     0.00   2.24   0.00   0.31   0.00   0.00   0.00   0.00   0.39   -0.00  20.00
 05:00    0.00     0.00   0.33   0.00   0.33   0.00   0.00   0.00   0.00   0.06   -0.00  20.00
 06:00    0.00     0.00   0.33   0.00   0.33   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 07:00    0.00     0.00   0.34   0.00   0.34   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 08:00    0.00     2.48   0.00   2.19   0.33   0.00   0.00   0.00   0.04   0.00   -0.57  20.00
 09:00    0.00     1.43   0.00   1.23   0.35   0.00   0.00   0.00   0.16   0.00   -0.31  20.00
 10:00    0.00     0.00   0.00   0.60   0.35   0.00   0.00   0.00   0.95   0.00   -0.14  20.00
 11:00    0.00     0.00   0.00   0.40   0.33   0.00   0.00   0.00   0.73   0.00   -0.09  20.00
 12:00    0.00     0.00   0.00   2.19   0.31   0.00   0.00   0.00   2.50   0.00   -0.45  20.00
 13:00    2.50     0.00   2.25   0.00   0.33   0.00   0.00   0.00   0.58   0.42   -0.00  20.00
 14:00    2.50     0.00   0.00   2.03   0.33   0.00   0.00   0.00   4.86   0.00   -0.38  20.00
 15:00    0.00     0.00   0.00   2.94   0.33   0.00   0.00   0.00   3.27   0.00   -0.63  20.00
 16:00    0.00     0.00   0.00   1.65   0.33   0.00   0.00   0.00   1.98   0.00   -0.38  20.00
 17:00    0.00     0.00   0.00   0.21   0.33   0.00   0.00   0.00   0.54   0.00   -0.05  20.00
 18:00    0.00     2.18   0.00   1.85   0.33   0.00   0.00   0.00   0.00   0.00   -0.54  20.00
 19:00    0.00     2.00   0.00   1.67   0.33   0.00   0.00   0.00   0.00   0.00   -0.48  20.00
 20:00    0.00     0.00   0.32   0.00   0.32   0.00   0.00   0.00   0.00   0.09   -0.00  20.00
 21:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 22:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 23:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
Totaal    9.43     8.09   9.87  16.97   7.18   0.00   0.00   0.00  15.61   1.87   -4.03       

2025-10-21 02:02:40 info: Consumption               9.87 (kWh)
2025-10-21 02:02:40 info: Cost consumption          1.87 (€)
2025-10-21 02:02:40 info: Tariff consumption        0.189 (€/kWh)
2025-10-21 02:02:40 info: Production               16.97 (kWh)
2025-10-21 02:02:40 info: Profit production        -4.03 (€)
2025-10-21 02:02:40 info: Tariff production         0.238 (€/kWh)

2025-10-21 02:02:40 info: 
Calculation profit after optimize in €
Cost before optimize              -1.62
Cost consumption      1.87
Profit production    -4.03
Cycle cost            0.08
Battery storage       0.16
Boiler storage        0.00
Total                -1.93
Cost after optimize              -1.93
Profit:                           0.30
2025-10-21 02:02:40 info: Doorzetten van alle settings naar HA
2025-10-21 02:02:40 info: Grid set point: 320.0 W
2025-10-21 02:02:40 info: Cycle cost Marstek Venus-E 5.12kWh: 0.08 euro
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3967, in <module>
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3943, in main
2025-10-21 02:02:40 fout: File: /root/dao/prog/da_base.py, line 623, in run_task_function
2025-10-21 02:02:40 fout: File: /root/dao/webserver/../prog/day_ahead.py, line 3304, in calc_optimum
2025-10-21 02:02:40 fout: File: /root/dao/prog/da_base.py, line 476, in set_entity_option
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py, line 49, in select_option
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py, line 28, in call_service
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 68, in _post
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 90, in _process_response
2025-10-21 02:02:40 fout: File: /root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py, line 95, in _raise_error
2025-10-21 02:02:40 fout: Onverwachte fout: 500 status code returned from http://supervisor/core/api/services/input_select/select_option
Traceback (most recent call last):
  File "/root/dao/webserver/../prog/day_ahead.py", line 3095, in calc_optimum
    self.set_entity_option(
    ~~~~~~~~~~~~~~~~~~~~~~^
        "entity set operating mode", self.battery_options[b], new_state
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/prog/da_base.py", line 476, in set_entity_option
    self.select_option(entity_id, value)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py", line 49, in select_option
    return self.call_service("select_option", entity_id=entity_id, option=option)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/services.py", line 28, in call_service
    self._post(
    ~~~~~~~~~~^
        endpoint=f"/services/{domain}/{service}",
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        entity_id=entity_id,
        ^^^^^^^^^^^^^^^^^^^^
        **kwargs,  # type: ignore
        ^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 68, in _post
    return self._process_response(
           ~~~~~~~~~~~~~~~~~~~~~~^
        requests.post(
        ^^^^^^^^^^^^^^
    ...<5 lines>...
        )
        ^
    )
    ^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 90, in _process_response
    self._raise_error(response.status_code, response.url)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 95, in _raise_error
    raise error(f"{status_code} status code returned from {url}",)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hassapi.exceptions.InternalServerError: 500 status code returned from http://supervisor/core/api/services/input_select/select_option
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f5b9ae589a0>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f5b9bae2c50>


Ook al wil ik het bijna opgeven. Er gaat ook veel goed ;) Alleen haal ik echt geen 4kWh uit mijn zonnepanelen
[Afbeelding]
Hoi @Animal we komen hier vast wel uit. Je bent al een heel eind, dus geef de moed niet op :). Zou je ten eerste je post willen aanpassen en de code blokken ook nog tussen een quote blok willen opnemen? Dat scheelt de toevallige voorbijganger een hoop gescroll op het scherm ;)

Je hebt geluk, de instellingen voor zonnepanelen en battery heb ik al uitgebreid beschreven in de wiki van DAO heb je daar ook naar gekeken?
De “rits aan foutmeldingen” is maar één foutmelding en is op “entity set operating mode”, degene waar jij geen idee hebt wat je moet invullen. In de wiki staat: “ Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.”.
Deze entiteit is optioneel, dus als je hem niet nodig hebt, lekker weg laten, anders vullen met keuzes “Aan” en “Uit”.
De hoge pv opwek komt waarschijnlijk door een te hoge yield. Reken die nog eens goed na (staat ook duidelijk in de wiki). 5x een zelfde yield voor oost, west en zuid is sowieso verdacht. Heb je ook bewust de strings op Oost en West er 2 x in staan? Tip is om zoveel mogelijk gelijke dingen samen te voegen, dat scheelt DAO rekentijd. Dus die 2 op Oost samenvoegen en die 2 op West ook.

Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
KC27 schreef op maandag 20 oktober 2025 @ 19:35:
[...]

Er klopt iets niet. Heb je voor mij (liefs in quotes vanwege de lengte):
  • een kopie van je battery-settings
  • een kopie van de logging van de berekening (logging level "info")
config:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
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
{
  "homeassistant": {
  },
  "database ha": {
    "engine": "postgresql",
    "server": "77b2833f-timescaledb",
    "port": 5432,
    "database": "homeassistant",
    "username": "dao",
    "password": "!secret db_ha_password"
  },
  "database da": {
    "engine": "postgresql",
    "server": "77b2833f-timescaledb",
    "port": 5432,
    "database": "dao",
    "username": "dao",
    "password": "!secret db_da_password"
  },
  "meteoserver-key": "!secret meteoserver-key",
  "prices": {
    "source day ahead": "nordpool",
    "regular high": 0.5,
    "regular low": 0.4,
    "switch to low": 23,
    "energy taxes consumption": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.1088,
      "2025-01-01": 0.10154
    },
    "energy taxes production": {
      "2022-01-01": 0.06729,
      "2023-01-01": 0.12599,
      "2024-01-01": 0.1088,
      "2025-01-01": 0.10154
    },
    "cost supplier consumption": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "cost supplier production": {
      "2022-01-01": 0.002,
      "2023-03-01": 0.018,
      "2024-04-01": 0.0175,
      "2024-08-01": 0.020496
    },
    "vat consumption": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "vat production": {
      "2022-01-01": 21,
      "2022-07-01": 9,
      "2023-01-01": 21
    },
    "last invoice": "2025-09-01",
    "tax refund": "True"
  },
  "interval": "15min",
  "logging level": "info",
  "use_calc_baseload": "True",
  "baseload calc periode": 14,
  "baseload": [
    0.14,
    0.38,
    0.26,
    0.42,
    0.15,
    0.12,
    0.13,
    0.15,
    0.23,
    0.26,
    0.31,
    0.32,
    0.31,
    0.23,
    0.26,
    0.21,
    0.21,
    0.54,
    0.26,
    0.26,
    0.22,
    0.19,
    0.18,
    0.16
  ],
  "graphical backend": "",
  "graphics": {
    "style": "Solarize_Light2",
    "show": "true",
    "battery balance": "True",
    "prices consumption": "True",
    "prices production": "False",
    "prices spot": "True",
    "average consumption": "True"
  },
  "strategy": "minimize cost",
  "notifications": {
  },
  "grid": {
    "max_power": 17
  },
  "history": {
    "save days": 7
  },
  "dashboard": {
    "port": 5000
  },
  "boiler": {
    "boiler present": "False",
    "entity actual temp.": "sensor.boiler_gemeten",
    "entity setpoint": "sensor.boiler_ingesteld",
    "entity hysterese": "sensor.hysterese_hot_water",
    "cop": 2.9,
    "cooling rate": 0.4,
    "volume": 180,
    "heating allowed below": 44,
    "elec. power": 1500,
    "activate service": "press",
    "activate entity": "input_button.hw_trigger"
  },
  "heating": {
    "heater present": "False",
    "degree days factor": 3.6,
    "stages": [
      {
        "max_power": 225,
        "cop": 7.1
      },
      {
        "max_power": 300,
        "cop": 7.0
      },
      {
        "max_power": 400,
        "cop": 6.5
      },
      {
        "max_power": 500,
        "cop": 6.0
      },
      {
        "max_power": 600,
        "cop": 5.5
      },
      {
        "max_power": 750,
        "cop": 5.0
      },
      {
        "max_power": 1000,
        "cop": 4.5
      },
      {
        "max_power": 1250,
        "cop": 4.0
      }
    ],
    "entity adjust heating curve": "input_number.stooklijn_verschuiving_day_ahead",
    "adjustment factor": 0.04
  },
  "battery": [
    {
      "name": "Batterij",
      "entity actual level": "sensor.solis_s5_eh1p_battery_soc",
      "capacity": 10,
      "upper limit": 98,
      "lower limit": 21,
      "optimal lower level": 21,
      "minimum power": 0,
      "charge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 50.0,
          "efficiency": 0.825
        },
        {
          "power": 100.0,
          "efficiency": 0.861
        },
        {
          "power": 150.0,
          "efficiency": 0.873
        },
        {
          "power": 300.0,
          "efficiency": 0.886
        },
        {
          "power": 600.0,
          "efficiency": 0.893
        },
        {
          "power": 1200.0,
          "efficiency": 0.896
        },
        {
          "power": 2000.0,
          "efficiency": 0.897
        },
        {
          "power": 3000.0,
          "efficiency": 0.898
        }
      ],
      "discharge stages": [
        {
          "power": 0.0,
          "efficiency": 1
        },
        {
          "power": 50.0,
          "efficiency": 0.825
        },
        {
          "power": 100.0,
          "efficiency": 0.861
        },
        {
          "power": 150.0,
          "efficiency": 0.873
        },
        {
          "power": 300.0,
          "efficiency": 0.886
        },
        {
          "power": 600.0,
          "efficiency": 0.893
        },
        {
          "power": 1200.0,
          "efficiency": 0.896
        },
        {
          "power": 2000.0,
          "efficiency": 0.897
        },
        {
          "power": 3000.0,
          "efficiency": 0.898
        }
      ],
      "dc_to_bat efficiency": 0.95,
      "dc_to_bat max power": 3000.0,
      "bat_to_dc efficiency": 0.93,
      "bat_to_dc max power": 3000.0,
      "cycle cost": 0.03,
      "solar": [
        {
          "name": "Dak bijkeuken",
          "entity pv switch": "",
          "strings": [
            {
              "tilt": 15,
              "orientation": -85,
              "capacity": 2.8,
              "yield": 0.01
            },
            {
              "tilt": 15,
              "orientation": 95,
              "capacity": 2.8,
              "yield": 0.01
            }
          ]
        }
      ]
    }
  ],
  "solar": [
    {
      "name": "Dak zuid",
      "entity pv switch": "",
      "tilt": 10,
      "orientation": 5,
      "capacity": 3.6,
      "yield": 0.01
    }
  ],
  "electric vehicle": [
  ],
  "machines": [
  ],
  "tibber": {
    "api_token": "!secret tibber_api_token"
  },
  "report": {
    "entities grid consumption": [
      "sensor.dsmr_reading_electricity_delivered_1",
      "sensor.dsmr_reading_electricity_delivered_2"
    ],
    "entities grid production": [
      "sensor.dsmr_reading_electricity_returned_1",
      "sensor.dsmr_reading_electricity_returned_2"
    ],
    "entities solar production ac": [
      "sensor.shelly_em_6eaabc_total_returned_1"
    ],
    "entities solar production dc": [
      "sensor.solis_s5_eh1p_pv_today_energy_generation"
    ],
    "entities ev consumption": [
      "sensor.shelly_em_6eaabc_total_0"
    ],
    "entities wp consumption": [
    ],
    "entities boiler consumption": [
    ],
    "entities battery consumption": [
      "sensor.solis_s5_eh1p_today_battery_charge_energy"
    ],
    "entities battery production": [
      "sensor.solis_s5_eh1p_today_battery_discharge_energy"
    ]
  },
  "scheduler": {
    "active": "true",
    "0425": "get_meteo_data",
    "1025": "get_meteo_data",
    "1625": "get_meteo_data",
    "2225": "get_meteo_data",
    "1257": "get_day_ahead_prices",
    "1356": "get_day_ahead_prices",
    "1455": "get_day_ahead_prices",
    "1554": "get_day_ahead_prices",
    "1655": "get_day_ahead_prices",
    "xx00": "calc_optimum",
    "xx15": "calc_optimum",
    "xx30": "calc_optimum",
    "xx45": "calc_optimum",
    "2359": "clean_data"
  }
}
Hier is de log van deze run:
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
 2025-10-20 12:00:00 info: Day Ahead Optimalisering versie: 2025.10.5
2025-10-20 12:00:00 info: Day Ahead Optimalisering gestart op: 20-10-2025 12:00:00
2025-10-20 12:00:00 info: Day Ahead Optimalisatie gestart: 20-10-2025 12:00:00 taak: calc_optimum
2025-10-20 12:00:00 info: Debug = False
2025-10-20 12:00:00 info: Zelf berekende baseload
2025-10-20 12:00:00 info: Start waarden: 
      uur                tijd   p_l   p_t   base  pv_ac  pv_dc
0   12:00 2025-10-20 12:00:00 0.223 0.223 -0.039  0.011  0.021
1   12:15 2025-10-20 12:15:00 0.217 0.217 -0.032  0.012  0.024
2   12:30 2025-10-20 12:30:00 0.214 0.214 -0.025  0.014  0.026
3   12:45 2025-10-20 12:45:00 0.217 0.217 -0.020  0.015  0.028
4   13:00 2025-10-20 13:00:00 0.219 0.219 -0.018  0.015  0.028
5   13:15 2025-10-20 13:15:00 0.221 0.221 -0.013  0.017  0.031
6   13:30 2025-10-20 13:30:00 0.220 0.220 -0.008  0.018  0.033
7   13:45 2025-10-20 13:45:00 0.222 0.222  0.004  0.025  0.045
8   14:00 2025-10-20 14:00:00 0.217 0.217  0.023  0.032  0.057
9   14:15 2025-10-20 14:15:00 0.223 0.223  0.035  0.039  0.069
10  14:30 2025-10-20 14:30:00 0.226 0.226  0.047  0.046  0.082
11  14:45 2025-10-20 14:45:00 0.242 0.242  0.052  0.075  0.125
12  15:00 2025-10-20 15:00:00 0.226 0.226  0.047  0.149  0.209
13  15:15 2025-10-20 15:15:00 0.237 0.237  0.051  0.199  0.256
14  15:30 2025-10-20 15:30:00 0.259 0.259  0.056  0.249  0.301
15  15:45 2025-10-20 15:45:00 0.274 0.274  0.073  0.266  0.291
16  16:00 2025-10-20 16:00:00 0.236 0.236  0.107  0.122  0.242
17  16:15 2025-10-20 16:15:00 0.255 0.255  0.125  0.117  0.232
18  16:30 2025-10-20 16:30:00 0.281 0.281  0.142  0.112  0.222
19  16:45 2025-10-20 16:45:00 0.308 0.308  0.131  0.096  0.191
20  17:00 2025-10-20 17:00:00 0.257 0.257  0.095  0.072  0.143
21  17:15 2025-10-20 17:15:00 0.279 0.279  0.084  0.057  0.112
22  17:30 2025-10-20 17:30:00 0.289 0.289  0.074  0.041  0.081
23  17:45 2025-10-20 17:45:00 0.300 0.300  0.082  0.029  0.058
24  18:00 2025-10-20 18:00:00 0.289 0.289  0.107  0.017  0.035
25  18:15 2025-10-20 18:15:00 0.292 0.292  0.115  0.006  0.011
26  18:30 2025-10-20 18:30:00 0.294 0.294  0.123  0.000  0.000
27  18:45 2025-10-20 18:45:00 0.279 0.279  0.117  0.000  0.000
28  19:00 2025-10-20 19:00:00 0.293 0.293  0.099  0.001  0.002
29  19:15 2025-10-20 19:15:00 0.274 0.274  0.093  0.000  0.000
30  19:30 2025-10-20 19:30:00 0.264 0.264  0.087  0.000  0.000
31  19:45 2025-10-20 19:45:00 0.252 0.252  0.092  0.000  0.000
32  20:00 2025-10-20 20:00:00 0.272 0.272  0.109  0.000  0.000
33  20:15 2025-10-20 20:15:00 0.245 0.245  0.114  0.000  0.000
34  20:30 2025-10-20 20:30:00 0.232 0.232  0.119  0.000  0.000
35  20:45 2025-10-20 20:45:00 0.229 0.229  0.107  0.000  0.000
36  21:00 2025-10-20 21:00:00 0.258 0.258  0.079  0.000  0.000
37  21:15 2025-10-20 21:15:00 0.253 0.253  0.067  0.000  0.000
38  21:30 2025-10-20 21:30:00 0.232 0.232  0.054  0.000  0.000
39  21:45 2025-10-20 21:45:00 0.213 0.213  0.050  0.000  0.000
40  22:00 2025-10-20 22:00:00 0.242 0.242  0.052  0.000  0.000
41  22:15 2025-10-20 22:15:00 0.226 0.226  0.047  0.000  0.000
42  22:30 2025-10-20 22:30:00 0.221 0.221  0.043  0.000  0.000
43  22:45 2025-10-20 22:45:00 0.208 0.208  0.038  0.000  0.000
44  23:00 2025-10-20 23:00:00 0.212 0.212  0.033  0.000  0.000
45  23:15 2025-10-20 23:15:00 0.216 0.216  0.028  0.000  0.000
46  23:30 2025-10-20 23:30:00 0.213 0.213  0.024  0.000  0.000
47  23:45 2025-10-20 23:45:00 0.196 0.196  0.019  0.000  0.000
2025-10-20 12:00:00 info: No reduced hours applied for Batterij
2025-10-20 12:00:00 info: Startwaarde SoC Batterij: 22.0%

2025-10-20 12:00:00 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2025-10-20 12:00:00 info: Warmtepomp niet aanwezig of enabled - warmtepomp wordt niet ingepland

2025-10-20 12:00:00 info: Strategie: minimale kosten
2025-10-20 12:00:00 info: Maximale fout (maximal gap): 0.005000 euro
2025-10-20 12:00:02 info: Rekentijd: 1.68  sec
2025-10-20 12:00:02 info: Het programma heeft een optimale oplossing gevonden.
2025-10-20 12:00:02 info: In- en uitgaande energie per kwartier batterij Batterij
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat    o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh        %      %
 12:00   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.05
 12:15   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.11
 12:30   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.17
 12:45   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.24
 13:00   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.30
 13:15   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.38
 13:30   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.45
 13:45   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.56
 14:00   0.00     --   0.00   0.01   0.01  95.00   0.01       --  22.70
 14:15  -0.01  86.10  -0.02   0.02   0.00     --   0.00       --  22.70
 14:30  -0.02  86.10  -0.02   0.02   0.00     --   0.00       --  22.70
 14:45  -0.03  87.30  -0.03   0.03   0.00     --   0.00       --  22.70
 15:00  -0.05  88.60  -0.05   0.05   0.00     --   0.00       --  22.70
 15:15  -0.06  88.60  -0.06   0.06   0.00     --   0.00       --  22.70
 15:30  -0.07  88.60  -0.08   0.08   0.00     --   0.00       --  22.70
 15:45  -0.06  88.60  -0.07   0.07   0.00     --   0.00       --  22.70
 16:00  -0.05  88.60  -0.06   0.06   0.00     --   0.00       --  22.70
 16:15  -0.05  88.60  -0.06   0.06   0.00     --   0.00       --  22.70
 16:30  -0.05  88.60  -0.06   0.06   0.00     --   0.00       --  22.70
 16:45  -0.18  89.60  -0.21   0.05  -0.16  93.00  -0.17   108.69  21.01
 17:00  -0.03  87.30  -0.04   0.04   0.00     --   0.00       --  21.01
 17:15  -0.03  87.30  -0.03   0.03  -0.00  93.00  -0.00  3960.97  21.00
 17:30  -0.02  86.10  -0.02   0.02   0.00     --   0.00       --  21.00
 17:45  -0.01  86.10  -0.01   0.01  -0.00  93.00  -0.00 37881.14  21.00
 18:00  -0.01  82.50  -0.01   0.01   0.00     --   0.00       --  21.00
 18:15  -0.00  82.50  -0.00   0.00   0.00     --   0.00       --  21.00
 18:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 18:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 19:00  -0.00  82.50  -0.00   0.00   0.00     --   0.00       --  21.00
 19:15  -0.00  82.50  -0.00   0.00   0.00     --   0.00       --  21.00
 19:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 19:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 20:15   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 20:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 20:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 21:15   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 21:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 21:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 22:15   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 22:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 22:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 23:15   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 23:30   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
 23:45   0.00     --   0.00   0.00   0.00     --   0.00       --  21.00
Totaal  -0.73     --  -0.82   0.74  -0.08     --  -0.10       --       
2025-10-20 12:00:08 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 12:00    0.00     0.00   0.00   0.05  -0.04   0.00   0.00   0.00   0.01   0.00   -0.01  20.00
 12:15    0.00     0.00   0.00   0.04  -0.03   0.00   0.00   0.00   0.01   0.00   -0.01  20.00
 12:30    0.00     0.00   0.00   0.04  -0.03   0.00   0.00   0.00   0.01   0.00   -0.01  20.00
 12:45    0.00     0.00   0.00   0.04  -0.02   0.00   0.00   0.00   0.02   0.00   -0.01  20.00
 13:00    0.00     0.00   0.00   0.03  -0.02   0.00   0.00   0.00   0.02   0.00   -0.01  20.00
 13:15    0.00     0.00   0.00   0.03  -0.01   0.00   0.00   0.00   0.02   0.00   -0.01  20.00
 13:30    0.00     0.00   0.00   0.03  -0.01   0.00   0.00   0.00   0.02   0.00   -0.01  20.00
 13:45    0.00     0.00   0.00   0.02   0.00   0.00   0.00   0.00   0.03   0.00   -0.00  20.00
 14:00    0.00     0.00   0.00   0.01   0.02   0.00   0.00   0.00   0.03   0.00   -0.00  20.00
 14:15    0.00     0.01   0.00   0.02   0.04   0.00   0.00   0.00   0.04   0.00   -0.00  20.00
 14:30    0.00     0.02   0.00   0.02   0.05   0.00   0.00   0.00   0.05   0.00   -0.00  20.00
 14:45    0.00     0.03   0.00   0.05   0.05   0.00   0.00   0.00   0.08   0.00   -0.01  20.00
 15:00    0.00     0.05   0.00   0.15   0.05   0.00   0.00   0.00   0.15   0.00   -0.03  20.00
 15:15    0.00     0.06   0.00   0.20   0.05   0.00   0.00   0.00   0.20   0.00   -0.05  20.00
 15:30    0.00     0.07   0.00   0.26   0.06   0.00   0.00   0.00   0.25   0.00   -0.07  20.00
 15:45    0.00     0.06   0.00   0.26   0.07   0.00   0.00   0.00   0.27   0.00   -0.07  20.00
 16:00    0.00     0.05   0.00   0.07   0.11   0.00   0.00   0.00   0.12   0.00   -0.02  20.00
 16:15    0.00     0.05   0.00   0.04   0.12   0.00   0.00   0.00   0.12   0.00   -0.01  20.00
 16:30    0.00     0.05   0.00   0.02   0.14   0.00   0.00   0.00   0.11   0.00   -0.01  20.00
 16:45    0.00     0.18   0.00   0.15   0.13   0.00   0.00   0.00   0.10   0.00   -0.05  20.00
 17:00    0.00     0.03   0.00   0.01   0.10   0.00   0.00   0.00   0.07   0.00   -0.00  20.00
 17:15    0.00     0.03   0.00   0.00   0.08   0.00   0.00   0.00   0.06   0.00   -0.00  20.00
 17:30    0.00     0.02   0.02   0.00   0.07   0.00   0.00   0.00   0.04   0.00   -0.00  20.00
 17:45    0.00     0.01   0.04   0.00   0.08   0.00   0.00   0.00   0.03   0.01   -0.00  20.00
 18:00    0.00     0.01   0.08   0.00   0.11   0.00   0.00   0.00   0.02   0.02   -0.00  20.00
 18:15    0.00     0.00   0.11   0.00   0.12   0.00   0.00   0.00   0.01   0.03   -0.00  20.00
 18:30    0.00     0.00   0.12   0.00   0.12   0.00   0.00   0.00   0.00   0.04   -0.00  20.00
 18:45    0.00     0.00   0.12   0.00   0.12   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 19:00    0.00     0.00   0.10   0.00   0.10   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 19:15    0.00     0.00   0.09   0.00   0.09   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 19:30    0.00     0.00   0.09   0.00   0.09   0.00   0.00   0.00   0.00   0.02   -0.00  20.00
 19:45    0.00     0.00   0.09   0.00   0.09   0.00   0.00   0.00   0.00   0.02   -0.00  20.00
 20:00    0.00     0.00   0.11   0.00   0.11   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 20:15    0.00     0.00   0.11   0.00   0.11   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 20:30    0.00     0.00   0.12   0.00   0.12   0.00   0.00   0.00   0.00   0.03   -0.00  20.00
 20:45    0.00     0.00   0.11   0.00   0.11   0.00   0.00   0.00   0.00   0.02   -0.00  20.00
 21:00    0.00     0.00   0.08   0.00   0.08   0.00   0.00   0.00   0.00   0.02   -0.00  20.00
 21:15    0.00     0.00   0.07   0.00   0.07   0.00   0.00   0.00   0.00   0.02   -0.00  20.00
 21:30    0.00     0.00   0.05   0.00   0.05   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 21:45    0.00     0.00   0.05   0.00   0.05   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 22:00    0.00     0.00   0.05   0.00   0.05   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 22:15    0.00     0.00   0.05   0.00   0.05   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 22:30    0.00     0.00   0.04   0.00   0.04   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 22:45    0.00     0.00   0.04   0.00   0.04   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 23:00    0.00     0.00   0.03   0.00   0.03   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 23:15    0.00     0.00   0.03   0.00   0.03   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 23:30    0.00     0.00   0.02   0.00   0.02   0.00   0.00   0.00   0.00   0.01   -0.00  20.00
 23:45    0.00     0.00   0.02   0.00   0.02   0.00   0.00   0.00   0.00   0.00   -0.00  20.00
Totaal    0.00     0.73   1.84   1.53   2.89   0.00   0.00   0.00   1.85   0.47   -0.38       

2025-10-20 12:00:08 info: Consumption               1.84 (kWh)
2025-10-20 12:00:08 info: Cost consumption          0.47 (€)
2025-10-20 12:00:08 info: Tariff consumption        0.258 (€/kWh)
2025-10-20 12:00:08 info: Production                1.53 (kWh)
2025-10-20 12:00:08 info: Profit production        -0.38 (€)
2025-10-20 12:00:08 info: Tariff production         0.250 (€/kWh)

2025-10-20 12:00:08 info: 
Calculation profit after optimize in €
Cost before optimize              -0.38
Cost consumption      0.47
Profit production    -0.38
Cycle cost            0.01
Battery storage       0.02
Boiler storage        0.00
Total                 0.12
Cost after optimize               0.12
Profit:                          -0.49
2025-10-20 12:00:08 info: Doorzetten van alle settings naar HA
2025-10-20 12:00:08 info: Grid set point: -197.0 W
2025-10-20 12:00:08 info: Cycle cost Batterij: 0.01 euro
2025-10-20 12:00:08 info: Netto vermogen naar(+)/uit(-) omvormer Batterij: 0 W
2025-10-20 12:00:08 info: Balanceren: False
2025-10-20 12:00:08 info: Vermogen uit batterij: -21W
2025-10-20 12:00:08 info: Vermogen dat binnenkomt van pv: 21W
2025-10-20 12:00:08 info: Vermogen dat binnenkomt van ac: 0W
2025-10-20 12:00:08 info: Waarde SoC na eerste uur: 22.1%

Acties:
  • +1 Henk 'm!

  • itavero
  • Registratie: Oktober 2004
  • Nu online
Het is dat ik al zoveel hobbyprojectjes heb, maar anders zou ik denk ik de configuratie UI een keer wat liefde geven.
Naast dat deze op mijn smartphone onbruikbaar is (ik denk soms een kleine tweak te maken, maar kan nooit goed scrollen in die JSON viewer), denk ik dat het bijvoorbeeld heel handig zou zijn als je suggesties krijgt wanneer je entiteiten op moet/kunt geven voor een bepaalde instelling (inclusief eventueel de suggestie om een nieuwe helper aan te maken die aan de verwachtingen van DAO voldoet).

De meeste fouten die ik zelf namelijk heb gemaakt kwamen doordat ik net niet helemaal goed had gelezen welke type/opties DAO verwacht voor een entiteit of doordat ik een tikfoutje maakte in de naam van een entiteit.
Ook andere handige features, zoals bijvoorbeeld het bepalen van de kwartierwaarden voor een machine op basis van historische data uit je HA instance zouden dan geintegreerd kunnen worden (heb hier nu een Python scriptje voor gemaakt.. zal binnenkort eens kijken of ik dit ergens kan delen).

Maar goed, helaas heb ik maar beperkte tijd 😅

Acties:
  • 0 Henk 'm!

  • Los Tigros
  • Registratie: Augustus 2009
  • Laatst online: 20:13
Zijn er meer mensen die problemen hebben met de addon? Werkt tot gister goed maar krijg nu zo lijkt het de day ahead prijzen niet meer binnen. UPDATE: Ligt aan ENTSO zo lijkt het. Voor nu even omgezet naar Nordpool en werkt weer goed.

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
2025-10-21 11:15:00 fout: Er is een fout opgetreden, zie de fout-tracering
Traceback (most recent call last):
  File "/root/dao/prog/da_base.py", line 623, in run_task_function
    getattr(self, run_task["function"])()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/da_base.py", line 561, in calc_optimum
    dacalc.calc_optimum()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/root/dao/prog/day_ahead.py", line 93, in calc_optimum
    price_data = report.get_price_data(
        dt.datetime.fromtimestamp(start_hour), end=None, interval=self.interval
    )
  File "/root/dao/prog/da_report.py", line 2847, in get_price_data
    end = datetime.datetime.strptime(df_da["time"].iloc[-1], "%Y-%m-%d %H:%M")
                                     ~~~~~~~~~~~~~~~~~~^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1192, in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1753, in _getitem_axis
    self._validate_integer(key, axis)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/pandas/core/indexing.py", line 1686, in _validate_integer
    raise IndexError("single positional indexer is out-of-bounds")
IndexError: single positional indexer is out-of-bounds
single positional indexer is out-of-bounds
[2025-10-21 11:29:48 +0200] [12] [CRITICAL] WORKER TIMEOUT (pid:22)
[2025-10-21 11:29:48 +0200] [22] [fout] Error handling request /
Traceback (most recent call last):
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/gunicorn/workers/sync.py", line 134, in handle
    self.handle_request(listener, req, client, addr)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/gunicorn/workers/sync.py", line 177, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/flask/app.py", line 1536, in __call__
    return self.wsgi_app(environ, start_response)
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  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 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 213, in menu
    return run_process()
  File "/root/dao/webserver/app/routes.py", line 342, in run_process
    proc = run(cmd, stdout=PIPE, stderr=PIPE)
  File "/usr/lib/python3.13/subprocess.py", line 556, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
                     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/subprocess.py", line 1222, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
                     ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/subprocess.py", line 2128, in _communicate
    ready = selector.select(timeout)
  File "/usr/lib/python3.13/selectors.py", line 398, in select
    fd_event_list = self._selector.poll(timeout)
  File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/gunicorn/workers/base.py", line 204, in handle_abort
    sys.exit(1)
    ~~~~~~~~^^^
SystemExit: 1

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op dinsdag 21 oktober 2025 @ 07:52:
[...]

Hoi @Animal we komen hier vast wel uit. Je bent al een heel eind, dus geef de moed niet op :). Zou je ten eerste je post willen aanpassen en de code blokken ook nog tussen een quote blok willen opnemen? Dat scheelt de toevallige voorbijganger een hoop gescroll op het scherm ;)

Je hebt geluk, de instellingen voor zonnepanelen en battery heb ik al uitgebreid beschreven in de wiki van DAO heb je daar ook naar gekeken?
De “rits aan foutmeldingen” is maar één foutmelding en is op “entity set operating mode”, degene waar jij geen idee hebt wat je moet invullen. In de wiki staat: “ Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.”.
Deze entiteit is optioneel, dus als je hem niet nodig hebt, lekker weg laten, anders vullen met keuzes “Aan” en “Uit”.
De hoge pv opwek komt waarschijnlijk door een te hoge yield. Reken die nog eens goed na (staat ook duidelijk in de wiki). 5x een zelfde yield voor oost, west en zuid is sowieso verdacht. Heb je ook bewust de strings op Oost en West er 2 x in staan? Tip is om zoveel mogelijk gelijke dingen samen te voegen, dat scheelt DAO rekentijd. Dus die 2 op Oost samenvoegen en die 2 op West ook.
Fijn. Ik gebruik al een hele tijd DOCS.md en daar staat minder informatie in lijkt het? De Wiki is vele malen duidelijker. Ik kan weer even vooruit
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
Logging van bewerking "Optimaliseringsberekening zonder debug":

2025-10-21 12:48:57 info: Day Ahead Optimalisering versie: 2025.10.5.rc6
2025-10-21 12:48:57 info: Day Ahead Optimalisering gestart op: 21-10-2025 12:48:57
2025-10-21 12:48:57 info: Day Ahead Optimalisatie gestart: 21-10-2025 12:48:57 taak: calc_optimum
2025-10-21 12:48:57 info: Debug = False
2025-10-21 12:48:57 waarschuwing: "last invoice" (2022-09-01) is verouderd en moet worden bijgewerkt
2025-10-21 12:48:57 info: Baseload uit instellingen
2025-10-21 12:48:57 info: Start waarden: 
      uur                tijd   p_l   p_t  base  pv_ac  pv_dc
0   12:00 2025-10-21 12:00:00 0.205 0.205 0.310  0.405      0
1   13:00 2025-10-21 13:00:00 0.184 0.184 0.330  5.016      0
2   14:00 2025-10-21 14:00:00 0.186 0.186 0.330  3.385      0
3   15:00 2025-10-21 15:00:00 0.215 0.215 0.330  1.153      0
4   16:00 2025-10-21 16:00:00 0.230 0.230 0.330  1.388      0
5   17:00 2025-10-21 17:00:00 0.265 0.265 0.330  0.392      0
6   18:00 2025-10-21 18:00:00 0.292 0.292 0.330  0.039      0
7   19:00 2025-10-21 19:00:00 0.289 0.289 0.330  0.000      0
8   20:00 2025-10-21 20:00:00 0.269 0.269 0.320  0.000      0
9   21:00 2025-10-21 21:00:00 0.245 0.245 0.310  0.000      0
10  22:00 2025-10-21 22:00:00 0.245 0.245 0.310  0.000      0
11  23:00 2025-10-21 23:00:00 0.236 0.236 0.310  0.000      0
2025-10-21 12:48:58 info: No reduced hours applied for Marstek Venus-E 5.12kWh
2025-10-21 12:48:58 info: Startwaarde SoC Marstek Venus-E 5.12kWh: 12.0%

2025-10-21 12:48:58 info: Boiler niet aanwezig of staat uit, boiler wordt niet ingepland
2025-10-21 12:48:58 info: Warmtepomp niet aanwezig of enabled - warmtepomp wordt niet ingepland

2025-10-21 12:48:58 info: Strategie: minimale kosten
2025-10-21 12:48:58 info: Maximale fout (maximal gap): 0.005000 euro
2025-10-21 12:48:59 info: Rekentijd: 0.07  sec
2025-10-21 12:48:59 info: Het programma heeft een optimale oplossing gevonden.
2025-10-21 12:48:59 info: In- en uitgaande energie per uur batterij Marstek Venus-E 5.12kWh
   uur   ac->    eff   ->dc pv->dc   dc->    eff  ->bat  o_eff    SoC
          kWh      %    kWh    kWh    kWh      %    kWh      %      %
 12:00   0.37  90.10   0.33   0.00   0.33  93.50   0.31  84.24  18.06
 13:00   2.50  90.17   2.25   0.00   2.25  93.50   2.11  84.31  59.23
 14:00   2.48  90.17   2.23   0.00   2.23  93.50   2.09  84.31 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   0.00     --   0.00   0.00   0.00     --   0.00     -- 100.00
 18:00  -2.18  99.28  -2.20   0.00  -2.20  93.50  -2.35  92.83  54.08
 19:00  -2.00  99.28  -2.01   0.00  -2.01  93.50  -2.15  92.83  12.00
 20:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 21:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 22:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
 23:00   0.00     --   0.00   0.00   0.00     --   0.00     --  12.00
Totaal   1.16     --   0.61   0.00   0.61     --   0.00     --       
2025-10-21 12:48:59 info: Berekende prognoses: 
   uur  bat_in  bat_out   cons   prod   base   boil     wp     ev  pv_ac   cost  profit  b_tem
 12:00    0.37     0.00   0.02   0.00   0.31   0.00   0.00   0.00   0.40   0.00   -0.00  20.00
 13:00    2.50     0.00   0.00   2.19   0.33   0.00   0.00   0.00   5.02   0.00   -0.40  20.00
 14:00    2.48     0.00   0.00   0.58   0.33   0.00   0.00   0.00   3.39   0.00   -0.11  20.00
 15:00    0.00     0.00   0.00   0.82   0.33   0.00   0.00   0.00   1.15   0.00   -0.18  20.00
 16:00    0.00     0.00   0.00   1.06   0.33   0.00   0.00   0.00   1.39   0.00   -0.24  20.00
 17:00    0.00     0.00   0.00   0.06   0.33   0.00   0.00   0.00   0.39   0.00   -0.02  20.00
 18:00    0.00     2.18   0.00   1.89   0.33   0.00   0.00   0.00   0.04   0.00   -0.55  20.00
 19:00    0.00     2.00   0.00   1.67   0.33   0.00   0.00   0.00   0.00   0.00   -0.48  20.00
 20:00    0.00     0.00   0.32   0.00   0.32   0.00   0.00   0.00   0.00   0.09   -0.00  20.00
 21:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 22:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.08   -0.00  20.00
 23:00    0.00     0.00   0.31   0.00   0.31   0.00   0.00   0.00   0.00   0.07   -0.00  20.00
Totaal    5.34     4.18   1.27   8.27   3.87   0.00   0.00   0.00  11.78   0.32   -1.98       

2025-10-21 12:48:59 info: Consumption               1.27 (kWh)
2025-10-21 12:48:59 info: Cost consumption          0.32 (€)
2025-10-21 12:48:59 info: Tariff consumption        0.248 (€/kWh)
2025-10-21 12:48:59 info: Production                8.27 (kWh)
2025-10-21 12:48:59 info: Profit production        -1.98 (€)
2025-10-21 12:48:59 info: Tariff production         0.240 (€/kWh)

2025-10-21 12:48:59 info: 
Calculation profit after optimize in €
Cost before optimize              -1.40
Cost consumption      0.32
Profit production    -1.98
Cycle cost            0.05
Battery storage      -0.00
Boiler storage        0.00
Total                -1.62
Cost after optimize              -1.62
Profit:                           0.22
2025-10-21 12:48:59 info: Doorzetten van alle settings naar HA
2025-10-21 12:48:59 info: Grid set point: 111.0 W
2025-10-21 12:48:59 info: Cycle cost Marstek Venus-E 5.12kWh: 0.05 euro
2025-10-21 12:48:59 info: Netto vermogen naar(+)/uit(-) omvormer Marstek Venus-E 5.12kWh: 2000 W
2025-10-21 12:48:59 info: Balanceren: False
2025-10-21 12:48:59 info: Vermogen uit batterij: -1802W
2025-10-21 12:48:59 info: Vermogen dat binnenkomt van pv: 0W
2025-10-21 12:48:59 info: Vermogen dat binnenkomt van ac: 1802W
2025-10-21 12:48:59 info: Waarde SoC na eerste uur: 18.1%
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f530dbb48b0>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f530e38ac50>
Bijna geen errors meer. Alleen een database error maar dat ligt aan de laatste python update dus
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at

[ Voor 64% gewijzigd door Animal op 21-10-2025 13:12 ]


Acties:
  • +1 Henk 'm!

  • BBuilds
  • Registratie: November 2013
  • Laatst online: 23-10 09:33
Torch1969 schreef op dinsdag 21 oktober 2025 @ 07:52:
[...]

Hoi @Animal we komen hier vast wel uit. Je bent al een heel eind, dus geef de moed niet op :). Zou je ten eerste je post willen aanpassen en de code blokken ook nog tussen een quote blok willen opnemen? Dat scheelt de toevallige voorbijganger een hoop gescroll op het scherm ;)

Je hebt geluk, de instellingen voor zonnepanelen en battery heb ik al uitgebreid beschreven in de wiki van DAO heb je daar ook naar gekeken?
De “rits aan foutmeldingen” is maar één foutmelding en is op “entity set operating mode”, degene waar jij geen idee hebt wat je moet invullen. In de wiki staat: “ Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.”.
Deze entiteit is optioneel, dus als je hem niet nodig hebt, lekker weg laten, anders vullen met keuzes “Aan” en “Uit”.
De hoge pv opwek komt waarschijnlijk door een te hoge yield. Reken die nog eens goed na (staat ook duidelijk in de wiki). 5x een zelfde yield voor oost, west en zuid is sowieso verdacht. Heb je ook bewust de strings op Oost en West er 2 x in staan? Tip is om zoveel mogelijk gelijke dingen samen te voegen, dat scheelt DAO rekentijd. Dus die 2 op Oost samenvoegen en die 2 op West ook.
Ondertussen DAO bijna helemaal geconfigureerd met de DOCS.md maar deze Wiki was ik ook nog niet tegengekomen. Die is inderdaad een pak duidelijker.
Bedankt voor het maken en het delen @Torch1969 !

Acties:
  • +1 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22:03
Ik heb nog een interessante casus. Gisteren was de hoogste stroomprijspiek de laatste piek, maar dus wel de interessantste. De batterij was hierbij al flink ontladen, waardoor deze niet meer op zijn piekvermogen kon gaan werken.

We hebben nu al (dis)charge stages, hier zou per item eigenlijk een min_soc bij moeten komen als voorwaarde. Ik denk even hardop hoe dat eruit zou kunnen zien:

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
"discharge stages": [
      {
        "power": 0.0,
        "efficiency": 1, 
        "min_soc": 0 (=default)
      },
      {
        "power": 500.0,
        "efficiency": 0.94
      },
      {
        "power": 1000.0,
        "efficiency": 0.95
      },
      {
        "power": 4000.0,
        "efficiency": 0.95,
        "min_soc": 30
      },
      {
        "power": 8000.0,
        "efficiency": 0.93,
        "min_soc": 50 (betekent dat 8kW discharge alleen kan bij een SoC > 50%)
      }
]


Geen idee of dit kan, maar ik zag gisteren dus een gewenste discharge van 10kW, maar de batterij kon maar maar 3kW output leveren.

En nog even een klein applausje voor KC27! Deze maand heb (so far) netto 112 kWh afgenomen en er toch 12,15 voor teruggekregen. Dat zijn de mooie sommetjes.

[ Voor 7% gewijzigd door storeman op 21-10-2025 16:39 ]

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!
Er klopt inderdaad iets niet.
Het lijkt erop dat de pv_dc tijdens de berekening wordt gereduceerd.
Ik kan er nu even niet naar kijken (laptop kapot ☹️), maar zodra die weer up en running is kom ik erop terug.

[ Voor 5% gewijzigd door KC27 op 21-10-2025 16:39 ]

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


Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op dinsdag 21 oktober 2025 @ 07:52:
[...]

Hoi @Animal we komen hier vast wel uit. Je bent al een heel eind, dus geef de moed niet op :). Zou je ten eerste je post willen aanpassen en de code blokken ook nog tussen een quote blok willen opnemen? Dat scheelt de toevallige voorbijganger een hoop gescroll op het scherm ;)

Je hebt geluk, de instellingen voor zonnepanelen en battery heb ik al uitgebreid beschreven in de wiki van DAO heb je daar ook naar gekeken?
De “rits aan foutmeldingen” is maar één foutmelding en is op “entity set operating mode”, degene waar jij geen idee hebt wat je moet invullen. In de wiki staat: “ Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.”.
Deze entiteit is optioneel, dus als je hem niet nodig hebt, lekker weg laten, anders vullen met keuzes “Aan” en “Uit”.
De hoge pv opwek komt waarschijnlijk door een te hoge yield. Reken die nog eens goed na (staat ook duidelijk in de wiki). 5x een zelfde yield voor oost, west en zuid is sowieso verdacht. Heb je ook bewust de strings op Oost en West er 2 x in staan? Tip is om zoveel mogelijk gelijke dingen samen te voegen, dat scheelt DAO rekentijd. Dus die 2 op Oost samenvoegen en die 2 op West ook.
String 1 Hoymiles micro omvormer >> met 4 inputs (2x noord oost en 2x oost west (zo'n dakje zeg maar).
Ik heb de yield berekend voor elk zonnepaneel via de berekening (elk paneel van string 1 is 430wp)
String 2 Hoymiles micro omvormer >> is een paneel op zuid oost van 430wp
String 3 Hoymiles micro omvormer >> is een groter paneel op zuid west van 450wp

Mis ik iets?

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
BBuilds schreef op dinsdag 21 oktober 2025 @ 12:52:
[...]


Ondertussen DAO bijna helemaal geconfigureerd met de DOCS.md maar deze Wiki was ik ook nog niet tegengekomen. Die is inderdaad een pak duidelijker.
Bedankt voor het maken en het delen @Torch1969 !
De Wiki is nog niet compleet, is nog wat Work in progress voor de komende winter :)

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op dinsdag 21 oktober 2025 @ 13:23:
[...]

String 1 Hoymiles micro omvormer >> met 4 inputs (2x noord oost en 2x oost west (zo'n dakje zeg maar).
Ik heb de yield berekend voor elk zonnepaneel via de berekening (elk paneel van string 1 is 430wp)
String 2 Hoymiles micro omvormer >> is een paneel op zuid oost van 430wp
String 3 Hoymiles micro omvormer >> is een groter paneel op zuid west van 450wp

Mis ik iets?
( 430Wp x 0,85 ) / 400.000 = 0,00091375
Ik zou die 2x430 Wp op noordoost gewoon bij elkaar optellen (dus 860 Wp met yield 0,0018275) en die van zuid west ook

[ Voor 10% gewijzigd door Torch1969 op 21-10-2025 18:44 ]


Acties:
  • +1 Henk 'm!

  • balk
  • Registratie: Januari 2000
  • Laatst online: 05:37
itavero schreef op dinsdag 21 oktober 2025 @ 09:50:
Het is dat ik al zoveel hobbyprojectjes heb, maar anders zou ik denk ik de configuratie UI een keer wat liefde geven.
Naast dat deze op mijn smartphone onbruikbaar is (ik denk soms een kleine tweak te maken, maar kan nooit goed scrollen in die JSON viewer), denk ik dat het bijvoorbeeld heel handig zou zijn als je suggesties krijgt wanneer je entiteiten op moet/kunt geven voor een bepaalde instelling (inclusief eventueel de suggestie om een nieuwe helper aan te maken die aan de verwachtingen van DAO voldoet).

De meeste fouten die ik zelf namelijk heb gemaakt kwamen doordat ik net niet helemaal goed had gelezen welke type/opties DAO verwacht voor een entiteit of doordat ik een tikfoutje maakte in de naam van een entiteit.
Ook andere handige features, zoals bijvoorbeeld het bepalen van de kwartierwaarden voor een machine op basis van historische data uit je HA instance zouden dan geintegreerd kunnen worden (heb hier nu een Python scriptje voor gemaakt.. zal binnenkort eens kijken of ik dit ergens kan delen).

Maar goed, helaas heb ik maar beperkte tijd 😅
Ja, ik heb er ook wel eens over nagedacht. Alleen ben ik er technisch niet toe in staat om zoiets te maken. Misschien wel nadenken over hoe het zou kunnen werken.

Ik heb chatGPT laatst wel om raad gevraagd, en daar kwam wel iets nuttigs uit. Het zou nuttig zijn om de config aan te kunnen passen met een api maar ook via een flashy web interface. En dat beiden wegschrijven naar het zelfde bestand. Ofzoiets.

Acties:
  • +2 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op dinsdag 21 oktober 2025 @ 18:41:
[...]

( 430Wp x 0,85 ) / 400.000 = 0,00091375
Ik zou die 2x430 Wp op noordoost gewoon bij elkaar optellen (dus 860 Wp met yield 0,0018275) en die van zuid west ook
Super. De voorspelling lijkt een stuk beter te kloppen. Ik ga vavavond aan de slag om de helpers die ik gemaakt heb voor DAO te koppelen aan de lillygo esphome sensoren van mijn Marstek. Mocht iemand nog handige automations hebben of blueprints dan laat zeker weten.

Edit: ik ga weer opnieuw starten :>

[ Voor 145% gewijzigd door Animal op 22-10-2025 18:56 ]


Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 16:31:
[...]

Super. De voorspelling lijkt een stuk beter te kloppen. Ik ga vavavond aan de slag om de helpers die ik gemaakt heb voor DAO te koppelen aan de lillygo esphome sensoren van mijn Marstek. Mocht iemand nog handige automations hebben of blueprints dan laat zeker weten.

Edit: ik ga weer opnieuw starten :>
Begin eenvoudig, alleen de noodzakelijke entiteiten. Voor een Sessy thuisbatterij heb ik in feite alleen het power setpoint nodig (weet niet wat er bij Marstek nodig is). Ik heb de volgende configuratie:
De helpers:
Afbeeldingslocatie: https://tweakers.net/i/eBnrUuSBGD_Ii6gzl4rLqapvoUk=/800x/filters:strip_exif()/f/image/2piPNGUJwqdZ7juXgNLLTk6S.png?f=fotoalbum_large
En in een dashboard:
Afbeeldingslocatie: https://tweakers.net/i/XCFXaVN1anyu5k2bXNTWj2_6t74=/x800/filters:strip_exif()/f/image/7ePecnaA3nfuUjLuNY0r4n0w.png?f=fotoalbum_large

En een automatisering die de setpoint helper doorzet naar het power setpoint van mijn Sessy en één die een balanceer automatisering aanzet.

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op woensdag 22 oktober 2025 @ 20:10:
[...]

Begin eenvoudig, alleen de noodzakelijke entiteiten. Voor een Sessy thuisbatterij heb ik in feite alleen het power setpoint nodig (weet niet wat er bij Marstek nodig is). Ik heb de volgende configuratie:
De helpers:
[Afbeelding]
En in een dashboard:
[Afbeelding]

En een automatisering die de setpoint helper doorzet naar het power setpoint van mijn Sessy en één die een balanceer automatisering aanzet.
Dankjewel! Ik heb bij mijn Marstek een setpoint voor charge en discharge. Maar mijn input_number.dao_set_power_feedin sensor kan nu zowel negatief als positief zijn.
Zodra input_number.dao_set_power_feedin boven de nul komt dan moet de batterij op de charge stand komen
Zodra input_number.dao_set_power_feedin onder de nul is dan moet de batterij die waarde discharge

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 20:14:
[...]

Dankjewel! Ik heb bij mijn Marstek een setpoint voor charge en discharge. Maar mijn input_number.dao_set_power_feedin sensor kan nu zowel negatief als positief zijn.
Zodra input_number.dao_set_power_feedin boven de nul komt dan moet de batterij op de charge stand komen
Zodra input_number.dao_set_power_feedin onder de nul is dan moet de batterij die waarde discharge
Dan maak je een automatisering die reageert op wijziging van input_number.dao_set_power_feedin
In het actions deel maak je een "Kiezen" actie en daarbinnen maak je drie opties: input_number.dao_set_power_feedin > 0, dan als actie stel charge in (en zet discharge op 0?)
input_number.dao_set_power_feedin < 0, dan als actie stel discharge in (en zet charge op 0?)
input_number.dao_set_power_feedin = 0, dan als actie stel charge en discharge op 0 in.

Acties:
  • +1 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op woensdag 22 oktober 2025 @ 20:20:
[...]

Dan maak je een automatisering die reageert op wijziging van input_number.dao_set_power_feedin
In het actions deel maak je een "Kiezen" actie en daarbinnen maak je drie opties: input_number.dao_set_power_feedin > 0, dan als actie stel charge in (en zet discharge op 0?)
input_number.dao_set_power_feedin < 0, dan als actie stel discharge in (en zet charge op 0?)
input_number.dao_set_power_feedin = 0, dan als actie stel charge en discharge op 0 in.
Top! Al veel stappen verder. Ik heb nu de automation van @Mirabis aangehouden. Daarin worden ook keuzes gemaakt bij waarde boven of onder 0. De device ID's en entity id's heb ik aangepast.
Dank zover!

Acties:
  • 0 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 21:00:
[...]

Top! Al veel stappen verder. Ik heb nu de automation van @Mirabis aangehouden. Daarin worden ook keuzes gemaakt bij waarde boven of onder 0. De device ID's en entity id's heb ik aangepast.
Dank zover!
Fijn, ga je de wekker op vannacht 4 uur zetten om te kijken of het werkt? ;) of plant DAO voor jou dan geen laadmomentje.

Afbeeldingslocatie: https://tweakers.net/i/3IVs9bRIq4Lhy-UtEDKmZ0IxNgA=/800x/filters:strip_exif()/f/image/0RIrQz79aFzvzaJbDb0HQPrm.png?f=fotoalbum_large

@KC27 er lijkt nog een foutje in de balkjes te zitten. Als de teruglevering accu in én teruglevering is (zie morgen 13u), dan is het oranje balkje (accu in) niet lang genoeg. (Versie 2025.10.4)

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op woensdag 22 oktober 2025 @ 21:24:
[...]

Fijn, ga je de wekker op vannacht 4 uur zetten om te kijken of het werkt? ;) of plant DAO voor jou dan geen laadmomentje.

[Afbeelding]

@KC27 er lijkt nog een foutje in de balkjes te zitten. Als de teruglevering accu in én teruglevering is (zie morgen 13u), dan is het oranje balkje (accu in) niet lang genoeg. (Versie 2025.10.4)
Ik kan bij reports>>morgen en bij accu in zien dat er om 5:00 2kWh geladen gaat worden.
Is een grafisch rapport pas te zien op de nieuwe dag(op de hoofdpagina?)
Afbeeldingslocatie: https://tweakers.net/i/TsLbzHx_49LwuVXL0G2nZhhSW3w=/800x/filters:strip_exif()/f/image/PeqP9G16wsnpHUukimFBmMHJ.png?f=fotoalbum_large

Ik zet de wekker!

Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 21:28:
[...]

Ik kan bij reports>>morgen en bij accu in zien dat er om 5:00 2kWh geladen gaat worden.
Is een grafisch rapport pas te zien op de nieuwe dag(op de hoofdpagina?)

[...]
[Afbeelding]

Ik zet de wekker!
Ja, home pagina selecteren en dan grafiek. En dan blader je eventueel naar de laatste optimalisatie berekening.

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op woensdag 22 oktober 2025 @ 21:31:
[...]

Ja, home pagina selecteren en dan grafiek. En dan blader je eventueel naar de laatste optimalisatie berekening.
Dankje. Bij reports kan ik wel een prognose en plan vinden voor de volgende dag.
Bij home kan ik alleen het laatste rapport bekijken. Dit is gegenereerd op 22-10-2025 om 21:00 (toen day ahead prijzen etc al bekend waren).

Moet ik de grafiek interpreteren alsof hij voor morgen is? Dus komende uren en vanaf links voor na 0:00?


Niet home maar Reports en dan grafiek en dan morgen selecteren. Wekker staat om 5:00. bedankt voor alle hulp!

[ Voor 11% gewijzigd door Animal op 22-10-2025 21:57 ]


Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 21:51:
[...]

Dankje. Bij reports kan ik wel een prognose en plan vinden voor de volgende dag.
Bij home kan ik alleen het laatste rapport bekijken. Dit is gegenereerd op 22-10-2025 om 21:00 (toen day ahead prijzen etc al bekend waren).

Moet ik de grafiek interpreteren alsof hij voor morgen is? Dus komende uren en vanaf links voor na 0:00?
Klopt, links is eerstvolgende uur en loopt zo door naar rechts tot zover de uurprijzen bekend zijn (uren staan er ook onder). Elk uur dat er een nieuwe berekening wordt gemaakt een nieuwe grafiek met een uur minder (links eraf) en om 13u komen er weer 24 uur bij voor de volgende dag aan de rechterkant.

Acties:
  • 0 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 21:51:
[...]

Dankje. Bij reports kan ik wel een prognose en plan vinden voor de volgende dag.
Bij home kan ik alleen het laatste rapport bekijken. Dit is gegenereerd op 22-10-2025 om 21:00 (toen day ahead prijzen etc al bekend waren).

Moet ik de grafiek interpreteren alsof hij voor morgen is? Dus komende uren en vanaf links voor na 0:00?


Niet home maar Reports en dan grafiek en dan morgen selecteren. Wekker staat om 5:00. bedankt voor alle hulp!
Ik heb het over deze:
Afbeeldingslocatie: https://tweakers.net/i/0mKm4CXnPO_DvwZIMo_85PVXYv8=/x800/filters:strip_exif()/f/image/2lmMIMMqwvINW05VHuNgMoq1.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Torch1969 schreef op woensdag 22 oktober 2025 @ 21:57:
[...]

Klopt, links is eerstvolgende uur en loopt zo door naar rechts tot zover de uurprijzen bekend zijn (uren staan er ook onder). Elk uur dat er een nieuwe berekening wordt gemaakt een nieuwe grafiek met een uur minder (links eraf) en om 13u komen er weer 24 uur bij voor de volgende dag aan de rechterkant.
Maar dan zou dus de 21:00 balk hetzelfde moeten zijn? (levering is een klein beetje minder bij de linker 21:00 uur)
Of is heel deze grafiek voor morgen en niet voor vandaag?

Overigens kan ik bij Reports>>grafiek wel morgen kiezen en de hele dag bekijken. Maar misschien interpreteer ik de grafiek bij Home niet goed
Afbeeldingslocatie: https://tweakers.net/i/72phhzDMyL1-YrLDEDuCLLjHYj8=/800x/filters:strip_exif()/f/image/eurXoNwxHYT5zdieHOXBiMBc.png?f=fotoalbum_large

[ Voor 11% gewijzigd door Animal op 22-10-2025 22:04 ]


Acties:
  • +1 Henk 'm!
Torch1969 schreef op woensdag 22 oktober 2025 @ 21:24:
[...]

Fijn, ga je de wekker op vannacht 4 uur zetten om te kijken of het werkt? ;) of plant DAO voor jou dan geen laadmomentje.

[Afbeelding]

@KC27 er lijkt nog een foutje in de balkjes te zitten. Als de teruglevering accu in én teruglevering is (zie morgen 13u), dan is het oranje balkje (accu in) niet lang genoeg. (Versie 2025.10.4)
Ik zie het.
Ik ga ernaar kijken.
Dank voor de tip!

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


Acties:
  • +1 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
@KC27 Hoe moet ik deze setting interpreteren?

entity set operating mode string Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.

Ik zou graag willen dat de operating mode mijn zendure settings kan aanpassen, dus "aan" zou moeten worden "handmatig" en "uit" "standby". Vanwege het "minimaal opties" dacht ik dat dit te configureren of te mappen was. Of moet ik gewoon een automatisering laten kijken naar de DAO waardes en ze omzetten?

Edit: in de source gevonden dat het wel letterlijk Aan en Uit moeten zijn. Het zou heel tof zijn om in de config een mapping te kunnen opgeven, dan kan de batterij rechtstreeks worden aangestuurd.

dus zoiets als:

"entity set operating mode": "input_select.dao_zendure_operating_mode",
"entity set operating mode on": "Aan",
"entity set operating mode off": "Uit",

Zodat ik ze kan aanpassen.

[ Voor 25% gewijzigd door CopyCatz op 22-10-2025 22:58 ]


Acties:
  • 0 Henk 'm!
Gelukkig werkt mijn laptop weer :) .
Ik heb de fout gevonden en gerepareerd (iets met kwartieren :? )
Wordt in de volgende versie opgeleverd!

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


Acties:
  • +2 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Animal schreef op woensdag 22 oktober 2025 @ 22:01:
[...]

Maar dan zou dus de 21:00 balk hetzelfde moeten zijn? (levering is een klein beetje minder bij de linker 21:00 uur)
Of is heel deze grafiek voor morgen en niet voor vandaag?

Overigens kan ik bij Reports>>grafiek wel morgen kiezen en de hele dag bekijken. Maar misschien interpreteer ik de grafiek bij Home niet goed
[Afbeelding]
Links is 21u vandaag, rechts is 21u morgen. Dus grafiek is voor resterende uren van vandaag en heel morgen. Ik vermoed dat het balkje bij vandaag wat korter is omdat dit de grafiek is van een berekening van iets na 21u? Dan berekent DAO maar voor het resterende deel van dat uur, en dat is dus wat minder dan voor een heel uur….

Acties:
  • 0 Henk 'm!
CopyCatz schreef op woensdag 22 oktober 2025 @ 22:15:
@KC27 Hoe moet ik deze setting interpreteren?

entity set operating mode string Optioneel. Entiteit in HA waarmee je de omvormer aan/uit zet. Type "input_select" met minimaal opties "Aan" en "Uit". Hiermee kun je een automatisering triggeren die de benodigde acties uitvoert.

Ik zou graag willen dat de operating mode mijn zendure settings kan aanpassen, dus "aan" zou moeten worden "handmatig" en "uit" "standby". Vanwege het "minimaal opties" dacht ik dat dit te configureren of te mappen was. Of moet ik gewoon een automatisering laten kijken naar de DAO waardes en ze omzetten?
Je kunt twee dingen in HA doen:
  1. een input_select maken met de opties "Aan" en "Uit" en daar een automation aanhangen,die dat vertaalt naar jouw instellingen en deze doorzet naar jouw batterij
  2. de "entity set operating mode" helemaal weglaten in de settings en uit de waarde van de entity die je opgeeft bij "entity set power feedin" bepalen of je de omvormer naar "handmatig" (als waarde <>0) of "standby" (als waarde = 0) moet zetten.
Edit:
mappings klinkt leuk, maar is nu even te veel werk. Ik zet het op het to-do lijstje.
Maar als jij tijd over hebt, "be my guest" : maak een fork, pas het aan en dien een Pull Request in.

[ Voor 7% gewijzigd door KC27 op 22-10-2025 23:04 ]

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


Acties:
  • 0 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
KC27 schreef op woensdag 22 oktober 2025 @ 22:59:
[...]

Je kunt twee dingen in HA doen:
  1. een input_select maken met de opties "Aan" en "Uit" en daar een automation aanhangen,die dat vertaalt naar jouw instellingen en deze doorzet naar jouw batterij
  2. de "entity set operating mode" helemaal weglaten in de settings en uit de waarde van de entity die je opgeeft bij "entity set power feedin" bepalen of je de omvormer naar "handmatig" (als waarde <>0) of "standby" (als waarde = 0) moet zetten.
Had het al gezien, thanks. Zie mijn edit hierboven.

Acties:
  • +1 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Zojuist ook mijn vaatwasser, droger en wasmachine in DAO gezet.
DAO geeft keurig een calculated tijd aan (binnen de door mij gestelde time window, die ik trigger naar een switchbot.

Wat een prachtige software! Complimenten!

Is de log ergens nog terug te kijken. De log die je ziet na een run(zonder debug)?

Acties:
  • +1 Henk 'm!
Animal schreef op woensdag 22 oktober 2025 @ 23:50:
Zojuist ook mijn vaatwasser, droger en wasmachine in DAO gezet.
DAO geeft keurig een calculated tijd aan (binnen de door mij gestelde time window, die ik trigger naar een switchbot.

Wat een prachtige software! Complimenten!

Is de log ergens nog terug te kijken. De log die je ziet na een run(zonder debug)?
Ja, via Home en dan Tabel (naast Grafiek).
Daar kun je ook door bladeren met de "pijltjes".

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


Acties:
  • +2 Henk 'm!

  • CopyCatz
  • Registratie: September 2000
  • Laatst online: 01:20
KC27 schreef op woensdag 22 oktober 2025 @ 22:59:
[...]

Edit:
mappings klinkt leuk, maar is nu even te veel werk. Ik zet het op het to-do lijstje.
Maar als jij tijd over hebt, "be my guest" : maak een fork, pas het aan en dien een Pull Request in.
Done :) Hoe werkt het eigenlijk met testen? Ik gebruik dan mijn eigen fork om als addon in HA te zetten, blijven de gegevens bewaard als ik overschrijf?

[ Voor 18% gewijzigd door CopyCatz op 23-10-2025 09:19 ]


Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
Is het trouwens nodig om elk kwartier een nieuw plan te maken? Of geeft DAO de nieuwe instellingen door aan Home Assistant na elk kwartier?

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Wasmachine ging om 5 uur aan. Batterij werd geladen. helemaal top!

Nu kwam ik het volgende tegen.

Ik heb vandaag om 11:50 een time window aangegeven voor de droger. Namelijk tussen 12:00 en 17:00.
DAO heeft om 12:00 de calculated time aangepast naar 12:00. Alleen miste home assistant automation deze trigger. Iemand een verklaring? Toen ik de calculated start handmatig aanpaste naar 12:05 werkte de trigger wel

[ Voor 60% gewijzigd door Animal op 23-10-2025 12:40 ]


Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22:03
Deikke schreef op donderdag 23 oktober 2025 @ 12:10:
Is het trouwens nodig om elk kwartier een nieuw plan te maken? Of geeft DAO de nieuwe instellingen door aan Home Assistant na elk kwartier?
Jazeker! DAO probeert de realiteit te modelleren, maar we weten zeker dat de realiteit anders is dan het model. Dus je wil elk kwartier actualiseren. DAO geeft updates alleen door na een run, geplande waardes worden dus niet doorgezet zonder run.

"Chaos kan niet uit de hand lopen"


Acties:
  • +1 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Door een CSV export te maken vanuit Home assistant van mijn energy entity (vannacht tussen 5:00 en 8:00) heb ik Claude dit overzicht laten maken.
Handig om je machines te definiëren in DAO

Afbeeldingslocatie: https://tweakers.net/i/Pi5rxmIjZU8V6-LPn_bAauXHf44=/800x/filters:strip_exif()/f/image/AEuxjAqAQ6k6aKwWcxU8Rmdg.png?f=fotoalbum_large

Dan wordt het dus:
code:
1
2
3
4
5
6
7
"machines" : [
      { "name": "wasmachine",
        "programs":[
          {"name": "off",
           "power": []},
          {"name": "Stand D 40 graden",
           "power": [405, 1782, 398, 158, 142, 123, 104, 253]

[ Voor 20% gewijzigd door Animal op 23-10-2025 12:53 ]


Acties:
  • 0 Henk 'm!

  • Deikke
  • Registratie: Juni 2004
  • Laatst online: 23-10 16:10
storeman schreef op donderdag 23 oktober 2025 @ 12:21:
[...]


Jazeker! DAO probeert de realiteit te modelleren, maar we weten zeker dat de realiteit anders is dan het model. Dus je wil elk kwartier actualiseren. DAO geeft updates alleen door na een run, geplande waardes worden dus niet doorgezet zonder run.
Ja, maar die realiteit veranderd toch niet elk kwartier? Hoogstens is de SOC van de batterij een paar procentjes veranderd (naar verwachting). Prijzen veranderen 1x per dag en meteo gegevens worden 4x per dag ververst. Met uurprijzen werd er ook 1x per uur een nieuw plan getrokken.

Acties:
  • +1 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 23-10 16:44
Animal schreef op donderdag 23 oktober 2025 @ 12:11:
Wasmachine ging om 5 uur aan. Batterij werd geladen. helemaal top!

Nu kwam ik het volgende tegen.

Ik heb vandaag om 11:50 een time window aangegeven voor de droger. Namelijk tussen 12:00 en 17:00.
DAO heeft om 12:00 de calculated time aangepast naar 12:00. Alleen miste home assistant automation deze trigger. Iemand een verklaring? Toen ik de calculated start handmatig aanpaste naar 12:05 werkte de trigger wel
Misschien een offset van een minuut toevoegen aan je HA trigger?
Dan kan DOA nooit de huidige minuut missen.

Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 22:03
Deikke schreef op donderdag 23 oktober 2025 @ 13:16:
[...]

Ja, maar die realiteit veranderd toch niet elk kwartier? Hoogstens is de SOC van de batterij een paar procentjes veranderd (naar verwachting). Prijzen veranderen 1x per dag en meteo gegevens worden 4x per dag ververst. Met uurprijzen werd er ook 1x per uur een nieuw plan getrokken.
De SoC zal inderdaad de grootste variabele zijn, nu de meeste nog salderen en dus de accu meer als verdien-model hebben dan als netontlasting, zal dat nog meevallen. Als straks het salderen eraf is en er dus veel meer NOM gedraaid wordt, dan is die SoC nog belangrijker. Ook de meteo-gegevens, en dan met name de pv-opbrengsten, wijzigen ook gedurende de dag.

Verder, wat is het probleem van een keertje rekenen?

"Chaos kan niet uit de hand lopen"


Acties:
  • +1 Henk 'm!

  • Gameboy
  • Registratie: April 2000
  • Laatst online: 23:23
Animal schreef op donderdag 23 oktober 2025 @ 12:11:
Wasmachine ging om 5 uur aan. Batterij werd geladen. helemaal top!

Nu kwam ik het volgende tegen.

Ik heb vandaag om 11:50 een time window aangegeven voor de droger. Namelijk tussen 12:00 en 17:00.
DAO heeft om 12:00 de calculated time aangepast naar 12:00. Alleen miste home assistant automation deze trigger. Iemand een verklaring? Toen ik de calculated start handmatig aanpaste naar 12:05 werkte de trigger wel
HomeAssistant's time-triggers "triggeren" alleen op de exacte opgegeven tijd (de aanvang dan de seconde). Dus als een ander proces eerst een trigger-tijd moet instellen (hoe kort ook), dan is die trigger-tijd in HA al voorbij, en zal die flow dus niet worden uitgevoerd.

Als je iets wilt triggeren in HA op een tijd, dan zul je moeten waarborgen dat het proces wat die trigger-tijd instelt, klaar is vòòr die in te stellen trigger-tijd.

[ Voor 8% gewijzigd door Gameboy op 23-10-2025 13:34 ]

6x 405 Wp Oost, 6x 405 Wp West | Zonneplan Day-Ahead | 1x Sessy 5 kWh


Acties:
  • 0 Henk 'm!

  • simnet
  • Registratie: Januari 2020
  • Laatst online: 00:33
Bugje:
Dao lijkt een issue te hebben met de scheduler als HomeAssistant API niet bereikbaar is. Ik kan het niet helemaal beoordelen; maar het volgende zie ik in de logging van de container terug:

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
Oct 23 05:50:25 hass systemd[1]: Started podman-dao.service.
Oct 23 05:50:25 hass podman-dao-start[467]: e3c8cd35de29fe2d8819b8bdaa6761dde338e0140e1233894da5b01c61167f75
Oct 23 05:50:25 hass dao[562]: => directory dao_data exist
Oct 23 05:50:25 hass dao[562]: => /root/dao/data doesn't exist, made
Oct 23 05:50:25 hass dao[562]: => /root/dao/webserver/app/static/data exist
Oct 23 05:50:28 hass dao[562]: Setting up watches.
Oct 23 05:50:28 hass dao[562]: Watches established.
Oct 23 05:50:29 hass dao[562]: [2025-10-23 05:50:29 +0200] [25] [INFO] Starting gunicorn 23.0.0
Oct 23 05:50:29 hass dao[562]: [2025-10-23 05:50:29 +0200] [25] [INFO] Listening at: http://0.0.0.0:5001 (25)
Oct 23 05:50:29 hass dao[562]: [2025-10-23 05:50:29 +0200] [25] [INFO] Using worker: sync
Oct 23 05:50:29 hass dao[562]: [2025-10-23 05:50:29 +0200] [67] [INFO] Booting worker with pid: 67
Oct 23 05:50:29 hass dao[562]: [2025-10-23 05:50:29 +0200] [68] [INFO] Booting worker with pid: 68
Oct 23 05:50:30 hass dao[562]: Traceback (most recent call last):
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/prog/da_scheduler.py", line 64, in <module>
Oct 23 05:50:30 hass dao[562]:     main()
Oct 23 05:50:30 hass dao[562]:     ~~~~^^
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/prog/da_scheduler.py", line 59, in main
Oct 23 05:50:30 hass dao[562]:     da_sched = DaScheduler("../data/options.json")
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/prog/da_scheduler.py", line 9, in __init__
Oct 23 05:50:30 hass dao[562]:     super().__init__(file_name)
Oct 23 05:50:30 hass dao[562]:     ~~~~~~~~~~~~~~~~^^^^^^^^^^^
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/prog/da_base.py", line 106, in __init__
Oct 23 05:50:30 hass dao[562]:     super().__init__(hassurl=self.hassurl, token=self.hasstoken)
Oct 23 05:50:30 hass dao[562]:     ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 36, in __init__
Oct 23 05:50:30 hass dao[562]:     self._assert_api_running()
Oct 23 05:50:30 hass dao[562]:     ~~~~~~~~~~~~~~~~~~~~~~~~^^
Oct 23 05:50:30 hass dao[562]:   File "/root/dao/venv/day_ahead/lib/python3.13/site-packages/hassapi/client/base.py", line 41, in _assert_api>
Oct 23 05:50:30 hass dao[562]:     raise ClientError("Home Assistant API is not running.")
Oct 23 05:50:30 hass dao[562]: hassapi.exceptions.ClientError: Home Assistant API is not running.
Oct 23 14:41:34 hass dao[562]: ../data/options.json MODIFY
Oct 23 14:41:34 hass dao[562]: ./watchdog.sh: line 6: kill: (27) - No such process
Oct 23 14:41:34 hass dao[562]: Setting up watches.
Oct 23 14:41:34 hass dao[562]: Watches established.


Vervolgens lijkt de scheduler te crashen. Sinds 05:45 is er ook geen enkele actie meer geweest vanuit dao.
Het saven van de config zorgt er voor dat de watchdog de scheduler herstart. Daardoor gaat ie ook weer werken.

Acties:
  • 0 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 19:57

Bravo

Second Best

Deikke schreef op donderdag 23 oktober 2025 @ 12:10:
Is het trouwens nodig om elk kwartier een nieuw plan te maken? Of geeft DAO de nieuwe instellingen door aan Home Assistant na elk kwartier?
DAO geeft de instellingen door aan HA na het maken van het nieuwe plan. Er is nog geen functie om zonder het maken van een optimalisatie de instellingen van het nieuwe kwartier aan HA te sturen, dus ook voor een wijziging van de parameters in HA is een run nodig.

Zoals anderen al aangeven is het ook handig om regelmatig een nieuwe optimalisatie berekening te doen, om zo de afwijkingen ten opzichte van de planning mee te kunnen nemen.
Je hebt de inputs die een of een paar keer per dag wijzigen (prijs, meteo), maar ook je interne zaken zoals verbruik/huisload (nooit gelijk aan berekende of ingegeven load), pv opwek (is nooit gelijk aan meteo forecast), verwarming (wordt indirect gestuurd, dus afwijking), boiler (douche/bad wordt niet gepland waardoor temperatuur ondergrens eerder bereikt kan worden) en daardoor andere SOC-waarden van de batterij.
Machines heb ik buiten beschouwing gelaten wegens de 'instant start' functie.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • 0 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Gameboy schreef op donderdag 23 oktober 2025 @ 13:32:
[...]


HomeAssistant's time-triggers "triggeren" alleen op de exacte opgegeven tijd (de aanvang dan de seconde). Dus als een ander proces eerst een trigger-tijd moet instellen (hoe kort ook), dan is die trigger-tijd in HA al voorbij, en zal die flow dus niet worden uitgevoerd.

Als je iets wilt triggeren in HA op een tijd, dan zul je moeten waarborgen dat het proces wat die trigger-tijd instelt, klaar is vòòr die in te stellen trigger-tijd.
DAO triggert niet iets in home assistant door middel van een tijd, maar schakelt een gekoppelde helper en via die helper de benodigde actie op een device. Of ik begrijp je niet goed?

Acties:
  • 0 Henk 'm!

  • Gameboy
  • Registratie: April 2000
  • Laatst online: 23:23
Torch1969 schreef op donderdag 23 oktober 2025 @ 16:59:
[...]

DAO triggert niet iets in home assistant door middel van een tijd, maar schakelt een gekoppelde helper en via die helper de benodigde actie op een device. Of ik begrijp je niet goed?
Het is goed mogelijk dat ik je opmerking niet correct heb geïnterpreteerd ;) Kun je de code van de HA trigger vermelden? En die van de helper die je gebruikt? En hoe dat door DAO wordt gebruikt?

6x 405 Wp Oost, 6x 405 Wp West | Zonneplan Day-Ahead | 1x Sessy 5 kWh


Acties:
  • +1 Henk 'm!

  • Torch1969
  • Registratie: Juni 2013
  • Laatst online: 23:48
Gameboy schreef op donderdag 23 oktober 2025 @ 17:29:
[...]


Het is goed mogelijk dat ik je opmerking niet correct heb geïnterpreteerd ;) Kun je de code van de HA trigger vermelden? En die van de helper die je gebruikt? En hoe dat door DAO wordt gebruikt?
De opzet is als volgt:
DAO -> configuratie-item -> | -> HA entiteit/helper -> automatisering -> Device

Bijvoorbeeld (zie mijn een stukje terug)
DAO -> entity_set_power_feedin -> | -> input_number.dao_sessy_dllu_set_power_feedin -> automatisering -> number.sessy_dllu_power_setpoint
Waarin de automatisering bij wijziging van input_number.dao_sessy_dllu_set_power_feedin de waarde doorzet naar number.sessy_dllu_power_setpoint. Dat is de daadwerkelijke entiteit die de accu aan het laden of leveren set met het door DAO berekende wattage.

DAO doet uit zichzelf niets. Die moet je eerst een duw geven (via een operatie in de scheduler). Elke keer dat je dat doet, bekijkt DAO hoe de zaken ervoor staan (prijzen, zonvoorspelling, in DAO geplande acties, actuele SOC, baseload etc.) en berekent dan vanuit die actuele situatie de optimale strategie voor de komende kwartieren of uren (tot zover prijzen bekend zijn). Als laatste geeft DAO dan aan alle geconfigureerde gekoppelde HA entiteiten door wat er op dat moment moet gebeuren. Dit blijft dan de status totdat DAO de volgende operatie moet doen, en dan begint dit riedeltje opnieuw.

Daarom is het dus ook belangrijk om, als je kwartierprijzen hebt, elk kwartier deze optimalisatie berekening te doen, want die zorgt ervoor dat de juiste acties voor dat kwartier (voortkomend uit de prijs) worden gestart.

Ikzelf heb nog uurprijzen en doe deze berekening gewoon per uur.

[ Voor 9% gewijzigd door Torch1969 op 23-10-2025 18:30 ]


Acties:
  • +1 Henk 'm!

  • Gameboy
  • Registratie: April 2000
  • Laatst online: 23:23
Torch1969 schreef op donderdag 23 oktober 2025 @ 18:25:
[...]

De opzet is als volgt:
DAO -> configuratie-item -> | -> HA entiteit/helper -> automatisering -> Device

Bijvoorbeeld (zie mijn een stukje terug)
DAO -> entity_set_power_feedin -> | -> input_number.dao_sessy_dllu_set_power_feedin -> automatisering -> number.sessy_dllu_power_setpoint
Waarin de automatisering bij wijziging van input_number.dao_sessy_dllu_set_power_feedin de waarde doorzet naar number.sessy_dllu_power_setpoint. Dat is de daadwerkelijke entiteit die de accu aan het laden of leveren set met het door DAO berekende wattage.

DAO doet uit zichzelf niets. Die moet je eerst een duw geven (via een operatie in de scheduler). Elke keer dat je dat doet, bekijkt DAO hoe de zaken ervoor staan (prijzen, zonvoorspelling, in DAO geplande acties, actuele SOC, baseload etc.) en berekent dan vanuit die actuele situatie de optimale strategie voor de komende kwartieren of uren (tot zover prijzen bekend zijn). Als laatste geeft DAO dan aan alle geconfigureerde gekoppelde HA entiteiten door wat er op dat moment moet gebeuren. Dit blijft dan de status totdat DAO de volgende operatie moet doen, en dan begint dit riedeltje opnieuw.

Daarom is het dus ook belangrijk om, als je kwartierprijzen hebt, elk kwartier deze optimalisatie berekening te doen, want die zorgt ervoor dat de juiste acties voor dat kwartier (voortkomend uit de prijs) worden gestart.

Ikzelf heb nog uurprijzen en doe deze berekening gewoon per uur.
Ok, en hoe ziet die automatisering eruit? Wat is daarvan de trigger? Want je zei dat die niet getriggerd was...

6x 405 Wp Oost, 6x 405 Wp West | Zonneplan Day-Ahead | 1x Sessy 5 kWh


Acties:
  • 0 Henk 'm!
CopyCatz schreef op donderdag 23 oktober 2025 @ 01:15:
[...]


Done :) Hoe werkt het eigenlijk met testen? Ik gebruik dan mijn eigen fork om als addon in HA te zetten, blijven de gegevens bewaard als ik overschrijf?
Ik zal vanavond jouw PR goedkeuren en dan neem ik hem mee (samen met andere verbeteringen) naar een nieuwe testversie. Die kun je dan testen.

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


Acties:
  • +2 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 19:57

Bravo

Second Best

Gameboy schreef op donderdag 23 oktober 2025 @ 18:37:
[...]


Ok, en hoe ziet die automatisering eruit? Wat is daarvan de trigger? Want je zei dat die niet getriggerd was...
In HA kunnen twee soorten entiteiten worden aangestuurd door DAO:
1. Getalwaarden voor entiteiten zoals ontlaadsnelheid etc
2. Tijd/kalenderwaarden voor start/stop momenten, zoals de start van een machine.

Als je een getal stuurt, kan dit als trigger worden gebruikt in een automation, die direct dat getal zal gebruiken. @Torch1969 heeft daar net een mooi voorbeeld voor gegeven.
Als je een kalender/tijd waarde stuurt, is dit vaak niet het moment dat er direct geacteerd moeten worden door een automation. Je bouwt in HA zelf een automation die als het passeren van het genoemde moment gebruikt om te starten.

Nadeel is alleen (en dat is volgens mij de case die door @Gameboy wordt beschreven) is dat als DAO een tijdstip stuurt die nu is, terwijl die daarvoor verder in de toekomst lag. Bijvoorbeeld dat hij om 20.00 uur doorgeeft dat een machine om 20.00 uur moet starten, terwijl deze eerder op 20.30 uur gepland stond.
Tegen de tijd dat die waarde in HA is opgenomen (run van 20.00 + rekentijd DAO + instellen entities in HA), is dat moment (20.00 uur exact, op de seconde nauwkeurig) verstreken en wordt de automation niet getriggerd in HA.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • +1 Henk 'm!
Bravo schreef op donderdag 23 oktober 2025 @ 19:50:
[...]

In HA kunnen twee soorten entiteiten worden aangestuurd door DAO:
1. Getalwaarden voor entiteiten zoals ontlaadsnelheid etc
2. Tijd/kalenderwaarden voor start/stop momenten, zoals de start van een machine.

Als je een getal stuurt, kan dit als trigger worden gebruikt in een automation, die direct dat getal zal gebruiken. @Torch1969 heeft daar net een mooi voorbeeld voor gegeven.
Als je een kalender/tijd waarde stuurt, is dit vaak niet het moment dat er direct geacteerd moeten worden door een automation. Je bouwt in HA zelf een automation die als het passeren van het genoemde moment gebruikt om te starten.

Nadeel is alleen (en dat is volgens mij de case die door @Gameboy wordt beschreven) is dat als DAO een tijdstip stuurt die nu is, terwijl die daarvoor verder in de toekomst lag. Bijvoorbeeld dat hij om 20.00 uur doorgeeft dat een machine om 20.00 uur moet starten, terwijl deze eerder op 20.30 uur gepland stond.
Tegen de tijd dat die waarde in HA is opgenomen (run van 20.00 + rekentijd DAO + instellen entities in HA), is dat moment (20.00 uur exact, op de seconde nauwkeurig) verstreken en wordt de automation niet getriggerd in HA.
Dat klinkt heel aannemelijk. Ik vermoed dat het alleen voorkomt bij het starten van machines en de boiler.
In dat geval zou daar door DAO niet 20:00 uur gecommuniceerd moeten worden, maar 20:00 uur plus de verstreken tijd plus nog ca 5 seconden extra verwerking en trigger tijd.
Klinkt dat werkbaar?

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


Acties:
  • 0 Henk 'm!

  • Impossibl3
  • Registratie: November 2012
  • Laatst online: 23:19
Ik vroeg mij af hoe wordt door DAO nu de hysterese bepaald bij het plannen van de warmtepomp? In bijgevoegd figuur zie je de hysterese op en neer gaan en de prijs volgens DAO. De flinke daling in hysterese bij een prijs van €0,25 cent (ex belastingen etc) snap ik. Maar dezelfde wisselingen zie ik als de prijs veel minder scheelt tov de goedkoopste momenten. Zeker op dinsdag had ik de schommeling minder verwacht. Kan mij nog voorstellen dat op de andere dagen er een buffer wordt "opgebouwd" waarna die "leeg loopt" bij het €0,25+ moment en vervolgens weer "aangevuld" wordt.

Het gedrag zal aan de adjustment factor liggen maar ik snap niet helemaal de logica daarvan. Ook niet met de uitleg in de DOCS.
adjustment factor: float K/10% Het aantal graden voor de verschuiving van de stooklijn als de actuele da prijs 10% afwijkt van het daggemiddelde (niet voor on/off warmtepomp).
Afbeeldingslocatie: https://tweakers.net/i/qmBo6lvDwFTMFSkftqIBPQFOsc4=/800x/filters:strip_icc():strip_exif()/f/image/2tchZ5s2uA24myhqBEi4Sfal.jpg?f=fotoalbum_large
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  "heating": {
    "heater present": "True",
    "degree days factor": 4.1,
    "entity adjust heating curve": "input_number.dao_thermostaat_hysterese",
    "adjustment factor": 0.2,
    "stages": [
      { "max_power": 1566, "cop": 3.80 },
      { "max_power": 1387, "cop": 4.05 },
      { "max_power": 1283, "cop": 4.34 },
      { "max_power": 988,  "cop": 4.69 },
      { "max_power": 865,  "cop": 5.05 },
      { "max_power": 748,  "cop": 5.50 },
      { "max_power": 563,  "cop": 5.87 },
      { "max_power": 436,  "cop": 6.84 }
    ]
  },
Jaargegevens waarop de betreffende variabele heb bepaald.
Afbeeldingslocatie: https://tweakers.net/i/OHcIzzy8esXvqU4T6vC80L6Nseg=/232x232/filters:strip_exif()/f/image/RS2qOKjTFy3ZCLawhBJoqtz2.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/VhRxM1dL43B6ty8OaRf078jk5qc=/232x232/filters:strip_exif()/f/image/KaxC7wIP36YIuOYfrA1cKIOD.png?f=fotoalbum_tileAfbeeldingslocatie: https://tweakers.net/i/wcs2HzZ2hkIVXj0AeobTOy_LaYg=/232x232/filters:strip_exif()/f/image/0bjVwWvBUSUvl62VUPHnOnrd.png?f=fotoalbum_tile

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


Acties:
  • +2 Henk 'm!
Zojuist is testversie 2025.10.6.rc1 gepubliceerd.
Dit staat er in de changelog:
  • Added extra check missing price-data, error-logging and stop calculation (idea from @balk )
  • Extra check op "plugged in" and "home" for warning "te weinig tijd"
  • Correct wrong pv->dc calculation
  • Added mapping for "Aan" and "Uit" for "entity set operating mode" (thanks @CopyCatz )
  • Moved remote resources for webpages to local (thanks @simnet )
  • Updated several used python-modules

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


Acties:
  • 0 Henk 'm!

  • eleet
  • Registratie: Februari 2010
  • Laatst online: 23:50
Hallo, hoe verhoudt DAO zich tot EMHASS in aanpak en features aub?

https://community.home-as...for-home-assistant/338126

Acties:
  • 0 Henk 'm!

  • Animal
  • Registratie: Maart 2002
  • Laatst online: 03:21
Heeft iemand al de zonnebonus van Zonneplan kunnen integreren?
Mijn DAO werkt sinds gisteren super goed. Wat een mooie software.

Verder gebruik ik machines in DAO. Dit werkt goed alleen maakt de time window me niet zoveel uit. Ik wil het liefst alleen de helper veranderen van off naar stand 'eco' bijvoorbeeld.
De Start window stel ik in op 0:00 en de end window op 23:59. Dus de hele dag mag DAO de calculated start en end helper instellen.

Alleen de log zegt nu dit
2025-10-24 03:00:03 info: Machine wasmachine wordt niet ingepland, want het planning-window ligt voorbij einde optimalisering
Hoe kan ik dit het beste aanpakken zonder telkens mijn time window te hoeven aanpassen?

Verder krijg ik reports vaak:
code:
1
2
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

[ Voor 82% gewijzigd door Animal op 24-10-2025 03:21 ]

Pagina: 1 ... 18 19 Laatste