Skip to content

Latest commit

 

History

History
163 lines (126 loc) · 6.75 KB

zigbee2mqtt.md

File metadata and controls

163 lines (126 loc) · 6.75 KB

Zigbee2mqtt

Auf github ist ein Zigbee zu MQTT gateway Projekt verfügbar. Diese Software ermöglicht die Verwendung von Zigbee-Geräten ohne die Bridges oder das Gatewayes der Hersteller und ohne dass Daten in die Cloud der Hersteller übertragen werden.
Neben der bereits sehr guten Beschreibung des Autors gibt es hier und hier weitere nützliche Artikel und diesen Forums-Thread.

Notwendige Hardware

Leider kommen die Teile aus China, so dass es bis zu zwei Monaten dauert, bis sie ankommen. Wer es eiliger hat, findet bei ebay-Kleinanzeigen fertig präperierte Sticks und hier für ein paar Euro mehr den Xiaomi Aqara Sensor geliefert aus Deutschland.

Ich werde mit diesem Teil erst mal bis Ende Februar warten, da ich das Flashen selbst machen möchte und die anderen Teile nicht in Deutschland gefunden habe...


Flashen der Firmware auf den CC2531 USB Stick

Vorbereitungen auf dem Mac

Hier die Bescheibung, um das cc-tool zu erstellen:

xcode-select --install
brew install autoconf automake libusb boost pkgconfig libtool
git clone https://github.com/dashesy/cc-tool.git
cd cc-tool
./bootstrap
./configure
make

Flashen der Firmware

Download der Firmware CC2531ZNP-Prod.hex unter https://www.zigbee2mqtt.io/.

Flashen der Firmware:

sudo ./cc-tool -e -w /private/tmp/CC2531_DEFAULT_20190608/CC2531ZNP-Prod.hex

Nun den CC debugger mit dem Downloader cable an den CC2531 USB Sniffer anschließen und den Sniffer und den Debugger per USB an den Rechner anschließen. Das Flashen der neuen Firmware erfolgt mit diesem Kommando:

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

Zigbee2mqtt installieren

Zur Installation bin ich dieser Anleitung gefolgt.

Prüfen, ob node (>V10.x) und npm (>v6.x) mit den benötigten Versionen installiert sind. Falls nicht, diese installieren.

# Checken der node.js- und npm-Versionen und installation von node.js
node --version
npm --version
# Setup Node.js repository
sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

# Install Node.js
sudo apt-get install -y nodejs git make g++ gcc

Download und Installation der zigbee2mqtt Software:

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

# Install dependencies
cd /opt/zigbee2mqtt
npm install

Konfiguration

Mit nano /opt/zigbee2mqtt/data/configuration.yaml die Konfigurationsdatei editieren. Hier den MQTT Server, User, Kennwort und den Port prüfen bzw. eintragen.
ls -l /dev/serial/by-id zeigt an, als welches Device der Sniffer erkannt wird. Bei mir war dies /dev/ttyACM0. Es kam allerdings vor, dass dies nach dem booten sporadisch auch /dev/ttyACM01 gewesen ist, so dass ich lieber gleich die Ausgabe von ls -l /dev/serial/by-id nutze.

Ich verwende derzeit den im Home Assistant enthaltenen MQTT Broker, so dass die Datei wie folgt ausschaut:

# 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: homeassistant
  password: myPassword

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  port: /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00193648CA-if00

Bevor Zigbee2mqtt gestartet wird, sollte der mqtt-Broker (siehe mqtt.md) laufen.

Zigbee2mqtt starten

cd /opt/zigbee2mqtt
npm start

Stoppen mit <CTRL + C>.

Devices pairen

Xiaomi Aqara pairen

Dazu den Knopf am Sensor 5 Sekunden lang gedrückt halten.

In der Shell erscheint die Nummer des Devices.

In /opt/zigbee2mqtt/data/configuration.yaml das Device ergänzen:

devices:
  '0x00158d0002b5196f':
    friendly_name: 'Temperatur Wohnzimmer'
    retain: false

.homeassistant/configuration.yaml:

mqtt:
  discovery: true
  discovery_prefix: homeassistant

Im Web-GUI des HA findet man bei Einstellungen / Integrationen / MQTT die ersten Werte...

Autostart von zigbee2mqtt

sudo nano /etc/systemd/system/zigbee2mqtt.service

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/local/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Start zigbee2mqtt

sudo systemctl start zigbee2mqtt sudo systemctl enable zigbee2mqtt.service

Show status

systemctl status zigbee2mqtt.service

View the log of zigbee2mqtt

sudo journalctl -u zigbee2mqtt.service -f

https://community.home-assistant.io/t/zigbee2mqtt-lovelace-custom-card-to-show-zigbee2mqtt-network-map/132088