FR/EN
SHORT

ZHA ou Zigbee2MQTT : lequel choisir ?

Pour connecter mes premiers interrupteurs Zigbee à Home Assistant, il me fallait d'abord... du Zigbee.

J'ai donc commandé un SONOFF Zigbee 3.0 USB Dongle Plus (ZBDongle-E), basé sur une puce EFR32MG21.

Pourquoi celui-là ?

Rien de très scientifique.

Le prix était raisonnable pour faire un essai, les avis étaient très bons et il semblait largement utilisé avec Home Assistant.

Avais-je besoin de creuser davantage ?

Peut-être.

Mais trois mois plus tard, je n'ai toujours aucune raison de regretter ce choix.

La seule chose que j'aurais probablement aimé savoir à l'époque, c'est qu'il existait également des solutions pensées pour pouvoir couvrir Zigbee et Thread.

Cela aurait-il changé mon choix ?

Je n'en suis même pas certain.

Aujourd'hui, ce dongle fait exactement ce que je lui demande et je ne me sens absolument pas pénalisé par le fait d'avoir une interface dédiée à Zigbee.

Bon. J'ai un dongle. Et maintenant ?

Une fois le dongle installé — et après quelques petites joyeusetés pour faire passer l'USB jusqu'à ma VM Home Assistant — une nouvelle question s'est présentée :

ZHA ou Zigbee2MQTT ?

ZHA est directement intégré à Home Assistant.

On branche un coordinateur compatible, Home Assistant peut le détecter et on configure son réseau Zigbee depuis l'interface.

Simple.

À côté, Zigbee2MQTT demande quelques briques supplémentaires.

Il faut installer Zigbee2MQTT, disposer d'un broker MQTT — Mosquitto dans mon cas — puis relier tout ce petit monde à Home Assistant.

Vu comme ça, le choix paraît assez évident.

Pourquoi se compliquer la vie ?

Sauf que...

En cherchant un peu, je me suis rapidement rendu compte qu'une partie non négligeable de la communauté utilisait Zigbee2MQTT.

Et généralement, quand beaucoup de gens choisissent volontairement le chemin qui demande un peu plus de chipotage, j'ai tendance à me demander pourquoi.

Il y a probablement une part d'héritage historique derrière tout cela.

Zigbee2MQTT a longtemps eu la réputation d'offrir un support très large des périphériques et énormément de possibilités de configuration.

Mais il faut être prudent avec les comparaisons que l'on trouve sur Internet.

ZHA a beaucoup évolué.

Aujourd'hui, il sait notamment gérer les groupes Zigbee, les bindings entre périphériques, les mises à jour OTA et les sauvegardes du réseau. Il permet également de migrer un réseau vers un autre coordinateur compatible.

Autrement dit, certains arguments historiques en faveur de Zigbee2MQTT ne suffisent plus forcément à départager les deux solutions.

Et à ce jour, je n'ai toujours pas trouvé de réponse définitive à la question :

« lequel est le meilleur ? »

Je commence surtout à penser que ce n'est pas la bonne question.

Une question d'architecture

Il y avait néanmoins quelque chose dans Zigbee2MQTT qui me parlait davantage.

Avec ZHA, l'ensemble m'apparaissait comme une solution relativement monolithique intégrée à Home Assistant.

Avec Zigbee2MQTT, je voyais plutôt ceci :

Zigbee2mqtt Detail Fr

Plus de morceaux.

Donc objectivement plus de choses à installer, configurer, surveiller... et potentiellement casser.

Curieusement, c'est aussi une partie de ce qui me plaisait.

Chaque brique avait un rôle que je pouvais identifier.

Zigbee2MQTT s'occupait du réseau Zigbee.

Mosquitto transportait les messages MQTT.

Home Assistant les exploitait.

Probablement mon côté un peu torturé.

Ou simplement une préférence pour les architectures où je peux voir assez clairement qui parle à qui.

Et MQTT dans tout ça ?

Il y avait également une autre idée derrière ce choix.

MQTT ne sert évidemment pas uniquement à Zigbee2MQTT.

Une fois un broker Mosquitto installé, rien n'empêche d'y connecter d'autres applications, capteurs ou services.

À ce moment-là, je n'avais pas nécessairement besoin de tout cela.

Mais l'idée d'ajouter une brique générique plutôt qu'un composant utilisable pour un seul besoin me plaisait bien.

Et depuis, d'autres choses sont effectivement venues se connecter à Mosquitto.

Ce qui ne prouve absolument pas que Zigbee2MQTT était le meilleur choix.

Simplement que, dans mon cas, l'architecture qui m'avait attiré a fini par trouver d'autres usages.

Alors, ZHA ou Zigbee2MQTT ?

Si quelqu'un me posait aujourd'hui la question sans autre contexte, ma réponse serait probablement :

commencez par ZHA.

C'est directement intégré à Home Assistant, il y a moins de composants à installer et à maintenir et, si votre objectif est simplement d'ajouter des périphériques Zigbee à votre installation, c'est probablement le chemin le plus direct.

Je regarderais Zigbee2MQTT plus sérieusement dans quelques situations.

Si vous avez envie d'aller voir un peu plus loin sous le capot, par exemple.

Ou si MQTT fait déjà partie de votre infrastructure.

Si vous avez déjà un broker Mosquitto actif — éventuellement parce que plusieurs services tournant dans des conteneurs Docker y publient déjà leurs données — ajouter Zigbee2MQTT dans cet ensemble peut devenir assez naturel.

Le broker existe.

Il est configuré.

Vous savez pourquoi il est là.

Zigbee2MQTT devient simplement une nouvelle brique utilisant cette infrastructure.

À l'inverse, installer Zigbee2MQTT et un broker MQTT uniquement pour connecter quelques interrupteurs Zigbee à Home Assistant ajoute une complexité dont vous n'avez peut-être absolument pas besoin.

Et je pense que c'est finalement là que se trouve une bonne partie de la réponse.

Le choix ne dépend pas seulement de ce que Zigbee2MQTT peut apporter. Il dépend aussi de ce que vous avez déjà et de ce que vous comptez en faire.

Et moi ?

Je partais pratiquement de zéro avec Zigbee.

Je n'avais pas encore un écosystème rempli de composants MQTT qui aurait rendu le choix de Zigbee2MQTT évident.

Et pourtant...

J'ai choisi Zigbee2MQTT.

Trois mois plus tard, est-ce que je peux affirmer que c'était le meilleur choix ?

Non.

Est-ce que j'ai rencontré une raison de vouloir passer à ZHA ?

Non plus.

J'aime toujours l'architecture, Mosquitto a depuis trouvé d'autres choses à faire et mes périphériques Zigbee fonctionnent.

Pour le moment, cela me suffit largement.

Et si je devais recommander quelque chose à quelqu'un qui débute aujourd'hui ?

ZHA par défaut.

Puis Zigbee2MQTT lorsqu'on commence à avoir une raison de le choisir.

Même si, manifestement, certains d'entre nous préfèrent commencer par la solution qui contient davantage de morceaux.

Probablement pour avoir plus de choses à comprendre.

Commentaires

Aucun commentaire pour le moment.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée.

Les commentaires sont modérés avant publication.