Formation PUB420 : Système domotique DIY, 2020 Échanger des données entre boîtes domotiques (MQTT et API)

11.7 Plugin MQTT Manager sous Jeedom


Le plugin MQTT Manager par Jeedom SAS permet de communiquer avec d'autres systèmes à l'aide du protocole MQTT.

Ce plugin installera un client MQTT et, en option, un agent MQTT Mosquitto, qui est une solution libre et très répandue.

Note : si vous avez installé le Z-Wave, le plugin MQTT Manager a probablement été installé en même temps.

Installation du plugin

Pour installer le plugin MQTT Manager, rendez-vous dans Plugins / Gestion des plugins / Market.

Dans la zone de recherche, entrez MQTT.

Cliquez sur le plugin MQTT Manager par Jeedom SAS puis sur Installer.

Plugin MQTT Manager

Configuration du plugin

Dans l'interface de Jeedom, rendez-vous dans le menu Plugins / Gestion des plugins / MQTT Manager.

Activez le plugin en cliquant sur le bouton Activer dans la zone État.

Faites le nécessaire pour que les dépendances soient à OK.

Remarquez qu'il faudra configurer l'agent MQTT à utiliser (voir section suivante) avant que le démon puisse être à OK.

MQTT Manager activé

Agent MQTT à utiliser

Dans la zone Configuration, vous devez indiquer quel agent MQTT doit être utilisé :

  • Broker local permet d'installer un agent MQTT directement sur le Raspberry Pi qui héberge Jeedom.
    • Vous devez spécifier les informations d'authenfication au format code:motdepasse  où code est le code d'authentification requis par l'agent MQTT et motdepasse est son mot de passe. Les clients MQTT devront utiliser ces informations pour pouvoir publier ou s'abonner à un canal géré par cet agent MQTT.
    • Cliquez sur Sauvegarder.
    • Cliquez ensuite sur Redémarrer Mosquitto.

      Broker local

  • Broker local Docker permet lui aussi d'installer un agent MQTT localement mais en passant par un conteneur Docker. Nous ne traiterons pas ce cas ici.
  • Broker distant permet de se brancher à un agent MQTT situé sur un autre ordinateur, par exemple sur un autre Raspberry Pi ou sur un ordinateur, ou encore à un agent MQTT disponible sur le Web, par exemple test.mosquitto.org.
    • Vous pouvez conserver le protocole mqtt. Une autre option plus sécuritaire serait d'utiliser mqtts et d'ajouter les informations sur le certificat TLS à utiliser.
    • Ensuite, entrez l'adresse IP de la machine sur laquelle l'agent MQTT est installé, par exemple 192.168.1.153.
    • Finalement, indiquez le port à utiliser, par exemple 1883 pour que les communications soient non cryptées ou 8883 pour avoir une communication sécurisée.
    • Pour que la communication puisse avoir lieu, il faut spécifier le code d'authentification et le mot de passe requis par l'agent MQTT.

      Agent MQTT perso

Dans tous les cas, nous n'utiliserons pas ici le Topic racine Jeedom. Vous pouvez laisser la valeur par défaut.

Une fois l'agent MQTT configuré, vous devez cliquer sur Sauvegarder dans la section Configuration .

Cliquez ensuite sur (Re)Démarrer dans la section Démon.

Une fois que tout est à OK, il sera possible de publier et de s'abonner à un canal géré par cet agent MQTT.

Abonnement à un canal

Pour pouvoir publier et/ou s'abonner à un canal, il faut ajouter un équipement qui représentera le client publieur ou le client abonné.

Rendez-vous dans le menu Plugins / Programmation / MQTT Manager.

Dans le haut de l'écran, cliquez sur Ajouter.

Donnez un nom à l'équipement. Ce nom peut représenter le type d'informations que vous publierez ou auxquelles vous vous abonnerez, par exemple Données capteur température. Une autre option consiste à utiliser le nom du canal utilisé, par exemple maison-chambre-temperature (j'ai remplacé les barres obliques par des traits d'union car Jeedom supprimera les barres obliques).

Parmi les informations à entrer, notons :

  • Dans la zone Topic racine, indiquez le début du nom du canal auquel vous désirez vous abonner ou sur lequel vous désirez publier. Par exemple, si vous désirez échanger différentes informations du canal homeassistant, soit homeassistant/temperature et homeassistant/luminosite, le topic racine sera homeassistant.
  • La case Activer l'analyse des valeurs permet de demander à Jeedom de créer automatiquement des commandes de type info quand une information est publiée sur le canal spécifié.

Retrouver le payload d'un message reçu

La configuration des informations à recevoir est réalisée dans l'onglet Commandes.

Si vous avez coché la case Activer l'analyse des valeurs, cliquez sur le bouton Découverte dans le haut de l'écran.

Si des messages ont été publiés sur le canal spécifié dans l'onglet Équipement ou dans un de ses sous-canaux, Jeedom vous montrera les détails de ce message.

Découverte

Vous pouvez cocher le ou les messages désirés pour que Jeedom crée automatiquement une commande qui permet de s'abonner au canal spécifié. La ou les commandes seront créées dès que vous cliquez sur Sauvegarder.

Commande

Il est également possible de configurer manuellement les informations à recevoir.

  • Cliquez sur le bouton + Commandes.
  • Donnez un nom à la commande.
  • Dans la case Paramètres, spécifiez le sous-canal sur lequel vous désirez vous abonner. Par exemple, si, dans l'onglet Équipement, vous avez spécifié le canal homeassistant et que vous désirez vous abonner au canal homeassistant/temperature, inscrivez temperature.

Peu importe si la commande a été découverte ou créée manuellement, vous pouvez voir la valeur reçue à partir du Dashboard, à condition que l'équipement soit Visible et que vous lui avez spécifié un objet parent.

Tuile

Ici, la tuile représente deux valeurs puisque j'ai ajouté deux commandes de type Info.

Publier une information

Dans l'onglet Commandes, remplissez les informations sur ce que vous désirez publier.

  • Donnez un nom significatif à la commande.
  • Il s'agira de commandes de type action.
  • Dans la zone Topic, spécifiez le sous-canal sur lequel vous désirez publier.
  • Dans la zone Message, envoyez le payload du message à publier. Il peut s'agir d'une valeur codée en dur ou d'une valeur tirée d'un équipement.

    Si le payload doit être une valeur tirée d'un capteur, vous pouvez retrouver cette valeur à l'aide d'une chaîne au format #[Objet][Equipement][Commande]#, par exemple #[Cuisine][Capteur Zooz 4-en-1][Luminosité]#.

  • Pour envoyer le message, sauvegardez la commande puis cliquez sur Tester.

    Commande de type Action

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre