Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Script d'export Jeedom (PushURL) > Grafana

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
neoraptor
Timide
Messages : 20
Inscription : 12 janv. 2016, 08:11

Re: Script d'export Jeedom (PushURL) > Grafana

Message par neoraptor » 08 févr. 2016, 19:26

Bonjour,
Le principe est le suivant:
1. Jeedom envoie ses requêtes PushURL sur le script, port "PORT_NUMBER" (1234 par défaut ou tout autre à choisir).
2. Le script insère les données reçues dans InfluxDB (port 8086 par défaut)
3. Tu accèdes ensuite à Grafana pour visualiser le contenu de InfluxDB (port 3000 par défaut)

Donc dans ton cas, ça dépend de ta configuration: le script tourne-t-il sur la box jeedom ou sur le Synology?

> Si tu fais tourner InfluxDB + Grafana + le script sur le Synology, il faut que tu ouvre le port "PORT_NUMBER".
Puis dans jeedom, tu renseignes la pushURL comme tel:
http://IP_SYNOLOGY:PORT_NUMBER/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=salon
avec location=salon à modifier.

> Par contre si tu fais tourner le script sur ta box jeedom et influxDB/Grafana sur le Synology, il faut que tu ouvres le port 8086 et que tu renseigne la PushURL comme tel :
http://IP_JEEDOM:PORT_NUMBER/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=salon


NB: il est possible d'ajouter d'autres tag si nécessaire (juste mentionner &nomDuTag=valeurDuTag à la suite).


Dis-moi si ça résoud tes soucis ;)

lelex79
Timide
Messages : 68
Inscription : 14 janv. 2016, 12:33

Re: Script d'export Jeedom (PushURL) > Grafana

Message par lelex79 » 08 févr. 2016, 19:36

J'ai tout installé sur le container du synology pour être certain de ne rien "casser" sur mon jeedom... donc je vais appliquer ta solution avec redirection de port sur le port 1234 du container.

J'essaie ça un peu plus tard et je te dis ce qu'il en est.

neoraptor
Timide
Messages : 20
Inscription : 12 janv. 2016, 08:11

Re: Script d'export Jeedom (PushURL) > Grafana

Message par neoraptor » 08 févr. 2016, 19:37

Attention, le container ne contient que InfluxDB + Grafana !
Tu as encore besoin de faire tourner le script quelque part (qui se charge de transmettre les données de Jeedom vers InfluxDB).

lelex79
Timide
Messages : 68
Inscription : 14 janv. 2016, 12:33

Re: Script d'export Jeedom (PushURL) > Grafana

Message par lelex79 » 08 févr. 2016, 19:40

Oui je sais. J'ai installé python3 sur le container et j'y ai mis le script. Je l'ai même lancé et il marche. C'est quand au lancement j'ai vu qu'il écoute sur le port 1234 que je me suis dit que ça allait me poser un problème de routage vers mon container

neoraptor
Timide
Messages : 20
Inscription : 12 janv. 2016, 08:11

Re: Script d'export Jeedom (PushURL) > Grafana

Message par neoraptor » 08 févr. 2016, 19:44

Ah, ok.
Dans ce cas, il faut ouvrir le port du container (lors du lancement), et du synology.

Ca donne ça (en gros, ça demande de rediriger le port 1234 de la "VM" sur le port 1234 du host):

Code : Tout sélectionner

sudo docker run -d \
--name docker-statsd-influxdb-grafana \
-p 3003:9000 \
-p 3004:8083 \
-p 8086:8086 \
-p 22022:22 \
-p 8125:8125/udp \
-p 1234:1234 /
samuelebistoletti/docker-statsd-influxdb-grafana
Tu peux théroriquement ne laisser que le port 3003 (Grafana) et le 1234 (requêtes de jeedom) d'ouverts, à la rigueur le ssh ;)

mmourcia
Timide
Messages : 35
Inscription : 18 août 2015, 23:32

Re: Script d'export Jeedom (PushURL) > Grafana

Message par mmourcia » 28 nov. 2016, 13:28

Bonjour,

avant de me lancer dans l'install d'un conteneur pour héberger influxdb et grafana, j'ai lu plus haut qu'un plugin serait peut être envisagé.
As tu avancé sur ce point ?

Merci

Avatar de l’utilisateur
ArthurH
Timide
Messages : 147
Inscription : 27 nov. 2014, 09:05
Localisation : Charente

Re: Script d'export Jeedom (PushURL) > Grafana

