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
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...
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)}
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]}
Vielen dank
das funzt jetzt einwandfrei.