MQTT initialiser les états des capteurs au démarrage de HA

Bonjour,

Je viens de mettre en place mon 1er capteur binaire MQTT, il s’agit pour l’instant d’un simple poussoir connecté à un esp32. J’ai créé un fichier mqtt.yaml,

binary_sensor:
  - state_topic: "ouvrants/salle"
    name: "porte de salle"
    payload_on: "ON"
    qos: 0
    device_class: opening
    value_template: "{{ value_json.state }}"

il est inclu dans le configuration.yaml :

mqtt: !include mqtt.yaml

Dans « Appareils et services », puis dans la config de Mosqitto Broker, je vois bien les messages apparaître quand on active le poussoir si je suis le topic ouvrants/salle

J’ai inséré dans le tableau de bord, l’entité « porte de salle » et je vois les modifications de l’état apparaître en temps réel.

Mon problème :
Au démarrage de HA, l’état du capteur est « Inconnu » jusqu’à ce que je presse le bouton. Je ne vois pas comment forcer le tableau de bord à regarder quel est l’état réel du poussoir.

Merci d’avance de votre aide
Michel

Ma configuration

System Information

version core-2023.1.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.15.76-v8
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.4
update_channel stable
supervisor_version supervisor-2022.12.1
agent_version 1.4.1
docker_version 20.10.19
disk_total 13.9 GB
disk_used 7.9 GB
healthy true
supported true
board rpi3-64
supervisor_api ok
version_api ok
installed_addons File editor (5.4.2), Duck DNS (1.15.0), Let’s Encrypt (4.12.7), SSH & Web Terminal (13.0.0), Samba Backup (5.2.0), ESPHome (2022.12.3), Mosquitto broker (6.1.3)
Dashboards
dashboards 1
resources 0
views 8
mode storage
Recorder
oldest_recorder_run 7 janvier 2023 à 18:02
current_recorder_run 13 janvier 2023 à 11:24
estimated_db_size 107.09 MiB
database_engine sqlite
database_version 3.38.5
___ [center]Texte à remplacer par votre configuration[/center] Comment récupérer ma configuration : Dans votre HA, Menu latéral `Paramètres` > `Système` > `Corrections` puis les trois petits points en haut a droite > `Informations Système` puis une fois en bas `Copier` ___

Bonjour,

Je débute sur HA et je n’y comprends pour l’instant pas grand-chose, mais au fil de mes lectures il me semble avoir vu que HA envoyait un message mqtt au démarrage.

Écouter le topic via nodered pour renvoyer l’état me paraît une solution.

Merci mais je ne connais pas Nodered et j’aimerais bien trouver une solution sans avoir besoin d’ajouter une brique supplémentaire, je pense qu’il doit être possible de faire en sorte que HA ou le broker se renseigne de l’état des capteurs au démarrage d’HA. En dernier recours, je pourrais demander à l’ESP32 d’envoyer ces états de manière périodique, toutes les minutes ou toutes les heures suivant les besoins.
Je suis presque sûr qu’il y a une solution mais je ne l’ai pas encore trouvée …

Salut,

je suppose que c’est ton ESP qui envoie un message d’état quand celui-ci change.
Pour que HA reçoive un message de ce type qu’il aurait pu rater à cause d’un reboot, tu peux ajouter dans l’envoi de message « retain=true » (a modifier en fonction de ce que tu utilise comme langage)

Le dernier message sur le topic d’état sera sauvé dans le broker MQTT et renvoyé à HA quand il se connectera.

Yes ! je regarde la syntaxe et je teste, j’aime quand c’est simple !