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
1
mosquitto_sub -t zigbee2mqtt/#
Um alle zigbee-Nachrichten zu sehen. Wenn ich auf die Fernbedienung
drücke, kommen die auch, also z.B.
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:
1
devices:
2
'0x588e81fffe3cb272':
3
friendly_name: 'IkeaFernbedienung'
4
'0x842e14fffe40ce8d':
5
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?
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
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?
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.
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set -m '{"state":"<ON oder OFF>"}'
zum Ein-/Ausschalten, oder
1
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
1
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
1
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/IkeaBirne/set/state -m <ON oder OFF>
zum Ein-/Ausschalten,
1
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:
1
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/bridge/ota_update/check -m IkeaBirne
und falls ja um das Update durchzuführen:
1
mosquitto_pub -h <IP-Adresse des MQTT-Brokers> -t zigbee2mqtt/bridge/ota_update/update -m IkeaBirne
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..?
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.
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)