Envoyer des données ERT vers Mysql sur Synology (besoin d'aide php)

Bonjour,

VARCHAR n’est pas utilisé normalement pour les chiffres, il n’accepte pas les virgules, cependant
il peut accepter lettres et chiffres.

Bon finalement le script fonctionne :wink:

Créer un script qui inscrive de nouvelles lignes a chaque exécution est plus complexe.
Faut il ajouter la date avec chaque ligne ? du genre « id=1, indexTIC=3, date=11.06.2017 » ?
Ou bien ajouter juste les minutes ? heures ?

C’est un développement bcp plus personnalisé, a moins qu’il intéresse plus de personnes, j’ai peur de ne pas avoir le temps de le créer.

Thierry

Bonjour,

Je vais faire des essais partant de ce que vous m’avez indiqué pour ajouter d’autres informations.

@Thierry15 Un grand merci pour votre aide car c’est un langage inconnu pour moi.

Diode

Bonjour @diode, Avez vous finalement reussi?

Bonjour @joderic ,
C’est tellement ancien que j’ai regardé dans mysql pour voir si j’avais des données enregistrées comme je le souhaitais à l’origine.
Ma base de donnée est vide donc j’ai du abandonné.

Il n’est pas simple de trouver des explications en php et compagnie pour les novices .

Merci pour les nouvelles. C’est vrai et c’est dommage, pas facile…

un moyen surement plus simple c’est de pousser ca dans un cacti. (ce que j’ai finalement retenu)
Via un custom script et de paramétrer les datasources et les graphiques comme bon vous semble.

bonjour,
Je suis preneur d’info sur les scripts et sur la mise en place de cacti.
Merci

Bonsoir,

Moi aussi je veux bien

Merci

Bonsoir,

Je vais essayer d’etre le plus précis possible.

En fait ce qui ma inspiré ce projet c’est a la base un reporting de stats pour Freebox sous cacti + diverses choses de mon réseau aussi dont l’onduleur PrestaOpen - Page 404 Il m’a été nécéssaire de faire pas mal d’adaptation car rien ne fonctionne sur ce qui est décrit dans ce lien + un bug de l’authentification de la freebox mais passons.

Pour ce faire je me suis donc installé un conteneur tout pret cacti sur docker pour Synology.
https://hub.docker.com/r/quantumobject/docker-cacti/
on configure le par defaut pour la partie port + un mapping du port http pour browser l’instance et hop tout fonctionne tout seul.:grinning:

Lire les reférences si on ne connais pas le principe de ce grapheur https://cacti.net/
Ici une petite idée de mon intégration de l’EDRT2 sur la partie des infos de tele info du compteur.

Plus bas les fichiers de data collection et de graph template

Le principe est simple, depuis cacti on joue un custom script de data collector en datasource qui va renvoyer les données souhaitées. Pour ce faire on va dans le menu console > Data Collection > Data Input

On declare ensuite les datasources et les graphs templates s’appuient sur les datasources

Pour le script
On lui donne un petit nom, pour l’exemple « Ecodevice-rt - TeleInfo » ainsi que son emplacement /tmp/source/gce_ecodevices_rt.sh et ensuite plus bas on va declarer autant d’output fields que les champs que vous avez déclaré dans votre script.

Le script en détail :

#!/bin/sh
curl -H "Content-type: application/json" -X GET http://XXX.XXX.XXX.XXX/user/status.xml>/tmp/gceecodevices.log 2>/dev/null
hchp=`perl -nle '/<etiquetteEC5>.*?<\/etiquetteEC5>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC5>).*?(?=</etiquetteEC5>)'`
hchc=`perl -nle '/<etiquetteEC4>.*?<\/etiquetteEC4>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC4>).*?(?=</etiquetteEC4>)'`
iinst=`perl -nle '/<etiquetteEC16>.*?<\/etiquetteEC16>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC16>).*?(?=</etiquetteEC16>)'`
isousc=`perl -nle '/<etiquetteEC2>.*?<\/etiquetteEC2>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC2>).*?(?=</etiquetteEC2>)'`
papp=`perl -nle '/<etiquetteEC25>.*?<\/etiquetteEC25>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC25>).*?(?=</etiquetteEC25>)'`
ptec=`perl -nle '/<etiquetteEC14>.*?<\/etiquetteEC14>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<etiquetteEC14>).*?(?=</etiquetteEC14>)'`
if [ $ptec = "HP.." ]
then
 ptec=1
elif [ $ptec = "HC.." ]
then
 ptec=0
fi
cuisson=`perl -nle '/<sspindex30>.*?<\/sspindex30>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex30>).*?(?=</sspindex30>)' | sed -e 's/\.//g'`
four=`perl -nle '/<sspindex31>.*?<\/sspindex31>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex31>).*?(?=</sspindex31>)' | sed -e 's/\.//g'`
lv=`perl -nle '/<sspindex32>.*?<\/sspindex32>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex32>).*?(?=</sspindex32>)' | sed -e 's/\.//g'`
mal=`perl -nle '/<sspindex33>.*?<\/sspindex33>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex33>).*?(?=</sspindex33>)' | sed -e 's/\.//g'`
sl=`perl -nle '/<sspindex34>.*?<\/sspindex34>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex34>).*?(?=</sspindex34>)' | sed -e 's/\.//g'`
ce=`perl -nle '/<sspindex35>.*?<\/sspindex35>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex35>).*?(?=</sspindex35>)' | sed -e 's/\.//g'`
vdi=`perl -nle '/<sspindex36>.*?<\/sspindex36>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex36>).*?(?=</sspindex36>)' | sed -e 's/\.//g'`
vmc=`perl -nle '/<sspindex37>.*?<\/sspindex37>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex37>).*?(?=</sspindex37>)' | sed -e 's/\.//g'`
lum=`perl -nle '/<sspindex40>.*?<\/sspindex40>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex40>).*?(?=</sspindex40>)' | sed -e 's/\.//g'`
pc=`perl -nle '/<sspindex41>.*?<\/sspindex41>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex41>).*?(?=</sspindex41>)' | sed -e 's/\.//g'`
chauffcli=`perl -nle '/<sspindex42>.*?<\/sspindex42>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex42>).*?(?=</sspindex42>)' | sed -e 's/\.//g'`
tech=`perl -nle '/<sspindex43>.*?<\/sspindex43>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex43>).*?(?=</sspindex43>)' | sed -e 's/\.//g'`
piscine=`perl -nle '/<sspindex44>.*?<\/sspindex44>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex44>).*?(?=</sspindex44>)' | sed -e 's/\.//g'`
dependance=`perl -nle '/<sspindex45>.*?<\/sspindex45>/ && print $&' /tmp/gceecodevices.log | grep -oP '(?<=<sspindex45>).*?(?=</sspindex45>)' | sed -e 's/\.//g'`
printf "hchp:%s hchc:%s papp:%s iinst:%s isousc:%s ptec:%s cuisson:%s four:%s lv:%s mal:%s sl:%s ce:%s vdi:%s vmc:%s lum:%s pc:%s chauffcli:%s tech:%s piscine:%s dependance:%s \n" $hchp $hchc $papp $iinst $isousc $ptec $cuisson $four $lv $mal $sl $ce $vdi $vmc $lum $pc $chauffcli $tech $piscine $dependance;

Le script fais dans l’ordre
1- il browse votre user status
2- fais une lecture des balise de l’xml retournépour identifier les champs que l’on souhaite récupérer et les mes chacun dans sa variable.
3- A la lecture des valeurs on nettoie pour que ce soit interpretable (suppression des . dans les index par ex)
4- on fais un print dans le bon ordre et ca renvoit tout sur une ligne

Ici l’exemple vaut pour mon ecodevice mais on peut faire pareil avec l’IPX

Data template pour importer plus rapidement la conf :
cacti_data_template_ecodevice_-_teleinfo.xml.zip (20,5 Ko)

Ensuite on cree les template de graph en voici 4 pour l’exemple.
cacti_graph_template_teleinfo_-_consommations.xml.zip (34,7 Ko) cacti_graph_template_teleinfo_-_intensite_consommee.xml.zip (29,6 Ko) cacti_graph_template_teleinfo_-_puissance_appliquee.xml.zip (28,1 Ko) cacti_graph_template_teleinfo_-_tarification.xml.zip (28,8 Ko)

Bien sur ne pas oublier de declarer le host de l’ecodevice pour mapper les graphs au bon endroit dans l’arborescence, tout ceci c’est de l’administration de cacti standard en terme de principe on active les graphs sur le host et ensuite toutes les 5 minutes ca update :slight_smile:

Attention les fichiers doivent etre renomés en .xml pour etre importés.
Cdt

2 « J'aime »

Bonjour,

Merci @chris99977 pour ces précisions.

Je regarderais ça mais je ne crois pas que mes NAS puissent utiliser le docker (Synology DS212+, DS213+, QNAP TS-639pro). Il semblerait que l’on puisse le faire en bidouillant un peu. Je voudrais m’assurer de la sécurité du NAS pour l’installation hors « packet ».

Cdt

si ce sont des versions + ca doit être ok meme sur la partie machine virtuelle.
C’est dommage je sais pas insérer dans le forum des grab d’écran pour montrer à quoi ca ressemble une fois fini :slight_smile:

Tu enregistres ta copie d’écran puis quand tu réponds au post tu sélectionnes « joindre un fichier » (voir ci-dessous)

1 « J'aime »