Gladys, la domotique saine pour tous
Bonjour à tous !
Ca fait un bail mais que voulez vous, après l’arrêt de mes activités « professionnelles » dans la crypto, j’avais besoin de prendre un peu de recul et de passer plus de temps sur des sujets disons, plus importants. Je n’exclue pas m’y replonger à l’avenir, mais j’avais besoin de prendre l’air.
Me revoilà donc sur un sujet loin de la crypto mais on ne peut plus proche de mes valeurs en informatique à savoir la sécurité, le respect de la vie privée, des données personnelles, l’hygiène numérique, l’aspect communautaire, la bienveillance, la transparence, l’open source et le partage.
Pourquoi la domotique me direz-vous ? Et bien à la suite de quelques cambriolages dans mon quartier, ma femme avait besoin de nous savoir, nous et nos enfants, en sécurité chez nous et j’avoue que moi aussi ! Je me suis donc mis en quête d’un moyen de mettre en place un système d’alarme sans pour autant passer par un prestataire de services comme Verisur à 40€ par mois pour qu’en plus il ait la main sur des équipements, comme des caméras, installés chez nous. Il ne manquerait plus que ça… Alexa, Siri et autres Google Assistant n’ont pas le droit d’asile chez moi, alors ça n’est pas pour installer le mouchard d’un autre. Et oui, Amazon, Apple et Google écoutent ce qui se passe chez vous. Ne vous en faîtes pas, c’est pour améliorer leurs services 🤦♂️… Déjà, pour que ces enceintes répondent quand vous dîtes « Ok Google », il faut bien que le micro des enceintes soit activé en permanence 🤷♂️, on pouvait donc compter sur eux pour écouter tout ce qui se passe chez leurs clients (leurs pigeons ? Il n’y a qu’un pas). Ajoutez à cela mon intérêt pour la découverte de nouveaux protocoles, le petit défi technique, et me voilà lancé dans ma quête du Graal.
J’avais déjà regardé le projet de Pierre-Gilles il y a 6 ou 7 ans après qu’un ami m’en ait parlé, mais je manquais alors de temps pour creuser le sujet et surtout je n’avais pas d’intérêt autre que la curiosité pour m’y plonger.
C’est la première question que l’on m’ait posée sur X (ex Twitter) lorsque j’ai parlé de Gladys. Etant nouveau dans le domaine et ne connaissant pas le second je serai bien incapable d’avoir de bons arguments. C’est simplement un feeling qui m’a lancé sur Gladys, la courtoisie de la communauté, et encore un fois les valeurs portées par le projet qui faisaient écho chez moi. C’est aussi cet aspect découverte qui me fait écrire cet article en espérant qu’il puisse éclairer certains ou certaines sur ce qu’est la domotique, quels en sont les risques, et comment sauter le pas quand on part de rien, tout en gardant le contrôle sur ce qui se passe dans notre maison. Il est important de noter que Gladys est projet français 🐓, mais qui s’ouvre aux anglophones et pour cause, NodeJS s’en fiche pas mal de la langue du codeur ! Les deux langues sont donc disponibles dans l’interface ainsi que dans leurs forums respectifs.
Cet article sera probablement le premier d’une mini série. Je vais tâcher d’expliquer ici mon choix de la plateforme et les singularités du projet. Les suivants seront axés sur mon expérience pratico pratique de la découverte de Gladys, de la domotique au sens large, à la présentation de mon « set up », et de ce qui va venir ensuite car oui, avec Gladys, j’ai ouvert une porte que je ne suis pas prêt de refermer 😅
Sur Wikipedia, la domotique c’est ça : La domotique est l’ensemble des techniques de l’électronique, de physique du bâtiment, d’automatisme, de l’informatique et des télécommunications utilisées dans les bâtiments, plus ou moins « interopérables » et permettant de centraliser le contrôle des différents systèmes et sous-systèmes de la maison et de l’entreprise.
En forçant (à peine) le trait on peut dire qu’aujourd’hui les différents constructeurs se font la guerre pour embarquer les clients dans leurs écosystèmes fermés. Vous vous retrouver avec une « Gateway » de la marque, c’est à dire un boîtier branché sur une prise 220V auquel les autres appareils, pour la plupart sur piles, vont se connecter / s’associer dans le jargon, des lampes, des prises, des caméras etc. et une application mobile qui va vous permettre de vous connecter à la dîte Gateway afin de piloter les équipements.
Premier problème : Suivant votre besoin un même constructeur peut ne pas proposer l’ensemble des équipements qu’il vous faut. Peut-être voulez-vous une sonnette avec caméra, ou bien des volets roulants, ou une bande lumineuse qui change de couleur derrière votre TV, ou du chauffage intelligent ou comme moi au départ, un système anti intrusion ou peut-être même tout ça à la fois. Résultat, il va vous falloir une Gateway de chaque marque et l’application mobile de chaque marque pour piloter tout ça.
Second problème : Comment faire intéragir des gateways de deux fabriquants ? Comment faire pour activer l’alarme et couper le chauffage lorsque vous fermez vos volets pour aller vous coucher ? C’est impossible. Comment faire si l’application du fabriquant de vous convient pas, si la traduction n’est pas bonne, si une fonction ne marche pas bien ou est simplement manquante ? Là encore vous êtes le bec dans l’eau et devez vous en remettre au bon vouloir des fabriquants et à leurs mises à jour.
Troisième problème : La sécurité de ces appareils connectés. Le code informatique permettant de faire fonctionner tout ça est fermé et ces équipements sont connectés, parfois même en wifi. Les fabriquants ont donc potentiellement accès aux données des Gateways (quid des hackeurs ?), peut-être savent-ils quand vous allez vous coucher, la liste de vos équipements, ou ont accès aux caméras ? Entre nous, quelle idée d’installer dans caméras DANS sa maison, DANS des chambres ? A part espionner sa famille, c’est quoi le projet ? Bref…
Alors ça commence à faire beaucoup tout ça. Je n’essaie pas ici de faire peur hein, mais de faire prendre conscience des risques liés à de tels équipements. Une fois qu’on les a identifiés, que l’on comprend comment ça fonctionne, que l’on sait ce qu’il ne faut pas faire, il devient bien plus simple de faire les bons choix, de ne pas dépenser de l’argent dans des appareils qui au final ne répondent pas à votre besoin, et d’être rassuré sur son installation.
Vous l’aurez peut-être compris, le maillon faible en domotique ce sont les gateways des fabriquants. Incompatibles entre elles, équipements limités, applications fermées…
Heureusement, Gladys est là !
Car oui, c’est ici que Gladys entre en jeu. C’est en quelque sorte une gateway universelle à laquelle vont pouvoir se connecter l’ensemble des appareils en lieu et place des gateways constructeurs.
- La plateforme s’installe sur n’importe quel appareil : PC, Serveur, Raspberry, NAS… Son format Docker la rend agnostique du système d’exploitation utilisé.
- Le code est open source, n’importe qui peut l’auditer et constater que les données exploitées par Gladys ne sont envoyées nulle part. Ce qui est chez vous reste chez vous.
- Gladys est compatible avec la plupart des fabriquants.
- Mieux, n’importe qui peut proposer de nouvelles intégrations via Github et proposer des « Pull Request » ou PR pour faire évoluer la plateforme en ajoutant de nouvelles intégrations, des modifications d’interface ou correction de bugs. Les modifications sont discutées et votées en amont sur le forum.
- Encore plus fort, Pierre-Gilles propose des streams Youtube de Live Coding, en français, où il réalise des intégrations des A à Z en une journée.
- Au-delà des protocoles domotiques, Gladys propose aussi de scanner votre réseau local ou via Bluetooth pour identifier les appareils connectés ou non, smartphones par exemple pour savoir qui est à la maison, de vous envoyer des notifications sur Telegram, d’intéragir avec des API via des requêtes HTTP pour vous envoyer un message sur Signal (les possibilités sont infinies)
- De vous afficher votre calendrier avec CalDav
- Une intégration ChatGPT, pour ceux qui le souhaitent
- De récupérer depuis Enedis vos données de consommations électriques Linky et de vous les afficher
- Et même récemment une intégration des enceintes Sonos avec du Text-To-Speech vous permettant de faire parler vos enceinte Sonos lorsque vous rentrez chez vous. J’en ai une depuis 2 mois, on se rapproche beaucoup d’IronMan et de Jarvis !
Certaines de ces fonctionnalités comme le Text-To-Speech faisant appel à des API payantes, leur usage nécssite un abonnement afin que Pierre-Gilles puisse financer les serveurs et que cela ne lui coûte rien.
Ah ça y est, faut payer, j’en étais sûr qu’on allait y venir !
Il faut ? Non. Gladys est et restera gratuite, c’est dans son ADN. Simplement, pour proposer certaines fonctionnalités demandées par des membres il est nécessaire de faire fonctionner des serveurs en backend et financer des API. Pierre-Gilles n’y gagne rien, il réinvestit tout dans la croissance du projet. Vous n’avez pas besoin de ces fonctionnalités ? Et bien ne prenez pas Gladys Plus 🤷♂️
En ce qui me concerne, sans même ces fonctionnalités, en tant qu’utilisateur j’aurai eu à coeur de soutenir le projet et avec ces fonctionnalités en plus c’est avec grand plaisir que j’ai souscris à Gladys Plus pour un an.
Quelles sont ces fonctionnalités propres à Gladys Plus ?
- D’accéder à votre instance Gladys en HTTPS de l’extérieur de votre réseau local, cela reste possible avec un reverse proxy et un peu d’huile de coude.
- D’avoir une sauvegarde chiffrée en ligne de votre base de données pour faciliter une restauration, là encore cela reste possible sans, pour peu que vous ayez les connaissances informatiques requises et l’installation qui s’y prête. Personnellement je sauvegarde le serveur virtuel sur lequel est installé Gladys
- D’interroger votre Gladys via une API depuis l’extérieur
- De bénéficier du Text-To-Speech sur les enceintes Sonos
- De contrôler Gladys depuis Alexa ou Google Home pour ceux qui le souhaitent (ce sera sans moi mais c’est possible)
- Et surtout de montrer son soutien au projet et j’en ai personnellement expérimenté l’importance.
Tout le reste de la solution est GRATUITE, de A à Z. Attention, tout n’est pas rose non plus. Malgré la compatibilité affichée des appareils avec des protocoles Open Source, tous ne sont pas aussi bien pris en charge et il se peut que certaines fonctionnalités ne soient pas, ou plutôt pas encore, disponibles directement dans l’interface de Gladys. Il vaut donc mieux se renseigner sur les marques/modèles déjà utilisés et validés par les autres membres et c’est là que la communauté prend tout son sens. Gladys s’ouvre aux anglophones et dispose d’un forum en anglais. Les membres des forums sont réactifs aux questions et il ne tient qu’à chacun de proposer des améliorations et/ou de les coder. Certes le codage n’est pas accessible à tout le monde mais grâce aux streams de live coding entre autre qui permettent de casser certaines barrières et à l’entre aide disponible sur le forum, chacun peut à son niveau contribuer à l’amélioration de la solution. Le projet est en NodeJS. Je compte moi-même m’y mettre mais j’attend d’avoir un socle disons solide de la solution chez moi. Le prochain article sera dédié à l’installation que j’ai faîte de Gladys et à l’utilisation que j’en ai pour le moment, orienté avant tout sur un système anti intrusion donc, de l’identification du matériel à l’installation en passant par la configuration. Je ne compte surement pas m’arrêter là et aussi utiliser Gladys pour m’aider à baisser ma consommation d’energie et optimiser le chauffage de mon foyer par exemple. Il ne faut pas non plus tomber dans l’excès et finalement créer un besoin, au lieu d’y répondre 😉
Un petit aperçu de ce à quoi je suis parvenu pour le moment qui marche du tonnerre, le tout affiché sur une vieille tablette Android (9 ans) fixée au mur en mode kiosque. La tablette se verrouille lorsque l’alarme est activée pour ne pas qu’un intru puisse la couper, et affiche un clavier numérique pour couper l’alarme.
La suite au prochain épisode, bonne année à tous 🍻