Cet aide-mémoire des commandes MQTT Tasmota rassemble les topics et commandes que vous utiliserez au quotidien pour commander, interroger et régler des appareils Tasmota depuis n'importe quel client MQTT. Vous verrez comment s'articulent les préfixes cmnd, stat et tele, quels payloads attend chaque commande et comment les envoyer depuis un terminal, un script ou le client web ConnectMQ. C'est la base de toute maison connectée équipée en Tasmota ; Jeedom et Domoticz, comme Home Assistant, savent aussi communiquer en MQTT avec ces appareils.
Comment sont construits les topics MQTT de Tasmota
Chaque topic Tasmota suit le modèle Full Topic, qui vaut par défaut %prefix%/%topic%/. Le nom de la commande est ajouté à la fin. Avec un appareil dont le Topic est plug1 :
| Préfixe | Sens | Exemple de topic | Rôle |
|---|---|---|---|
cmnd |
De vous vers l'appareil | cmnd/plug1/POWER |
Envoyer une commande |
stat |
De l'appareil vers vous | stat/plug1/RESULT |
Réponse JSON à une commande |
stat |
De l'appareil vers vous | stat/plug1/POWER |
État d'alimentation brut après chaque changement |
tele |
De l'appareil vers vous | tele/plug1/STATE |
État périodique (uptime, Wi-Fi, alimentation) |
tele |
De l'appareil vers vous | tele/plug1/SENSOR |
Mesures périodiques des capteurs et de l'énergie |
tele |
De l'appareil vers vous | tele/plug1/LWT |
Online / Offline, Last Will retenu |
Deux règles évitent la plupart des erreurs. D'abord, les commandes vont toujours sur cmnd ; publier sur stat ne fait rien. Ensuite, un payload vide sur un topic de commande interroge la valeur actuelle sans la modifier.
Si votre Full Topic ajoute un préfixe, par exemple home/%prefix%/%topic%/, chaque topic de cet aide-mémoire reçoit ce préfixe : home/cmnd/plug1/POWER. Si vous n'avez pas encore configuré MQTT sur l'appareil, commencez par le guide de configuration Tasmota MQTT.
Envoyer des commandes MQTT Tasmota
Vous pouvez envoyer chaque commande de cet aide-mémoire de trois façons.
Depuis un terminal, avec les clients mosquitto. Sur le serveur MQTT public gratuit, réservé aux tests et aux prototypes, utilisez un préfixe unique dans votre Full Topic, comme 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'
Depuis le client web ConnectMQ. Dans le portail, ouvrez le client MQTT intégré au navigateur, abonnez-vous à home/stat/plug1/#, puis publiez sur home/cmnd/plug1/POWER avec le payload TOGGLE. L'explorateur de topics en direct affiche la réponse RESULT à côté du topic d'état d'origine.
Depuis du code. N'importe quelle bibliothèque MQTT convient ; voici Python avec 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()
Commandes d'alimentation et de relais
| Commande | Payload | Effet |
|---|---|---|
POWER |
ON, OFF, TOGGLE |
Commute le relais 1 |
POWER |
vide | Interroge le relais 1 |
POWER2 ... POWER8 |
idem | Appareils multicanaux, une commande par relais |
POWER0 |
ON, OFF |
Commute tous les relais à la fois |
POWER |
BLINK, BLINKOFF |
Démarre ou arrête le clignotement |
PowerOnState |
0-5 |
État du relais à la mise sous tension : 0 éteint, 1 allumé, 2 basculé, 3 dernier état enregistré (par défaut) |
PulseTime1 |
0-64900 |
Minuterie d'extinction automatique : 1-111 par pas de 0,1 s, au-delà de 111 soustraire 100 pour obtenir des secondes |
PowerRetain |
0 / 1 |
Publie stat/.../POWER en retained |
PulseTime est la manière sûre de créer un interrupteur « fonctionner pendant N minutes ». Par exemple, PulseTime1 400 éteint le relais 300 secondes après son allumage, même si le réseau tombe entre-temps.
PowerRetain 1 est utile pour les tableaux de bord qui démarrent après l'appareil, car le dernier état d'alimentation est délivré immédiatement à l'abonnement. Ne retenez pas les topics de commande : un cmnd/.../POWER ON retenu rallumerait le relais à chaque reconnexion.
Commandes de télémétrie et d'état
| Commande | Payload | Effet |
|---|---|---|
TelePeriod |
10-3600 |
Secondes entre les messages tele/STATE et tele/SENSOR (300 par défaut) |
TelePeriod |
vide | Interroge l'intervalle, ou force un message de télémétrie immédiat |
Status |
0 |
Toutes les informations d'état en une seule réponse |
Status |
2 |
Version et build du firmware |
Status |
5 |
Réseau : IP, passerelle, MAC |
Status |
6 |
Hôte MQTT, port, client et utilisateur |
Status |
8 |
Mesures actuelles des capteurs |
Status |
11 |
État actuel, comme tele/STATE |
SensorRetain |
0 / 1 |
Publie tele/SENSOR en retained |
Les réponses à Status arrivent sur stat/<topic>/STATUS, STATUS2 et ainsi de suite, selon le numéro. Des valeurs courtes de TelePeriod sont pratiques pendant les tests, mais quelques centaines d'appareils qui remontent toutes les 10 secondes, cela finit par peser. Choisissez l'intervalle le plus lent qui satisfait encore votre tableau de bord.
Commandes d'éclairage et de variateur
| Commande | Payload | Effet |
|---|---|---|
Dimmer |
0-100 |
Luminosité en pourcentage |
Color |
FF8800 ou 255,136,0 |
Couleur RVB |
CT |
153-500 |
Température de couleur en mireds (du froid au chaud) |
HSBColor |
30,100,80 |
Teinte, saturation, luminosité |
Fade |
0 / 1 |
Active ou désactive les transitions douces |
Speed |
1-40 |
Vitesse de transition |
Commandes de configuration
| Commande | Exemple de payload | Remarques |
|---|---|---|
Topic |
plug1 |
Topic de l'appareil ; provoque un redémarrage |
FullTopic |
home/%prefix%/%topic%/ |
Modèle de topic ; provoque un redémarrage |
GroupTopic1 |
kitchen |
Topic supplémentaire sur lequel l'appareil écoute les commandes |
MqttHost / MqttPort |
broker.connectmq.com / 8883 |
Adresse du broker |
MqttUser / MqttPassword |
YOUR_USERNAME |
Utilisez 0 pour effacer |
MqttClient |
YOUR_CLIENT_ID |
Doit être unique par broker |
SetOption103 |
1 |
TLS sur les builds qui l'incluent |
SetOption19 |
0 / 1 |
0 pour l'intégration Tasmota de Home Assistant, 1 pour l'ancienne découverte MQTT |
Timezone |
99 ou +02:00 |
99 applique les règles d'heure d'été |
Les topics de groupe facilitent le pilotage en masse : chaque appareil avec GroupTopic1 kitchen réagit à cmnd/kitchen/POWER OFF. Le topic de groupe par défaut intégré est tasmotas. Si vos appareils partagent un broker avec d'autres personnes, remplacez-le par quelque chose d'unique, sinon un cmnd/tasmotas/... égaré pourrait atteindre vos appareils.
Les connexions chiffrées ont leurs propres exigences, détaillées dans le guide Tasmota MQTT TLS.
Commandes de maintenance
| Commande | Payload | Effet |
|---|---|---|
Restart |
1 |
Redémarre |
Upgrade |
1 |
Lance une mise à jour OTA depuis OtaUrl |
OtaUrl |
URL | Source du firmware pour les mises à jour |
WebServer |
0, 1, 2 |
Désactivé, mode utilisateur, mode administrateur |
WebPassword |
texte | Protège l'interface web |
Reset |
1 |
Réinitialisation d'usine, à utiliser avec prudence |
Exécuter plusieurs commandes avec Backlog
Backlog exécute une liste de commandes séparées par des points-virgules, que vous pouvez aussi envoyer 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'
Delay utilise des unités de 0,1 seconde ; Delay 50 attend donc cinq secondes. Backlog est la façon la plus propre de pousser une configuration complète vers un parc d'appareils sans passer par l'interface web de chacun.
Les règles : des commandes déclenchées sur l'appareil
Les règles permettent à un appareil de réagir sans aucun serveur. Un exemple classique publie un message personnalisé lorsque le relais change d'état :
Rule1 ON Power1#State DO Publish home/events/plug1 {"power":"%value%"} ENDON
Rule1 1
Publish depuis une règle envoie vers le topic de votre choix, ce qui est pratique lorsqu'un autre système attend un format précis.
Liste de contrôle rapide
- Envoyez les commandes sur
cmnd/<topic>/<Command>; lisez les réponses surstat/<topic>/RESULT. - Un payload vide signifie « interroger », pas « éteindre ».
- Surveillez
tele/<topic>/LWTpour la disponibilité. - Retenez les topics d'état si les tableaux de bord en ont besoin ; ne retenez jamais les commandes.
- Utilisez des client IDs, topics et topics de groupe uniques sur les brokers partagés.
Faites tourner vos appareils Tasmota sur ConnectMQ
Tester sur le serveur MQTT public gratuit est très bien, mais un broker privé tient les inconnus à l'écart de vos relais. Un broker MQTT managé de ConnectMQ donne à chaque appareil ses propres identifiants, un explorateur de topics en direct pour vérifier les réponses et TLS sur le port 8883 pour les builds ESP32. Créez un broker Serverless (Free) sur app.connectmq.com sans carte bancaire, et consultez le guide de l'automatisation IoT pour des idées de projets.
Questions fréquentes
Quelle est la différence entre cmnd, stat et tele dans Tasmota ?
cmnd est l'endroit où vous envoyez les commandes, stat transporte les réponses et les changements d'état, et tele transporte la télémétrie périodique et le message de disponibilité Online/Offline.
Comment vérifier l'état d'un appareil Tasmota sans le commuter ?
Publiez un payload vide sur le topic de commande, par exemple cmnd/plug1/POWER. L'appareil répond sur stat/plug1/RESULT.
Comment envoyer plusieurs commandes Tasmota dans un seul message MQTT ?
Publiez sur cmnd/<topic>/Backlog avec des commandes séparées par des points-virgules, par exemple Power ON; Delay 50; Power OFF.
Pourquoi mes commandes Tasmota sont-elles ignorées ?
Le plus souvent, le topic est erroné : les commandes doivent utiliser le préfixe cmnd et correspondre exactement au Full Topic de l'appareil, y compris un éventuel préfixe supplémentaire et la casse des lettres.



