Dank voor het starten van dit topic. Ik ben van plan mijn Sigenergy systeem volledig vanuit HA mbv HAEO aan te sturen. Ben nog aan het puzzelen. Vandaag HAEO redelijk werkend gekregen, maar was meerdere uren aan het kutten met grid prijzen. Om anderen te behoeden voor ook vele uren tijdsverlies, deel ik graag mijn ervaring met HAEO grid instellingen hier.
Allereerst adviseer ik je gebruik te maken van de HACS versie van Nordpool. Dit scheelt een extra stap. De standaard integratie van Nordpool heeft geen "raw_today" en "raw_tomorrow" attributen, die HAEO wel gebruikt.
Wanneer je de HACS versie hebt geinstalleerd, creëer je één sensor zonder VAT (belasting) en zonder extra kosten, dus enkel de kale EPEX waarden. Kies natuurlijk wel de juiste regio. Ik heb voor dit voorbeeld mijn sensor hernoemt naar "sensor.nordpool", wel zo makkelijk.
Daarna moet je zelf nog twee sensor templates aanmaken gevuld met nordpool sensor data. Daar ging voor mij het meeste werk inzitten. Samen met Claude + ChatGPT ben ik tot de volgende sensor template gekomen:
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
| template:
- sensor:
- name: "Grid Import Price"
unique_id: grid_import_price
unit_of_measurement: "EUR/kWh"
state_class: measurement
device_class: monetary
icon: mdi:flash
state: >
{% set np = state_attr('sensor.nordpool', 'raw_today') %}
{% if np %}
{% set now_ts = now().timestamp() %}
{% set ns = namespace(price=0) %}
{% for h in np %}
{% if h['start'].timestamp() <= now_ts and h['end'].timestamp() > now_ts %}
{% set ns.price = h['value'] %}
{% endif %}
{% endfor %}
{{ (ns.price * 1.21 + 0.110848 + 0.01) | round(3) }}
{% else %}
0
{% endif %}
attributes:
forecast: >
{% set np_today = state_attr('sensor.nordpool', 'raw_today') or [] %}
{% set np_tomorrow = state_attr('sensor.nordpool', 'raw_tomorrow') or [] %}
{% set ns = namespace(result=[]) %}
{% for h in np_today + np_tomorrow %}
{% set ns.result = ns.result + [{'time': h['start'].isoformat(), 'value': (h['value'] * 1.21 + 0.110848 + 0.01) | round(3)}] %}
{% endfor %}
{{ ns.result }}
- name: "Grid Export Price"
unique_id: grid_export_price
unit_of_measurement: "EUR/kWh"
state_class: measurement
device_class: monetary
icon: mdi:flash
state: >
{% set np = state_attr('sensor.nordpool', 'raw_today') %}
{% if np %}
{% set now_ts = now().timestamp() %}
{% set ns = namespace(price=0) %}
{% for h in np %}
{% if h['start'].timestamp() <= now_ts and h['end'].timestamp() > now_ts %}
{% set ns.price = h['value'] %}
{% endif %}
{% endfor %}
{{ (ns.price * 1.21 + 0.110848 - 0.01) | round(3) }}
{% else %}
0
{% endif %}
attributes:
forecast: >
{% set np_today = state_attr('sensor.nordpool', 'raw_today') or [] %}
{% set np_tomorrow = state_attr('sensor.nordpool', 'raw_tomorrow') or [] %}
{% set ns = namespace(result=[]) %}
{% for h in np_today + np_tomorrow %}
{% set ns.result = ns.result + [{'time': h['start'].isoformat(), 'value': (h['value'] * 1.21 + 0.110848 - 0.01) | round(3)}] %}
{% endfor %}
{{ ns.result }} |
Deze sensoren heb ik daarna aan de GRID configuratie van HAEO gehangen, waarnee de inkoop en verkoop van energieprijzen correct werden weergegeven. Pas zelf eventueel je inkoop en verkoop vergoeding aan in het voorbeeld. Succes