Automatisation IoT

Configurer Tasmota MQTT : hôte, Topic et Full Topic, puis piloter une prise connectée

Configurez l'hôte MQTT, le client, le Topic et le Full Topic de Tasmota depuis l'interface web ou la console, puis commandez une prise connectée et lisez sa télémétrie via broker.connectmq.com.

Prise connectée sous firmware Tasmota envoyant des messages Tasmota MQTT vers un broker
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

La prise en charge de MQTT par Tasmota transforme une prise connectée ESP8266 ou ESP32 bon marché en un appareil que vous pouvez commander et surveiller depuis n'importe quel script, tableau de bord ou système domotique. Dans ce tutoriel, vous allez configurer l'hôte MQTT, le client ID, le Topic et le Full Topic, puis piloter une prise et lire sa télémétrie énergétique via le serveur MQTT public gratuit broker.connectmq.com.

Comment Tasmota utilise MQTT

Tasmota est un firmware open source pour les appareils à base d'ESP. Il propose d'emblée une interface web, mais sa vraie force est MQTT : chaque commande que vous pouvez taper dans la console peut aussi être envoyée sous forme de message MQTT, et chaque changement d'état et chaque mesure de capteur est publié en retour. Une prise Tasmota devient ainsi un citoyen de première classe dans Node-RED, Home Assistant, openHAB ou votre propre code ; Jeedom et Domoticz savent aussi communiquer en MQTT.

Tasmota construit chaque topic à partir de trois éléments :

  • Préfixe - cmnd pour les commandes que vous envoyez, stat pour les réponses et changements d'état, tele pour la télémétrie périodique et la disponibilité.
  • Topic - un nom d'appareil court et unique, comme plug1.
  • Full Topic - un modèle qui les combine, par défaut %prefix%/%topic%/.

Avec le Full Topic par défaut, envoyer une commande sur cmnd/plug1/POWER fait répondre l'appareil sur stat/plug1/RESULT et stat/plug1/POWER, tandis que la télémétrie part sur tele/plug1/STATE et tele/plug1/SENSOR. L'aide-mémoire des commandes MQTT de Tasmota détaille les commandes les plus utiles.

Ce dont vous avez besoin

  • Un appareil déjà sous Tasmota (version 13 ou supérieure recommandée) et connecté à votre Wi-Fi.
  • L'adresse IP de l'appareil, pour ouvrir son interface web.
  • Un ordinateur avec mosquitto_pub et mosquitto_sub, ou n'importe quel client MQTT comme le client web ConnectMQ du portail.

Étape 1 : choisir des noms uniques

Le serveur MQTT public gratuit broker.connectmq.com est partagé par tous, et tout ce qui y est publié peut être lu par n'importe qui. Avant de configurer Tasmota, choisissez :

  • un identifiant aléatoire, par exemple t7x2pk,
  • un client ID comme tasmota-t7x2pk,
  • un Topic comme plug1,
  • un Full Topic qui garde vos messages sous votre propre préfixe : connectmq/demo/t7x2pk/%prefix%/%topic%/.

Les topics obtenus comptent six niveaux (connectmq/demo/t7x2pk/cmnd/plug1/POWER), sous la limite de huit niveaux du broker public.

Étape 2 : configurer Tasmota MQTT dans l'interface web

Ouvrez l'adresse IP de l'appareil dans un navigateur et allez dans Configuration puis Configure MQTT. Renseignez :

Champ Valeur pour le test public Valeur pour la production
Host broker.connectmq.com l'hôte de votre broker
Port 1883 1883, ou 8883 avec un build TLS
Client tasmota-t7x2pk YOUR_CLIENT_ID
User laisser vide YOUR_USERNAME
Password laisser vide YOUR_PASSWORD
Topic plug1 plug1
Full Topic connectmq/demo/t7x2pk/%prefix%/%topic%/ home/%prefix%/%topic%/

Cliquez sur Save. Tasmota redémarre et se connecte. Si la page Other configuration affiche la case MQTT décochée, cochez-la ; MQTT est activé par défaut dans les builds standard, mais certains templates le désactivent.

Étape 3 : ou configurer Tasmota MQTT depuis la console

La console (menu principal puis Console) est plus rapide et scriptable. Backlog exécute plusieurs commandes d'un coup, et l'appareil ne redémarre qu'une fois à la fin :

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

MqttUser 0 et MqttPassword 0 effacent les valeurs par défaut DVES_USER / DVES_PASS pour que l'appareil se connecte anonymement. Après le redémarrage, le journal de la console doit afficher une ligne comme MQT: Connected, suivie du message LWT Online.

Étape 4 : observer l'appareil

Abonnez-vous à tout ce qui se trouve sous votre préfixe :

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

En quelques secondes, vous verrez quelque chose comme :

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

Le topic LWT est retenu et sert aussi de Last Will à l'appareil ; il passe donc à Offline lorsque la prise perd l'alimentation ou le Wi-Fi. C'est le topic à surveiller pour la disponibilité.

Étape 5 : piloter la prise connectée via MQTT

Envoyez les commandes sur le préfixe cmnd :

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

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

