Hallo Zusammen,
ich bin sicher, ich bin nicht der erste der fragt....dennoch habe ich bisher keine Lösung gefunden:
TV:playStatus:.* {
if (ReadingsVal("TV", "playStatus", "") eq "playing"){
system("/Scripte/Farbesetzen.sh 0 0 0 &")}
if (ReadingsVal("TV", "playStatus", "") eq "paused"){
system("/Scripte/Zufallsfarbe.sh &")}
if (ReadingsVal("TV", "playStatus", "") eq "stopped"){
system("/Scripte/Zufallsfarbe.sh &");; sleep 120; system("/Scripte/Farbesetzen.sh 0 0 0 &") }
}
Dies ist ein Notify an einem TV Objekt, was wiederum ein Kodi(XBMC) ist.
Wechselt nun der Status von Play auf Pause wird eine Zufallsfarbe (auf ein rgbLED Band) gesetzt.
Wechselt der Status auf Stop, wird ebenfalls eine Zufallsfarbe gesetzt und nach 2 Minuten ausgeschaltet.
Allerdings friert mir das Sleep das gesamte FHEM ein...:-(
Wie muss ich das Sleep formulieren, das die Aktion verzögert wird, aber nicht das FHEM blockiert?
Danke,
Kharim
Sleep - in welcher Art auch immer - lässt den FHEM hängen. Besser, du benutzt ein at...
rudolfkoenig in http://forum.fhem.de/index.php/topic,27305.msg202037.html#msg202037
Zitat
FHEM-sleep gefolgt von einem Befehl startet diesen Befehl mit einem internen Timer, ist also sowas wie ein at ohne Namen, und blockiert FHEM nicht. FHEM-sleep ohne ein FHEM-Befehl dahinter ist nichts anderes als ein perl-sleep, und blockiert FHEM. Man sollte die Finger davon lassen.
es gibt ein perl sleep: auf keinen fall verwenden. es blockiert fhem.
es gibt ein fhem sleep: das ist problemlos und kann verwendet werden.
in deinem fall kannst du entweder ein fhem sleep verwenden, ein temporäres at oder du verlagerst das sleep auf die shell ebene. z.b. so:if (ReadingsVal("TV", "playStatus", "") eq "stopped"){
system("/Scripte/Zufallsfarbe.sh &");; system("(sleep 120;;/Scripte/Farbesetzen.sh 0 0 0) &") }
}
gruss
andre
@andre:
Ist Rudis von mir zitierte Aussage überholt, d.h. FHEM-sleep ohne folgendes Kommando blockiert nicht mehr?
ein fhem sleep ohne darauf folgendes kommando blockiert immer noch, erzeugt aber inzwischen eine deprecated meldung im log und macht auch keinen sinn.
das sleep ganz oben im ersten beitrag ist aber ein perl sleep und blockiert immer und auf jeden fall.
die fhem sleep variante würde etwa so aussehen und wäre auch ok:system("/Scripte/Zufallsfarbe.sh &");; fhem( 'sleep 120;; {system("/Scripte/Farbesetzen.sh 0 0 0 &") }')
gruss
andre
Eieiei...das muss man auch erst einmal wissen.
Ich danke euch.