abonnel-siteweb/data/pages/informatique/applications/zigbee2mqtt/disponibilite-des-dispositi...

81 lines
4.3 KiB
Plaintext
Raw Permalink Normal View History

2024-01-07 10:02:35 +01:00
====== Disponibilité des dispositifs ======
La fonctionnalité de disponibilité a pour objectif de vérifier la connectivité en ligne de vos dispositifs. L'état de disponibilité d'un dispositif est publié dans le sujet MQTT ''zigbee2mqtt/[NOM_AMICAL]/availability'', avec conservation du message (//retained MQTT message//).
<code YAML>
# Optionnel : Activer la fonctionnalité de disponibilité (par défaut = false)
availability: true
</code>
La fonctionnalité de disponibilité opère différemment pour les dispositifs actifs et passifs.
Dispositifs Actifs (routeurs ou dispositifs d'extrémité alimentés sur secteur) :\\
Par défaut, ils doivent émettre une annonce de leur disponibilité toutes les 10 minutes. En cas de non-réponse, une tentative de ping sera effectuée. Si cela échoue, le dispositif sera marqué comme étant hors ligne.
Dispositifs Passifs (tout ce qui n'est pas un dispositif actif, principalement les dispositifs alimentés par batterie) :\\
Ces dispositifs doivent émettre une annonce de leur disponibilité toutes les 25 heures. Ils ne peuvent pas être interrogés via ping. Si aucune annonce n'est reçue, ils seront automatiquement marqués comme hors ligne.
Il est important de noter que ce délai est maintenu entre les redémarrages de Zigbee2MQTT. Par conséquent, si vous interrompez Zigbee2MQTT pendant plus de 10 minutes, tous vos dispositifs actifs seront initialement marqués comme hors ligne.
===== Configuration Avancée de la Disponibilité =====
Plutôt que de définir ''availability: true'' dans votre configuration.yaml, vous pouvez fournir une configuration plus détaillée :
<code yaml>
availability:
active:
# Délai après lequel un dispositif actif sera marqué hors ligne (en minutes, par défaut = 10 minutes)
timeout: 10
passive:
# Délai après lequel un dispositif passif sera marqué hors ligne (en minutes, par défaut = 1500 minutes, soit 25 heures)
timeout: 1500
</code>
===== Dispositifs Personnalisés =====
Pour chaque dispositif spécifique, vous avez la possibilité de personnaliser davantage la gestion de la disponibilité :
<code yaml>
devices:
'0x12345678':
friendly_name: 'ma_ampoule'
# Désactiver la fonctionnalité de disponibilité pour ce dispositif spécifique
availability: false
'0x87654321':
friendly_name: 'mon_interrupteur'
# Changer le délai de disponibilité à 3 minutes uniquement pour ce dispositif
availability:
timeout: 3
</code>
Si vous souhaitez activer la fonctionnalité de disponibilité uniquement pour certains dispositifs, n'ajoutez pas ''availability: true'' dans votre configuration.yaml, mais spécifiez-le uniquement pour le dispositif concerné :
<code yaml>
devices:
'0x87654321':
friendly_name: 'mon_interrupteur'
# Activer la disponibilité uniquement pour 'mon_interrupteur'
availability: true
</code>
===== Récupération de l'État =====
Lorsque la fonctionnalité de disponibilité est activée et qu'un dispositif se reconnecte ou annonce sa présence sur le réseau, Zigbee2MQTT récupère automatiquement l'état du dispositif. Cela se révèle utile, par exemple, lorsque une ampoule s'allume après avoir été reconnectée à l'alimentation secteur. Les attributs suivants sont lus : ''state'', ''brightness'', ''color_temp'' et ''color''.
===== Considérations en Termes de Performance =====
Le processus de ping peut être exigeant en termes de ressources pour le coordinateur, en particulier si vous utilisez un adaptateur CC2530 ou CC2531. Un délai plus long pour les dispositifs actifs réduit la fréquence des pings, ce qui allège la charge sur le coordinateur.
===== Charge Utile de la Disponibilité =====
Par défaut, la charge utile de la disponibilité publiée est en mode legacy (en ligne/hors ligne). Si le mode legacy est désactivé, la charge utile sera un objet JSON (''{"state":"online"}''/''{"state":"offline"}''). Il est à noter que cela modifie la charge utile pour les sujets ''zigbee2mqtt/bridge/state'' et ''zigbee2mqtt/MY_DEVICE/availability''.
<code yaml>
advanced:
# Utilisation du mode legacy pour la charge utile du message de disponibilité (par défaut : true)
# true = en ligne/hors ligne
# false = {"state":"online"} / {"state":"offline"}
legacy_availability_payload: true
</code>