-
Notifications
You must be signed in to change notification settings - Fork 2
Diagnostics
L'intégration expose douze capteurs de diagnostic sur l'appareil ESPSomfy-RTS : identité, réseau et mémoire. Ils portent tous la catégorie Diagnostic, et se trouvent donc dans le bloc « Diagnostic » de la fiche de l'appareil, pas dans les commandes.
Ils sont utilisables comme n'importe quel capteur : en template, dans une condition, dans un graphique, ou comme déclencheur d'alerte.
| Capteur | Contenu | Unité | Rafraîchi |
|---|---|---|---|
| Nom d'hôte | nom réseau de l'appareil | — | figé |
| Type de puce | modèle d'ESP32, par exemple ESP32-D0WDQ6
|
— | figé |
| Connexion |
Wifi ou Ethernet
|
— | figé |
| Adresse IP | adresse utilisée par l'intégration pour joindre l'appareil | — | figé |
| SSID Wi-Fi | réseau Wi-Fi associé | — | à chaque variation |
| Canal Wi-Fi | canal radio du point d'accès | — | à chaque variation |
| Puissance Wi-Fi | niveau de réception | dBm | lissé |
| Vitesse de connexion | débit négocié du lien Ethernet | voir la note | au changement d'état |
| Full Duplex |
True ou False
|
— | au changement d'état |
| Mémoire libre | tas disponible | octets | lissé |
| Mémoire maximale | plus grand bloc contigu allouable | octets | lissé |
| Mémoire minimale | plus bas niveau de tas atteint depuis le démarrage | octets | lissé |
Les capteurs Wi-Fi n'existent que si l'appareil est en Wi-Fi, ceux d'Ethernet que s'il est en Ethernet. Les autres sont toujours créés.
Nom d'hôte, Type de puce, Connexion et Adresse IP sont des instantanés pris au moment où l'intégration se configure. Aucun événement ne les met à jour ensuite.
Conséquence concrète : si l'appareil change d'adresse IP, le capteur Adresse IP continue d'afficher l'ancienne jusqu'au rechargement de l'intégration ou au redémarrage de Home Assistant. Ne vous en servez pas comme source de vérité pour détecter un changement d'adresse.
Les trois capteurs Wi-Fi sont alimentés par le même événement, émis par l'appareil dès que le niveau de réception bouge de plus de 1 dBm ou que le canal change.
SSID Wi-Fi et Canal Wi-Fi suivent cet événement sans filtrage : ils reflètent immédiatement la dernière valeur reçue.
Puissance Wi-Fi est lissée — voir plus bas. Elle porte la classe d'appareil « puissance du signal », donc Home Assistant l'affiche en dBm et sait en tracer l'historique.
Quand le Wi-Fi décroche, l'appareil n'arrête pas d'émettre : il envoie un SSID vide, une puissance de -100 dBm et un canal -1. Une automatisation qui surveille la qualité du signal doit traiter ces valeurs comme « déconnecté », pas comme « très mauvais signal ».
Vitesse de connexion et Full Duplex sont rafraîchis quand l'état du lien change.
Note d'affichage : la vitesse est déclarée à Home Assistant en méga-octets par seconde alors que la valeur envoyée est le débit du lien en méga-bits par seconde. Un lien 100 Mbit/s s'affiche donc « 100 MB/s ». La valeur est juste, c'est l'unité affichée qui ne l'est pas.
Les trois capteurs de mémoire décrivent le tas de l'ESP32, en octets :
| Capteur | Ce qu'il mesure | À quoi ça sert |
|---|---|---|
| Mémoire libre | total du tas disponible | vue générale de la santé mémoire |
| Mémoire maximale | plus grand bloc contigu allouable | c'est lui qui limite réellement : on peut avoir beaucoup de mémoire libre et ne plus pouvoir allouer un gros bloc |
| Mémoire minimale | plus bas niveau atteint depuis le démarrage | révèle un pic de consommation passé, invisible sur les deux autres |
L'appareil publie ces trois valeurs au moins toutes les 15 secondes, et toutes les 10 secondes si le tas libre ou le plus grand bloc a bougé de plus de 3,5 Ko.
L'écart entre Mémoire libre et Mémoire maximale est l'indicateur intéressant : s'il se creuse avec le temps, le tas se fragmente.
Puissance Wi-Fi, Mémoire libre, Mémoire maximale et Mémoire minimale ne sont pas enregistrées à chaque mesure reçue. L'intégration accumule les valeurs et n'en retient qu'une, la médiane, dès que l'une de ces deux conditions est remplie :
- un délai minimal s'est écoulé depuis le dernier enregistrement — 25 secondes pour la mémoire libre, 30 secondes pour les trois autres ;
- ou 15 valeurs ont été accumulées.
C'est volontaire : sans ce filtre, ces capteurs écriraient plusieurs fois par seconde dans la base de données de Home Assistant, pour un signal qui ne dit rien de plus.
La conséquence à connaître : ces capteurs retardent de quelques dizaines de secondes, et une valeur isolée est écrasée par la médiane. Ne les utilisez pas pour détecter un événement bref.
Tous les capteurs de diagnostic deviennent indisponibles quand la liaison WebSocket avec l'appareil tombe, et redeviennent disponibles à la reconnexion. C'est le moyen le plus fiable de savoir si l'appareil répond encore :
{{ states('sensor.<appareil>_adresse_ip') not in ['unavailable', 'unknown'] }}{{ states('sensor.<appareil>_adresse_ip') }}
{{ states('sensor.<appareil>_canal_wi_fi') }}
{{ states('sensor.<appareil>_puissance_wi_fi') }}
{{ states('sensor.<appareil>_memoire_libre') }}
{{ states('sensor.<appareil>_type_de_puce') }}Les identifiants réels dépendent du nom donné à l'appareil et de la langue de Home
Assistant : relevez-les dans Outils de développement → États en filtrant sur sensor..
{{ (states('sensor.<appareil>_memoire_libre') | int(0) / 1024) | round(1) }} Ko{% set libre = states('sensor.<appareil>_memoire_libre') | int(0) %}
{% set bloc = states('sensor.<appareil>_memoire_maximale') | int(0) %}
{{ ((libre - bloc) / libre * 100) | round(1) if libre > 0 else 0 }} %{% set rssi = states('sensor.<appareil>_puissance_wi_fi') | int(-100) %}
{{ 'déconnecté' if rssi <= -100
else 'excellent' if rssi >= -55
else 'bon' if rssi >= -67
else 'moyen' if rssi >= -75
else 'faible' }}alias: Mémoire ESPSomfy-RTS basse
triggers:
- trigger: numeric_state
entity_id: sensor.<appareil>_memoire_maximale
below: 20000
for: "00:05:00"
actions:
- action: persistent_notification.create
data:
title: Mémoire ESPSomfy-RTS
message: >
Plus grand bloc allouable : {{ states('sensor.<appareil>_memoire_maximale') }} octets.
Mémoire libre : {{ states('sensor.<appareil>_memoire_libre') }} octets.Le seuil est à caler sur votre installation : relevez la valeur au repos pendant quelques jours avant de choisir.
alias: Signal Wi-Fi ESPSomfy-RTS faible
triggers:
- trigger: numeric_state
entity_id: sensor.<appareil>_puissance_wi_fi
below: -80
above: -100
for: "00:15:00"
actions:
- action: persistent_notification.create
data:
title: Signal Wi-Fi faible
message: >
{{ states('sensor.<appareil>_puissance_wi_fi') }} dBm sur le canal
{{ states('sensor.<appareil>_canal_wi_fi') }}.La borne above: -100 écarte le cas « déconnecté », qui se signale justement par -100.
alias: ESPSomfy-RTS injoignable
triggers:
- trigger: state
entity_id: sensor.<appareil>_adresse_ip
to: unavailable
for: "00:02:00"
actions:
- action: persistent_notification.create
data:
title: ESPSomfy-RTS injoignable
message: La liaison avec l'appareil est coupée depuis 2 minutes.Un capteur template pour en faire une courbe :
template:
- sensor:
- name: "Fragmentation ESPSomfy-RTS"
unique_id: espsomfy_fragmentation
unit_of_measurement: "%"
state: >
{% set libre = states('sensor.<appareil>_memoire_libre') | int(0) %}
{% set bloc = states('sensor.<appareil>_memoire_maximale') | int(0) %}
{{ ((libre - bloc) / libre * 100) | round(1) if libre > 0 else none }}
availability: >
{{ states('sensor.<appareil>_memoire_libre') | int(0) > 0 }}