Il y a quelques années, j'avais un besoin dans ma maison : piloter mes radiateurs automatiquement avec des sondes de températures. S'offraient alors deux solutions : un thermostat déjà tout fait, mais pas connecté, ou alors de la domotique. La domotique m'aurait permis d'étendre un peu le concept à l'éclairage, de la sécurité, l'arrosage automatique du jardin. La domotique s'imposait donc. Cependant je n'avais aucune envie de dépendre d'une société avec du cloud, ce qui aurait potentiellement compromis mon système lors de coupures, soit d'internet, soit de leur service.
Concernant les puces, j'ai décidé d'apprendre à bricoler des esp8266 : ce sont des puces programmables de type arduino mais avec du wifi. Certaines de ces puces sont vraiment très pratiques, elles se branchent en USB que ce soit pour l'alimentation ou la programmation ce qui facilite vraiment le tout. D'autres sont déjà prètes comme certains modèles de relais de chez sonoff qu'on peut reprogrammer facilement en soudant des pates et en branchant ça à l'ordinateur.
Après une trop courte recherche, je suis parti sur le logiciel domoticz. L'interface utilisait une API ce qui était pratique pour coder : une API en http c'est simple. Les puces pouvaient faire serveur et client HTTP pour communiquer avec domoticz.
je vous épargne les nombreux bugs que j'ai pu rencontrer, programmer en C sur une puce est parfois une épreuve compliquée. En gros, parfois j'ai raté mes montages électroniques (essentiellement en utilisant des esp01 qui sont plus complexes à mettre en place.) parfois c'était software, exemple simple de bug possible : des stack overflow en tentant de mettre le JSON de l'API sur la stack.
Il y a deux ans, retournement de situation : une mise à jours du logiciel domoticz le rendait incompatible avec les raspberry pi zero. Là c'en était trop. C'était déjà un logiciel bien buggé, pour réparer ce problème j'aurais du recompiler domoticz sur mon raspberry et reconfigurer tous mes radiateurs. Hors de question de poursuivre avec cette horreur. J'ai donc recommencé de zero pour partir vers un logiciel plus moderne : home assistant. Et cette fois ci, je n'allais pas envisager de l'installer sur un raspberry mais sur un vrai ordinateur.
Pour communiquer entre les puces et home assistant, il y a de la documentation, de nombreux exemples, et tout se fait en MQTT. Le serveur MQTT et home assistant s'installent avec docker. j'ai recodé toutes mes puces et me retrouve maintenant avec :
- Des radiateurs
- Une VMC
- Des sondes de températures / humidité, CO2
- Des prises connectées, pour lampes de jardin ou pompe de jardin par exemple
- Un "relais" infra rouge qui permet de commander de l'éclairage LED.
- Des caméras connectées à base d'esp32cam.
Suite à ça, j'ai pu bricoler quelques autres trucs non reliés à home assistant, par exemple un serveur web qui permet de servir de relais pour une télécommande.
Pour vous aider à debug ce qui se passe sur le serveur MQTT, cette commande bash peut vous être utile. Elle vous permet de voir tout ce qui passe entre home assistant et vos devices. (changez l'ip pour la votre bien sur)
mosquitto_sub -h 192.168.X.X -t '#'