Hallo zusammen,
irgendwie scheine ich noch was falsch zu machen im Hinblick auf das 3channel split template.
Und zwar ist es so, dass die readinglist teilweise so angepasst wird (automatisch), dass die Geräte einen falschen Status erhalten.
Da ich nicht ausschließen konnte, da was kaputt konfiguriert zu haben, habe ich sowohl im zigbee2mqtt als auch im fhem erst mal alle devices gelöscht und entsprechend mit dem template neu angelegt.
Nun sieht channel 1 inzwischen wieder so aus und die readinglist ist ja wieder falsch?!
Internals:
CID zigbee_0xec1bbdfffeab9944
DEF zigbee_0xec1bbdfffeab9944
DEVICETOPIC zigbee2mqtt/0xec1bbdfffeab9944
FUUID 617b8c4e-f33f-daf3-4799-628a01a9304fc69e
IODev m2c
LASTInputDev m2c
MSGCNT 9
NAME eg_wz_zb2
NR 6101
STATE off
TYPE MQTT2_DEVICE
m2c_MSGCNT 9
m2c_TIME 2021-10-29 17:07:51
JSONMAP:
state availability
state_l1 state
state_l2 0
state_l3 0
OLDREADINGS:
READINGS:
2021-10-29 07:53:18 IODev m2c
2021-10-29 17:02:25 associatedWith MQTT2_zigbee_pi
2021-10-29 07:54:45 attrTemplateVersion 20201213
2021-10-29 17:07:34 linkquality 5
2021-10-29 17:07:51 state OFF
Attributes:
alias Sky
comment Channel 1 for MQTT2_zigbee_0xec1bbdfffeab9944, see also MQTT2_zigbee_0xec1bbdfffeab9944_CH2 and MQTT2_zigbee_0xec1bbdfffeab9944_CH3
devicetopic zigbee2mqtt/0xec1bbdfffeab9944
eventMap { dev=>{ON=>'on',OFF=>'off'} }
genericDeviceType switch
homebridgeMapping On=state,cmdOnOn=state,valueOn=ON,valueOff=OFF
icon message_socket
jsonMap state:availability state_l1:state state_l2:0 state_l3:0
model zigbee2mqtt_3channel_split
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0xec1bbdfffeab9944/1/set:.* { json2nameValue($EVENT) }
zigbee2mqtt/0xec1bbdfffeab9944/3/set:.* { json2nameValue($EVENT) }
room Homekit,MQTT2_DEVICE,Wohnzimmer
setList on:noArg $DEVICETOPIC/1/set {"state":"ON"}
off:noArg $DEVICETOPIC/1/set {"state":"OFF"}
toggle:noArg $DEVICETOPIC/1/set {"state":"TOGGLE"}
setStateList on off toggle
Vielleicht hat ja noch wer einen Tipp für mich?
Gruß,
Tobi
Glaskugel meint, du hast einen externen Server am Start und setzt Befehle auch von anderer Seite ab?
Dann solltest du mal nach ignoreRegexp am MQTT2_CLIENT schauen und die set-Befehle abfangen. Falls das nicht hilft, schauen wir weiter, aber bitte die angepinnten "was sollte man liefern"-Hinweise beachten.
Sorry, mqtt config sollte stimmen, hatten wir schon mal gecheckt. Hätte ich aber liefern müssen...
Ich habe aber eben noch folgendes festgestellt:
Laut https://www.zigbee2mqtt.io/devices/HG06338.html#lidl-hg06338
müssen die channels mit state_l1, state_l2 und state_l3 gesetzt werden.
Habe nun mal testweise die setlist angepasst:
on:noArg $DEVICETOPIC/set {"state_l1":"ON"}
off:noArg $DEVICETOPIC/set {"state_l1":"OFF"}
toggle:noArg $DEVICETOPIC/set {"state_l1":"TOGGLE"}
Und so wird auch korrekt geschaltet und ich sehe es im zigbee2mqtt frontend entsprechend.
Vielleicht ist das jetzt ein anderes Modell als das für das das Template gemacht wurde.
Ich werde das am WE entsprechend weiter testen und beobachten.
Gruß,
Tobi
Das mit state_lx habe ich jetzt bei dem 3-kanaligen reingebastelt, ich vermute, es gab entsprechende Änderungen bei zigbee2mqtt. Da könnte auch noch mehr kommen, es gab im "contribute"-Thread neulich auch einen Hinweis in diese Richtung.
Aber nochmal zu
zigbee2mqtt/0xec1bbdfffeab9944/3/set:.* { json2nameValue($EVENT) }
Imo ist das ein Befehl _an_ das Device und keine Info _vom_ Device. Diese Topics haben imo in FHEM nichts verloren und sollten direkt am IO abgefangen werden. Leider erfasst der in https://wiki.fhem.de/wiki/MQTT2_CLIENT#ignoreRegexp dargestellte default diesen Fall hier nicht, vermutlich würde es reichen, wenn du den mittleren Teil ("[^/]+") mit ".+" ersetzt.
Hallo zusammen,
ich habe ein Problem mit dieser Mehrfachsteckdose von Lidl (Silvercrest HG06338) und dem zugehörigen Template (zigbee2mqtt_3channel_split).
Um Fremdquellen auszuschließen habe ich Node Red runtergefahren.
Die Steckerleiste ließ sich problemlos in zigbee2mqtt einbinden und funktioniert von dort aus fehlerfrei.
Folgendes passiert in fhem:
- Nach Schalten eines beliebigen Kanals in zigbee2mqtt, erkennt fhem automatisch ein device MQTT2_zigbee_wz_Mehrfachsteckdose_TV. (Iin zigbee2mqtt heißt es wz_Mehrfachsteckdose_TV).
- Wenn ich dem fhem device das attrTemplate zigbee2mqtt_3channel_split zuweise legt fhem zwei weitere devices an.
- MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
- MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
soweit, so gut. ;)
Aber...
Mit den Parametern stimmt etwas nicht. Ich habe mir den Teil des attrTemplates angeschaut, bin damit aber etwas überfordert.
Das passiert, wenn ich in zigbee2mqtt die Channels schalte:
zigbee2mqtt -> fhem:
Ch1 an -> ch1 und ch3 an
Ch2 an -> nichts passiert
Ch3 an -> ch2 an
Beim Ausschalten verhält sich das Ganze entsprechend.
Hier die raw definition der drei devices, wie von fhem angelegt:
Channel 1:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV comment Channel 1 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV jsonMap state:availability state_l1:state state_l2:0 state_l3:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setList on:noArg $DEVICETOPIC/1/set {"state_l1":"ON"}\
off:noArg $DEVICETOPIC/1/set {"state_l1":"OFF"}\
toggle:noArg $DEVICETOPIC/1/set {"state_l1":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-05 14:57:59 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-05 14:59:05 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-05 14:59:05 attrTemplateVersion 20220622
Channel 2:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 comment Channel 2 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 jsonMap state_l3:state state_l1:0 state_l2:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setList on:noArg $DEVICETOPIC/l2/set {"state_l2":"ON"}\
off:noArg $DEVICETOPIC/l2/set {"state_l2":"OFF"}\
toggle:noArg $DEVICETOPIC/l2/set {"state_l2":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 on
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 14:59:04 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 14:59:05 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 14:59:05 attrTemplateVersion 20220622
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 last_seen 1659704409487
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-05 15:00:09 state on
Chanel 3:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 comment Channel 3 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 jsonMap state:availability state_l1:state state_l2:0 state_l3:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setList on:noArg $DEVICETOPIC/l3/set {"state_l3":"ON"}\
off:noArg $DEVICETOPIC/l3/set {"state_l3":"OFF"}\
toggle:noArg $DEVICETOPIC/l3/set {"state_l3":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 on
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 14:59:05 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 14:59:05 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 14:59:05 attrTemplateVersion 20220622
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 last_seen 1659704409487
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 linkquality 80
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-05 15:00:09 state on
Ich habe mittels eines mqtt-clients abgefangen, was von zigbee2mqtt gesendet wird, wenn man von dort aus der GUI schaltet:
topic:
zigbee2mqtt/wz_Mehrfachsteckdose_TV
payload:
{"device":{"applicationVersion":69,"dateCode":"","friendlyName":"wz_Mehrfachsteckdose_TV","hardwareVersion":1,"ieeeAddr":"0xec1bbdfffeaedd43","manufacturerID":4098,"manufacturerName":"_TZ3000_1obwwnmq","model":"HG06338","networkAddress":1108,"powerSource":"Mains (single phase)","stackVersion":0,"type":"Router","zclVersion":3},"last_seen":1659712990266,"linkquality":76,"state_l1":"ON","state_l2":"OFF","state_l3":"OFF"}
Möchte ich die Steckdose über einen MQTT-Client steuern, muss ich noch ein set an das topic hängen, ohne set geht es nicht:
topic:
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set
payload: { "state_l1": "OFF", "state_l2": "OFF", "state_l3": "OFF" }
Mir ist aber nicht ganz klar, was ich im attrTemplate ändern muss, damit die Schaltungen korrekt angezeigt werden.
Vermutlich wird die readingList dafür verwendet auf die Ereignisse aus zigbee2mqtt zu reagieren? Hier komme ich mit der RegEx aber leider nicht klar, weshalb ich hier nicht weiter auf Ursachensuche gehen konnte.
Die setList der Channels funktioniert genauso, wie erwartet, wobei der Pfad /l[n] (zumindest bei meiner Mehrfachsteckdose) nicht nötig wäre um zu schalten.
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set und
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set/l2 (oder l1 oder l3) machen dasselbe.
Kann mir hier vielleicht jemand weiterhelfen?
P.S.: Ich habe gerade noch herausgefunden, dass es wohl mehrere Versionen der Mehrfachsteckerleiste gibt: https://github.com/Koenkk/zigbee2mqtt/issues/9564 eventuell liegt mein Problem ja auch genau daran?
Viele Grüße
Sascha
Hmm, jsonMap für Kanal 2 und Kanal 3 enthält einen falschen Inhalt, ein update ist im svn (war ein kleiner Typo, kommt ab morgen).
Zum direkt fixen - bei Kanal 2 sollte folgendes rein:
state_l2:state state_l1:0 state_l3:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
Kanal 3:
state_l3:state state_l1:0 state_l2:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
Hab es gerade ausprobiert: Funktioniert!
Vielen Dank!
Liebe Grüße
Sascha
:) Gerne!
Sorry für die Umstände und Danke für die vollständigen list -r - ohne die hätte ich mich vermutlich erst mal durch die Doku gewühlt, was sich denn da ggf. geändert hatte ::) ....
Vielleicht noch ein paar Anmerkungen:
- es wäre auf alle Fälle klasse, wenn du auch einfach nochmal das attrTemplate nach dem update testen könntest (nicht dass da sonst noch was verbogen ist)
- Das attrTemplate fühlt sich irgendwie "unfertig" an, und wie gesagt: in die Doku hatte ich nicht geschaut, wie das "aktuelle Soll" denn dazu aussieht. Es gab hier ja schon mal eine im Sande verlaufene Rückfrage. An sich würde ich gerne den "aktuellen Standard" einbauen und "geht aus Kompabilitäts-Gründen noch" vermeiden (betr. hier ggf. die setList-Topics etc). Wäre gut, jemand könnte die aktuelle Doku mal durchforsten und das ggf. auch austesten.
- readingList ist dafür zuständig, eingehende Infos auszuwerten. jsonMap ist dabei eine "Helfer-Info", die bei der Langform von json2nameValue() mit verarbeitet wird. Wenn man es etwas detaillierter wissen will, wie die Daten unverarbeitet aussehen, hilft ein Blick auf die "Roh-Daten", die man am jeweiligen MQTT2-IO sichtbar machen kann (direkt in FHEMWEB), zum Verständnis meiner Vorgehensweise hilft vielleicht der "Schritt für Schritt"-Artikel im Wiki.
- ich gehe davon aus, dass zigbee2mqtt seinerseits bereits einen Abstraktionslevel bereitstellt, der derartige Geräte (unabhängig von der Hard- und firmware-Generation) "von außen" einheitlich darstellt bzw. ansprechbar macht. Falls das falsch ist, müßte man ggf. 2 Fassungen des attrTemplate anbieten (bitte dann ZDF statt Spekulationen)...
Grüße,
Beta-User
Zitat von: Beta-User am 05 August 2022, 19:27:09
- es wäre auf alle Fälle klasse, wenn du auch einfach nochmal das attrTemplate nach dem update testen könntest (nicht dass da sonst noch was verbogen ist)
Gerne - ich gebe dann Rückmeldung.
Zitat von: Beta-User am 05 August 2022, 19:27:09
- Das attrTemplate fühlt sich irgendwie "unfertig" an, und wie gesagt: in die Doku hatte ich nicht geschaut, wie das "aktuelle Soll" denn dazu aussieht. Es gab hier ja schon mal eine im Sande verlaufene Rückfrage.
Meinst Du die hier: https://wiki.fhem.de/wiki/AttrTemplate also ob der attrTemplate Eintrag zu zigbee2mqtt_3channel_split der dort vorgegebenen Syntax entspricht?
Zitat von: Beta-User am 05 August 2022, 19:27:09
An sich würde ich gerne den "aktuellen Standard" einbauen und "geht aus Kompabilitäts-Gründen noch" vermeiden (betr. hier ggf. die setList-Topics etc). Wäre gut, jemand könnte die aktuelle Doku mal durchforsten und das ggf. auch austesten.
Wenn Du mir noch einen kleinen Wink mit dem Zaunpfahl gibst, was der "aktuelle Standard" ist, kann ich es zumindest einmal versuchen, empfinde es aber jetzt schon als etwas kryptisch. :-[
Zitat von: Beta-User am 05 August 2022, 19:27:09
- readingList ist dafür zuständig, eingehende Infos auszuwerten. jsonMap ist dabei eine "Helfer-Info", die bei der Langform von json2nameValue() mit verarbeitet wird. Wenn man es etwas detaillierter wissen will, wie die Daten unverarbeitet aussehen, hilft ein Blick auf die "Roh-Daten", die man am jeweiligen MQTT2-IO sichtbar machen kann (direkt in FHEMWEB), zum Verständnis meiner Vorgehensweise hilft vielleicht der "Schritt für Schritt"-Artikel im Wiki.
OK, das werde ich mir anschauen, wie man die Rohdaten sichtbar machen kann. Zum "Schritt für Schritt"-Artikel: intuitiv hätte ich jetzt obigen Wiki-Artikel oder den hier: https://wiki.fhem.de/wiki/Zigbee2mqtt angenommen. In beiden gibt es aber keinen Schritt für Schritt Artikel.
Zitat von: Beta-User am 05 August 2022, 19:27:09
- ich gehe davon aus, dass zigbee2mqtt seinerseits bereits einen Abstraktionslevel bereitstellt, der derartige Geräte (unabhängig von der Hard- und firmware-Generation) "von außen" einheitlich darstellt bzw. ansprechbar macht. Falls das falsch ist, müßte man ggf. 2 Fassungen des attrTemplate anbieten (bitte dann ZDF statt Spekulationen)...
Das vermute ich auch, da ja das Verhalte mit unterschiedlicher Firmware-Version anders ist. Das, was in zigbee2mqtt geändert wurde, damit unterschiedliche Firmwareversionen des Devices funktionieren, sind folgende Zeilen bei der Inklusion:
const endpoint = device.getEndpoint(1);
await endpoint.read('genBasic', ['manufacturerName', 'zclVersion', 'appVersion', 'modelId', 'powerSource', 0xfffe]);
Zudem wird jedem Device ein fingerprint zugewiesen. Bei dem hier:
fingerprint: [
{modelID: 'TS011F', manufacturerName: '_TZ3000_wzauvbcs'}, // EU
{modelID: 'TS011F', manufacturerName: '_TZ3000_1obwwnmq'},
{modelID: 'TS011F', manufacturerName: '_TZ3000_4uf3d0ax'}, // FR
{modelID: 'TS011F', manufacturerName: '_TZ3000_vzopcetz'}, // CZ
{modelID: 'TS011F', manufacturerName: '_TZ3000_vmpbygs5'}, // BS
],
model: 'HG06338',
vendor: 'Lidl',
Daher vermute ich mal, dass die Darstellung als Lidl, HG06338 angewandt wird, wenn einer der fingerprints zutrifft. Und beim Anlernen wird dann eine der "Versions" dafür sorgen, dass alles korrekt eingebunden wird.
Zitat von: HomeAlone am 05 August 2022, 21:47:27
Gerne - ich gebe dann Rückmeldung.
OK, ab 7:45/8:00 Uhr müßte das dann mitkommen.
Zitat
Meinst Du die hier:
Nein, eher das, was auf den zigbee2mqtt.io bzw. blakadder-Seiten zu finden ist. Da stehen in der Regel die Topic-Payload/JSON-Strukturen.
Dazu sollte dann das attrTemplate passen, also das, was man an "Quelltext" vor dem Anwenden sieht (im DetailView des Devices) bzw. das, was dann daraus generiert wird.
Zitat
Wenn Du mir noch einen kleinen Wink mit dem Zaunpfahl gibst, was der "aktuelle Standard" ist, kann ich es zumindest einmal versuchen, empfinde es aber jetzt schon als etwas kryptisch. :-[
Sorry, ich kann es kaum weniger kryptisch schreiben, weil ich sonst die konkreten Seiten selbst raussuchen müßte...
ZitatZum "Schritt für Schritt"-Artikel:
Geint gewesen war https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt
ZitatDas vermute ich auch, da ja das Verhalte mit unterschiedlicher Firmware-Version anders ist.
Die von dir gefundene(n) Stelle(n) scheinen zu passen: Da geht es darum, dass bestimmte Devices mit unterschiedlicher (Hersteller?-) Kennung gleich behandelt werden sollen.
Da das "relativ wenig" Code ist, scheint die Funktionalität auf der zigbee-Seite dann sogar 1:1 gleich zu sein. Das 3-Kanal-attrTemplate ist im übrigen auch "nur" als eine Erweiterung eines bestehenden 2-kanaligen entstanden ;) ; wobei da auch in zigbee2mqtt irgendeine Art genereller Syntaxwechsel dazwischen war, wenn ich mich richtig entsinne... Es mußte also angepaßt werden, aber das 2-kanalige funktionierte dann auch mit der neuen Syntax (Topic/Payload-Struktur) immer noch. Irgendwie in der Art halt. Genau darum die Frage, wie denn jetzt der "aktuelle Standard" für mehrkanalige ein/aus-Aktoren auf der zigbee2mqtt-Seite aussieht ;) .
Zitat von: Beta-User am 05 August 2022, 22:02:44
OK, ab 7:45/8:00 Uhr müßte das dann mitkommen.
Update gemacht und in Ruhe getestet. Leider gibt es noch Fehler. Gestern hatte ich lediglich die Funktion aus der zigbee2mqtt GUI überpüft, diese funktioniert auch weiterhin fehlerfrei. Was noch Fehler aufweist, ist das Schalten in der fhem GUI:
- CH1 ON -> Lampe von CH3 geht an (wird gelb), Steckdose Channel Channel 3 wird angeschaltet.
- CH2 ON -> Lampe von CH2 geht an, Steckdose Channel 2 wird angeschaltet.
- CH3 ON -> Lampe von CH1 geht an, Steckdose Channel 1 wird angeschaltet.
D.h. 3 schaltet 1 und umgekehrt.
Was auch auffällt: Wenn ich in der GUI den Channel 1 anschalte, ändert sich die Anzeige bei "Save config":
Last unsaved structural changes:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV rea...
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2...
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3...
Ich habe die config frisch nach einem reboot und dann nach Schalten des channel 1 abgespeichert und verglichen.
Ein bißchen OT: Hierzu habe ich einen Wunsch veröffentlicht, dass dies aus fhem etwas besser unterstützt wird: https://forum.fhem.de/index.php/topic,128654.0.html
Zurück zum Thema. :)
Hier die Unterschiede.
Device Channel 1 vorher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
Device Channel 1 nachher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/1/set:.* { json2nameValue($EVENT) }
Was zudem auffällt ist dass bei den setstates das associatedWith anders ist:
vorher:
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 12:19:24 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
nachher:
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 12:22:01 associatedWith MQTT2_zigbee2mqtt
dasselbe gilt auch für Channel 2 und 3.
Device Channel 2 vorher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
Device Channel 2 nachher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/1/set:.* { json2nameValue($EVENT) }
Device Channel 3 vorher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
Device Channel 3 nachher:
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/1/set:.* { json2nameValue($EVENT) }
Dies wie gesagt nur beim Schalten über die fhem GUI - beim Schalten über die zigbee2mqtt GUI ändert sich nichts in der config!
Zitat von: HomeAlone am 06 August 2022, 17:36:09
Eventuell kannst Du mit dem von mir Gefundenen schon etwas anfangen, um das anzupassen?
Klar! Wollte grade fragen, ob man diesen "Zwischenteil" in den set-Topics braucht, update ist schon im svn.
Allerdings bist du mit der Erweiterung der readingList mAn. einem (beliebten) Irrtum aufgesessen....
Zitatzu definieren und bei der readingList den Unterpfad ebenfalls zu entfernen:
$DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret }
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
Was als Anweisung _an das Gerät_ geschickt wird, sollte mAn. nie als Reading verwertet werden (höchstens in der Form "set on" etc.). Hier ist es (aber nur scheinbar) kein Problem, weil jsonMap nicht greift! Sowas sollte man per ignoreRegexp rausfischen, und das letzte update sollte dann auch bewirken, dass ggf. nur der erste Kanal überhaupt erweitert wird, wenn man es nicht auf dem "korrekten" Weg macht...
(Ich hoffe, ich habe das jetzt halbwegs verständlich erklärt?)
Zitat von: Beta-User am 05 August 2022, 22:02:44
Nein, eher das, was auf den zigbee2mqtt.io bzw. blakadder-Seiten zu finden ist. Da stehen in der Regel die Topic-Payload/JSON-Strukturen.
OK, die Defs (Abschnitt Exposes) stehen, denke ich, hier:
https://www.zigbee2mqtt.io/devices/HG06338.html
Bei blackadder befindet sich lediglich ein Lin auf das github repo, wo die Änderungen für die letzte Version der Steckerleiste gemacht wurden: https://zigbee.blakadder.com/Lidl_HG06338.html
Aus der Anleitung bei zigbee2mqtt:
ZitatSwitch (l1 endpoint)
The current state of this switch is in the published state under the state_l1 property (value is ON or OFF). To control this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state_l1": "ON"}, {"state_l1": "OFF"} or {"state_l1": "TOGGLE"}. To read the current state of this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"state_l1": ""}.
gleiches glibt für l2 und l3.
Dort steht nichts von einem expliziten Unterpfad 1, l2 oder l3, das set kommt direkt nach dem Device-Namen. opic.
Daher müsste es bei der setList im template ausreichend sein:
attr DEVICE setList \
on:noArg $\DEVICETOPIC/set {"state_l1":"ON"}\
off:noArg $\DEVICETOPIC/set {"state_l1":"OFF"}\
toggle:noArg $\DEVICETOPIC/set {"state_l1":"TOGGLE"}
attr DEVICE setStateList on off toggle
zu definieren und bei der readingList den Unterpfad ebenfalls zu entfernen:
$DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}); return $ret }
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
Habe das mal für alle drei Channels gemacht und siehe da: Es funktioniert. :) Die Schaltergebnisse werden auch in der zigbee2mqtt GUI korrekt angezeigt.
Habe es auch sicherheitshalber in der anderen Richtung mit einem externen mqtt-Client, und mit meinen MQTT2_CLIENT gepublished: Funktioniert beides einwandfrei (Bsp MQTT2_CLIENT):
set mosquittoAtnucgulp publish zigbee2mqtt/wz_Mehrfachsteckdose_TV/set {"state_l1":"OFF"}
Der Vollständigkeit halber die config der drei Channels, wie es bei mir einwandfrei funktioniert:
Channel 1:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV comment Channel 1 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV jsonMap state:availability state_l1:state state_l2:0 state_l3:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setList on:noArg $DEVICETOPIC/set {"state_l1":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l1":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l1":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:09:45 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:10:56 associatedWith MQTT2_zigbee2mqtt
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 12:19:25 attrTemplateVersion 20220805
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 last_seen 1659799600011
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 linkquality 80
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:09:23 set
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:26:40 state off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:10:56 state_l1 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 16:59:05 state_l2 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-06 17:09:24 wz_Mehrfachsteckdose_TV_1_set
Channel 2:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 comment Channel 2 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 jsonMap state_l2:state state_l1:0 state_l3:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setList on:noArg $DEVICETOPIC/set {"state_l2":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l2":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l2":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:09:45 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:10:56 associatedWith MQTT2_zigbee2mqtt
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 12:19:25 attrTemplateVersion 20220805
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 last_seen 1659799600011
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:09:23 set
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:26:40 state off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:10:56 state_l1 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 16:59:05 state_l2 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-06 17:09:24 wz_Mehrfachsteckdose_TV_1_set
Channel 3:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 comment Channel 3 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 jsonMap state_l3:state state_l1:0 state_l2:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setList on:noArg $DEVICETOPIC/set {"state_l3":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l3":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l3":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:09:45 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:10:56 associatedWith MQTT2_zigbee2mqtt
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 12:19:25 attrTemplateVersion 20220805
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 last_seen 1659799759430
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:09:23 set
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:29:19 state off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:10:56 state_l1 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 16:59:05 state_l2 OFF
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:09:23 wz_Mehrfachsteckdose_TV_1_set
Ich wußte nicht, ob die setstates notwendig sind oder nicht - daher sicherheitshalber mit drin.
Wie das attrTemplate jetzt angepasst werden müsste, damit das so da erscheint, ist mir leider noch nicht klar. Eventuell kannst Du mit dem von mir Gefundenen schon etwas anfangen, um das anzupassen?
Liebe Grüße
Sascha
Zitat von: Beta-User am 29 Oktober 2021, 17:31:19
Glaskugel meint, du hast einen externen Server am Start und setzt Befehle auch von anderer Seite ab?
Glaskugel bekommt erst einmal einen Gummipunkt :)
Ich nutzte zusätzlich Node Red, welches die zigbee2mqtt messages weiterverarbeitet, um dies und das zu machen. Bei meinen Test fahre ich den Container immer runter, um dies als Fehlerquelle ausschließen zu können.
Zitat von: Beta-User am 29 Oktober 2021, 17:31:19Dann solltest du mal nach ignoreRegexp am MQTT2_CLIENT schauen und die set-Befehle abfangen. Falls das nicht hilft, schauen wir weiter, aber bitte die angepinnten "was sollte man liefern"-Hinweise beachten.
Das ignore hatte ich wie in der Anleitung angegeben eingefügt - die Änderungen am Device werden dennoch erzeugt. Es ist interessanterweise genau der Teil, den ich dann gändert habe, damit es vollständig funktioniert.
Aber natürlich hast Du Recht, dass Du, um sinnvoll helfen zu können, alle Infos brauchst.
Hier die Infos:
- neueste Version von fhem installiert
- MQTT-Broker: Extern, mosquitto über MQTT2_CLIENT, config weiter unten
- MQTT_GENERIC_BRIDGE definiert, config weiter unten
Config MQTT2_CLIENT:
defmod mosquittoATnucgulp MQTT2_CLIENT nucgulp:1883
attr mosquittoATnucgulp alias mosquittoATnucgulp
attr mosquittoATnucgulp autocreate simple
attr mosquittoATnucgulp clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr mosquittoATnucgulp devStateIcon .*opened:mqtt_broker:disconnect .*disconnected:mqtt_broker@red:connect
attr mosquittoATnucgulp icon mqtt_broker
attr mosquittoATnucgulp ignoreRegexp cmnd/[^:"]+:|homeassistant/[^:"]+/config:|shellies/[^:"]+/command:|zigbee2mqtt/[^/]+/set:|milight/0x[0-9a-fA-F]{1,4}/.*/[0-8]:|tasmota/discovery/
attr mosquittoATnucgulp room MQTT2_DEVICE,Zentralen
attr mosquittoATnucgulp subscriptions setByTheProgram
setstate mosquittoATnucgulp opened
setstate mosquittoATnucgulp 2022-08-06 14:35:16 lastPublish zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:{"state_l2":"ON"}
setstate mosquittoATnucgulp 2022-08-06 17:09:50 state opened
Config MQTT_GENERIC_BRIDGE:
defmod mqttGenericBridge MQTT_GENERIC_BRIDGE
attr mqttGenericBridge alias mqttGenericBridge
attr mqttGenericBridge globalDefaults sub:base=mqttGenericBridge/set pub:base=mqttGenericBridge
attr mqttGenericBridge group MQTT2_DEVICE
attr mqttGenericBridge icon mqtt_bridge_1
attr mqttGenericBridge room MQTT2_DEVICE,Zentralen
attr mqttGenericBridge stateFormat dev: device-count in: incoming-count out: outgoing-count
setstate mqttGenericBridge dev: 11 in: 0 out: 0
setstate mqttGenericBridge 2022-08-06 17:09:49 IODev mosquittoATnucgulp
setstate mqttGenericBridge 2022-02-22 23:24:43 attrTemplateVersion 20211208_MGB_M2D
setstate mqttGenericBridge 2022-08-06 17:09:49 device-count 11
setstate mqttGenericBridge 2022-08-06 17:09:44 incoming-count 0
setstate mqttGenericBridge 2022-08-06 17:09:44 outgoing-count 0
setstate mqttGenericBridge 2022-08-06 17:09:49 transmission-state IO device initialized (mqtt2)
setstate mqttGenericBridge 2022-08-06 17:09:44 updated-reading-count 0
setstate mqttGenericBridge 2022-08-06 17:09:44 updated-set-count 0
list TYPE=autocreate:
Internals:
FUUID 5cd105c9-f33f-2afc-2f5c-5d87254b235eca8d
NAME autocreate
NOTIFYDEV global
NR 14
NTFY_ORDER 50-autocreate
STATE active
TYPE autocreate
Attributes:
alias autocreate
filelog ./log/%NAME-%Y.log
ignoreTypes CUL_HM.*
Klar hilft die Info weiter! Wollte grade fragen, ob man diesen "Zwischenteil" in den set-Topics braucht, update ist schon im svn.
Allerdings bist du mit der Erweiterung der readingList mAn. einem (beliebten) Irrtum aufgesessen...
Was als Anweisung _an das Gerät_ geschickt wird, sollte mAn. nie als Reading verwertet werden (höchstens in der Form "set on" etc.). Hier ist es (aber nur scheinbar) kein Problem, weil jsonMap nicht greift! Sowas sollte man per ignoreRegexp rausfischen, und das letzte update sollte dann auch bewirken, dass ggf. nur der erste Kanal überhaupt erweitert wird, wenn man es nicht auf dem "korrekten" Weg macht...
Allerdings hatte die von dir jetzt gezeigte ignoreRegexp diesen Teil nicht abgefangen, weil ja der Zwischenteil noch drin war => ist raus => readingList bliebt auch in Kanal 1 "sauber...
(So jedenfalls die Theorie ::) ).
(Ich hoffe, ich habe das jetzt halbwegs verständlich erklärt?)
Hallo Beta-User,
bad news: Wenn ich mit dem Update Channel 2 und 3 aus fhemweb heraus schalte, tut sich nichts, es wird nicht geschaltet.
Ich kam gerade erst dazu das auszuprobieren.
Habe sicherheitshalber alles zum Device gehörige aus fhem entfernt und und durch Schalten in zigbee2mqtt das Hauptdevice neu anlegen lassen und dann das template für die 3channel Steckdose darauf angewandt.
Von zigbee2mqtt kommt alles korrekt an und wird auch in fhemweb korrekt dargestellt.
Hier die Configs, wie sie sich nach dem Update (und mit den Fehlern bei Channel 2 und 3 darstellen:
Channel 1:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV comment Channel 1 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV jsonMap state:availability state_l1:state state_l2:0 state_l3:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setList on:noArg $DEVICETOPIC/set {"state_l1":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l1":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l1":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 21:36:44 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 21:37:39 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 21:37:39 attrTemplateVersion 20220806
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 last_seen 1659903385778
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 linkquality 76
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV 2022-08-07 22:16:25 state off
Channel 2:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 comment Channel 2 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 jsonMap state_l2:state state_l1:0 state_l3:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setList on:noArg $DEVICETOPIC/set {"state_l2":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l2":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l2":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 21:37:39 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 21:37:39 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 21:37:39 attrTemplateVersion 20220806
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 last_seen 1659903578984
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2 2022-08-07 22:19:39 state off
Channel 3:
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 alias MQTT2_zigbee_wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 comment Channel 3 for MQTT2_zigbee_wz_Mehrfachsteckdose_TV, see also MQTT2_zigbee_wz_Mehrfachsteckdose_TV and MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 devicetopic zigbee2mqtt/wz_Mehrfachsteckdose_TV
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 genericDeviceType switch
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 icon message_socket
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 jsonMap state_l3:state state_l1:0 state_l2:0 state:0 consumption:0 linkquality:0 power:0 temperature:0
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 model zigbee2mqtt_3channel_split
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 room MQTT2_DEVICE
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setList on:noArg $DEVICETOPIC/set {"state_l3":"ON"}\
off:noArg $DEVICETOPIC/set {"state_l3":"OFF"}\
toggle:noArg $DEVICETOPIC/set {"state_l3":"TOGGLE"}
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 setStateList on off toggle
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 off
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 21:37:39 IODev mosquittoATnucgulp
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 21:37:39 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 21:37:39 attrTemplateVersion 20220806
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_applicationVersion 69
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_dateCode
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_friendlyName wz_Mehrfachsteckdose_TV
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_hardwareVersion 1
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_ieeeAddr 0xec1bbdfffeaedd43
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_manufacturerID 4098
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_manufacturerName _TZ3000_1obwwnmq
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_model HG06338
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_networkAddress 1108
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_powerSource Mains (single phase)
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_stackVersion 0
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_type Router
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 device_zclVersion 3
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 last_seen 1659903578984
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 22:19:39 state off
Exemplarisch die Unterschiede im Channel 3 (ich muss morgen früh raus, kann daher heute nicht mehr tiefergehend testen):
Channel 3 (alt):
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 MQTT2_DEVICE zigbee_wz_Mehrfachsteckdose_TV
[...]
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }\
zigbee2mqtt/wz_Mehrfachsteckdose_TV/set:.* { json2nameValue($EVENT) }
[...]
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-07 21:37:39 associatedWith MQTT2_zigbee_wz_Mehrfachsteckdose_TV,MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH2
Channel 3 (neu):
defmod MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 MQTT2_DEVICE
[...]
attr MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP);; $ret->{state}=lc($ret->{state});; return $ret }
[...]
setstate MQTT2_zigbee_wz_Mehrfachsteckdose_TV_CH3 2022-08-06 17:10:56 associatedWith MQTT2_zigbee2mqtt
Liebe Grüße
Sascha
OK, Entwarnung.
Nach einem Neustart geht es jetzt doch (mit der aktuellen attrTemplate von gestern).
Es könnte sein, dass bei meinen Versuchen mit dem Schalter (https://forum.fhem.de/index.php/topic,128669.0.html) gestern (das Problem hattest Du ja netterweise auch gelöst :) irgendetwas an der config verschossen wurde.
Ich teste heute sicherheitshalber noch einmal durch, sieht aber bisher gut aus.
Zitat von: HomeAlone am 08 August 2022, 09:58:32
OK, Entwarnung.
Danke für die Info - war grade gedanklich schon dabei, das im wesentlichen zurückzudrehen ;D ...
OK, habe es mit einer weiteren Mehrfachsteckdose getestet, da mir noch eine Kleinigkeit aufgefallen war, ich aber nicht wußte, ob ich es korrekt beobachtet hatte.
Wenn die Mehrfachsteckdose angelernt ist, funktioniert auf Anhieb nur Channel 3 aus fhemweb heraus.
Führe ich einen Neustart von fhem (shutdown restart) durch, funktioniert alles einwandfrei.
Die config ist vor und nach dem Neustart identisch.
Also ich komme damit klar, kann aber leider (noch) nicht erklären, warum das passiert. Die anderen beiden Mehrfachsteckdosen laufen im jetzt seit ihrer Erstinstallation und Konfiguration einwandfrei.
Werde am Wochenende etwas mehr Zeit finden - dann gucke ich mir das noch mal im Detail an.
Dazu habe ich zumindest eine Theorie:
Intern wird per "copy"-Befehl ein Klon erstellt für die weiteren Kanäle. Das hat aber den Nachteil, dass auch die Internals mitkopiert werden. Manchmal führt das zu seltsamen Effekten. Leider habe ich bisher noch keinen einfachen Weg gefunden, die Methode zu verbessern, ohne den overhead deutlich zu erhöhen (u.A. müßten dann alle vorhanden Attribute auch kopiert werden)....
An der einen oder anderen Stelle ist es zumindest verbessert, daher u.A. auch die "defmod"-Anweisungen, die jetzt dazugekommen sind. Damit sollten eigentlich auch die Internals neu aufgebaut werden.
Ich habe es noch einmal überprüft. Es ist definitiv so, wie von mir im vorhergehenden Posting beschrieben: Erst nach einem Neustart von fhem lässt sich die Mehrfachsteckdose über fhem korrekt ansprechen.
Wie gesagt, stört mich nicht, nur als Nachtrag, dass es noch einmal überprüft habe. :) Eventuell kann man das mit in den Template Kommentar zum zigbee2mqtt_3channel_split packen?
Entweder unter die Untested Zeile oder die Untested-Zeile austauschen (hab ich ja jetzt gemacht ;) ):
For zigbee2mqtt 3 channel device like Silvercrest Steckerleiste »Zigbee Smart Home«.
NOTE: Two additional devices will be created for further channels.
NOTE: Please restart fhem after applying this template!
Danke für den Hinweis, werd's (etwas moderater) übernehmen; mir ist noch nicht ganz klar, warum das mit dem defmod nicht wirkt, aber letztlich ist das dann auch nicht mehr ganz so wichtig, nachdem die Doku paßt.
[gelöst]?
Zitat von: Beta-User am 01 September 2022, 12:01:16
[gelöst]?
Für mich schon, ich bin auf diesen Thread lediglich "aufgesprungen", kann daher das gelöst nicht hinzufügen.
Der Thread wurde ursprünglich von Onkel Tobi eröffnet. :)