Message par ArthurH » 19 oct. 2017, 16:41

Bonjour à tous,
merci pour toutes ces explications, c'est exactement ce que je cherchais.
Malheureusement la "Bibliothèque Python InfluxDB" n'est pas supportée par influx 1.3, seulement jusqu'à la 1.2.4.
Je n'arrive pas à installer (trouver) influxdb 1.2.4 compatible avec un raspberry pi3.
Auriez vous s'il vous quelques pistes à suivre pour l'installation et le bon fonctionnement.
Cordialement,
Eric

Avatar de l’utilisateur
ArthurH
Timide
Messages : 147
Inscription : 27 nov. 2014, 09:05
Localisation : Charente

Re: Script d'export Jeedom (PushURL) > Grafana

Message par ArthurH » 30 oct. 2017, 15:09

Bonjour,
finalement j'ai fini par trouver :wget https://dl.influxdata.com/influxdb/rele ... _armhf.deb
J'ai tout installé : INFLUXDB et GRAFANA sur un Rpi2 et tout est ok.
C'est un bon complément à Jeedom pour ceux qui veulent des graphiques en local ou déporté.
Cordialement.

jibedo
Timide
Messages : 4
Inscription : 06 déc. 2017, 19:16

Re: Script d'export Jeedom (PushURL) > Grafana

Message par jibedo » 08 févr. 2018, 19:51

Hello,

Tout d'abord merci pour ce partage de script et super boulot :D

J'ai suivi ton tuto afin de suivre la température dans mon appartement j'ai donc modifié les infos demandé dans ton script et lancé, j'ai vérifié le serveur est bien en écoute sur le port 1234. J'ai donc configuré la push url dans la commande température de mon capteur xiaomi comme ceci :

Code : Tout sélectionner

http://127.0.0.1:1234/updateData?name=Temperature&val=#value#&location=Salon
Ai je le bon raisonnement ?

Je n'ai rien qui arrive dans mon influxdb et j'ai sur le terminal de temps en temps l'erreur suivante qui s'affice :
('URL Parsing error: ', <type 'exceptions.AttributeError'>)

EDIT : Je suis un blaireau, il faut bien lancer le script avec "python3" et non "python"

arlettaz
Timide
Messages : 12
Inscription : 23 janv. 2018, 11:50

Re: Script d'export Jeedom (PushURL) > Grafana

Message par arlettaz » 22 févr. 2018, 17:14

Bonjour, je sais pas ce que je fait de faux, j'ai que des valeurs "null" dans le resultat de ma query?
Que faire

Avatar de l’utilisateur
cedricdirr
Timide
Messages : 90
Inscription : 22 juil. 2016, 11:13
Localisation : Dublin
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par cedricdirr » 14 juin 2018, 10:35

Bonjour,

Je ne comprends pas pourquoi mon graphique de test est vide,pourtant je peux voir les tables temperature et humidity que j ai push, dans la colonne from... merci de votre aide!

Image


EDIT: Solution Trouvée: Il suffit de remplir a cote de time interval, fill Previous au lieu de none.
Mon Blog ICI: http://domotation.blogspot.ie
Tuto: Connaitre la dispo de vos stations de velib preferees (ici DublinBikes)
viewtopic.php?f=59&t=5924&hilit=dublin& ... 40#p470672

Avatar de l’utilisateur
dough29
Actif
Messages : 734
Inscription : 30 nov. 2014, 12:55

Re: Script d'export Jeedom (PushURL) > Grafana

Message par dough29 » 27 juin 2018, 10:49

Salut !

Sujet très intéressant car effectivement l'historique embarqué par Jeedom a ses limites ^^

Pour la commande de push : il faut la renseigner pour chacune des commandes que l'on veut monitorer ?

Ne peut-on pas simplement utiliser "URL de push globale" dans "Configuration > Commandes" :?
Jeedom maître (Docker sur Synology DSM6 + téléinfo)
Jeedom esclave (Raspberry Pi 2 B + Z-Wave + MySensors)
récit

johndoe2011
Timide
Messages : 266
Inscription : 22 févr. 2015, 20:20

Re: Script d'export Jeedom (PushURL) > Grafana

Message par johndoe2011 » 24 nov. 2018, 09:39

Sshafi a écrit :
07 févr. 2016, 21:54
Alors voici la procédure que j'ai utilisé pour installer tout le bousin sous Debian :

Installation des repository Influxdata et grafana :

Code : Tout sélectionner

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

