Utiliser les capteurs Yoctopuce avec InfluxDB 2.0 OSS

Utiliser les capteurs Yoctopuce avec InfluxDB 2.0 OSS

InfluxDB est une base de données spécialement conçue pour stocker des séries temporelles de mesures. Il était déjà possible d'ajouter les mesures des capteurs Yoctopuce dans une base InfluxDB 1.0 à l'aide des YoctoHubs ou du VirtualHub, mais récemment une nouvelle version d'InfluxDB est sortie et utilise une nouvelle API qui n'est pas compatible. Nous avons ajouté le support pour cette nouvelle version dans les firmwares des YoctoHubs et dans le VirtualHub. Voici comment insérer les mesures des capteurs Yoctopuce dans InfluxDB 2.0 directement depuis un YoctoHub.


Dans cet article, nous allons parler de comment ajouter les mesures de capteurs Yoctopuce à l'aide de la fonctionnalité Callback HTTP qui est présente dans tous les YoctoHubs et le VirtualHub. L'avantage de cette solution est qu'elle ne nécessite aucune ligne de code: C'est le YoctoHub qui établit automatiquement la connexion avec le serveur InfluxDB et qui enregistre les mesures.

Nouvelle API


Comme nous l'avons dit plus haut, la version 2.0 d'InfluxDB n'est pas rétrocompatible, car l'API pour se connecter à la base de données est différente. Dorénavant, pour ajouter des mesures à la base de données, le YoctoHub a besoin des informations suivantes:

  • Le nom d'hôte serveur ou son adresse IP
  • Le numéro de port du serveur
  • Le nom de l'organization
  • Le nom du bucket
  • Le token à utiliser pour l'authentification


Le nom d'hôte et le numéro de port du serveur InfluxDB ne nécessite pas d'explication, mais notez qu'il n'est pas possible de se connecter aux serveurs InfluxDB Cloud 2.0. Seules les installations d'InfluxDB OSS 2.0 sont supportées. En effet, InfluxDB Cloud requière une connexion SSL et le processeur des YoctoHubs n'est pas assez puissant pour cela.

Pour le reste, une organization est un espace de travail pour un groupe d'utilisateurs. Un bucket est un emplacement nommé où les données de séries chronologiques sont stockées pendant une durée déterminée.

En d'autres termes: Les nouvelles mesures sont donc ajoutées à un bucket qui appartient à une organisation qui est stockée sur un serveur InfluxDB 2.0.

La dernière information est le token d'authentification. Comme son nom l'indique, ce token est utilisé pour authentifier le client qui se connecte à l'API. Il est possible d'en ajouter, modifier ou supprimer depuis l'interface Web d'InfluxDB.

Pour configurer un callback InfluxDB 2.0 dans le VirtualHub ou sur n'importe quel YoctoHub, il suffit donc de sélectionner "InfluxDB 2.0" et de renseigner ces cinq informations.

Le panneau de configuration des callbacks InfluxDB 2.0
Le panneau de configuration des callbacks InfluxDB 2.0



Un exemple concret


Pour illustrer cette nouvelle fonctionnalité, nous allons vous montrer comment installer InfluxDB 2.0 OSS et configurer un YoctoHub pour qu'il enregistre les mesures des trois capteurs d'un Yocto-Meteo-V2 toutes les minutes.

La procédure d'installation d'InfluxDB 2.0 est simple et bien documentée. Il est possible de l'installer en utilisant Docker ou en téléchargeant les binaires précompilés. Nous avons choisi d'installer les binaires Linux sur notre machine Ubuntu 64 bits.

L’installation est triviale est se résume à trois commandes:

wget https://dl.influxdata.com/influxdb/releases/influxdb_2.0.0-beta.5_linux_amd64.tar.gz tar -zxvf influxdb_2.0.0-beta.5_linux_amd64.tar.gz sudo cp influxdb_2.0.0-beta.5_linux_amd64/{influx,influxd} /usr/local/bin/



Il suffit ensuite de démarrer le serveur à l'aide de la commande influxd

yocto@laptop-linux:~$ influxd 2020-03-11T16:17:07.871650Z info Welcome to InfluxDB ... 2020-03-11T16:17:07.909999Z info Resources opened ... 2020-03-11T16:17:08.021847Z info Opening Series File (start ... 2020-03-11T16:17:08.025031Z info Opening Series File (end ... 2020-03-11T16:17:08.027645Z info Index opened ... 2020-03-11T16:17:08.028562Z info Reloaded WAL ... 2020-03-11T16:17:08.028704Z info Starting ... 2020-03-11T16:17:08.029491Z info Starting query controller ... 2020-03-11T16:17:08.329894Z info Listening ... 2020-03-11T16:17:08.329923Z info Starting ...


Pour cet exemple, nous nous sommes contenté de démarrer le serveur à la main, mais pour un usage plus sérieux il faudrait automatiser le démarrage du serveur InfluxDB lors du boot de la machine. Nous avons du reste un article sur ce sujet.

Il faut ensuite se connecter à l'interface Web d'InfluxDB 2.0 et suivre le wizard d'installation. Dans ce wizard, il nous est demandé de créer un user ainsi qu'une première organization et un premier bucket.

Le wizard d'installation d'InfluxDB 2.0
Le wizard d'installation d'InfluxDB 2.0



Les tokens se trouvent dans la section "Load data" et la sous-section "Tokens". On remarque que par défaut InfluxDB a déjà créé un token avec tous les droits. On peut soit utiliser celui-ci, soit en créer un deuxième plus restrictif.

Par défaut un token avec tous les droits est déjà présent
Par défaut un token avec tous les droits est déjà présent



Nous avons maintenant toutes les informations nécessaires pour configurer le YoctoHub. Dans l'interface Web du YoctoHub, il suffit de remplir les cinq champs et changer l'intervalle à une minute.

Notre configuration de callback InfluxDB 2.0
Notre configuration de callback InfluxDB 2.0



On peut valider ces paramètres à l'aide du bouton Test en bas de la fenêtre. Si tout se passe bien, vous obtiendrez simplement le message:

[Connection closed]



Il ne reste plus qu'à fermer la fenêtre avec le bouton Ok.

Le YoctoHub va maintenant se connecter toutes les minutes au serveur InfluxDB 2.0 et poster la valeur de tous les capteurs Yoctopuce branchés. Dans notre cas, comme nous avons uniquement un Yocto-Meteo-V2 branché, cela correspond à la température, l'humidité et la pression atmosphérique.

On peut vérifier que les mesures des capteurs sont bien là à l'aide du Data Explorer d'InfluxDB 2.0:

On retrouve les mesures de nos capteurs dans le Data Explorer
On retrouve les mesures de nos capteurs dans le Data Explorer



Pour les nouveaux utilisateurs d'InfluxDB, le Data Explorer peut paraître compliqué et les mesures introuvables. En fait, il faut simplement veiller à bien choisir le bon bucket dans la première colonne et sélectionner yoctopuce dans la deuxième colonne car toutes les mesures envoyées par les YoctoHubs ont le tag yoctopuce.

Conclusion


Cette nouvelle version d'InfluxDB 2.0 casse la compatibilité ascendante et nous a obligé à développer un callback spécifique, mais au final l'utilisation de cette nouvelle version est plus simple. Dans tous les cas, si vous utilisiez déjà InfluxDB 1.0, vous pouvez dorénavant migrer votre serveur en 2.0 et continuer à utiliser vos capteurs Yoctopuce.

Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.