Forum: Haus & Smart Home zigbee2mqtt / mit mqtt Lampe testen / wie debuggen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle, während ich auf Lieferung diverser Bauteile zum basteln 
warte, habe ich mich schon mal mit zigbee und mosquitto/mqtt 
beschäftigt. Ich habe zum Testen eine Ikea Fernbedienung und Lampe 
LED1732G11 und einen zigbee-Stick am RaspberryPi.

Beide Geräte haben sich auch brav gepaart, aber die Lampe "sagt nichts". 
Sollte sie? Also was ich mache ist
mosquitto_sub -t zigbee2mqtt/#

Um alle zigbee-Nachrichten zu sehen. Wenn ich auf die Fernbedienung 
drücke, kommen die auch, also z.B.
Client mosqsub|940-watchdog received PUBLISH (d0, q0, r0, m0, 'zigbee2mqtt/IkeaFernbedienung', ... (75 bytes))
{"action":"toggle","battery":87,"linkquality":136,"update_available":false}

Aber die Lampe "sagt nichts" (ich sehe keine Nachrichten von der, auch 
nicht beim Einschalten). Gepaart ist sie aber denke ich, in der 
configuration.yaml stehen beide Geräte am Ende so drin:
devices:
  '0x588e81fffe3cb272':
    friendly_name: 'IkeaFernbedienung'
  '0x842e14fffe40ce8d':
    friendly_name: 'IkeaBirne'

Meine Frage ist jetzt - wie stelle ich fest, ob die Lampe funktioniert, 
was muss ich für einen (JSON)-Text hinsenden mit mosquitto, wie mach ich 
das auf der Kommandozeile und woher weiß ich, was die Lampe hören will?

von Sascha W. (sascha-w)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn du beide Geräte mit zigbee Adapter pairst dann kommunizieren die 
erst mal nur mit dem Broker (mosquitto). Wenn der Taster jetzt die Lampe 
einschalten soll brauchst du noch eine 3. Partei die die Information vom 
Taster entgegennimmt und ein passendes Paket an die Lampe sendet. Schau 
dir mal Node Red an, dort gibts auch eine Erweiterung die den CC2531 
Adapter (wenn du den hast) direkt unterstützt.

Sascha

von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Ja, so habe ich es auch verstanden - dafür würde ich gerne 
"mosquitto_pub" verwenden - aber was muss ich dahinterschreiben als 
Argumente und woher weiß man das?

von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin schon dabei node red anzuschauen, aber zuerst sollte es ja mal 
nur mit zigbee2mqtt und mosquitto gehen

von Chr. M. (snowfly)


Bewertung
1 lesenswert
nicht lesenswert
einfach so etwas:
{"state":"ON"}
an:
zigbee2mqtt/IkeaBirne/set
schicken.

in dem Antwort JSON siehst du dann auch oft die anderen Optionen.

Zum debuging auf dem PC kann ich MQTTfx empfehlen.

: Bearbeitet durch User
von Joachim S. (oyo)


Bewertung
2 lesenswert
nicht lesenswert
Rainer U. schrieb:
> Ja, so habe ich es auch verstanden - dafür würde ich gerne
> "mosquitto_pub" verwenden - aber was muss ich dahinterschreiben als
> Argumente und woher weiß man das?

Hier:
https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html
findest Du eine Auflistung aller von zigbee2mqtt verwendeten MQTT 
Topics, und welches Format die über diese Topics ausgetauschten 
Nachrichten haben.

Der von Dir aktuell gesuchte Befehl ist der hier:
https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#zigbee2mqttfriendly_nameset

Der entsprechende mosquitto_pub-Befehl wäre in Deinem Fall:
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set -m '{"state":"<ON oder OFF>"}'
zum Ein-/Ausschalten, oder
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set -m '{"brightness":"<Helligkeit als Wert von 0-255>"}'
zum Einstellen der Helligkeit, oder
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set -m '{"state":"<ON oder OFF>", "brightness":"<Helligkeit als Wert von 0-255>"}'
um sowohl den Zustand als auch die Helligkeit in einem Rutsch 
einzustellen

Weil es gerade bei Verwendung der Kommandozeile etwas umständlich sein 
kann, die Daten im JSON-Format zu übergeben, bietet zigbee2mqtt 
zusätzlich noch eine weitere, etwas kürzer zu schreibende Möglichkeit:
https://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html#without-json
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set/state -m <ON oder OFF>
zum Ein-/Ausschalten,
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set/brightness -m <Helligkeit als Wert von 0-255>
zum Einstellen der Helligkeit

Nachteil bei dieser Methode im Vergleich zur ersten Methode ist, dass 
man damit halt immer nur eine Eigenschaft auf einmal verändern kann, 
während man mit dem allgemeinen Set-Befehl beliebig viele Eigenschaften 
auf einmal setzen kann.