curl -sL https://packagecloud.io/gpg.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = "7" && echo "deb https://packagecloud.io/grafana/stable/debian/ wheezy main" | sudo tee /etc/apt/sources.list.d/grafana.list
test $VERSION_ID = "8" && echo "deb https://packagecloud.io/grafana/stable/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/grafana.list
Installation python3, pip3 (au cas ou) influxdb, grafana et python-influxdb :

Code : Tout sélectionner

sudo apt-get update && sudo apt-get install python3 python3-pip influxdb grafana
sudo pip3 install influxdb
Démarrage des services :

Code : Tout sélectionner

sudo service influxdb start
sudo service grafana-server start
Lancement de grafana au boot de l'ordi pour wheezy :

Code : Tout sélectionner

sudo update-rc.d grafana-server defaults 95 10
Lancement de grafana au boot de l'ordi pour jessie :

Code : Tout sélectionner

sudo systemctl enable grafana-server
Téléchargement du script :

Code : Tout sélectionner

wget https://github.com/neuhausj/JeedomTools/raw/master/Bridge_Jeedom_InfluxDB.py
chmod 755 Bridge_Jeedom_InfluxDB.py
Modifier les paramètres dans la partie "Script settings" du script. :
INLUXDB_SERVER_IP = 'IP_MACHINE'
INLUXDB_SERVER_PORT = 8086
INFLUXDB_USERNAME = 'root'
INFLUXDB_PASSWORD = 'root'
INFLUXDB_DB_NAME = 'jeedom'
Et lancer le script en background :

Code : Tout sélectionner

python3 Bridge_Jeedom_InfluxDB.py &
Vous pouvez accéder à l'interface admin d'influxdb avec http://IP_MACHINE:8083 et créer la base de donnée "jeedom"
Par défaut pas d'authentification sur influxdb (Donc pour le username et le password dans le script c'est pas important)
A partir de là vous pouvez configurer les requête push sur les commandes que vous voulez pour rappel :

Code : Tout sélectionner

http://IP_MACHINE:1234/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=exterieur
Aller sur l'interface admin de grafana : http://IP_MACHINE:3000 et configurer une source de donnée : Type Influxdb 0.9.x , URL: http://localhost:8086/ (Proxy) , Database : jeedom (User et pass root/root, on s'en fout)

Et voilà prêts à faire des tests ;)
Bonjour,
Je suis sous Debian stretch ....je galère pour mettre tout en route...
La procedure ci-dessus marche t elle avec une VM sous stretch aussi ?
J'ai installé Grafana comme ca:
sudo apt-get update
sudo apt-get install grafana
mais doit on installer aussi influxdb aussi ou fait il parti de l'install de grafana ?
Un petit tuto pour stretch serait super....
Merci

Loic74
Actif
Messages : 709
Inscription : 24 oct. 2017, 22:45
Localisation : Haute-Savoie
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par Loic74 » 24 nov. 2018, 09:57

Super tuto, merci aux contributeurs
---------------------------------------
Jeedom v3.3.19, VM sur Synology RS1619xs+, Arduinos, ETH-IO32B, MQTT, TTN, LoRa, Service Pack Power Ultimate
Ma présentation
Ma piscine connectée
ioBoard

johndoe2011
Timide
Messages : 266
Inscription : 22 févr. 2015, 20:20

Re: Script d'export Jeedom (PushURL) > Grafana

Message par johndoe2011 » 25 nov. 2018, 10:08

neoraptor a écrit :
08 févr. 2016, 19:26
Bonjour,
Le principe est le suivant:
1. Jeedom envoie ses requêtes PushURL sur le script, port "PORT_NUMBER" (1234 par défaut ou tout autre à choisir).
2. Le script insère les données reçues dans InfluxDB (port 8086 par défaut)
3. Tu accèdes ensuite à Grafana pour visualiser le contenu de InfluxDB (port 3000 par défaut)

Donc dans ton cas, ça dépend de ta configuration: le script tourne-t-il sur la box jeedom ou sur le Synology?

> Si tu fais tourner InfluxDB + Grafana + le script sur le Synology, il faut que tu ouvre le port "PORT_NUMBER".
Puis dans jeedom, tu renseignes la pushURL comme tel:
http://IP_SYNOLOGY:PORT_NUMBER/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=salon
avec location=salon à modifier.

> Par contre si tu fais tourner le script sur ta box jeedom et influxDB/Grafana sur le Synology, il faut que tu ouvres le port 8086 et que tu renseigne la PushURL comme tel :
http://IP_JEEDOM:PORT_NUMBER/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=salon


