Anbindung von zigbee2mqtt an IP-Symcon.
- 1. Voraussetzungen
- 2. Enthaltene Module
- 3. Installation
- 4. Konfiguration in IP-Symcon
- 5. Changelog
- 6. Spenden
- 7. Lizenz
- mindestens IPS Version 7.0
- MQTT-Broker (interner MQTT-Server von Symcon oder externer z.B. Mosquitto)
- installiertes und lauffähiges zigbee2mqtt
- Zigbee2MQTT Discovery
- Zigbee2MQTT Konfigurator
- Zigbee2MQTT Bridge
- Zigbee2MQTT Gerät
- Zigbee2MQTT Gruppe
Details zu jedem Typ sind direkt in der Dokumentation der jeweiligen Module beschrieben.
Zuerst ist eine funktionierende Zigbee2MQTT Umgebung gemäß der Installationsanleitung von Zigbee2MQTT (Link) einzurichten.
Ein hierfür benötigter MQTT-Broker ist in Symcon verfügbar und muss entsprechend vorher in Symcon als Instanz erstellt werden (Link), sofern er nicht schon vorhanden ist. Ein MQTT-Konfigurator wird für Zigbee2MQTT nicht benötigt!
Die Installation des Zigbee2MQTT Moduls erfolgt anschließend über den Module Store in der Symcon Konsole.
Nach der Installation fragt die Konsole ob eine Zigbee2MQTT-Discovery-Instanz erstellt werden soll.
Weitere Schritte zur Ersteinrichtung sind unter dem Zigbee2MQTT-Discovery-Modul beschrieben.
Bitte diese Migrationsanleitung genau lesen und beachten, ein downgrade auf eine alte Modul Version ist nur mit einem Symcon-Backup möglich!
- 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 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
- 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.
- 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.
Folgendes Script kann in Symcon ausgeführt werden, um veraltete Variablenprofile zu löschen.
$Z2M_Profile = array_filter(IPS_GetVariableProfileList(),function($Profil)
{
return substr($Profil, 0, 4) === 'Z2M.';
});
foreach (IPS_GetVariableList() as $VariableId)
{
$Variable = IPS_GetVariable($VariableId);
$Found = array_search($Variable['VariableProfile'],$Z2M_Profile);
if($Found !== false){
unset($Z2M_Profile[$Found]);
}
}
foreach ($Z2M_Profile as $Profile){
IPS_DeleteVariableProfile($Profile);
echo 'Delete: '.$Profile.PHP_EOL;
}
- 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.
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 |
- 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.
- In Symcon sollte eine Bridge-Instanz eingerichtet sein, damit beim Update automatisch die korrekte Extension in Zigbee2MQTT installiert wird.
Für den fehlerfreien Betrieb des Moduls wird eine Erweiterung (Extension) in Zigbee2MQTT benötigt.
Folgende Varianten zum Einreichten der Erweiterung sind möglich:
1. Über die Bridge-Instanz in Symcon (empfohlen)
2. Über das Z2M Frontend den Inhalt der passenden Datei unter dem Menüpunkt Erweiterungen hinzufügen.
3. Die passende Datei in das der Z2M Version entsprechende Verzeichnis auf dem Rechner, wo Z2M installiert ist ablegen. (Expertenwissen zu Z2M erforderlich)
Extension-Dateien und Pfade innerhalb Z2M:
- Z2M bis Version 1.42
- IPSymconExtension.js
- Z2M Pfad:
data/extension
- Z2M ab Version 2.0
- IPSymconExtension2.js
- Z2M Pfad:
data/external_extensions
Anleitungen zum Einrichten der Erweiterung:
zu 1. Ist in der Dokumentation der Bridge-Instanz beschrieben.
zu 2. Das Frontend von Z2M im Browser öffnen und den Punkt "Erweiterungen" wählen.
Eine neue Extension über den Plus-Button anlegen:
Der Erweiterung einen Namen geben, z.B. symcon.js:
Es öffnet sich ein Fenster für die Code-Eingabe:
Den dort bereits enthaltenen Code bitte komplett löschen.
Anschließend den Inhalt (Code) aus
IPSymconExtension.js für Z2M bis Version 1.42
oder
IPSymconExtension.js für Z2M ab Version 2.0
einfügen und speichern.
Danach sollte Z2M neu gestartet werden:
zu 3. Sollte nur von versierten Usern gemacht werden, da es aufgrund der vielzahl an Systemen unter welchen Z2M laufen kann, keine global gültige Anleitung gibt.
Bitte den einzelnen Modulen entnehmen:
Version 5.0:
- 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:
- Relatives Dimmen der Helligkeit
- Schrittweises Dimmen der Helligkeit
- Relatives Dimmen der Farbtemperatur
- Schrittweises Dimmen der Farbtemperatur
- Ein-/Ausschaltverzögerung
Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert: