Votre tableau de bord affiche toujours une température, mais le capteur a-t-il encore communiqué ? Une valeur conservée ne répond pas à cette question. Avec Zigbee2MQTT, deux réglages complémentaires permettent de surveiller les appareils : last_seen donne une date de dernière communication, tandis que availability signale qu’un appareil n’a plus donné de nouvelles dans le délai configuré.

Analyse documentaire. Cette méthode repose sur les documentations citées et leur confrontation à des publications étrangères. Aucun appareil n’a été installé ou testé pour cet article. Les délais proposés sont des points de départ à vérifier sur votre installation, pas des mesures de fiabilité.

Une valeur stable n’est pas un capteur hors ligne

Dans Home Assistant, la date last_changed correspond au dernier changement de valeur. Une sonde peut transmettre régulièrement la même température sans faire avancer cette date. Déclencher une alerte parce qu’elle n’a pas changé depuis une journée peut donc produire un faux diagnostic.

La documentation des objets d’état Home Assistant distingue trois horodatages. Il faut aussi distinguer ces informations logicielles de celles produites par la passerelle Zigbee :

IndicateurCe qu’il décritLimite pour surveiller un capteur
last_changedChangement de la valeur de l’entitéUne valeur stable ne prouve aucune panne
last_updatedChangement de valeur ou d’attributsPeut rester ancien si rien ne change
last_reportedÉcriture de l’état dans Home AssistantNe constitue pas, à lui seul, une preuve de réception radio
last_seen de Zigbee2MQTTDernier message Zigbee reçu de l’appareilNe garantit pas que chaque mesure a été renouvelée
Disponibilité Zigbee2MQTTÉvaluation en ligne/hors ligne selon un délaiLa détection n’est pas instantanée

Exemple fictif : une température reste à 20 °C pendant deux jours et la sonde envoie encore un message aujourd’hui. Un contrôle fondé sur last_changed peut la déclarer muette ; sa dernière communication montre le contraire. À l’inverse, un appareil peut communiquer une information de batterie sans renouveler sa température. La surveillance du réseau et celle de la fraîcheur d’une mesure restent deux contrôles différents.

Activer les deux informations dans Zigbee2MQTT

Cette méthode suppose Zigbee2MQTT déjà relié à Home Assistant par MQTT. Si ce n’est pas votre cas, commencez par l’installation de Zigbee2MQTT. Elle ne s’applique pas directement à un réseau géré par ZHA.

Dans l’interface de Zigbee2MQTT, ouvrez les paramètres avancés et choisissez ISO_8601 pour last_seen. Dans les paramètres de disponibilité, activez ensuite la surveillance. Enregistrez et effectuez le redémarrage demandé par l’interface. Ces options appartiennent à Zigbee2MQTT, pas au fichier principal de Home Assistant.

Pour une configuration gérée en YAML, les options correspondantes sont :

# Extrait du fichier configuration.yaml de Zigbee2MQTT
advanced:
  last_seen: ISO_8601
availability:
  enabled: true

Fusionnez ces lignes avec les sections déjà présentes : ne créez pas deux blocs advanced et ne remplacez pas votre configuration complète. Sauvegardez le fichier avant intervention ; pour une édition manuelle, arrêtez Zigbee2MQTT avant de modifier son fichier, puis relancez-le.

La documentation MQTT décrit les formats de last_seen. Après activation, attendez un nouveau message du capteur, puis vérifiez l’horodatage dans Zigbee2MQTT. Dans la fiche de l’appareil Home Assistant, cherchez aussi l’entité de diagnostic Last seen, qui peut être désactivée : activez-la si vous souhaitez l’afficher.

Le parcours de Home Automation Guy, publié au Royaume-Uni en mars 2024, montre cette distinction entre activation côté passerelle et entité de diagnostic côté Home Assistant. Il propose ensuite des notifications ; ses délais personnels ne constituent pas des valeurs universelles.

Choisir un délai adapté aux appareils sur pile

Selon la documentation de disponibilité Zigbee2MQTT, les valeurs par défaut diffèrent selon l’alimentation :

Type d’appareilDélai par défautComportement
Actif, sans alimentation par pile10 minutesEn l’absence de communication, une interrogation est tentée
Passif, sur pile25 heures, soit 1 500 minutesL’absence de communication suffit à le déclarer hors ligne ; pas d’interrogation

Ces réglages ne forcent pas une sonde à transmettre plus souvent. Raccourcir le délai d’un appareil sur pile ne le réveille pas : cela peut simplement multiplier les alertes. Commencez par les valeurs par défaut, observez les intervalles réels et consultez la documentation du modèle avant de les ajuster.

La surveillance considère les messages Zigbee qui atteignent Zigbee2MQTT, y compris des échanges internes qui ne deviennent pas une température visible. Un seuil de 25 heures peut convenir à un contrôle de maintenance, tout en étant trop long pour juger si une mesure est exploitable par une automatisation.

Une lampe coupée volontairement à l’interrupteur peut aussi apparaître hors ligne. Décidez si elle doit entrer dans votre surveillance. La configuration officielle permet d’exclure un appareil ou de lui donner son propre délai. Évitez de modifier tout le réseau pour résoudre le comportement d’un seul capteur.

Créer une alerte locale dans Home Assistant

Commencez avec une seule sonde. Affichez sa température et son entité Last seen dans une carte Entités native. Le tableau de bord Home Assistant peut ainsi montrer la mesure et sa dernière communication côte à côte.

Le guide allemand de Dr. Klipper illustre l’exploitation de l’état natif unavailable. Il n’est pas nécessaire de créer un nouveau capteur binaire pour chaque appareil. La configuration YAML ci-dessus suit toutefois la documentation officielle actuelle, plutôt que les anciens raccourcis présents dans certains tutoriels.

Dans l’éditeur d’automatisations Home Assistant :

  1. Créez une automatisation vide, avec un déclencheur État ciblant l’entité de température concernée. Renseignez l’état d’arrivée unavailable.
  2. Ajoutez une durée de cinq minutes pour filtrer les indisponibilités brèves. C’est une marge supplémentaire après le délai Zigbee2MQTT, à adapter.
  3. Choisissez l’action Notification persistante : créer. Donnez-lui un titre, un message indiquant la sonde à vérifier et un identifiant stable, par exemple surveillance_sonde_salon.
  4. Enregistrez. La notification apparaîtra dans l’interface Home Assistant ; ce n’est pas une notification push envoyée à un téléphone.

La documentation des déclencheurs et celle des notifications persistantes décrivent ces mécanismes. Un identifiant stable permet de remplacer la notification existante au lieu d’empiler des messages identiques.

Un déclencheur sur changement d’état ne suffit pas si la sonde est déjà indisponible lorsque la surveillance démarre. Ajoutez une seconde automatisation de rappel quotidien, à une heure de votre choix, avec une condition vérifiant unavailable sur cette même entité et la même action de notification. Ce rappel ne remplace pas le déclenchement initial ; il couvre une indisponibilité persistante. La temporisation d’un déclencheur n’est pas conservée lors d’un redémarrage ou d’un rechargement des automatisations. Une notification persistante reste affichée jusqu’à sa suppression : vérifiez le retour des communications avant de l’effacer.

Vérifier la chaîne avant de généraliser

Choisissez un capteur de confort dont l’absence temporaire n’a aucune conséquence sur une commande importante. Cette vérification est à faire chez vous ; elle n’a pas été exécutée pour cette analyse.

  • Observez d’abord une communication normale : la date Last seen doit avancer.
  • Interrompez temporairement l’alimentation de ce seul capteur. Attendez son délai de disponibilité : retirer une pile ne doit pas produire une alerte instantanée.
  • Contrôlez successivement Zigbee2MQTT, l’état unavailable dans Home Assistant, puis la trace de l’automatisation et la notification.
  • Rétablissez l’alimentation et vérifiez une nouvelle communication, le retour d’une valeur exploitable et l’arrêt des rappels quotidiens.

Si tous les appareils deviennent indisponibles en même temps, examinez d’abord Zigbee2MQTT, le broker MQTT et le coordinateur. Une panne commune ne démontre pas que toutes les piles sont vides. Après une mise à jour, vérifiez aussi que la surveillance est activée : inDomus le rappelle dans son article italien sur Zigbee2MQTT 2.13.0. Cet article d’actualité apporte un point de diagnostic, pas une preuve que votre installation subit un défaut de cette version.

Pour un appareil isolé, poursuivez avec le diagnostic des interférences Zigbee et Wi-Fi et les causes possibles d’épuisement des piles. Le but est de localiser la panne avant de changer le matériel.

Quel capteur utiliser pour commencer ?

Utilisez d’abord une sonde déjà intégrée : activer la surveillance ne nécessite aucun achat. Si vous cherchez aussi une sonde intérieure avec écran, le SONOFF SNZB-02D constitue une option documentée dans Zigbee2MQTT, avec température, humidité et batterie exposées.

Sa fiche de compatibilité signale cependant des cas de remontées bloquées et donne des pistes de dépannage. Il ne faut donc pas confondre compatibilité et garantie de fiabilité. Son écran facilite la consultation sur place ; il ne prouve pas que la liaison radio fonctionne.

Pour comparer les critères de placement et de remontée des mesures, consultez aussi le choix des capteurs de température Zigbee. Une alerte de maintenance aide à repérer une absence de communication ; elle ne certifie ni la justesse d’une mesure ni le bon fonctionnement de toute la maison.