Tasmota transforme des prises connectées, relais et capteurs bon marché à base d'ESP8266 et d'ESP32 en appareils MQTT bien élevés. Indiquez-lui un broker, donnez-lui un nom de topic : il accepte alors les commandes sur cmnd/<topic>/…, publie les résultats sur stat/<topic>/… et envoie une télémétrie périodique sur tele/<topic>/…. Une fois ces trois préfixes compris, vous pouvez piloter n'importe quel appareil Tasmota depuis n'importe quel client MQTT.
Ce guide configure la connexion au broker, explique Topic et FullTopic, passe en revue les commandes et la télémétrie du quotidien, et teste tout depuis le navigateur avant de raccorder l'appareil à Home Assistant ou Node-RED.
Configurer le broker
Ouvrez l'interface web de l'appareil et allez dans Configuration → Configure MQTT :
| Champ | Valeur | Remarques |
|---|---|---|
| Host | broker.connectmq.com | Nom d'hôte ou IP de votre broker |
| Port | 1883 | 8883 uniquement sur les builds avec TLS (voir plus bas) |
| Client | tasmota-plug1 | Doit être unique par appareil ; la valeur par défaut DVES_%06X utilise l'ID de la puce |
| User / Password | les identifiants de votre broker | À laisser vides uniquement sur un broker sans authentification |
| Topic | testmqtt-plug1 | Le nom court de l'appareil |
| Full Topic | testmqtt/tasmota/%prefix%/%topic%/ | Le modèle de tous les topics |
L'enregistrement redémarre l'appareil. Vous pouvez faire la même chose depuis la Console en une seule ligne avec Backlog, très pratique pour configurer de nombreux appareils :
Backlog MqttHost broker.connectmq.com; MqttPort 1883; MqttUser username; MqttPassword password; MqttClient tasmota-plug1; Topic testmqtt-plug1; FullTopic testmqtt/tasmota/%prefix%/%topic%/Vérifiez que MQTT est bien activé (Configuration → Configure Other → MQTT enable, ou SetOption3 1). Après le redémarrage, la console devrait afficher :
MQT: Attempting connection...
MQT: ConnectedSi vous voyez à la place MQT: Connect failed to broker.connectmq.com:1883, rc -2. Retry in 10 sec, l'appareil n'a pas pu ouvrir de connexion TCP ; rc 4 ou rc 5 signifie que les identifiants ont été refusés. Le guide Tasmota ne se connecte pas couvre tous les cas.
Topic et FullTopic
Tasmota construit chaque topic MQTT à partir du modèle FullTopic. Trois jetons sont remplacés à l'exécution :
%prefix%devientcmnd,statoutele.%topic%devient le Topic de l'appareil (testmqtt-plug1).%hostname%et%id%sont aussi disponibles si vous préférez des noms dérivés de la puce.
Avec le FullTopic par défaut %prefix%/%topic%/, une prise nommée kitchen utilise cmnd/kitchen/POWER. Sur un broker de test partagé, c'est bien trop générique : votre cmnd/kitchen/POWER entrerait en collision avec celui de n'importe qui. Le FullTopic ci-dessus préfixe tout par testmqtt/tasmota/, ce qui vous donne un espace de noms à vous et simplifie les abonnements :
| Usage | Topic avec notre FullTopic |
|---|---|
| Envoyer une commande | testmqtt/tasmota/cmnd/testmqtt-plug1/POWER |
| Résultat de la commande | testmqtt/tasmota/stat/testmqtt-plug1/RESULT |
| État d'alimentation actuel | testmqtt/tasmota/stat/testmqtt-plug1/POWER |
| État périodique | testmqtt/tasmota/tele/testmqtt-plug1/STATE |
| Mesures des capteurs | testmqtt/tasmota/tele/testmqtt-plug1/SENSOR |
| Online / Offline (LWT) | testmqtt/tasmota/tele/testmqtt-plug1/LWT |
Pour une installation plus importante, choisissez un schéma par lieu ou par fonction et tenez-vous-y ; la conception de topics pour la maison connectée propose des modèles qui passent à l'échelle.
Commandes : cmnd et stat
Toute commande de console peut être envoyée en MQTT. Le nom de la commande est le dernier niveau du topic et l'argument est le payload :
# Allumer
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m ON
# Basculer
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -m TOGGLE
# Interroger l'état : un payload vide demande sans rien changer
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -nL'appareil répond sur deux topics : stat/testmqtt-plug1/RESULT avec un JSON comme {"POWER":"ON"}, et stat/testmqtt-plug1/POWER avec la valeur brute ON. Les appareils à plusieurs relais utilisent POWER1, POWER2, etc.
D'autres commandes que vous utiliserez souvent :
| Commande | Payload | Effet |
|---|---|---|
Status | 0 | État complet, renvoyé sous forme de plusieurs messages stat/.../STATUS* |
Status | 6 | Configuration MQTT seule, utile pour vérifier FullTopic et client ID |
TelePeriod | 60 | Télémétrie toutes les 60 secondes (10–3600) |
Dimmer | 0–100 | Luminosité des lampes variables |
Restart | 1 | Redémarre l'appareil |
Backlog | cmd1 arg; cmd2 arg | Exécute plusieurs commandes à la suite |
Vous pouvez aussi envoyer Backlog en MQTT, ce qui ramène la reconfiguration à distance de nombreux appareils à un script d'une ligne. Pour d'autres usages en terminal, voir exemples mosquitto_pub et mosquitto_sub.
Télémétrie : tele
Toutes les TelePeriod secondes (300 par défaut), Tasmota publie deux messages :
{"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}}Les champs exacts dépendent du template de l'appareil et des capteurs connectés. tele/.../LWT est particulier : Tasmota publie Online en retained après la connexion et enregistre Offline comme Last Will, si bien que les abonnés savent toujours si l'appareil est joignable.
Si vous avez besoin de valeurs plus rapidement que ne le permet TelePeriod, utilisez une règle pour publier à chaque changement. Les règles s'exécutent sur l'appareil lui-même :
Rule1 ON Power1#State DO Publish testmqtt/tasmota/events/testmqtt-plug1 {"power":%value%} ENDON
Rule1 1Tout tester depuis le navigateur
- Ouvrez le client MQTT en ligne et connectez-vous à
broker.connectmq.comsur le port 8084 avec le chemin/mqtt. - Abonnez-vous à
testmqtt/tasmota/#. Vous devriez recevoir immédiatement le retainedtele/testmqtt-plug1/LWT = Online. - Publiez
TOGGLEsurtestmqtt/tasmota/cmnd/testmqtt-plug1/POWER. Le relais claque etstat/.../RESULTainsi questat/.../POWERarrivent en une fraction de seconde. - Publiez
10surtestmqtt/tasmota/cmnd/testmqtt-plug1/TelePeriodet regardeztele/.../STATEarriver toutes les dix secondes. Remettez ensuite une valeur raisonnable. - Débranchez l'appareil. Après le délai du keep alive, le broker publie
LWT = Offline.
Observer votre appareil Tasmota dans le client en ligne
Quand un abonnement n'affiche rien, comparez le filtre à un topic réel avec le topic matcher. Un segment final manquant ou un mauvais ordre des préfixes dans le FullTopic est le coupable habituel.
Messages retained et état d'alimentation
Par défaut, Tasmota ne publie pas ses messages stat en retained. Si un dashboard a besoin de l'état actuel dès l'abonnement, interrogez-le (payload vide sur cmnd/.../POWER) ou activez PowerRetain 1 pour que stat/.../POWER soit retained.
Ne publiez jamais de commandes avec le flag retain. Un ON retained sur cmnd/.../POWER est redélivré à chaque reconnexion de l'appareil, et le relais s'allume tout seul après chaque coupure de courant ou de Wi-Fi. Si cela arrive, effacez-le en publiant un message retained vide sur le même topic :
mosquitto_pub -h broker.connectmq.com -u "$MQTT_USER" -P "$MQTT_PASS" \
-t testmqtt/tasmota/cmnd/testmqtt-plug1/POWER -r -nPour en savoir plus sur la rétention, voir les messages retenus MQTT.
TLS et Home Assistant
TLS dépend du build du firmware. De nombreux builds ESP32 incluent la prise en charge de MQTT TLS, tandis que la plupart des builds ESP8266 nécessitent une compilation personnalisée avec USE_MQTT_TLS. Sur un build compatible TLS, réglez MqttPort 8883 et SetOption103 1, puis consultez la documentation TLS de Tasmota pour savoir comment votre build valide le certificat du broker. Sur les builds sans TLS, restez sur le port 1883 au sein d'un réseau local de confiance.
Home Assistant utilise l'intégration Tasmota, qui lit les messages de discovery propres à Tasmota (activés par défaut avec SetOption19 0). Pointez l'intégration MQTT de Home Assistant vers le même broker et les appareils apparaissent automatiquement. Le côté Home Assistant est traité dans Home Assistant MQTT.
Le modèle MQTT de Tasmota est simple une fois les préfixes assimilés : les commandes entrent par cmnd, les réponses sortent par stat, et la télémétrie arrive par tele à chaque TelePeriod. Donnez à chaque appareil un client ID unique et un FullTopic qui garde vos appareils dans leur propre espace de noms, vérifiez commandes, télémétrie et LWT depuis le client en ligne, et chaque automatisation construite par-dessus se comportera de façon prévisible.
Questions fréquentes
Quelle est la différence entre Topic et FullTopic dans Tasmota ?
Topic est le nom court de l'appareil, par exemple kitchen-plug. FullTopic est le modèle qui construit chaque topic MQTT à partir de lui, par défaut %prefix%/%topic%/, où %prefix% devient cmnd, stat ou tele. Modifiez Topic pour renommer un appareil ; modifiez FullTopic pour placer tous les appareils sous un espace de noms commun.
À quelle fréquence Tasmota envoie-t-il sa télémétrie ?
Toutes les TelePeriod secondes, 300 par défaut. Réglez-la avec la commande TelePeriod, par exemple TelePeriod 60. Les valeurs des capteurs vont sur tele/<topic>/SENSOR et l'état de l'appareil sur tele/<topic>/STATE.
Pourquoi mon relais Tasmota s'allume-t-il tout seul après un redémarrage ?
Généralement à cause d'un message retained sur un topic cmnd : le broker le redélivre à chaque reconnexion de l'appareil. Effacez-le en publiant un message retained vide sur ce topic, et ne publiez jamais de commandes avec le flag retain.


