Automatización IoT

Configurar Tasmota MQTT: host, topic y full topic para controlar un enchufe inteligente

Configura el host MQTT, el cliente, el topic y el full topic de Tasmota desde la interfaz web o la consola, y después conmuta un enchufe inteligente y lee su telemetría a través de broker.connectmq.com.

Enchufe inteligente con firmware Tasmota enviando mensajes tasmota mqtt a un broker
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

El soporte MQTT de Tasmota convierte un enchufe inteligente barato con ESP8266 o ESP32 en un dispositivo que puedes conmutar y supervisar desde cualquier script, panel o sistema domótico. En este tutorial configurarás el host MQTT, el client ID, el topic y el full topic, y después controlarás un enchufe y leerás su telemetría de energía a través del servidor MQTT público gratuito en broker.connectmq.com.

Cómo usa Tasmota MQTT

Tasmota es un firmware de código abierto para dispositivos basados en ESP. De serie ofrece una interfaz web, pero su verdadera potencia es MQTT: cada comando que puedes escribir en la consola también puede enviarse como mensaje MQTT, y cada cambio de estado y lectura de sensor se publica de vuelta. Eso convierte a un enchufe Tasmota en un ciudadano de primera clase en Node-RED, Home Assistant, openHAB o tu propio código.

Tasmota construye cada topic a partir de tres partes:

  • Prefijo - cmnd para los comandos que envías, stat para respuestas y cambios de estado, tele para la telemetría periódica y la disponibilidad.
  • Topic - un nombre de dispositivo corto y único, como plug1.
  • Full topic - una plantilla que los combina, por defecto %prefix%/%topic%/.

Con el full topic por defecto, enviar un comando a cmnd/plug1/POWER hace que el dispositivo responda en stat/plug1/RESULT y stat/plug1/POWER, mientras que la telemetría va a tele/plug1/STATE y tele/plug1/SENSOR. La chuleta de comandos MQTT de Tasmota recoge en detalle los comandos más útiles.

Qué necesitas

  • Un dispositivo que ya ejecute Tasmota (se recomienda la versión 13 o posterior) y esté conectado a tu Wi-Fi.
  • La dirección IP del dispositivo, para poder abrir su interfaz web.
  • Un ordenador con mosquitto_pub y mosquitto_sub, o cualquier cliente MQTT, como el cliente web de ConnectMQ en el portal.

Paso 1: elegir nombres únicos

El servidor público en broker.connectmq.com lo comparte todo el mundo, y cualquiera puede leer lo que se publica en él. Antes de configurar Tasmota, elige:

  • un ID aleatorio, por ejemplo t7x2pk,
  • un client ID como tasmota-t7x2pk,
  • un topic como plug1,
  • un full topic que mantenga tus mensajes bajo tu propio prefijo: connectmq/demo/t7x2pk/%prefix%/%topic%/.

Los topics resultantes tienen seis niveles (connectmq/demo/t7x2pk/cmnd/plug1/POWER), dentro del límite de ocho niveles del broker público.

Paso 2: configurar Tasmota MQTT en la interfaz web

Abre la dirección IP del dispositivo en un navegador y ve a Configuration y luego a Configure MQTT. Rellena:

Campo Valor para la prueba pública Valor para producción
Host broker.connectmq.com el host de tu broker
Port 1883 1883 o 8883 con una compilación TLS
Client tasmota-t7x2pk YOUR_CLIENT_ID
User dejar vacío YOUR_USERNAME
Password dejar vacío YOUR_PASSWORD
Topic plug1 plug1
Full Topic connectmq/demo/t7x2pk/%prefix%/%topic%/ home/%prefix%/%topic%/

Haz clic en Save. Tasmota se reinicia y se conecta. Si la página Other configuration muestra la casilla MQTT sin marcar, actívala; MQTT está activado por defecto en las compilaciones estándar, pero algunas plantillas lo desactivan.

Paso 3: o configurar Tasmota MQTT desde la consola

La consola (menú principal y luego Console) es más rápida y se puede automatizar. Backlog ejecuta varios comandos de una vez y el dispositivo se reinicia una sola vez al final:

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

MqttUser 0 y MqttPassword 0 borran los valores por defecto DVES_USER / DVES_PASS para que el dispositivo se conecte de forma anónima. Tras el reinicio, el log de la consola debería mostrar una línea como MQT: Connected seguida del mensaje LWT Online.

Paso 4: observar el dispositivo

Suscríbete a todo lo que hay bajo tu prefijo:

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

En pocos segundos verás algo como:

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",...}

El topic LWT se retiene y es también el Last Will del dispositivo, así que cambia a Offline cuando el enchufe pierde la alimentación o el Wi-Fi. Ese es el topic que debes vigilar para conocer la disponibilidad.

Paso 5: controlar el enchufe inteligente por MQTT

Envía comandos al prefijo cmnd:

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

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

# Consultar el estado actual (payload vacío)
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -n

