Home Assistant, la domotique accessible

Le problème de la domotique
La domotique nous est souvent présentée comme la solution à tout : économies, confort, simplicité et harmonie. En pratique, soyons honnête, c'est un enfer. Les questions de compatibilité arrivent très vite, les standards ne le sont pas tant que ça, et certaines entreprises appliquent une belle marge sous couvert d'un logo Google Home, Alexa ou HomeKit.

Plusieurs chose me dérangent.
Tout d'abord, une ampoule Philips Hue et un capteur de température Xiaomi utilisent tous les deux le protocole Zigbee, mais il faut acheter les passerelles Philips Hue et Xiaomi facturés respectivement 50 et 35€. Je ne suis pas contre mettre le prix pour un service de qualité, mais l'idée d'avoir un boitier par marque me pose problème. Mais le Zigbee n'est pas le seul protocole de communication : WiFi, 433MHz, Enocean, Z-wave et j'en passe. Pour chaque protocole une nouvelle passerelle. De plus, la domotique implique que des appareils intelligents communiquent ensemble pour rendre des services aux habitants de la maison. En pratique les équipements de différentes marques ne peuvent pas communiquer ensemble, on est loin de la "Maison intelligente".
Ensuite, chaque marque propose son propre Cloud, sa propre application. Outre le fait que les données de ma maison deviennent accessible par plusieurs entreprises, je prends le risque que si une entreprise ferme, mon appareil devienne soudainement inutilisable. Je ne parle pas forcément de gros acteurs comme Ikea, Netatmo ou même Arlo, mais plutôt de la foule de caméras ou prises connectées à quelques euros qui fournissent un pseudo Cloud gratuitement : comment ces entreprises arrivent à financer les serveurs et la bande passante nécessaires au bon fonctionnement du service ? Ces entreprises se sont-elles payées des audits de sécurité ou maintiennent-elles à jour leurs équipements, impossible de le savoir.
Et pour finir, la question de la compatibilité. Un appareil qui fonctionne dans l'écosystème Google Home ne fonctionnera pas toujours dans HomeKit, ou inversement. On peut aussi citer les exemples des passerelles physiques Xiaomi ou Philips qui n'ont pas reçues de mises à jour software lors de l'arrivée de HomeKit et que certains utilisateurs ont du racheter pour avoir une version compatible.
Le choix de Home Assistant
Maintenant que j'ai terminé mon introduction de gros grincheux, nous pouvons passer à la suite en parlant des solutions !
Pour résoudre ces problèmes, certaines enseignes et les communautés de bricoleurs se sont retroussées les manches et ont développés des solutions.
Je ne suis pas convaincu par les passerelles fermées comme celle de l'enseigne Leroy Merlin qui à sorti il y'a quelques temps la passerelle maison Enki. Cette solution est vendue comme une box domotique conçue pour unifier tous les appareils, mais en pratique elle ne prends pas tout en charge, et on reste dépendant du bon vouloir de Leroy Merlin pour ajouter ou non la compatibilité d'un produit "partenaire".

