MQTT-Broker und Topics
Schaltli bringt keinen eigenen Broker mit. Es benutzt den Mosquitto, der auf jedem Pekaway-System schon läuft.
Zwei Zugänge zum selben Broker
- Port 1883, normales MQTT: Hier sprechen die Geräte, die VanPi-Brücke und alles andere auf dem Pekaway-System.
- Port 9001, MQTT über WebSocket: Hier spricht der Browser, also der Designer. Ein Browser kann nicht direkt über 1883 sprechen. Das Installationsskript richtet diesen Zugang mit der Datei
/etc/mosquitto/conf.d/schaltli-websockets.confein.
Beide Zugänge verlangen keine Anmeldung, genau wie der Broker auf Pekaway ohnehin. Wer im WLAN des Vans ist, kann also Werte lesen und Befehle schicken. Das WLAN mit einem Passwort zu schützen, ist deshalb Pflicht.
Topics
Alle Topics von Schaltli beginnen mit schaltli/.
Werte und Befehle der Anlage
| Topic | Bedeutung |
|---|---|
schaltli/state/… | Zustand der Anlage, bleibt auf dem Broker liegen («retained») |
schaltli/cmnd/… | Befehle, bleiben nicht liegen |
Ob die Screens hell oder dunkel sind, sagt schaltli/state/theme mit light oder dark. Umschalten kannst du mit einem Befehl an schaltli/cmnd/theme: light, dark oder toggle. Fehlt der Wert, gilt hell. Mehr dazu unter Themes.
Welche es gibt, steht unter VanPi-Brücke. Warum Zustände liegen bleiben und Befehle nicht, zeigt MQTT an drei Beispielen.
Pro Gerät, unter schaltli/<Kennung>/, wobei die Kennung etwa waveshare-touch-lcd-4v3b-0a1b2c3d4e5f lautet:
| Topic | Bedeutung |
|---|---|
…/hello | wer das Gerät ist: Gerätetyp, Firmware, Adresse seiner Beschreibung. Bleibt liegen. |
…/status | online oder offline. Geht ein Gerät unerwartet vom Netz, setzt der Broker offline. |
…/deploy | ein neues Projekt für das Gerät, vom Designer. Bleibt liegen, bis das Gerät es abholt. |
…/deploy-status | Fortschritt einer Übertragung |
…/firmware | eine neue Firmware für das Gerät, vom Designer |
Mithören
Auf dem Pekaway-System zeigt dieser Befehl alles, was bei Schaltli passiert:
mosquitto_sub -h localhost -t 'schaltli/#' -vSo siehst du, ob die VanPi-Brücke Werte liefert, ob sich ein Gerät meldet und was ein Schalter schickt.
Ein anderer Broker
Du kannst Schaltli auch mit einem anderen Broker betreiben, siehe Ohne Pekaway. Er braucht dann ebenfalls einen WebSocket-Zugang auf Port 9001, auf demselben Rechner wie der Designer. Die Geräte trägst du in ihrer Einrichtung auf diesen Broker um.