IoT-Automatisierung

Tasmota-MQTT-Befehle als Spickzettel: cmnd-, stat- und tele-Topics erklärt

Eine praktische Referenz zu den cmnd-, stat- und tele-Topics von Tasmota und den Befehlen, die Sie tatsächlich nutzen, mit sofort sendbaren Beispielen für jeden MQTT-Client oder den ConnectMQ-Webclient.

Referenzkarte mit Tasmota-MQTT-Befehlen neben einem Zwischenstecker und einem Laptop-Terminal
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

Dieser Spickzettel zu Tasmota-MQTT-Befehlen sammelt die Topics und Befehle, mit denen Sie Tasmota-Geräte täglich von jedem MQTT-Client aus schalten, abfragen und feinjustieren. Sie erfahren, wie die Präfixe cmnd, stat und tele zusammenspielen, welche Payloads die einzelnen Befehle erwarten und wie Sie sie aus einem Terminal, einem Skript oder dem ConnectMQ-Webclient senden.

Wie Tasmota-MQTT-Topics aufgebaut sind

Jedes Tasmota-Topic folgt der Full-Topic-Vorlage, standardmäßig %prefix%/%topic%/. Der Befehlsname wird am Ende angehängt. Bei einem Gerät mit dem Topic plug1:

Präfix Richtung Beispiel-Topic Zweck
cmnd Von Ihnen zum Gerät cmnd/plug1/POWER Einen Befehl senden
stat Vom Gerät zu Ihnen stat/plug1/RESULT JSON-Antwort auf einen Befehl
stat Vom Gerät zu Ihnen stat/plug1/POWER Einfacher Schaltzustand nach jeder Änderung
tele Vom Gerät zu Ihnen tele/plug1/STATE Periodischer Zustand (Uptime, WLAN, Schaltzustand)
tele Vom Gerät zu Ihnen tele/plug1/SENSOR Periodische Sensor- und Energiewerte
tele Vom Gerät zu Ihnen tele/plug1/LWT Online / Offline, retained Last Will

Zwei Regeln decken die meisten Fehler ab. Erstens gehen Befehle immer an cmnd; ein Publish auf stat bewirkt nichts. Zweitens fragt ein leerer Payload auf einem Befehls-Topic den aktuellen Wert ab, ohne ihn zu ändern.

Fügt Ihr Full Topic ein Präfix hinzu, zum Beispiel home/%prefix%/%topic%/, erhält jedes Topic auf diesem Spickzettel dieses Präfix: home/cmnd/plug1/POWER. Wenn Sie MQTT auf dem Gerät noch nicht eingerichtet haben, beginnen Sie mit der Anleitung zum Einrichten von Tasmota MQTT.

Tasmota-MQTT-Befehle senden

Jeden Befehl auf diesem Spickzettel können Sie auf drei Arten senden.

Aus einem Terminal mit den Mosquitto-Clients. Der kostenlose öffentliche MQTT-Broker ist für Tests gedacht und für jeden lesbar; verwenden Sie dort ein eindeutiges Präfix in Ihrem Full Topic, etwa connectmq/demo/k4w9ra/%prefix%/%topic%/:

mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-k4w9ra \
  -t 'connectmq/demo/k4w9ra/cmnd/plug1/POWER' -m 'ON'

Aus dem ConnectMQ-Webclient. Öffnen Sie im Portal den MQTT-Client im Browser, abonnieren Sie home/stat/plug1/# und veröffentlichen Sie dann auf home/cmnd/plug1/POWER mit dem Payload TOGGLE. Der Live-Topic-Explorer zeigt die RESULT-Antwort neben dem ursprünglichen Zustands-Topic.

Aus Code. Jede MQTT-Bibliothek funktioniert; hier Python mit paho-mqtt 2.x:

import paho.mqtt.client as mqtt

PREFIX = "connectmq/demo/k4w9ra"

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="py-k4w9ra")
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_start()
info = client.publish(f"{PREFIX}/cmnd/plug1/POWER", "TOGGLE", qos=1)
info.wait_for_publish()
client.loop_stop()
client.disconnect()

Schalt- und Relaisbefehle

