Mettre à jour automatiquement des entités HA, depuis MQTT

De Wiki de Mémoire Vive
Version datée du 19 septembre 2025 à 08:33 par Denis (discussion | contributions) (Page créée avec « Cas pratique : des objets externes à Home assistant doivent être mis en cohérence avec des entités internes. Les entités internes sont utilisées pour des automatisations. Ceci a été testé dans 2 cas de figure : - des booléens de type on/off - des "input select" Illustration de ce fonctionnement : on utilise un écran tactile avec la mise en route du chauffe, celle de la chaudière (input boolean), et on doit choisir un mode de fonctionnement pour le... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Cas pratique : des objets externes à Home assistant doivent être mis en cohérence avec des entités internes. Les entités internes sont utilisées pour des automatisations. Ceci a été testé dans 2 cas de figure :

- des booléens de type on/off

- des "input select"

Illustration de ce fonctionnement : on utilise un écran tactile avec la mise en route du chauffe, celle de la chaudière (input boolean), et on doit choisir un mode de fonctionnement pour le chauffe-eau, soit 24/24 soit aux heures creuses (input select).

Il y a une procédure pour les booléens et une autre pour les input select. Avec ces topics MQTT,

topic: homeassistant/input_select/+/set
topic: homeassistant/input_boolean/+/set

Le caractère + est un "wildcard",

Exemples de publication qui seront effectuées (IDE Arduino avec ESP32)

client.publish("homeassistant/input_boolean/regulation_chauffage/set", "ON");

client.publish("homeassistant/input_boolean/regulation_chauffe-eau/set", "ON");

client.publish("homeassistant/input_select/regulation_chauffe-eau/set", "Tempo");


Chaque fois qu’un topic MQTT /set pour un input_boolean reçoit "ON" ou "OFF", Home Assistant met automatiquement à jour l’état de cet input_boolean pour qu’il corresponde au message MQTT.

alias: Sync MQTT /set vers input_boolean
description: Met à jour automatiquement les input_boolean depuis les topics /set MQTT
triggers:
  - topic: homeassistant/input_boolean/+/set
    trigger: mqtt
conditions: []
actions:
  - variables:
      entity: input_boolean.{{ trigger.topic.split('/')[2] }}
      payload_upper: "{{ trigger.payload | upper }}"
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ payload_upper == 'ON' }}"
        sequence:
          - target:
              entity_id: "{{ entity }}"
            action: input_boolean.turn_on
            data: {}
      - conditions:
          - condition: template
            value_template: "{{ payload_upper == 'OFF' }}"
        sequence:
          - target:
              entity_id: "{{ entity }}"
            action: input_boolean.turn_off
            data: {}
mode: single

Avec cette automatisationon, tout message MQTT publié sur homeassistant/input_select/<nom>/set mettra à jour automatiquement l’input_select correspondant dans HA.

alias: Sync MQTT /set vers input_select
description: Met à jour automatiquement les input_select depuis les topics /set MQTT
triggers:
  - topic: homeassistant/input_select/+/set
    trigger: mqtt
conditions: []
actions:
  - variables:
      input_name: "{{ trigger.topic.split('/')[2] }}"
      payload_value: "{{ trigger.payload }}"
  - target:
      entity_id: input_select.{{ input_name }}
    data:
      option: "{{ payload_value }}"
    action: input_select.select_option
mode: single