Cada uno genera stat/plug1/RESULT con {"POWER":"ON"} y stat/plug1/POWER con ON. Los enchufes con medición de energía también publican tele/plug1/SENSOR con tensión, corriente y potencia, por defecto cada 300 segundos. Para acelerarlo durante las pruebas:

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

TelePeriod acepta de 10 a 3600 segundos. Mantenlo moderado en el broker público; allí el límite es de 10 mensajes por segundo por cliente, y un enchufe cada 30 segundos no se acerca ni de lejos.

Si un enchufe debe volver a un estado conocido tras un corte de luz, configura también PowerOnState: PowerOnState 0 lo mantiene apagado, 1 lo enciende y el valor por defecto 3 restaura el último estado guardado. Junto con los topics de estado retenidos, eso hace que el comportamiento del enchufe sea predecible para todos los paneles.

Leer datos de Tasmota MQTT desde código

Este es un pequeño oyente en Python (paho-mqtt 2.x) que muestra las lecturas de potencia y la disponibilidad:

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()

Del broker público a producción

El broker público es para experimentos. Cualquiera podría conmutar tu enchufe si adivinara el topic, así que un enchufe que alimenta una estufa o un servidor nunca debe quedarse allí. Para la instalación permanente:

  1. Crea un broker privado en el portal de ConnectMQ y copia el usuario, la contraseña y el client ID generados.
  2. Configúralos con Backlog MqttHost <host>; MqttUser YOUR_USERNAME; MqttPassword YOUR_PASSWORD; MqttClient YOUR_CLIENT_ID; FullTopic home/%prefix%/%topic%/.
  3. Usa TLS si tu compilación lo admite. Las compilaciones ESP32 tasmota32 lo admiten; la mayoría de las ESP8266, no. La guía de Tasmota MQTT con TLS explica los detalles.
  4. Da a cada dispositivo sus propias credenciales y su propio client ID, porque el broker solo acepta una sesión por client ID.

Un broker MQTT gestionado elimina la necesidad de mantener un equipo con Mosquitto funcionando en casa y te permite llegar al enchufe desde fuera sin redirección de puertos. Para más piezas del hogar inteligente, consulta la guía de enchufes inteligentes MQTT y la visión general de la automatización IoT.

Solución de problemas de Tasmota MQTT

Síntoma Causa probable Solución
La consola muestra MQT: Connect failed ... rc -2 Host inaccesible o puerto incorrecto Comprueba MqttHost, el DNS y el puerto
rc 5 (no autorizado) Usuario/contraseña o client ID incorrectos Vuelve a introducir las credenciales, comprueba MqttClient
Se conecta y se desconecta cada pocos segundos Client ID duplicado Da a cada dispositivo y herramienta un ID único
No hay mensajes bajo tu prefijo Errata en el full topic Ejecuta FullTopic sin argumentos para ver el valor actual
Se ignoran los comandos Enviados a stat o tele en lugar de cmnd Los comandos siempre van al prefijo cmnd

El proyecto Tasmota documenta todos los comandos y ajustes en su sitio oficial, tasmota.github.io.

Controla tus dispositivos Tasmota con ConnectMQ

Crea un broker Serverless gratuito en app.connectmq.com sin tarjeta de crédito, pega las credenciales en la página Configure MQTT y usa el cliente en el navegador y el explorador de topics en directo del portal para conmutar tus enchufes. ConnectMQ admite MQTT 3.1.1 y 5.0, así que Tasmota se conecta sin ajustes especiales.

Preguntas frecuentes

¿Qué diferencia hay entre Topic y Full Topic en Tasmota?

Topic es el nombre corto del dispositivo, como plug1. Full Topic es la plantilla que construye el topic completo a partir del prefijo y el topic, por ejemplo home/%prefix%/%topic%/.

¿Por qué se reinicia Tasmota después de cambiar los ajustes MQTT?

Tasmota aplica los cambios de host, puerto, credenciales y topic MQTT reiniciándose. Usar Backlog agrupa varios cambios en un solo reinicio.

¿Cómo consulto el estado de un dispositivo Tasmota sin cambiarlo?

Publica un payload vacío en el topic de comando, por ejemplo cmnd/plug1/POWER. El dispositivo responde en stat/plug1/RESULT con su estado actual.

¿Puedo controlar muchos dispositivos Tasmota con un solo comando?

Sí. Cada dispositivo escucha también en un topic de grupo, tasmotas por defecto, así que un mensaje a cmnd/tasmotas/POWER llega a todos. Cámbialo con GroupTopic si compartes un broker.

Artículos relacionados

Guía para configurar Zigbee2MQTT: del coordinador al panel

Instala Zigbee2MQTT con Docker, configura el coordinador y la conexión MQTT, empareja y renombra dispositivos, contrólalos por MQTT y consulta sus estados en un panel, probando primero en un servidor MQTT público gratuito.

8 min de lectura

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.