Automação IoT

Configuração MQTT no Tasmota: Host, Topic e Full Topic e Controle de uma Tomada Inteligente

Configure o host MQTT, o client, o topic e o full topic do Tasmota pela interface web ou pelo console, depois acione uma tomada inteligente e leia sua telemetria pelo servidor MQTT público em broker.connectmq.com.

Tomada inteligente com firmware Tasmota enviando mensagens tasmota mqtt para um broker
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

O suporte a MQTT do Tasmota transforma uma tomada inteligente barata com ESP8266 ou ESP32 em um dispositivo que você pode acionar e monitorar a partir de qualquer script, painel ou sistema de automação residencial. Neste tutorial você vai configurar o host MQTT, o client ID, o topic e o full topic e, em seguida, controlar uma tomada e ler sua telemetria de energia pelo servidor MQTT público em broker.connectmq.com.

Como o Tasmota usa o MQTT

O Tasmota é um firmware de código aberto para dispositivos baseados em ESP. De fábrica, ele oferece uma interface web, mas seu verdadeiro poder está no MQTT: todo comando que você pode digitar no console também pode ser enviado como mensagem MQTT, e toda mudança de estado e leitura de sensor é publicada de volta. Isso faz de uma tomada Tasmota um cidadão de primeira classe no Node-RED, no Home Assistant, no openHAB ou no seu próprio código.

O Tasmota monta cada tópico a partir de três partes:

  • Prefixo - cmnd para os comandos que você envia, stat para respostas e mudanças de estado, tele para telemetria periódica e disponibilidade.
  • Topic - um nome de dispositivo curto e único, como plug1.
  • Full topic - um modelo que combina os dois, por padrão %prefix%/%topic%/.

Com o full topic padrão, enviar um comando para cmnd/plug1/POWER faz o dispositivo responder em stat/plug1/RESULT e stat/plug1/POWER, enquanto a telemetria vai para tele/plug1/STATE e tele/plug1/SENSOR. O guia rápido de comandos MQTT do Tasmota lista em detalhes os comandos mais úteis.

O que você precisa

  • Um dispositivo já rodando Tasmota (versão 13 ou mais recente recomendada) e conectado ao seu Wi-Fi.
  • O endereço IP do dispositivo, para abrir sua interface web.
  • Um computador com mosquitto_pub e mosquitto_sub, ou qualquer cliente MQTT, como o cliente web da ConnectMQ no portal.

Passo 1: Escolha nomes únicos

O servidor MQTT público (gratuito) em broker.connectmq.com serve para testes, é compartilhado por todos, e qualquer coisa publicada ali pode ser lida por qualquer pessoa. Antes de configurar o Tasmota, escolha:

  • um ID aleatório, por exemplo t7x2pk,
  • um client ID como tasmota-t7x2pk,
  • um topic como plug1,
  • um full topic que mantenha suas mensagens sob o seu próprio prefixo: connectmq/demo/t7x2pk/%prefix%/%topic%/.

Os tópicos resultantes têm seis níveis (connectmq/demo/t7x2pk/cmnd/plug1/POWER), dentro do limite de oito níveis do servidor MQTT público.

Passo 2: Configure o MQTT do Tasmota pela interface web

Abra o endereço IP do dispositivo no navegador e vá em Configuration e depois Configure MQTT. Preencha:

Campo Valor para o teste público Valor para produção
Host broker.connectmq.com o host do seu broker
Port 1883 1883 ou 8883 com uma build com TLS
Client tasmota-t7x2pk YOUR_CLIENT_ID
User deixe em branco YOUR_USERNAME
Password deixe em branco YOUR_PASSWORD
Topic plug1 plug1
Full Topic connectmq/demo/t7x2pk/%prefix%/%topic%/ home/%prefix%/%topic%/

Clique em Save. O Tasmota reinicia e se conecta. Se a página Other configuration mostrar a caixa MQTT desmarcada, ative-a; o MQTT vem ligado por padrão nas builds padrão, mas alguns templates o desativam.

Passo 3: Ou configure o MQTT do Tasmota pelo console

O console (Main Menu e depois Console) é mais rápido e permite scripts. O Backlog executa vários comandos de uma vez, e o dispositivo reinicia uma única vez no 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 e MqttPassword 0 apagam os valores padrão DVES_USER / DVES_PASS para que o dispositivo se conecte anonimamente. Após o reinício, o log do console deve mostrar uma linha como MQT: Connected, seguida da mensagem LWT Online.

Passo 4: Acompanhe o dispositivo

Assine tudo sob o seu prefixo:

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

Em poucos segundos você verá 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",...}

O tópico LWT é retido e também é o Last Will do dispositivo, então muda para Offline quando a tomada perde energia ou Wi-Fi. É esse o tópico a observar para saber a disponibilidade.

Passo 5: Controle a tomada inteligente via MQTT

