Commands - 05 MQTT

  • Dieser Abschnitt erläutert die MQTT-spezifischen Funktionen der Tasmota-Firmware. Jedes Tasmota geflashte Geräte kann als vollwertiger MQTT-Client mit jedem anderen MQTT-fähigen Gerät (und mit Gerätegruppen) über den MQTT-Broker kommunizieren. Grundkenntnisse des MQTT-Protokolls sowie die Installation/Benutzung einer unabhängigen MQTT-Client-Software, insbesondere die Nutzung der Subscribe-Funktion zur Kontrolle der ausgelösten Befehle, ist hilfreich.


    Erstellt von JoergZ

    I - MQTT-spezifisches

    Befehl Wert Beschreibung
    ButtonRetain Zeigt den aktuellen ButtonRetain-Status an
    ButtonRetain 0 / off (default) Nicht-Speichern des Schalterzustands im MQTT-Broker
    ButtonRetain 1 / on Legt das Geräte-Topic (MQTT-Gerätename) auf den Einschalttaster und veranlasst, dass der Schalterzustand im MQTT-Broker gespeichert wird, wenn der Einschalttaster gedrückt wird
    ButtonTopic
    ButtonTopic 0 / off Schaltet das Aussenden (publish) des MQTT-Button-Topics ab
    ButtonTopic 1 Setzt das MQTT-Button-Topic auf das Geräte-Topic zurück
    ButtonTopic <topic> Setzt das MQTT-Button-Topic auf den eingegebenen Namen (max. 32 Zeichen, Leerstellen, Sonderzeichen und deutsche Umlaute vermeiden). Ist der eingegebene Name der Name eines anderen Gerätes, wird in diesem Fall beim Drücken der Einschalttaste nicht das (eigene) Geräte-Topic an den MQTT-Broker gesendet sondern das Topic des anderen Gerätes bzw. das, was definiert wurde. Das bedeutet, dass mit dem Button eines Gerätes ein anderes Gerät gesteuert werden kann, wenn der Gerätename des anderen Gerätes als ButtonTopic eingerichtet ist. In diesem Fall steht der Taster für das Gerät selbst nicht mehr zur Verfügung, sondern es wird das andere Gerät geschaltet (Typ Toggle). Das erste Gerät bleibt durch HTTP-Requests oder MQTT-Commands von anderen Clients aus steuerbar.
    FullTopic Zeigt das aktuelle FullTopic an in der Regel %prefix%/%topic%, %prefix% bedeutet Nachrichtenart stat, tele oder cmnd (Zustand, Sensordaten oder Auftrag) und %topic% ist die Gerätebezeichnung, falls gesetzt (siehe auch weiter unter bei prefix)
    FullTopic 1 Setzt das MQTT fulltopic auf die Einstellungen der user_config.h (MQTT_FULLTOPIC) zurück und führt einen Neustart aus
    FullTopic <fulltopic> Definiert ein neues MQTT fulltopic (max. 100 Zeichen) mit optionaler Nutzung von %topic% und %prefix% (oder auch nicht) und führt einen Neustart aus
    GroupTopic Zeigt das Grouptopic an
    Kommentar: Ein Grouptopic ist ein zweites Geräte-Topic, das an mehrere Geräte namensgleich vergeben werden kann. Alle Geräte mit demselben Grouptopic können durch einen MQTT-Befehl gemeinsam geschaltet werden. Beispiel: cmnd/GROUPTOPIC/power -m 1 würde alle Geräte schalten, die dieses Grouptopic haben.
    GroupTopic 1 Setzt das MQTT Grouptopic zurück auf die Einstellungen der user_config.h (MQTT_GRPTOPIC) und startet das Gerät neu
    GroupTopic <grouptopic> Setzt das MQTT Grouptopic (max. 32 Zeichen) und startet das Gerät neu
    MqttClient Zeigt den individuellen Namen des auf dem Sonoff laufenden MQTT-Clients an. Dieser Name setzt sich standardmäßig aus der Zeichenkette DVES_ und der Variablen %06X zusammen. Diese steht für die letzten 6 Zeichen der MAC-Adresse (Hardware-Adresse des WLAN-Interfaces). Mit diesem Namen identifiziert sich der MQTT-Client beim MQTT-Broker.
    MqttClient 1 Setzt den MQTT-Client zurück auf die Einstellungen der user_config.h (MQTT_CLIENT_ID) und starte das Gerät neu
    MqttClient <client> Setzt den Namen des MQTT-Client (max. 32 Zeichen, Sonderzeichen und deutsche Umlaute vermeiden) und startet das Gerät neu. Man kann die Wildcard-Zeichen %06X benutzen. Sie werden dirch die letzen sechs Ziffern der MAC-Adresse ersetzt
    MqttFingerprint Zeigt den aktuellen Fingerprint des MQTT-Clients an; wird für die verschlüsselte Übertragung (TLS) der Nachrichten zwischen Broker und Client benutzt.
    MqttFingerprint <fingerprint> (nur TLS) Setzt einen neuen Fingerprint aus 20 Leerstellen getrennten Bytes (max. 59 Zeichen)
    MqttHost Zeigt die IP-Nummer des aktuellen MQTT-Hosts (= MQTT-Broker) an
    MqttHost 0 Leert das MQTT-Host-Feld und sucht nach dem mDNS-Verfahren (z. B. Bonjour, Zeroconf) einen MQTT-Host
    MqttHost 1 Setzt den MQTT-Host auf den Wert der user_config.h (MQTT_HOST) und startet das Gerät neu
    MqttHost <IP od. hostname>
    Setzt den Namen des MQTT-Host (max. 32 Zeichen, Sonderzeichen und deutsche Umlaute vermeiden)
    MqttPassword Zeigt das MQTT-Passwort an
    MqttPassword 0 Entfernt das MQTT-Passwort
    MqttPassword 1 Setzt das MQTT-Passwort zurück auf die Einstellungen der user_config.h (MQTT_PASS) und starte das Gerät neu.
    MqttPassword <password> Setzt das MQTT-Passwort (max. 32 Zeichen, Sonderzeichen und deutsche Umlaute vermeiden) und startet das Gerät neu.
    MqttPort Zeigt den MQTT-Port an (default: 1883)
    MqttPort 1 Setzt den MQTT-Port zurück auf die Einstellung aus der user_config.h (MQTT_PORT) und starte das Gerät neu
    MqttPort 2..32766 Setzt den MQTT-Port auf die angegeben Nummer. Achtung: Der MQTT-Broker muss dann ebenfalls auf diesen Port geleitet werden.
    MqttResponse Wird (noch?) nicht unterstützt
    MqttRetry Zeigt die Wartezeit in Sekunden zwischen zwei Versuchen der Verbindungsaufnahme zum MQTT-Broker an
    MqttRetry 10 (default) Setzt die Wartezeit zwischen zwei Verbindungsversuchen zum MQTT-Broker auf den Standardwert 10 Sekunden
    MqttRetry 10..32000 Setzt die Wartezeit zwischen zwei Verbindungsversuchen zum MQTT-Broker auf den angegebenen Wert in Sekunden
    MqttUser Zeigt den Benutzernamen des MQTT-Clients an (falls gesetzt)
    MqttUser 0 Löscht den MQTT-Benutzernamen
    MqttUser 1 Setzt den MQTT-Benutzernamen zurück aufdie Einstellung der user_config.h (MQTT_USER) und startet das Gerät neu
    MqttUser <username> Setzt den MQTT-Benutzernamen (max. 32 Zeichen, Sonderzeichen und deutsche Umlaute vermeiden) und startet das Gerät neu.
    PowerRetain Zeigt an, ob der Power-Status (Schalter steht auf AN oder AUS) dauerhaft im MQTT-Broker gespeichert wird. Falls der Wert gespeichert wird, bekommt jeder Client, der sich beim MQTT-Broker anmeldet, diesen Status mitgeteilt.
    PowerRetain 0 / off (default) Die Power-Status-Information wird nicht dauerhaft im MQTT-Broker gespeichert
    PowerRetain 1 / on Die Power-Status-Information wird im MQTT-Broker gespeichert
    Prefix1 Standardmässig ist das Prefix1 das Kommando-Präfix "cmnd". cmnd wird benötigt, um Zustände zu ändern (An- Ausschalten, Parameter übertragen, etc.). Es ist eine Nachrichten-Subskription oder ein -Abonnenment beim MQTT-Broker
    Prefix1 1 Setzt das Prefix1 zurück auf den in der user_config.h (SUB_PREFIX) angegebenen Wert starte das Gerät neu
    Prefix1 <Text> Setzt ein anderes MQTT Kommando-Empfangs-Präfix (subscription prefix) (max. 10 Zeichen, keine Leerstellen, keine Umlaute) und startet das Gerät neu
    Prefix2 Standardmässig ist das Prefix2 das Status-Präfix "stat". stat wird benötigt, um Zustände an den MQTT-Broker mitzuteilen
    Prefix2 1 Setzt das MQTT Status-Versende-Präfix zurück auf den in der user_config.h (PUB_PREFIX) angegebenen Wert und startet das Gerät neu. Prefix2 ist eine Nachrichten-Publikation an den MQTT-Broker
    Prefix2 <text> Setzt ein anderes MQTT-Status-Versende-Präfix (subscription prefix) (max. 10 Zeichen, keine Leerstellen, keine Sonderzeichen und keine Umlaute) und startet das Gerät neu
    Prefix3 Standardmässig ist das Prefix3 das Telemetrie-Präfix "tele". tele wird benötigt, um Sensor- und Zählerdaten zu übertragen. Es ist eine Nachrichten-Publikation an den MQTT-Broker
    Prefix3 1 Setzt das MQTT-Telemetrie-Präfix zurück auf den in der user_config.h (PUB_PREFIX2) angegebenen Wert und startet das Gerät neu. Prefix3 ist eine Nachrichten-Publikation an den MQTT-Broker
    Prefix3 <text> Setzt ein anderes MQTT-Telemetrie-Präfix (subscription prefix) (max. 10 Zeichen, keine Leerstellen, keine Umlaute) und startet das Gerät neu
    Publish Dient zum Versenden beliebiger Nachrichten mit beliebigen Topics an den MQTT-Broker
    SensorRetain Zeigt an, ob die zuletzt übermittelten Sensor- und Zählerdaten durch den MQTT-Broker gespeichert werden.
    SensorRetain 0 / off (default) Sensordaten werden nicht dauerhaft gespeichert
    SensorRetain 1 / on Sensordaten werden dauerhaft imm MQTT-Broker gespeichert. Dies führt dazu, dass jeder Client, der sich mit dem MQTT-Broker verbindet, die die Sensordaten mitgeteilt bekommt (tele/sonoff/SENSOR)
    SetOption2 Zeigt an, ob Maßeinheiten zu den Sensordaten angegeben werden
    Kommentar konnte weder mit einem TH10 noch POW verifiziert werden (Version 6.2.1); noch nicht implementiert?
    SetOption2 0 / off (default) Zeigt keine Maßeinheiten in den JSON-Strings an
    SetOption2 1 / on Fügt Maßeineinheiten zu den Sensorwerten hinzu
    SetOption3 Zeigt den SetOption3-Status an: On bedeutet MQTT ist aktiviert und 0FF bedeutet MQTT deaktiviert
    SetOption3 0 / off Abschalten des MQTT-Clients
    SetOption3 1 / on Anschalten des MQTT-Clients
    SetOption4 Zeigt den aktuelle SetOption4-Status an. Entweder wird die Bezeichnung RESULT in der Status-Antwort geliefert oder die Bezeichnung des angesprochenen Topics selbst
    SetOption4 0 / off Nach einem MQTT-Kommando wird der Antwort-Ausdruck in der Form stat/Gerät/RESULT {JSON-Ausdruck} geliefert
    Beispiel für Power ON: stat/POW/RESULT {"POWER":"ON"}
    SetOption4 1 / on Nach einem MQTT-Kommando wird der Antwort-Ausdruck in der Form stat/Gerät/TOPIC {JSON-Ausdruck} geliefert
    Beispiel für Power ON: stat/POW/POWER {"POWER":"ON"}
    SetOption10 Steuert das Verhalten der LWT-Nachricht (Last Will and Testament). Mit LWT wird eine spezielle dauerhaft gespeicherte Nachricht bezeichnet, die jedem MQTT-Client übermittelt wird, wenn er Nachrichten des betreffenden Gerätes (oder Topics) abonniert. Standardmäßig ist die Nachricht über den Zustand eines jeden Gerätes (liegt Versorgungsspannung an oder nicht) die LWT-Nachricht in der Form tele/POW/LWT online
    SetOption10 0 / off (default) Wenn das Geräte-Topic geändert wird (also das Gerät einen neuen MQTT-Namen bekommt), wird der LWT, der mit dem zuvor gewählten Geräte-Topic verbunden ist, gelöscht. Das Gerät "verschwindet" aus dem Gedächtnis des MQTT-Brokers.
    SetOption10 1 / on Wenn diese Option zunächst gewählt wird und dann das Geräte-Topic ("POWneu") geändert wird, behält der MQTT-Broker den ursprünglichen Geräte-Topic im Gedächtnis und zeigt das Gerät als OFFLINE an:
    tele/POW/LWT offline
    tele/POWneu/LWT online
    StateText1.. StateText4 Zeigt den Text für die verschiedenen Schalt(verhaltens)zustände an
    StateText1 <text> Definiert den Text für den Zustand "Aus" (max. 10 Zeichen)
    StateText2 <text> Definiert den Text für den Zustand "An" (max. 10 Zeichen)
    StateText3 <text> Definiert den Text für den Zustand "Toggle" (max. 10 Zeichen)
    StateText4 <text> Definiert den Text für den Zustand "Einschalttaste wird gehalten" (max. 10 Zeichen)
    SwitchRetain Zeigt an ob der (letzte) Schaltzustand im MQTT-Broker dauerhaft gespeichert wird
    SwitchRetain 0 / off (default) Deaktiviert die MQTT-Aufbewahrungsfunktion
    Kommentar: Konnte nicht verifiziert werden
    SwitchRetain 1 / on Setzt das ButtonTopic auf den Wert des Geräte-Topics (topic) und aktiviert die MQTT-Aufbewahrungsfunktion
    Kommentar: Konnte nicht verifiziert werden
    SwitchTopic Zeigt an, ob Switchtopic definiert ist
    SwitchTopic 0 / off Deaktiviert das SwitchTopic
    SwitchTopic 1 Setzt das SwitchTopic auf die Bezeichnung des Topic
    SwitchTopic Definiert ein alternatives SwitchTopic (max. 32 Zeichen, keine Leerstellen, keine Sonderzeichen und deutsche Umlaute verwenden)
    TelePeriod Zeigt die Zeitperiode in Sekunden an, in denen das Gerät spätestens über das tele-Topic Zustände der Sensoren und Zähler an den MQTT-Broker meldet. In der Regel weren geänderte Werte übertragen, sobald Änderungen in einer bestimmten Größenordnung aufgetreten sind (siehe Sensoren)
    TelePeriod 0 / off Schaltet alle Telemetrie-Nachrichten ab
    TelePeriod 1 Setzte die Teleperiod zurück auf den in der user_config.h (TELE_PERIOD) angegebenen Wert
    TelePeriod Setzt die Übertragungsperiode auf einen Wert zwischen 10 und 3600 Sekunden
    Topic Der MQTT-Gerätename; dieser Name erscheint beim Übertragen von Nachrichten und Befehlen hinter dem Aktionstopic cmnd, stat oder tele
    Topic 1 Setzt das Geräte-Topic zurück auf den in der user_config.h (MQTT_TOPIC) angegebenen Wert und starte das Gerät neu
    Topic Definiert das Geräte-Topic (max. 32 Zeichen, keine Leerstellen, keine Sonderzeichen und keine Umlaute) UND setzt das Button-Topic; löst einen Neustart aus
    Units Ersetzt durch SetOption2

Teilen