Zigbee2mqtt Steckdose Zustand falsch

Begonnen von FHEM_Starter, 29 Oktober 2025, 16:32:31

Vorheriges Thema - Nächstes Thema

FHEM_Starter

Hallo,

ich habe mehrere Zigbee Steckdosen (Lidl) in FHEM eingebunden, das Template ist Zigbee2mqtt_plug. Die Steckdosen lassen sich auch schalten. Soweit, sogut.
Nun habe ich mir ein DOIF erstellt, welches auf den Status off abfragt und das schlägt fehl. Kein syntaktisches Problem! Der Event Monitor zeigt folgendes:

2025-10-29 15:52:13 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 set_on
2025-10-29 15:52:13 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 off
2025-10-29 15:52:13 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 on
2025-10-29 15:53:14 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 set_off
2025-10-29 15:53:14 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 on
2025-10-29 15:53:14 MQTT2_DEVICE MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 off

Wie zu sehen ist, kommt nach dem set_on erst einmal der Status off, bevor zu guter letzt tatsächlich on im state erscheint. Andersherum natürlich ebenso.
Ich kann also die Steckdose nicht einschaten ohne dass mein DOIF auf das off triggert.

Als Übeltäter habe ich - so glaube ich - die folgende Zeile ausgemacht:

attr MQTT2_zigbee_UG_AZ_ZigBee_Plug_1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }

Der Vollständigkeit halber hier das komplette List vom Device

Internals:
   CID        zigbee_UG_AZ_ZigBee_Plug_1
   DEF        zigbee_UG_AZ_ZigBee_Plug_1
   FUUID      6728c282-f33f-21e6-4e1e-21983cad22ee1ce7
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_192.168.17.86_45322
   MQTT2_FHEM_Server_MSGCNT 571
   MQTT2_FHEM_Server_TIME 2025-10-29 16:29:15
   MSGCNT     571
   NAME       MQTT2_zigbee_UG_AZ_ZigBee_Plug_1
   NR         8338
   STATE      click
   TYPE       MQTT2_DEVICE
   eventCount 211
   OLDREADINGS:
   READINGS:
     2025-10-29 14:03:25   IODev           MQTT2_FHEM_Server
     2024-11-05 09:30:35   associatedWith  MQTT2_zigbee_pi
     2025-10-29 15:51:39   attrTemplateVersion 20220909
     2025-10-29 16:29:15   child_lock      UNLOCK
     2025-10-29 16:29:15   color_mode      xy
     2025-10-29 16:29:15   current         0
     2025-10-29 16:29:15   energy          0.11
     2025-10-29 16:29:15   indicator_mode  off/on
     2025-10-29 16:29:15   last_seen       2025-10-29T15:29:15.065Z
     2025-10-29 16:29:15   linkquality     177
     2025-10-29 16:29:15   power           0
     2025-10-29 16:29:15   power_outage_memory off
     2025-10-29 16:29:15   state           off
     2025-10-29 16:29:15   update_available false
     2025-10-29 16:29:15   update_installed_version 192
     2025-10-29 16:29:15   update_latest_version 192
     2025-10-29 16:29:15   update_state    idle
     2025-10-29 16:29:15   voltage         235
Attributes:
   DbLogExclude .*
   comment    $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
   devStateIcon {my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $current = ReadingsVal($name,'current',0); my $pwr = ReadingsVal($name,'power',0); my $energy = ReadingsVal($name,'energy',0); qq(<div> <a href="/fhem?cmd.dummy=set $name toggle&XHR=1">$light</a> Aktuell: $current A  Leistung.: $pwr W<b></b>)}
   devicetopic zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   event-on-change-reading state
   genericDeviceType switch
   icon       message_socket
   model      zigbee2mqtt_plug
   readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
   room       MQTT2_DEVICE
   setList    on:noArg $DEVICETOPIC/set {"state":"ON"}
  off:noArg $DEVICETOPIC/set {"state":"OFF"}
  toggle:noArg $DEVICETOPIC/set {"state":"TOGGLE"}
   setStateList on off toggle
   stateFormat click
   userattr   alle_Rauchmelder_Struc alle_Rauchmelder_Struc_map structexclude

Habt ihr eine Idee, was ich ändern kann/muss?

Vielen Dank im voraus,
Gruß Wolfgang

rudolfkoenig

Zeig uns bitte die "unverdauten" MQTT Daten beim Schalten.
Diese sieht man in der Detailansicht vom MQTT2_FHEM_Server, wenn man oben auf "Show MQTT traffic" klickt.

FHEM_Starter

Hallo Rudi,

wow: was für eine prompte Reaktion :-) :)  :)

17:55:22.908
   
