Folgende Situation.... Ich habe einen dummy angelegt:
define kinoschalter dummy
attr Kinoschalter setList on off
attr Kinoschalter webCmd on:off
an dem Dummy ist ein doif gekoppelt. Ich habe deshalt ein doif gewählt weil mehrere sachen in einer bestimmten zeit ausgeführt werden sollen:
define kinoan DOIF ([Kinoschalter] eq "on")(set Jalousin off)({system('sudo python /home/pi/soundwiedergabekino.py&');;})(set Lampe blink 5 1)(set Lampe on)DOELSE ()
attr kinoan wait 0,18,15,12
Es funktioniert auch alles soweit.....Nur wenn der dummy bereits auf on steht und ich erneut auf on drücke soll das DOIF erneut ausgeführt werden. Ich weiss nicht so ganz an welcher Stelle ich das event-on-update-reading setzten muss... :-\
Zitat von: kalle86 am 07 September 2016, 00:58:50
Ich weiss nicht so ganz an welcher Stelle ich das event-on-update-reading setzten muss... :-\
Brauchst du erstmal nicht, da dein dummy kein event-on-change-reading hat.
Was du brauchst ist ein do always im DOIF
Nebenbei, statt
{system('sudo python /home/pi/soundwiedergabekino.py&');;}
sollte
"sudo python /home/pi/soundwiedergabekino.py"
reichen, siehe SHELL-Befehle (http://fhem.de/commandref_DE.html#command)
Vielen dank für die Hinweise. Mit dem do always funktioniert das ganze :D
Habe trotzdem noch eine Verständnisfrage zu event-on-change bzw. update reading
Beispiel Szenario
define Schalter dummy
attr Schalter1 setList on off
attr Schalter1 webCmd on:off
attr Schalter1 event-on-change-reading state
define Schalter2 dummy
attr Schalter2 setList on off
attr Schalter2 webCmd on:off
attr Schalter2 event-on-update-reading state
define Lampe dummy
attr Lampe setList on off
attr Lampe webCmd on:off
define Lampe_doif ([Schalter1] eq "on" and [Schalter2] eq "on")(set Lampe on)DOELSE ()
attr Lampe_doif do always
Angenommen:
Schalter1 & Schalter2 stehen auf on
Licht steht auf off
Dann schalte ich Schalter 1 auf off und danach wieder auf on --> dann geht die Lampe an ohne dass das reading von Schaler2 geupdatet wurde....Wo liegt mein Fehler
Die Bedingung ist wahr, weil [Schalter2] eq "on" wahr ist, das Reading bleibt "on".
Siehe Hilfe zum DOIF
ZitatZu beachten ist, dass nur die Bedingungen überprüft werden, die zum ausgelösten Event das dazughörige Device bzw. die dazugehörige Triggerzeit beinhalten.
Der Fehler ist, zu denken, es sei nicht so ;)