Doch doch, du kannst in dem Editor einfach auf yaml umschalten, dann bekommst den Code
Na das ich doch genau das, was ich hier reinkopiert habe, damit jemand mit Interesse daran, daraus wieder gui-Zeug machen kann
Bin dann auch mal dahinter gestiegen, dass man wenn-dann mach etwas aus einer Liste von Möglichkeiten - Automatisierungen erstellen kann. Nice. Hat ja nur 2 Jahre gedauert
Ich bin echt zu blöd Docs zu lesen.
Aber so konnte ich meinen "Lade-Batterie-wenn-Tibber-Günstig-und-es-scheint-keine-Sonne" Automatismus "verfeinern".
Nice.
Da ich kein großer Programmierer bin, ist das wirklich simpel gehalten. (Ich nutze das Forum als Backup, falls mir das mal verloren gehen sollte^^).
Ich prüfe immer am Anfang jeder Stunde, ob der Tibber-Preis 1ct vor bzw. in seinem Minimum ist (mache ich über einen Nummer-Helfer, und der 1ct unschärfe vergrößert das Zeit-Fenster in dem geladen wird).
Ist der Preis im Tief, die Differenz zum Hoch größer als der Ladeverlust (wieder ein Nummer-Helfer) und die Batterie noch nicht auf einem bestimmten Level angekommen (der nächste Nummer-Helfer), dann wird eine Stunde lang die Batterie aus AC gefüllt,
Repeat. Jede Stunde. So spare ich mir das Ermitteln der Tiefpreisphase über eine komplizierte Berechnung.
Code:
alias: "Growatt: Batterie Laden Automatic"
description: ""
triggers:
- hours: /1
minutes: "2"
trigger: time_pattern
conditions:
- condition: numeric_state
entity_id: sensor.tibber_min_preis_differenz_daheim
below: 2
- condition: numeric_state
entity_id: sensor.sph4000_battery_soc
below: input_number.growatt_maxload_tibber
- condition: numeric_state
entity_id: sensor.tibber_preis_differenz_daheim
above: input_number.tibber_mindifference
actions:
- target:
entity_id: input_boolean.growatt_ac_load_erlauben
data: {}
action: input_boolean.turn_on
- delay:
hours: 0
minutes: 56
seconds: 0
milliseconds: 0
- target:
entity_id: input_boolean.growatt_ac_load_erlauben
data: {}
action: input_boolean.turn_off
mode: single
Und jetzt die "Verfeinerung". Anhand einer Prognose der Sonnenstunden des aktuellen und des nächsten Tage bestimmte ich den Batterie-Level, bis zu dem geladen werden soll. (Der besagte Nummer-Helfer).
Scheint weder am aktuellen Tage noch am nächsten Tag so viel Sonne, dass wir über den Tag kommen, schalte ich die Option frei auf 65% Ladestand der Batterie zu laden.
Scheint am aktuellen Tag keine Sonne, aber am nächsten Tag ist Sonne angekündigt, dann gebe ich nur 50% vom SOC der Batterie für AC-Load frei, und auch nur vor 1200 (die Tiefpreisphase ist ja meistens Nachts bzw. in den Morgenstunden).
Trifft nichts von beidem zu (es wird angenommen, dass die Sonne scheint), erlaube ich laden bis zu 35% SOC, was bei Sonnenschein nie eintreten wird, da der SOC in der Regel nicht soooo tief sinkt (Batterie ist groß genug).
Code:
alias: Growatt Max Load Berechnung
description: ""
triggers:
- trigger: state
entity_id:
- sensor.energy_production_tomorrow_3
actions:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.energy_production_today_3
below: 10
- condition: numeric_state
entity_id: sensor.energy_production_tomorrow_3
below: "10"
sequence:
- action: input_number.set_value
metadata: {}
data:
value: 65
target:
entity_id: input_number.growatt_maxload_tibber
- conditions:
- condition: time
before: "12:00:00"
- condition: numeric_state
entity_id: sensor.energy_production_today_remaining_3
below: 10
sequence:
- action: input_number.set_value
metadata: {}
data:
value: 50
target:
entity_id: input_number.growatt_maxload_tibber
- conditions: []
sequence:
- action: input_number.set_value
metadata: {}
data:
value: 35
target:
entity_id: input_number.growatt_maxload_tibber
Und zusätzlich wird in den Hochpreis-Phasen noch der Minsoc der Batterie von 20% auf 10% gesenkt, damit bekomme ich 2kWh Notfall-Energie, die hoffentlich über die Hochpreis-Phase (die ja in der Regel auch nie mehr als ein oder zwei Stunden beträgt) ohne Bezug. Sollte die Batterie sowieso voller sein passiert halt nix. Selbes Spiel. Am Anfang jeder Stunde testen. Am Ende der Stunde wieder hochstellen.
Code:
alias: Growatt Tibber Hochpreis MinSoc Regel
description: ""
mode: single
triggers:
- hours: /1
minutes: "2"
trigger: time_pattern
conditions:
- condition: numeric_state
entity_id: sensor.tibber_preis_differenz_daheim
below: 2
actions:
- action: input_number.set_value
target:
entity_id: input_number.minsoc
data:
value: 10
- delay:
hours: 0
minutes: 57
seconds: 0
milliseconds: 0
- action: input_number.set_value
target:
entity_id: input_number.minsoc
data:
value: 20
Ich hoffe ich langweile euch nicht alle mit dem Sermon^^