structure - Problem // Gelöst

Begonnen von daedalus0815, 26 Oktober 2021, 10:42:25

Vorheriges Thema - Nächstes Thema

daedalus0815

Hallo,
hab da ein strukurelles Problem....structure schaltet nicht korrekt für Fenster3 im ff. Beispiel, alle anderen Fenster* funktionieren.
FHEM ist brandaktuell, restarted...bisher habe ich Fenster3 aus structure auch mal entfernt und wieder hinzugefügt, aber leider  :-X

Bin jetzt leider etwas ratlos....oder sehe den Wald vor lauter Bäumen nicht...

Unter "Readings" ändert sich bei state zwar der Timestamp beim Öffnen/open-Fenster3, der state bleibt aber closed, obwohl unter
"Probably associated with" der Fenster3-status sich korrekt auf open setzt.

Gewünschter Effekt: Sobald EIN Fenster offen, soll die structure auf open gehen....

So sieht's aus nach dem Öffnen von Fenster3.....:

defmod Fenster_WohnZimmer structure Fenster Fenster1 Fenster1_1 Fenster2 Fenster2_2 Fenster3_3 Fenster_Terasse Fenster3
attr Fenster_WohnZimmer clientstate_behavior relative
attr Fenster_WohnZimmer clientstate_priority open closed
attr Fenster_WohnZimmer devStateIcon open:fts_light_dome_open@red closed:fts_light_dome@green
attr Fenster_WohnZimmer icon fts_window_2w



setstate Fenster_WohnZimmer closed
setstate Fenster_WohnZimmer 2020-10-18 12:03:59 Fenster_WohnZimmer closed
setstate Fenster_WohnZimmer 2021-10-26 10:31:23 LastDevice Fenster3
setstate Fenster_WohnZimmer 2021-10-26 10:31:23 LastDevice_Abs Fenster3
setstate Fenster_WohnZimmer 2021-10-26 10:31:23 state closed

-----------

Probably associated with:
Fenster1   closed   EnOcean
Fenster1_1 closed    EnOcean
Fenster2   closed   EnOcean
Fenster2_2  closed   EnOcean
Fenster3   open    ZWave
Fenster3_3 (Fenster_Küche_2)  closed     ZWave

-------------------------------------------

defmod Fenster3 ZWave fc91c5dd 69
attr Fenster3 userattr Fenster Fenster1 Fenster1_map Fenster_map structexclude
attr Fenster3 DbLogExclude .*
attr Fenster3 Fenster Fenster_WohnZimmer
attr Fenster3 classes ZWAVEPLUS_INFO MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY BATTERY POWERLEVEL VERSION WAKE_UP ASSOCIATION ASSOCIATION_GRP_INFO ALARM CONFIGURATION FIRMWARE_UPDATE_MD SECURITY
attr Fenster3 devStateIcon open:fts_light_dome_open@red closed:fts_light_dome@green
attr Fenster3 eventMap 255:open 0:closed
attr Fenster3 extendedAlarmReadings 1
attr Fenster3 room ZWave
attr Fenster3 stateFormat basicSet
attr Fenster3 userReadings motion_state:alarm.* { if(ReadingsVal($name,"alarm_AccessControl","n.a.") =~ "open"){return "open"}\
  else{return "closed"}\
}
attr Fenster3 vclasses ALARM:4 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:2 MANUFACTURER_SPECIFIC:2 POWERLEVEL:1 SECURITY:1 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2

setstate Fenster3 open
setstate Fenster3 2021-10-26 09:37:07 IODev ZWAVE1
setstate Fenster3 2021-10-26 09:13:52 alarm AccessControl: Window/Door is open, arg 000
setstate Fenster3 2021-10-26 10:31:23 alarm_AccessControl Window/Door is open, arg 000, notificationIsOn
setstate Fenster3 2021-10-26 08:57:38 associationAdd 1 1
setstate Fenster3 2021-10-26 10:31:23 basicSet 255
setstate Fenster3 2021-10-26 08:57:37 model Vision Security ZD2102 EU Door/Window Sensor
setstate Fenster3 2021-10-26 08:57:37 modelConfig vision/zd2102.xml
setstate Fenster3 2021-10-26 08:57:37 modelId 0109-2001-0106
setstate Fenster3 2021-10-26 10:31:23 motion_state open
setstate Fenster3 2021-10-26 08:57:36 state wakeupInterval 86400 1
setstate Fenster3 2021-10-26 08:57:40 timeToAck 0.029
setstate Fenster3 2021-10-26 08:57:40 transmit OK
setstate Fenster3 2021-10-26 08:57:38 wakeupInterval 86400 1
setstate Fenster3 2021-10-26 08:57:38 zwavePlusInfo version:01 role:SleepingReportingSlave node:Z-Wave+Node installerIcon:0c07 userIcon:0c07



daedalus0815

#1

.....das liebe ich ja, eigene Probleme selbst lösen und posten.... :-[

Wollte meine Problem eigentlich löschen, aber vielleicht hilft es jemanden....

Unter Readings von Fenster3 muss zwingend ein "state" generiert werden, damit der Status an die Structure korrekt durchgereicht wird.....der STATE unter internals reicht nicht......ob dieses Verhalten sinnvoll bzw. zu ändern ist, muss ein anderer entscheiden  :D

Mein Fix unter userreading zur Generierung des state-readings:
state:alarm.* { if(ReadingsVal($name,"alarm_AccessControl","n.a.") =~ "open"){return "open"}
  else{return "closed"}


d.h. der Strukturstatus leitet sich von "Fenster3:state" und NICHT von "Fenster3:STATE" ab !




rudolfkoenig

Danke fuer die Loesung.

STATE wird verwendet, wenn state nicht vorhanden ist.
Grund ist, dass der Benutzer STATE einfacher verunstalten kann :)

daedalus0815