Jup, stimmt. Dazu muss ich aber jetzt ein ganz klein wenig ausholen…
Ich wollte bzw. realisiere damit eine Netzladung meines Akkusystems (mittlerweile 15kW) aus dem Netz bei “lohnenden” Stromkosten im Winter bzw. zu schwachem Ertrag der PV-Anlage.
Um meinen Speicher über meinen WR komplett aus dem Netz zu laden benötigt das System etwas weniger als 3Std.
Daher meine Wahl zu 3Stunden Blöcke. Die Berechnung kannst du aber natürlich auch mit 1,2,oder auch 5 Stunden machen (In dieser Berechnung aber immer nur aufeinander folgende Stunden)
Die Automatisierung(en) starte ich dann mit den sich daraus ergebenen Entitäten und deren Werte, richtig.
Bei mir sieht nach knapp 1Jahr das template aber auch schon anders aus, da diese Grundlage zwar gut aber leider auch in der Berechnungslogik bzw. der Datenattribute mit unter etwas Fehlerhaft.
So sieht es in meinem aktuellen template aus:
# Günstigste Ladekosten #
- trigger:
- platform: state
entity_id: sensor.strompreis_verfugbar
from: "false"
to: "true"
for: "00:00:30"
sensor:
- name: "Günstige Ladekosten"
unique_id: gunstige_ladekosten
unit_of_measurement: "EUR/kWh"
state: >
{% set today_prices = state_attr('sensor.tibber_prices', 'today') %}
{% set tomorrow_prices = state_attr('sensor.tibber_prices', 'tomorrow') %}
{% if today_prices is not none and tomorrow_prices is not none %}
{% set h22 = today_prices[22].total %}
{% set h23 = today_prices[23].total %}
{% set m0 = tomorrow_prices[0].total %}
{% set m1 = tomorrow_prices[1].total %}
{% set m2 = tomorrow_prices[2].total %}
{% set m3 = tomorrow_prices[3].total %}
{% set m4 = tomorrow_prices[4].total %}
{% set m5 = tomorrow_prices[5].total %}
{% set m6 = tomorrow_prices[6].total %}
{% set m7 = tomorrow_prices[7].total %}
{% set m8 = tomorrow_prices[8].total %}
{% set m9 = tomorrow_prices[9].total %}
{% set m10 = tomorrow_prices[10].total %}
{% set m11 = tomorrow_prices[11].total %}
{% set m12 = tomorrow_prices[12].total %}
{% set m13 = tomorrow_prices[13].total %}
{% set m14 = tomorrow_prices[14].total %}
{% set m15 = tomorrow_prices[15].total %}
{% set m16 = tomorrow_prices[16].total %}
{% set m17 = tomorrow_prices[17].total %}
{% set m18 = tomorrow_prices[18].total %}
{% set m19 = tomorrow_prices[19].total %}
{% set m20 = tomorrow_prices[20].total %}
{% set m21 = tomorrow_prices[21].total %}
{% set m22 = tomorrow_prices[22].total %}
{% set m23 = tomorrow_prices[23].total %}
{% set periods = [
("22-1Uhr", h22 + h23 + m0),
("23-2Uhr", h23 + m0 + m1),
("0-3Uhr", m0 + m1 + m2),
("1-4Uhr", m1 + m2 + m3),
("2-5Uhr", m2 + m3 + m4),
("3-6Uhr", m3 + m4 + m5),
("4-7Uhr", m4 + m5 + m6),
("5-8Uhr", m5 + m6 + m7),
("6-9Uhr", m6 + m7 + m8),
("7-10Uhr", m7 + m8 + m9),
("8-11Uhr", m8 + m9 + m10),
("9-12Uhr", m9 + m10 + m11),
("10-13Uhr", m10 + m11 + m12),
("11-14Uhr", m11 + m12 + m13),
("12-15Uhr", m12 + m13 + m14),
("13-16Uhr", m13 + m14 + m15),
("14-17Uhr", m14 + m15 + m16),
("15-18Uhr", m15 + m16 + m17),
("16-19Uhr", m16 + m17 + m18),
("17-20Uhr", m17 + m18 + m19),
("18-21Uhr", m18 + m19 + m20),
("19-22Uhr", m19 + m20 + m21),
("20-23Uhr", m20 + m21 + m22),
("21-0Uhr", m21 + m22 + m23)
] %}
{% set min_period = periods | min(attribute=1) %}
{% set min_value = min_period[1] / 3 %}
{{ min_value }}
{% else %}
Fehler beim Abrufen der Preise.
{% endif %}
Im Dashboard dann so: