Hallo Freunde,
ich habe mir eine 5 Kanal Steckdosenleiste gekauft (4 gang switch, with USB) und in ZigBee2MQTT angelernt. Funktioniert dort super. Dann wollte ich es in FHEM nachkonfigurieren und scheitere tewas.
Da es keinen Prototyp für diesen in FHEM giebt, habe ich mir den zigbee2mqtt_5channel_split genommen und angepasst. Die erste Steckdose funktioniert (Abgesehen davon, das bei associatedWith nur die ersten 2 Drinstehen, das kann aber durch meine manuelle Nachkonfigurierung passiert sein).
define zigbee_Steckdosenleiste_1 MQTT2_DEVICE zigbee_Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1 comment Channel 1 for zigbee_Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1 devicetopic zigbee2mqtt/Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1 icon message_socket
attr zigbee_Steckdosenleiste_1 jsonMap state:availability state_l1:state state_l2:0 state_l3:0 state_l4:0 state_l5:0
attr zigbee_Steckdosenleiste_1 model zigbee2mqtt_5channel_split
attr zigbee_Steckdosenleiste_1 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr zigbee_Steckdosenleiste_1 room MQTT2_DEVICE
attr zigbee_Steckdosenleiste_1 setList on:noArg $DEVICETOPIC/set {"state_l1":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l1":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l1":"TOGGLE"}
attr zigbee_Steckdosenleiste_1 setStateList on off toggle
# CFGFN
# CID zigbee_Steckdosenleiste_1
# DEF zigbee_Steckdosenleiste_1
# FUUID 69414d84-f33f-a76c-26b1-167e8d18b0fd754d
# IODev mqtt2s
# LASTInputDev mqtt2s
# MSGCNT 137
# NAME zigbee_Steckdosenleiste_1
# NR 317
# STATE off
# TYPE MQTT2_DEVICE
# eventCount 146
# mqtt2s_CONN mqtt2s_172.28.5.3_34200
# mqtt2s_MSGCNT 137
# mqtt2s_TIME 2025-12-16 13:35:20
# .DT:
# DEVICETOPIC zigbee2mqtt/Steckdosenleiste_1
# .attraggr:
# .attrminint:
# JSONMAP:
# state availability
# state_l1 state
# state_l2 0
# state_l3 0
# state_l4 0
# state_l5 0
# OLDREADINGS:
# READINGS:
# 2025-12-16 13:16:04 IODev mqtt2s
# 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1_CH2,zigbee_Steckdosenleiste_1_CH3
# 2025-12-16 13:17:14 attrTemplateVersion 20220913
# 2025-12-16 13:35:20 child_lock UNLOCK
# 2025-12-16 13:35:20 linkquality 255
# 2025-12-16 13:35:20 power_outage_memory_l1 restore
# 2025-12-16 13:35:20 state off
# hmccu:
#
setstate zigbee_Steckdosenleiste_1 off
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:16:04 IODev mqtt2s
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1_CH2,zigbee_Steckdosenleiste_1_CH3
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:17:14 attrTemplateVersion 20220913
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:35:20 child_lock UNLOCK
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:35:20 linkquality 255
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:35:20 power_outage_memory_l1 restore
setstate zigbee_Steckdosenleiste_1 2025-12-16 13:35:20 state off
ABER .. alle anderen 4 Kanäle funktionieren nur in der Anzeige, d.h. ich kann nicht über FHEM schalten, es passiert überhaupt nichts. Hier mal die Definition der 2.
define zigbee_Steckdosenleiste_1_CH2 MQTT2_DEVICE
attr zigbee_Steckdosenleiste_1_CH2 comment Channel 2 for zigbee_Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1_CH2 devicetopic zigbee2mqtt/Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1_CH2 icon message_socket
attr zigbee_Steckdosenleiste_1_CH2 jsonMap state_l2:state state_l1:0 state_l3:0 state_l5:0 state_l5:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr zigbee_Steckdosenleiste_1_CH2 model zigbee2mqtt_5channel_split
attr zigbee_Steckdosenleiste_1_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr zigbee_Steckdosenleiste_1_CH2 room MQTT2_DEVICE
attr zigbee_Steckdosenleiste_1_CH2 setList on:noArg $DEVICETOPIC/set {"state_l2":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l2":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l2":"TOGGLE"}
attr zigbee_Steckdosenleiste_1_CH2 setStateList on off toggle
# CFGFN
# CID zigbee_Steckdosenleiste_1
# DEF
# FUUID 69414dc9-f33f-a76c-836c-460bfaf5b5f68068
# IODev mqtt2s_SSL
# LASTInputDev mqtt2s
# MSGCNT 144
# NAME zigbee_Steckdosenleiste_1_CH2
# NR 318
# STATE off
# TYPE MQTT2_DEVICE
# eventCount 151
# mqtt2s_CONN mqtt2s_172.28.5.3_34200
# mqtt2s_MSGCNT 144
# mqtt2s_TIME 2025-12-16 13:38:33
# .DT:
# .attraggr:
# .attrminint:
# JSONMAP:
# consumption 0
# linkquality 0
# power 0
# state 0
# state_l1 0
# state_l2 state
# state_l3 0
# state_l5 0
# temperature 0
# READINGS:
# 2025-12-16 13:17:14 IODev mqtt2s_SSL
# 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1,zigbee_Steckdosenleiste_1_CH3
# 2025-12-16 13:17:14 attrTemplateVersion 20220913
# 2025-12-16 13:38:33 child_lock UNLOCK
# 2025-12-16 13:38:33 power_outage_memory_l1 restore
# 2025-12-16 13:38:33 state off
# 2025-12-16 13:38:33 state_l4 OFF
# 2025-12-16 13:26:07 state_l5 OFF
# hmccu:
#
setstate zigbee_Steckdosenleiste_1_CH2 off
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:17:14 IODev mqtt2s_SSL
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1,zigbee_Steckdosenleiste_1_CH3
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:17:14 attrTemplateVersion 20220913
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:38:33 child_lock UNLOCK
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:38:33 power_outage_memory_l1 restore
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:38:33 state off
Wie schon gesagt, unter der Oberfläche von ZigBee2MQTT kann ich die Dosen der Leiste komplett schalten und dort wird für die obige Dose angezeigt:
State (Endpoint: l2)
Probiere jetzt schon länger und irgendwie komme ich nicht weiter. Hat jemand eine Idee, wie ich das Problem gefasst bekomme und eventuell sogar, wie ich es löse?
Wenn mehr Daten und Infos gewünscht, liefere ich sie gerne, nur aktuell weiß ich nicht, was gewünscht sein könnte .....
Ich sehe gerade:
ich habe 2 mqtt-IO-Device, einmal mit und ein mal ohne SSL. Die Dose1 der Steckdosenleiste geht über das normale (mqtt2s), die anderen dagegen über die 2. (mqtt2s_SSL). ZigBee2MQTT ist bei mir aktuell (noch) über die ohne SSL angebunden, deshalb könnte es sein, das der Schaltbefehl über das falsche IO-Device rausgeht. Nur ... wie korrigiert man dieses?
Edit:
Ja über die attribute ... hätte ich drauf kommen können. leider war es nicht die Lösung, hier die korrigierte Config:
define zigbee_Steckdosenleiste_1_CH2 MQTT2_DEVICE
attr zigbee_Steckdosenleiste_1_CH2 IODev mqtt2s
attr zigbee_Steckdosenleiste_1_CH2 comment Channel 2 for zigbee_Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1_CH2 devicetopic zigbee2mqtt/Steckdosenleiste_1
attr zigbee_Steckdosenleiste_1_CH2 icon message_socket
attr zigbee_Steckdosenleiste_1_CH2 jsonMap state_l2:state state_l1:0 state_l3:0 state_l4:0 state_l5:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr zigbee_Steckdosenleiste_1_CH2 model zigbee2mqtt_5channel_split
attr zigbee_Steckdosenleiste_1_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr zigbee_Steckdosenleiste_1_CH2 room MQTT2_DEVICE
attr zigbee_Steckdosenleiste_1_CH2 setList on:noArg $DEVICETOPIC/set {"state_l2":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l2":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l2":"TOGGLE"}
attr zigbee_Steckdosenleiste_1_CH2 setStateList on off toggle
# CFGFN
# CID zigbee_Steckdosenleiste_1
# DEF
# FUUID 69414dc9-f33f-a76c-836c-460bfaf5b5f68068
# IODev mqtt2s
# LASTInputDev mqtt2s
# MSGCNT 204
# NAME zigbee_Steckdosenleiste_1_CH2
# NR 318
# STATE set_off
# TYPE MQTT2_DEVICE
# eventCount 216
# mqtt2s_CONN mqtt2s_172.28.5.3_34200
# mqtt2s_MSGCNT 204
# mqtt2s_TIME 2025-12-16 13:50:33
# .DT:
# .attraggr:
# .attrminint:
# JSONMAP:
# consumption 0
# linkquality 0
# power 0
# state 0
# state_l1 0
# state_l2 state
# state_l3 0
# state_l4 0
# state_l5 0
# temperature 0
# OLDREADINGS:
# READINGS:
# 2025-12-16 13:49:46 IODev mqtt2s
# 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1,zigbee_Steckdosenleiste_1_CH3
# 2025-12-16 13:17:14 attrTemplateVersion 20220913
# 2025-12-16 13:50:33 child_lock UNLOCK
# 2025-12-16 13:50:33 power_outage_memory_l1 restore
# 2025-12-16 13:50:45 state set_off
# hmccu:
#
setstate zigbee_Steckdosenleiste_1_CH2 set_off
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:49:46 IODev mqtt2s
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:17:14 associatedWith zigbee_Steckdosenleiste_1,zigbee_Steckdosenleiste_1_CH3
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:17:14 attrTemplateVersion 20220913
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:50:33 child_lock UNLOCK
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:50:33 power_outage_memory_l1 restore
setstate zigbee_Steckdosenleiste_1_CH2 2025-12-16 13:50:45 state set_off
Zwei MQTT2_DEVICES für die Steckdosenleiste anlegen und das jeweilige IODev zuordnen.
In der setList und der readingList nur die Befehle für die jeweils gewünschten Steckdosen angeben.
Das habe ich doch mittlerweile?
In der "setlist" steht doch für die 2. Dose der Leiste:
on:noArg $DEVICETOPIC/set {"state_l2":"ON"}
off:noArg $DEVICETOPIC/set {"state_l2":"OFF"}
toggle:noArg $DEVICETOPIC/set {"state_l2":"TOGGLE"}
Analog für alle anderen auch. Aber nur bei der ersten Funktioniert es. habe das IODev mittlerweile auch passend eingestellt.
Sorry wenn ich Dich falsch verstehe ... und ja, zigbee2mqtt ist für alle anderen Geräte normal erreichbar und funktioniert
Wer lesen kann ist klar im Vorteil, es gab auch ein 5Kanal Template und dort steht im Commend:
"NOTE: Might need a FHEM restart to work properly."
Und ja ... das wird benötigt. Warum auch immer .... jetzt funktioniert es.
Zitat von: Wernieman am 16 Dezember 2025, 15:09:04Und ja ... das wird benötigt. Warum auch immer .... jetzt funktioniert es.
Soweit ich mich erinnere, wird intern ein "copy" ausgeführt. Dadurch werden auch alle internen Datenstrukturen mit kopiert, und das macht dann Probleme...
D.h. bei solchen Geräten, welche gesplittet werden, sollte man bei Problemen immer an einen reboot denken?
Nach jedem copy-Befehl, der ein Gerät betrifft, das ein IODev hat, empfiehlt sich ein FHEM Neustart. Das ist nicht mqtt-spezifisch.
Zitat von: betateilchen am 16 Dezember 2025, 17:45:04Nach jedem copy-Befehl, der ein Gerät betrifft, das ein IODev hat, empfiehlt sich ein FHEM Neustart. Das ist nicht mqtt-spezifisch.
Jepp. Nur halt allgemein wenig bekannt.
Soweit ich mich erinnere, kann man das per defmod reparieren, was eventuell ein Teil der tasmota-templates macht ...
Nur das man bei einem Template ein copy macht ist eben nicht sofort ersichtlich. Das war der Hauptgrund.
Zitat von: Wernieman am 16 Dezember 2025, 19:00:22Nur das man bei einem Template ein copy macht ist eben nicht sofort ersichtlich. Das war der Hauptgrund.
Es sollte eigentlich vorher angezeigt werden, welche Befehle da abgearbeitet werden.
Bin unsicher, ob es "bessere" Optionen gäbe, aber man lernt nie aus...