FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: MrTom am 02 Juni 2017, 21:25:05

Titel: DOIF macht nur den ersten Befehl (gelöst)
Beitrag von: MrTom am 02 Juni 2017, 21:25:05
Hallo zusammen

ich habe einige einfach Bewegungsmelder im Einsatz, die ich über DOIF-Logiken verwende.

Zum Beispiel:
#########################################################################
## Bewegungsmelder Keller
#########################################################################
define XX_motion_Keller DOIF ([MYSENSOR_4:value1] eq "6957769") \
({ \
        fhem ("set KE_Lampe_Keller on-for-timer 300 ;;;; \
        define XX_motion_Keller_aus at +00:00:20 setreading XX_motion_Keller state off;;;; setreading MYSENSOR_4 value1 0") \
})
attr XX_motion_Keller alias Bewegungsmelder Keller
attr XX_motion_Keller cmdState on|off
attr XX_motion_Keller devStateIcon on:message_presence@red off:message_presence@white
attr XX_motion_Keller do always
attr XX_motion_Keller group Motiondetection
attr XX_motion_Keller icon motion_detector
attr XX_motion_Keller room Keller


Das funktionierte auch bis zum Update auf 5.8 problemlos.

Nun scheint es so, dass das Perl-Kommando ({
fhem ("set KE_Lampe_Keller on-for-timer 300 ;;
define XX_motion_Keller_aus at +00:00:20 setreading XX_motion_Keller state off;; setreading MYSENSOR_4 value1 0")
})
nur zum ersten Teil (einschalten der Lampe) läuft. Das Device XX_motion_Keller_aus wird nicht erzeugt und auch das setreading wird nicht ausgeführt.

Wenn ich jedoch den Befehl über das Befehlsfeld oder telnet ausführen, werden alle 3 Befehle abgearbeitet. Auch ein zusammenschieben der Zeilen (Verdacht auf ein Problem mit den Zeilenumbrüchen) brachte auch keine Verbesserung. In den Logs finde ich keine Hinweise. Auch nicht bei Verbose 5.

Habt ihr eine Lösung?

Gruss
Thomas
Titel: Antw:DOIF macht nur den ersten Befehl
Beitrag von: Damian am 02 Juni 2017, 21:30:23
define XX_motion_Keller DOIF ([MYSENSOR_4:value1] eq "6957769")
(set KE_Lampe_Keller on-for-timer 300)(setreading XX_motion_Keller state off, setreading MYSENSOR_4 value1 0)

attr XX_motion_Keller wait 0,20


Nutze die Möglichkeiten, die dir das Modul bietet.
Titel: Antw:DOIF macht nur den ersten Befehl
Beitrag von: MrTom am 02 Juni 2017, 22:01:22
Super! Besten Dank