Moin,
ich bin mir nicht sicher ob es funktioniert, aber so in der Art würde ich es probieren:
{% set s0 = (state_attr('sensor.tibber_prices', 'tomorrow')[0].total) %}
{% set s1 = (state_attr('sensor.tibber_prices', 'tomorrow')[1].total) %}
{% set s2 = (state_attr('sensor.tibber_prices', 'tomorrow')[2].total) %}
{% set s3 = (state_attr('sensor.tibber_prices', 'tomorrow')[3].total) %}
{% set s4 = (state_attr('sensor.tibber_prices', 'tomorrow')[4].total) %}
{% set s5 = (state_attr('sensor.tibber_prices', 'tomorrow')[5].total) %}
{% set s02 = (s0 + s1 + s2) %}
{% set s13 = (s1 + s2 + s3) %}
{% set s24 = (s2 + s3 + s4) %}
{% set s35 = (s3 + s4 + s5) %}
{% set low = ([s02, s13, s24, s35] | min) %}
{% if low == s02 %}
0-3Uhr
{% elif low == s13 %}
1-4Uhr
{% elif low == s24 %}
2-5Uhr
{% elif low == s35 %}
3-6Uhr
{% endif %}
kannst ja mal in den Entwicklerwerkzeugen gucken was bei raus kommt bzw. ob es überhaupt funktioniert😅
Bin kein Tibber Kunde und hab den Sensor nicht deswegen kann ich es grade nicht so gut testen.
Edit:
Habe es bei mir mit Festen Werten getestet und da wird der Günstigste rausgesucht:
{% set s02 = 1.4 %}
{% set s13 = 1.3 %}
{% set s24 = 1.5 %}
{% set s35 = 1.6 %}
{% set low = ([s02, s13, s24, s35] | min) %}
{% if low == s02 %}
0-3Uhr
{% elif low == s13 %}
1-4Uhr
{% elif low == s24 %}
2-5Uhr
{% elif low == s35 %}
3-6Uhr
{% endif %}
Edit 2:
wenn das oben funktioniert kannst du ein Template Sensor mit trigger erstellen den du dann in einer Automation benutzen kannst.
template:
- trigger:
- platform: time
at: "15:00:00"
sensor:
- name: "Günstige Ladestunden"
unique_id: gunstige_ladestunden_tibber
state: >
{% set s0 = (state_attr('sensor.tibber_prices', 'tomorrow')[0].total) %}
{% set s1 = (state_attr('sensor.tibber_prices', 'tomorrow')[1].total) %}
{% set s2 = (state_attr('sensor.tibber_prices', 'tomorrow')[2].total) %}
{% set s3 = (state_attr('sensor.tibber_prices', 'tomorrow')[3].total) %}
{% set s4 = (state_attr('sensor.tibber_prices', 'tomorrow')[4].total) %}
{% set s5 = (state_attr('sensor.tibber_prices', 'tomorrow')[5].total) %}
{% set s02 = (s0 + s1 + s2) %}
{% set s13 = (s1 + s2 + s3) %}
{% set s24 = (s2 + s3 + s4) %}
{% set s35 = (s3 + s4 + s5) %}
{% set low = ([s02, s13, s24, s35] | min) %}
{% if low == s02 %}
0-3Uhr
{% elif low == s13 %}
1-4Uhr
{% elif low == s24 %}
2-5Uhr
{% elif low == s35 %}
3-6Uhr
{% endif %}
Ich hab den Trigger für den Sensor mal auf 15 Uhr gesetzt damit dazwischen noch ein bisschen Pufferzeit ist.
Edit 3:
Fehler im Code Behoben
LG
Tobi