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
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.
Danke .. werde ich morgen testen.
Danke, Problem wurde gelöst!
Funktioniert jetzt ohne Probleme (jedenfalls bei mir)
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