zb_Button1 sendet als Button1, 2 und 3

Begonnen von frober, 26 Dezember 2025, 21:53:57

Vorheriges Thema - Nächstes Thema

frober

Hallo,

ich habe ein seltsamen Problem:

Bisher hatte ich nur einen Zigbee Button, der hat über ein notify das Außenlicht geschaltet.
Nun habe ich mir 2 weitere Buttons zugelegt.
Alle in z2m umbenannt in Button1, Button2 und Button3.

Das notify habe ich angepasst, damit ich mit Button1 + 2 das Licht schalten kann.
Nur hat das alles seltsam reagiert, Licht ging z.B. kurz an und sofort wieder aus.

Nach etwas Recherche ist mir im Eventmonitor aufgefallen, dass Button1 die Daten für alle 3 Buttons sendet.
Button 2 + 3 senden je nur für sich.

Nach etwas probieren, habe ich Button1 in z2m in Button4 umbenannt und siehe da er sendet nun auch nur für sich.
Problem, bzw. Symptome sind nun behoben, aber woher kommt dieses  Phänomen?

List Button1:
define zb_Button1 MQTT2_DEVICE zigbee_Button1
attr zb_Button1 comment ZG-101ZL Smart Button
attr zb_Button1 devicetopic zigbee2mqtt/Button1
attr zb_Button1 eventMap single:0 double:1 hold:2
attr zb_Button1 icon taster
attr zb_Button1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/availability:.* { json2nameValue($EVENT) }
attr zb_Button1 room Unsorted
attr zb_Button1 setList kurz '0'\
doppelt '1'\
lang '2'
attr zb_Button1 stateFormat Aktion: action Batterie: battery Verfügbar: state
attr zb_Button1 webCmd kurz:doppelt:lang
#  CID        zigbee_Button1
#  DEF        zigbee_Button1
#  FUUID      66fecbb8-f33f-ff70-26ed-d5fd2dadaacf79e4
#  IODev      MQTT2_Server
#  LASTInputDev MQTT2_Server
#  MQTT2_Server_CONN MQTT2_Server_127.0.0.1_52446
#  MQTT2_Server_MSGCNT 56
#  MQTT2_Server_TIME 2025-12-26 21:23:59
#  MSGCNT    56
#  NAME      zb_Button1
#  NR        633
#  STATE      Aktion: 1 Batterie: 100 Verfügbar: online
#  TYPE      MQTT2_DEVICE
#  eventCount 55
#  READINGS:
#    2025-12-26 21:24:29  IODev          MQTT2_Server
#    2025-12-26 20:30:46  action          double
#    2025-12-26 20:29:28  associatedWith  MQTT2_zigbee2mqtt
#    2025-12-26 20:30:46  battery        100
#    2025-12-26 20:30:46  last_seen      2025-12-26T20:30:46+01:00
#    2025-12-26 20:30:46  linkquality    21
#    2025-12-26 20:30:46  operation_mode  event
#    2025-12-25 15:11:47  state          online
#    2025-12-26 20:30:46  voltage        2900
#
setstate zb_Button1 Aktion: 1 Batterie: 100 Verfügbar: online
setstate zb_Button1 2025-12-26 21:24:29 IODev MQTT2_Server
setstate zb_Button1 2025-12-26 20:30:46 action double
setstate zb_Button1 2025-12-26 20:29:28 associatedWith MQTT2_zigbee2mqtt
setstate zb_Button1 2025-12-26 20:30:46 battery 100
setstate zb_Button1 2025-12-26 20:30:46 last_seen 2025-12-26T20:30:46+01:00
setstate zb_Button1 2025-12-26 20:30:46 linkquality 21
setstate zb_Button1 2025-12-26 20:30:46 operation_mode event
setstate zb_Button1 2025-12-25 15:11:47 state online
setstate zb_Button1 2025-12-26 20:30:46 voltage 2900

Eventmonitor:
Wie man sieht, das sind 3mal die gleichen Daten.
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 operation_mode: event
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 action: 1
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 last_seen: 2025-12-26T21:37:02+01:00
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 voltage: 2800
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 battery: 100
2025-12-26 21:37:02 MQTT2_DEVICE zb_Button3 linkquality: 61
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 action: 1
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 operation_mode: event
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 voltage: 2800
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 last_seen: 2025-12-26T21:37:02+01:00
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 battery: 100
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button2 linkquality: 61
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 battery: 100
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 linkquality: 61
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 voltage: 2800
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 last_seen: 2025-12-26T21:37:02+01:00
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 operation_mode: event
2025-12-26 21:37:03 MQTT2_DEVICE zb_Button1 action: 1

wenn ich das Devicetopic beim umbenennen nicht anpasse, sendet er die Daten nur für Button2 + 3

Liegt das am Bridgeregex?

Raw der bridge (List, bzw. copy for ist zu lang mit den vielen Readings):
Unverändert aus dem Template.
defmod MQTT2_zigbee2mqtt MQTT2_DEVICE z2m_pi
attr MQTT2_zigbee2mqtt IODev MQTT2_Server
attr MQTT2_zigbee2mqtt bridgeRegexp zigbee2mqtt/([A-Za-z0-9._]+)[/]?.*:.* "zigbee_$1"
attr MQTT2_zigbee2mqtt comment To check for new updates of the deamon software, you might want to use a separate HTTPMOD device. See HTTPMOD template zigbee2mqtt_daemon_updates for further details.
attr MQTT2_zigbee2mqtt devicetopic zigbee2mqtt
attr MQTT2_zigbee2mqtt getList networkmap_raw:noArg raw $DEVICETOPIC/bridge/request/networkmap raw\
  networkmap_graphviz:noArg graphviz $DEVICETOPIC/bridge/request/networkmap graphviz
attr MQTT2_zigbee2mqtt icon mqtt
attr MQTT2_zigbee2mqtt model zigbee2mqtt_bridge
attr MQTT2_zigbee2mqtt readingList $DEVICETOPIC/bridge/state:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/config/devices:.* {}\
  $DEVICETOPIC/bridge/config/log_level:.* log_level\
  $DEVICETOPIC/bridge/config/permit_join:.* permit_join\
  $DEVICETOPIC/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }\
  $DEVICETOPIC/bridge/config:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/log:.*\"type\".\"devices\".\"message\".* devices\
  $DEVICETOPIC/bridge/log:.* log\
  $DEVICETOPIC/bridge/logging:.* { json2nameValue($EVENT,'log_') }\
  $DEVICETOPIC/bridge/response/networkmap:.* { my $type = $EVENT =~ m/.*,"type":"(raw|graphviz)",.*/ ? $1 : 'networkmap';; $EVENT =~ m/{"data":\{.*"value":"?(.*[^"])"?\},"status":"ok"\}/ ? { $type=>$1 } : {} }\
  $DEVICETOPIC/bridge/devices:.* devices\
  $DEVICETOPIC/bridge/info:.* info\
  $DEVICETOPIC/bridge/groups:.* groups\
  $DEVICETOPIC/bridge/event:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/extensions:.* extensions\
  $DEVICETOPIC/bridge/response/permit_join:.* { json2nameValue($EVENT) }\
  $DEVICETOPIC/bridge/definitions:.* {}
attr MQTT2_zigbee2mqtt room System->Steuerung
attr MQTT2_zigbee2mqtt setList log_level:debug,info,warn,error $DEVICETOPIC/bridge/config/log_level $EVTPART1\
  permit_join:true,false $DEVICETOPIC/bridge/request/permit_join $EVTPART1\
  remove:textField $DEVICETOPIC/bridge/config/remove $EVTPART1\
  ota_update:textField $DEVICETOPIC/bridge/ota_update/update $EVTPART1\
  ota_update_check:textField $DEVICETOPIC/bridge/ota_update/check $EVTPART1\
  y_device_setting:textField $DEVICETOPIC/$EVTPART1/set {"$EVTPART2": "$EVTPART3"}\
  x_bind:textField $DEVICETOPIC/bridge/bind/$EVTPART1 $EVTPART2\
  x_bind_unbind:textField $DEVICETOPIC/bridge/unbind/$EVTPART1 $EVTPART2\
  x_device_options:textField $DEVICETOPIC/bridge/config/device_options {"friendly_name":"$EVTPART1","options": {"$EVTPART2": "$EVTPART3"}}\
  x_group_add_to:textField $DEVICETOPIC/bridge/group/$EVTPART1/add $EVTPART2\
  x_group_rm_from:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove $EVTPART2\
  x_group_rm_from_all:textField $DEVICETOPIC/bridge/group/$EVTPART1/remove_all $EVTPART2\
  x_group_add_group:textField $DEVICETOPIC/bridge/config/add_group $EVTPART1\
  x_group_rm_group:textField $DEVICETOPIC/bridge/config/remove_group $EVTPART1\
  z_elapsed:textField $DEVICETOPIC/bridge/config/elapsed $EVTPART1\
  z_last_seen:disable,ISO_8601,epoch,ISO_8601_local $DEVICETOPIC/bridge/config/last_seen $EVTPART1\
  z_ban:textField $DEVICETOPIC/bridge/config/ban $EVTPART1\
  z_rename:textField $DEVICETOPIC/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}\
  z_reset_CC:noArg $DEVICETOPIC/bridge/config/reset
attr MQTT2_zigbee2mqtt setStateList on off



Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Nobbynews

Zitat von: frober am 26 Dezember 2025, 21:53:57Liegt das am Bridgeregex?
Die Bridge kann man eigentlich getrost löschen. Habe auch lange gezögert.
Um bei aktiviertem autocreate im MQTT2-Server die Neuanlage zu unterbinden einfach noch gesetzt:
attr MQTT2_Server ignoreRegexp zigbee2mqtt/bridge