Script Véolia

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: Script Véolia

Message par domcars0 »

Normalement une fois logué , sur la droite de l'écran tu cliques sur "Mes consommations":
Veolia1.png
Veolia1.png (145.7 Kio) Consulté 10115 fois
Puis sur l'écran suivant tu cliques sur "Surveiller ma conso avec Télérelevé"
Veolia2.png
Veolia2.png (36.48 Kio) Consulté 10115 fois
et là tu tombes sur la page affichée sur mon post précédent (lien https://www.eau-services.com/mon-espace ... alise.aspx).
Si tu n'as pas cette page alors, c'est rapé :|
La liberté a un prix... celui de l'effort.
ericd
Messages : 157
Inscription : 24 janv. 2017, 11:04
Localisation : Toulouse

Re: Script Véolia

Message par ericd »

Toulouse ne fait pas parti de véolia Méditerranée !!!! :twisted:

Mon interface client est totalement différente de la tienne !!!!

Il faut juste attendre que Véolia mette à jour les régions...

Merci quand même pour ton travail, et pour mes recherches j'espère qu'elles serviront aux possesseurs de synology Méditerranée

@+

Ericd
zaraki673
Messages : 229
Inscription : 07 oct. 2016, 04:29

Re: Script Véolia

Message par zaraki673 »

kouf a écrit :Il existe un script python qui permet de recuperer les releves Veolia en fichier excel disponible sur git :

https://github.com/TangiX-DIY/VeoliaCon ... Connect.py

À partir de ca il faut en extraire les données. J'ai pas encore mon script qui fait cela sous la main, mais je vais le publier.
Bonjour, je me suis baser sur ce script pour faire le miens pour les veoliens d'IDF (peut etre les autres si vous pouvez télécharger un excel comptenant les données journalières).

En prérequis, il faut avoir installer python3 et xlrd :

Code : Tout sélectionner

sudo apt-get install python3 python3-xlrd
Comme pour celui de Domcars0, il faut creer un materiel et capteurs virtuels, noter l'idx et modifier dans ce script idx, login et password :

Code : Tout sélectionner

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""


@author: zaraki673
source: tangix

"""

import http.cookiejar, urllib 
import xlrd
from xlrd.sheet import ctype_text



# domoticz server & port information
domoticzserver = "192.168.10.28:8080"

# domoticz IDX
Idx="domoticz_idx"

#Veolia Login
Vlogin="your_login"

#Veolia password
Vpassword="your_password"

# Logger
def Logger(pMessage):
	file = open('veoliaconnect.log', 'a')
	file.write("%s\n" % pMessage)
	file.close()
	
class URL:
	
	def __init__(self):
		# On active le support des cookies pour urllib
		cj = http.cookiejar.CookieJar()
		self.urlOpener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
	
	def call(self, url, params = None, referer = None, output = None):
		Logger('Calling url')
		data = None if params == None else urllib.parse.urlencode(params).encode("utf-8")
		request = urllib.request.Request(url, data)
		if referer is not None:
			request.add_header('Referer', referer)
		response = self.urlOpener.open(request)
		Logger(" -> %s" % response.getcode())
		if output is not None:
			file = open(output, 'w')
			file.write(response.read())
			file.close()
		return response


argsweb = 'ok'
# WebSite gathering
if argsweb:
	url = URL()
	
	urlConnect = 'https://www.service-client.veoliaeau.fr/home.loginAction.do#inside-space'
	urlConso1 = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.html'
	urlConso2 = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.html?vueConso=historique'
	urlXls = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.exportConsommationData.do?vueConso=historique'
	urlDisconnect = 'https://www.service-client.veoliaeau.fr/logout'
	
	# Connect to Veolia website
	Logger('Connection au site Veolia Eau')
	params = {'veolia_username' : Vlogin ,
		 'veolia_password' : Vpassword,
		 'login' : 'OK'}
	referer = 'https://www.service-client.veoliaeau.fr/home.html'
	url.call(urlConnect, params, referer)
	
	# Page 'votre consomation'
	Logger('Page de consommation')
	url.call(urlConso1)
	
	# Page 'votre consomation : historique'
	Logger('Page de consommation : historique')
	url.call(urlConso2)
	
	# Download XLS file
	Logger('Telechargement du fichier')
	response = url.call(urlXls)
	content = response.read()
	
	# logout
	Logger('Deconnection du site Veolia Eau')
	url.call(urlDisconnect)


	file = open('temp.xls', 'wb')
	file.write(content)
	file.close()
	
	book = xlrd.open_workbook('temp.xls', encoding_override="cp1252")
	sheet = book.sheet_by_index(0)
	last_rows = sheet.nrows
	row = sheet.row(last_rows-1)
	for idx, cell_obj in enumerate(row):
		cell_type_str = ctype_text.get(cell_obj.ctype, 'unknown type')
		if idx == 1:
			volume = int(cell_obj.value)
			urldom = 'http://'+domoticzserver+'/json.htm?type=command&param=udevice&idx='+Idx+'&svalue='+str(volume)+''
			url.call(urldom)
	

ce script peut être lancer par cron 1 ou plusieurs fois par jour pour avoir les remonter ds domoticz (la valeur ne changeant qu une fois par jour, une seule exécution est suffisante).

il faut également ajuster le "diviseur" à 1000 dans la configuration de domoticz :
domoticz-conf-eau.png
domoticz-conf-eau.png (83.91 Kio) Consulté 10003 fois
pour les autres que les veoliens d'IDF vous pouvez essayer de modifier les urls du bloc

Code : Tout sélectionner

	urlConnect = 'https://www.service-client.veoliaeau.fr/home.loginAction.do#inside-space'
	urlConso1 = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.html'
	urlConso2 = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.html?vueConso=historique'
	urlXls = 'https://www.service-client.veoliaeau.fr/home/espace-client/votre-consommation.exportConsommationData.do?vueConso=historique'
	urlDisconnect = 'https://www.service-client.veoliaeau.fr/logout'
Dernière modification par zaraki673 le 26 févr. 2017, 15:35, modifié 3 fois.
itcitc77
Messages : 73
Inscription : 30 mai 2016, 06:17

Re: Script Véolia

Message par itcitc77 »

bonjour
j'ai installé ton script mais j'ai message d'erreur.

pi@raspberrypi:~$ cd veolia
pi@raspberrypi:~/veolia$ python veolia.py
Traceback (most recent call last):
File "veolia.py", line 11, in <module>
import http.cookiejar, urllib
ImportError: No module named http.cookiejar

Merci de ta réponse
Domoticz, CustomPage,
Pi3 RFXCom + Razberry;Z-Stick Gen5
zaraki673
Messages : 229
Inscription : 07 oct. 2016, 04:29

Re: Script Véolia

Message par zaraki673 »

Bonjour,

il faut utiliser python3 pour exécuter le script ;)

Code : Tout sélectionner

python3 veolia.py
itcitc77
Messages : 73
Inscription : 30 mai 2016, 06:17

Re: Script Véolia

Message par itcitc77 »

super merci cela fonctionne
Domoticz, CustomPage,
Pi3 RFXCom + Razberry;Z-Stick Gen5
zaraki673
Messages : 229
Inscription : 07 oct. 2016, 04:29

Re: Script Véolia

Message par zaraki673 »

itcitc77 a écrit :super merci cela fonctionne
au vue des résultats des 3 derniers jours chez moi, je penses qu il va falloir que je revois le script ... tu me diras pour toi :oops:
je sais pas si il vaut mieux transmettre l index du compteur ou le volumes utilisés dur dernier jour à domoticz :(
itcitc77
Messages : 73
Inscription : 30 mai 2016, 06:17

Re: Script Véolia

Message par itcitc77 »

bonjour
oui dans les données il y a un problème, Véolia a un décalage de relevés, ce qui ne convient pas à domoticz, voila les trois dernières lignes de l'excel se matin.
20/02/2017 655598 383
21/02/2017 655649 51
22/02/2017 655870 136
23/02/2017 656178 308
et dans domotic j'ai :
le 24 130
le 25 170
je vois pas a quoi corresponde les 170
A mon avis en litre cela passerais mieux, a voir !!!
Domoticz, CustomPage,
Pi3 RFXCom + Razberry;Z-Stick Gen5
zaraki673
Messages : 229
Inscription : 07 oct. 2016, 04:29

Re: Script Véolia

Message par zaraki673 »

ouep, j ai a peu pres la meme chose :(

par contre le script récupère déjà les litres du dernier jour enregistré par veolia (soit à j-2)

dans domoticz j ai ca :
veolia.png
veolia.png (19.22 Kio) Consulté 10035 fois
dans le fichier véolia xls j ai bien 303l en derniere valeur, mais apres je ne retrouve cette valeur nulle part dans les logs ... un peu de mal a comprendre ce type de dispositif ...

aujourd'hui :
veolia2.png
veolia2.png (18.53 Kio) Consulté 10033 fois
et dans les logs :
veolialog.png
veolialog.png (108.19 Kio) Consulté 10033 fois
:?

les valeurs en m3 sont bonnes ... une idée ?
itcitc77
Messages : 73
Inscription : 30 mai 2016, 06:17

Re: Script Véolia

Message par itcitc77 »

Voila les valeurs du dummy
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"Counter" : "0.308 m3",
"CounterToday" : "170 Liter",
"CustomImage" : 0,
"Data" : "0.308 m3",
"Description" : "",
"Favorite" : 1,

il y aune erreur dans le counterToday ma valeur dois etre 0.308 M3 ou 308 litres
Domoticz, CustomPage,
Pi3 RFXCom + Razberry;Z-Stick Gen5
Répondre