Hallo Zusammen,
ich habe 3 Tür-Sensoren die ich in einer Struktur (=Licht) zusammengefasst habe, damit ich darüber die Aussenbeleuchtung steuern kann.
Dafür habe 3 Sensonren im Einsatz. 2 "alte" Fibaro Tür-Sensoren die direkt in das STATE Feld berichten (open/closed) und einen neuen, der über ALARM arbeitet.
Die ersten 2 funktionieren perfekt, der 3 überträgt immer nur das "wakeupInterval 86400 1". Dazu habe ich bei dem 3. Doorsensor eine LICHT_MAP erstellt, die eben auch das open/closed Attribut übertragen soll aus dem Reading
Irgendwie wird das aber von der Struktur ignoriert. Was mache ich falsch:
Hier die Definitionen:
defmod Aussentueren structure Licht Garage_Mike Garage_Eva Haustuer
attr Aussentueren clientstate_behavior relativeKnown
attr Aussentueren clientstate_priority open closed
attr Aussentueren room Umgebung
attr Aussentueren setStructType 1
attr Aussentueren verbose 5
--------------------------------
defmod Haustuer ZWave xxxxxxx 62
attr Haustuer userattr Licht Licht_map structexclude
attr Haustuer IODev ZWAVE1
attr Haustuer Licht_map state (-> egal was ich hier reinschreibe)
attr Haustuer classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO APPLICATION_STATUS BATTERY CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION ALARM POWERLEVEL SECURITY SENSOR_MULTILEVEL VERSION WAKE_UP
attr Haustuer room Erdgeschoss,Umgebung,ZWave
attr Haustuer stateFormat {trim((split / /, ReadingsVal("Haustuer","alarm",0))[3])}
attr Haustuer vclasses ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:4 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 SECURITY:1 SENSOR_MULTILEVEL:5 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2
Bitte um Unterstützung.
Laut deiner Erklärung, sollte Licht_map ALARM gehen. Laut deinem stateFormat ist es eher alarm kleingeschrieben. STATE ist nicht state, und ALARM ist nicht alarm.
Zeig bitte ein "list Haustuer", damit man auch die Readings sieht
Hier wie gewünscht der RAW-Auszug der Haustür:
defmod Haustuer ZWave xxxxxxx 62
attr Haustuer userattr Licht Licht_map structexclude
attr Haustuer IODev ZWAVE1
attr Haustuer Licht_map configDoorWindowState
attr Haustuer classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO APPLICATION_STATUS BATTERY CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION ALARM POWERLEVEL SECURITY SENSOR_MULTILEVEL VERSION WAKE_UP
attr Haustuer room Erdgeschoss,Umgebung,ZWave
attr Haustuer stateFormat {trim((split / /, ReadingsVal("Haustuer","alarm",0))[3])}
attr Haustuer vclasses ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:4 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 SECURITY:1 SENSOR_MULTILEVEL:5 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2
setstate Haustuer closed
setstate Haustuer 2020-11-14 19:11:32 SEND_DATA failed:00
setstate Haustuer 2020-11-15 07:54:15 alarm AccessControl: Window/Door is closed
setstate Haustuer 2020-11-14 20:41:48 config2ndAssociationGroupTriggers SwitchAfterOpeningAndClosing
setstate Haustuer 2020-11-14 20:41:48 configAssociationForClosingTimeDelay 0
setstate Haustuer 2020-11-14 20:41:48 configAssociationForClosingValueSent 0
setstate Haustuer 2020-11-14 20:41:48 configAssociationForOpeningTimeDelay 0
setstate Haustuer 2020-11-14 20:41:48 configAssociationForOpeningValueSent 255
setstate Haustuer 2020-11-14 20:41:48 configAssociationsInZWaveNetwork3 Group2And3
setstate Haustuer 2020-11-14 20:41:48 configDoorWindowState Closed
setstate Haustuer 2020-11-14 20:41:48 configHighTemperatureAlarmThreshold 350
setstate Haustuer 2020-11-14 20:41:51 configIntervalOfTemperature50 300
setstate Haustuer 2020-11-14 20:57:40 configIntervalOfTemperatureReports 0
setstate Haustuer 2020-11-14 20:57:40 configLowTemperatureAlarmThreshold 100
setstate Haustuer 2020-11-14 20:57:40 configTamperAlarmCancellationDelay 5
setstate Haustuer 2020-11-14 20:57:40 configTamperReportingAlarmCancellation SendTamperCancellationReport
setstate Haustuer 2020-11-14 20:57:40 configTemperatureAlarmReports Disabled
setstate Haustuer 2020-11-14 20:57:40 configTemperatureOffset 0
setstate Haustuer 2020-11-14 20:57:40 configVisualLEDIndications 6
setstate Haustuer 2020-11-14 19:07:59 model FIBARO System FGDW002 Door Opening Sensor 2
setstate Haustuer 2020-11-14 19:07:59 modelConfig fibaro/fgdw2.xml
setstate Haustuer 2020-11-14 19:07:59 modelId 010f-0702-1000
setstate Haustuer 2020-11-14 19:07:48 state wakeupInterval 86400 1
setstate Haustuer 2020-11-14 22:28:51 temperature 21.2 C
setstate Haustuer 2020-11-14 20:57:40 timeToAck 0.133
setstate Haustuer 2020-11-14 20:57:56 transmit NO_ACK
setstate Haustuer 2020-11-14 20:57:40 wakeup notification
setstate Haustuer 2020-11-14 19:11:38 zwavePlusInfo version:01 role:SleepingReportingSlave node:Z-Wave+Node installerIcon:0c06 userIcon:0c06
Ich hoffe das hilft
Ich habe nicht um einen RAW-Auszug gebeten, sondern um ein "list".... Also: "list Haustuer" im Kommandofeld eingeben, und das Ergebnis kopieren.
Ist in configDoorWindowState immer der aktuelle Stand der Tür? Dann Licht_map configDoorWindowState
Wenn nicht, am besten ein userReading definieren, der das Reading alarm umwandelt, damit es nur noch open/closed kommt. Und dann Licht_map auf diesem Reading setzen.
Das stateFormat Attribut setzt das STATE Internal, was fuer die Anzeige massgebend ist.
Structure nimmt das STATE Internal nur dann, falls kein state Reading vorhanden ist.
"Licht_map state" ist ueberfluessig, das ist naemlich die Voreinstellung.
"Licht_map configDoorWindowState" hat das Problem, dass es zu Closed (mit grossen C) evaluiert, war wiederum wegen "clientstate_behavior relativeKnown" und "clientstate_priority open closed" ignoriert wird (nur closed mit kleinen c soll akzeptiert werden).
Dann ggf
Licht_map configDoorWindowState:Closed:closed configDoorWindowState:Opened:opened
Aber das Reading configDoorWindowState scheint nicht ein vernünftiges Timestamp zu haben. Deswegen meine Frage
Leider enthält das Feld configDoorWindowState nur was passiert wenn der Magnet offen ist oder nicht ... also soll ein geschlossener Magnet OPEN oder CLOSE melden ... ist leider kein Reading was man verwenden kann ...
Hier noch das LIST wie gewünscht:
Internals:
CFGFN
DEF xxxxxxx 62
FUUID 5fb01cf2-f33f-5249-d640-7ecc4653eb198a2f
IODev ZWAVE1
LASTInputDev ZWAVE1
MSGCNT 186
NAME Haustuer
NR 436
STATE closed
TYPE ZWave
ZWAVE1_MSGCNT 186
ZWAVE1_RAWMSG 0004003e097105000000ff061700
ZWAVE1_TIME 2020-11-15 11:21:29
ZWaveSubDevice no
cmdsPending 0
homeId caa3c85b
isWakeUp 1
lastMsgSent 1605383862.55655
nodeIdHex 3e
READINGS:
2020-11-14 19:11:32 SEND_DATA failed:00
2020-11-15 11:21:29 alarm AccessControl: Window/Door is closed
2020-11-14 20:41:48 config2ndAssociationGroupTriggers SwitchAfterOpeningAndClosing
2020-11-14 20:41:48 configAssociationForClosingTimeDelay 0
2020-11-14 20:41:48 configAssociationForClosingValueSent 0
2020-11-14 20:41:48 configAssociationForOpeningTimeDelay 0
2020-11-14 20:41:48 configAssociationForOpeningValueSent 255
2020-11-14 20:41:48 configAssociationsInZWaveNetwork3 Group2And3
2020-11-14 20:41:48 configDoorWindowState Closed
2020-11-14 20:41:48 configHighTemperatureAlarmThreshold 350
2020-11-14 20:41:51 configIntervalOfTemperature50 300
2020-11-14 20:57:40 configIntervalOfTemperatureReports 0
2020-11-14 20:57:40 configLowTemperatureAlarmThreshold 100
2020-11-14 20:57:40 configTamperAlarmCancellationDelay 5
2020-11-14 20:57:40 configTamperReportingAlarmCancellation SendTamperCancellationReport
2020-11-14 20:57:40 configTemperatureAlarmReports Disabled
2020-11-14 20:57:40 configTemperatureOffset 0
2020-11-14 20:57:40 configVisualLEDIndications 6
2020-11-14 19:07:59 model FIBARO System FGDW002 Door Opening Sensor 2
2020-11-14 19:07:59 modelConfig fibaro/fgdw2.xml
2020-11-14 19:07:59 modelId 010f-0702-1000
2020-11-14 19:07:48 state wakeupInterval 86400 1
2020-11-14 22:28:51 temperature 21.2 C
2020-11-14 20:57:40 timeToAck 0.133
2020-11-14 20:57:56 transmit NO_ACK
2020-11-14 20:57:40 wakeup notification
2020-11-14 19:11:38 zwavePlusInfo version:01 role:SleepingReportingSlave node:Z-Wave+Node installerIcon:0c06 userIcon:0c06
Attributes:
IODev ZWAVE1
Licht_map alarm
classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO APPLICATION_STATUS BATTERY CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION ALARM POWERLEVEL SECURITY SENSOR_MULTILEVEL VERSION WAKE_UP
room Erdgeschoss,Umgebung,ZWave
stateFormat {trim((split / /, ReadingsVal("Haustuer","alarm",0))[3])}
userattr Licht Licht_map structexclude
vclasses ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_
Anscheinend enthält dein STATE schon closed.
Dann nimm einfach das Licht_map Attribut weg
Hier der überarbeitete List Haustuer:
Internals:
CFGFN
DEF xxxxxxxxx 62
FUUID 5fb01cf2-f33f-5249-d640-7ecc4653eb198a2f
IODev ZWAVE1
LASTInputDev ZWAVE1
MSGCNT 191
NAME Haustuer
NR 436
STATE closed
TYPE ZWave
ZWAVE1_MSGCNT 191
ZWAVE1_RAWMSG 0004003e097105000000ff061700
ZWAVE1_TIME 2020-11-15 12:22:52
ZWaveSubDevice no
cmdsPending 0
homeId caa3c85b
isWakeUp 1
lastMsgSent 1605383862.55655
nodeIdHex 3e
READINGS:
2020-11-14 19:11:32 SEND_DATA failed:00
2020-11-15 12:22:52 alarm AccessControl: Window/Door is closed
2020-11-14 20:41:48 config2ndAssociationGroupTriggers SwitchAfterOpeningAndClosing
2020-11-14 20:41:48 configAssociationForClosingTimeDelay 0
2020-11-14 20:41:48 configAssociationForClosingValueSent 0
2020-11-14 20:41:48 configAssociationForOpeningTimeDelay 0
2020-11-14 20:41:48 configAssociationForOpeningValueSent 255
2020-11-14 20:41:48 configAssociationsInZWaveNetwork3 Group2And3
2020-11-14 20:41:48 configDoorWindowState Closed
2020-11-14 20:41:48 configHighTemperatureAlarmThreshold 350
2020-11-14 20:41:51 configIntervalOfTemperature50 300
2020-11-14 20:57:40 configIntervalOfTemperatureReports 0
2020-11-14 20:57:40 configLowTemperatureAlarmThreshold 100
2020-11-14 20:57:40 configTamperAlarmCancellationDelay 5
2020-11-14 20:57:40 configTamperReportingAlarmCancellation SendTamperCancellationReport
2020-11-14 20:57:40 configTemperatureAlarmReports Disabled
2020-11-14 20:57:40 configTemperatureOffset 0
2020-11-14 20:57:40 configVisualLEDIndications 6
2020-11-14 19:07:59 model FIBARO System FGDW002 Door Opening Sensor 2
2020-11-14 19:07:59 modelConfig fibaro/fgdw2.xml
2020-11-14 19:07:59 modelId 010f-0702-1000
2020-11-14 19:07:48 state wakeupInterval 86400 1
2020-11-14 22:28:51 temperature 21.2 C
2020-11-14 20:57:40 timeToAck 0.133
2020-11-14 20:57:56 transmit NO_ACK
2020-11-14 20:57:40 wakeup notification
2020-11-14 19:11:38 zwavePlusInfo version:01 role:SleepingReportingSlave node:Z-Wave+Node installerIcon:0c06 userIcon:0c06
Attributes:
IODev ZWAVE1
classes ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO APPLICATION_STATUS BATTERY CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION ALARM POWERLEVEL SECURITY SENSOR_MULTILEVEL VERSION WAKE_UP
room Erdgeschoss,Umgebung,ZWave
stateFormat {trim((split / /, ReadingsVal("Haustuer","alarm",0))[3])}
userReadings {trim((split / /, ReadingsVal("Haustuer","alarm",0))[3])}
userattr Licht Licht_map structexclude
vclasses ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:4 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 SECURITY:1 SENSOR_MULTILEVEL:5 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2
Leider habe ich der Structure immer noch folgende Werte:
closed,closed,wakeupInterval 86400 1
Die ersten beiden "closed" sind die alten Sensoren, wo es geht
ZitatDann nimm einfach das Licht_map Attribut weg
Das wird nicht helfen, solange ein state Reading mit "falschen" Werten vorhanden ist.
Ich wuerde per userreadings Attribut aus alarm ein Reading basteln, was closed oder opened entaehlt, und dieses Reading dann in LICHT_map spezifizieren.
Zitat von: rudolfkoenig am 15 November 2020, 12:31:11
Das wird nicht helfen, solange ein state Reading mit "falschen" Werten vorhanden ist.
Ich wuerde per userreadings Attribut aus alarm ein Reading basteln, was closed oder opened entaehlt, und dieses Reading dann in LICHT_map spezifizieren.
Sorry falls ich auf der Leitung stehe, aber ich dachte daß ich das jetzt gemacht hätte ... es gibt jetzt ein Userreading ... wird aber nicht in die Structure übernommen ...
Dein userreadings ist falsch definiert.
Es fehlt auf alle Fälle der neue ReadingName (und der Trigger)...
attr Device userreadings NameNeuesReading[:Trigger] {"Berechnung"}
EDIT: und du musst das userreadings nat. mal triggern, damit es "berechnet" wird...
Und ob das dann so geht, dass nur open/closed kommt hängt von den Alarmen ab.
Manche ZWave-Dinger schicken auch weitere Alarme (z.B. Tamper etc.)...
EDIT: und wenn du das userreadings (richtig) hast, dann kannst du auch dein stateFormat "vereinfachen"... ;)
Gruß, Joachim
Das gezeigte userReading scheint fuer mich kaputt zu sein: ich finde keinen Namen.
Und diesen Namen muesste man dann in Licht_map referenzieren.
Alternativ spezifiziert man in Licht_map mehrere Werte mit jeweils drei Werten, wo man aus dem alarm Reading closed bzw. opened macht.
Die Lösung war, daß ich dem Userreading einen eigenen Namen geben musste, und das dann in die Struktur "_map" gemappt habe....
Danke an alle für Eure Unterstützung!!