DOIF - PV Überschuss -> wait funktioniert nicht

Begonnen von fhemacht, 05 September 2022, 16:52:21

Vorheriges Thema - Nächstes Thema

fhemacht

Moin zusammen,

ich bin am verzweifeln ... ich möchte das nicht bei jeder Wolke meine Freigabe für die Wärmepumpe weg genommen wird und
dachte ein wait ist genau das richtige ... aber bei jeder kleinen Überschreitung der -50 läuft die Zeit ab und schaltet dann die Freigabe weg.
Auch wenn zwischenzeitlich der Wert wieder kleiner als -50 war.

Einschalten bei mehr als 720 Watt Einspeisung ins Netz mit 300 sek Anlauf Verzögerung
Ausschalten wenn mehr als 600sek die Einspeisung weniger als 50 Watt sind.

Aber wie gesagt die Zeit bleibt im Hintergrund aktiv und schaltet Verzögert ab owhol zu dem Zeitpunkt wieder deutlich mehr als 50Watt ins Netz gehen.


define PVueberschuss3_berechnung_BWP DOIF (([ShellyNetzmessung3:kwsumme]) < -720 ) (set WP_Freigabe ON)\
DOELSEIF (([ShellyNetzmessung3:kwsumme]) > -50) (set WP_Freigabe OFF)
attr PVueberschuss3_berechnung_BWP icon helper_doif
attr PVueberschuss3_berechnung_BWP room PV_Anlage
attr PVueberschuss3_berechnung_BWP wait 300:600


Wo ist hier mein Denkfehler ?
DANKE


rabehd

#1
Mal in die Beschreibung geschaut?
klar, wait passt nicht, aber...

ZitatMit dem Attribut cmdpause <Sekunden für cmd_1>:<Sekunden für cmd_2>:... wird die Zeitspanne in Sekunden angegeben für eine Zwangspause seit der letzten Zustandsänderung. In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die dazugehörige Bedingung wahr wird.
Auch funktionierende Lösungen kann man hinterfragen.

Damian

Zitat von: fhemacht am 05 September 2022, 16:52:21
Moin zusammen,

ich bin am verzweifeln ... ich möchte das nicht bei jeder Wolke meine Freigabe für die Wärmepumpe weg genommen wird und
dachte ein wait ist genau das richtige ... aber bei jeder kleinen Überschreitung der -50 läuft die Zeit ab und schaltet dann die Freigabe weg.
Auch wenn zwischenzeitlich der Wert wieder kleiner als -50 war.

Einschalten bei mehr als 720 Watt Einspeisung ins Netz mit 300 sek Anlauf Verzögerung
Ausschalten wenn mehr als 600sek die Einspeisung weniger als 50 Watt sind.

Aber wie gesagt die Zeit bleibt im Hintergrund aktiv und schaltet Verzögert ab owhol zu dem Zeitpunkt wieder deutlich mehr als 50Watt ins Netz gehen.


define PVueberschuss3_berechnung_BWP DOIF (([ShellyNetzmessung3:kwsumme]) < -720 ) (set WP_Freigabe ON)\
DOELSEIF (([ShellyNetzmessung3:kwsumme]) > -50) (set WP_Freigabe OFF)
attr PVueberschuss3_berechnung_BWP icon helper_doif
attr PVueberschuss3_berechnung_BWP room PV_Anlage
attr PVueberschuss3_berechnung_BWP wait 300:600


Wo ist hier mein Denkfehler ?
DANKE

Ich sehe keinen Fehler. Um Freigabe wieder auf OFF zu setzen, muss Freigabe zwischendurch auf ON gegangen sein und das kann erst nach 300 Sekunden geschehen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

fhemacht

Jap klar das ist ja auch so gewollt ... die Freigabe geht ON und soll nicht Jedes mal innerhalb der 600sek wieder weg genommen werden .
Das wäre meine Intension ... aber wenn die Einspeisung innerhalb der 600sek einmal kurz über die -50 steigt (also nicht genug PV da wäre) und danach aber wieder unter die -50 fällt dann schaltet die Freigabe nach den 600sek trotzdem weg und ich weiß nicht wieso.

fhemacht

Zitat von: rabehd am 05 September 2022, 16:57:27
Mal in die Beschreibung geschaut?
kLar, wait passr nicht, aber...

Das mit der pause ist an der stelle meiner Meinung nach aber das falsche , da nach der Pause ja auch geschaltet wird. Aber ich möchte ja das innerhalb der 600sek passieren kann was will erst wenn die "Wolke" 600sek da ist soll die Freigabe weg genommen werden.


Damian

Aus dem Zustand cmd_1 kann er nach 600 Sekunden in cmd_2 gehen und aus cmd_2 kann er nach 300 Sekunden in cmd_1 wechseln.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Als schnellen Fix kannst du ein leeren DOELSE anhängen. Etwas besser wäre anschließend ein Filter auf ON und OFF im Command.

Damian

Zitat von: Per am 06 September 2022, 12:19:00
Als schnellen Fix kannst du ein leeren DOELSE anhängen. Etwas besser wäre anschließend ein Filter auf ON und OFF im Command.

DOELSE kann eigentlich das Problem nur verschlechtern, denn so entsteht ein dritter Fall, der zu einem Zustandswechsel führt und damit zur einer unnötigen Wiederholung der anderen beiden Zweige führen kann.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Das weiß ich, aber als Fix, bis das DOIF steht, geht es, die PV wird zumindest richtig angesteuert.
Das Einfachste wird ein Perl-DOIF sein, aber "klassisch" sollte es auch gehen.