Même si les modules Yoctopuce sont plus souvent utilisés pour l'automatisation en milieu professionnel que pour la domotique privée, nous avons déjà eu l'occasion de vous présenter plusieurs applications intéressantes pour chez soi: un système de ventilation pour lutter contre l'humidité, un système d'optimisation de l'arrosage en fonction de la météo, etc. Nous avons donc décidé d'étudier la possibilité d'intégrer la surveillance de ces systèmes sur une console de domotique standard: Home Assistant.
Home Assistant
Home Assistant est un logiciel libre et ouvert destiné rassembler sur une machine locale le contrôle de tous les objets connectés d'une maison. Il permet d'intégrer assez facilement une quantité de capteurs et d'actuateurs de domotique, supportant des milliers de produits différents. Une foule de développeurs a contribué à son expansion, ajoutant le support pour des nouveaux produits au fur et à mesure de leurs besoins personnels, créant un écosystème extrêmement flexible.
Plutôt que de courtiser les fabricants de matériel pour qu'ils adoptent Home Assistant comme unique standard, à l'image des systèmes propriétaires commerciaux, Home Assistant a choisi d'implémenter un maximum d'interconnexion possibles avec les protocoles ouverts existants. En particulier, grâce à une excellente intégration de MQTT, Home Assistant permet d'intégrer finement tous les systèmes basés sur ce protocole.
MQTT
A la base, MQTT n'est qu'un système assez primitif d'échange de messages via un intermédiaire (le broker). Mais son utilisation en domotique l'a fait évoluer vers des messages structurés de plus en plus descriptifs, permettant une bonne couverture de tous les types de données utiles. En particulier, l'apparition de passerelles comme Zigbee2MQTT, capables de convertir des messages Zigbee propriétaires en messages MQTT compréhensibles, en ont fait une solution incontournable en domotique.
Pour rendre l'utilisation de MQTT encore plus aisée, Home Assistant propose aux émetteurs de messages MQTT d'envoyer occasionnellement un message spécial d'annonce, servant à documenter l'utilisation applicative de tous les messages qu'ils utilisent. Grâce à ce mécanisme, nommé MQTT discovery, Home Assistant permet à l'utilisateur de voir en un coup d'oeil les objets connectés détectés, et de créer en quelques clics des interfaces utilisateurs appropriées pour ces objets, sans devoir implémenter une extension spécifique pour chaque matériel.
Home Assistant permet de configurer facilement les objets MQTT qui s'annoncent
D'autres systèmes de domotique comme openHAB ont emboité le pas et reconnaissent les messages de MQTT discovery codés selon la syntaxe de Home Assistant.
Yoctopuce et Home Assistant
VirtualHub et les interfaces réseau de Yoctopuce (YoctoHub-Ethernet, YoctoHub-Wireless-n, etc.) possèdent depuis longtemps la possibilité de publier l'état de tous les capteurs et actuateurs connectés sur un broker MQTT. Cela se configure au niveau des callbacks HTTP, comme documenté dans un précédent article.
Configuration de la connection vers un broker MQTT
La nouveauté du jour, c'est que si vous les mettez à jour à la version 54000 ou supérieure, ils publieront désormais des messages MQTT discovery vous permettant de les utiliser très facilement avec Home Assistant.
Les modules Yoctopuce apparaissent désormais dans la liste des objets MQTT découverts
En cliquant sur un module, on obtient ses détails et un lien pour l'ajouter au panneau de contrôle
Installation et exemple d'utilisation
Si vous n'avez pas encore d'installation de Home Assistant, vous trouverez dans la documentation plusieurs méthodes à choix. Nous avons choisi d'installer une machine de contrôle à neuf, mais comme nous avons l'intention de continuer à faire tourner nos propres scripts d'automatisation sur cette même machine, nous avons opté pour une image Linux Mint standard, et installé Home Assistant Container via Docker. Les autres composants essentiels du système (le broker MQTT mosquitto, zigbee2MQTT et les outils Yoctopuce) ont été installés nativement, car pour ce genre de petits outils tout simple, Docker apporte plus d'ennuis que d'avantages.
Pour tester Home Assistant, nous avons décidé de voir si il fournirait effectivement un bon moyen de contrôle de notre système de ventilation pour lutter contre l'humidité mis en place il y a près de dix ans, et qui fonctionne toujours avec le même script Python qu'à l'origine. Nous avons donc simplement configuré sur notre VirtualHub un callback vers le broker MQTT, sans rien changer d'autre.
Le résultat est très positif. En quelques clics, nous avons obtenu l'interface que nous souhaitions, sans la moindre difficulté:
Il a suffit de quelques clics pour obtenir ce panneau de contrôle
Les éléments de l'interface web se repositionnent parfaitement si on y accède en WiFi depuis un téléphone portable. En cliquant sur n'importe quel capteur, on obtient même un graphique de l'historique des mesures:
L'historique des capteurs est spontanément disponible
Conclusion
L'ajout de la discovery MQTT aux hubs Yoctopuce vous simplifiera sans aucun doute l'utilisation des modules Yoctopuce avec Home Assistant. Vous pouvez désormais ajouter toute sorte de capteur (CO2, température, puissamce, etc.) à votre système de domotique sans le moindre effort. Nous avons été impressionnés par la qualité de la solution Home Assistant, qui n'a offert aucune difficulté à être configuré et utilisé alors même que nous ne l'avions jamais étudié avant l'élaboration de cet article.
Un détail important à ne pas oublier: dans l'état actuel, l'intégration MQTT de Yoctopuce ne permet que de publier des valeurs, mais pas de modifier l'état des modules Yoctopuce. Elle est donc parfaite pour effectuer des mesures et de la surveillance, mais pas encore adéquate pour effectuer de l'automatisation via MQTT. Toutefois, vu le potentiel qu'offre cette intégration avec Home Assistant, nous risquons bien de ne pas nous en arrêter là...