SENT
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1/set
   
{"state":"ON"}
17:55:23.285
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:23.284Z\",\"linkquality\":182,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"OFF\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:23.305
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:23.284Z","linkquality":182,"power":0,"power_outage_memory":"off","state":"OFF","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:23.375
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:23.284Z\",\"linkquality\":182,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"ON\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:23.395
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:23.284Z","linkquality":182,"power":0,"power_outage_memory":"off","state":"ON","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:23.410
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:23.348Z\",\"linkquality\":181,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"ON\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:23.430
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:23.348Z","linkquality":181,"power":0,"power_outage_memory":"off","state":"ON","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:24.931
   
SENT
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1/set
   
{"state":"OFF"}
17:55:25.335
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:25.334Z\",\"linkquality\":183,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"ON\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:25.355
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:25.334Z","linkquality":183,"power":0,"power_outage_memory":"off","state":"ON","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:25.369
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:25.334Z\",\"linkquality\":183,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"OFF\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:25.390
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:25.334Z","linkquality":183,"power":0,"power_outage_memory":"off","state":"OFF","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:25.405
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:25.382Z\",\"linkquality\":182,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"OFF\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:25.424
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:25.382Z","linkquality":182,"power":0,"power_outage_memory":"off","state":"OFF","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:44.662
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:44.659Z\",\"linkquality\":182,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"OFF\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":230}'"}
17:55:44.683
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:44.659Z","linkquality":182,"power":0,"power_outage_memory":"off","state":"OFF","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":230}
17:55:58.190
   
zigbee_pi
   
zigbee2mqtt/bridge/logging
   
{"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/UG_AZ_ZigBee_Plug_1', payload '{\"child_lock\":\"UNLOCK\",\"color_mode\":\"xy\",\"current\":0,\"energy\":0.11,\"indicator_mode\":\"off/on\",\"last_seen\":\"2025-10-29T16:55:58.188Z\",\"linkquality\":180,\"power\":0,\"power_outage_memory\":\"off\",\"state\":\"OFF\",\"update\":{\"installed_version\":192,\"latest_version\":192,\"state\":\"idle\"},\"update_available\":false,\"voltage\":228}'"}
17:55:58.210
   
zigbee_pi
   
zigbee2mqtt/UG_AZ_ZigBee_Plug_1
   
{"child_lock":"UNLOCK","color_mode":"xy","current":0,"energy":0.11,"indicator_mode":"off/on","last_seen":"2025-10-29T16:55:58.188Z","linkquality":180,"power":0,"power_outage_memory":"off","state":"OFF","update":{"installed_version":192,"latest_version":192,"state":"idle"},"update_available":false,"voltage":228}


Danke und Gruß
Wolfgang

rudolfkoenig

Die zigbee2mqtt/bridge/logging Daten sind fuer die Aufgabe irrelevant.

Bei den zigbee2mqtt/UG_AZ_ZigBee_Plug_1 Daten nach "set on" habe ich die gemeinsamen Teile rausgeschnitten.
Was bleibt ist:
17:55:23.305 ... {...,"state":"OFF",...}
17:55:23.395 ... {...,"state":"ON", ...}
17:55:23.430 ... {...,"state":"ON", ...}
Nach "set off" kommt:
17:55:25.355 ... {...,"state":"ON", ...}
17:55:25.390 ... {...,"state":"OFF",...}
17:55:25.424 ... {...,"state":"OFF",...}
17:55:44.683 ... {...,"state":"OFF",...}
17:55:58.210 ... {...,"state":"OFF",...}
wobei die Nachrichten #4 und #5 deutlich spaeter kommen.

Ich wuerde erst versuchen im Geraet diesen Unsinn abzustellen.

Wenn das nicht geht, dann kann man das setStateList Attribut entfernen: zusammen mit "event-on-change-reading state" werden die ueberfluessigen Events gefiltert.

Wenn das auch unpassend ist, dann muss man beim set einen "Merker" setzen (setList als perl Ausdruck), und die naechste Nachricht ignorieren, im perl Ausdruck vom readingList.
Und hoffen, dass das Geraet sich an diesem Muster haelt.

passibe

Hmm. Da stimmt irgendwas nicht, irgendwie werden da events munter doppelt gesendet. Klingt für mich aber eher nach einem Problem bei Z2M und nicht bei FHEM.

Kannst du bitte der Vollständigkeit halber noch
  • ein list von deinem brigde-device posten?
  • und die configuration.yaml von Z2M?
  • und – am wichtigsten – einen Logauszug von Z2M beim schalten?

TomLee

Die verwendete z2m-Version wäre auch noch relevant zu zeigen. Nicht, dass das Problem schon behoben wurde...