structure schaltet nicht?!

Begonnen von stauraum, 13 Januar 2020, 09:18:19

Vorheriges Thema - Nächstes Thema

stauraum

Hallo zusammen,

ich habe mal wieder ein, für euch sicher, kleines Problem mit einem structure. Ich habe mit Testweise ein paar Xiaomi Fenster/Türkontakte bestellt und eingerichtet. Diese funktionieren jeder für sich über einen cc2351/zigbee2mqtt ohne Probleme.

Nun habe ich ein structure angelegt:

Internals:
   ATTR       strc_tueren
   CHANGEDCNT 4
   DEF        strc_tueren eg_wohnzimmer_terrassentuer eg_kueche_terrassentuer eg_flur_haustuer
   FUUID      5e1c1b4a-f33f-684f-4106-e0fc98696671dcdd
   NAME       strc_tueren
   NR         110
   NTFY_ORDER 50-strc_tueren
   STATE      true
   TYPE       structure
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1578902356.52314
           VALUE      true
   READINGS:
     2020-01-13 08:59:16   LastDevice      eg_flur_haustuer
     2020-01-13 08:59:16   LastDevice_Abs  eg_flur_haustuer
     2020-01-13 08:59:16   state           true
Attributes:
   clientstate_behavior relative
   clientstate_priority true false
   devStateIcon true:fts_door@green false:fts_door_open@red
   icon       fts_door
   room       97_Logik


An Devices selber wurden die userattr automatisch gepflegt.


Internals:
   CID        zigbee_0x00158d000424a2b4
   DEF        zigbee_0x00158d000424a2b4
   DEVICETOPIC eg_kueche_terrassentuer
   FUUID      5e10b052-f33f-684f-191d-4ece8f2de83b4412
   IODev      mqtt2server
   LASTInputDev mqtt2server
   MSGCNT     2
   NAME       eg_kueche_terrassentuer
   NR         103
   STATE      true
   TYPE       MQTT2_DEVICE
   mqtt2server_MSGCNT 2
   mqtt2server_TIME 2020-01-13 08:57:10
   Helper:
     DBLOG:
       battery:
         DBLogging:
           TIME       1578902230.03217
           VALUE      100
       contact:
         DBLogging:
           TIME       1578902230.03217
           VALUE      true
       linkquality:
         DBLogging:
           TIME       1578902230.03217
           VALUE      18
       voltage:
         DBLogging:
           TIME       1578902230.03217
           VALUE      3035
   READINGS:
     2020-01-04 16:33:38   associatedWith  MQTT2_zigbee2mqtt
     2020-01-13 08:57:10   battery         100
     2020-01-13 08:57:10   contact         true
     2020-01-13 08:57:10   linkquality     18
     2020-01-13 08:57:10   voltage         3035
Attributes:
   IODev      mqtt2server
   devStateIcon true:fts_door_right@green false:fts_door_right_open@red
   icon       fts_door_right_open
   readingList zigbee2mqtt/0x00158d000424a2b4:.* { json2nameValue($EVENT) }
   room       10_Erdgeschoß -> 02_Küche
   stateFormat contact
   userattr   strc_tueren strc_tueren_map structexclude


Dummerweise schaltet das structure aber nicht um?! Es bleibt immer auf true.

Vllt. habt ihr ja noch einen Tip, wo ich suchen könnte?

VG
stauraum

CoolTux

Dir fehlt ein state Reading im MQTT Device. Lege es an und dann sollte auch die Structure schalten.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Zitatich habe mal wieder ein, für euch sicher, kleines Problem mit einem structure.
Diese Annahme ist leider falsch, insb. wenn die clientstate Attribute gesetzt wurden.

ZitatVllt. habt ihr ja noch einen Tip, wo ich suchen könnte?
Das Wissen um _alle_ state Readings ist relevant, d.h. ich wuerde gerne die Ausgabe sehen von:
list eg_wohnzimmer_terrassentuer,eg_kueche_terrassentuer,eg_flur_haustuer state


stauraum

Das State-Reading ist vorhanden, allerdings groß geschrieben.


eg_wohnzimmer_terrassentuer     true
eg_kueche_terrassentuer     true
eg_flur_haustuer         true


Das wird mir auch so im structure angezeigt.


Probably associated with
eg_flur_haustuer
true
MQTT2_DEVICE
eg_kueche_terrassentuer
true
MQTT2_DEVICE
eg_wohnzimmer_terrassentuer
true
MQTT2_DEVICE


:o

CoolTux

Zitat von: stauraum am 13 Januar 2020, 09:37:34
Das State-Reading ist vorhanden, allerdings groß geschrieben.


eg_wohnzimmer_terrassentuer     true
eg_kueche_terrassentuer     true
eg_flur_haustuer         true


Das wird mir auch so im structure angezeigt.


