[Gelöst] Wann hört If Then auf die Bedingung zu prüfen? Querausstieg möglich?

Begonnen von jutil, 27 Juni 2016, 17:54:50

Vorheriges Thema - Nächstes Thema

jutil

Eine Frage.
Gibt es die Möglichkeit nach ener erfolgreichen if then Abfrage das notify zu verlassen? Bzw. das if then prozedere zu beenden?
Quasi wie beimVisual Basic einfach ein End in die Abfrage einzubauen?
Danke

Benni

Das verstehe ich nicht! Wenn die Bedingung für den if-Zweig zutrifft, wird dieser ausgeführt und sonst nix, es sei denn es kommt noch was danach, soll dies aber beim zutreffen der If-Bedingung nicht ausgeführt werden, gehört es in einen Else-Zweig.

Kannst du mal dein Notify zeigen, damit man versteht, was genau du warum wie machen willst?

jutil

Gerne
Ich habe das Problem, dass der Powertoggle Event im letzten If Block noch einmal ausgeführt wird und den TV wieder einschaltet wenn dieser eigentlich ausgeschaltet werden soll was bei genauerer Betrachtung ja auch logisch ist weil die Bedingung ja auch erfüllt wird.
Löse ich das mit Hilfe von elsif indem ich alle if Blöcke durch elsif verbinde ?
In meinem Verständnis wäre der letzte Block ja else, so wie ich es ja schon programmiert habe, daß würde ja demnach eigentlich nichts ändern.
Unter VB würde ich einfach ein End einbinden und aus der If Abfrage quasi quer raus gehen...aber das ist hier kein VB 😋



remote { if(($EVENT eq "PowerToggle") && (Value("TV") eq "on")) { fhem("set harmony_36285656 command $EVENT; set harmony_36471758 $EVENT; sleep 14; set TV off; set Magique off") }}

{ if(($EVENT eq "PowerToggle") && (Value("TV") eq "off")) { fhem("set TV on; set Magique on; sleep 14; set harmony_36285656 command $EVENT; set harmony_36471758 command $EVENT") }}

{ if(($EVENT eq "Mute") || ($EVENT eq "VolumeUp") || ($EVENT eq "VolumeDown")) { fhem("set harmony_36471758 $EVENT") } else { fhem("set harmony_36285656 $EVENT") }}

jutil

So habs hinbekommen, beim schreiben ist mir die Idee gekommen.....
Ich sage einfach in der letzten Abfrage wenn es PowerToggle ist, ignoriere es, fättisch
Die oberen beiden werde ich auch noch einmal zusammenfassen mit else.
Manchmal ist man ja auch wie vernagelt 😅

Danke


{ if(($EVENT eq "Mute") || ($EVENT eq "VolumeUp") || ($EVENT eq "VolumeDown")) { fhem("set harmony_36471758 $EVENT") } elsif (($EVENT ne "PowerToggle")) { fhem("set harmony_36285656 $EVENT") }}