Frage zu einem Zigbee 3.0 USB Dongle Plus Stick

Begonnen von Sahip, 05 März 2025, 22:10:40

Vorheriges Thema - Nächstes Thema

TomLee

Wenn wieder online, zeig mal den Inhalt der zigbee2mqtt.service .

TomLee

Zitat von: eckhard scholz am 20 April 2025, 12:52:41das Anlernen klappt noch nicht.

Oben rechts im Frontend kann man das anlernen aktivieren.

Nobbynews

Ggf. muss das Attribut readingList noch ergänzt werden um:
$DEVICETOPIC/availability:.* { availability=>(json2nameValue($EVENT))->{state} }


passibe

Zitat von: eckhard scholz am 20 April 2025, 12:52:41das Anlernen klappt noch nicht.
Was sagt denn das z2m-log?

Ansonsten lösch mal deine ganzen Devices da, also MQTT2_zigbee_pi, zigbee_bridge und zigbee_pi und versuch es mit der von mir geposteten Bridge-Device Definition nochmal: https://forum.fhem.de/index.php?topic=140997.msg1339940#msg1339940

Natürlich, wenn du ein allowed-device für deinen MQTT2_Server hast, musst du schon auch Benutzername und Passwort in die configuration.yaml eintragen:
mqtt:
  server: mqtt://127.0.0.1:1883
  user: <USER>
  password: <PASS>
  base_topic: z2m
  client_id: zigbee

eckhard scholz

nobbynews,
das Ergebnis ist, dass sich z2m immer neu mit "zigbee_pi" anmeldet.

TomLee,
ZitatOben rechts im Frontend kann man das anlernen aktivieren.
da kann ich nicht folgen  8)

passible,
sag mal muss die IP-Adresse angegeben werden, wenn alles im einem RbPi installiert ist?
server: mqtt://localhost:1883 das steht bei mir noch drin.
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

passibe

127.0.0.1 oder localhost ist egal, localhost wird einfach zu 127.0.0.1 "übersetzt".

Das zigbee_pi kommt vermutlich von der client_id von Nobbynews. Dann musst du das natürlich auch in deinem Bridge-Device anpassen.

Ich würde, wie gesagt, empfehlen das was ich in Post #55 gepostet habe, zu nehmen, sowohl in der configuration.yaml (ggfs. noch erweitert um user/passwort) als auch in FHEM. Das funktioniert garantiert.


Dafür am besten
1. z2m stoppen
2. alles aus FHEM löschen
3. das Device (MQTT2_zigbee) so wie von mir gepostet in FHEM einfügen
4. Die configuration.yaml wie aus meinem Post anpassen
5. z2m starten
6. In FHEM sollte dann in MQTT2_zigbee state online angezeigt werden (bzw. grüne Ampel)
7. Dann auf http://<IP-des-Raspberry>:8080 navigieren und im Frontend kannst du dann das anlernen aktivieren, etc.


Und: Weil es noch Probleme mit deiner systemd-Servicedatei gibt, bitte z2m manuell starten/stoppen, so wie du es am Anfang gemacht hast, also mit pnpm start.
Dann kriegst du auch direkt die Log-Ausgabe von z2m und kannst sie, bei Problemen, hier posten.

eckhard scholz

#67
passible,

das hat  funktioniert.  Zigbee2MQTT grüne Ampel.
Devices im Frontend angelernt (ich muss zugeben das ich Frontend bisher noch nicht kannte)
Und es entsteht eine riesige zigbee_bridge-2025-04.log, bzw. viele definitions und info.
Es entsteht eine zigbe_bridge, was macht die ? Da sind bis jetzt noch drei Fragezeichen.
In configuration.yaml sind die devices auch eingetragen.
Und wo kann ich den Devices vernünftige Namen geben, im Frontend oder im Fhem?
Die Devices sind auch noch im Fhem mit Fragezeichen, im Frontend Dashboard kann ich sie bedienen.
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

passibe

Namen geben im Frontend über den blauen Knopf mit dem Stift drauf.

Bei der Log-Datei kannst du theoretisch einfach das FileLog device löschen. Geloggt wird ja sowieso über z2m direkt.

