IoT-Automatisierung

Tasmota MQTT einrichten: Host, Topic und Full Topic konfigurieren und einen Zwischenstecker steuern

Richten Sie MQTT-Host, Client, Topic und Full Topic von Tasmota in der Weboberfläche oder Konsole ein und schalten Sie dann einen Zwischenstecker und lesen Sie seine Telemetrie über broker.connectmq.com.

Zwischenstecker mit Tasmota-Firmware, der Tasmota-MQTT-Nachrichten an einen Broker sendet
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

Mit der MQTT-Unterstützung von Tasmota wird aus einem günstigen ESP8266- oder ESP32-Zwischenstecker ein Gerät, das Sie aus jedem Skript, Dashboard oder Hausautomationssystem schalten und überwachen können. In diesem Tutorial konfigurieren Sie MQTT-Host, Client ID, Topic und Full Topic und steuern dann einen Zwischenstecker und lesen seine Energietelemetrie über den öffentlichen MQTT-Broker unter broker.connectmq.com.

Wie Tasmota MQTT nutzt

Tasmota ist eine Open-Source-Firmware für ESP-basierte Geräte. Ab Werk bietet sie eine Weboberfläche, ihre eigentliche Stärke ist aber MQTT: Jeder Befehl, den Sie in die Konsole tippen können, lässt sich auch als MQTT-Nachricht senden, und jede Zustandsänderung und jeder Sensorwert wird zurückveröffentlicht. Dadurch ist ein Tasmota-Stecker ein vollwertiger Teilnehmer in Node-RED, Home Assistant, openHAB oder Ihrem eigenen Code.

Tasmota baut jedes Topic aus drei Teilen auf:

  • Prefix - cmnd für Befehle, die Sie senden, stat für Antworten und Zustandsänderungen, tele für periodische Telemetrie und Verfügbarkeit.
  • Topic - ein kurzer, eindeutiger Gerätename wie plug1.
  • Full Topic - eine Vorlage, die beides kombiniert, standardmäßig %prefix%/%topic%/.

Mit dem Standard-Full-Topic führt ein Befehl an cmnd/plug1/POWER dazu, dass das Gerät auf stat/plug1/RESULT und stat/plug1/POWER antwortet, während Telemetrie an tele/plug1/STATE und tele/plug1/SENSOR geht. Der Spickzettel zu Tasmota-MQTT-Befehlen listet die nützlichsten Befehle im Detail auf.

Was Sie brauchen

  • Ein Gerät, auf dem bereits Tasmota läuft (Version 13 oder neuer empfohlen) und das mit Ihrem WLAN verbunden ist.
  • Die IP-Adresse des Geräts, um seine Weboberfläche zu öffnen.
  • Einen Computer mit mosquitto_pub und mosquitto_sub oder einen beliebigen MQTT-Client wie den ConnectMQ-Webclient im Portal.

Schritt 1: Eindeutige Namen wählen

Der kostenlose öffentliche MQTT-Broker unter broker.connectmq.com wird von allen gemeinsam genutzt, und alles, was dort veröffentlicht wird, kann jeder lesen. Legen Sie vor der Konfiguration von Tasmota fest:

  • eine zufällige ID, zum Beispiel t7x2pk,
  • eine Client ID wie tasmota-t7x2pk,
  • ein Topic wie plug1,
  • ein Full Topic, das Ihre Nachrichten unter Ihrem eigenen Präfix hält: connectmq/demo/t7x2pk/%prefix%/%topic%/.

Die resultierenden Topics sind sechs Ebenen tief (connectmq/demo/t7x2pk/cmnd/plug1/POWER) und liegen damit innerhalb des Limits von acht Ebenen des öffentlichen MQTT-Brokers.

Schritt 2: Tasmota MQTT in der Weboberfläche konfigurieren

Öffnen Sie die IP-Adresse des Geräts im Browser und gehen Sie zu Configuration und dann Configure MQTT. Tragen Sie ein:

Feld Wert für den öffentlichen Test Wert für den Produktivbetrieb
Host broker.connectmq.com Ihr Broker-Host
Port 1883 1883 oder 8883 mit einem TLS-Build
Client tasmota-t7x2pk YOUR_CLIENT_ID
User leer lassen YOUR_USERNAME
Password leer lassen YOUR_PASSWORD
Topic plug1 plug1
Full Topic connectmq/demo/t7x2pk/%prefix%/%topic%/ home/%prefix%/%topic%/