Probably associated with
eg_flur_haustuer
true
MQTT2_DEVICE
eg_kueche_terrassentuer
true
MQTT2_DEVICE
eg_wohnzimmer_terrassentuer
true
MQTT2_DEVICE


:o

Das STATE ist kein Reading sondenr ein Internal und dieses wird wirft kein Event welches aber von structure benötigt wird.
Bitte sei so nett und befolge die Nachfragen von Rudi.
Zitat von: rudolfkoenig am 13 Januar 2020, 09:29:22
Das Wissen um _alle_ state Readings ist relevant, d.h. ich wuerde gerne die Ausgabe sehen von:
list eg_wohnzimmer_terrassentuer,eg_kueche_terrassentuer,eg_flur_haustuer state
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

ZitatDas STATE ist kein Reading sondenr ein Internal und dieses wird wirft kein Event welches aber von structure benötigt wird.
Anders ausgedrueckt: man _muss_ ueberall das state _Reading_ setzen, sonst wird das nix mit dem structure :)

stauraum


list eg_wohnzimmer_terrassentuer,eg_kueche_terrassentuer,eg_flur_haustuer state


bringt keinen Output. Da es das klein geschriebene Reading nicht gibt ...

CoolTux

#7
Dann musst Du es setzen. Entweder über die MQTT Konfiguration (kenne mich damit nicht aus) oder über ein userreadings

attr DEVICENAME userreadings state:contact:.* { ReadingsVal($name,'contact','none') }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Das Attribut fuer die "MQTT Konfiguration" heisst in diesem Fall jsonMap, und ist ein Attribut der MQTT2_DEVICE Instanzen.

TomLee

jsonmap greift bei mir in dem Fall eigenartigerweise aber nicht.
Der Sensor hat jetzt schon mehrfach ausgelöst:


Internals:
   CID        zigbee_0x00158d000302cc1e
   DEF        zigbee_0x00158d000302cc1e
   DEVICETOPIC MQTT2_zigbee_0x00158d000302cc1e
   FUUID      5cee4ef2-f33f-78f5-9b6b-00a7475b7ccd180f
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 114
   MQTT2_Server_TIME 2020-01-13 10:11:58
   MSGCNT     114
   NAME       MQTT2_zigbee_0x00158d000302cc1e
   NR         148
   STATE      Motion: false<br>Luminance: 318
   TYPE       MQTT2_DEVICE
   JSONMAP:
     occupancy  state
   READINGS:
     2019-05-29 11:20:50   associatedWith  MQTT2_Zigbee_Bridge
     2020-01-13 10:11:58   battery         91
     2020-01-13 10:11:58   illuminance     318
     2020-01-13 10:11:58   linkquality     2
     2020-01-13 10:11:58   occupancy       false
     2020-01-13 10:11:58   voltage         2985
Attributes:
   IODev      MQTT2_Server
   imageLink  /fhem/deviceimages/mqtt2/RTCGQ11LM.jpg
   jsonMap    occupancy:state
   model      L_08_Human_Motion_TempSensor
   readingList zigbee2mqtt/0x00158d000302cc1e:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE,Rollladen
   stateFormat Motion: occupancy<br>Luminance: illuminance


Gruß

Thomas

stauraum

Also bei mir greift weder userreading noch jsonMap:


attr eg_wohnzimmer_terrassentuer state:contact:.* { ReadingsVal($name,'contact','none') }



attr eg_wohnzimmer_terrassentuer jsonMap contact:state


Es taucht kein Reading "state" auf.  :o

rudolfkoenig

Wenn man jsonMap (neu) setzt, muss die passende Zeile in readingsList von
  zigbee2mqtt/0x00158d000424a2b4:.* { json2nameValue($EVENT) }
nach
  zigbee2mqtt/0x00158d000424a2b4:.* { json2nameValue($EVENT,'',$JSONMAP) }
geaendert werden.


Zitatattr eg_wohnzimmer_terrassentuer state:contact:.* { ReadingsVal($name,'contact','none') }
Das muesste
attr eg_wohnzimmer_terrassentuer userReadings state:contact:.* { ReadingsVal($name,'contact','none') }
sein, habs gerade mit einem dummy getestet.

stauraum

bei jsonMap hab ich mich einfach auf das Template zigbee2mqtt_ContactSensor gestützt. Habe das auf alle drei Kontakte gesetzt, da war neben jsonMap auch die readingList richtig gesetzt. Genützt hat es nur nichts ... #argh!

Das userReading war schon richtig in FHEM einggbn. Hatte es hier nur schnell runter getippt. Aber wenn ich es richtig verstanden habe brauche ist das userreading ja mit jsonMap nicht ... ;-)

rudolfkoenig

ZitatGenützt hat es nur nichts ...
Wenn ich das untersuchen soll, brauche ich ein FHEM Log Mitschnitt einer Nachricht, mit vorher gesetzten "attr mqtt2server verbose 5"

TomLee

Ach ja, die Erklärung warum und weshalb war schon wieder in Vergessenheit geraten ;D