MQTT
Le canal mqtt s’abonne aux topics sur un broker MQTT et envoie chaque message dans la boucle de l’agent ou le moteur SOP. Il est conditionné par la fonctionnalité de compilation channel-mqtt.
Il s’agit d’une source d’événements SOP. Pour la syntaxe des déclencheurs et la correspondance des sujets, voir SOP Fan-In: MQTT. Cette page couvre la connexion au broker.
Configuration
La liste complète des champs, dérivée du schéma live. Pour un abonné basique, vous définissez broker_url et topics.
broker_url*
URL du broker MQTT (par exemple mqtt://localhost:1883 ou mqtts://broker.example.com:8883). Utilisez mqtt:// pour les connexions en clair ou mqtts:// pour TLS.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.broker_url.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.broker_url.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.broker_url <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__broker_url=
client_id*
Identifiant du client MQTT (doit être unique pour chaque broker).
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.client_id.
zerocode
Dans le panneau Config, définissez le champ channels.mqtt.<alias>.client_id.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.client_id <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__client_id=
excluded_tools
Outils exclus de la spécification d’outils de ce canal. Lorsque ce paramètre est défini, ces outils ne sont pas exposés au modèle lors des réponses via ce canal.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.excluded_tools.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.excluded_tools.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.excluded_tools <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__excluded_tools=
keep_alive_secs
Intervalle keep-alive en secondes (par défaut : 30). Empêche la déconnexion du broker en cas d’inactivité.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.keep_alive_secs.
zerocode
Dans le panneau Config, définissez le champ channels.mqtt.<alias>.keep_alive_secs.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.keep_alive_secs <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__keep_alive_secs=
password 🔑
Mot de passe pour l’authentification (facultatif).
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.password.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.password.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.password # entrée masquée, stockée chiffrée
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__password=
qos
Niveau QoS MQTT (0 = au plus une fois, 1 = au moins une fois, 2 = exactement une fois). Par défaut : 1.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.qos.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.qos.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.qos <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__qos=
topics
Sujets auxquels s’abonner (p. ex., sensors/#, alerts/+/critical). Au moins un sujet est requis.
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.topics.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.topics.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.topics <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__topics=
use_tls
Activer le chiffrement TLS. Doit correspondre au schéma de broker_url : - mqtt:// → use_tls: false - mqtts:// → use_tls: true
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.use_tls.
zerocode
Dans le volet Config, définissez le champ channels.mqtt.<alias>.use_tls.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.use_tls <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__use_tls=
username
Nom d’utilisateur pour l’authentification (facultatif).
Posez-le sur n’importe quelle surface :
Tableau de bord de la passerelle
Ouvrez /config/channels/mqtt et définissez le champ channels.mqtt.<alias>.username.
zerocode
Dans le panneau Config, définissez le champ channels.mqtt.<alias>.username.
zeroclaw config
zeroclaw config set channels.mqtt.<alias>.username <value>
Variable d’environnement
Exportez le remplacement (shells POSIX ; à placer dans ~/.bashrc, ~/.zshrc, .env ou un Dockerfile). Remplacez <alias> par l’alias littéral :
export ZEROCLAW_channels__mqtt__<alias>__username=
Référence complète des champs : référence de configuration.
TLS
Définissez use_tls pour qu’il corresponde au schéma de broker_url : mqtts:// va de pair avec use_tls = true, mqtt:// avec use_tls = false. Une incompatibilité est l’échec de connexion le plus courant.
Dépannage
| Symptôme | Cause probable | Corriger |
|---|---|---|
| Erreurs de connexion au démarrage | L’URL du broker et le flag TLS sont en désaccord | Associez le schéma à use_tls (mqtt:// avec false, mqtts:// avec true) |
| Abonné mais aucun message | le filtre de topic ne correspond pas au topic publié | Vérifier les topics et les jokers par rapport à ce qu’émet le publisher |
| SOP ne démarre pas | incompatibilité de topic ou une condition défaillante | Vérifiez le topic trigger et la condition par rapport au payload |
Voir aussi
- SOP Fan-In: MQTT : syntaxe de déclenchement et correspondance des topics
- AMQP
- Vue d’ensemble des canaux