(gelöst) notify $EVENT an 2 Set übergeben

Begonnen von Wernieman, 22 Mai 2017, 07:59:34

Vorheriges Thema - Nächstes Thema

Wernieman

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

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
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rudolfkoenig

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.

Wernieman

Danke .. werde ich morgen testen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Wernieman

Danke, Problem wurde gelöst!

Funktioniert jetzt ohne Probleme (jedenfalls bei mir)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe