Forum: Haus & Smart Home Keine Verbindung zu Sensoren Zigbee2Mqtt nach Neustart


von G. B. (geri)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ausganssituation:
SYSTEM:
- Raspberry Pi
- Conbee 2
- Docker-Umgebung

DOCKER:
- Netzwerk: zigbee-docker_default
- Mosquitto MQTT Broker Container: mosquitto
- Logger Container: sensorlogger (Python 3.11, paho-mqtt)

SENSOREN:
- SNZB_Temp1
- Aquara (lumi.weather)

MQTT:
- Broker: mosquitto (Port 1883)
- Topic: zigbee2mqtt/#

HOST-VERZEICHNISSE:
- Logger-Skripte: ~/zigbee-docker/sensorlogger/
- Dockerfile: ~/zigbee-docker/sensorlogger/Dockerfile
- requirements.txt: ~/zigbee-docker/sensorlogger/requirements.txt

Ich habe die beiden Tempeatursensoren gepaired und eine "kleine" 
Python-App liest die Temperatur- und Luftfeuchtigkeitswerte von den 
Sensoren. Das funktioneriert einwandfrei. Schalte ich den Raspberry Pi 
allerdings für mehrere Stunden aus, dann besteht danach wohl keine 
Verbindung mehr zu den Sensoren.

Habt ihr vielleicht eine Idee wie man die Sensoren dazu bringt wieder zu 
senden? Einen Temperatursprung habe ich schon simuliert und das 
Pyton-Programm lief 1,5 Stunden. Keine neuen Werte..

Anbei das python-programm und die config.yaml zur Konfiguration von 
zigbee2mqtt

Beste Grüße
Geri

von Joachim S. (oyo)


Lesenswert?

Dass die Sensoren nach paar Stunden ohne zigbee2mqtt-coordinator nichts 
mehr senden, kommt mir eher unwahrscheinlich vor.

Die Bezeichnung "SNZB" lässt mich z.B. vermuten, dass es sich zumindest 
bei dem einen Gerät um einen Temperatur/Luftfeuchtigkeitssensor von 
SonOff handelt - ich habe auch einen von SonOff, Typ "SNZB-02", und als 
der neulich 12 Stunden vom zigbee2mqtt-coordinator getrennt war, weil 
ich in der Zeit mein Smart Home-System neu aufgesetzt habe und 
zigbee2mqtt in dieser Zeit nicht lief, war das kein Problem - sobald 
zigbee2mqtt wieder lief, trudelten auch die Daten vom SonOff-Thermometer 
ganz problemlos von selbst wieder ein.

Du könntest vielleicht mal mit dem Kommandozeilen-Tool "mosquitto_sub" 
schauen, was so auf MQTT passiert, wenn laut dem Python-Script keine 
neuen Daten eintreffen:
- Läuft der MQTT-Broker wirklich?
- Ist zigbee2mqtt mit MQTT verbunden und sendet gelegentlich 
Nachrichten?
- Kommen tatsächlich keine MQTT-Nachrichten von den Temperatur-Sensoren 
- oder kommen vielleicht doch Daten und der Fehler liegt irgendwo im 
Python-Script?

von G. B. (geri)


Lesenswert?

Guten Abend Joachim,

vielen Dank für deine Tipps!

Ja, es ist ein SONOF Temperatur und Luftfeuchtigkeitssensor Modell 
SONOFF SNZB-02WD und der zweite Sensor ein Aquara.
Das Python-Script lief bereits wie erwartet und zeigte die Werte von 
zwei Sensoren an.
Eine Ausgabe mit mosquitto_sub habe ich auch probiert. Selbiges 
Ergebnis. Erst als ich bei den Sensoren die Connect-Taste kurz gedrückt 
hatte, wurden wieder Werte angezeigt.

Der MQTT Broker läuft. Im Zigbee-Web-Link-Interface sehe ich die beiden 
Senoren unter „Geräte“.

Kann es vielleicht an der Konfiguration der Sensoren liegen? Oben habe 
ich das File configuration.yaml zum Download bereitgestellt. Soviel ich 
verstanden habe, wird darin definiert, wie und wann der Datenaustausch 
zwischen den einzelnen Sensoren und dem Zigbee-Interface zu erfolgen 
hat. Vielleicht passt etwas mit der Konfiguration für das Aufwachen noch 
nicht.

von Joachim S. (oyo)


Lesenswert?

G. B. schrieb:
> Ja, es ist ein SONOF Temperatur und Luftfeuchtigkeitssensor Modell
> SONOFF SNZB-02WD und der zweite Sensor ein Aquara.
> Das Python-Script lief bereits wie erwartet und zeigte die Werte von
> zwei Sensoren an.
> Eine Ausgabe mit mosquitto_sub habe ich auch probiert. Selbiges
> Ergebnis. Erst als ich bei den Sensoren die Connect-Taste kurz gedrückt
> hatte, wurden wieder Werte angezeigt.

Ich hätte jetzt vermutet, dass es noch irgendein Problem mit dem 
Python-Script gibt, aber unter diesen Umständen liegt das Problem wohl 
wirklich woanders.

> Der MQTT Broker läuft. Im Zigbee-Web-Link-Interface sehe ich die beiden
> Senoren unter „Geräte“.

Man kann im zb2mqtt-Webinterface einstellen, dass er zu jedem Device 
eine "last seen"-Timestamp anzeigen soll, die quasi den Zeitpunkt 
angibt, wann zigbee2mqtt zuletzt etwas von diesem Device gehört hat. 
Standardmässig ist diese Option glaube ich deaktiviert, aber mglw. 
könnte das beim Eingrenzen des Problems helfen, und ich finde das auch 
grundsätzlich eine ganz nützliche Option, von daher könntest Du das 
evtl. mal aktivieren.

> Kann es vielleicht an der Konfiguration der Sensoren liegen? Oben habe
> ich das File configuration.yaml zum Download bereitgestellt. Soviel ich
> verstanden habe, wird darin definiert, wie und wann der Datenaustausch
> zwischen den einzelnen Sensoren und dem Zigbee-Interface zu erfolgen
> hat. Vielleicht passt etwas mit der Konfiguration für das Aufwachen noch
> nicht.

Das wäre aktuell auch das, was ich am ehesten vermuten würde. In meiner 
configuration.yaml z.B. steht für mein SonOff-Thermometer lediglich 
folgendes:
1
  '0x00134a002317e5de':
2
    friendly_name: badezimmer_thermometer
Die "definition" und "reporting"-Blöcke, die es bei Dir dort zu jedem 
Thermometer gibt, gibt es bei mir gar nicht (auch bei keinem anderen 
meiner ca. 30 per zigbee2mqtt angebundenen Geräte). Ich konnte in der 
zigbee2mqtt-Dokumentation auf Anhieb auch gar nichts zu "definition" 
oder "reporting"-Blöcken finden.

Speziell der "reporting"-Block klingt aber so, als hätte er mit den 
Meldeintervallen und dadurch vielleicht mit dem Problem zu tun. Ich habe 
aber auch schon mal über das Webinterface von zigbee2mqtt mit den 
Melde-Intervallen meiner Thermometer herumgespielt (ohne 100%ig zu 
verstehen, was ich da genau mache) - diese Einstellungen wurden bei mir 
aber offenbar gar nicht in der configuration.yaml vermerkt?

Da ich keine mehr Ahnung habe, woran es sonst liegen könnte und sich ja 
auch sonst leider niemand mehr gemeldet hat, würde ich an Deiner Stelle 
vielleicht einfach mal die "definition" und "reporting"-Blöcke komplett 
auskommentieren und wenn das nichts ändert dann vielleicht auch nochmal 
über den "Berichte"-Tab des Web-Interfaces versuchen, die 
Meldeintervalle zu verändern. Ich könnte mir vorstellen, dass speziell 
der "maximales Melde-Intervall"-Wert bei Deinem Problem relevant sein 
könnte.

von G. B. (geri)


Lesenswert?

Vielen Dank für deine top Hilfe Joachim!

Der Hinweis mit der Erweiterung einer Spalte um "last_seen" war schon 
mal recht nützlich. Hier habe ich gesehen, dass der Sensor zeitweise 
sendet.
Habe mein ursprüngliches yaml-File dann noch auf die ursprüngliche 
einfache Konfiguration - wie unten sichtbar - rückgebaut.

