Mon objet connecté et Home Assistant
Vous l’attendiez la voila, la suite de notre série consacrée au DIY. Dans l’épisode précédent, nous avions vu comment mettre en place les briques de bases permettant de développer notre objet connecté. Nous avions manipulé un peu de code permettant de prendre des mesures et de les restituer via un terminal. Aujourd’hui, nous allons aller plus loin et découvrir le fonctionnement de la partie wifi. Enfin, nous verrons comment intégrer les données dans Home-Assistant afin de les exploiter au quotidien.
Prérequis
Cet article est directement lié au précédent. Il est donc nécessaire d’avoir un système similaire à ce que nous avions vu. Côté matériel rien ne change vous n’avez besoin de rien de plus. Je rappel la liste au cas ou.
Wemos D1 mini Je me suis équipé de la dernière version de wemos D1 mini qui est basé sur un ESP8285 | x 1 | ||
DS18B20 Thermomètre numérique | x 1 | ||
Breadboard Une plaque de prototypage | x 1 | ||
Résistance 4K7 Résistances | x 1 | ||
Jumper wire Des cables | x 1 |
Envoyer les données
Dans un premier temps nous allons nous concentrer sur l’envoi de données sur une API Rest. Comme nous l’avons vu à plusieurs reprises (ici par exemple), ce type de solution permet une grande flexibilité. Beaucoup de système domotique fournissent ce type d’interface nous permettant ainsi d’intégrer facilement de nouveaux périphérique.
Mise en place d’Apis
Dans un premier temps je vous propose de mettre en place un petit utilitaire très simple qui nous permettra de visualiser les températures envoyées par votre sonde. Pour commencer, téléchargez et installez NodeJs (disponible ici). Procure-vous le code disponible ici et décompressez le. Ouvrez un terminal, placez-vous dans le dossier qui en résulte et lancez la commande
node index.js
Nous avons maintenant un serveur fournissant une api. Ce code est très simple puisqu’il va simplement capter toutes les sollicitations et afficher les informations qu’elles contiennent dans le terminal. Ainsi quand notre objet sera opérationnel nous devrions voir passer une ribambelle de température.
Envoi des informations
Comme dans l’article précédent la première étape consiste à installer les bibliothèques nécessaires. Rendez vous dans Croquis > Inclure une bibliothèque > Gérer les bibliothèques, cherchez et ajoutez ArduinoJson, OnWire et DallasTemperature si ce n’est pas déjà fait.
Sans plus attendre je vous laisse avec le nouveau code à upload sur votre Wemos. Comme la dernière fois vous trouverez les explications pour le comprendre en détail en commentaires.
https://gist.github.com/quentinchap/78b4f8b942acf45280904e74ca05e877
Vous pouvez maintenant upload le code sur votre carte grâce à la petite flèche en haut à gauche. A partir de maintenant toutes les cinq minutes votre wemos prendra une température et l’enverra ver l’URL que vous avez choisi. Si cette dernière correspond au serveur que je vous ai fait mettre en place en début de tuto. Vous devriez donc voir défiler les températures dans votre terminal.
https
Petite parenthèse. Si vous tentez d’utiliser une adresse en https:// vous ne devriez pas réussir à joindre votre api à cause du certificat SSL. En effet, le code ci-dessus ne permet pas d’effectuer toutes les vérifications nécessaire à l’établissement d’une connexion sécurisée.
Pour régler ce problème c’est très simple. Dans un premier temps il vous faut récupérer le fingerprint (l’empreinte) du certificat dont vous avez besoins. Il s’agit d’une chaîne de caractère que vous pouvez trouver grâce à votre navigateur en cliquant sur le petit cadenas informant que le site est sécurisé et en allant voir les information du certificat
ou bien grâce à des utilitaires d’analyse de certificat tel que de digicert (il en existe plein d’autre sur internet). Copiez la valeur de l’empreinte SHA-1 et modifiez simplement la ligne 87 de l’exemple précédent en la remplaçant par
https://gist.github.com/quentinchap/2fce27c39c600aa45bd0a77eccd0b137
Intégration HA
Avec ce que nous avons vu précédemment nous allons pouvoir facilement intégrer nos informations de température et ceux dans de nombreux systèmes. Aujourd’hui je vous propose de voir une solution possible afin d’exploiter ces données au sein d’Hassio. Pour ce faire nous allons passer par InfluxDb qui est une solution assez couramment utiliser pour ce type de besoin.
installation de influxDB
L’installation est très simple. Il suffit de vous rendre dans l’add-on store et de cherchez InfluxDB. Installer le module qui vous est proposé, et complétez les champs username et password dans le champs Config. Ensuite lancé le module en cliquant sur Start. Une fois le démarrage terminé, un bouton Open Web UI devrait alors apparaître. C’est grâce à lui que vous pourrez accéder aux outils de visualisations des données.
Ouverture de port
Si vous avez l’intention d’accéder à vos données depuis l’extérieur de votre réseau vous devrez ouvrir les port 8086 et 8888 sur votre box. Si vous ne savez pas comment faire je vous renvoi à l’article Installez Home-assistant où nous avions abordé ce point. Vous pouvez aussi facilement trouver plein d’article adaptés à votre box sur le net.
Code Wemos
Concernant le programme embarqué dans notre Wemos nous allons seulement changer une chose par rapport à l’exemple précédent. En effet en plus ou à la place de la fonction sendApi que nous avons détaillez précédemment, nous allons en mettre en place et en utiliser une nouvelle. Nous la nommerons sendInflux, elle reprend les même éléments que ce que nous avons vu plus haut tout en prenant en compte les caractéristiques de l’Api d’influx.
https://gist.github.com/quentinchap/d3a2a230bf9450d14e40affa8cf7c658
Afficher la température sur votre dashboard
Je ne m’attarderais pas à vous expliquer toutes les options de l’Add-on InfluxDB. En effet cela demanderais à lui seul un article complet afin de bien comprendre comment tous fonctionne. Cependant il est simple d’ajouter une bulle sur votre Dashboard afin d’afficher la dernière mesure captée.
Pour ce faire rendez-vous dans la configuration d’Home-assistant et ajouter la configuration suivante
https://gist.github.com/quentinchap/a5cb21a89a63de81a8f19c99ff89d324
Maintenant, redémarrez Home-assistant pour être certain que la configuration soit bien rechargée et normalement vous devriez voir apparaître la température sur votre dashboard.
Conclusion
Voila c’est terminé pour aujourd’hui. Nous avons abordé une méthodes permettant d’intégrer et d’utiliser les données captées mais ce n’est pas la seule. Même si nous n’en avons vu qu’une, vous devriez, à la fin de cette article, avoir les clés pour construire vos propre intégration avec n’importe qu’elle solution fournissant des API Rest. C’est notamment le cas de système comme Eedomus et Jeedom.
Dans le cas où vous n’auriez pas d’API vous pouvez vous appuyer sur des solution comme les webhook d’IFTTT que nous avons déjà exploité dans l’article Google Home et IFTTT
On se retrouve bientôt pour la suite de la série et comme d’habitude n’hésitez pas à poser vos questions en commentaire.
Cadre en informatique dans une multinationale je suis un touche-à-tout passionné de nouvelles technologies.
1 réponse
[…] Vous l’attendiez la voila, la suite de notre série consacrée au DIY. Dans l’épisode précédent, nous avions vu comment mettre en place les briques de bases permettant de développer notre objet connecté. Nous avions... Source: Devotics […]