FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: tomspatz am 15 Juli 2017, 11:11:09

Titel: [gelöst] und kombinieren
Beitrag von: tomspatz am 15 Juli 2017, 11:11:09
DOELSEIF ([schalter] eq "on|off")
wäre das so OK?
Die Alternative die ICH verstehe wäre sonst:
DOELSEIF ([schalter] eq "on" or [schalter] eq "off")

Falls mein erstes Beispiel irgendwie richtig sein sollte, würde ich den Status gerne weitergeben:
DOELSEIF ([schalter] eq "on|off")(set dummy $EVENT)

LG
Tom
Titel: Antw:und kombinieren
Beitrag von: amenomade am 15 Juli 2017, 12:41:46
Zitat
DOELSEIF ([schalter] eq "on|off")

wäre das so OK?
Nein.
ZitatDOELSEIF ([schalter] eq "on" or [schalter] eq "off")
Besser.

Zitatset dummy $EVENT
Damit wird aber das gesamte Event auf das Dummy gesetzt.
Titel: Antw:und kombinieren
Beitrag von: tomspatz am 15 Juli 2017, 12:48:09
ZitatDamit wird aber das gesamte Event auf das Dummy gesetzt.

OK aber wenn dann vom Schalter "on" kommt bekommt der dummy "on" oder was meinst du mit das gesamte Event?

LG
Tom
Titel: Antw:und kombinieren
Beitrag von: Otto123 am 15 Juli 2017, 12:55:31
Moin,

ich sehe den Zusammenhang mit DOIF nicht unbedingt, falls der nicht sein muss: Ein Vorschlag mit notifydefmod nty_schalter notify schalter:(on|off) set dummy $EVENT

Ob die Reaktion auf den Event exakt so auch im DOIF (https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events) geht habe ich nicht probiert, könnte aber auch gehen.

Gruß Otto
Titel: Antw:und kombinieren
Beitrag von: tomspatz am 15 Juli 2017, 12:58:17
@Otto
Ich versuche gerade ein Paar notifys zu "verschlimmbessern".
Der DOELSEIF Schnipsel ist nur ein Teil dieses Konstrukts.

LG
Tom
Titel: Antw:und kombinieren
Beitrag von: Otto123 am 15 Juli 2017, 13:04:00
Hallo Tom

dann versuch es doch mal, war ja als Anregung gedacht :)
ZitatEine Alternative zur Auswertung von Status oder Readings ist das Auswerten von Ereignissen (Events) mit Hilfe von regulären Ausdrücken. Der Suchstring wird als regulärer Ausdruck in Anführungszeichen angegeben. Die Syntax lautet: [<devicename>:"<regex>"]

Gruß Otto
Titel: Antw:und kombinieren
Beitrag von: amenomade am 15 Juli 2017, 13:29:50
ZitatOK aber wenn dann vom Schalter "on" kommt bekommt der dummy "on" oder was meinst du mit das gesamte Event?
Ja, hast Recht.

Otto hat auch Recht, du kannst auch folgendes schreiben:
(["^schalter$:on|off"])
Titel: Antw:und kombinieren
Beitrag von: Otto123 am 15 Juli 2017, 13:38:20
@amenomade
Ich versuche ja seit langem den Syntax von DOIF zu verstehen :)

Laut commandref wäre dann aber dies hier ([schalter:"on|off"]) deinem Ausdruck ebenbürdig oder?

Gruß Otto
Titel: Antw:und kombinieren
Beitrag von: tomspatz am 15 Juli 2017, 13:55:06
ZitatIch versuche ja seit langem den Syntax von DOIF zu verstehen :)

;)
Titel: Antw:und kombinieren
Beitrag von: amenomade am 15 Juli 2017, 13:55:38
@Otto: Ja, so sollte es auch gehen. Hatte nur einen komplizierten (mit mehrere Devices) Beispiel vereinfacht. Kann man aber noch mehr! ;)

Aber zurück zur Frage, egal die Form: ich würde mit sowas vorsichtlich sein. Wenn auf so einem DOIF (on|off) kein anderes Attribut gesetzt wird (wie z.B. do always), wird das DOIF nur einmal geschaltet UND DANN NICHT MEHR, so lange "schalter" keinen Wert bekommt, der weder "on" noch "off" ist...

Z.B.:
set schalter on => cmd1 wird duchgeführt.
set schalter off => nix
set schalter on => nix
set schalter duDoofReagierMalManchmal => das DOIF setzt sich auf cmd_2
set schalter off => cmd 1 wird durchgeführt
set schalter on => nix
set schalter off => nix
Titel: Antw:und kombinieren
Beitrag von: FranzB94 am 15 Juli 2017, 14:12:27
Hi Otto!
Zitat von: Otto123 am 15 Juli 2017, 13:38:20
Ich versuche ja seit langem den Syntax von DOIF zu verstehen :)

Hinweis von (Ex-)Sachse zu Sachse  ;)

http://www.duden.de/rechtschreibung/Syntax (http://www.duden.de/rechtschreibung/Syntax)

Gruß Franz

Titel: Antw:und kombinieren
Beitrag von: Per am 15 Juli 2017, 16:15:04
Zitat von: Otto123 am 15 Juli 2017, 13:38:20
Laut commandref wäre dann aber dies hier ([schalter:"on|off"]) deinem Ausdruck ebenbürdig oder?
Ja.
Titel: Antw:und kombinieren
Beitrag von: tomspatz am 21 Juli 2017, 11:27:02
Vielen dank an alle beteiligten.
Das funktioniert soweit einwandfrei, trotzdem bitte dabei bedenken, wie schon weiter oben amenomade schrieb:
ZitatDamit wird aber das gesamte Event auf das Dummy gesetzt.

Also Obacht! falls mehrere Angaben im Ausführungsteil vorhanden werden die ALLE auf den Dummy übertragen.
(set dummy $EVENT)
Ist OK
(set schalter on, set dummy $EVENT)
NICHT OK

LG
Tom


Titel: Antw:[gelöst] und kombinieren
Beitrag von: Otto123 am 21 Juli 2017, 15:00:35
Hallo Tom,

eigentlich nicht, wenn der Filter für den Eventtrigger scharf genug war.
Dein Ausführungsteilbeispiel triggert ja das DOIF rekursiv - ich weiß gar nicht was da passiert  :-[

Gruß Otto