Tasmota convierte enchufes inteligentes, relés y sensores baratos con ESP8266 y ESP32 en dispositivos MQTT bien educados. Apúntalo a un broker, dale un nombre de topic y aceptará comandos en cmnd/<topic>/…, informará resultados en stat/<topic>/… y enviará telemetría periódica en tele/<topic>/…. Una vez que entiendes esos tres prefijos, puedes controlar cualquier dispositivo Tasmota desde cualquier cliente MQTT.
Esta guía configura la conexión con el broker, explica Topic y FullTopic, repasa los comandos y la telemetría que usarás a diario y lo prueba todo desde el navegador antes de conectarlo a Home Assistant o Node-RED.
Configurar el broker
Abre la interfaz web del dispositivo y ve a Configuration → Configure MQTT:
| Campo | Valor | Notas |
|---|---|---|
| Host | broker.connectmq.com | Hostname o IP de tu broker |
| Port | 1883 | 8883 solo en builds con TLS (ver más abajo) |
| Client | tasmota-plug1 | Debe ser único por dispositivo; el valor por defecto DVES_%06X usa el ID del chip |
| User / Password | las credenciales de tu broker | Déjalos vacíos solo en brokers sin autenticación |
| Topic | testmqtt-plug1 | El nombre corto del dispositivo |
| Full Topic | testmqtt/tasmota/%prefix%/%topic%/ | La plantilla de todos los topics |
Al guardar, el dispositivo se reinicia. Puedes hacer lo mismo desde la Console en una sola línea con Backlog, algo muy práctico cuando configuras muchos dispositivos:
Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttUser username; MqttPassword password; MqttClient tasmota-plug1; Topic testmqtt-plug1; FullTopic testmqtt/tasmota/%prefix%/%topic%/Asegúrate de que MQTT está activado (Configuration → Configure Other → MQTT enable, o SetOption3 1). Tras el reinicio la consola debería mostrar:
MQT: Attempting connection...
MQT: ConnectedSi en su lugar ves MQT: Connect failed to broker.connectmq.com:1883, rc -2. Retry in 10 sec, el dispositivo no pudo abrir una conexión TCP; rc 4 o rc 5 significa que se rechazaron las credenciales. La guía de Tasmota que no conecta cubre todos los casos.
Topic y FullTopic
Tasmota construye cada topic MQTT a partir de la plantilla FullTopic. Se sustituyen tres tokens en tiempo de ejecución:
%prefix%se convierte encmnd,statotele.%topic%se convierte en el Topic del dispositivo (testmqtt-plug1).%hostname%e%id%también están disponibles si prefieres nombres derivados del chip.
Con el FullTopic por defecto %prefix%/%topic%/, un enchufe llamado kitchen usa cmnd/kitchen/POWER. En un broker de pruebas compartido eso es demasiado genérico: tu cmnd/kitchen/POWER chocaría con el de cualquier otra persona. El FullTopic de arriba antepone testmqtt/tasmota/ a todo, lo que te da un espacio de nombres propio y facilita las suscripciones:
| Propósito | Topic con nuestro FullTopic |
|---|---|
| Enviar un comando | testmqtt/tasmota/cmnd/testmqtt-plug1/POWER |
| Resultado del comando | testmqtt/tasmota/stat/testmqtt-plug1/RESULT |
| Estado actual de encendido | testmqtt/tasmota/stat/testmqtt-plug1/POWER |
| Estado periódico | testmqtt/tasmota/tele/testmqtt-plug1/STATE |
| Lecturas de sensores | testmqtt/tasmota/tele/testmqtt-plug1/SENSOR |
| Online / Offline (LWT) | testmqtt/tasmota/tele/testmqtt-plug1/LWT |
Para una instalación grande, elige un esquema por ubicación o función y mantenlo; el diseño de topics para hogar inteligente tiene patrones que escalan.
Comandos: cmnd y stat
Cualquier comando de consola puede enviarse por MQTT. El nombre del comando es el último nivel del topic y el argumento es el payload:
# Encender
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m ON
# Alternar
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m TOGGLE
# Consultar el estado: un payload vacío pregunta sin cambiar nada
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -nEl dispositivo responde en dos topics: stat/testmqtt-plug1/RESULT con JSON como {"POWER":"ON"}, y stat/testmqtt-plug1/POWER con el valor simple ON. Los dispositivos con varios relés usan POWER1, POWER2, etc.
Otros comandos que usarás a menudo:
| Comando | Payload | Efecto |
|---|---|---|
Status | 0 | Volcado completo de estado, respondido con varios mensajes stat/.../STATUS* |
Status | 6 | Solo la configuración MQTT, útil para comprobar FullTopic y client ID |
TelePeriod | 60 | Envía telemetría cada 60 segundos (10–3600) |
Dimmer | 0–100 | Brillo en luces regulables |
Restart | 1 | Reinicia el dispositivo |
Backlog | cmd1 arg; cmd2 arg | Ejecuta varios comandos en secuencia |
También puedes enviar Backlog por MQTT, lo que convierte la reconfiguración remota de muchos dispositivos en un script de una línea. Para más patrones de terminal, consulta ejemplos de mosquitto_pub y mosquitto_sub.
Telemetría: tele
Cada TelePeriod segundos (300 por defecto) Tasmota publica dos mensajes:
{"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}}Los campos exactos dependen de la plantilla del dispositivo y de los sensores conectados. tele/.../LWT es especial: Tasmota publica Online retained tras conectarse y registra Offline como su Last Will, de modo que los suscriptores siempre saben si el dispositivo está accesible.
Si necesitas valores más rápido de lo que permite TelePeriod, usa una regla para publicar al cambiar. Las reglas se ejecutan en el propio dispositivo:
Rule1 ON Power1#State DO Publish testmqtt/tasmota/events/testmqtt-plug1 {"power":%value%} ENDON
Rule1 1Pruébalo todo desde el navegador
- Abre el cliente MQTT online y conéctate a
broker.connectmq.comen el puerto 8084 con la ruta/mqtt. - Suscríbete a
testmqtt/tasmota/#. Deberías recibir de inmediato el retainedtele/testmqtt-plug1/LWT = Online. - Publica
TOGGLEentestmqtt/tasmota/cmnd/testmqtt-plug1/POWER. El relé hace clic ystat/.../RESULTystat/.../POWERllegan en una fracción de segundo. - Publica
10entestmqtt/tasmota/cmnd/testmqtt-plug1/TelePeriody observa cómo llegatele/.../STATEcada diez segundos. Vuelve después a un valor razonable. - Desenchufa el dispositivo. Tras el timeout del keep alive, el broker publica
LWT = Offline.
Observa tu dispositivo Tasmota en el cliente online
Cuando una suscripción no muestra nada, compara el filtro con un topic real usando el topic matcher. Un segmento final que falta o un orden de prefijos equivocado en el FullTopic suele ser el culpable.
Mensajes retained y estado de encendido
Tasmota no marca como retained sus mensajes stat por defecto. Si un dashboard necesita el estado actual nada más suscribirse, consúltalo (payload vacío a cmnd/.../POWER) o activa PowerRetain 1 para que stat/.../POWER sea retained.
Nunca publiques comandos con el flag retain. Un ON retained en cmnd/.../POWER se vuelve a entregar cada vez que el dispositivo se reconecta, y el relé se enciende solo tras cada corte de luz o caída del Wi-Fi. Si te pasa, bórralo publicando un mensaje retained vacío en el mismo topic:
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -r -nMás sobre cómo funciona la retención en mensajes retenidos en MQTT.
TLS y Home Assistant
TLS depende del build del firmware. Muchos builds para ESP32 incluyen soporte de MQTT TLS, mientras que la mayoría de builds para ESP8266 requieren compilar con USE_MQTT_TLS. En un build con TLS, configura MqttPort 8883 y SetOption103 1, y revisa la documentación de TLS de Tasmota para ver cómo valida tu build el certificado del broker. En builds sin TLS, quédate en el puerto 1883 y usa una red local de confianza.
Home Assistant usa la integración Tasmota, que lee los mensajes de discovery propios de Tasmota (activados por defecto con SetOption19 0). Apunta la integración MQTT de Home Assistant al mismo broker y los dispositivos aparecerán automáticamente. La parte de Home Assistant se explica en Home Assistant MQTT.
El modelo MQTT de Tasmota es sencillo una vez que encajan los prefijos: los comandos entran por cmnd, las respuestas salen por stat y la telemetría llega por tele cada TelePeriod. Da a cada dispositivo un client ID único y un FullTopic que mantenga tus dispositivos en su propio espacio de nombres, verifica comandos, telemetría y LWT desde el cliente online, y cada automatización que construyas encima se comportará de forma predecible.
Preguntas frecuentes
¿Qué diferencia hay entre Topic y FullTopic en Tasmota?
Topic es el nombre corto del dispositivo, por ejemplo kitchen-plug. FullTopic es la plantilla que construye cada topic MQTT a partir de él, por defecto %prefix%/%topic%/, donde %prefix% se convierte en cmnd, stat o tele. Cambia Topic para renombrar un dispositivo; cambia FullTopic para mover todos los dispositivos bajo un espacio de nombres común.
¿Con qué frecuencia envía telemetría Tasmota?
Cada TelePeriod segundos, 300 por defecto. Ajústalo con el comando TelePeriod, por ejemplo TelePeriod 60. Los valores de sensores van a tele/<topic>/SENSOR y el estado del dispositivo a tele/<topic>/STATE.
¿Por qué mi relé Tasmota se enciende solo tras un reinicio?
Normalmente por un mensaje retained en un topic cmnd: el broker lo vuelve a entregar cada vez que el dispositivo se reconecta. Bórralo publicando un mensaje retained vacío en ese topic, y no publiques comandos con el flag retain.


