Zigbee2MQTT mit Sonoff Bridge

Ich komme mit dem Z2MQTT nicht weiter … habe eigentlich alles installiert und npm audit fix endet mit 0 Problemen. Leider klappt der Start nicht:

C:\Program Files\Zigbee2MQTT>npm start

> zigbee2mqtt@1.22.2 start
> node index.js

Building Zigbee2MQTT... (initial build), finished
Zigbee2MQTT:info  2022-01-15 11:27:20: Logging to console and directory: 'C:\Program Files\Zigbee2MQTT\data\log\2022-01-15.11-27-18' filename: log.txt
Zigbee2MQTT:info  2022-01-15 11:27:20: Starting Zigbee2MQTT version 1.22.2 (commit #unknown)
Zigbee2MQTT:info  2022-01-15 11:27:20: Starting zigbee-herdsman (0.13.188)
Zigbee2MQTT:error 2022-01-15 11:27:39: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2022-01-15 11:27:39: Failed to start zigbee
Zigbee2MQTT:error 2022-01-15 11:27:39: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2022-01-15 11:27:39: Exiting...
Zigbee2MQTT:error 2022-01-15 11:27:39: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.start (C:\Program Files\Zigbee2MQTT\node_modules\zigbee-herdsman\src\adapter\z-stack\adapter\zStackAdapter.ts:102:27)
    at Controller.start (C:\Program Files\Zigbee2MQTT\node_modules\zigbee-herdsman\src\controller\controller.ts:123:29)
    at Zigbee.start (C:\Program Files\Zigbee2MQTT\lib\zigbee.ts:58:27)
    at Controller.start (C:\Program Files\Zigbee2MQTT\lib\controller.ts:100:27)
    at start (C:\Program Files\Zigbee2MQTT\index.js:97:5)

Die Config sieht so 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: '10.1.3.251:1883'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

# Serial settings
serial:
  # Location of CC2531 USB sniffer
  #port: /dev/ttyACM0
  port: 'tcp://10.1.3.151:8888'

ähm… ich glaube, jetzt gehört das in den Z2MQTT-Thread
@Kai: Verschiebst du das bitte ?

Fehlermeldung? Mach mal nen Screenshot!

hab’s jetzt doch zum Laufen bekommen … User-Error; im Config hat der Adapter: ezsp gefehlt. im Moment kommt noch folgende Fehlermeldung

Zigbee2MQTT:info  2022-01-15 17:03:41: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"zigbee2mqtt/config/devices"},"type":"entity_not_found"}'
Zigbee2MQTT:error 2022-01-15 17:03:41: Entity 'zigbee2mqtt/config/devices' is unknown

Was für mich auch noch offen ist, dass Z2M wohl keine zwei Adapter verwalten kann. Ich habe derzeit 2 Sonoffs über Z2T laufen, was aufgrund der Funksituation erforderlich ist.

Moin,

also es ist richtig, dass z2m keine zwei Koordinatoren verarbeiten kann. Du müsstest also für jeden Koordinator einen z2m aufsetzen, aber beide an den selben MQTT-Broker anbinden. Vielleicht hast Du ja noch nen Raspi irgendwo rumliegen, der das übernehmen kann.

