Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'veolia'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Bienvenue
    • Annonces et suggestions
    • Nouveau ? Présentez-vous
    • Le bistrot
    • Mon installation domotique
    • Autres Solutions Domotiques
  • La HC2 et ses périphériques
    • La Home Center pour les nuls
    • Home Center 2 & Lite
    • Modules Fibaro
    • Modules Z-wave
    • Périphériques et matériels autres
    • Plugins
    • Alarme & Vidéo-surveillance
    • Multimédia
    • Chauffage et Energie
    • Actionneurs & Ouvrants (Portail, volets...)
    • Eclairage
    • Applications Smartphones et Tablettes
    • English Section
  • Les objets connectés
    • Les Assistants Vocaux
  • Fibaro's Awards
    • Membre du mois
    • Jeux concours & Cadeaux
  • Les bonnes affaires
    • Sites internet
    • Petites annonces

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Jabber


Skype


Ville :


Intéret :


Version

1 résultat trouvé

  1. Ce sujet fait suite au sujet [Votre avis ?] Compteur Eau Veolia Hrf initié par @Sakkhho. Remarque préliminaire : depuis janvier 2019, Veolia a mis en place un nouveau site Web utilisant un framework trop complexe pour permettre la récupération automatisée des données depuis un script. Par conséquent, la nouvelle procédure est de télécharger manuellement le relevé au format CSV sur le site Web, puis de le transférer sur la machine sur laquelle s'exécute le script présenté ci-dessous. Opération à renouveler manuellement occasionnellement. Si votre fournisseur d'eau est Veolia, il a peut être installé un compteur d'eau équipé d'un module HRF permettant la télétransmission quotidienne des relevés du compteur vers les serveurs de Veolia. Pour Veolia, cela permet de vendre des services à valeur tarif ajoutée au client, comme une assurance "détection de fuite d'eau". Pour le client, cela permet de consulter son historique dans l'espace personnel accessible sur le site web https://www.service-client.veoliaeau.fr/home.html => https://espace-client.vedif.eau.veolia.fr/s/login/ A noter que les données accessibles sur le site ont un retard de 1 jour environ. Pour rappel, le télé-relevé est mis en place par le fournisseur d'eau en accord avec la municipalité, car cela nécessite la pose d'antennes en plusieurs points de la ville. La communication entre le compteur et l'antenne s'effectue sur une fréquence de 433 ou 868 MHz selon la génération, avec un protocole chiffré afin de sécuriser les données transmises. Par conséquent, il est impossible d'y accéder directement. Ce tutoriel décrit comment mettre en place un script permettant d'aller chercher automatiquement le relevé sur le site web, puis aux choix : injecter les données dans une base SQL envoyer les données vers un service de graphiques en ligne mettre à jour une variable globale sur une box domotique ... Tout d'abord, le script qui parcours les pages Web est écris en langage Shell Bash, il faut donc disposer d'un système Linux. Cela peut être un serveur dédié, un NAS, une machine virtuelle, un Raspberry PI, un émulateur Cygwin sous Windows, etc.... ce tuto ne décrit pas l'installation d'une telle plateforme. Ce script a été écrit rapidement, il sera peut-être nécessaire de l'adapter légèrement à votre usage. Notamment, j'ai tout installé avec le compte root, ce qui n'est pas une bonne pratique. Il est souhaitable de le faire tourner avec un utilisateur lambda disposant de peu de privilèges. De plus, la gestions des logs peut être améliorée. veolia.sh #/bin/bash # # Script: veolia.sh # # Version : 2.1 # # Date : Août 2019 # # Auteur : Lazer # # User data NAS_ADDRESS="http://XXXXX" NAS_URL="/graph" # Do not modify below this line # Initialization if [ -z "${1}" ] then echo -e "\nUsage : $0 <CSV File>\n" exit 1 fi if [ ! -f ${1} ] then echo "Error : file \"${1}\" does not exist" exit 2 fi # Prepare CSV data echo -e "\nPrepare data..." DATE=`/bin/date +"%Y%m%d"` grep "^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] " $1 > /dev/null 2>&1 if [ $? -eq 0 ] then echo "Date format : YYYY-MM-DD" cat $1 | sed -e 's/"//g' | sed '1d' | awk -F\; 'BEGIN{OFS=","} {print substr($1,1,10),$2,$3,$4}' > conso-${DATE}.csv else grep "^[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9] " $1 > /dev/null 2>&1 if [ $? -eq 0 ] then echo "Date format : DD/MM/YYYY" cat $1 | sed -e 's/"//g' | sed '1d' | awk -F\; 'BEGIN{OFS=","} {print substr($1,7,4)"-"substr($1,4,2)"-"substr($1,1,2),$2,$3,$4}' > conso-${DATE}.csv else echo "Error : unknown date format" exit 3 fi fi # Send data to DomoCharts POST=`awk -F\, 'BEGIN {ORS="";print "[";OFS=",";sep=""} {print sep"{\"id\":3000","\"date\":\""$1"\"","\"type\":\"water\"","\"value\":"$3"}"; sep=","} END {print "]\n"}' conso-${DATE}.csv` echo -e "\nJSON data :\n${POST}" echo -e "\nSend data to DomoCharts..." /usr/bin/curl --request POST --data ${POST} ${NAS_ADDRESS}${NAS_URL}/data_post.php echo Dans le script ci-dessus, il faut remplacer XXXXX par vos informations personnelles : # User data NAS_ADDRESS="http://XXXXX" NAS_URL="/graph" On rend ce script exécutable : [root@redhat veolia]# chmod u+x veolia.sh xls2csv Sur ma distribution Redhat, le script xls2csv est buggé. I y a un bug avec le format de date utilisé par Excel, et pas de chance on est en plein dedans. Ca se traduit par une date erronée de 4 ans et 1 jour. Ce script buggé est celui qui est fourni dans le package catdoc-0.94.2 écrit en C par V.B. Vagner et disponible dans toutes les bonnes distributions Linux. Il existe un autre script xls2csv, écrit en Perl par Ken Prows, qui fonctionne très bien. En revanche, il est plus compliqué à installer, comme tout ce qui touche à Perl ! Pour commencer, installer le compilateur gcc : [root@redhat ~]# yum install gcc Puis configurer le gestionnaire de paquets Perl CPAN : [root@redhat ~]# perl -MCPAN -e 'shell' [...] CPAN needs access to at least one CPAN mirror. As you did not allow me to connect to the internet you need to supply a valid CPAN URL now. Please enter the URL of your CPAN mirror http://www.cpan.org Configuration does not allow connecting to the internet. Current set of CPAN URLs: http://www.cpan.org Enter another URL or RETURN to quit: [] New urllist http://www.cpan.org Please remember to call 'o conf commit' to make the config permanent! cpan shell -- CPAN exploration and modules installation (v1.9402) Enter 'h' for help. cpan[1]> o conf commit commit: wrote '/usr/share/perl5/CPAN/Config.pm' cpan[2]> q No history written (no histfile specified). Lockfile removed. Lancer Perl et installer les packages suivants : [root@redhat ~]# perl -MCPAN -e 'shell' install CPAN reload CPAN install YAML install Locale::Recode install Unicode::Map install Spreadsheet::ParseExcel install Spreadsheet::ParseExcel::FmtUnicode install Text::CSV_XS exit Télécharger les sources de xls2csv et extraire l'archive : [root@redhat ~]# wget http://search.cpan.org/CPAN/authors/id/K/KE/KEN/xls2csv-1.07.tar.gz [root@redhat ~]# ll xls2csv-1.07.tar.gz -rw-r--r--. 1 root root 4665 Jan 22 2012 xls2csv-1.07.tar.gz [root@redhat ~]# tar xzf xls2csv-1.07.tar.gz [root@redhat ~]# cd xls2csv-1.07 [root@redhat xls2csv-1.07]# ll total 36 drwxr-xr-x. 4 501 games 4096 Jan 22 2012 . dr-xr-x---. 17 root root 4096 May 10 23:12 .. -rw-r--r--. 1 501 games 1227 Jan 22 2012 Changes -rw-r--r--. 1 501 games 710 Jan 22 2012 Makefile.PL -rw-r--r--. 1 501 games 163 Jan 22 2012 MANIFEST -rw-r--r--. 1 501 games 710 Jan 22 2012 META.yml -rw-r--r--. 1 501 games 536 Jan 22 2012 README drwxr-xr-x. 2 501 games 4096 May 10 23:12 script drwxr-xr-x. 2 501 games 4096 Jan 22 2012 t Compiler et installer xls2csv : [root@redhat xls2csv-1.07]# perl Makefile.PL [...] [root@redhat xls2csv-1.07]# make [...] [root@redhat xls2csv-1.07]# make install [...] Vérifier le bon fonctionnement : [root@redhat xls2csv-1.07]# /usr/local/bin/xls2csv -h xls2csv - Recode a spreadsheet's charset and save as CSV. usage: xls2csv -x spreadsheet.xls [-w worksheet] [-n worksheet number] [-b charset] [-c csvfile.csv] [-a charset] [-qshvWf] -x : filename of the source spreadsheet -b : the character set the source spreadsheet is in (before) -c : the filename to save the generated csv file as -a : the character set the csv file should be converted to (after) -q : quiet mode -s : print a list of supported character sets -h : this help message -v : get version information -W : list worksheets in the spreadsheet specified by -x -w : specify the worksheet name to convert (defaults to the first worksheet) -n : specify the worksheet number to convert (you cannot use this option with -w) -f : force the worsheet to be fully parsed. This disables the feature that skips rows when the first cell is blank example: xls2csv -x "spreadsheet.xls" -b WINDOWS-1252 -c "csvfile.csv" -a UTF-8 More detailed help is in "perldoc xls2csv" Graphiques Le script veolia.sh injecte les données dans la même base de données que mon outil DomoCharts. Dans le fichier index.php on dé-commente les 2 lignes suivantes dans la rubrique <select id="update"> <option value="water_day">Eau [L] (moyenne journalière)</option> <option value="water_month">Eau [L] (moyenne mensuelle)</option> veolia.sh Retour au script veolia.sh écrit précédemment. Il devrait maintenant pouvoir s'exécuter avec succès : [root@redhat veolia]# ls -l veolia.sh -rwxr-xr-x. 1 root root 992 May 1 17:37 veolia.sh [root@redhat veolia]# ./veolia.sh historique_jours_litres_20190501.csv Prepare data... Send data to DomoCharts... {"success":true,"rowcount":0} Check old values... .......................................................................................... Bonus Si on veut mettre à jour une variable globale sur la box Home Center 2 en v4, on peut remplacer les dernières lignes du script veolia.sh par la ligne suivante (non testé personnellement) : # Send data to HC2 global variable CONSO=`tail -1 conso-${DATE}.csv | awk -F\, '{print $3}'` PUT="{\"name\": \"ConsoEau\", \"value\": \"${CONSO}\"}" curl --request PUT --data ${PUT} --user admin:password http://192.168.x.y/api/globalVariables/ConsoEau
×