Klicken Sie auf Save. Tasmota startet neu und verbindet sich. Wenn auf der Seite Other configuration das MQTT-Kontrollkästchen nicht angehakt ist, aktivieren Sie es; in Standard-Builds ist MQTT standardmäßig an, manche Templates deaktivieren es aber.

Schritt 3: Oder Tasmota MQTT über die Konsole konfigurieren

Die Konsole (Hauptmenü, dann Console) ist schneller und skriptfähig. Backlog führt mehrere Befehle in einem Durchgang aus, und das Gerät startet am Ende nur einmal neu:

Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttClient tasmota-t7x2pk; MqttUser 0; MqttPassword 0; Topic plug1; FullTopic connectmq/demo/t7x2pk/%prefix%/%topic%/

MqttUser 0 und MqttPassword 0 löschen die Standardwerte DVES_USER / DVES_PASS, sodass sich das Gerät anonym verbindet. Nach dem Neustart sollte das Konsolenlog eine Zeile wie MQT: Connected zeigen, gefolgt von der LWT-Nachricht Online.

Schritt 4: Das Gerät beobachten

Abonnieren Sie alles unter Ihrem Präfix:

mosquitto_sub -h broker.connectmq.com -p 1883 -i watch-t7x2pk \
  -t 'connectmq/demo/t7x2pk/#' -v

Innerhalb weniger Sekunden sehen Sie etwa Folgendes:

connectmq/demo/t7x2pk/tele/plug1/LWT Online
connectmq/demo/t7x2pk/cmnd/plug1/POWER (null)
connectmq/demo/t7x2pk/tele/plug1/INFO1 {"Info1":{"Module":"Generic","Version":"14.2.0(release-tasmota)",...}}
connectmq/demo/t7x2pk/tele/plug1/STATE {"Time":"2026-10-16T10:12:03","Uptime":"0T00:00:15","POWER":"OFF",...}

Das Topic LWT ist retained und zugleich der Last Will des Geräts; es wechselt also auf Offline, wenn der Stecker Strom oder WLAN verliert. Dieses Topic sollten Sie für die Verfügbarkeit beobachten.

Schritt 5: Den Zwischenstecker per MQTT steuern

Senden Sie Befehle an das Präfix cmnd:

# Einschalten
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -m 'ON'

# Umschalten
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -m 'TOGGLE'

# Aktuellen Zustand abfragen (leerer Payload)
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -n

Jeder Befehl erzeugt stat/plug1/RESULT mit {"POWER":"ON"} und stat/plug1/POWER mit ON. Stecker mit Energiemessung veröffentlichen außerdem tele/plug1/SENSOR mit Spannung, Strom und Leistung, standardmäßig alle 300 Sekunden. Um das beim Testen zu beschleunigen:

mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/TelePeriod' -m '30'

TelePeriod akzeptiert 10 bis 3600 Sekunden. Bleiben Sie auf dem öffentlichen MQTT-Broker zurückhaltend; dort liegt das Limit bei 10 Nachrichten pro Sekunde und Client, und ein Stecker alle 30 Sekunden ist weit davon entfernt.

Soll ein Stecker nach einem Stromausfall in einem definierten Zustand zurückkommen, setzen Sie zusätzlich PowerOnState: PowerOnState 0 lässt ihn aus, 1 schaltet ihn ein, und der Standard 3 stellt den zuletzt gespeicherten Zustand wieder her. Zusammen mit retained Zustands-Topics macht das das Verhalten des Steckers für jedes Dashboard vorhersehbar.

Tasmota-MQTT-Daten im Code lesen

Hier ein kleiner Python-Listener (paho-mqtt 2.x), der Leistungswerte und Verfügbarkeit ausgibt:

import json
import paho.mqtt.client as mqtt

PREFIX = "connectmq/demo/t7x2pk"

def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{PREFIX}/tele/plug1/SENSOR")
    client.subscribe(f"{PREFIX}/tele/plug1/LWT")
    client.subscribe(f"{PREFIX}/stat/plug1/POWER")

def on_message(client, userdata, msg):
    text = msg.payload.decode()
    if msg.topic.endswith("/SENSOR"):
        energy = json.loads(text).get("ENERGY", {})
        print("power W:", energy.get("Power"), "today kWh:", energy.get("Today"))
    else:
        print(msg.topic, text)

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="py-t7x2pk")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_forever()