NB: il est possible d'ajouter d'autres tag si nécessaire (juste mentionner &nomDuTag=valeurDuTag à la suite).


Dis-moi si ça résoud tes soucis ;)
Bonjour,
J'ai reconstruit une VM sous Debian jessie (pas stretch) avec Influxdb et grafana et c'est bon.
Pour le script Jeedom,
http://IP_JEEDOM:PORT_NUMBER/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=salon ......je n'ai pas saisi comment on parametre ? Le port c'est 1234 ? et on change juste "location et salon" ? En fait je souhaiterais envoyer une temperature et humidité de sonde Oregon ? Un exemple serait le bienvenu :)
Merci d'avance

Loic74
Actif
Messages : 709
Inscription : 24 oct. 2017, 22:45
Localisation : Haute-Savoie
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par Loic74 » 25 nov. 2018, 13:53

Hello,
Merci pour ce tuto, J'ai juste un souci avec le script.

Dans mon cas j'ai sur mon NAS Synology une VM sous Debian 9 sur laquelle tourne Jeedom, Influxdb et grafana.
Je n'ai pas ouvert de port en particulier mais j'arrrive à accéder à l'interface de Grafana ainsi que celle de Chronograf pour manager InfluxDB.
J'ai créé une BD "jeedom" et modifié les variables dans le script. Dans Grafana je peux sélectionner la BD "jeedom" comme source de données, mais elle ne contient rien.
Visiblement le PUSH depuis Jeedom fonctionne, le script se lance mais échoue au moment d'écrire les données dans InfluxDB. Message d'erreur ci-dessous. On dirait qu'il n'arrive pas à s'y connecter.
En cherchant le message d'erreur sur le net je ne trouve rien de facile à mettre en oeuvre, donc avant de tout casser je préfère poser la question ici...
Merci
Loic

Version de Influx:
influx
Connected to http://localhost:8086 version 1.7.1
InfluxDB shell version: 1.7.1
Enter an InfluxQL query
________________________________________________________________
----------------------------------------
Exception happened during processing of request from ('192.168.0.20', 41578)
Traceback (most recent call last):
File "/usr/lib/python3.4/socketserver.py", line 305, in _handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python3.4/socketserver.py", line 331, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python3.4/socketserver.py", line 344, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.4/socketserver.py", line 669, in __init__
self.handle()
File "/usr/lib/python3.4/http/server.py", line 398, in handle
self.handle_one_request()
File "/usr/lib/python3.4/http/server.py", line 386, in handle_one_request
method()
File "Bridge_Jeedom_InfluxDB.py", line 93, in do_GET
client.write_points(req)
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 170, in write_points
return self.write_points_with_precision(*args, **kwargs)
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 194, in write_points_with_precision
status_code=200
File "/usr/lib/python3/dist-packages/influxdb/client.py", line 124, in request
raise InfluxDBClientError(response.content, response.status_code)
influxdb.client.InfluxDBClientError: 404: b'404 page not found\n'
----------------------------------------
---------------------------------------
Jeedom v3.3.19, VM sur Synology RS1619xs+, Arduinos, ETH-IO32B, MQTT, TTN, LoRa, Service Pack Power Ultimate
Ma présentation
Ma piscine connectée
ioBoard

Loic74
Actif
Messages : 709
Inscription : 24 oct. 2017, 22:45
Localisation : Haute-Savoie
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par Loic74 » 25 nov. 2018, 15:54

Bon j'avance par petits pas...
J'ai essayé le script "local" ci-dessous et il envoie bien les données dans InfluxDB et je les retrouve sous Grafana, donc mon pb semble être lié à l'ouverture des ports. J'ai essayé d'ouvrir les ports 1234 et 8086 dans Synology mais je ne suis pas certain de faire cela correctement et au bon endroit, sachant que dans mon cas, Jeedom, Grafana et InfluxDB tournent sous la même machine Debian 9 dans VMM.
Ce que je ne pige pas c'est que pour que le script se lance au départ, il a bien du recevoir l'appel HTTP PUSH via le port 1234, non? Et donc mon pb est-il réellement lié à une ouverture de port?

Bon, je viens de voir le log dans Jeedom et j'ai:
Erreur push sur : http://192.168.0.20:1234/updateData?nam ... =exterieur => Echec de la requête HTTP : http://192.168.0.20:1234/updateData?nam ... =exterieur cURL error : Failed to connect to 192.168.0.20 port 1234: Connection refused
Donc le pb semble bien venir de l'ouverture de ce port. Je continue...