Zeig bitte mal einen Logauszug von z2m und auch ein list aller Devices, die du siehst (mindestens mal MQTT2_zigbee und zigbee_bridge).

Um die Geräte über FHEM zu steuern, brauchst du Einträge in der setList und readingList. Beides kannst du dir über attrTemplate holen, da gibt es viele verschiedene Templates (fangen an mit zigbee2mqtt_, z.B. zigbee2mqtt_light_dimmer).
Ansonsten kannst du auch auf Basis eines Templates selbst die setList anpassen, indem du hier dein Gerät suchst und dir die notwendige MQTT-Nachricht zusammenbaust.

Die Theorie zu allem steht hier und Beispiele (wenn auch nicht spezifisch zu zigbee2mqtt, aber jedenfalls mit setLists) gibt es hier. Ansonsten auch einfach mit <SUCHBEGRIFF> site:fhem.de googeln, dann findest du sicherlich auch mehr Infos oder hier nochmal fragen.

eckhard scholz

so wollte ich befehle senden,kommt aber nicht an

define zigbee_0xf4b3b1fffe41ea47 MQTT2_DEVICE zigbee_0xf4b3b1fffe41ea47
setuuid zigbee_0xf4b3b1fffe41ea47 6805152c-f33f-193d-74d4-b6323ccff11fafd2
attr zigbee_0xf4b3b1fffe41ea47 readingList z2m/0xf4b3b1fffe41ea47:.* { json2nameValue($EVENT) }
attr zigbee_0xf4b3b1fffe41ea47 room MQTT2_DEVICE
attr zigbee_0xf4b3b1fffe41ea47 setList on:noArg z2m/0xf4b3b1fffe41ea47/set {"state":"on"}\\
off:noArg z2m/0xf4b3b1fffe41ea47/set {"state":"off"}\
attr zigbee_0xf4b3b1fffe41ea47 webCmd toggle:on:off
define FileLog_zigbee_0xf4b3b1fffe41ea47 FileLog ./log/zigbee_0xf4b3b1fffe41ea47-%Y-%m.log zigbee_0xf4b3b1fffe41ea47
setuuid FileLog_zigbee_0xf4b3b1fffe41ea47 6805152c-f33f-193d-5f53-13da6fa02e8666ec
attr FileLog_zigbee_0xf4b3b1fffe41ea47 logtype text
attr FileLog_zigbee_0xf4b3b1fffe41ea47 room MQTT2_DEVICE
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

eckhard scholz

zigbee_bridge-2025-04.log
Du darfst diesen Dateianhang nicht ansehen.
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

eckhard scholz

#71
MQTT2_Zigbee und drei Devices
define MQTT2_zigbee MQTT2_DEVICE zigbee
setuuid MQTT2_zigbee 68050d33-f33f-193d-1735-3b79e28ceb44c0fa
attr MQTT2_zigbee alias Zigbee2MQTT
attr MQTT2_zigbee autocreate 0
attr MQTT2_zigbee bridgeRegexp z2m/([A-Za-z0-9._]+)[/]?.*:.* "zigbee_$1"
attr MQTT2_zigbee devStateIcon .*online:ampel_gruen .*:ampel_rot
attr MQTT2_zigbee devicetopic z2m
attr MQTT2_zigbee event-on-change-reading state,availability
attr MQTT2_zigbee icon mqtt_text
attr MQTT2_zigbee model zigbee2mqtt_bridge
attr MQTT2_zigbee readingList $DEVICETOPIC/bridge/state:.* { json2nameValue($EVENT)}\
$DEVICETOPIC/bridge/response/permit_join:.* permit_join\
$DEVICETOPIC/bridge/response/device/rename:.* device_rename\
$DEVICETOPIC/bridge/response/device/remove:.* device_remove
attr MQTT2_zigbee room 09_System->MQTT2,MQTT2_DEVICE
attr MQTT2_zigbee setList permit_join:true,false {my $payload = qq({"value": $EVTPART1, "time": 120});; if ($EVTPART1 eq "false") {$payload = qq("value": false)};; return qq {$DEVICETOPIC/bridge/request/permit_join $payload};;;; }\
device_remove $DEVICETOPIC/bridge/request/device/remove {"id": "$EVTPART1"}\
device_rename $DEVICETOPIC/bridge/request/device/rename {"from": "$EVTPART1", "to": "$EVTPART2"}
attr MQTT2_zigbee setStateList on off

