Différences entre les versions de « Utiliser MQTT en lien avec Home Assistant »

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche
Ligne 27 : Ligne 27 :
https://www.home-assistant.io/integrations/mqtt_statestream/
https://www.home-assistant.io/integrations/mqtt_statestream/


A suivre, avec la récupération des infos côté client.
Pour voir ce qui se passe sur le broker, utiliser un outil tel que MQTT Explorer (windows). Ceci permet de consulter le flux de messages publiés sur le broker MQTT. On utilisera les mêmes paramètres pour s'y connecter que pour HA, c'est à dire, IP du broker, port, user et pwd.
 
Dans cette application, on peut rechercher la valeur du capteur qui nous intéresse. Exemple, homeassistant/sensor/ewelink_th01_temperature/state
 
Ensuite, il faut modifier configuration .yaml pour créer des entités en miroir des topics qui nous intéressent, i.e. la valeur d'un capteur donné.
 
Voici un exemple avec 2 capteurs ajoutés, qu'on peut ensuite ajouter sur un tableau de bord,
<pre>
# configuration des entités MQTT
mqtt:
  sensor:
    - name: "Temperature int"
      state_topic: "homeassistant/sensor/ewelink_th01_temperature_2/state"
    - name: "Temperature ext"
      state_topic: "homeassistant/sensor/ewelink_th01_temperature/state"
</pre>

Version du 17 décembre 2023 à 23:23

MQTT, ou Message Queuing Telemetry Transport, est un protocole de communication léger et fiable conçu pour les appareils à faible bande passante et à faible puissance, typiquement utilisé dans l'Internet des Objets (IoT). Il offre un moyen simple et efficace pour que ces appareils puissent communiquer entre eux et avec des serveurs.

Il y a 2 façons de l'utiliser dans HA,

  • en le connectant directement à la clé Zigbee
  • en récupérant toutes les informations publiées par les équipements

C'est cette 2e méthode que j'ai regardée, dans le but de transmettre les informations d'une instance HA vers une autre. Exemple : transmettre une température sur un site et la transmettre à un autre.

Pour ce faire,

- on installe un broker MQTT, typiquement Mosquito, qui est un module complémentaire de HA. En parallèle, on définit un user et un mot de passe pour y accéder

- on installe une intégration MQTT, qui fait le lien entre HA et ce broker, via son adresse IP, le port (1883) et user/pwd. Si on souhaite accéder au broker à travers une box, il sera nécessaire de définir une règle pour effectuer un transfert de port.

Ensuite on ajoute quelque lignes dans HA, dans configuration.yaml, pour que tous les messages générés par les capteurs et autres équipements soient publiés dans le broker.

Ces quelques lignes sont :

# publication pour MQTT
mqtt_statestream:
  base_topic: homeassistant
  publish_attributes: true
  publish_timestamps: true

https://www.home-assistant.io/integrations/mqtt_statestream/

Pour voir ce qui se passe sur le broker, utiliser un outil tel que MQTT Explorer (windows). Ceci permet de consulter le flux de messages publiés sur le broker MQTT. On utilisera les mêmes paramètres pour s'y connecter que pour HA, c'est à dire, IP du broker, port, user et pwd.

Dans cette application, on peut rechercher la valeur du capteur qui nous intéresse. Exemple, homeassistant/sensor/ewelink_th01_temperature/state

Ensuite, il faut modifier configuration .yaml pour créer des entités en miroir des topics qui nous intéressent, i.e. la valeur d'un capteur donné.

Voici un exemple avec 2 capteurs ajoutés, qu'on peut ensuite ajouter sur un tableau de bord,

# configuration des entités MQTT
mqtt:
  sensor:
    - name: "Temperature int"
      state_topic: "homeassistant/sensor/ewelink_th01_temperature_2/state"
    - name: "Temperature ext"
      state_topic: "homeassistant/sensor/ewelink_th01_temperature/state"