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.
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?
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 scrollwerkDeikke 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]
Ik heb m'n entiteiten in de report sectie ondertussen goed gezet denk ik. Iemand zin om dat even te dubbelchecken?
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
/f/image/84PJccFrPLq7mfZ7FiwWH2Ql.png?f=fotoalbum_large)
Baseload waardes na de berekening:
/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
Toch krijg ik in het midden van de dag nog steeds een negatieve baseload waardes.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"] },
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
/f/image/84PJccFrPLq7mfZ7FiwWH2Ql.png?f=fotoalbum_large)
Baseload waardes na de berekening:
Ziet er toch maar gek uit in het charts gedeelte: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>
/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 ]
grid consumption -> stroom uit het net. Dus import_totalBBuilds 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 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
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...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?
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.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.
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
@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:
Als ik dezelfde entiteit bij entities solar production ac vermeld in de config komen er wel allemaal geloofwaardige positieve waardes
Ziet er veel beter uit zo!
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!
@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 652025-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
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:
- productie versie 2025.10.5
- test versie 2025.10.5.rc6
Dit staat in de changelog van de productieversie:
Changed:Fixed:
- implemented **flex setting** of settings:
More info in DOCS.md
- direct via your settings
- indirect from HA via an entity in your settings
- 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 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
Dank je wel voor het meedenken.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?
[...]
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
@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?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?
Ja, sorry. Te druk met het project (en andere dingen) en dan schiet er soms een reactie bij in.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?
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
Hoe pas jij die strooklijn verschuiving toe?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.
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
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)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?
PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP
Duidelijk, dan ga ik even kijken hoe ik die stages ga invullen. Bedankt!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.
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.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?
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
Na upgrade naar 2025.10.5, ik krijg nu:
terwijl de auto niet ingeplugd is:
Klopt dit?
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.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?
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
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?
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.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?
PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP
Doh! helemaal gemist.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.
[ Voor 22% gewijzigd door CopyCatz op 19-10-2025 18:12 ]
Ik zat even naar jouw eerdere post te kijken met een screenshot van de HA kaart.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.
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.
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
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.
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".
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".
@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.
@itavero Tibber heeft kwartierprijzen, Zonneplan niet, misschien ook nog iets om rekening mee te houden?
"Chaos kan niet uit de hand lopen"
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?
<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
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.
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 ]
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?
"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?
Ik had er al naar gekeken, maar alle connections worden geopend met een with-context en die zouden door sql-alchemy gesloten moeten worden.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 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
De historie wordt door DAO niet opgeslagen.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.
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
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>
++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++
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?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>
++++++++++++++++++++++
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
Bij consumption alleen sensoren opgeven die het verbruik vanaf het net naar je meterkast registerenCopyCatz 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 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
Er klopt iets niet. Heb je voor mij (liefs in quotes vanwege de lengte):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]
- 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
Zie mijn reactie op @CopyCatz voor de "historie".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".
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
Daar ging het blijkbaar fout, ik had vandaag wel, maar morgen niet. Dank voor de snelle hulp!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
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
dus ik nam aan dat daarvoor eerst historie moest worden opgebouwd
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...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.
[ Voor 6% gewijzigd door DaBit op 20-10-2025 22:19 ]
Ik zal het aanpassen. 6 weken historie in Home Assistant volstaat.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
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
Klopt, was ook al door anderen gesignaleerd.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...
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
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.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 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?
/f/image/rH1fAXaAodNw5WXQqhP11GMj.png?f=fotoalbum_large)
Deze helpers heb ik aangemaakt op basis van de json van @Mirabis"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
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 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" } }
Ook al wil ik het bijna opgeven. Er gaat ook veel goedcode:
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 1682025-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>
[ Voor 145% gewijzigd door Animal op 21-10-2025 12:26 ]
Hoi @Animal we komen hier vast wel uit. Je bent al een heel eind, dus geef de moed niet opAnimal 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 1682025-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 goedAlleen haal ik echt geen 4kWh uit mijn zonnepanelen
[Afbeelding]
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.
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 1962025-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%
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 😅
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 😅
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 |
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 vooruitTorch1969 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.
Bijna geen errors meer. Alleen een database error maar dat ligt aan de laatste python update duscode:
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 93Logging 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>
<sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at
[ Voor 64% gewijzigd door Animal op 21-10-2025 13:12 ]
Ondertussen DAO bijna helemaal geconfigureerd met de DOCS.md maar deze Wiki was ik ook nog niet tegengekomen. Die is inderdaad een pak duidelijker.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.
Bedankt voor het maken en het delen @Torch1969 !
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:
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.
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"
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
String 1 Hoymiles micro omvormer >> met 4 inputs (2x noord oost en 2x oost west (zo'n dakje zeg maar).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.
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?
De Wiki is nog niet compleet, is nog wat Work in progress voor de komende winterBBuilds 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 !
( 430Wp x 0,85 ) / 400.000 = 0,00091375Animal 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?
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 ]
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.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 😅
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.
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.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
Edit: ik ga weer opnieuw starten
[ Voor 145% gewijzigd door Animal op 22-10-2025 18:56 ]
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: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
De helpers:
/f/image/2piPNGUJwqdZ7juXgNLLTk6S.png?f=fotoalbum_large)
En in een dashboard:
/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.
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.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.
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_feedinAnimal 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
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.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.
Dank zover!
Fijn, ga je de wekker op vannacht 4 uur zetten om te kijken of het werkt?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!
/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)
Ik kan bij reports>>morgen en bij accu in zien dat er om 5:00 2kWh geladen gaat worden.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)
Is een grafisch rapport pas te zien op de nieuwe dag(op de hoofdpagina?)
/f/image/PeqP9G16wsnpHUukimFBmMHJ.png?f=fotoalbum_large)
Ik zet de wekker!
Ja, home pagina selecteren en dan grafiek. En dan blader je eventueel naar de laatste optimalisatie berekening.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!
Dankje. Bij reports kan ik wel een prognose en plan vinden voor de volgende dag.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.
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 ]
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.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?
Ik heb het over deze: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!
Maar dan zou dus de 21:00 balk hetzelfde moeten zijn? (levering is een klein beetje minder bij de linker 21:00 uur)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.
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
[ Voor 11% gewijzigd door Animal op 22-10-2025 22:04 ]
Ik zie het.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 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
@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.
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 ]
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
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….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]
Je kunt twee dingen in HA doen: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?
- 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
- 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.
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
Had het al gezien, thanks. Zie mijn edit hierboven.KC27 schreef op woensdag 22 oktober 2025 @ 22:59:
[...]
Je kunt twee dingen in HA doen:
- 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
- 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.
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)?
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).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)?
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
DoneKC27 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.
[ Voor 18% gewijzigd door CopyCatz op 23-10-2025 09:19 ]
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?
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
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 ]
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.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?
"Chaos kan niet uit de hand lopen"
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
/f/image/AEuxjAqAQ6k6aKwWcxU8Rmdg.png?f=fotoalbum_large)
Dan wordt het dus:
Handig om je machines te definiëren in DAO
/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 ]
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.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.
Misschien een offset van een minuut toevoegen aan je HA trigger?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
Dan kan DOA nooit de huidige minuut missen.
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.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.
Verder, wat is het probleem van een keertje rekenen?
"Chaos kan niet uit de hand lopen"
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.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
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
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:
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.
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.
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.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?
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
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?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.
Het is goed mogelijk dat ik je opmerking niet correct heb geïnterpreteerdTorch1969 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?
6x 405 Wp Oost, 6x 405 Wp West | Zonneplan Day-Ahead | 1x Sessy 5 kWh
De opzet is als volgt:Gameboy schreef op donderdag 23 oktober 2025 @ 17:29:
[...]
Het is goed mogelijk dat ik je opmerking niet correct heb geïnterpreteerdKun je de code van de HA trigger vermelden? En die van de helper die je gebruikt? En hoe dat door DAO wordt gebruikt?
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 ]
Ok, en hoe ziet die automatisering eruit? Wat is daarvan de trigger? Want je zei dat die niet getriggerd was...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.
6x 405 Wp Oost, 6x 405 Wp West | Zonneplan Day-Ahead | 1x Sessy 5 kWh
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.CopyCatz schreef op donderdag 23 oktober 2025 @ 01:15:
[...]
DoneHoe 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?
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
In HA kunnen twee soorten entiteiten worden aangestuurd door DAO: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...
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
Dat klinkt heel aannemelijk. Ik vermoed dat het alleen voorkomt bij het starten van machines en de boiler.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.
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
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.:strip_exif()/f/image/2tchZ5s2uA24myhqBEi4Sfal.jpg?f=fotoalbum_large)
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).
:strip_exif()/f/image/2tchZ5s2uA24myhqBEi4Sfal.jpg?f=fotoalbum_large)
Jaargegevens waarop de betreffende variabele heb bepaald.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 } ] },
![]() | ![]() | ![]() |
PV 5.590 Wp Enphase, 2.700 Wp Growatt - Easee laadpaal - Itho Amber 95 WP
Zojuist is testversie 2025.10.6.rc1 gepubliceerd.
Dit staat er in de changelog:
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
Hallo, hoe verhoudt DAO zich tot EMHASS in aanpak en features aub?
https://community.home-as...for-home-assistant/338126
https://community.home-as...for-home-assistant/338126
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:
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 ]
/f/image/RS2qOKjTFy3ZCLawhBJoqtz2.png?f=fotoalbum_tile)
/f/image/KaxC7wIP36YIuOYfrA1cKIOD.png?f=fotoalbum_tile)
/f/image/0bjVwWvBUSUvl62VUPHnOnrd.png?f=fotoalbum_tile)