define zigbee_bridge MQTT2_DEVICE zigbee_bridge
setuuid zigbee_bridge 6805152b-f33f-193d-f6b1-d76b3dbf52dbb5b6
attr zigbee_bridge readingList z2m/bridge/converters:.* converters\
z2m/bridge/info:.* info\
z2m/bridge/devices:.* { json2nameValue($EVENT) }\
z2m/bridge/groups:.* groups\
z2m/bridge/definitions:.* definitions\
z2m/bridge/extensions:.* extensions\
z2m/bridge/logging:.* { json2nameValue($EVENT) }\
z2m/bridge/response/networkmap:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/ota_update/check:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/configure_reporting:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/bind:.* { json2nameValue($EVENT) }
attr zigbee_bridge room 09_System->MQTT2,MQTT2_DEVICE
define FileLog_zigbee_bridge FileLog ./log/zigbee_bridge-%Y-%m.log zigbee_bridge
setuuid FileLog_zigbee_bridge 6805152b-f33f-193d-ed2d-931c9c3e94b58bab
attr FileLog_zigbee_bridge logtype text
attr FileLog_zigbee_bridge room MQTT2_DEVICE

define zigbee_0x00124b002faebac4 MQTT2_DEVICE zigbee_0x00124b002faebac4
setuuid zigbee_0x00124b002faebac4 6805152c-f33f-193d-9206-8d2faaf4388ae734
attr zigbee_0x00124b002faebac4 readingList z2m/0x00124b002faebac4:.* { json2nameValue($EVENT) }
attr zigbee_0x00124b002faebac4 room MQTT2_DEVICE
define FileLog_zigbee_0x00124b002faebac4 FileLog ./log/zigbee_0x00124b002faebac4-%Y-%m.log zigbee_0x00124b002faebac4
setuuid FileLog_zigbee_0x00124b002faebac4 6805152c-f33f-193d-630f-22f1b46b6cfd1987
attr FileLog_zigbee_0x00124b002faebac4 logtype text
attr FileLog_zigbee_0x00124b002faebac4 room MQTT2_DEVICE

define zigbee_0xa4c138a52521e064 MQTT2_DEVICE zigbee_0xa4c138a52521e064
setuuid zigbee_0xa4c138a52521e064 6805152c-f33f-193d-8afe-ffc36f6e0b3864ee
attr zigbee_0xa4c138a52521e064 readingList z2m/0xa4c138a52521e064:.* { json2nameValue($EVENT) }
attr zigbee_0xa4c138a52521e064 room MQTT2_DEVICE
define FileLog_zigbee_0xa4c138a52521e064 FileLog ./log/zigbee_0xa4c138a52521e064-%Y-%m.log zigbee_0xa4c138a52521e064
setuuid FileLog_zigbee_0xa4c138a52521e064 6805152c-f33f-193d-12a3-a4cfadc7f47dbbb3
attr FileLog_zigbee_0xa4c138a52521e064 logtype text
attr FileLog_zigbee_0xa4c138a52521e064 room MQTT2_DEVICE

define zigbee_0xf4b3b1fffe41ea47 MQTT2_DEVICE zigbee_0xf4b3b1fffe41ea47
setuuid zigbee_0xf4b3b1fffe41ea47 6805152c-f33f-193d-74d4-b6323ccff11fafd2
attr zigbee_0xf4b3b1fffe41ea47 readingList z2m/0xf4b3b1fffe41ea47:.* { json2nameValue($EVENT) }
attr zigbee_0xf4b3b1fffe41ea47 room MQTT2_DEVICE
attr zigbee_0xf4b3b1fffe41ea47 setList on:noArg z2m/0xf4b3b1fffe41ea47/set {"state":"ON"}\\
off:noArg z2m/0xf4b3b1fffe41ea47/set {"state":"OFF"}\
attr zigbee_0xf4b3b1fffe41ea47 webCmd toggle:on:off
define FileLog_zigbee_0xf4b3b1fffe41ea47 FileLog ./log/zigbee_0xf4b3b1fffe41ea47-%Y-%m.log zigbee_0xf4b3b1fffe41ea47
setuuid FileLog_zigbee_0xf4b3b1fffe41ea47 6805152c-f33f-193d-5f53-13da6fa02e8666ec
attr FileLog_zigbee_0xf4b3b1fffe41ea47 logtype text
attr FileLog_zigbee_0xf4b3b1fffe41ea47 room MQTT2_DEVICE
F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,

