MQTT Geräte - Allgemein| Mit den Funktionsbausteinen dieser
Gruppe werden Geräte eingebunden, die über MQTT kommunizieren
- vor allem die Geräte des Herstellers Shelly, daneben auch NUKI,
ECOWITT Wetterstationen und beliebige andere MQTT Teilnehmer. MQTT arbeitet nach dem Prinzip "melden und mithören": Die Geräte schicken ihre Zustände an einen zentralen Verteiler, den Broker. Wer sich für einen Wert interessiert, meldet sich beim Broker an und bekommt jede Änderung zugestellt. Der Broker läuft auf der Steuerung selbst, ein zusätzlicher Server im Netzwerk ist nicht nötig. Jeder Wert hat eine Adresse, das Topic. Über das Topic findet die Steuerung heraus, zu welchem Funktionsbaustein eine eintreffende Nachricht gehört. Diese Seite beschreibt alles, was für alle Bausteine dieser Gruppe gilt. Die Ein- und Ausgänge sowie die Parameter des einzelnen Gerätes stehen auf der jeweiligen Seite des Funktionsbausteins. |
| Wichtig: Für diese Funktion muss die Steuerung eine Image Version 3.034 oder höher haben. |
| Im Webinterface der Steuerung wird
unter Enable/disable MQTT Broker der interne Broker
eingeschaltet, siehe
Steuerung -
MQTT Broker. Der Broker arbeitet auf Port 1883 und
nimmt Verbindungen ohne Benutzer und Passwort an. Hinweis: Der Broker sollte nur aktiviert werden, wenn in der Steuerung eine Industrie-Speicherkarte verbaut ist, da mit dem Broker auch das Swapping aktiviert wird. Zusätzlich wird ein aktiver Lüfter empfohlen. Beides ist optional erhältlich. |
Im Webinterface des Shelly Gerätes
wird unter MQTT die IP-Adresse der Steuerung und der Port
1883 eingetragen. Zusätzlich müssen folgende Optionen aktiviert
werden:
Damit die Werte auch nach einem Neustart der Steuerung sofort wieder stimmen, empfiehlt es sich, im Gerät den Startzustand der Ausgänge passend einzustellen und das Gerät fest im Netzwerk zu verankern (feste IP-Adresse oder DHCP-Reservierung). |
| Jeder Funktionsbaustein hat den Parameter MQTT Topic. Er muss mit der Einstellung im Gerät übereinstimmen, sonst bleiben alle Ausgänge auf ihrem Startwert. Dabei gelten folgende Regeln: |
| Erste Generation | Geräte der ersten Generation (Shelly 1, 2.5, Dimmer 2, RGBW2, EM, 3EM, H&T, Flood, Motion, i3, Button 1, Plug S, UNI, DW2, TRV) stellen ihrem Topic automatisch shellies/ voran. Diese Bezeichnung muss im Parameter mit angegeben werden, zum Beispiel shellies/shellybutton1-48551902C7E2. In den Einstellungen des Gerätes selbst steht als Präfix nur shellybutton1-48551902C7E2. |
| Zweite und neuere Generation | Geräte ab der zweiten Generation (Plus, Pro, Gen 3, Gen 4) senden diese Bezeichnung nicht automatisch mit. Das Topic muss daher exakt so lauten wie in den Einstellungen des Gerätes, zum Beispiel shellyplusi4-a8032ab613b8 - also ohne shellies/ am Beginn. |
| Nur ein Abschnitt | Das im Gerät eingestellte Präfix darf nur aus einem Abschnitt bestehen. Bezeichnungen wie wohnzimmer/licht sind nicht erlaubt; sie müssen zum Beispiel als wohnzimmer-licht angegeben werden. |
| Eindeutig halten | Die Steuerung ordnet eine Nachricht einem Baustein zu, sobald das eingetragene Topic im Topic der Nachricht enthalten ist. Sehr kurze oder allgemeine Bezeichnungen können deshalb auf mehrere Geräte passen. Am sichersten ist die werkseitige Bezeichnung mit der Seriennummer. |
| Topic aus der Diagnose ablesen:
Der genaue Bezeichner kann aus der MQTT Diagnose kopiert werden,
sobald das Gerät Nachrichten sendet. Bei der Nachricht "shellyddimmerg3-aabbeaaeebec/rpc" = "{"method":"Light.Set","params":{"id":0,"on":true}}" lautet das Topic shellyddimmerg3-aabbeaaeebec. |
| Alle Bausteine dieser Gruppe können
ihre Adressen selbst anlegen. Über den Befehl Adressen erzeugen
im Kontextmenü des Bausteins wird für jeden Ein- und Ausgang eine
Adresse in der Gruppe "MQTT/WIFI Geräte" erzeugt und zugeordnet.
Das erspart das Anlegen von Hand und stellt sicher, dass die
Datentypen zusammenpassen. Zusätzlich wird dabei immer eine Adresse mit der Bezeichnung Timeout angelegt (siehe nächster Abschnitt). |
| Jeder Baustein überwacht, ob sein
Gerät noch Nachrichten schickt. Solange Nachrichten eintreffen, steht
die Timeout-Adresse auf 0. Bleiben die Nachrichten aus, wird
sie auf 1 gesetzt. Damit lässt sich in der Visualisierung oder
im Programm eine Störmeldung erzeugen. Die Überwachungszeit richtet sich nach der Bauart des Gerätes:
|
Bausteine mit Schaltausgängen haben
für jeden Kanal einen Eingang zum Schalten und mehrere
Ausgänge für die Rückmeldung. Wichtig ist die Unterscheidung:
|
| Umschalten (steigende Flanke) | Für Taster. Bei jedem Wechsel des Eingangs von 0 auf 1 wird der Ausgang des Gerätes umgeschaltet. Der Wert 0 am Eingang bewirkt nichts. |
| Umschalten (1/0) | Für Schalter und für die Ansteuerung aus dem Programm. Der Eingangswert wird direkt übernommen: 1 schaltet ein, 0 schaltet aus. In dieser Betriebsart wird der Eingang zusätzlich auf den zugehörigen Statusausgang zurückgeführt, damit beide Werte zusammenpassen. |
| Die Bausteine kennen intern noch die Felder Benutzer und Passwort. Sie werden im Einstellungsdialog nicht angezeigt, weil der Broker auf der Steuerung ohne Anmeldung arbeitet. Der Zugang wird stattdessen darüber abgesichert, dass der Broker nur im lokalen Netz erreichbar ist. |
| Für Shelly BLU Geräte wird immer ein Shelly Gerät als Gateway benötigt, da BLU Geräte kein WLAN haben und selbst keine MQTT Nachrichten senden können. Einrichtung, Aufbau der Nachrichten und das dafür nötige Script sind auf einer eigenen Seite beschrieben: Shelly BLU - Grundlagen und Gateway-Script. |
| 1. | In der MQTT Diagnose prüfen, ob überhaupt Nachrichten des Gerätes ankommen. Kommt nichts an, liegt es am Gerät oder am Netzwerk, nicht am Baustein. |
| 2. | Das in der Diagnose angezeigte Topic mit dem Parameter MQTT Topic vergleichen. Häufigster Fehler ist ein fehlendes oder überzähliges shellies/. |
| 3. | Prüfen, ob die drei MQTT Optionen im Gerät aktiviert sind. Ohne "generische Statusbenachrichtigungen" fehlen zum Beispiel Leistungs- und Temperaturwerte. |
| 4. | Prüfen, ob die Ausgänge des Bausteins mit Adressen belegt sind. Ohne zugeordnete Adresse wird der Wert zwar empfangen, aber nicht weitergegeben. |
| Die Einrichtung und Integration der Geräte über MQTT und uni-PRO erfolgt auf eigene Verantwortung. Der Hersteller übernimmt keine Haftung für Schäden oder Fehlfunktionen, die durch fehlerhafte Konfiguration oder externe Einflüsse entstehen. Es liegt in der Verantwortung des Nutzers, sicherzustellen, dass die Steuerungseinheit uni-PRO, die MQTT-Broker-Software sowie die Firmware der Geräte regelmäßig aktualisiert werden. Versäumnisse in diesem Bereich können zu Sicherheitslücken und Fehlfunktionen führen, für die der Hersteller nicht haftbar gemacht werden kann. |