Esta chuleta de comandos MQTT de Tasmota reúne los topics y comandos que usarás a diario para conmutar, consultar y ajustar dispositivos Tasmota desde cualquier cliente MQTT. Aprenderás cómo encajan los prefijos cmnd, stat y tele, qué payloads espera cada comando y cómo enviarlos desde un terminal, un script o el cliente web de ConnectMQ.
Cómo se construyen los topics MQTT de Tasmota
Cada topic de Tasmota sigue la plantilla Full Topic, que por defecto es %prefix%/%topic%/. El nombre del comando se añade al final. Con un dispositivo cuyo Topic es plug1:
| Prefijo | Dirección | Topic de ejemplo | Finalidad |
|---|---|---|---|
cmnd |
De ti al dispositivo | cmnd/plug1/POWER |
Enviar un comando |
stat |
Del dispositivo a ti | stat/plug1/RESULT |
Respuesta JSON a un comando |
stat |
Del dispositivo a ti | stat/plug1/POWER |
Estado de encendido simple tras cualquier cambio |
tele |
Del dispositivo a ti | tele/plug1/STATE |
Estado periódico (tiempo de actividad, Wi-Fi, encendido) |
tele |
Del dispositivo a ti | tele/plug1/SENSOR |
Lecturas periódicas de sensores y energía |
tele |
Del dispositivo a ti | tele/plug1/LWT |
Online / Offline, Last Will retenido |
Dos reglas cubren la mayoría de los errores. Primero, los comandos siempre van a cmnd; publicar en stat no hace nada. Segundo, un payload vacío en un topic de comando consulta el valor actual sin cambiarlo.
Si tu Full Topic añade un prefijo, por ejemplo home/%prefix%/%topic%/, todos los topics de esta chuleta llevan ese prefijo: home/cmnd/plug1/POWER. Si aún no has configurado MQTT en el dispositivo, empieza por la guía para configurar Tasmota MQTT.
Envío de comandos MQTT a Tasmota
Puedes enviar cada comando de esta chuleta de tres maneras.
Desde un terminal con los clientes de mosquitto. En el servidor MQTT público gratuito (solo para pruebas, nunca para datos de producción), usa un prefijo único en tu Full Topic, como 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'
Desde el cliente web de ConnectMQ. En el portal, abre el cliente MQTT en el navegador, suscríbete a home/stat/plug1/# y publica en home/cmnd/plug1/POWER con el payload TOGGLE. El explorador de topics en directo muestra la respuesta RESULT junto al topic de estado original.
Desde código. Sirve cualquier biblioteca MQTT; este es un ejemplo en Python con 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()
Comandos de encendido y relés
| Comando | Payload | Efecto |
|---|---|---|
POWER |
ON, OFF, TOGGLE |
Conmuta el relé 1 |
POWER |
vacío | Consulta el relé 1 |
POWER2 ... POWER8 |
igual | Dispositivos multicanal, uno por relé |
POWER0 |
ON, OFF |
Conmuta todos los relés a la vez |
POWER |
BLINK, BLINKOFF |
Inicia o detiene el parpadeo |
PowerOnState |
0-5 |
Estado del relé tras el arranque: 0 apagado, 1 encendido, 2 conmutar, 3 último guardado (por defecto) |
PulseTime1 |
0-64900 |
Temporizador de apagado automático: de 1 a 111 en pasos de 0,1 s; por encima de 111, resta 100 para obtener segundos |
PowerRetain |
0 / 1 |
Publica stat/.../POWER como retenido |
PulseTime es la forma segura de construir un interruptor de "funcionar durante N minutos". Por ejemplo, PulseTime1 400 apaga el relé 300 segundos después de encenderse, aunque la red se caiga entretanto.
PowerRetain 1 es útil para los paneles que arrancan después del dispositivo, porque el último estado de encendido se entrega inmediatamente al suscribirse. No retengas los topics de comando; un cmnd/.../POWER ON retenido volvería a encender el relé tras cada reconexión.
Comandos de telemetría y estado
| Comando | Payload | Efecto |
|---|---|---|
TelePeriod |
10-3600 |
Segundos entre mensajes tele/STATE y tele/SENSOR (por defecto 300) |
TelePeriod |
vacío | Consulta el intervalo o fuerza un mensaje de telemetría inmediato |
Status |
0 |
Toda la información de estado en una sola respuesta |
Status |
2 |
Versión y compilación del firmware |
Status |
5 |
Red: IP, gateway, MAC |
Status |
6 |
Host, puerto, cliente y usuario MQTT |
Status |
8 |
Lecturas actuales de los sensores |
Status |
11 |
Estado actual, como tele/STATE |
SensorRetain |
0 / 1 |
Publica tele/SENSOR como retenido |
Las respuestas a Status llegan a stat/<topic>/STATUS, STATUS2, etc., según el número. Los valores cortos de TelePeriod son prácticos durante las pruebas, pero unos cientos de dispositivos informando cada 10 segundos suman mucho. Elige el intervalo más lento que siga sirviendo a tu panel.
Comandos de luz y regulación
| Comando | Payload | Efecto |
|---|---|---|
Dimmer |
0-100 |
Brillo en porcentaje |
Color |
FF8800 o 255,136,0 |
Color RGB |
CT |
153-500 |
Temperatura de color en mireds (de fría a cálida) |
HSBColor |
30,100,80 |
Tono, saturación, brillo |
Fade |
0 / 1 |
Activa o desactiva las transiciones suaves |
Speed |
1-40 |
Velocidad del fundido |
Comandos de configuración
| Comando | Payload de ejemplo | Notas |
|---|---|---|
Topic |
plug1 |
Topic del dispositivo; provoca un reinicio |
FullTopic |
home/%prefix%/%topic%/ |
Plantilla de topic; provoca un reinicio |
GroupTopic1 |
kitchen |
Topic adicional en el que el dispositivo escucha comandos |
MqttHost / MqttPort |
broker.connectmq.com / 8883 |
Dirección del broker |
MqttUser / MqttPassword |
YOUR_USERNAME |
Usa 0 para borrarlos |
MqttClient |
YOUR_CLIENT_ID |
Debe ser único en cada broker |
SetOption103 |
1 |
TLS en las compilaciones que lo incluyen |
SetOption19 |
0 / 1 |
0 para la integración Tasmota de Home Assistant, 1 para el descubrimiento MQTT heredado |
Timezone |
99 o +02:00 |
99 usa las reglas del horario de verano |
Los topics de grupo facilitan el control en bloque: cada dispositivo con GroupTopic1 kitchen reacciona a cmnd/kitchen/POWER OFF. El topic de grupo integrado por defecto es tasmotas. Si tus dispositivos comparten broker con otras personas, cámbialo por algo único; de lo contrario, un cmnd/tasmotas/... perdido podría llegar a tus dispositivos.
Las conexiones cifradas tienen sus propios requisitos, que se tratan en la guía de Tasmota MQTT con TLS.
Comandos de mantenimiento
| Comando | Payload | Efecto |
|---|---|---|
Restart |
1 |
Reinicia |
Upgrade |
1 |
Inicia una actualización OTA desde OtaUrl |
OtaUrl |
URL | Origen del firmware para las actualizaciones |
WebServer |
0, 1, 2 |
Desactivado, modo usuario, modo administrador |
WebPassword |
texto | Protege la interfaz web |
Reset |
1 |
Restablecimiento de fábrica, úsalo con cuidado |
Ejecutar varios comandos con Backlog
Backlog ejecuta una lista de comandos separados por punto y coma, que también puedes enviar por MQTT:
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 usa unidades de 0,1 segundos, así que Delay 50 espera cinco segundos. Backlog es la forma más limpia de enviar una configuración completa a una flota de dispositivos sin visitar la interfaz web de cada uno.
Reglas: comandos que se ejecutan en el propio dispositivo
Las reglas permiten que un dispositivo reaccione sin ningún servidor. Un ejemplo clásico publica un mensaje personalizado cuando cambia el relé:
Rule1 ON Power1#State DO Publish home/events/plug1 {"power":"%value%"} ENDON
Rule1 1
Publish desde una regla envía a cualquier topic que quieras, algo práctico cuando otro sistema espera un formato concreto.
Lista de comprobación rápida
- Envía los comandos a
cmnd/<topic>/<Command>; lee las respuestas enstat/<topic>/RESULT. - Un payload vacío significa "consultar", no "apagar".
- Vigila
tele/<topic>/LWTpara conocer la disponibilidad. - Retén los topics de estado si los paneles lo necesitan; nunca retengas comandos.
- Usa client ID, topics y topics de grupo únicos en brokers compartidos.
Ejecuta tus dispositivos Tasmota en ConnectMQ
Probar en el broker público está bien, pero un broker privado mantiene a los desconocidos lejos de tus relés. Un broker MQTT gestionado de ConnectMQ da a cada dispositivo sus propias credenciales, un explorador de topics en directo para comprobar las respuestas y TLS en el puerto 8883 para las compilaciones ESP32. Crea un broker Serverless gratuito en app.connectmq.com sin tarjeta de crédito, y consulta la guía de automatización IoT para encontrar ideas de proyectos.
Preguntas frecuentes
¿Qué diferencia hay entre cmnd, stat y tele en Tasmota?
cmnd es donde envías los comandos, stat transporta las respuestas y los cambios de estado, y tele transporta la telemetría periódica y el mensaje de disponibilidad Online/Offline.
¿Cómo compruebo el estado de un dispositivo Tasmota sin conmutarlo?
Publica un payload vacío en el topic de comando, por ejemplo cmnd/plug1/POWER. El dispositivo responde en stat/plug1/RESULT.
¿Cómo envío varios comandos de Tasmota en un solo mensaje MQTT?
Publica en cmnd/<topic>/Backlog con los comandos separados por punto y coma, por ejemplo Power ON; Delay 50; Power OFF.
¿Por qué se ignoran mis comandos de Tasmota?
Normalmente el topic es incorrecto: los comandos deben usar el prefijo cmnd y coincidir exactamente con el Full Topic del dispositivo, incluido cualquier prefijo adicional y las mayúsculas y minúsculas.