eckhard scholz

Fazit und Danke

so einfach wie gedacht war es dann eben doch nicht.
Da waren die Probleme mit dem Zigbee 3.0 USB Dongle Plus Stick noch die kleineren.
Ohne eure Hilfe, hier im Forum, wäre ich wohl verzweifet. Nochmals Danke an ALLE und besonders an passible !!!
Ich hab wieder eine Menge dazu gelernt.

Damit es auch andere User nachvollziehen können, wie es am Ende aussehen muss das alles fehlerlos läuft, hier noch mal der Auszug vom letzten Stand aus meiner fhem.cfg mit drei Devices
define MQTT2_zigbee MQTT2_DEVICE zigbee
attr MQTT2_zigbee alias Zigbee2MQTT
attr MQTT2_zigbee autocreate 0
attr MQTT2_zigbee bridgeRegexp z2m/([A-Za-z0-9._]+)[/]?.*:.* "zigbee_$1"
attr MQTT2_zigbee devStateIcon .*online:ampel_gruen .*:ampel_rot
attr MQTT2_zigbee devicetopic z2m
attr MQTT2_zigbee event-on-change-reading state,availability
attr MQTT2_zigbee icon mqtt_text
attr MQTT2_zigbee model zigbee2mqtt_bridge
attr MQTT2_zigbee readingList $DEVICETOPIC/bridge/state:.* { json2nameValue($EVENT)}\
$DEVICETOPIC/bridge/response/permit_join:.* permit_join\
$DEVICETOPIC/bridge/response/device/rename:.* device_rename\
$DEVICETOPIC/bridge/response/device/remove:.* device_remove
attr MQTT2_zigbee room 09_System->MQTT2,MQTT2_DEVICE
attr MQTT2_zigbee setList permit_join:true,false {my $payload = qq({"value": $EVTPART1, "time": 120});; if ($EVTPART1 eq "false") {$payload = qq("value": false)};; return qq {$DEVICETOPIC/bridge/request/permit_join $payload};;;; }\
device_remove $DEVICETOPIC/bridge/request/device/remove {"id": "$EVTPART1"}\
device_rename $DEVICETOPIC/bridge/request/device/rename {"from": "$EVTPART1", "to": "$EVTPART2"}
attr MQTT2_zigbee setStateList on off

define zigbee_bridge MQTT2_DEVICE zigbee_bridge
attr zigbee_bridge readingList z2m/bridge/converters:.* converters\
z2m/bridge/info:.* info\
z2m/bridge/devices:.* { json2nameValue($EVENT) }\
z2m/bridge/groups:.* groups\
z2m/bridge/definitions:.* definitions\
z2m/bridge/extensions:.* extensions\
z2m/bridge/logging:.* { json2nameValue($EVENT) }\
z2m/bridge/response/networkmap:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/ota_update/check:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/configure_reporting:.* { json2nameValue($EVENT) }\
z2m/bridge/response/device/bind:.* { json2nameValue($EVENT) }\
z2m/bridge/event:.* { json2nameValue($EVENT) }
attr zigbee_bridge room 09_System->MQTT2,MQTT2_DEVICE
define FileLog_zigbee_bridge FileLog ./log/zigbee_bridge-%Y-%m-%d.log zigbee_bridge
attr FileLog_zigbee_bridge logtype text
attr FileLog_zigbee_bridge nrarchive 3
attr FileLog_zigbee_bridge room MQTT2_DEVICE

