Thema: [structure] - problem mit Reading

Begonnen von Mike-Sbg, 15 November 2020, 08:59:37

Vorheriges Thema - Nächstes Thema

Mike-Sbg

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.

amenomade

#1
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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Mike-Sbg

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


amenomade

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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rudolfkoenig

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).

amenomade

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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Mike-Sbg

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_

amenomade

Anscheinend enthält dein STATE schon closed.
Dann nimm einfach das Licht_map Attribut weg
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Mike-Sbg

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

rudolfkoenig

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.

Mike-Sbg

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 ...

MadMax-FHEM

#11
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rudolfkoenig

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.

Mike-Sbg

#13
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!!