On en vient donc aux solutions DIY développées par les communautés : Home Assistant, Jeedom, Domoticz, Homey, Nextdom et les autres. Ces solutions sont proposées par des passionnés qui proposent (plus ou moins) gratuitement et librement le fruit de leur travail. Se lancer sur une solution open-source vous assure la liberté de connecter les équipements de votre choix, et d'accéder aux travaux de milliers de gens à travers le monde qui auront forcément déjà essayé de faire la même chose que vous. Vous pouvez vous aussi partager vos connaissances en aidant la communauté. Mais il faut être conscient dès le début des limites de l'open-source : le projet peut lui aussi être abandonné (par manque de temps, d'argent, un conflit interne...). Il faut donc choisir un projet solide. Cependant, comme tout est en local, si le projet s'arrête, la maison ne se retrouvera pas dans le noir.
Au jour où j'écris cet article, les deux projets phares sont Jeedom et Home Assistant, comment choisir ? J'ai mis à plats mes besoins :
- La communauté : Un projet solide, avec une grosse communauté
- La simplicité : Une prise en main accessible et compréhensible depuis quelques versions
- La compatibilité : Des plugins libres pour ajouter mes équipements
Home Assistant remporte haut la main sur ces points particuliers (qui sont importants pour moi). La domotique doit selon moi être accessible et savoir se faire oublier. Home Assistant tourne tout seul et ne nécessite que peut de maintenance une fois que tout est bien installé. Les mises à jours se font en un clic et généralement les équipements s'installent sans grande difficulté via les intégrations.

Home Assistant sait s'intégrer dans les écosystèmes Android et iOS/iPadOS et s'intègre dans Google Home et Apple HomeKit.



L'application est efficace et l'interface est 100% personnalisable, j'ai pu me faire une page simple. Normalement je n'ai même pas besoin de l'application grâce aux automatisations.



Au fur des mises à jours, de nouvelles fonctionnalités sont ajoutées, et on peut saluer l'énorme effort pour rendre Home Assistant accessible, notamment via l'amélioration de l'interface graphique. Il n'est quasiment plus nécessaire d'avoir affaire à des fichiers de configuration illisible, tout ou presque se fait via une GUI assez claire : automatisations, scripts, réglages etc...


Installation normale
Vous pouvez installer Home Assistant sur presque n'importe quel appareil (Mac, PC, Linux). Home Assistant peut être fier d'avoir rendu la procédure extrêmement facile en mettant à disposition des images pour Raspberry, Intel NUC, Odroid et d'autres...

Honnêtement les explications sont très claires sur ces appareils, et des milliers de tutos dans toutes les langues ont étés créés en particuliers sur les Raspberry Pi. Et c'est top !
Un Raspberry Pi, une carte SD, une alimentation et c'est parti !
Installation de Home Assistant sur une VM Proxmox

Pour Home Assistant j'ai choisi d'utiliser la virtualisation sur Proxmox au lieu d'un Raspberry. C'est un choix personnel pour éviter de multiplier les appareils à la maison. Tout est installé sur un Intel NUC dans le cellier, j'écrirais bientôt un article pour détailler tout ça. Plusieurs solutions s'offrent à nous mais je conseille le script de whiskerz007 qui est radicalement efficace.
bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassos_install/raw/master/install.sh)"

Une simple ligne de code et vous voilà avec une VM de Home Assistant. Vous pouvez personnaliser la configuration hardware de la VM. J'ai alloué 4GB de RAM, 2 vCPU et 32Go de SSD.

Le matériel et les intégrations
Dans cet article je ne vous présenterai que brièvement mes équipements, sans détailler la configuration pour éviter de faire un article trop lourd. Certains montages comme le chauffage ou l'agrégation du Linky feront peut-être l'objet d'articles dédiés.
Nous l'avons déjà vu dans l'introduction, plusieurs protocoles cohabitent. J'ai choisi les protocoles Zigbee et WiFi, ce sont les plus courants en domotique et les équipements ne sont pas très onéreux. Le WiFi, tout le monde l'a, mais pour le Zigbee il vous faudra un adaptateur.

Il existe plein d'adaptateurs très cher, mais je vous propose la solution des dongles USB CC2531 flashés compatibles Zigbee2MQTT. Vous pouvez acheter un dongle CC2531 et le flasher vous même mais nombreux sont les bidouilleurs qui vendent sur eBay et Leboncoin des dongles pour rentabiliser l'achat du matériel de flash.

Côté équipements, j'ai installé :
- 7 capteurs de température Xiaomi Aqara en Zigbee.
- 1 prise Philips Hue Smart Plug en Zigbee
- 3 ampoules Ikea Tradfri en Zigbee
- 5 ampoules Philips Hue Light en Zigbee
- 2 éclairages Philips Hue Play en Zigbee
- 3 boutons Philips Hue Smart Button en Zigbee
- 1 relai Shelly 2.5 en WiFi
- 1 micro-contrôleur ESP8266 en WiFi
- 1 purificateur d'air Xiaomi Air Purifier en WiFi
- 1 aspirateur Xiaomi Vaccum Cleaner en WiFi
Tout ce petit monde est généralement directement détecté par Home Assistant via ses intégrations. Beaucoup d'intégrations sont disponibles nativement, mais vous pouvez installer HACS, un "magasin" d'add-on qui met à disposition des millions de projets créés par la communauté.