Vom öffentlichen MQTT-Broker in den Produktivbetrieb

Der öffentliche MQTT-Broker ist für Tests und Prototypen gedacht, nicht für echte Produktivdaten. Jeder, der das Topic errät, könnte Ihren Stecker schalten; ein Stecker, der eine Heizung oder einen Server versorgt, darf dort also niemals bleiben. Für das dauerhafte Setup:

  1. Legen Sie im ConnectMQ-Portal einen privaten Broker an und kopieren Sie den generierten Benutzernamen, das Passwort und die Client ID.
  2. Setzen Sie sie mit Backlog MqttHost <host>; MqttUser YOUR_USERNAME; MqttPassword YOUR_PASSWORD; MqttClient YOUR_CLIENT_ID; FullTopic home/%prefix%/%topic%/.
  3. Verwenden Sie TLS, wenn Ihr Build es unterstützt. ESP32-Builds tasmota32 tun das, die meisten ESP8266-Builds nicht. Die Anleitung zu Tasmota MQTT mit TLS erklärt die Details.
  4. Geben Sie jedem Gerät eigene Zugangsdaten und eine eigene Client ID, denn der Broker akzeptiert nur eine Session pro Client ID.

Ein verwalteter MQTT-Broker erspart Ihnen eine Mosquitto-Kiste zu Hause und macht den Stecker ohne Portweiterleitung von außen erreichbar. Dasselbe Muster nutzen kleinere Betriebe, um mit Zwischensteckern mit Energiemessung den Verbrauch einzelner Maschinen oder Geräte zu erfassen, als einfachen Einstieg ins Energiemonitoring. Weitere Smart-Home-Bausteine finden Sie in der Anleitung zu Smart-Plugs mit MQTT und im Überblick zur IoT-Automatisierung.

Fehlersuche bei Tasmota MQTT

Symptom Wahrscheinliche Ursache Lösung
Konsole zeigt MQT: Connect failed ... rc -2 Host nicht erreichbar oder falscher Port MqttHost, DNS und Port prüfen
rc 5 (nicht autorisiert) Falscher Benutzer/falsches Passwort oder falsche Client ID Zugangsdaten neu eingeben, MqttClient prüfen
Verbindet sich und bricht alle paar Sekunden ab Doppelte Client ID Jedem Gerät und Tool eine eindeutige ID geben
Keine Nachrichten unter Ihrem Präfix Tippfehler im Full Topic FullTopic ohne Wert ausführen, um den aktuellen Wert auszugeben
Befehle werden ignoriert An stat oder tele statt an cmnd gesendet Befehle gehen immer an das Präfix cmnd

Das Tasmota-Projekt dokumentiert jeden Befehl und jede Einstellung auf seiner offiziellen Website unter tasmota.github.io.

Tasmota-Geräte mit ConnectMQ steuern

Erstellen Sie einen kostenlosen Serverless-Broker unter app.connectmq.com ohne Kreditkarte, fügen Sie die Zugangsdaten auf der Seite Configure MQTT ein und schalten Sie Ihre Stecker mit dem Browser-Client und dem Live-Topic-Explorer des Portals. ConnectMQ unterstützt MQTT 3.1.1 und 5.0, sodass sich Tasmota ohne besondere Einstellungen verbindet.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Topic und Full Topic in Tasmota?

Topic ist der kurze Gerätename, etwa plug1. Full Topic ist die Vorlage, die aus Präfix und Topic das vollständige Topic bildet, zum Beispiel home/%prefix%/%topic%/.

Warum startet Tasmota neu, nachdem ich MQTT-Einstellungen geändert habe?

Tasmota übernimmt Änderungen an MQTT-Host, Port, Zugangsdaten und Topic durch einen Neustart. Mit Backlog fassen Sie mehrere Änderungen zu einem einzigen Neustart zusammen.

Wie frage ich den Zustand eines Tasmota-Geräts ab, ohne ihn zu ändern?

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

Kann ich viele Tasmota-Geräte mit einem Befehl steuern?

Ja. Jedes Gerät hört zusätzlich auf ein Gruppen-Topic, standardmäßig tasmotas, sodass eine Nachricht an cmnd/tasmotas/POWER alle erreicht. Ändern Sie es mit GroupTopic, wenn Sie einen Broker gemeinsam nutzen.

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.