notify/watchdog nach disable 0 aktualisieren

Begonnen von matze86, 07 Oktober 2013, 16:16:05

Vorheriges Thema - Nächstes Thema

matze86

Hallo Fhem Community,

ich schalte eine Kamera über presence, watchdog und notify. Nach 15min "absent" schaltet der watchdog die Kamera ein. Bei "present" schaltet das notify die Kamera aus. Das funktioniert soweit auch alles.

Ich möchte nun zusätzlich die Kamera manuell schalten (on, off, automatik). Das ganze über einen Dummy geregelt.
On/Off setzen watchdog + notify auf disable 1. Auto setzt watchdog + notify auf disable 0.

Mein Problem ist, dass watchdog + notify beim reaktivieren (disable 0) nicht den aktuell gültigen Status mitbekommen. Wenn der Dummy also von On auf Auto gesetzt wird, dann bleibt die Kamera an, obwohl ich zuhause bin (present). Ich denke das diese Verhalten vom notify/watchdog Modul normal ist.

Gibt es eine Möglichkeit dem notify/watchdog zu sagen: "Schau nach was der Status von dem Device (Anwesend) ist und verhalte dich entsprechend." Oder kann ich alternativ für ein Device den aktuellen Status neu setzen (event auslösen)?

Ich weiß dass ich das ganze über irgendwelche Perl Konstrukte mit if-Bedingungen hindrehen kann. Hoffe aber, dass es dafür eine elegantere Möglichkeit gibt. (Man will ja seinen Code schön schlank halten.)


define Motion dummy
attr Motion setList state:auto,on,off
attr Motion webCmd state

define MotionOn notify Motion:on attr n_Motion disable 1 ;; attr w_Motion disable 1 ;; "sudo /etc/init.d/motion start"
define MotionOff notify Motion:off attr n_Motion disable 1 ;; attr w_Motion disable 1 ;; "sudo /etc/init.d/motion stop"
define MotionAuto notify Motion:auto attr n_Motion disable 0 ;; attr w_Motion disable 0

define w_Motion watchdog Anwesend:absent 00:15 Anwesend:present "sudo /etc/init.d/motion start" ;; trigger w_Motion .
attr w_Motion regexp1WontReactivate

define n_Motion notify Anwesend:present "sudo /etc/init.d/motion stop"



Gruß
Matthias