Formation PUB425 : Objets connectés avec Jeedom et Home Assistant, A-2025 MQTT

49.3 Client MQTT dans Home Assistant


Home Assistant peut effectuer des communications MQTT grâce à l'intégration MQTT.

Cette intégration installera un client MQTT avec la possibilité d'installer également un agent.

Rappel : pour qu'une communication MQTT ait lieu, il faut :

  • un client publieur et un client abonné qui utilisent le même agent MQTT (si l'agent est local, le publieur et l'abonné devront être sur le même sous-réseau)
  • un client publieur et un client abonné qui utilisent le même canal MQTT

Dans cette fiche :

Installation du client MQTT

Pour installer l'intégration MQTT dans Home Assistant :

  • Rendez-vous dans le menu Paramètres / Appareils et services / onglet Intégrations.
  • Cliquez sur Ajouter une intégration.
  • Recherchez MQTT puis cliquez sur l'intégration trouvée.

    MQTT

  • Home Assistant vous demande ensuite de préciser ce que vous désirez ajouter. Choisissez MQTT.

    MQTT

  • Dans l'écran suivant, choisissez l'une des options :

    • Utiliser le module complémentaire officiel Mosquitto Mqtt Broker : pour installer un agent MQTT sur le Pi
    • Saisir manuellement les informations de connexion du courtier MQTT : pour utiliser un agent MQTT existant, qui peut être sur le Pi ou ailleurs

    MQTT

Configuration du client MQTT (informations sur l'agent à utiliser)

La configuration du client MQTT consiste principalement à indiquer les coordonnées de l'agent MQTT à utiliser.

Les configurations du client MQTT seront enregistrées dans le fichier /mnt/data/supervisor/homeassistant/.storage/core.config_entries.

Une fois le client correctement configuré, Home Assistant pourra publier sur des canaux et à s'abonner à d'autres canaux sur ce même agent.

Il est possible en tout temps de modifier les configurations du client MQTT. Rendez-vous dans le menu Paramètres / Appareils et services / Clic sur la tuile MQTT / Clic sur les trois points verticaux / Reconfigurer.

Agent test.mosquitto.org

Pendant le processus d'installation du client MQTT, vous devez préciser si vous souhaitez travailler avec un agent MQTT installé sur le même Raspberry Pi que Home Assistant ou utiliser un agent MQTT externe.

Pour travailler avec l'agent test.mosquitto.org, choisissez Saisir manuellement les informations de connexion du courtier MQTT

Avec l'agent test.mosquitto.org, il n'y a pas de code d'usager ni de mot de passe à fournir.

Il ne faut pas oublier que toutes les informations publiées sur test.mosquitto.org sont publiques donc il ne faut utiliser cet agent que pour faire des tests avec des données non sensibles.

Remarquez que dans cet exemple, le port 1883 est utilisé pour les communications non cryptées.

Mosquitto.org

Notez que puisque l'agent test.mosquitto.org est un agent de test, il n'y a pas de garantie qu'il fonctionne correctement en tout temps.

De plus, il est possible qu'il limite le nombre de connexions en provenance d'une même adresse IP publique (toutes les boîtes domotiques de la classe ont la même adresse IP publique).

Si vous obtenez le message « Échec de connexion », assurez-vous que vous avez bien écrit l'URL de l'agent puis réessayez.

Si cela ne fonctionne toujours pas, il faudra qu'une autre personne de la classe referme sa connexions pour que vous y ayez accès.

Parfois, c'est l'agent qui est temporairement non disponible. Il faut alors réessayer plus tard. Notez qu'il peut arriver que l'agent ne soit pas disponible pendant plusieurs heures.

Échec de connexion

Agent installé localement

Pour installer un agent MQTT sur le même Raspberry Pi que Home Assistant, vous pouvez cliquer sur Utiliser le module complémentaire officiel Mosquitto Mqtt Broker lors de l'installation du client. L'agent sera alors installé en même temps que le client.

Vous pouvez alors modifier les configurations de l'agent en vous rendant dans le menu Paramètres / Appareils et services / Clic sur la tuile MQTT / Clic sur les trois points verticaux / Reconfigurer.

Broker local

Avec ce type d'installation, un autre système pourra utiliser cet agent à l'aide de ces informations :

  • courtier : adresse IP du Pi sans le port (ex : 192.168.1.145)
  • code d'usager : homeassistant
  • Mot de passe : voir la section suivante.

Mot de passe de l'agent MQTT sur Home Assistant

Dans l'écran de configuration de l'agent MQTT, si vous cliquez sur l'icône pour voir le mot de passe, vous verrez apparaître __**password_not_changed**__.

Pour retrouver le mot de passe, vous devez consulter le fichier /mnt/data/supervisor/homeassistant/.storage/core.config_entries).

