Tutorials

Tasmota-MQTT einrichten: Topics, Befehle und Telemetrie

MQTT in Tasmota einrichten: Broker, FullTopic und Topic, die Struktur cmnd/stat/tele, POWER-Befehle, Telemetrie per TelePeriod, LWT und Tests im Online-Client.

Aktualisiert · 9 Min. Lesezeit

Tasmota-MQTT einrichten: Topics, Befehle und Telemetrie

Tasmota macht aus günstigen ESP8266- und ESP32-Steckdosen, Relais und Sensoren sauber funktionierende MQTT-Geräte. Richte es auf einen Broker aus, gib ihm einen Topic-Namen – und es nimmt Befehle auf cmnd/<topic>/… an, meldet Ergebnisse auf stat/<topic>/… und sendet periodische Telemetrie auf tele/<topic>/…. Wenn du diese drei Präfixe verstanden hast, steuerst du jedes Tasmota-Gerät mit jedem MQTT-Client.

Dieser Leitfaden richtet die Broker-Verbindung ein, erklärt Topic und FullTopic, geht die Befehle und Telemetrie durch, die du täglich brauchst, und testet alles im Browser, bevor du es an Home Assistant oder Node-RED anbindest.

Broker konfigurieren

Öffne die Weboberfläche des Geräts und gehe zu Configuration → Configure MQTT:

FeldWertHinweise
Hostbroker.connectmq.comHostname oder IP deines Brokers
Port18838883 nur bei Builds mit TLS (siehe unten)
Clienttasmota-plug1Muss pro Gerät eindeutig sein; der Standard DVES_%06X nutzt die Chip-ID
User / Passworddie Zugangsdaten deines BrokersNur bei Brokern ohne Authentifizierung leer lassen
Topictestmqtt-plug1Der Kurzname des Geräts
Full Topictestmqtt/tasmota/%prefix%/%topic%/Die Vorlage für alle Topics

Beim Speichern startet das Gerät neu. Dasselbe geht in der Console in einer Zeile mit Backlog – praktisch, wenn du viele Geräte einrichtest:

Tasmota console
Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttUser username; MqttPassword password; MqttClient tasmota-plug1; Topic testmqtt-plug1; FullTopic testmqtt/tasmota/%prefix%/%topic%/

Stelle sicher, dass MQTT selbst aktiviert ist (Configuration → Configure Other → MQTT enable oder SetOption3 1). Nach dem Neustart sollte die Konsole Folgendes zeigen:

Console output
MQT: Attempting connection...
MQT: Connected

Siehst du stattdessen MQT: Connect failed to broker.connectmq.com:1883, rc -2. Retry in 10 sec, konnte das Gerät keine TCP-Verbindung aufbauen; rc 4 oder rc 5 bedeutet, dass die Zugangsdaten abgelehnt wurden. Der Leitfaden Tasmota verbindet sich nicht deckt alle Fälle ab.

Topic und FullTopic

Tasmota baut jedes MQTT-Topic aus der Vorlage FullTopic. Zur Laufzeit werden drei Tokens ersetzt:

  • %prefix% wird zu cmnd, stat oder tele.
  • %topic% wird zum Topic des Geräts (testmqtt-plug1).
  • %hostname% und %id% stehen ebenfalls zur Verfügung, wenn du vom Chip abgeleitete Namen bevorzugst.

Mit dem Standard-FullTopic %prefix%/%topic%/ nutzt eine Steckdose namens kitchen das Topic cmnd/kitchen/POWER. Auf einem geteilten Test-Broker ist das viel zu allgemein: Dein cmnd/kitchen/POWER würde mit dem aller anderen kollidieren. Das FullTopic oben stellt allem testmqtt/tasmota/ voran – das gibt dir einen eigenen Namensraum und macht Subscriptions einfach:

