In dem Artikel Zigbee – Einen Sonoff zigbee 3.0 USB Dongle Plus für zigbee2mqtt vorbereiten habe ich beschrieben wie man einen Zigbee Stick von Sonoff mit der Firmware für zigbee2mqtt beschreiben kann.
Eine Alternative zu diesem Zigbee-Stick ist der Electrolama zig-a-zig-ah! (zzh!) Coordinator USB-Stick von Electrolama
Wie das Flashen bei diesem Stick funktioniert habe ich im folgenden Artikel beschrieben
Sicherheitshinweise
Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/
Affiliatelinks/Werbelinks
Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂
Voraussetzungen
Hilfreiche Artikel:
Bevor ihr mit diesem Artikel startet solltet ihr einen RaspberryPi soweit vorbereitet haben, dass dieser über das Netzwerk erreichbar und per SSH Steuerbar ist. Außerdem sollte natürlich zigbee2mqtt bereits installiert sein.
Die folgenden Artikel beschreiben was zu tun ist um den RaspberryPi soweit vorzubereiten.
- Zigbee – Installation von zigbee2mqtt auf dem Raspberry Pi
- Zigbee – Geräte, Sensoren und Aktoren an zigbee2mqtt anmelden
- Zigbee – Administration von Zigbee2mqtt über das Dashboard
In der folgenden Listen findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.
Benötigtes Werkzeug:
Benötigtes Material:
Number | Link |
---|---|
1x | https://electrolama.com/projects/zig-a-zig-ah/ |
1x | USB Verlängerungskabel Bei Amazon kaufen |
1x | Raspberry Pi Bei Amazon kaufen |
1x | Raspberry Pi Netzteil Bei Amazon kaufen |
1x | Raspberry Pi Gehäuse Bei Amazon kaufen |
1x | Micro SD Karte 64GB Bei Amazon kaufen |
Software zum flashen herunterladen
Damit Ihr den Zigbee USB-Stick mit der passenden Firmware flashen könnt müsst Ihr zunächst die passende Software herunterladen. Diese hilft später dabei die eigentliche Firmware auf den USB-Stick zu kopieren.
Öffnet dazu die Webseite von Texas Instruments (dies ist der Hersteller des verwendeten ICs und der dazugehörigen Flash-Software) unter folgendem Link.
Klickt dann dort auf den Download Button…
…und auf der folgenden Seite auf den
“Download options”-Button
im Abschnitt
“FLASH-PROGRAMMER-2”.
In dem sich öffnenden Fenster solltet Ihr dann die Option
“Windows Installer for SmartRF Flash Programmer”
auswählen.
An dieser Stelle müsst Ihr Euch mit einem TI-Account verifizieren.
Dieser Account kann kostenlos erstellt werden. Folgt dazu einfach dem Link unter
“Register now”.
Danach solltet Ihr zur gezeigten Ansicht weitergeleitet werden. Hier könnt Ihr durch einen weiteren klick auf den gezeigten Downloadbutton…
… den Download der Software starten.
Die heruntergeladene Software müsst Ihr nun noch installieren.
Wie man bei der Installation eines Programms unter Windows vorgehen kann habe ich in dem folgenden Artikel beschrieben.
Während der Installation kann es vorkommen, dass das Gezeigte Fenster angezeigt wird. Dies ist lediglich ein Hinweis, dass zusätzliche Treiber installiert werden und kann mit einen Klick auf “Installieren” bestätigt werden.
Nachdem der Installationsvorgang abgeschlossen ist, könnt Ihr die Software direkt starten.
Korrekte Firmware herunterladen
Bevor es aber mit dem Flashvorgang losgehen kann, müsst Ihr zunächst noch die korrekte Firmware Version herunterladen. Diese ist von dem verwendeten Chip und der gewünschten Konfiguration abhängig. In den meisten Fällen könnt Ihr jedoch die untern verlinkte Firmware verwenden.
Unter dem folgenden Link findet Ihr eine Übersicht der verfügbaren Firmware Versionen und der zugehörigen Hardware.
Die jeweils aktuelle Firmware Version ist hier auch verlinkt.
Alternativ ist unter folgendem Link die aktuelle Firmware Version verlinkt.
Bootloader des USB-Sticks aktivieren
Nun ist nur noch ein letzter Schritt notwendig um den USB-Stick auf den Flashvorgang vorzubereiten. Damit dieser in mit der neuen Firmware bestückt werden kann, müsst Ihr den Bootloader aktivieren. Dies ist ein kleiner Programmbestandteil der aktuell auf dem USB-Stick installieren Firmware, welcher dabei hilft die neue Firmware auf den USB-Stick zu übertragen.
Um den Bootloader zu aktivieren müsst Ihr die kleine Taste auf der Platine des Sticks gedrückt halten und dann mit gedrückter Taste in den USB-Port einstecken.
Ihr solltet also pätestens jetzt den Zigbee USB-Stick an Euren Computer anschließen.
Navigiert also in das oben verlinkte GIT repository und kopiert Euch das python-Skript uartLog.py auf Euren Computer.
Wie Ihr Dateien aus einem GIT repository herunterladen könnt habe ich anhand eines Beispiels in dem folgenden Artikel beschrieben.
Nachdem Ihr das Skript heruntergeladen habt könnt Ihr es starten. Öffnet dazu eine Eingabeaufforderung, navigiert zum Speicherort des Skripts und führt den folgenden Befehl aus.
python uartLog.py
Ggf. müsst Ihr zum erfolgreichen Start die pySerial Bibliothek installieren. Dazu müsst Ihr den folgenden Befehl ausführen.
pip install pyserial
Das Skript führt nun ein paar einfache Schritte aus und listet dann alle verbundenen COM-Ports auf. Hier kann es passieren, dass mehr als ein COM-Port gefunden werden. In diesem Fall müsst Ihr den COM-Port der zu Eurem Zigbee USB-Stick gehört angeben.
In diesem Beispiel erkennt Ihr den korrekten COM Port an der Zeile die mit dem Eintrag
“Silicon Labs CP210x USB to UART Bridge”
also COM14
Sollten bei Euch mehrere Geräte mit diesem Eintrag vorhanden sein ist es am einfachsten wenn Ihr alle anderen Geräte zunächst vom Computer trennt, das Skript neu startet und dann fortfahrt.
In jedem Fall müsst Ihr aber die Nummer des zugehörigen COM Ports eingeben und mit Enter bestätigen.
In dem hier gezeigten Beispiel also “14” für COM14.
Das Skript führt dann alle notwendigen Schritte aus um den Bootloader auf Eurem USB-Stick zu aktivieren.
Wichtig: Ab jetzt dürft Ihr den USB-Stick nicht mehr von Eurem Computer trennen. Falls doch müsst Ihr das Skript erneut ausführen um den Bootloader wieder zu aktivieren.
Flashvorgang starten
Nun könnt Ihr (endlich) mit dem Flashvorgang starten. Startet dazu – falls noch nicht geschehen – die zuvor Installierte Software
- SmartRF Flash Programmer 2
In der gezeigten Ansicht solltet Ihr in der oberen linken Ecke wieder Euren Zigbee USB-Stick auswählen. Ihr erkennt diesen wieder an dem Eintrag
“Silicon Labs CP210x USB to UART Bridge”
Wählt hier dann den Eintrag “Unknown” darunter aus.
Sollt Euer USB-Stick dort nicht erkannt werden müsst ihr eventuell zunächst den passenden Treiber installieren. Den Treiber findet Ihr unter folgendem Link. (Danke an Christopher für den Hinweis. 🙂 )
Danach solltet Ihr den auf dem Zigbee USB-Stick verwendeten IC auswählen. In diesem Fall ist das der
CC2652P
Wählt den entsprechenden Eintrag in der Liste unten Links aus.
Dieser Schritt ist optional:
Falls Ihr von einem anderen Zigbee Stick migriert und direkt eine bekannte MAC Adresse auf den USB-Stick übertragen wollt, müsst Ihr in den Reiter
MAC Address
wechseln.
Dieser Schritt ist optional:
Tragt die Gewünschte MAC Adresse dann in das gezeigte Textfeld ein.
Weitere Infos dazu findet Ihr auch in dem Artikel
Die zu flashende Firmware könnt Ihr dann durch einen Klick auf den Button
Browse
auswählen.
Die Firmware habt ihr in einem der vorherigen Schritte heruntergeladen.
Der Pfad zu der ausgewählten Firmware wird dann in dem markierten Textfeld angezeigt.
Nun könnt Ihr den Flashvorgang starten.
Setzt dazu die Häkchen wie gezeigt und klickt auf den markierten Pfeil-Button.
Der Flashvorgang startet nun und dessen Fortschritt wird im unteren Bereich angezeigt.
Sobald dieser erfolgreich abgeschlossen ist wird hier die Meldung
Success!
angezeigt.
Konfigurationsdatei von zigbee2mqtt aktualisieren
Damit zigbee2mqtt weiß unter welcher Adresse es den neuen Zigbee USB-Stick ansprechen kann müsst Ihr nun noch die Konfigurationsdatei von zigbee2mqtt korrekt konfigurieren.
Damit dies funktioniert solltet Ihr jetzt Euren Zigbee USB-Stick mit dem Raspberry Pi verbinden auf dem zigbee2mqtt installiert ist.
Mit dem folgenden Befehl könnt Ihr nun die angeschlossenen Zigbee USB-Sticks auflisten.
ls /dev/serial/by-id/
In dem gezeigten Beispiel ist lediglich ein USB-Stick verbunden, weshalb hier auch nur ein Eintrag angezeigt wird.
Falls dort mehrere Einträge vorhanden sind solltet Ihr den Eintrag mit dem Identifikationsstring für den “zzh Stick auswählen” auswählen.
Kopiert hier die komplette Zeile also:
- /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
und speichert sie zum Beispiel in einer Textdatei um sie später in die Konfigurationsdatei einfügen zu können.
Öffnet nun die Konfigurationsdatei von zigbee2mqtt durch Eingabe des folgenden Befehls.
sudo nano /opt/zigbee2mqtt/data/configuration.yaml
Löscht nun ggf. einen bereits vorhandenen Eintrag an der markierten Stelle im Abschnitt “port:”.
Die zuvor kopierte Adresse zu Eurem Zigbee USB-Stick müsst Ihr nun wie im Beispiel zu sehen in die Konfigurationsdatei einfügen.
Achtet dabei auf die korrekte Einrückung und dass unter der Kategorie “port:” nur ein Eintrag vorhanden ist.
Speichert die Änderungen in der Konfigurationsdatei nun durch
- STRG-X, Y und Enter
zigbee2mqtt neu starten um die Änderungen zu übernehmen
Um die Änderungen der Konfigurationsdatei zu übernehmen solltet Ihr nun noch Eure zigbee2mqtt Installation neu starten.
Dazu müsst ihr lediglich den folgenden Befehl ausführen.
sudo systemctl restart zigbee2mqtt
Zigbee2mqtt sollte nun neu starten und der konfigurierte Zigbee USB-Stick verfügbar sein. Wie Ihr nun Zigbee-Sensoren oder Aktoren hinzufügen und zigbee2mqtt über ein einfaches Dashboard administrieren könnt habe ich in den folgenden Artikeln beschrieben.
- Zigbee – Geräte, Sensoren und Aktoren an zigbee2mqtt anmelden
- Zigbee – Administration von Zigbee2mqtt über das Dashboard
In der folgenden Kategorie habe ich außerdem weitere Zigbee-Geräte aufgelistet welche sich mit dem dort angebotenen NodeRed code ansteuern bzw. auslesen lassen.
Weitere Artikel zum Thema
Weitere Artikel zum Thema Zigbee bzw. zigbee2mqtt habe ich in der folgenden Kategorie zusammengefasst. Dort findet Ihr auch Artikel zu diversen Zigbee Geräten und wie diese aus NodeRed angesteuert werden können.
Externe Links:
- https://www.zigbee2mqtt.io/guide/adapters/#flashing-cc1352-cc2652-cc2538-based-adapters
- https://www.zigbee2mqtt.io/guide/adapters/#recommended
Viel Spaß mit dem Projekt
Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂
P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