[code]
homeassistant:
  enabled: false
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://mosquitto:1883
serial:
  port: /dev/ttyUSB0
  adapter: zstack
frontend:
  enabled: true
  port: 8080
devices:
  '0xa4c138018c56ffff':
    friendly_name: SNZB_Temp1
  '0x00158d008b3d5d81':
    friendly_name: Aquara
version: 4

advanced:
  last_seen: ISO_8601   # zeige Spalte last seen
[/code}

Ich habe mir zudem einen USB-Zigbee-Dongle von SONOFF gekauft.
Nun kommen Temperaturwerte an. Ich werde aber noch ausgiebiger testen.

Ich vermute aber, es lag an der Konfiguration - so wie du meintest. 
Evtl. ist es kontraproduktiv, wenn man im Abschnitt devices zu viel 
vorgibt:)

Vielen Dank nochmals für deine Mühe👍!
Geri

von G. B. (geri)


Lesenswert?

Habe mich wohl zu früh gefreut.

Nachdem der RPI für mehrer Stunden aus war, kein Reconnect.

Wenn keine Route über einen Router existiert oder der Sensor gerade im 
Deep Sleep ist, kommt das Update nicht durch, auch wenn man die 
Temperatur ändert.
Es ist angeblich ein Limit des Zigbee-Protokolls bei batteriebetriebenen 
Sensoren und der Implementierung des SNZB-02WD – kein Defekt, kein 
Firmware-Problem, kein MQTT-Problem.

Nur nochmals allgemein
- SONOFF Zigbee 3.0 USB Dongle Plus
- an USB 2.0 Anschluss des RPI mit 1 m Verlängerungskabel angeschlossen
- Firmware Zigbee 3.0 USB Dongle Plus aktuell
- Temperatursensor in etwa 1 m Reichweite

Wenn ich den Sensor öffne und ganz kurz die Taste drücke, dann 
funktioniert das Ganze natürlich wieder, solagen der Koordinator nicht 
wieder ausgeschaltet wird. Für mich so nicht brauchbar.

von Joachim S. (oyo)


Lesenswert?

G. B. schrieb:
> Habe mich wohl zu früh gefreut.
>
> Nachdem der RPI für mehrer Stunden aus war, kein Reconnect.
>
> Wenn keine Route über einen Router existiert oder der Sensor gerade im
> Deep Sleep ist, kommt das Update nicht durch, auch wenn man die
> Temperatur ändert.
> Es ist angeblich ein Limit des Zigbee-Protokolls bei batteriebetriebenen
> Sensoren und der Implementierung des SNZB-02WD – kein Defekt, kein
> Firmware-Problem, kein MQTT-Problem.

> Nur nochmals allgemein
> - SONOFF Zigbee 3.0 USB Dongle Plus
> - an USB 2.0 Anschluss des RPI mit 1 m Verlängerungskabel angeschlossen
> - Firmware Zigbee 3.0 USB Dongle Plus aktuell
> - Temperatursensor in etwa 1 m Reichweite

Tut mir leid, das zu hören. Jetzt habe ich leider auch keine Idee mehr, 
was Du noch probieren könntest.

Komisch ist: Ich habe fast das gleiche Setup (auch SonOff ZBDongle-P mit 
neuester Firmware via 1m Verlängerungskabel an USB 2.0-Anschluss), habe 
vier verschiedene Modelle von batteriebetriebenen Zigbee-Thermometern - 
aber von denen zeigte kein einziges das von Dir geschilderte Problem, 
als zigbee2mqtt kürzlich ca. 12 Stunden lang nicht lief, weil ich das 
System neu aufgesetzt habe, die haben danach alle von selbst wieder 
gesendet.

von G. B. (geri)


Lesenswert?

Danke für die Info Joachim, das gibt mir Hoffnung:)

In dem Fall wird es wohl wieder mal an mir liegen:)

Ich habe nun mal den Support von Sonoff angeschrieben. Der hat aber noch 
bis 6. Oktober "celebration of National day".
Vielleicht hat er dann noch ein paar Ideen was ich testen kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.