HA Automation zum SoC Max Value setzen in Abhängigkeit vom letzten erreichen "Batteriestatus 100%" - Kieft-C/Zendure-BKW-PV GitHub Wiki
Der Ansatz bestand daraus, dass ich gelesen habe, dass LiFePo4 Akku's nicht regelmäßig die obere Ladeschluss-Spannung (und damit 100% Batteriestatus) erreichen sollten. Somit habe ich meine "Akkueinstellung" in der Zendure App auf 85% gestellt. Nun benötigt man aber mind. alle 14 Tage denn 100% Batteriezustand, durch die Akkutechnologie. Durch diese findet die Kalibirierung statt. Das stetige merken und überprüfen wann das letzte mal 100% erreicht wurde, war keine Option, deutlich zu mühsam.
Nun kam die Integration von FireSon für HA offiziell raus, welche eine Einstellung via Homeassistant ermöglicht. https://github.com/FireSon/Zendure-HA
Und darauf hin habe ich mir überlegt, dass ich eine Automation gern hätte welche prüft ob in den letzten 14 Tagen der Batteriestatus 100% war, falls ja, soll Soc Max Value auf 85% gesetzt werden, falls nein, soll er es auf 100% setzen.
Als erstes habe ich einen 'History_stats' Template eingerichtet, was für mich völlig neu war. Diesen Code in der configuration.yaml bei HA einpflegen. Ob "electriclevel" euer Sensor ist, weiß ich nicht, dies sollte der Batteriestatus Sensor sein plus in einer Datenbank in Langzeitstatistik erfasst sein.
- platform: history_stats
name: electriclevel_at_100_time
entity_id: sensor.electriclevel
unique_id: ElectricLevelat100Time
state: '100'
type: count
start: "{{ now() - timedelta(days=14) }}"
end: "{{ now() }}"
Und dann als 2tes eine Automation einrichten in HA. "Einstellung" -> "Automation & Szenen" -> blauer button unten rechts "+Automation erstellen" Dort im neuen Fesnter, oben rechts "in Yaml bearbeiten" und den unten stehenden Code Snippet reinkopieren, speichern und fertig.
description: >
Setzt number.hyper_2000_soc_soc auf 85% oder 100%, abhängig davon, ob der
sensor.electriclevel in den letzten 14 Tagen 100% erreicht hat.
triggers:
- at: "03:00:00"
trigger: time
conditions: []
actions:
- alias: Prüfe, ob der Electric Level in den letzten 14 Tagen 100% erreicht hat
choose:
- conditions:
- condition: numeric_state
entity_id: sensor.electriclevel_at_100_time
above: 0
sequence:
- target:
entity_id: number.hyper_2000_soc_set
data:
value: "85"
action: number.set_value
default:
- target:
entity_id: number.hyper_2000_soc_set
data:
value: 100
action: number.set_value
mode: single
Nun noch einmal Homeassistant neu starten (nicht nur yaml code neu laden) und es sollte funktionieren. Der sensor.electriclevel_at_100_time gibt die Anzahl an, wie oft in den letzten 14 Tagen 100% erreicht wurde. Möchtet ihr einen anderen Zeitraum für das Zählen, geht dies easy über den Sensor zu ändern in history_stats.
Und die Automation checkt ob sensor.electriclevel_at_100_time über 0, der Hyper SoC Set auf 85% gesetzt wird. Ich habe 85% gewählt, da ich öfters bereits bei 90% erlebt hatte, dass er einfach drüber rattert und die elektrische Ladespannung sehr hoch ging. Dies ist die bekannte BMS Verschiebung der %-Anzeige, welche nicht nur am unteren Ende sich verschiebt, sondern auch am oberen Ende. Sodass er plötzlich extrem schnell hoch springt.
"number.hyper_2000_soc_set" ist mein Sensor aus der FireSon HA Integration (via HACS) welcher die Soc Grenze einstellt. ggf. heißt dieser bei Euch anders und muss entsprechend ausgetauscht werden.
Funktioniert bei Version: HA CORE 2025.4.2 Zendure Home assistant Integration 1.0.31