Envie comandos para o prefixo cmnd:

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

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

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

Cada um gera stat/plug1/RESULT com {"POWER":"ON"} e stat/plug1/POWER com ON. Tomadas com medição de energia também publicam tele/plug1/SENSOR com tensão, corrente e potência, por padrão a cada 300 segundos. Para acelerar isso durante os testes:

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

O TelePeriod aceita de 10 a 3600 segundos. Use valores moderados no servidor MQTT público; o limite ali é de 10 mensagens por segundo por cliente, e uma tomada a cada 30 segundos está muito longe disso.

Se uma tomada precisar voltar a um estado conhecido após uma queda de energia, defina também o PowerOnState: PowerOnState 0 a mantém desligada, 1 a liga, e o padrão 3 restaura o último estado salvo. Combinado com tópicos de estado retidos, isso torna o comportamento da tomada previsível para todos os painéis.

Lendo dados MQTT do Tasmota em código

Aqui está um pequeno ouvinte em Python (paho-mqtt 2.x) que imprime as leituras de potência e a disponibilidade:

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

Do servidor MQTT público para a produção

O servidor MQTT público serve para experimentos. Qualquer pessoa poderia acionar sua tomada se adivinhasse o tópico, então uma tomada que alimenta um aquecedor ou um servidor nunca deve ficar ali. Para a instalação definitiva:

  1. Crie um broker privado no portal da ConnectMQ e copie o usuário, a senha e o client ID gerados.
  2. Defina-os com Backlog MqttHost <host>; MqttUser YOUR_USERNAME; MqttPassword YOUR_PASSWORD; MqttClient YOUR_CLIENT_ID; FullTopic home/%prefix%/%topic%/.
  3. Use TLS se a sua build suportar. As builds tasmota32 para ESP32 suportam; a maioria das builds para ESP8266 não. O guia de TLS no MQTT do Tasmota explica os detalhes.
  4. Dê a cada dispositivo suas próprias credenciais e client ID, porque o broker aceita apenas uma sessão por client ID.

Um broker MQTT gerenciado elimina a necessidade de manter uma máquina com Mosquitto ligada em casa e permite acessar a tomada de fora sem redirecionamento de portas. Para mais blocos de construção de casa inteligente, veja o guia de tomada inteligente com MQTT e a visão geral de automação IoT.

Solução de problemas do MQTT no Tasmota

Sintoma Causa provável Solução
O console mostra MQT: Connect failed ... rc -2 Host inacessível ou porta errada Verifique MqttHost, DNS e porta
rc 5 (não autorizado) Usuário/senha ou client ID errados Digite as credenciais de novo, verifique MqttClient
Conecta e cai a cada poucos segundos Client ID duplicado Dê um ID único a cada dispositivo e ferramenta
Nenhuma mensagem sob o seu prefixo Erro de digitação no full topic Execute FullTopic sozinho para ver o valor atual
Comandos ignorados Enviados para stat ou tele em vez de cmnd Comandos sempre vão para o prefixo cmnd

O projeto Tasmota documenta todos os comandos e configurações em seu site oficial, tasmota.github.io.

Controle dispositivos Tasmota com a ConnectMQ

Crie um broker Serverless gratuito em app.connectmq.com, sem cartão de crédito, cole as credenciais na página Configure MQTT e use o cliente no navegador e o explorador de tópicos ao vivo do portal para acionar suas tomadas. A ConnectMQ suporta MQTT 3.1.1 e 5.0, então o Tasmota se conecta sem nenhuma configuração especial.

Perguntas frequentes

Qual é a diferença entre Topic e Full Topic no Tasmota?

Topic é o nome curto do dispositivo, como plug1. Full Topic é o modelo que monta o tópico completo a partir do prefixo e do topic, por exemplo home/%prefix%/%topic%/.

Por que o Tasmota reinicia quando altero as configurações de MQTT?

O Tasmota aplica alterações de host, porta, credenciais e tópico do MQTT reiniciando. Usar o Backlog agrupa várias alterações em um único reinício.

Como consulto o estado de um dispositivo Tasmota sem alterá-lo?

Publique um payload vazio no tópico de comando, por exemplo cmnd/plug1/POWER. O dispositivo responde em stat/plug1/RESULT com seu estado atual.

Posso controlar vários dispositivos Tasmota com um único comando?

Sim. Todo dispositivo também escuta em um group topic, tasmotas por padrão, então uma mensagem para cmnd/tasmotas/POWER chega a todos eles. Altere-o com GroupTopic se você compartilha um broker.

Artigos relacionados

Guia de Configuração do Zigbee2MQTT: do Coordenador ao Painel

Instale o Zigbee2MQTT com Docker, configure o coordenador e a conexão MQTT, pareie e renomeie dispositivos, controle-os via MQTT e veja seus estados em um painel, testando primeiro no servidor MQTT público (gratuito).

8 min de leitura

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.