ik snap het ook nog niet, maar heb er ook weinig verstand van.TheFes schreef op dinsdag 30 september 2025 @ 22:21:
[...]
Waar je het wil gebruiken
Wat het doet is de kwartierdata vanuit een bronsensor (in die geval die van de custom Noodpool integratie) omzetten naar uurdata, en het voedt deze data dan aan de macro.
Als je dat op meerdere plekken zou willen doen, dan kun je ook die ontbrekende uurprijzen in een template sensor attribute zetten.
Ik heb nu onderstaande template sensor (dankzij 2 posts in grote day ahead forum).
Maar die werkt nog niet met deze template sensor:
YAML:
1
2
3
4
5
6
| - name: cheapest_1_hour_nordpoolh state: >- {% set l1=state_attr('sensor.dynamisch_nordpool', 'raw_today')[:24]|sort(attribute='value') %} {{ (now() >= l1[0].start and now() <= l1[0].end) }} |
YAML:
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
| - sensor: - name: "Dynamisch Nordpool" unique_id: dynamisch_nordpool unit_of_measurement: "c/kWh" state: "{{ states('sensor.nordpool_kwh_nl_eur_1_09_0') }}" attributes: today: > {% set q = state_attr('sensor.nordpool_kwh_nl_eur_1_09_0', 'today') %} {% if q %} {% if q | count == 24 %} [{{ q | join(', ') }}] {% elif q | count == 96 %} [ {% for i in range(0, 96, 4) %} {{ ((q[i]|float + q[i+1]|float + q[i+2]|float + q[i+3]|float) / 4) | round(3) }} {% if not loop.last %}, {% endif %} {% endfor %} ] {% else %} [] {% endif %} {% else %} [] {% endif %} tomorrow: > {% set q = state_attr('sensor.nordpool_kwh_nl_eur_1_09_0', 'tomorrow') %} {% if q %} {% if q | count == 24 %} [{{ q | join(', ') }}] {% elif q | count == 96 %} [ {% for i in range(0, 96, 4) %} {{ ((q[i]|float + q[i+1]|float + q[i+2]|float + q[i+3]|float) / 4) | round(3) }} {% if not loop.last %}, {% endif %} {% endfor %} ] {% else %} [] {% endif %} {% else %} [] {% endif %} raw_today: > {% set use_15_min = is_state('input_boolean.dynamisch_15_minuten', 'on') %} {% set raw = state_attr('sensor.nordpool_kwh_nl_eur_1_09_0', 'raw_today') %} {% if raw %} [ {% if use_15_min %} {# Gebruik kwartierwaarden zonder groepering #} {% for item in raw %} { "start": "{{ item.start.isoformat() }}", "end": "{{ item.end.isoformat() }}", "value": {{ item.value }} }{% if not loop.last %},{% endif %} {% endfor %} {% else %} {# Groepeer per uur en gemiddeld #} {% set hourly = raw | groupby('start.hour') %} {% for hour_group in hourly %} {% set values = hour_group.list | map(attribute='value') | list %} {% set hour_start = hour_group.list[0].start.replace(minute=0, second=0, microsecond=0) %} {% set hour_end = hour_start + timedelta(hours=1) %} { "start": "{{ hour_start.isoformat() }}", "end": "{{ hour_end.isoformat() }}", "value": {{ (values | sum / values | count) | round(5) }} }{% if not loop.last %},{% endif %} {% endfor %} {% endif %} ] {% else %} [] {% endif %} raw_tomorrow: > {% set use_15_min = is_state('input_boolean.dynamisch_15_minuten', 'on') %} {% set raw = state_attr('sensor.nordpool_kwh_nl_eur_1_09_0', 'raw_tomorrow') %} {% if raw %} [ {% if use_15_min %} {# Gebruik kwartierwaarden zonder groepering #} {% for item in raw %} { "start": "{{ item.start.isoformat() }}", "end": "{{ item.end.isoformat() }}", "value": {{ item.value }} }{% if not loop.last %},{% endif %} {% endfor %} {% else %} {# Groepeer per uur en gemiddeld #} {% set hourly = raw | groupby('start.hour') %} {% for hour_group in hourly %} {% set values = hour_group.list | map(attribute='value') | list %} {% set hour_start = hour_group.list[0].start.replace(minute=0, second=0, microsecond=0) %} {% set hour_end = hour_start + timedelta(hours=1) %} { "start": "{{ hour_start.isoformat() }}", "end": "{{ hour_end.isoformat() }}", "value": {{ (values | sum / values | count) | round(5) }} }{% if not loop.last %},{% endif %} {% endfor %} {% endif %} ] {% else %} [] {% endif %} |
Wat mis ik?
[ Voor 0% gewijzigd door Septillion op 01-10-2025 11:37 . Reden: Denk aan de 'yaml' bij de code tags aub! Zie topic warning en hoe deze post is aangepast. ]