Code : Tout sélectionner

#!/usr/bin/python

import random
from datetime import datetime

from influxdb import InfluxDBClient


query = 'select value from jeedom;'
client = InfluxDBClient(host='192.168.0.20', port=8086, database='jeedom')
print(client)

current_time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
json_body = [
    {
        "measurement": "temperature",
        "tags": {
            "host": "192.168.0.20",
            "location": "room"
        },
        "time": current_time,
        "fields": {
            "value": random.random()
        }
    }
]
print(json_body)

client.write_points(json_body)
---------------------------------------
Jeedom v3.3.19, VM sur Synology RS1619xs+, Arduinos, ETH-IO32B, MQTT, TTN, LoRa, Service Pack Power Ultimate
Ma présentation
Ma piscine connectée
ioBoard

Loic74
Actif
Messages : 709
Inscription : 24 oct. 2017, 22:45
Localisation : Haute-Savoie
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par Loic74 » 25 nov. 2018, 17:13

Bon, désolé de pourrir ce post avec mes déambulations dans le monde de Python et des scripts auxquels je ne comprends pas grand chose.

J'ai fini par mettre le script sur une autre VM, les PUSH Jeedom pointent maintenant sur l'IP de cette autre VM, et là tout marche... Si quelqu'un peut me dire pourquoi, j'aimerais autant avoir tout sur une seule VM.

Autre question: si je comprends bien ce qui se passe, le script est arrêté lorsque je quitte ma session SSH, donc il ne tourne pas en "background process" (qui redémarrerait après un reboot). C'est normal?
Un coup de Google et je trouve cette solution pour faire en sorte que le script tourne en tâche de fond. Suis-je sur la bonne voie?

Merci
---------------------------------------
Jeedom v3.3.19, VM sur Synology RS1619xs+, Arduinos, ETH-IO32B, MQTT, TTN, LoRa, Service Pack Power Ultimate
Ma présentation
Ma piscine connectée
ioBoard

johndoe2011
Timide
Messages : 266
Inscription : 22 févr. 2015, 20:20

Re: Script d'export Jeedom (PushURL) > Grafana

Message par johndoe2011 » 26 nov. 2018, 22:45

Loic74 a écrit :
25 nov. 2018, 17:13
Bon, désolé de pourrir ce post avec mes déambulations dans le monde de Python et des scripts auxquels je ne comprends pas grand chose.

J'ai fini par mettre le script sur une autre VM, les PUSH Jeedom pointent maintenant sur l'IP de cette autre VM, et là tout marche... Si quelqu'un peut me dire pourquoi, j'aimerais autant avoir tout sur une seule VM.

Autre question: si je comprends bien ce qui se passe, le script est arrêté lorsque je quitte ma session SSH, donc il ne tourne pas en "background process" (qui redémarrerait après un reboot). C'est normal?
Un coup de Google et je trouve cette solution pour faire en sorte que le script tourne en tâche de fond. Suis-je sur la bonne voie?

Merci
Bonsoir,
Aurais tu un exemple de commande Push qui marche ?
J'ai des erreurs mais je ne sais pas trop la syntaxe à utiliser :
Echec de la requête HTTP : http://192.168.123.141:1234/updateData? ... tion=salon cURL error : Empty reply from server

Merci

Loic74
Actif
Messages : 709
Inscription : 24 oct. 2017, 22:45
Localisation : Haute-Savoie
Contact :

Re: Script d'export Jeedom (PushURL) > Grafana

Message par Loic74 » 26 nov. 2018, 23:08

Salut
Aurais tu un exemple de commande Push qui marche ?
La commande par défaut proposée dans ce fil fonctionne:

Code : Tout sélectionner

http://192.168.0.39:1234/updateData?name=#cmd_name#&cmd_id=#cmd_id#&val=#value#&location=Garage
La clé "&location" a la fin de la commande a peu d'importance, c'est juste un tag que tu pourras utiliser dans la base de données pour regrouper tes mesures par exemple. Donc ton problème doit venir d'ailleurs. Quand tu lances le script depuis ton shell SSH et que tu envoies un PUSH ensuite, il ne te donne pas plus d'infos de debug?
---------------------------------------
Jeedom v3.3.19, VM sur Synology RS1619xs+, Arduinos, ETH-IO32B, MQTT, TTN, LoRa, Service Pack Power Ultimate
Ma présentation
Ma piscine connectée
ioBoard

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 19 invités