Um zu wissen, was für Eigenschaften (oben also bspw. "state" und 
"brightness") ein konkretes Zigbee-Gerät besitzt, schaust Du in dieser 
Liste nach Deinem Gerät:
https://www.zigbee2mqtt.io/information/supported_devices.html
und findest für Deine Lampe dann bspw. diese Seite:
https://www.zigbee2mqtt.io/devices/LED1732G11.html
Allerdings sind da nicht alle Eigenschaften aufgelistet - die weiter 
oben verwendeten Eigenschaften "state" und "brightness", die wohl jede 
Zigbee-Lampe unterstützt, werden dort gar nicht erst erwähnt, sondern 
nur die zusätzlichen speziellen Eigenschaften.

p.s.: Gut möglich, dass für Deine Lampe direkt ein Firmware-Update zur 
Verfügung steht. War bei meinen IKEA-Tradfri-Lampen jedenfalls so. Das 
Firmware-Update dauerte bei mir allerdings für jede Lampe stolze 20 
Minuten - und ich finde den Gedanken irgendwie belustigend, dass von 
allen meinen Geräten ausgerechnet eine "Glühbirne" das Gerät mit dem 
längsten Firmware-Update ist.
Um zu checken, ob es ein Firmware-Update für Deine Lampe gibt:
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/bridge/ota_update/check -m IkeaBirne
und falls ja um das Update durchzuführen:
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/bridge/ota_update/update -m IkeaBirne

von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an alle, besonders an Joachim S. für die ausführliche 
Erklärung! Die zigbee2mqtt-Seite ist schon gut, aber für Anfänger 
könnten es ein paar mehr Beispiele wie diese sein.

 Jetzt tut die Lampe, was sie soll. Erschwerend kam hinzu, dass ich sie 
aus unerfindlichen Gründen erst nochmal "paaren" musste, obwohl ich 
keine der genannten Änderungen vorgenommen hatte, die das nötig machen.

Was bringt das Update der Lampe? (mir wird im payload angezeigt, dass es 
eins gäbe) Mehr als an/aus, Helligkeit und Farbtemperatur kann sie 
ohnehin nicht - und das geht ja schon jetzt..?

von Joachim S. (oyo)


Bewertung
1 lesenswert
nicht lesenswert
Rainer U. schrieb:
> Vielen Dank an alle, besonders an Joachim S. für die ausführliche
> Erklärung! Die zigbee2mqtt-Seite ist schon gut, aber für Anfänger
> könnten es ein paar mehr Beispiele wie diese sein.

Stimmt schon. Die "Getting started"-Sektion ist eigentlich echt gut; die 
gesamte Einrichtung, bis zigbee2mqtt läuft - CC2531-Stick flashen, 
zigbee2mqtt installieren und konfigurieren usw. wird Schritt für Schritt 
ausführlich und gut erklärt.

Aber dann ist recht plötzlich Schluss. Was natürlich auch daran liegt, 
dass alles weitere davon abhängt, mit welchen Tools man auch MQTT 
zugreift, was für ZigBee-Geräte man hat etc. Trotzdem, eine weitere 
Seite, auf der dann beispielhaft kurz mit mosquitto_pub und einem 
Beispiel Sensor und Aktor die grundsätzliche Funktionsweise kurz erklärt 
wird, wäre schon hilfreich.

> Was bringt das Update der Lampe? (mir wird im payload angezeigt, dass es
> eins gäbe) Mehr als an/aus, Helligkeit und Farbtemperatur kann sie
> ohnehin nicht - und das geht ja schon jetzt..?

Gute Frage. Es gab bspw. wohl mal Updates, die dafür gesorgt haben, dass 
man die Tradfri-Lampen auch über Philips Hue steuern kann. Ein anderes 
Update hat wohl mal das Verhalten geändert, wenn die Lampe nach einem 
"Stromausfall" wieder mit Strom versorgt wird (besser gesagt: was 
passiert, wenn man aus Gewohnheit den bisherigen Lichtschalter 
weiterverwendet, und so der Lampe den Strom abdreht).

Glückwunsch übrigens zu Deiner Wahl: zigbee2mqtt, Tradfri-Geräte und das 
Ganze dann per Node Red steuern - das ist meiner Meinung nach eine 
hervorragende Kombination als Basis für's Smart Home. Zuverlässig und 
robust, günstige aber gute Komponenten, und mit Node Red herumzutüfteln 
macht einfach Spass.

von Rainer U. (r-u)


Bewertung
0 lesenswert
nicht lesenswert
Joachim S. schrieb:
> Glückwunsch übrigens zu Deiner Wahl

Danke, ich hab ja hier von den Besten gelernt :-)

Ich hab allerdings auch noch ein paar 433MHz Komponenten rumliegen, aber 
da mach ich mal einen extra Thread auf (ob man die noch mit verwenden 
kann)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.