[gelöst] WDT_delayedExecutionDevices wird ignoriert

Begonnen von tomspatz, 04 Juli 2021, 15:55:38

Vorheriges Thema - Nächstes Thema

tomspatz

Moin in deiser Konstellation wird der Sensor scheinbar ignoriert.
Der Sensor ist ein Technisat gelabelter HANK Electronics Ltd HKZW-DWS01 Door/Window Sensor
Internals:
   DEF        d0415cea 5
   FUUID      608088da-f33f-752b-ea8b-34dc23d600e27cad
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     514
   NAME       BalkontuerWZ_5
   NR         54
   STATE      closed
   TYPE       ZWave
   ZWDongle_0_MSGCNT 514
   ZWDongle_0_RAWMSG 00040005038003ffc600
   ZWDongle_0_TIME 2021-07-04 15:10:31
   ZWaveSubDevice no
   homeId     d0415cea
   isWakeUp   1
   nodeIdHex  05
   READINGS:
     2021-04-21 22:29:18   CMD             ZW_APPLICATION_UPDATE
     2021-06-30 20:44:06   IODev           ZWDongle_0
     2021-04-22 21:21:33   alarm           AccessControl: Window/Door is closed, arg 000
     2021-07-04 15:10:30   alarm_AccessControl Window/Door is closed, arg 000, notificationIsOn
     2021-04-21 22:23:51   assocGroup_1    Max 5 Nodes ZWDongle_0
     2021-04-21 22:23:51   assocGroup_2    Max 5 Nodes
     2021-04-21 22:23:50   assocGroups     2
     2021-07-04 15:10:31   battery         low
     2021-06-23 16:37:58   batteryPercent  21
     2021-07-04 15:10:31   batteryState    low
     2021-04-21 22:29:18   configBASICSETCommand Enabled
     2021-04-21 22:29:18   configLevelOfLowBattery 20
     2021-04-21 22:29:18   configValueOfTheBASICSET 255
     2021-04-21 22:23:51   model           HANK Electronics Ltd HKZW-DWS01 Door/Window Sensor
     2021-04-21 22:23:51   modelConfig     hank/hkzw-dws01.xml
     2021-04-21 22:23:51   modelId         0208-0200-0008
     2021-04-26 19:50:42   neighborList    ZWDongle_0 ZWave_SWITCH_MULTILEVEL_3 FunkSteckdose_4
     2021-04-21 22:19:38   state           wakeupInterval 86400 1
     2021-04-21 22:29:20   timeToAck       0.031
     2021-04-21 22:29:20   transmit        OK
     2021-04-21 22:19:41   zwavePlusInfo   version:01 role:SleepingReportingSlave node:Z-Wave+Node installerIcon:0c00 userIcon:0c00
Attributes:
   IODev      ZWDongle_0
   alias      Balkontür WZ
   classes    ZWAVEPLUS_INFO VERSION MANUFACTURER_SPECIFIC ALARM ASSOCIATION_GRP_INFO ASSOCIATION BATTERY WAKE_UP POWERLEVEL CONFIGURATION FIRMWARE_UPDATE_MD DEVICE_RESET_LOCALLY
   devStateIcon open:fts_door_open@red .*:fts_door
   extendedAlarmReadings 1
   icon       fts_door
   neighborListPos 1466.91,127.96
   room       Wohnzimmer
   stateFormat {(split(/,|is /, ReadingsVal($name,"alarm_AccessControl","")))[1]}
   vclasses   ALARM:5 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:2 MANUFACTURER_SPECIFIC:2 POWERLEVEL:1 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2