Befehl Payload Wirkung
POWER ON, OFF, TOGGLE Relais 1 schalten
POWER leer Relais 1 abfragen
POWER2 ... POWER8 wie oben Mehrkanalgeräte, je einer pro Relais
POWER0 ON, OFF Alle Relais gleichzeitig schalten
POWER BLINK, BLINKOFF Blinken starten oder stoppen
PowerOnState 0-5 Relaiszustand nach dem Einschalten: 0 aus, 1 an, 2 umschalten, 3 zuletzt gespeichert (Standard)
PulseTime1 0-64900 Abschalttimer: 1-111 in 0,1-s-Schritten, über 111 100 abziehen für Sekunden
PowerRetain 0 / 1 stat/.../POWER als retained veröffentlichen

PulseTime ist der sichere Weg, einen Schalter „N Minuten laufen lassen“ zu bauen. Zum Beispiel schaltet PulseTime1 400 das Relais 300 Sekunden nach dem Einschalten wieder aus, selbst wenn zwischendurch das Netzwerk ausfällt.

PowerRetain 1 ist nützlich für Dashboards, die nach dem Gerät starten, denn der letzte Schaltzustand wird beim Abonnieren sofort zugestellt. Retainen Sie keine Befehls-Topics; ein retained cmnd/.../POWER ON würde das Relais nach jeder Neuverbindung wieder einschalten.

Telemetrie- und Statusbefehle

Befehl Payload Wirkung
TelePeriod 10-3600 Sekunden zwischen tele/STATE- und tele/SENSOR-Nachrichten (Standard 300)
TelePeriod leer Intervall abfragen oder sofort eine Telemetrienachricht erzwingen
Status 0 Alle Statusinformationen in einer Antwort
Status 2 Firmware-Version und Build
Status 5 Netzwerk: IP, Gateway, MAC
Status 6 MQTT-Host, Port, Client und Benutzer
Status 8 Aktuelle Sensorwerte
Status 11 Aktueller Zustand, wie tele/STATE
SensorRetain 0 / 1 tele/SENSOR als retained veröffentlichen

Antworten auf Status kommen je nach Nummer auf stat/<topic>/STATUS, STATUS2 und so weiter an. Kurze TelePeriod-Werte sind beim Testen praktisch, aber ein paar hundert Geräte, die alle 10 Sekunden melden, summieren sich. Wählen Sie das langsamste Intervall, das Ihr Dashboard noch ausreichend versorgt. Das gilt auch, wenn Zwischenstecker mit Energiemessung in einer Werkstatt oder einem Büro als günstiger Einstieg ins Energiemonitoring dienen: Für Tageslastgänge reichen meist 60 bis 300 Sekunden.

Licht- und Dimmerbefehle

Befehl Payload Wirkung
Dimmer 0-100 Helligkeit in Prozent
Color FF8800 oder 255,136,0 RGB-Farbe
CT 153-500 Farbtemperatur in Mired (kalt bis warm)
HSBColor 30,100,80 Farbton, Sättigung, Helligkeit
Fade 0 / 1 Weiche Übergänge aus oder an
Speed 1-40 Überblendgeschwindigkeit

Konfigurationsbefehle

Befehl Beispiel-Payload Hinweise
Topic plug1 Geräte-Topic; löst einen Neustart aus
FullTopic home/%prefix%/%topic%/ Topic-Vorlage; löst einen Neustart aus
GroupTopic1 kitchen Zusätzliches Topic, auf dem das Gerät auf Befehle hört
MqttHost / MqttPort broker.connectmq.com / 8883 Broker-Adresse
MqttUser / MqttPassword YOUR_USERNAME Mit 0 löschen
MqttClient YOUR_CLIENT_ID Muss pro Broker eindeutig sein
SetOption103 1 TLS bei Builds, die es enthalten
SetOption19 0 / 1 0 für die Tasmota-Integration in Home Assistant, 1 für die alte MQTT-Discovery
Timezone 99 oder +02:00 99 verwendet die Sommerzeitregeln

Gruppen-Topics erleichtern die Massensteuerung: Jedes Gerät mit GroupTopic1 kitchen reagiert auf cmnd/kitchen/POWER OFF. Das eingebaute Standard-Gruppen-Topic ist tasmotas. Teilen sich Ihre Geräte einen Broker mit anderen Personen, ändern Sie es in etwas Eindeutiges, sonst könnte ein verirrtes cmnd/tasmotas/... Ihre Geräte erreichen.

Verschlüsselte Verbindungen haben eigene Anforderungen, die die Anleitung zu Tasmota MQTT mit TLS behandelt.

Wartungsbefehle

