FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: isy am 25 April 2022, 12:02:50

Titel: [Gelöst] DOIF wählt aktuell immer DOELSE Zweig - Klammerfehler? Tippfehler?
Beitrag von: isy am 25 April 2022, 12:02:50
Moin zusammen,
ich versuche gerade meine PV-Überschuss-Regelung zu verbessern. List vom DOIF in der Anlage.
Problem:
- DOIF geht aktuell und obwohl "ga_myGoE_car_state 1" bei jedem Status-Wechsel seitens SolarView:DPAC auf den DOELSE Zweig mit dem state "Ladung nicht möglich", sollte aber auf den state "Kein Auto" gehen.
- Setze ich das DOIF manuell auf "Checkall" wird der state "Keine Auto" ausgewählt. Das ist korrekt.
- Der "ga_myGoE_car_state" bleibt (geprüft mit verbose 5) permanent auf "1", da steckt der Fehler vermutlich nicht.
- UPDATE: Der state geht zuerst auf "5" also "Kein Auto" und 11 Sekunden später auf "6", "Ladung nicht möglich". Das wiederholt sich aktuell alle 10Minuten. Ich suche derzeit an der Wallbox.

Findet jemand von euch den Fehler?

VG Helmut


Zur besseren Lesbarkeit habe ich nur hier "Return" eingefügt.
defmod WB_PV_Regelung
DOIF (([SolarView:DPAC] > 250) and ([ga_myGoE:amp_current] < [ga_myGoE:amp_max_wallbox]) and ([ga_myGoE:car_state] == 2)) (set ga_myGoE amp_current [ga_myGoE:amp_current:d:$1+1])
DOELSEIF (([SolarView:DPAC] < 250) and ([ga_myGoE:amp_current] > 6 ) and ([ga_myGoE:car_state] == 2)) (set ga_myGoE amp_current [ga_myGoE:amp_current:d:$1-1])
DOELSEIF ([ga_myGoE:car_state] == 4) (set ga_myGoE off)
DOELSEIF ([ga_myGoE:car_state] == 3) (set ga_myGoE amp_current 6)
DOELSEIF ([ga_myGoE:car_state] == 1) (set ga_myGoE off, set ga_myGoE amp_current 6)
DOELSE (set ga_myGoE off, set ga_myGoE amp_current 6)
attr WB_PV_Regelung cmdState Incr|Decr|Fertig geladen, aus|Start Ladung mit 6A|Kein Auto|Laden nicht möglich

Titel: Antw:DOIF wählt aktuell immer DOELSE Zweig - Klammerfehler? Tippfehler?
Beitrag von: Damian am 25 April 2022, 12:30:32
Wenn ein Trigger eines Reading z. B. in der ersten Bedingung kommt, dann wird diese Bedingung geprüft und wenn diese Bedingung nicht wahr ist, dann werden die anderen Fälle nicht mehr geprüft, sondern der ELSE-Fall kommt zum Zuge.

Wenn du willst, dass immer alle Bedingungen geprüft werden sollen, dann musst du das Attribut checkall setzen.
Titel: Antw:DOIF wählt aktuell immer DOELSE Zweig - Klammerfehler? Tippfehler?
Beitrag von: isy am 25 April 2022, 15:26:08
Danke für die schnelle Antwort,
ja so passt das DOIF.

VG Helmut