So ich habe fertig. Bin damit ertstmal zufrieden.
Aktuell wird der Batteryoutput abhängig vom Hauptstromzähler geregelt. Dort erfasse ich die aktuelle Leistung posHausverbrauch und die aktuelle Einspeisung negHausverbrauch (positvier Wert). Der BKW Akku hängt an einer verbrauchsmessenen Steckdose (auf Einspeismodus eingestellt).
Der wahre Hausverbauch errechnet sich anhand posHausverbauch + Einspeisesteckdose - negHausverbrauch.
Wenn posHausverbrauch größer 100W dann wird der Batteryoutput neu berechnet.
Wenn posHausverbauch kleiner 50W dann Batteryoutput = wahrer Hausverbauch -50W.
Damit erfolgt eine Regelung nur bei Netzbezug von unter 50W und über 100W.
Aktuell probiere ich mich noch am Trigger der Rule, damit im Falle einer Einspeisung ins Netz eine schnellere Anpassung des Batteryoutputs erfolgt, wobei eine Einspeisung von 100W für 5min auch nicht so dramtisch ist.
Anbei das Blockly und ein Grafanaauszug:
Code: Alles auswählen
var posHausverbrauch, negHausverbrauch, Einspeisesteckdose, Battery_Outtput_read, Batter_Soc, trueHausverbrauch;
posHausverbrauch = items.getItem('Netzbezug_Last_Value').numericState;
negHausverbrauch = items.getItem('Netzeinspeisung_Last_Value').numericState;
Einspeisesteckdose = items.getItem('HMIPPSM_1_Power').numericState;
Battery_Outtput_read = items.getItem('output_w').numericState;
Batter_Soc = items.getItem('Battery_Soc').numericState;
trueHausverbrauch = posHausverbrauch + (Einspeisesteckdose - negHausverbrauch);
if (posHausverbrauch >= 100 && trueHausverbrauch - 50 >= Einspeisesteckdose + 50 && Battery_Outtput_read < 800 && Batter_Soc > 15) {
if (posHausverbrauch >= 800) {
items.getItem('MQTT_noah2mqtt_Battery_Output').sendCommand(800);
items.getItem('A_Number_Item').postUpdate(800);
} else {
items.getItem('MQTT_noah2mqtt_Battery_Output').sendCommand((trueHausverbrauch - 35));
items.getItem('A_Number_Item').postUpdate((trueHausverbrauch - 35));
}
}
if (posHausverbrauch < 50 && Einspeisesteckdose > 50 && Batter_Soc > 15) {
items.getItem('MQTT_noah2mqtt_Battery_Output').sendCommand((trueHausverbrauch - 50));
items.getItem('A_Number_Item').postUpdate((trueHausverbrauch - 50));
}
if (Batter_Soc > 10 && Batter_Soc <= 15) {
items.getItem('MQTT_noah2mqtt_Battery_Output').sendCommand(175);
items.getItem('A_Number_Item').postUpdate(175);
}
OH_blockly.jpg
Ich bedanke mich für den erbrachten Input aus dem Forum. Gerade der Input mit dem numeric State war sehr hilfreich

Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.