Internals:
   COMMAND   
   CONDITION  (ReadingsVal("Heizungssteuerung", "state", "no") eq "an")
   DEF        HeizungReglerWohnzimmer Sa-So|06:00|20.5 Mo-Fr|07:00|20.5 23:00|20.0 (ReadingsVal("Heizungssteuerung", "state", "no") eq "an")
   DEVICE     HeizungReglerWohnzimmer
   FUUID      60811fa4-f33f-752b-69cd-14fd79f9a2a8fc43
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       HeizungssteuerungWohnzimmerAn
   NR         60
   Profil 0: Sonntag 06:00:00 20.5, 23:00:00 20.0,
   Profil 1: Montag 07:00:00 20.5, 23:00:00 20.0,
   Profil 2: Dienstag 07:00:00 20.5, 23:00:00 20.0,
   Profil 3: Mittwoch 07:00:00 20.5, 23:00:00 20.0,
   Profil 4: Donnerstag 07:00:00 20.5, 23:00:00 20.0,
   Profil 5: Freitag 07:00:00 20.5, 23:00:00 20.0,
   Profil 6: Samstag 06:00:00 20.5, 23:00:00 20.0,
   STATE      20.5
   STILLDONETIME 0
   TYPE       WeekdayTimer
   READINGS:
     2021-07-04 14:02:28   currValue       20.5
     2021-07-04 14:02:28   nextUpdate      2021-07-04 23:00:00
     2021-07-04 14:02:28   nextValue       20.0
     2021-07-04 14:02:28   state           20.5
   SWITCHINGTIMES:
     06|06:00|20.5
     12345|07:00|20.5
     23:00|20.0
   TIMER:
     HeizungssteuerungWohnzimmerAn_3:
       HASH       HeizungssteuerungWohnzimmerAn
       MODIFIER   3
       NAME       HeizungssteuerungWohnzimmerAn_3
     HeizungssteuerungWohnzimmerAn_midnight:
       HASH       HeizungssteuerungWohnzimmerAn
       MODIFIER   midnight
       NAME       HeizungssteuerungWohnzimmerAn_midnight
       SETTIMERATMIDNIGHT 1
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         06:00:00   20.5
         23:00:00   20.0
       1:
         07:00:00   20.5
         23:00:00   20.0
       2:
         07:00:00   20.5
         23:00:00   20.0
       3:
         07:00:00   20.5
         23:00:00   20.0
       4:
         07:00:00   20.5
         23:00:00   20.0
       5:
         07:00:00   20.5
         23:00:00   20.0
       6:
         06:00:00   20.5
         23:00:00   20.0
     WEDAYS:
       0          1
       6          1
   profil:
     1:
       EPOCH      1625371200
       PARA       20.5
       TIME       06:00
       WE_Override 0
       TAGE:
         0
         6
     2:
       EPOCH      1625374800
       PARA       20.5
       TIME       07:00
       WE_Override 0
       TAGE:
         1
         2
         3
         4
         5
     3:
       EPOCH      1625432400
       PARA       20.0
       TIME       23:00
       WE_Override 0
       TAGE:
         0
         1
         2
         3
         4
         5
         6
   profile_IDX:
     0:
       06:00:00   1
       23:00:00   3
     1:
       07:00:00   2
       23:00:00   3
     2:
       07:00:00   2
       23:00:00   3
     3:
       07:00:00   2
       23:00:00   3
     4:
       07:00:00   2
       23:00:00   3
     5:
       07:00:00   2
       23:00:00   3
     6:
       06:00:00   1
       23:00:00   3
Attributes:
   WDT_Group  Heizung
   WDT_delayedExecutionDevices BalkontuerWZ_5
   WDT_sendDelay 12
   alias      Heizungssteuerung WZ an
   commandTemplate set $NAME  $EVENT
   devStateIcon active:Restart \d+.*:Restart .*:StandBy
   group      Heizung Einstellungen
   icon       sani_heating_automatic
   room       Steuerung->Heizung
   switchInThePast 1

Beta-User

Moin.

Im Moment ist das in WeekdayTimer so gelöst, dass ZWave-Sensoren als "open" erkannt werden, wenn das Reading "state" (genau) mit "open" matched. Das war vermutlich auch für die erste Generation ganz ok, bei den aktuellen "Plus" gibt es da anscheinend deutlich mehr Optionen, was wo stehen kann.

Im Code findet sich schon ein Hinweis, dass ich das ggf. etwas erweitern wollte, aber bisher hatte sich noch keiner beklagt, dass mehr erforderlich wäre...

Na ja, jetzt gibt es folgende Optionen:
- entweder du sorgst dafür, dass "state" in dem Kontakt passend gesetzt wird (userReading "state" mit trigger auf alarm_AccessControl)
- du stellst um auf "delayedExecutionCond"
- wir entwickeln da was, damit man z.B. neben dem Device auch noch Reading und regex angeben kann (und am besten einen getter, damit man leichter checken kann, ob das funktioniert wie erwartet).

Vermutlich wären ein paar mehr erläuternde Worte in der cref auch hilfreich...

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

tomspatz

hmmmmm
state gibt es doch schon bei dem Kontakt.
Gibt das nicht eine schweinerei? SORRY das ist nicht ganz so meins  :(
wäre es denn so OK ?
userReadings state:value.*{ReadingsVal("STATE","value",0)}

Beta-User

Zitat von: tomspatz am 06 Juli 2021, 11:10:00
hmmmmm
state gibt es doch schon bei dem Kontakt.
Gibt das nicht eine schweinerei? SORRY das ist nicht ganz so meins  :(
Bei anderen Device-Typen würde ich sagen: "Schweinerei" ist untertrieben, und es ist keine gute Idee, state selbst zu schreiben... ZWave hat nun (im Default) die Angewohnheit, "state" (das Reading) praktisch gar nicht zu befüllen, deswegen stehen da z.B. in deinem Fall schon "ewig" irgendwelche Konfigurationsanweisungen drin... Von daher habe ich (ausnahmsweise!) hier keine großen Bedenken.

Zitat
wäre es denn so OK ?
userReadings state:value.*{ReadingsVal("STATE","value",0)}
Nein.

a) der "trigger" ist "Murks", es gibt kein Reading/Event mit "value".
b) "STATE" ist ein Internal und wäre mit einer anderen Funktion auszulesen (InternalVal()). Das Internal triggert aber nicht und es wäre sowieso "im Kreis herum" (s.u.)...

Dachte nicht, dass das so schwierig ist, da du "eigentlich" den Hauptteil schon hast...
stateFormat wird damit vermutlich überflüssig (daher: im Kreis), aber so sollte es funktionieren:
userReadings state:alarm_AccessControl.* {(split(/,|is /, ReadingsVal($name,"alarm_AccessControl","")))[1]}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

tomspatz

Vielen dank
das funzt jetzt einwandfrei.