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.

Le matériel
Wemos D1 mini
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
DS18B20

Thermomètre numérique

x 1
Breadboard
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.

Si vous souhaitez en savoir plus sur la construction d’API je vous renvoi à cet article « Votre première application nodeJs / express » qui est une introduction à ce sujet.

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.

Pour l’installation de ArduinoJson choisissez bien une version 5. En effet les versions 6 sont des beta qui ne semblent pour le moment pas très stable

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

Fingerprint Google

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.

La suite de l’article suppose que vous avez un Hassio fonctionnel. Vous pouvez découvrir comment y parvenir dans cet article.

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

Si vous avez déjà des sensors de configuré ne recopier pas la première ligne et ajoutez seulement les autres à la suite des éléments déjà en place.

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.

1 réponse

  1. 5 février 2019

    […] 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 […]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.