Historique avec InfluxDb et Grafana

Depuis la version de juillet 2020, calaos en v3 peut envoyer les données des IO dans une base InfluxDb et permettre d'afficher des courbes dans un outil tel que Grafana. A partir de la version `calaos-os-intel-corei7-64-v3.0-alpha6-13-gac1afde-2020-07-02` de calaos-os, InfluxDb et Grafana sont intégré à l'image. En suivant ce tutoriel il vous sera possible de les activer et de configurer le tout sur votre installation.

Activer les services

En SSH sur le serveur il faut activer les services correspondants:

root@intel-corei7-64:~# systemctl enable influxdb --now
root@intel-corei7-64:~# systemctl enable grafana --now

Verifier si les services sont bien lancés:

root@intel-corei7-64:~# systemctl status influxdb
● influxdb.service - InfluxDB is an open-source, distributed, time series database
Loaded: loaded (/lib/systemd/system/influxdb.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2020-07-10 07:28:07 UTC; 1s ago
Docs: https://docs.influxdata.com/influxdb/
Main PID: 891 (influxd)
Tasks: 10 (limit: 2363)
Memory: 70.5M
CGroup: /system.slice/influxdb.service
└─891 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

root@intel-corei7-64:~# systemctl status grafana
● grafana.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2020-07-10 07:30:45 UTC; 1s ago
Docs: http://docs.grafana.org
Main PID: 974 (grafana-server)
Tasks: 10 (limit: 2363)
Memory: 33.3M
CGroup: /system.slice/grafana.service
└─974 /usr/bin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cf>

Vous devez avoir Active: active (running)

Configurer calaos-server

Pour que Calaos puisse envoyer les données sur InfluxDb il faut activer la fonction:

root@intel-corei7-64:~# calaos_config set influxdb_enabled true
root@intel-corei7-64:~# calaos_config set influxdb_host 127.0.0.1

Il est possible d'utiliser un serveur InfluxDb externe en utilisant les paramètres:

root@intel-corei7-64:~# calaos_config set influxdb_port 8086
root@intel-corei7-64:~# calaos_config set influxdb_database "xxxx" #par defaut la database se nomme "calaos"

Puis relancez calaos-server:

root@intel-corei7-64:~# systemctl restart calaos-server

Activer l'envoi de donnée dans calaos_installer

Par défaut aucune donnée n'est envoyé a influxdb. Il faut pour cela activer la propriété logged des IO qui vont envoyer leur données.

Exemple avec une sonde de température:

Il faudra attendre quelques minutes/heures pour avoir un nombre suffisant de données dans InfluxDb.

Configurer Grafana

Grafana est accessible sur http://ip_de_votre_serveur:3000/

La premiere ouverture de cette page demande a changer le mot de passe admin. L'utilisateur par défaut est: admin, mot de passe: admin

Datasource

Il faut ensuite aller dans “Add new Data Source” pour ajouter la connection a InfluxDb

Les paramètres à changer sont:

URL: http://localhost:8086

Database: calaos

Puir valider avec “Save & Test”, si tout est en vert c'est que c'est bon.

Dashboard

Maintenant on peut ajouter un nouveau “Dashboard” qui est une visualisation avec des Panels. On ajoute un Panel en cliquant sur l'icone d'ajout tout en haut (+).

Il faut choisir un panel de type “Graph”. Puis y mettre des “Query”. Chaque Query représente une ligne (de temperature par exemple) sur le graphique. On peut ajouter autant de Query qu'on souhaite.

Exempe pour une sonde de temperature dans une pièce:

Bien entendu, on peut se créer des Dashboard personnalisé avec autant de Query que l'on souhaite, affichant des données provenants d'autres IO que des températures. Tous les type d'IO sont supportés (aussi bien les volets que les interrupteurs). On peut par exemple afficher une valeur avec le nombre de fois qu'une lumière a été allumé dans une journée. Je vous laisse fouiller Internet pour trouver des informations sur le fonctionnement de Grafana et des Query InfluxDb.