Zum Inhalt

Setup cod.m ZigBee Coordinator (CZC) mit zigbee2mqtt#

Grundlagen der Konfiguration bitte ensprechend der Dokumentation von zigbee2mqtt vornehmen.

Dateien#

Wir interessieren uns für die "Adapter settings", die genauso wie die Grundkonfiguration in der Datei data/configuration.yaml zu finden sind.

Tip

Zeilen die mit # beginnen werden in .yaml-Dateien als Kommentare verstanden und ignoriert.

configuration.yaml (Beispiel)
# 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

Konfiguration#

Zuerst natürlich zigbee2mqtt beenden, falls es noch läuft. In das Installationsverzeichnis von zigbee2mqtt (/opt/zigbee2mqtt/) wechseln und dort mit nano data/configuration.yaml die Konfigurationsdatei editieren.

Info

Bei .yaml-Dateien zwingend auf die Einrückung (Leerzeichen am Anfang der Zeile) achten.

IPV4#

In der Datei dann unter den Punkt serial den port mit tcp://xx.xx.xx.xx:6638 konfigurieren. xx.xx.xx.xx natürlich durch die ensprechende echte IP-Adresse des Coordinators ersetzen.

configurations.yaml (Auszug)
serial:
  port: tcp://xx.xx.xx.xx:6638

Hostname#

Da jeder lokale Router bei der DHCP-Vergabe typischerweise auch eine Hosteintrag vornimmt, kann man natürlich auch den Hostnamen der lokalen Domäne nutzen. Dadurch spart man sich zum Beispiel die DHCP-Adressreservierung oder die vergabe einer festen IP.

configurations.yaml (Auszug)
1
2
3
4
5
6
serial:
  port: tcp://czc-XXXX.fritz.box:6638

# Alternativ über zeroconf
serial:
  port: tcp://czc-XXXX.local:6638

Achtung

Jeder cod.m ZigBee Coordinator hat einen eindeutigen Hostnamen. Das XXXX ist also entsprechend je Coordinator unterschiedlich.

mDNS#

Alternativ kann man den Coordinator auch per mDNS ansprechen:

configurations.yaml (Auszug)
serial:
  port: mdns://czc

Achtung

Bei Verwendung von mDNS präsentiert sicher jeder Coordinator mit dem selben Namen. Wenn man mehr als einen Coordinator im selben Netz betreibt, sollte man diese manuell konfigurieren. (Siehe oben)

Bei Verwendung von mDNS findet man folgende Zeilen beim Start von zigbee2mqtt im Log:

Zigbee2MQTT:info  2024-04-12 12:05:32: Starting mdns discovery for coordinator: czc
Zigbee2MQTT:info  2024-04-12 12:05:32: Coordinator Ip: 192.168.xx.xx
Zigbee2MQTT:info  2024-04-12 12:05:32: Coordinator Port: 6638
Zigbee2MQTT:info  2024-04-12 12:05:32: Coordinator Radio: zstack
Zigbee2MQTT:info  2024-04-12 12:05:32: Coordinator Baud: 115200

Abschluss#

Eine fertige configuration.yaml könnte also so aussehen:

configuration.yaml (Beispiel)
1
2
3
4
5
6
7
8
homeassistant: true
permit_join: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost
frontend: true
serial:
  port: tcp://192.168.0.42:6638

Die Datei mit STRG-x, dann y und danach mit Eingabe speichern.Anschließend zigbee2mqtt starten.

Beim Start kann man im Log anhand der Zeile Coordinator firmware version prüfen, dass der ZigBee Coordinator erfolgreich verbunden wurde.

Beispielausgabe zigbee2mqtt Start
Zigbee2MQTT:info  2024-04-10 13:44:56: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2024-04-10.13-44-56' filename: log.txt
Zigbee2MQTT:info  2024-04-10 13:44:56: Starting Zigbee2MQTT version 1.36.1 (commit #ffc2ff1d)
Zigbee2MQTT:info  2024-04-10 13:44:56: Starting zigbee-herdsman (0.40.3)
Zigbee2MQTT:info  2024-04-10 13:44:59: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2024-04-10 13:44:59: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20230507,"transportrev":2},"type":"zStack3x0"}'
...