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
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.
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
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
@Otto
Ich versuche gerade ein Paar notifys zu "verschlimmbessern".
Der DOELSEIF Schnipsel ist nur ein Teil dieses Konstrukts.
LG
Tom
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
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"])
@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
ZitatIch versuche ja seit langem den Syntax von DOIF zu verstehen :)
;)
@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
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
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.
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
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