Este guia rápido de comandos MQTT do Tasmota reúne os topics e comandos que você vai usar todos os dias para ligar, consultar e ajustar dispositivos Tasmota a partir de qualquer cliente MQTT. Você vai entender como os prefixos cmnd, stat e tele se encaixam, qual payload cada comando espera e como enviá-los de um terminal, de um script ou do cliente web da ConnectMQ.
Como os topics MQTT do Tasmota são montados
Todo topic do Tasmota segue o modelo Full Topic, que por padrão é %prefix%/%topic%/. O nome do comando é acrescentado no final. Para um dispositivo cujo Topic é plug1:
| Prefixo | Direção | Topic de exemplo | Finalidade |
|---|---|---|---|
cmnd |
Você para o dispositivo | cmnd/plug1/POWER |
Enviar um comando |
stat |
Dispositivo para você | stat/plug1/RESULT |
Resposta JSON a um comando |
stat |
Dispositivo para você | stat/plug1/POWER |
Estado simples do relé após qualquer mudança |
tele |
Dispositivo para você | tele/plug1/STATE |
Estado periódico (uptime, Wi-Fi, energia) |
tele |
Dispositivo para você | tele/plug1/SENSOR |
Leituras periódicas de sensores e de energia |
tele |
Dispositivo para você | tele/plug1/LWT |
Online / Offline, Last Will retido |
Duas regras evitam a maioria dos erros. Primeiro, os comandos sempre vão para cmnd; publicar em stat não faz nada. Segundo, um payload vazio em um topic de comando consulta o valor atual sem alterá-lo.
Se o seu Full Topic adiciona um prefixo, por exemplo home/%prefix%/%topic%/, todos os topics deste guia ganham esse prefixo: home/cmnd/plug1/POWER. Se você ainda não configurou o MQTT no dispositivo, comece pelo guia de configuração MQTT do Tasmota.
Enviando comandos MQTT ao Tasmota
Você pode enviar qualquer comando deste guia de três maneiras.
Pelo terminal com os clientes do mosquitto. No servidor MQTT público (gratuito), pensado para testes e protótipos, use um prefixo exclusivo no seu 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'
Pelo cliente web da ConnectMQ. No portal, abra o cliente MQTT no navegador, assine home/stat/plug1/# e depois publique em home/cmnd/plug1/POWER com o payload TOGGLE. O explorador de topics em tempo real mostra a resposta RESULT ao lado do topic de estado original.
Pelo código. Qualquer biblioteca MQTT funciona; aqui está um exemplo em Python com 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 energia e relé
| Comando | Payload | Efeito |
|---|---|---|
POWER |
ON, OFF, TOGGLE |
Aciona o relé 1 |
POWER |
vazio | Consulta o relé 1 |
POWER2 ... POWER8 |
igual | Dispositivos multicanal, um por relé |
POWER0 |
ON, OFF |
Aciona todos os relés de uma vez |
POWER |
BLINK, BLINKOFF |
Inicia ou para o pisca-pisca |
PowerOnState |
0-5 |
Estado do relé ao ligar: 0 desligado, 1 ligado, 2 alternar, 3 último estado salvo (padrão) |
PulseTime1 |
0-64900 |
Temporizador de desligamento automático: 1-111 em passos de 0,1 s; acima de 111, subtraia 100 para obter segundos |
PowerRetain |
0 / 1 |
Publica stat/.../POWER como retido |
PulseTime é a forma segura de criar um interruptor do tipo "ligar por N minutos". Por exemplo, PulseTime1 400 desliga o relé 300 segundos depois de ele ligar, mesmo que a rede caia nesse intervalo.
PowerRetain 1 é útil para dashboards que iniciam depois do dispositivo, pois o último estado do relé é entregue imediatamente na assinatura. Não retenha topics de comando; um cmnd/.../POWER ON retido religaria o relé a cada reconexão.
Comandos de telemetria e status
| Comando | Payload | Efeito |
|---|---|---|
TelePeriod |
10-3600 |
Segundos entre as mensagens tele/STATE e tele/SENSOR (padrão 300) |
TelePeriod |
vazio | Consulta o intervalo ou força uma mensagem de telemetria imediata |
Status |
0 |
Todas as informações de status em uma única resposta |
Status |
2 |
Versão e build do firmware |
Status |
5 |
Rede: IP, gateway, MAC |
Status |
6 |
Host, porta, cliente e usuário MQTT |
Status |
8 |
Leituras atuais dos sensores |
Status |
11 |
Estado atual, como em tele/STATE |
SensorRetain |
0 / 1 |
Publica tele/SENSOR como retido |
As respostas ao Status chegam em stat/<topic>/STATUS, STATUS2 e assim por diante, conforme o número. Valores curtos de TelePeriod são práticos durante os testes, mas algumas centenas de dispositivos reportando a cada 10 segundos somam bastante tráfego. Escolha o intervalo mais lento que ainda atenda ao seu dashboard.
Comandos de luz e dimmer
| Comando | Payload | Efeito |
|---|---|---|
Dimmer |
0-100 |
Brilho em porcentagem |
Color |
FF8800 ou 255,136,0 |
Cor RGB |
CT |
153-500 |
Temperatura de cor em mireds (de fria a quente) |
HSBColor |
30,100,80 |
Matiz, saturação, brilho |
Fade |
0 / 1 |
Transições suaves ativadas ou desativadas |
Speed |
1-40 |
Velocidade da transição |
Comandos de configuração
| Comando | Payload de exemplo | Observações |
|---|---|---|
Topic |
plug1 |
Topic do dispositivo; provoca uma reinicialização |
FullTopic |
home/%prefix%/%topic%/ |
Modelo de topic; provoca uma reinicialização |
GroupTopic1 |
kitchen |
Topic extra em que o dispositivo escuta comandos |
MqttHost / MqttPort |
broker.connectmq.com / 8883 |
Endereço do broker |
MqttUser / MqttPassword |
YOUR_USERNAME |
Use 0 para limpar |
MqttClient |
YOUR_CLIENT_ID |
Deve ser único por broker |
SetOption103 |
1 |
TLS em builds que o incluem |
SetOption19 |
0 / 1 |
0 para a integração Tasmota no Home Assistant, 1 para o MQTT discovery legado |
Timezone |
99 ou +02:00 |
99 usa as regras de horário de verão |
Os group topics facilitam o controle em massa: todo dispositivo com GroupTopic1 kitchen reage a cmnd/kitchen/POWER OFF. O group topic padrão embutido é tasmotas. Se os seus dispositivos compartilham um broker com outras pessoas, troque-o por algo exclusivo; caso contrário, um cmnd/tasmotas/... perdido pode chegar aos seus dispositivos.
Conexões criptografadas têm requisitos próprios, explicados no guia de TLS para MQTT no Tasmota.
Comandos de manutenção
| Comando | Payload | Efeito |
|---|---|---|
Restart |
1 |
Reinicia |
Upgrade |
1 |
Inicia uma atualização OTA a partir de OtaUrl |
OtaUrl |
URL | Origem do firmware para atualizações |
WebServer |
0, 1, 2 |
Desativado, modo usuário, modo administrador |
WebPassword |
texto | Protege a interface web |
Reset |
1 |
Restauração de fábrica, use com cuidado |
Executando vários comandos com Backlog
O Backlog executa uma lista de comandos separados por ponto e vírgula, que você também pode enviar via 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'
O Delay usa unidades de 0,1 segundo, então Delay 50 espera cinco segundos. O Backlog é a forma mais limpa de enviar uma configuração completa para uma frota de dispositivos sem precisar abrir a interface web de cada um.
Rules: comandos disparados no próprio dispositivo
As Rules permitem que o dispositivo reaja sem nenhum servidor. Um exemplo clássico publica uma mensagem personalizada quando o relé muda de estado:
Rule1 ON Power1#State DO Publish home/events/plug1 {"power":"%value%"} ENDON
Rule1 1
O Publish dentro de uma rule envia para qualquer topic que você quiser, o que é útil quando outro sistema espera um formato específico.
Checklist de referência rápida
- Envie comandos para
cmnd/<topic>/<Command>; leia as respostas emstat/<topic>/RESULT. - Payload vazio significa "consultar", não "desligar".
- Acompanhe
tele/<topic>/LWTpara saber a disponibilidade. - Retenha os topics de estado se os dashboards precisarem; nunca retenha comandos.
- Use client IDs, topics e group topics exclusivos em brokers compartilhados.
Rode seus dispositivos Tasmota na ConnectMQ
Testar no servidor MQTT público não tem problema, mas ele não serve para dados de produção, e um broker privado mantém estranhos longe dos seus relés, seja em casa ou nas tomadas inteligentes de um galpão de logística. Um broker MQTT gerenciado da ConnectMQ dá a cada dispositivo suas próprias credenciais, um explorador de topics em tempo real para conferir as respostas e TLS na porta 8883 para builds de ESP32. Crie um broker Serverless gratuito em app.connectmq.com sem cartão de crédito e veja o guia de automação IoT para ter ideias de projetos.
Perguntas frequentes
Qual é a diferença entre cmnd, stat e tele no Tasmota?
cmnd é onde você envia comandos, stat transporta respostas e mudanças de estado, e tele transporta a telemetria periódica e a mensagem de disponibilidade Online/Offline.
Como verifico o estado de um dispositivo Tasmota sem acioná-lo?
Publique um payload vazio no topic de comando, por exemplo cmnd/plug1/POWER. O dispositivo responde em stat/plug1/RESULT.
Como envio vários comandos Tasmota em uma única mensagem MQTT?
Publique em cmnd/<topic>/Backlog com os comandos separados por ponto e vírgula, por exemplo Power ON; Delay 50; Power OFF.
Por que meus comandos Tasmota são ignorados?
Geralmente o topic está errado: os comandos precisam usar o prefixo cmnd e corresponder exatamente ao Full Topic do dispositivo, incluindo qualquer prefixo extra e maiúsculas/minúsculas.