Nutzt Du den internen MQTT-Broker (Server). Und von welcher Device kommt der Fehler? (Configurator, MQTT-Broker (Server) oder wo anders?

Gruß
BUrkhard

Hallo,
der Fehler kommt im Systemfenster vom Z2M. Ich habe den Verdacht, dass beim automatischen Anlegen in IPS „/bridge“ eingefügt wurde und Z2M damit nichts anfangen kann. Ich benutze den internen MQTT-Server von IPS.
Nun, ich habe den Vorteil von Z2M gegenüber Z2T (noch ?) nicht erkannt. Mit Z2M habe ich eine zusätzlich Software laufen, die überwacht werden muss (ist heute auch schon wegen eines Timeouts ausgestiegen) und wenn ich für ein weiteres Gateway noch einen weiteren Rechner (RASPI ist nicht so mein Ding) benötige, wird es ja nochmal etwas komplexer und fehleranfälliger.
Gut gefällt mir der WebServer von Z2M. Ich werde mal noch etwas herumprobieren, um die Fehlermeldung weg zu bekommen.

Also, Z2M kann mit Bridge sehr wohl was Anfangen, da Z2M das Topic ja selber sendet:
imageimage

Das musst Du mir noch mal erläutern. Z2M ist wegen einem „Timeout“ ausgestiegen? Z2M steigt eigentlich nicht aus. Auf welcher Hardware läuft Z2M bei Dir?

Das ist definitiv eine Konfigurationsfrage. Ich nutze zwei Koordinatoren, wegen der Vielen Geräte, wobei ich mit dem aktuellen, internen Server sicherlich wieder auf einen zurück gehen kann. Die Funkreichweite hat nichts mit dem Koordinator zu tun. Du kannst aus den Sonoff zigbee3.0 Plus sticks ohne Probleme Router machen und hättest somit alles in einem Zigbee-Netz.

Wenn Du allerdings die alten Sonoff-Bridges nutzt, die sind nur bedingt für Z2M geeignet. Hatte ich früher selber am Laufen und habe das Projekt voller Depressionen ad Acta gelegt. Danach zwei Sonoff ZB3.0 Plus sticks zugelegt und seitdem keinerlei Probleme. In Z2M ist es ein leichtes, neue Geräte mittels Konverter einzupflegen, auch wenn es mal eine Device gibt, die bisher nicht unterstützt wird. Ja, Du hast dabei eine weitere Software an einem zentralen Ort, musst aber nicht darauf achten, dass Tasmota rund läuft.

Viele Grüße
Burkhard

Hi Burkhard,
mein Z2M läuft auf einem Windows-Server. Ich benutze die Sonoff ZB Bridges (die weißen quadratischen Boxen).
Der Timeout sah so aus:

Error: {"frameId":85,"sequence":216} after 10000ms
    at Timeout._onTimeout (C:\Program Files\Zigbee2MQTT\node_modules\zigbee-herdsman\src\utils\waitress.ts:64:35)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)

Im M-Explorer sieht das so aus:

seit 45 Minuten steht jetzt das Systemfenster ohne neue Nachrichten und der WebServer vom Z2M ist auch nicht mehr zu erreichen.
Habe ich das richtig verstanden, dass ich anstatt einem zweiten Gateway besser eine aktive Zigbee-Komponente als Repeater nutzen sollte ? Gibt es einen Anhaltspunkt wieviele Komponenten an einem Gateway benutzt werden können ?

Beim Start von Z2M kommt übrigens noch dieser Hinweis:

Assertion failed: Command (setValue) returned unexpected state: 54

Grüße Frank

Kurze Frage vorab, nutzt Du die stable von z2m oder die DEV?

Ich habe an einem Koordinator 160 Devices. Das wichtige ist das System dahinter zu kennen. Natürlich verbinden sich nicht alle 160 Devices direkt mit der Bridge. Die meisten nutzen dafür Wege über Router (Leuchtmittel, Plugs, eigentlich Alles, was an Dauerstrom angeschlossen wird). Alle Geräte mit Batterieversorgung sind sog. Endpoints und können nicht als Router dienen.
Da Zigbee ein Mesh aufbaut, sucht es automatisch für jede Device den optimalen Pfad zum Koordinator. Leider kann es hier passieren, dass manche Router Endpoints nicht weiterleiten wollen und daher nicht als Router z.B. für TuYa-Geräte zur Verfügung stehen. Im Netz findet man aber genug Hinweise zu guten Netzaufbauten.

Um zu sehen, wieviele Devices ein Koordinator direkt verträgt, schaue am besten mal hier:
Z-Stack-firmware/coordinator at master · Koenkk/Z-Stack-firmware (github.com)

Zu Deinen Sonoff-Bridges wirst Du aber nichts finden, da die mit Tasmota geflasht sind und somit über das Netzwerk eingepflegt werden. Diese Form der Zigbee-Anbindung (über Netzwerk-Koordinator) ist bei z2m noch nicht ausgereift und befindet sich noch in einem frühen Entwicklungsstadium.

Allerdings ist die Sende/Empfangsleistung eines Sticks mit einem CC2652P Chip bei weitem besser als die Chips der alten Bridge.
Connect to a remote adapter | Zigbee2MQTT
LEse Dir vielleicht auch mal dieses dazu durch:
[WIP]: EFR32 EZSP adapter implementation and test · Issue #319 · Koenkk/zigbee-herdsman (github.com)

Gruß
Burkhard

Ich habe die 16.3 stable genommen. Die unteren Links hatte ich schon teilweise gelesen. Ich dachte mir, ich versuch’s mal trotz Experimental-Status. Doch aufgrund meiner HW-Situation (alte Gateways, keine aktiven Zigbee-Komponenten) werde ich den Versuch wohl erstmal abbrechen und das ganze aufmerksam verfolgen, bis etwas mehr Stabilität vorhanden ist.
Vielen Dank an euch, dass ihr mich unterstützt habt.

Grüße Frank

Ich habe mal die Beiträge mal in einen neuen Thread verschoben.

Grüße,
Kai

@chrissiboy, ich würde dir auch empfehlen einfach mal Zigbee2MQTT auszuprobieren.
Man kann auch die Sonoff Bridge als Koordinator nutzen (Connect to a remote Sonoff ZBBridge | Zigbee2MQTT ), ich habe es selbst aber noch nicht ausprobiert.

Grüße,
Kai

Ich würde das auch gerne probieren, nur komme ich mit der Beschreibung noch nicht zurecht.
Derzeit habe ich die Sonoff ZBBridge mit Tasmota geflashed und in IPS kommuniziert sie mit dem Modul Zigbee2Tasmota. Somit wäre nach der oben verlinkten Beschreibung der erste Schritt, nämlich Tasmota auf der ZBBridge, bereits gemacht. Oder?
Der zweite Schritt wäre noch die Datei configuration.yaml zu konfigurieren. Wo finde ich die Datei?

Der erste Schritt ja, aber es folgen noch ein paar… Du musst Zigbee2MQTT installieren und bei dieser Installation muss die configuration.yaml angepasst werden. Die Sonoff-Bridge darf nicht mehr unter dem Basismodel 75 laufen. Das muss auch umgestellt werden. In IPS musst du das Modul Zigbee2MQTT einbinden… und natürlic die Zigbee-Geräte zunächst im Z2M anmelden und dann im IPS entsprechend die MQTT-Geräte konfigurieren.
Die Links von Kai und Burkhard kann ich nur empfehlen - sind wirklich sehr hilfreich.

hast Du die Quelle des Fehlers gefunden?

ja, soweit ich mich erinnere, war es ein Fehler im Config-File

hm, das sind bei mir aktuell nur 16 Zeilen mit wenig Bezug auf die Meldung …

Vor dem Fehler kommt noch der Aufruf Received MQTT message on 'zigbee2mqtt/zigbee2mqtt/config/devices/get' with data ''

Der wohl den Fehler produziert …
Naja, muss ich halt weiter suchen. Trotzdem danke!

@U.d.o

Du hast in z2m aber schon @KaiS Extension eingebunden, oder?

Ansonsten läuft es nicht.

Gruß
Burkhard

Danke für den Link, der bring Klarheit in die leicht irritierende Doku zum Thema Zigbee2MQTT, wenn man über das IPS-Modul eingestiegen ist.

Es läuft übringens auch ohne, ist aber ein mehr oder weniger katastrophaler Durcheinander und wenig sinnvoll :wink:

LG,
Udo

1 „Gefällt mir“

Es läuft ohne, wenn du nicht die Beta Version nutzt.
Sobald die Beta Version als Stable Version online ist, wird es auch eine bessere Doku geben. :wink:

Grüße,
Kai

1 „Gefällt mir“

Update auf 6.1 und alle vom Modul (beta version) angelegten Instanzen sind jetzt inaktiv markiert, funktionieren aber …

Hallo,

ich gebe zu, ich bin durch das ganze Zigbeethema noch nicht so ganz durchgestiegen, vllt. stell ich mir das auch bloß viel zu kompliziert vor.

Ich habe mir einen RPi 1b und einen RPi3B+ genommen und darauf jeweils Zigbee2MQTT installiert.
beim RPi1 war das nur über „unsupportet Librarys“ möglich aber es hat funktioniert.

Im IPS den MQTT Server aktiviert…beide RPi´s verbinden sich über Z2M mit diesem, wie man hier sehen kann…

RPi 1b

zigbee2mqtt@1.26.0 start
node index.js

