Eigentlich bin ich ein Freund von Ereignisbasierter Programmierung.
Sprich, ein bestimmtes Ereignis tritt und eine Automatisierung wird gestartet.
Mein Problem ist nun, das ich Speicherbatterien im Keller habe, die, wenn PV Überschuss da ist, geladen werden.
Nun möchte ich aber, das die Ihre Energie abgeben, wenn es Notwendig wird.
Und da wirds schwierig.
Bedingungen sind:
1) Batterie Laden durch PV muß aus sein.
2) Wir beziehen gerade mindestens 150 Watt aus dem Stromnetz
Dann soll die Einspeisung der Batterien ins Hausnetz gestartet werden.
Aber, wenn
a) Das Laden durch PV einsetzt
oder
b) der Hausverbrauch weniger als 100 Watt ist
dann soll die Einspeisung wieder abgeschaltet werden.
Ich habe es also aktuell so, das er als Trigger die obigen Bedingungen hat, also entweder über die gerade verbrauchte Leistung oder das ein/aus schalten der Batterieladung.
Im Aktion Zweig will ich dann anhand der anderen Bedingungen abfragen, welche Bedingung nun zugetroffen hat, um das Einspeisen entweder einzuschalten oder auszuschalten.
Es funktioniert soweit auch, nur das er manchmal irgendwas nicht mitbekommt. Es passiert dann schon mal, das die Einspeisung korrekt anspringt, irgendwann mal der PV Überschuß groß genug wird und das Batterieladen einsetzt, das Einspeisen aber nicht abgeschaltet wird.
Ja, man müßte sich Stundenlang davor setzen, genau den Augenblick abpassen um dann im Trace zu schauen, was passiert ist. Schwierig.
Man könnte die Logbücher durchsuchen und hoffen, das man da was findet, aber bei einem HA, das schon länger in Betrieb ist und schon vieles Automatisiert ist, sind die Logbücher gerne mal so voll, da findet man sich kaum noch zurecht.
Klar könnte ich jetzt eine Automatisierung schreiben, die z.B. alle 5 Minuten aufgerufen wird, dann diverse Bedingungen prüft und dann die entsprechende Aktion ausführt.
Aber die wird dann halt wirklich alle 5 Minuten aufgerufen, schreib das ins Logbuch und Müllt mir das so unnötig voll.
Ein Problem sehe ich in dem Auslöser über den Hausverbrauch.
Steigt der über 150, soll die Einspeisung beginnen. Da kommen dann aktuell 50 Watt aus der Batterie dazu, womit der Hausverbrauch auch wieder sinkt. Das wollte ich damit abfangen, das ich bei weniger als 100 Watt Hausverbrauch Ausschalte.
Mich würden nun Ideen oder Verbesserungsvorschläge von euch Interessieren, wie man das besser lösen könnte. Und wie gesagt, regelmäßiges Ausführen per Zeitschaltung mag ich nicht.
Sprich, ein bestimmtes Ereignis tritt und eine Automatisierung wird gestartet.
Mein Problem ist nun, das ich Speicherbatterien im Keller habe, die, wenn PV Überschuss da ist, geladen werden.
Nun möchte ich aber, das die Ihre Energie abgeben, wenn es Notwendig wird.
Und da wirds schwierig.
Bedingungen sind:
1) Batterie Laden durch PV muß aus sein.
2) Wir beziehen gerade mindestens 150 Watt aus dem Stromnetz
Dann soll die Einspeisung der Batterien ins Hausnetz gestartet werden.
Aber, wenn
a) Das Laden durch PV einsetzt
oder
b) der Hausverbrauch weniger als 100 Watt ist
dann soll die Einspeisung wieder abgeschaltet werden.
Code:
alias: Batterie Einspeisung
description: >-
Schaltet die Batterien dazu, wenn Strom eingekauft wird und die Batterien
genug geladen sind
trigger:
- platform: state
entity_id:
- switch.messstelle
from: "on"
to: "off"
- platform: state
entity_id:
- switch.messstelle
from: "off"
to: "on"
- platform: numeric_state
entity_id:
- sensor.electricity_rodgener_strasse_22_gesamtleistung
below: 100
- platform: numeric_state
entity_id:
- sensor.electricity_rodgener_strasse_22_gesamtleistung
above: 150
condition:
action:
- if:
- condition: and
conditions:
- condition: numeric_state
entity_id: sensor.electricity_rodgener_strasse_22_gesamtverbrauch
above: 150
- condition: numeric_state
entity_id: sensor.nachtstrom_ch2_voltage
above: 24.5
- condition: state
entity_id: switch.messstelle
state: "off"
then:
- service: button.press
metadata: {}
data: {}
target:
entity_id: button.nachtstrom_turn_inverter_on
- if:
- condition: numeric_state
entity_id: sensor.electricity_rodgener_strasse_22_gesamtverbrauch
below: 0
- condition: state
entity_id: switch.messstelle
state: "on"
- condition: numeric_state
entity_id: sensor.nachtstrom_ch2_voltage
below: 21
then:
- service: button.press
metadata: {}
data: {}
target:
entity_id: button.nachtstrom_turn_inverter_off
mode: single
Im Aktion Zweig will ich dann anhand der anderen Bedingungen abfragen, welche Bedingung nun zugetroffen hat, um das Einspeisen entweder einzuschalten oder auszuschalten.
Es funktioniert soweit auch, nur das er manchmal irgendwas nicht mitbekommt. Es passiert dann schon mal, das die Einspeisung korrekt anspringt, irgendwann mal der PV Überschuß groß genug wird und das Batterieladen einsetzt, das Einspeisen aber nicht abgeschaltet wird.
Ja, man müßte sich Stundenlang davor setzen, genau den Augenblick abpassen um dann im Trace zu schauen, was passiert ist. Schwierig.
Man könnte die Logbücher durchsuchen und hoffen, das man da was findet, aber bei einem HA, das schon länger in Betrieb ist und schon vieles Automatisiert ist, sind die Logbücher gerne mal so voll, da findet man sich kaum noch zurecht.
Klar könnte ich jetzt eine Automatisierung schreiben, die z.B. alle 5 Minuten aufgerufen wird, dann diverse Bedingungen prüft und dann die entsprechende Aktion ausführt.
Aber die wird dann halt wirklich alle 5 Minuten aufgerufen, schreib das ins Logbuch und Müllt mir das so unnötig voll.
Ein Problem sehe ich in dem Auslöser über den Hausverbrauch.
Steigt der über 150, soll die Einspeisung beginnen. Da kommen dann aktuell 50 Watt aus der Batterie dazu, womit der Hausverbrauch auch wieder sinkt. Das wollte ich damit abfangen, das ich bei weniger als 100 Watt Hausverbrauch Ausschalte.
Mich würden nun Ideen oder Verbesserungsvorschläge von euch Interessieren, wie man das besser lösen könnte. Und wie gesagt, regelmäßiges Ausführen per Zeitschaltung mag ich nicht.