ZweckTopic mit unserem FullTopic
Befehl sendentestmqtt/tasmota/cmnd/testmqtt-plug1/POWER
Ergebnis des Befehlstestmqtt/tasmota/stat/testmqtt-plug1/RESULT
Aktueller Schaltzustandtestmqtt/tasmota/stat/testmqtt-plug1/POWER
Periodischer Zustandtestmqtt/tasmota/tele/testmqtt-plug1/STATE
Sensorwertetestmqtt/tasmota/tele/testmqtt-plug1/SENSOR
Online / Offline (LWT)testmqtt/tasmota/tele/testmqtt-plug1/LWT

Wähle bei größeren Installationen ein Schema nach Ort oder Funktion und bleib dabei; Topic-Design fürs Smart Home zeigt Muster, die skalieren.

Befehle: cmnd und stat

Jeder Konsolenbefehl lässt sich per MQTT senden. Der Befehlsname ist die letzte Topic-Ebene, das Argument ist der Payload:

Control a relay with mosquitto_pub
# Einschalten
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
  -t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m ON

# Umschalten
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
  -t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m TOGGLE

# Zustand abfragen: ein leerer Payload fragt, ohne etwas zu ändern
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
  -t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -n

Das Gerät antwortet auf zwei Topics: stat/testmqtt-plug1/RESULT mit JSON wie {"POWER":"ON"} und stat/testmqtt-plug1/POWER mit dem reinen Wert ON. Geräte mit mehreren Relais nutzen POWER1, POWER2 usw.

Weitere Befehle, die du oft brauchst:

BefehlPayloadWirkung
Status0Vollständiger Status, beantwortet mit mehreren stat/.../STATUS*-Nachrichten
Status6Nur die MQTT-Konfiguration, praktisch zum Prüfen von FullTopic und Client-ID
TelePeriod60Telemetrie alle 60 Sekunden senden (10–3600)
Dimmer0–100Helligkeit bei dimmbaren Leuchten
Restart1Gerät neu starten
Backlogcmd1 arg; cmd2 argMehrere Befehle nacheinander ausführen

Auch Backlog kannst du per MQTT senden – so wird die Fernkonfiguration vieler Geräte zu einem Einzeiler. Weitere Terminal-Muster findest du unter Beispiele für mosquitto_pub und mosquitto_sub.

Telemetrie: tele

Alle TelePeriod Sekunden (standardmäßig 300) veröffentlicht Tasmota zwei Nachrichten:

tele/testmqtt-plug1/STATE
{"Time":"2026-10-17T10:15:00","Uptime":"0T02:14:31","Heap":25,"POWER":"ON","Wifi":{"SSId":"home","RSSI":72,"Signal":-64}}
tele/testmqtt-plug1/SENSOR (plug with energy monitoring)
{"Time":"2026-10-17T10:15:00","ENERGY":{"Total":3.214,"Yesterday":0.412,"Today":0.183,"Power":46,"Voltage":231,"Current":0.214}}

Welche Felder genau enthalten sind, hängt vom Geräte-Template und den angeschlossenen Sensoren ab. tele/.../LWT ist besonders: Tasmota veröffentlicht nach dem Verbinden retained Online und registriert Offline als Last Will, sodass Subscriber immer wissen, ob das Gerät erreichbar ist.

Brauchst du Werte schneller, als TelePeriod erlaubt, veröffentliche per Regel bei jeder Änderung. Regeln laufen direkt auf dem Gerät:

Publish power changes immediately
Rule1 ON Power1#State DO Publish testmqtt/tasmota/events/testmqtt-plug1 {"power":%value%} ENDON
Rule1 1

Alles im Browser testen

  1. Öffne den Online-MQTT-Client und verbinde dich mit broker.connectmq.com auf Port 8084 mit dem Pfad /mqtt.
  2. Abonniere testmqtt/tasmota/#. Du solltest sofort das retained tele/testmqtt-plug1/LWT = Online erhalten.
  3. Veröffentliche TOGGLE auf testmqtt/tasmota/cmnd/testmqtt-plug1/POWER. Das Relais klickt, und stat/.../RESULT sowie stat/.../POWER kommen in Sekundenbruchteilen an.
  4. Veröffentliche 10 auf testmqtt/tasmota/cmnd/testmqtt-plug1/TelePeriod und beobachte, wie tele/.../STATE alle zehn Sekunden eintrifft. Setze den Wert danach wieder auf etwas Vernünftiges.
  5. Zieh das Gerät aus der Steckdose. Nach dem Keep-Alive-Timeout veröffentlicht der Broker LWT = Offline.