Befehl Payload Wirkung
Restart 1 Neustart
Upgrade 1 OTA-Upgrade von OtaUrl starten
OtaUrl URL Firmware-Quelle für Upgrades
WebServer 0, 1, 2 Deaktivieren, Benutzermodus, Admin-Modus
WebPassword Text Weboberfläche schützen
Reset 1 Werksreset, mit Vorsicht verwenden

Mehrere Befehle mit Backlog ausführen

Backlog führt eine Liste von durch Semikolons getrennten Befehlen aus, die Sie auch per MQTT senden können:

mosquitto_pub -h broker.connectmq.com -p 1883 -i cli-k4w9ra \
  -t 'connectmq/demo/k4w9ra/cmnd/plug1/Backlog' \
  -m 'Power ON; Delay 50; Power OFF'

Delay arbeitet in Einheiten von 0,1 Sekunden, Delay 50 wartet also fünf Sekunden. Backlog ist der sauberste Weg, eine komplette Konfiguration auf eine Flotte von Geräten zu verteilen, ohne jede Weboberfläche einzeln aufzurufen.

Rules: Befehle, die auf dem Gerät ausgelöst werden

Mit Rules reagiert ein Gerät ganz ohne Server. Ein klassisches Beispiel veröffentlicht eine eigene Nachricht, wenn sich das Relais ändert:

Rule1 ON Power1#State DO Publish home/events/plug1 {"power":"%value%"} ENDON
Rule1 1

Publish aus einer Rule sendet an ein beliebiges Topic, was praktisch ist, wenn ein anderes System ein bestimmtes Format erwartet.

Kurz-Checkliste

  1. Befehle an cmnd/<topic>/<Command> senden; Antworten auf stat/<topic>/RESULT lesen.
  2. Leerer Payload bedeutet „abfragen“, nicht „ausschalten“.
  3. tele/<topic>/LWT für die Verfügbarkeit beobachten.
  4. Zustands-Topics retainen, wenn Dashboards es brauchen; Befehle niemals retainen.
  5. Auf gemeinsam genutzten Brokern eindeutige Client IDs, Topics und Gruppen-Topics verwenden.

Betreiben Sie Ihre Tasmota-Geräte mit ConnectMQ

Zum Testen ist der öffentliche MQTT-Broker in Ordnung, aber ein privater Broker hält Fremde von Ihren Relais fern. Ein verwalteter MQTT-Broker von ConnectMQ gibt jedem Gerät eigene Zugangsdaten, bietet einen Live-Topic-Explorer zum Prüfen der Antworten und TLS auf Port 8883 für ESP32-Builds. Erstellen Sie einen kostenlosen Serverless-Broker unter app.connectmq.com ohne Kreditkarte, und holen Sie sich im IoT-Automatisierungsleitfaden Ideen für Projekte.

Häufig gestellte Fragen

Was ist der Unterschied zwischen cmnd, stat und tele in Tasmota?

An cmnd senden Sie Befehle, stat transportiert Antworten und Zustandsänderungen, und tele transportiert periodische Telemetrie sowie die Verfügbarkeitsmeldung Online/Offline.

Wie prüfe ich den Zustand eines Tasmota-Geräts, ohne es zu schalten?

Veröffentlichen Sie einen leeren Payload auf dem Befehls-Topic, zum Beispiel cmnd/plug1/POWER. Das Gerät antwortet auf stat/plug1/RESULT.

Wie sende ich mehrere Tasmota-Befehle in einer MQTT-Nachricht?

Veröffentlichen Sie auf cmnd/<topic>/Backlog mit durch Semikolons getrennten Befehlen, zum Beispiel Power ON; Delay 50; Power OFF.

Warum werden meine Tasmota-Befehle ignoriert?

Meist stimmt das Topic nicht: Befehle müssen das Präfix cmnd verwenden und exakt zum Full Topic des Geräts passen, einschließlich zusätzlicher Präfixe und Groß-/Kleinschreibung.

Verwandte Artikel

Zigbee2MQTT einrichten: Vom Koordinator bis zum Dashboard

Installieren Sie Zigbee2MQTT mit Docker, konfigurieren Sie Koordinator und MQTT-Verbindung, lernen Sie Geräte an und benennen Sie sie um, steuern Sie sie per MQTT und zeigen Sie ihre Zustände auf einem Dashboard an, zuerst getestet auf einem kostenlosen öffentlichen MQTT-Broker.

8 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.