Extraction d'informations MQTT

Mon problème

Bonjour

J’ai intégré mon roborock avec Mqtt et il est parfaitement fonctionnel. J’aimerai récupérer par exemple le niveau de sa batterie que je vois bien dans l’équipement mais je ne sais pas l’extraire pour l’exploiter dans une automatisation par exemple. Merci pour votre aide.

Ma configuration


System Information

version core-2022.8.7
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.5
os_name Linux
os_version 5.15.32-v8
arch aarch64
timezone Europe/Paris
config_dir /config

Home Assistant Community StoreHome Assistant CloudHome Assistant SupervisorDashboardsRecorder


Salut,

Tu as cherché les exemples sur le forum ? Il y en a plein partout…

Oui j’ai cherché mais peut être pas avec les bons mots-clés. Mercies

Bon j’ai bien suivi cela, je me suis appuyé sur MQTT explorer pour bien avoir la bonne arborescence

mqtt:
sensor:
- name: « batterie roborock »
state_topic: « valetudo/rockrobo/attributes/sideBrush »
unit_of_measurement: « % »
device_class: battery

Mon entité est bien créée mais j’ai la valeur « inconnu » :frowning:

Salut,

Pourrais-tu partager une capture de MQTT explorer avec le contenu du message du topic valetudo/rockrobo/attributes/sideBrush ?
Ton problème semble venir d’une mauvaise récupération de la valeur. Il y a peut être un value_template à indiquer.
Tu devrais d’ailleurs avoir un message dans le journal à cet effet (le journal est normalement accessible à l’adresse <HA_IP_ADDRESS>:8123/config/logs)

Voici

C’est bien ce que je pensais.
attributes est un message au format JSON.
Il faut donc plutôt utiliser quelque chose de ce genre:

mqtt:
  sensor:
    - name: "batterie_roborock"
      state_topic: "valetudo/rockrobo/attributes"
      value_template: "{{value_json.sideBrush}}"
      unit_of_measurement: "%"
      device_class: battery

Êtes vous sûr que la batterie est remontée par sideBrush ?
J’ai plutôt l’impression que c’est par battery_level sous le topic state.

On aurait donc:

mqtt:
  sensor:
    - name: "batterie_roborock"
      state_topic: "valetudo/rockrobo/state"
      value_template: "{{value_json.battery_level}}"
      unit_of_measurement: "%"
      device_class: battery

Je sais c’est juste pour réussir à récupérer une valeur, ensuite je ferais cela proprement :slight_smile:

Merci pour le coup de main