Dein Tasmota-Gerät im Online-Client beobachten

Zeigt eine Subscription nichts an, prüfe den Filter mit dem Topic Matcher gegen ein echtes Topic. Meist fehlt ein abschließendes Segment oder die Reihenfolge der Präfixe im FullTopic stimmt nicht.

Retained Messages und Schaltzustand

Tasmota setzt bei seinen stat-Nachrichten standardmäßig kein Retain. Braucht ein Dashboard den aktuellen Zustand direkt nach dem Abonnieren, frag ihn ab (leerer Payload an cmnd/.../POWER) oder aktiviere PowerRetain 1, damit stat/.../POWER retained wird.

Veröffentliche Befehle niemals mit Retain-Flag. Ein retained ON auf cmnd/.../POWER wird bei jedem Reconnect erneut ausgeliefert, und das Relais schaltet nach jedem Stromausfall oder WLAN-Abbruch von selbst ein. Passiert das, lösche die Nachricht mit einer leeren retained Nachricht auf demselben Topic:

Clear a retained command
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
  -t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -r -n

Mehr dazu, wie Retain funktioniert, unter MQTT Retained Messages.

TLS und Home Assistant

TLS hängt vom Firmware-Build ab. Viele ESP32-Builds enthalten MQTT-TLS-Unterstützung, während die meisten ESP8266-Builds eine eigene Kompilierung mit USE_MQTT_TLS erfordern. Auf einem TLS-fähigen Build setzt du MqttPort 8883 und SetOption103 1 und prüfst in der Tasmota-TLS-Dokumentation, wie dein Build das Zertifikat des Brokers validiert. Auf Builds ohne TLS bleibst du bei Port 1883 und nutzt ein vertrauenswürdiges lokales Netz.

Home Assistant nutzt die Tasmota-Integration, die Tasmotas eigene Discovery-Nachrichten liest (standardmäßig aktiv mit SetOption19 0). Richte die MQTT-Integration von Home Assistant auf denselben Broker aus, und die Geräte erscheinen automatisch. Die Home-Assistant-Seite behandelt Home Assistant MQTT.

Das MQTT-Modell von Tasmota ist einfach, sobald die Präfixe sitzen: Befehle gehen über cmnd hinein, Antworten kommen über stat heraus, und Telemetrie trifft alle TelePeriod über tele ein. Gib jedem Gerät eine eindeutige Client-ID und ein FullTopic, das deine Geräte in ihrem eigenen Namensraum hält, prüfe Befehle, Telemetrie und LWT im Online-Client – dann verhält sich jede Automatisierung, die du darauf aufbaust, vorhersehbar.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Topic und FullTopic in Tasmota?

Topic ist der Kurzname des Geräts, etwa kitchen-plug. FullTopic ist die Vorlage, aus der jedes MQTT-Topic gebaut wird, standardmäßig %prefix%/%topic%/, wobei %prefix% zu cmnd, stat oder tele wird. Ändere Topic, um ein Gerät umzubenennen; ändere FullTopic, um alle Geräte unter einen gemeinsamen Namensraum zu legen.

Wie oft sendet Tasmota Telemetrie?

Alle TelePeriod Sekunden, standardmäßig 300. Einstellen kannst du das mit dem Befehl TelePeriod, zum Beispiel TelePeriod 60. Sensorwerte landen auf tele/<topic>/SENSOR, der Gerätezustand auf tele/<topic>/STATE.

Warum schaltet mein Tasmota-Relais nach einem Neustart von selbst ein?

Meist wegen einer retained Nachricht auf einem cmnd-Topic: Der Broker liefert sie bei jedem Reconnect des Geräts erneut aus. Lösche sie, indem du eine leere retained Nachricht auf dieses Topic veröffentlichst, und veröffentliche Befehle nie mit Retain-Flag.