FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Wernieman am 22 Mai 2017, 07:59:34

Titel: (gelöst) notify $EVENT an 2 Set übergeben
Beitrag von: Wernieman am 22 Mai 2017, 07:59:34
Hallo Kollegen,

uns ist ein komisches Problem aufgefallen, um es nachzustellen:
Definiere 3 Dummys:
Test1, Test2, TestTricker

Nun definieren wir wie folgt:
myTestTricker set Test1 $EVENT ; set Test2 $EVENT

Wenn ich jetzt "set TestTricker on" mache,  wird wie gewüsch Test1 auf on, Test2 dagegen auf "$EVENT" gesetzt. Das passiert nur nur bei mir, sondern auch bei anderen, allerdings nicht bei allen.
Siehe auch https://forum.fhem.de/index.php/topic,72120.0.html (https://forum.fhem.de/index.php/topic,72120.0.html)

Lösung für obiges wäre bekanntlich
myTestTricker set Test1,Test2 $EVENT

Aber nicht generell möglich, z.B. wenn man ein sleep will:
myTestTricker set Test1 $EVENT ; sleep 1 ; set Test2 $EVENT

Weiß jemand den Grund für dieses Verhalten?

Gruß,
Werner
Titel: Antw:notify $EVENT an 2 Set übergeben
Beitrag von: rudolfkoenig am 22 Mai 2017, 10:43:51
Danke fuer den Hinweis. Ich kann das Problem mit Folgendes nachstellen:
define d1 dummy
define d2 dummy
define nd1 notify d1 set d2 $EVENT ;; set d1 $EVENT
define nd2 notify d2 sleep 0

Auszuloesen ist es mit "set d1 on", Problem zu sehen mit list, d1 steht auf $EVENT.

Ursache: $EVENT steht in dem globalen $evalSpecials, es wird in AnalyzeCommand  bzw AnalyzePerlCommand ausgewertet und in AnalyzeCommandChain geloescht. Wenn in einer Befehlsfolge (aka CommandChain) "A; B" der erste Befehl (A) selbst eine Befehlsfolge generiert (z.Bsp. durch notify), dann ist beim Ausfuehren von B evalSpecials leer.

AnalyzeCommandChain merkt ab sofort via lokale Variable das globale evalSpecials, das Problem sollte damit weg sein. Ich vermute keine Nebeneffekte, aber man weiss es nie.
Titel: Antw:notify $EVENT an 2 Set übergeben
Beitrag von: Wernieman am 22 Mai 2017, 10:52:46
Danke .. werde ich morgen testen.
Titel: Antw:(gelöst) notify $EVENT an 2 Set übergeben
Beitrag von: Wernieman am 23 Mai 2017, 10:21:16
Danke, Problem wurde gelöst!

Funktioniert jetzt ohne Probleme (jedenfalls bei mir)
Titel: Antw:(gelöst) notify $EVENT an 2 Set übergeben
Beitrag von: DeeSPe am 23 Mai 2017, 10:29:50
Zitat von: Wernieman am 23 Mai 2017, 10:21:16
Danke, Problem wurde gelöst!

Funktioniert jetzt ohne Probleme (jedenfalls bei mir)

Kann ich bestätigen.
Danke Rudi!

Gruß
Dan