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:
| Feld | Wert | Hinweise |
|---|---|---|
| Host | broker.connectmq.com | Hostname oder IP deines Brokers |
| Port | 1883 | 8883 nur bei Builds mit TLS (siehe unten) |
| Client | tasmota-plug1 | Muss pro Gerät eindeutig sein; der Standard DVES_%06X nutzt die Chip-ID |
| User / Password | die Zugangsdaten deines Brokers | Nur bei Brokern ohne Authentifizierung leer lassen |
| Topic | testmqtt-plug1 | Der Kurzname des Geräts |
| Full Topic | testmqtt/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:
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:
MQT: Attempting connection...
MQT: ConnectedSiehst 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 zucmnd,statodertele.%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:
| Zweck | Topic mit unserem FullTopic |
|---|---|
| Befehl senden | testmqtt/tasmota/cmnd/testmqtt-plug1/POWER |
| Ergebnis des Befehls | testmqtt/tasmota/stat/testmqtt-plug1/RESULT |
| Aktueller Schaltzustand | testmqtt/tasmota/stat/testmqtt-plug1/POWER |
| Periodischer Zustand | testmqtt/tasmota/tele/testmqtt-plug1/STATE |
| Sensorwerte | testmqtt/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:
# 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 -nDas 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:
| Befehl | Payload | Wirkung |
|---|---|---|
Status | 0 | Vollständiger Status, beantwortet mit mehreren stat/.../STATUS*-Nachrichten |
Status | 6 | Nur die MQTT-Konfiguration, praktisch zum Prüfen von FullTopic und Client-ID |
TelePeriod | 60 | Telemetrie alle 60 Sekunden senden (10–3600) |
Dimmer | 0–100 | Helligkeit bei dimmbaren Leuchten |
Restart | 1 | Gerät neu starten |
Backlog | cmd1 arg; cmd2 arg | Mehrere 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:
{"Time":"2026-10-17T10:15:00","Uptime":"0T02:14:31","Heap":25,"POWER":"ON","Wifi":{"SSId":"home","RSSI":72,"Signal":-64}}{"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:
Rule1 ON Power1#State DO Publish testmqtt/tasmota/events/testmqtt-plug1 {"power":%value%} ENDON
Rule1 1Alles im Browser testen
- Öffne den Online-MQTT-Client und verbinde dich mit
broker.connectmq.comauf Port 8084 mit dem Pfad/mqtt. - Abonniere
testmqtt/tasmota/#. Du solltest sofort das retainedtele/testmqtt-plug1/LWT = Onlineerhalten. - Veröffentliche
TOGGLEauftestmqtt/tasmota/cmnd/testmqtt-plug1/POWER. Das Relais klickt, undstat/.../RESULTsowiestat/.../POWERkommen in Sekundenbruchteilen an. - Veröffentliche
10auftestmqtt/tasmota/cmnd/testmqtt-plug1/TelePeriodund beobachte, wietele/.../STATEalle zehn Sekunden eintrifft. Setze den Wert danach wieder auf etwas Vernünftiges. - 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:
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -r -nMehr 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.


