Eigenes ZigBee-Gateway bauen

Wer kein Xiaomi Gateway möchte oder auch Philips Hue und IKEA TRÅDFRI in sein SmartHome integrieren möchte aber auf drei Gateways verzichten möchte, der kann sich auf Basis eines Raspberry Pi 3 ein eigenes ZigBee-Gateway bauen.

Was man dazu benötigt sind folgende Dinge:

Schritt 1: Raspbian flashen

Als erstes muss Raspbian auf die MicroSD-Karte geflasht werden. Raspbian ist ein Linux-Betriebssystem auf Basis von Debian, welches für den Raspberry vorkonfiguriert wurde. Dazu laden wir erst einmal das Image von der Webseite herunter. Anschließend laden wir Etcher herunter und installieren es. Etcher ist eine Software zum Flashen von Images auf SD-Karten. Im nächsten Schritt verbinden wir unsere MicroSD-Karte mit dem PC und starten Etcher. Dort wählen wir das Raspbian Image (.img oder .zip Datei) und die SD-Karte aus auf die das Image geflasht werden soll. Zu guter Letzt noch auch “Flash!” klicken und das wars. Etcher schreibt nun das Image auf die MicroSD-Karte.

Schritt 2: Inbetriebnahme

Nachdem Raspbian geflasht wurde braucht man die MicroSD-Karte nur noch in den MicroSD-Slot des Raspberry einzuschieben und den Raspberry anzuschließen. Es empfiehlt sich den Raspberry an einen Monitor oder Fernseher (mittels HDMI) sowie Maus und Tastatur anzuschließen. Nachdem der Raspberry an den Strom angeschlossen wurde fängt er sofort an zu booten. Sobald er hochgefahren ist durchläuft man beim erstmaligen Booten einen Installations-Wizzard. Anschließend kann man sich auf dem System anmelden.

Schritt 3: CC2531 flashen

Um den CC2531-Stick nutzen zu können müssen wir ersteinmal eine neue Firmware aufspielen. Dazu brauchenwir die Software “SmartRF Flash programmer” (nicht V2). Um die Software herunterladen zu können muss bei Texas Instruments erst ein Account erstellt werden. Die Software und der Account sind kostenlos.

Unter Windows müssen noch die CC-Debugger Treiber installiert werden. Bevor wir weiter machen müssen wir sicherstellen, dass der Treiber korrekt installiert ist.

Als nächstes verbinden wir den CC-Debugger mit dem Downloader-Kabel und das Downloader-Kabel mit dem CC2531. Sowohl der CC-Debugger als auch der CC2531 müssen jetzt per USB an den PC angeschlossen werden. Sollte die LED vom CC-Debugger rot leuchten drücken wir auf den Reset-Button und die LED müsste grün werden. Sollte es dennoch Probleme geben, gibt es in dem CC-Debugger User Guide ein Troubleshooting Kapitel.

Jetzt müssen wir nur noch die passende Firmware herunterladen und mit dem SmartRF Flash Programmer flashen.

Unter Linux/MacOS ist das Ganze etwas einfacher. Als erstes müssen wir die Abhängigkeiten mit dem jeweiligen Paketmanager installieren:

  • Ubuntu/Debian: libusb-1.0, libboost-all-dev
  • Fedora: boost-devel, libusb1-devel
  • MacOS: libusb boost pkgconfig

Anschließend klonen wir das CC-Tool Repository und kompilieren die Software:

git clone https://github.com/dashesy/cc-tool.git
cd cc-tool
./configure
make

Jetzt nur noch die Firmware herunterladen und flashen.

sudo ./cc-tool -e -w CC2531ZNP-Prod.hex

Schritt 4: nodejs

Auf unserem Raspberry müssen wir jetzt noch nodejs installieren um die zigbee2mqtt Software nutzen zu können. Hierfür nutzen wir nodejs in der Version 8.x. Dazu müssen wir aber erst eine neue Paketquelle hinzufügen und anschließend nodejs installieren:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Jetzt überprüfen wir noch ob die korrekten Versionen installiert sind:

node --version # Sollte > 8.X.X sein
npm --version # Sollte > 5.X.X sein

Schritt 5: zigbee2mqtt

zigbee2mqtt ist sehr simpel installiert. Hierzu klonen wir das Git-Repository in den /opt-Ordner und installieren die Abhängigkeiten per npm und fertig.

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

cd /opt/zigbee2mqtt
npm install

Schritt 6: zigbee2mqtt konfigurieren

Wir müssen jetzt zigbee2mqtt noch mitteilen wie es unseren MQTT-Broker erreichen kann und wie das Topik heißen soll. Dazu öffnen wir die Datei configuration.yaml mit dem Editor unserer Wahl z.B.:

vim /opt/zigbee2mqtt/data/configuration.yaml

Der Inhalt der Datei muss dann an die eigenen Anforderungen angepasst werden. Standardmäßig sieht der Inhalt der Datei wie folgt aus:

# Home Assistant integration (MQTT discovery)
homeassistant: false

# allow new devices to join
permit_join: true

# MQTT settings
mqtt:
# MQTT base topic for zigbee2mqtt MQTT messages
base_topic: zigbee2mqtt
# MQTT server URL
server: 'mqtt://localhost'
# MQTT server authentication, uncomment if required:
# user: my_user
# password: my_password

# Serial settings
serial:
# Location of CC2531 USB sniffer
port: /dev/ttyACM0

Schritt 7: ZigBee Geräte am ZigBee-Gateway anlernen

Um die ZigBee-Geräte nutzen zu können muss ein Pairing stattfinden. Das heißt, dass sowohl der Stick als auch das ZigBee-Gerät in den Pairing-Zustand versetzt werden müssen. Im Wiki von zigbee2mqtt findet sich eine Anleitung wie man die Geräte der verschiedenen Hersteller anlernen kann.

 

Jetzt sind wir soweit, dass wir die ZigBee-Geräte abfragen und steuern können indem wir die ZigBee-Signale in MQTT umwandeln und zurück. Zum Beispiel die Aqara Tür und Fenster Sensoren oder den Aqara Cube. Für MQTT gibt es Schnittstellen zu den gängigsten OpenSource SmartHome Diensten wie ioBroker, Home-Assistant und openHAB2.

4 Antworten auf „Eigenes ZigBee-Gateway bauen“

    1. Du kannst folgendes versuchen:

      - alias: 'Cube'
      __trigger:
      ____platform: mqtt
      ____topic: 'zigbee/aqara_cube'
      __condition:
      ____condition: template
      ____value_template: "{{ 'fall' == trigger.payload_json.action }}"

      Also direkt über MQTT den Status abfragen und in der condition dann auf die Action überprüfen.

      Die Unterstriche musst Du durch Leerzeichen ersetzten. Konnte das nicht anderes posten, da die Leerzeichen bei den Kommentaren rausgelöscht wurden.
      Hoffe das hilft Dir weiter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.