Watchdog schießt nur einmal, trotz trigger x .

Begonnen von Rampler, 02 August 2015, 11:07:04

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,
ich bekomme es einfach nicht hin, erstmal das Coding:

define Alarm_on_when_no_motion 00:02 SAME  {if(
Value("Alarm_status") ne "armed" &&
Value("Alarm_status") ne "wait" &&
Value("Alarm_status") ne "armedext")
{fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control')}}; trigger Alarm_on_when_no_motion .

Der Alarm_status steht auf "disarmed". Nach speichern des watchdog steht dieser auf defined. Er löst einmal aus, und dann steht er auf triggered, obwohl doch der Befehl trigger Alarm_on_when_no_motion . codiert ist. Wenn ich stattdessen setstate Alarm_on_when_no_motion defined verwende, ist der Status auf defined, jedoch löst der watchdog auch nicht mehr aus.

Ich vermute, ich mache wie so oft einen Denkfehler, kann mir bitte jemand auf die Sprünge helfen ...
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

frank

ist der 2. trigger aufruf auch in der definition enthalten? der muss jedenfalls weg.
code tags wären auch sehr komfortabel.  ;)
mit verbose beim watchdog bekommst du sicherlich fehlermeldungen in fhem.log.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rampler

Habe mal verbose 5 gesetzt, kann aber nicht wirkich einen Fehler erkennen...:

2015.08.02 12:01:54 3: Watchdog Alarm_on_when_no_motion triggered
2015.08.02 12:01:54 5: Cmd: >{if(
Value("Alarm_status") ne "armed" &&
Value("Alarm_status") ne "wait"  &&
Value("Alarm_status") ne "armedext")
# 021: Informational Message: I will try to activate Alarm System, because there was no Motion ..
{fhem('set FL.EG.gong.mp3 playTone 21 ; sleep 10 ; set Alarm_set_armed on ; set Alarm.log Tried to activate Armed through motion control ; trigger Alarm_on_when_no_motion .
')}}<
2015.08.02 12:01:54 5: Cmd: >set FL.EG.gong.mp3 playTone 21<
2015.08.02 12:01:54 5: CUL_HM FL.EG.gong protEvent:CMDs_pending pending:1
2015.08.02 12:01:54 5: Triggering FL.EG.gong.mp3 (1 changes)
2015.08.02 12:01:54 5: Notify loop for FL.EG.gong.mp3 set_playTone 21
2015.08.02 12:01:54 5: HMLAN_Send:  HMLAN1 S:SEDDC4F07 stat:  00 t:00000000 d:01 r:EDDC4F07 m:32 A011 29A083 322BFA 8002010115
2015.08.02 12:01:54 5: CUL_HM FL.EG.gong protEvent:CMDs_processing... pending:0
2015.08.02 12:01:54 5: Cmd: >sleep 10<
2015.08.02 12:01:54 4: sleeping for 10
2015.08.02 12:01:54 5: Cmd: >trigger Alarm_on_when_no_motion .
<
2015.08.02 12:01:54 5: Triggering Alarm_on_when_no_motion (1 changes)
2015.08.02 12:01:54 5: Notify loop for Alarm_on_when_no_motion .

??????????????
Bin ratlos ....

3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

frank

#3
was genau willst du eigentlich erreichen?
mir ist die definition auch nocht nicht ganz klar. poste mal nur den inhalt der DEF des watchdogs.
ausserdem muss der trigger befehl wohl aus dem if raus. der muss immer kommen, wenn der watch ausgelöst hat.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rampler

Zitat von: frank am 02 August 2015, 12:29:54
was genau willst du eigentlich erreichen?
mir ist die definition auch nocht nicht ganz klar. poste mal nur den inhalt der DEF des watchdogs.
ausserdem muss der trigger befehl wohl aus dem if raus. der muss immer kommen, wenn der watch ausgelöst hat.
Ist das so OK ? (ein List Alarm_on_when_no_motion)

Internals:
   CFGFN
   CMD        {if(
Value("Alarm_status") ne "armed" &&
Value("Alarm_status") ne "wait"  &&
Value("Alarm_status") ne "armedext")
# 021: Informational Message: I will try to activate Alarm System, because there was no Motion ..
{fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control')}}; trigger Alarm_on_when_no_motion .

   DEF        *.bm.motion:.on.* 00:01 SAME {if(
Value("Alarm_status") ne "armed" &&
Value("Alarm_status") ne "wait"  &&
Value("Alarm_status") ne "armedext")
# 021: Informational Message: I will try to activate Alarm System, because there was no Motion ..
{fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control')}}; trigger Alarm_on_when_no_motion .

   NAME       Alarm_on_when_no_motion
   NR         4092
   NTFY_ORDER 50-Alarm_on_motion
   RE1        *.bm.motion:.on.*
   RE2        *.bm.motion:.on.*
   STATE      triggered
   TO         60
   TYPE       watchdog
   Readings:
     2015-08-02 12:33:26   Activated       activated
     2015-08-02 12:34:26   Triggered       triggered
Attributes:
   icon       hourglass
   regexp1WontReactivate 0
   room       Alarm
   verbose    3


Das ist jetzt nur der DEF des Watchdogs:

*.bm.motion:.on.* 00:01 SAME {if(
Value("Alarm_status") ne "armed" &&
Value("Alarm_status") ne "wait"  &&
Value("Alarm_status") ne "armedext")
# 021: Informational Message: I will try to activate Alarm System, because there was no Motion ..
{fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control')}}; trigger Alarm_on_when_no_motion .
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

Zitat von: frank am 02 August 2015, 12:29:54
was genau willst du eigentlich erreichen?

Mein Problem ist, dass der Watchdog nur einmal auslöst, und danach auf triggered stehen bleibt ..., obwohl doch Trigger Alarm_on_when_no_motion . definiert ist.

Ausgelöst wird er z.B durch "CUL_HM WC.bm Motion: on". (also Bewegungsmelder)
Hintergrund:
Damit will ich so eine Art Abwesentheitssteuerung erreichen, wenn also einen bestimmte Zeit keine Bewegung erkannt wird, soll der Alarm eingeschaltet werden...
3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

frank

*.bm.motion:.on.* 00:01 SAME {
  if(Value("Alarm_status") ne "armed" && Value("Alarm_status") ne "wait" && Value("Alarm_status") ne "armedext") {
     fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control');
  }
  fhem('trigger Alarm_on_when_no_motion .');
}


so sollte sich der watchdog wieder auf defined setzen lassen, wenn er mal ausgelösst (triggered) wurde. das erste motion wird ihn aktivieren und alle weiteren motion innerhalb von 1min den timer zurücksetzen. so (hoffentlich  ;)) die theorie.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rampler

Zitat von: frank am 02 August 2015, 13:11:27
*.bm.motion:.on.* 00:01 SAME {
  if(Value("Alarm_status") ne "armed" && Value("Alarm_status") ne "wait" && Value("Alarm_status") ne "armedext") {
     fhem('set FL.EG.gong.mp3 playTone 21 ;; sleep 10 ;; set Alarm_set_armed on ;; set Alarm.log Tried to activate Armed through motion control');
  }
  fhem('trigger Alarm_on_when_no_motion .');
}


so sollte sich der watchdog wieder auf defined setzen lassen, wenn er mal ausgelösst (triggered) wurde. das erste motion wird ihn aktivieren und alle weiteren motion innerhalb von 1min den timer zurücksetzen. so (hoffentlich  ;)) die theorie.

SUPER, jetzt funktioniert es ... DANKE für die Mühe  :)
Nur schade, so richtig verstehe ich de Klammern wohl nie ...

Für was steht eigentlich ein einfaches Semikolon am ende ?  also ;}


3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

frank

ZitatFür was steht eigentlich ein einfaches Semikolon am ende ?  also ;}
nach jedem befehl ein semicolon. geschweifte klammern bilden einen befehls-block. so in etwa.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html