Hier jetzt die versprochene offene Beta der neuen Modul Version 5.x für die Zigbee2MQTT Integration von @KaiS , @Burki24 und @Nall-chan.
Vor dem Update des Moduls lest bitte die folgende Migrations-Anleitung.
Neuinstallation können direkt gemäß der Dokumentation #Neuinstallation erfolgen.
Update von Modul Version 4.5 (aktuelle Stable aus dem Store) auf 5.x (aktuelle Beta aus dem Store)
Achtung
Bitte diese Migrationsanleitung genau lesen und beachten, ein downgrade auf eine alte Modul Version ist nur mit einem Symcon-Backup möglich!
I. Vorbereitung
Bevor das Update über den Modul-Store durchgeführt werden kann, ist sicherzustellen das zuvor mindestens die Version 4.6 der Extension in Zigbee2MQTT installiert ist.
Diese wird automatisch ab Modul-Version 4.5 durch die Bridge-Instanz installiert, sofern diese Instanz angelegt wurde.
Alternativ muss die benötigte Extension in Zigbee2MQTT manuell ein Update auf Version 4.6 erhalten.
Ohne aktuelle Extension wird das Modul Update mit Fehlermeldungen durchgeführt, welche zu unerwarteten Fehlverhalten führen kann
Das bedeutet auch, dass das Modul-Update vor dem Update der Zigbee2MQTT Version auf 2.0 erfolgen muss.
II. Modul-Update
Während des Updates wird empfohlen das Fenster Meldungen geöffnet zu lassen um eventuelle Fehlermeldungen nachvollziehen zu können.
Das Update anschließend über den Modul-Store durchführen.
geänderte Variablen-Profile
Die Variablen welche bei Helligkeit vorher einen Wertebereich von 0 - 254 hatten, werden auf das Profil ~Intensity.100 angepasst. Das Modul rechnet ab sofort automatisch den Wertebereich aus Z2M in Prozent um.
Entsprechende Aktion auf oder Auswertungen des Rohwertes der Variablen sind zu prüfen und gglfs. anzupassen.
geänderte Variablen-Idents
Die Version 5.0 ändert beim Update alle Ident aller Variablen welche zu einer ZigbeeMQTT-Instanz gehören.
Diese Änderung betrifft nur User welche mit Scripten auf Variablen per Ident (z.B. Z2M_Brightness) und nicht per ObjektID (z.B. 12345) zugreifen.
Die Variablen selbst bleiben dabei erhalten, so das sich hier keine ObjektIDs ändern, und entsprechend auch keine Änderungen an Ereignissen, Links, Automationen etc… ergeben (Außnahmen siehe nächster Punkt).
geänderte Variablentypen
Folgende Liste enthält alle Variablen wo zuvor eine Variable vom falschen Typ genutzt wurde. Diese werden nicht migriert, sondern bleiben erhalten. Es werden die neuen Variablen zusätzlich angelegt, so das hier anschließend manuell z.B. Links oder Ereignisse, angepasst werden müssen.
Name
Ident Alt
Type Alt
Ident Neu
Typ neu
Aktion Übergangszeit
Z2M_ActionTransTime
int
action_transition_time
float
Aktion Transaktion
Z2M_ActionTransaction
float
action_transaction
int
X Achse
Z2M_XAxis
float
x_axis
int
Y Achse
Z2M_YAxis
float
y_axis
int
Z Achse
Z2M_ZAxis
float
Z_axis
int
III. Zigbee2MQTT Version
Ein Update auf Zigbee2MQTT Version 2.0 oder neuer kann nach dem Update des Moduls durchgeführt werden.
Hierzu sind die Anleitungen unter zigbee2mqtt.io zu beachten.
Ich habe schon Z2M Version 2.0 installiert, muss ich jetzt ein Downgrade machen?
Nein, aber vor dem Update des Moduls muss per Hand die passende Extension in Z2M installiert werden. Diese ist für Z2M 2.x hier zu finden → Extension für Z2M 2.x
Changelog:
Kompatibilität mit Zigbee2MQTT Version 2.0 hergestellt
Geräte erkennen automatisch die Features und Exposes und erstellen die benötigten Variablen mit den entsprechenden Profilen eigenständig
Somit keine missing exposes Debugs mehr nötig!
Nutzung von Standard-Symcon Profilen, soweit möglich
Presets und Effekte als Variablen verfügbar
Geräte speichern die IEEE um umbenannte Geräte (= geändertes Topic) zu erkennen
Z2M Prefix bei VariablenIdents entfernt
Konfigurator übernimmt die MQTT Topic-Struktur beim Anlegen von Geräten als Kategorien
Konfigurator erkennt fehlende Bridge-Instanz
Konfigurator erkennt falsche Topics (anhand der IEEE Adresse der Geräte)
Bridge installiert die Extension nicht mehrfach
Bridge installiert automatisch die benötigte Extension
Komplettes Code-Rework für Geräte und Gruppen von Bruki24
Diverse Aktionen für die Instanzen der Geräte und Gruppen:
Folgende Liste enthält alle Variablen wo zuvor eine Variable vom falschen Typ genutzt wurde. Diese werden nicht migriert, sondern bleiben erhalten. Es werden die neuen Variablen zusätzlich angelegt, so das hier anschließend manuell z.B. Links oder Ereignisse, angepasst werden müssen.
Wir wollen so viele Symcon-eigene Profile nutzen, wie möglich. Von daher bitte auch darauf ein Augenmerk legen, ob eine Variable mit einem standard-Profile versehen werden sollte und hier melden.
DANKE!
Moin,
ich hatte dank meiner Dummheit leichtes Startproblem. Im Prinzip läuft es jetzt wohl größenteils.
Getestet hatte ich beide Richtungen indem ich eine Steckdose geschaltet habe und ein Netzwerkgerät dran hing das ich mit dem Device Monitor überwachte. Auch eine Lampe konnte ich schalten.
Probleme die ich habe:
Konfigurator startet nicht
Warning: Undefined array key "friendly_name" in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 421
Warning: Undefined array key "friendly_name" in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 435
Fatal error: Uncaught TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php:435
Stack trace:
#0 /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php(435): explode('/', NULL)
#1 /-(3): Zigbee2MQTTConfigurator->GetConfigurationForm()
#2 {main}
thrown in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 435 (Code: -32603)
Bei einer Steckdosenleiste von UseLink wurden die Idents statel1…5 nicht in state_l1…5 geändert sondern neue Instanzen angelegt.
Meine Air Quality Sensoren melden sich zwar mit der LinkQuality aber die Daten kommen nicht
Zusätzlich bisher:
Alten aquara BWMs liefern kein Beleuchtungsstärke Lux (Ident illuminace_lux) mehr. Lux wird anscheinen gar nicht mehr aktualisiert. Bei den 5GHz Präsenszsensoren wird so gar keine Lichtstärke mehr geliefert.
edit: Für mich habe ich ein Script geschrieben das statel1…5 komplett in state_l1…5 umändert und falls vorhanden die neuen state_l1…5 löscht. Falls jemand Interesse hat melden.
Beim Konfigurator habe ich noch gar keine Idee… Gibt es eine Fehlermeldung in Z2M wenn du ihn in Symcon öffnest? Es betrifft bei dir die Gruppen. Hat da eine keinen Namen? (geht das überhaupt ohne Namen?)
Ist ein Bug der Migration. Dürfte bei BrightnessL1 / L2 auch so sein.
Danke fürs finden.
Ist ein Problem mit dem VaribalenProfil für ppm. Lösung folgt. Da muss @Burki24 noch mal über meinen Fix schauen.
Gibt es da was im Meldungslog? Sonst gerne ein Debug der Instanz hier einstellen. Achtung, Limit von 100 Zeilen vorher abschalten und warten bis Werte reinkommen mit (AppendVariableTypes :: Line 969 :: Eingehendes Payload
Isch habe gar keine Gruppe. In Z2M ist aber die Gruppe „default_bind_group“ mit ID 901 angelegt aber ohne Mitglieder oder Szenen.
Ist nicht so tragisch außer das mein Log ziemlich aufgebläht wird.
Hat sich geklärt. Bei dem Präsenzsensor (5GHz und bei einem batteriebetriebenen Präsenzsensor) wurden die Geräteinformationen bei der Migration nicht abgerufen deswegen gab es keine illuminace Variable. Dazu aber noch was. Bei Sensoren die schon beide Variablen besitzen, also mit/ohne _Lux, wurde das Variablenprofil nicht auf ~illuminace gesetzt so das kein lx als Einheit hinter den Werten stand. Auch hier habe ich mir ein Script geschrieben das die alten Lux-Variablen einen neuen Ident verpasst damit meine Steuerung gehen sollte.
Konnte Konfigurationsform nicht laden
Warning: Undefined array key "friendly_name" in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 421
Warning: Undefined array key "friendly_name" in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 435
Fatal error: Uncaught TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php:435
Stack trace:
#0 /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php(435): explode('/', NULL)
#1 /-(3): Zigbee2MQTTConfigurator->GetConfigurationForm()
#2 {main}
thrown in /var/lib/symcon/modules/.store/info.schnittcher.ips.zigbee2mqtt/Configurator/module.php on line 435 (Code: -32603)
Erweiterung Version 5.01
Version 2.0.0-dev
im z2m log :
info 2025-01-16 16:46:11z2m: Symcon: lists/request/getDevices
info 2025-01-16 16:46:11z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/SymconExtension/lists/response/getDevices', payload '{"list":[{"ieeeAddr":"0xe0798dfffeb2c55c","type":"Coordinator","networkAddress":0,"model":"Unknown Model","vendor":"Unknown Vendor","description":"No description","friendly_name":"Coordinator"},{"ieeeAddr":"0x000b57fffea391d5","type":"Router","networkAddress":21596,"model":"ICPSHC24-30EU-IL-1/ICPSHC24-10EU- usw...................................
info 2025-01-16 16:46:11z2m: Symcon: lists/request/getGroups
info 2025-01-16 16:46:11z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/SymconExtension/lists/response/getGroups', payload '{"list":[{"devices":[],"ID":901},{"devices":[],"friendly_name":"kueche","ID":902},{"devices":["0x000d6ffffe7c27a5"],"friendly_name":"Ikea Kueche","ID":65289}],"transaction":7622}'
Die habe ich z.b. gar nicht.
Ich glaube ich setze nachher mal eine ganz alte Version frisch auf und schau mal wo das her kommt.
Wenn ihr diese Gruppe nicht braucht; ist der Fehler weg wenn ihr sie löscht?
Michael
Ist hier auch so Ralf,
901 scheint ne Standard Gruppe zu sein.
Hab alles ander gelöscht, geht immer noch nicht.
Bis auf den Zigbee2MQTT Konfigurator läuft ja alles, also halb so wild.
Ich such mal weiter, wnn Zeit ist.