L'éclairage
Les éclairages (ampoules Philips et Ikea Tradfri et leurs boutons) sont connectés au Pont Philips Hue (que je possédais déjà) branché en Ethernet. L'application Philips Hue est incroyable, j'ai donc ravalé ma fierté et mes principes et j'utilise toujours la passerelle tant qu'elle répond à mes besoins. Le pont est directement détecté par Home Assistant, ça fonctionne bien.


Les capteurs de température
Les capteurs Xiaomi Aqara sont connectés en Zigbee directement sur la clé sur Home Assistant via l'intégration Zigbee2MQTT. Le Zigbee est un protocole Mesh, c'est à dire que les équipement qui sont connectés à une alimentation secteur (comme la prise connectée) servent de relai pour le réseau.


Les capteurs sont relativement cachés dans chaque pièces.


Le chauffage
J'ai des radiateurs à fil-pilote, ce type de radiateurs obéit aux consignes données via le fil-pilote, on programme une température de confort et le radiateur adapte la température selon l'ordre donné. En suivant les indications ci-dessous, je vois que j'ai besoin d'un signal sinusoïdal 230VAC pour le Mode Eco et d'une absence de signal pour le Mode Confort.

Beaucoup de solutions existent pour commander ces radiateurs mais la solution la plus simple pour moi à été d'utiliser un relai connecté Shelly 2.5. Ce relai est capable de contrôler deux signaux 230V et mon logement est divisé en deux zones (Chambres et Salon/Cuisine), je peux donc tout contrôler avec un seul appareil.

Lorsque le relai est ouvert, le signal est nul (ou plat) et le radiateur passe en Mode Confort (température de consigne, par exemple 21°C), lorsqu'il est fermé, le signal alternatif sinusoïdal envoyé sur le fil-pilote demande au radiateur de passer en Mode Eco (-3,5°C sur mes radiateurs donc 21-3.5 = 17,5°C par exemple).
A l'aide des automatisations dans Home Assistant, le chauffage est déclenché à certains horaires seulement si quelqu'un est à la maison.

J'ai aussi rajouté un bouton pour forcer/couper les radiateurs lors de cas particuliers. Home Assistant nous alerte via Telegram de l'état du chauffage.

Le suivi de consommation électrique
A l'aide d'un ESP8266 et d'ESPHome, je suis en mesure de récupérer les informations du compteur Linky. L'ESP8266 est branché sur le port série du Linky et envoie en WiFi à Home Assistant la consommation électrique. Sur le panneau "Energy" de Home Assistant je peux avoir une vision de ma consommation quotidienne, mensuelle et annuelle.



Ce n'est encore qu'à l'état de projet sur une breadboard, mais le montage fonctionne depuis plusieurs semaines avec succès.
L'aspirateur
J'ai publié un script pour automatiser son aspirateur Xiaomi lorsqu'il n'y a personne à la maison. Home Assistant peut se connecter facilement aux équipements Xiaomi et remplace désormais mon script basique.


Conclusion
Home Assistant est un outil puissant qui permet donc de s'affranchir des solutions propriétaires souvent incompatibles et qui peut répondre à des besoins complexes tout en restant simple. L'outil est encore perfectible et il faudra quelquefois mettre les mains dans le cambouis pour paramétrer certains équipements ou pour se faire un belle interface sur le Dashboard. Mais les développeurs ont énormément travaillé pour que l'interface graphique soit accessible et relativement facile à comprendre et limiter l'utilisation des fichiers de configuration illisibles. Les mises à jour régulières et les addons de la communauté sont un vrai plus.
N'hésitez pas à me contacter sur Twitter si vous avez des retours ou des questions 😀