define zigbee_0x00124b002faebac4 MQTT2_DEVICE zigbee_0x00124b002faebac4
attr zigbee_0x00124b002faebac4 readingList z2m/0x00124b002faebac4:.* { json2nameValue($EVENT) }
attr zigbee_0x00124b002faebac4 room MQTT2_DEVICE
attr zigbee_0x00124b002faebac4 stateFormat occupancy
define FileLog_zigbee_0x00124b002faebac4 FileLog ./log/zigbee_0x00124b002faebac4-%Y-%m-%d.log zigbee_0x00124b002faebac4
setuuid FileLog_zigbee_0x00124b002faebac4 6805152c-f33f-193d-630f-22f1b46b6cfd1987
attr FileLog_zigbee_0x00124b002faebac4 logtype text
attr FileLog_zigbee_0x00124b002faebac4 nrarchive 4
attr FileLog_zigbee_0x00124b002faebac4 room MQTT2_DEVICE

define zigbee_0xa4c138a52521e064 MQTT2_DEVICE zigbee_0xa4c138a52521e064
attr zigbee_0xa4c138a52521e064 readingList z2m/0xa4c138a52521e064:.* { json2nameValue($EVENT) }
attr zigbee_0xa4c138a52521e064 room MQTT2_DEVICE
attr zigbee_0xa4c138a52521e064 stateFormat illuminance / occupancy
define FileLog_zigbee_0xa4c138a52521e064 FileLog ./log/zigbee_0xa4c138a52521e064-%Y-%m-%d.log zigbee_0xa4c138a52521e064
setuuid FileLog_zigbee_0xa4c138a52521e064 6805152c-f33f-193d-12a3-a4cfadc7f47dbbb3
attr FileLog_zigbee_0xa4c138a52521e064 logtype text
attr FileLog_zigbee_0xa4c138a52521e064 nrarchive 4
attr FileLog_zigbee_0xa4c138a52521e064 room MQTT2_DEVICE

define zigbee_ZBMINIL2_Test MQTT2_DEVICE zigbee_ZBMINIL2_Test
attr zigbee_ZBMINIL2_Test devicetopic z2m/ZBMINIL2_Test
attr zigbee_ZBMINIL2_Test genericDeviceType switch
attr zigbee_ZBMINIL2_Test icon message_socket
attr zigbee_ZBMINIL2_Test model zigbee2mqtt_plug
attr zigbee_ZBMINIL2_Test readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT);; $ret->{state}=lc($ret->{state}) if defined $ret->{state};; return $ret }
attr zigbee_ZBMINIL2_Test room MQTT2_DEVICE
attr zigbee_ZBMINIL2_Test setList on:noArg $DEVICETOPIC/set {"state":"ON"}\
  off:noArg $DEVICETOPIC/set {"state":"OFF"}\
  toggle:noArg $DEVICETOPIC/set {"state":"TOGGLE"}
attr zigbee_ZBMINIL2_Test setStateList on off toggle
attr zigbee_ZBMINIL2_Test webCmd on:off:toggle
define FileLog_zigbee_ZBMINIL2_Test FileLog ./log/zigbee_ZBMINIL2_Test-%Y-%m-%d.log zigbee_ZBMINIL2_Test
attr FileLog_zigbee_ZBMINIL2_Test logtype text
attr FileLog_zigbee_ZBMINIL2_Test nrarchive 4
attr FileLog_zigbee_ZBMINIL2_Test room MQTT2_DEVICE

Zum Schuß noch zwei kleine Porblemchen die noch zu Lösen sind:
1. Wie startet Zigbee2MQTT automatisch bei RaspberryPi Neustart?
2. Es ist mir noch nicht gelungen die USB-Ports (Zigbee 3.0 USB Dongle Plus Stick) am laufen zu halten.
   So wie es scheint schläft die USB-Schnittstelle bei Inaktivität ein (USB-Powermanagment on)
   Jede Debian- und Raspberry-Version ist da wohl anders.

Also nochmals an Alle vielen Dank
Gruß Eckhard

F!B,RPi-Fhem,RaspberryMatic,Cuno,Cul,S7-300,LOGO,HMIP,HM,FS20,


betateilchen

Niemand, der verstanden hat, was mqtt ist und wie fhem damit umgeht, braucht diese unsägliche, schwer zu vermittelnde bridge, um z2m und fhem problemlos miteinander arbeiten zu lassen. Und für alle anderen schafft sie einfach noch mehr Fragezeichen anstatt Verständnis der Abläufe.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!