Zigbee2MQTT:info  2022-08-04 15:15:35: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2022-08-04.15-15-34' filename: log.txt
Zigbee2MQTT:info  2022-08-04 15:15:35: Starting Zigbee2MQTT version 1.26.0 (commit #bc4ffc0)
Zigbee2MQTT:info  2022-08-04 15:15:35: Starting zigbee-herdsman (0.14.40)
Zigbee2MQTT:info  2022-08-04 15:15:46: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2022-08-04 15:15:46: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:info  2022-08-04 15:15:46: Currently 0 devices are joined:
Zigbee2MQTT:warn  2022-08-04 15:15:46: `permit_join` set to  `true` in configuration.yaml.
Zigbee2MQTT:warn  2022-08-04 15:15:46: Allowing new devices to join.
Zigbee2MQTT:warn  2022-08-04 15:15:46: Set `permit_join` to `false` once you joined all devices.
Zigbee2MQTT:info  2022-08-04 15:15:46: Zigbee: allowing new devices to join.
Zigbee2MQTT:info  2022-08-04 15:15:46: Connecting to MQTT server at mqtt://10.0.0.4:1024
Zigbee2MQTT:info  2022-08-04 15:15:48: Connected to MQTT server
Zigbee2MQTT:info  2022-08-04 15:15:48: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'

Und hier der RPi3b

zigbee2mqtt@1.27.0 start
node index.js

Zigbee2MQTT:info  2022-08-04 15:11:08: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2022-08-04.15-11-08' filename: log.txt
Zigbee2MQTT:info  2022-08-04 15:11:08: Starting Zigbee2MQTT version 1.27.0 (commit #a9b8808)
Zigbee2MQTT:info  2022-08-04 15:11:08: Starting zigbee-herdsman (0.14.46)
Zigbee2MQTT:info  2022-08-04 15:11:12: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2022-08-04 15:11:12: Coordinator firmware version: '{"meta":{"maintrel":1,"majorrel":2,"minorrel":7,"product":1,"revision":20210708,"transportrev":2},"type":"zStack3x0"}'
Zigbee2MQTT:info  2022-08-04 15:11:12: Currently 0 devices are joined:
Zigbee2MQTT:warn  2022-08-04 15:11:12: `permit_join` set to  `true` in configuration.yaml.
Zigbee2MQTT:warn  2022-08-04 15:11:12: Allowing new devices to join.
Zigbee2MQTT:warn  2022-08-04 15:11:12: Set `permit_join` to `false` once you joined all devices.
Zigbee2MQTT:info  2022-08-04 15:11:12: Zigbee: allowing new devices to join.
Zigbee2MQTT:info  2022-08-04 15:11:12: Connecting to MQTT server at mqtt://10.0.0.4:1024
Zigbee2MQTT:info  2022-08-04 15:11:13: Connected to MQTT server
Zigbee2MQTT:info  2022-08-04 15:11:13: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'

Im IPS habe ich den Zigbee2MQTT Converter installiert.
Wenn ich dort auf aktualisieren drücke kommt auf beiden RPi folgende Fehlermeldung dazu:

Zigbee2MQTT:error 2022-08-04 15:11:46: Entity 'zigbee2mqtt/config/devices' is unknown

Danach habe ich versucht der Anweisung zu folgen:

(GitHub - Schnittcher/IPS-Zigbee2MQTT at featureWithUserExtension)

Die Datei IPSymconExtension.js muss im Verzeichnis „data/extension“ abgelegt werden.

es gibt auf beiden RPi kein solches Verzeichnis, deswegen habe ich die Datei im Data Verzeichnis erstellt und in der

Configuration.yaml

folgendes, lt. Z2M Anleitung, hinzugefügt:

external_converters:
    - IPSymconExtension.js

ist das korrekt? Wahrscheinlich nicht, da folgender Fehler beim Starten auf beiden RPis kommt:

zigbee2mqtt@1.27.0 start
node index.js


/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/index.js:78
    definition.toZigbee.push(tz.scene_store, tz.scene_recall, tz.scene_add, tz.scene_remove, tz.scene_remove_all, tz.read, tz.write,
                        ^
TypeError: Cannot read properties of undefined (reading 'push')
    at Object.addDefinition [as addDeviceDefinition] (/opt/zigbee2mqtt/node_modules/zigbee-herdsman-converters/index.js:78:25)
    at new ExternalConverters (/opt/zigbee2mqtt/lib/extension/externalConverters.ts:15:17)
    at new Controller (/opt/zigbee2mqtt/lib/controller.ts:84:58)
    at start (/opt/zigbee2mqtt/index.js:108:18)

wenn ich die Zeile wieder auskommentiere, dann startet das Z2M wieder normal und verbindet sich mit dem IPS MQTT.

Was mach ich falsch?