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
- Befehle an
cmnd/<topic>/<Command>senden; Antworten aufstat/<topic>/RESULTlesen. - Leerer Payload bedeutet „abfragen“, nicht „ausschalten“.
tele/<topic>/LWTfür die Verfügbarkeit beobachten.- Zustands-Topics retainen, wenn Dashboards es brauchen; Befehle niemals retainen.
- 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.