Fichier /mnt/data/supervisor/homeassistant/.storage/core.config_entries

...{"broker":"core-mosquitto","discovery":true,"password":"Ath4Goh4Ierai0ahWaeSiejeaquat8ailohk7raiyoo4xeeLe6TooKo8aejo3sha","port":1883,"username":"homeassistant"} ...

Il est également possible de modifier le code d'usager et son mot de passe comme suit :

  • Créez une nouvelle personne dans Home Assistant.
  • Configurez cette personne pour qu'elle soit autorisée à se connecter puis choisissez son mot de passe.
  • Le nom de cette personne et son mot de passe pourront être utilisés par un client pour se connecter à l'agent MQTT installé sur votre Home Assistant.

Installer un agent après-coup ou reconfigurer l'agent local

Si vous avez installé votre client MQTT en cliquant sur Saisir manuellement les informations de connexion du courtier MQTT, aucun agent n'aura été installé sur votre Home Assistant.

Il est possible d'ajouter un agent après que l'installation du client ait été complétée.

Cette technique permet également de remettre les configurations en place si vous avez utilisé un autre agent MQTT et que vous désirez revenir à l'agent installé sur votre Home Assistant.

  •  Rendez-vous dans le menu Paramètres / Appareils et services / Clic sur la tuile MQTT / Clic sur les trois points verticaux / Supprimer.
  • Cliquez sur Ajouter un service.
  • SélectionnezUtiliser le module complémentaire officiel Mosquitto Mqtt Broker.
  • L'agent MQTT est maintenant installé et configuré.

Agent installé sur un second ordinateur

L'agent MQTT à utiliser peut être installé n'importe où, en autant que votre boîte domotique y ait accès.

Dans cet exemple, l'agent est installé sur un second Raspberry Pi ou sur tout autre ordinateur. 

Pour savoir si Home Assistant peut accéder à cet agent, il suffit de faire un ping vers son adresse IP.

Broker perso

Utilisation d'une connexion sécurisée

Afin de sécuriser la communication, il faut utiliser le port 8883.

Il faut alors activer les options avancées puis configurer le certificat TLS.

Pour plus d'information : https://www.home-assistant.io/integrations/mqtt/#advanced-broker-configuration

Tester MQTT

Avant d'automatiser les publications MQTT, c'est une bonne idée de tester vos configurations.

  • Rendez-vous dans le menu Paramètres / Appareils et services / onglet Intégrations.
  • Cliquez sur la tuile du client MQTT.
  • Cliquez sur l'icône d'engrenage.

Cet écran vous permet de publier un paquet ou d'écouter un sujet.

Publier un paquet

Pour publier un paquet, il suffit d'entrer le nom du canal désiré dans la zone Sujet puis d'entrer la valeur à publier.

Les valeurs publiées pourront être utilisées par un autre système au même titre que si la publication avait été faite à l'aide d'une automatisation, par exemple.

Publier un paquet

Attention : si vous ajoutez un saut de ligne, ce saut de ligne fera partie de la valeur envoyée.

Saut de ligne OK

Écouter un sujet

Ici, vous pouvez écouter un sujet pour vérifier si vos configurations sont correctes.

Ceci est utile seulement pour tester MQTT.

Avec cette technique, si votre boîte Home Assistant est redémarrée, elle ne réagira plus aux messages reçus sur ce canal.

Pour un vrai abonnement MQTT, il faut utiliser la technique officielle.

Dans la zone Écouter un sujet, entrez le nom du canal désiré.

Cliquez sur Commencer à écouter.

Écouter un sujet

Dès qu'une information est publiée sur ce canal, elle apparaîtra au bas de l'écran.

Réception du message publié

Caractères génériques

Si vous désirez écouter tout ce qui se publie sur un canal, peu importe les sous-niveaux, vous pouvez utiliser un #.

Par exemple, pour écouter tout ce qui se dit sur le canal jeedom, peu importe les sous-niveaux, vous écouterez le canal jeedom/#.

Caractères génériques

Abonnement et publication

Les techniques pour utiliser le client MQTT sont détaillées dans la fiche « Publication et abonnement MQTT avec Home Assistant ».

▼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