# Interroger l'état actuel (payload vide)
mosquitto_pub -h broker.connectmq.com -p 1883 -i send-t7x2pk \
  -t 'connectmq/demo/t7x2pk/cmnd/plug1/POWER' -n

Chacune produit stat/plug1/RESULT avec {"POWER":"ON"} et stat/plug1/POWER avec ON. Les prises avec mesure d'énergie publient aussi tele/plug1/SENSOR avec la tension, le courant et la puissance, par défaut toutes les 300 secondes. Pour accélérer pendant les tests :

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

TelePeriod accepte de 10 à 3600 secondes. Restez raisonnable sur le broker public ; la limite y est de 10 messages par seconde et par client, et une prise toutes les 30 secondes en est très loin.

Si une prise doit revenir dans un état connu après une coupure de courant, réglez aussi PowerOnState : PowerOnState 0 la laisse éteinte, 1 l'allume, et la valeur par défaut 3 restaure le dernier état enregistré. Combiné aux topics d'état retenus, cela rend le comportement de la prise prévisible pour tous les tableaux de bord.

Lire les données Tasmota MQTT dans du code

Voici un petit écouteur Python (paho-mqtt 2.x) qui affiche les mesures de puissance et la disponibilité :

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

Passer du broker public à la production

Le broker public sert aux expériences. N'importe qui pourrait commander votre prise en devinant le topic ; une prise qui alimente un radiateur ou un serveur ne doit donc jamais y rester. Pour l'installation permanente :

  1. Créez un broker privé dans le portail ConnectMQ et copiez le nom d'utilisateur, le mot de passe et le client ID générés.
  2. Appliquez-les avec Backlog MqttHost <host>; MqttUser YOUR_USERNAME; MqttPassword YOUR_PASSWORD; MqttClient YOUR_CLIENT_ID; FullTopic home/%prefix%/%topic%/.
  3. Utilisez TLS si votre build le prend en charge. Les builds ESP32 tasmota32 le font ; la plupart des builds ESP8266 non. Le guide Tasmota MQTT TLS détaille la marche à suivre.
  4. Donnez à chaque appareil ses propres identifiants et son propre client ID, car le broker n'accepte qu'une session par client ID.

Un broker MQTT managé vous évite de garder un serveur Mosquitto allumé à la maison et vous permet d'atteindre la prise depuis l'extérieur sans redirection de ports. Pour d'autres briques de la maison connectée, consultez le guide MQTT des prises connectées et la présentation de l'automatisation IoT.

Dépannage de Tasmota MQTT

Symptôme Cause probable Solution
La console affiche MQT: Connect failed ... rc -2 Hôte injoignable ou mauvais port Vérifiez MqttHost, le DNS et le port
rc 5 (non autorisé) Mauvais utilisateur/mot de passe ou client ID Ressaisissez les identifiants, vérifiez MqttClient
Se connecte puis décroche toutes les quelques secondes Client ID en double Donnez un identifiant unique à chaque appareil et outil
Aucun message sous votre préfixe Faute de frappe dans le Full Topic Exécutez FullTopic seul pour afficher la valeur actuelle
Commandes ignorées Envoyées sur stat ou tele au lieu de cmnd Les commandes vont toujours sur le préfixe cmnd

Le projet Tasmota documente chaque commande et chaque réglage sur son site officiel, tasmota.github.io.

Pilotez vos appareils Tasmota avec ConnectMQ

Créez un broker Serverless gratuit sur app.connectmq.com sans carte bancaire, collez les identifiants dans la page Configure MQTT, et utilisez le client intégré au navigateur et l'explorateur de topics en direct du portail pour commander vos prises. ConnectMQ prend en charge MQTT 3.1.1 et 5.0 ; Tasmota se connecte donc sans réglage particulier.

Questions fréquentes

Quelle est la différence entre Topic et Full Topic dans Tasmota ?

Le Topic est le nom court de l'appareil, comme plug1. Le Full Topic est le modèle qui construit le topic complet à partir du préfixe et du Topic, par exemple home/%prefix%/%topic%/.

Pourquoi Tasmota redémarre-t-il après la modification des réglages MQTT ?

Tasmota applique les changements d'hôte, de port, d'identifiants et de topics MQTT en redémarrant. Backlog regroupe plusieurs changements en un seul redémarrage.

Comment interroger l'état d'un appareil Tasmota sans le modifier ?

Publiez un payload vide sur le topic de commande, par exemple cmnd/plug1/POWER. L'appareil répond sur stat/plug1/RESULT avec son état actuel.

Puis-je piloter plusieurs appareils Tasmota avec une seule commande ?

Oui. Chaque appareil écoute aussi un topic de groupe, tasmotas par défaut ; un message sur cmnd/tasmotas/POWER les atteint donc tous. Modifiez-le avec GroupTopic si vous partagez un broker.

Articles liés

Guide d'installation de Zigbee2MQTT : du coordinateur au tableau de bord

Installez Zigbee2MQTT avec Docker, configurez le coordinateur et la connexion MQTT, appairez et renommez les appareils, pilotez-les via MQTT et affichez leurs états sur un tableau de bord, en testant d'abord sur le serveur MQTT public gratuit.

8 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.