ssenart / PyGazpar

Python library to download gas consumption from a Grdf account
MIT License
28 stars 6 forks source link

An unexpected error occured while updating the data #26

Closed DEFAYArnaud closed 2 years ago

DEFAYArnaud commented 2 years ago

Bonjour,

Je viens d'installer la nouvelle version 1.0.1 et lorsque je lance le script j'obtient l'erreur suivante :

An unexpected error occured while updating the data Traceback (most recent call last): File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 255, in __updateLiveMode self.__data = DataFileParser.parse(filename, self.__meterReadingFrequency, self.__lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 40, in parse res = parseByFrequency[dataReadingFrequency](worksheet, lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 82, in __parseDaily DataFileParser.__fillRow(row, PropertyName.START_INDEX.value, worksheet.cell(column=3, row=rownum), True) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 54, in __fillRow row[propertyName] = float(cell.value.replace(',', '.')) ValueError: could not convert string to float: 'Index de début de période (m3)' Traceback (most recent call last): File "/home/pi/script_gazpar_msql.py", line 11, in <module> client.update() File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 121, in update self.__updateLiveMode() File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 255, in __updateLiveMode self.__data = DataFileParser.parse(filename, self.__meterReadingFrequency, self.__lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 40, in parse res = parseByFrequency[dataReadingFrequency](worksheet, lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 82, in __parseDaily DataFileParser.__fillRow(row, PropertyName.START_INDEX.value, worksheet.cell(column=3, row=rownum), True) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 54, in __fillRow row[propertyName] = float(cell.value.replace(',', '.')) ValueError: could not convert string to float: 'Index de début de période (m3)'

Comment je peux résoudre le problème svp ?

pbranly commented 2 years ago

J'ai exactement le même problème

ssenart commented 2 years ago

Et le fichier Excel a une belle tête ? La colonne Index de début de periode est bien renseignée sur toutes les lignes ?

DEFAYArnaud commented 2 years ago

Oui vous avez raison il y a un manque dans une date qui remonte du 9/02 il y a une case vide dans l'Index du début et dans la colonne "Qualification du relevé" il y a écrit "Absence de Données".

Comment je peux l'exclure ?

pbranly commented 2 years ago

Je n’ai pas de fichier Excel accessible car j’utilise un docker qui récupère les valeurs et les colle directement dans influx . Il faut que je réinstalle la commande manuelle .

La seule différence entre l’ancien docker qui fonctionnait et le nouveau est que j’ai juste changé la version de pygazpar passé en 1.0.1 Philippe

ssenart commented 2 years ago

@DEFAYArnaud : le code n'a pas prévu ce cas, je dois faire un patch pour l'intégrer.

En attendant, tu peux réduire le nombre de jours à charger en changeant lastNDays et le passer à 30 jours par exemple, cela ne chargera plus la ligne du 9 février .

Dis-moi si ça fonctionne.

DEFAYArnaud commented 2 years ago

Merci pour votre réponse, je viens de le modifier. Mais maintenant le script bloque sur la connexion avec le Captcha :(

ssenart commented 2 years ago

Zut, je crois que ce captcha, c'est le debut de la fin :(

DEFAYArnaud commented 2 years ago

On peut pas le contourner ?

" Je viens d'essayer de me connecter sur leur site et je n'arrive plus à me connecter à cause du Captcha il doit être buggé. Vous pouvez, vous connecter sans souci sur leur site."

J'ai rien dit la page pour ce connecter est inaccessible :)

DEFAYArnaud commented 2 years ago

Je viens de réessayer avec lastNDays = 30, j'ai vérifier le tableau excel il est pourtant sans index vide cette fois-ci et j'ai toujours l'erreur suivante :

An unexpected error occured while updating the data Traceback (most recent call last): File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 255, in __updateLiveMode self.__data = DataFileParser.parse(filename, self.__meterReadingFrequency, self.__lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 40, in parse res = parseByFrequency[dataReadingFrequency](worksheet, lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 82, in __parseDaily DataFileParser.__fillRow(row, PropertyName.START_INDEX.value, worksheet.cell(column=3, row=rownum), True) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 54, in __fillRow row[propertyName] = float(cell.value.replace(',', '.')) ValueError: could not convert string to float: 'Index de début de période (m3)' Traceback (most recent call last): File "/home/pi/script_gazpar_msql.py", line 11, in <module> client.update() File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 121, in update self.__updateLiveMode() File "/usr/local/lib/python3.7/dist-packages/pygazpar/client.py", line 255, in __updateLiveMode self.__data = DataFileParser.parse(filename, self.__meterReadingFrequency, self.__lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 40, in parse res = parseByFrequency[dataReadingFrequency](worksheet, lastNRows) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 82, in __parseDaily DataFileParser.__fillRow(row, PropertyName.START_INDEX.value, worksheet.cell(column=3, row=rownum), True) File "/usr/local/lib/python3.7/dist-packages/pygazpar/datafileparser.py", line 54, in __fillRow row[propertyName] = float(cell.value.replace(',', '.')) ValueError: could not convert string to float: 'Index de début de période (m3)'

ssenart commented 2 years ago

Le message parle de la colonne 'Index de début de période (m3)' qui n'est pas un nombre, est-ce vrai ?

pbranly commented 2 years ago

bonjour, je tente de remettre en place la commande manuelle j'ai installé firefox (apt install firefox) j'ai installé geckodriver (dans /usr/local/bin) je fais tout ce qui est demandé pour installer l'environnement virtuel je lance pygazpar -u 'xxxxxxxxxxxxxx' -p 'xxxxxxxxxxxx' -w '/usr/local/bin/geckodriver' -s 30 -t '/tmp' et je n'ai que: $ : commande introuvable

je dois passer a coté d'un gros truc ? Merci d'avance Philippe

DEFAYArnaud commented 2 years ago

Oui, c'est bien un nombre par exemple le 26/10 il y a 1452 ...

DEFAYArnaud commented 2 years ago

C'est bon je viens de trouver dans le fichier "datafileparser.py " il fallait que je remplace le nombre 8 par 10 dans les lignes suivantes :

https://github.com/ssenart/PyGazpar/blob/28dc0427b62f11017d8524dc415a809a7e57ba68/pygazpar/datafileparser.py#L76

https://github.com/ssenart/PyGazpar/blob/28dc0427b62f11017d8524dc415a809a7e57ba68/pygazpar/datafileparser.py#L105

https://github.com/ssenart/PyGazpar/blob/28dc0427b62f11017d8524dc415a809a7e57ba68/pygazpar/datafileparser.py#L129

car dans mon fichier excel, le tableau de données commençait à la ligne 10 au lieu de 8.

Merci beaucoup pour votre aide car grâce à vous j'ai pu résoudre mon problème. :)

ssenart commented 2 years ago

Bien vu !!! Je vais appliquer cette correction en m assurant que c est maintenant toubours vrai.

ssenart commented 2 years ago

@pbranly as tu bien activé l'environnement virtuel avec la commande : source .venv/bin/activate

pbranly commented 2 years ago

Oui bien sûr Et si je lance la commande pygazpar seule, il la trouve mais répond avec des erreurs Avec la commande complète je n'ai qu'un

$ : commande introuvable

Le $ montrant bien que je suis dans le bon environnement Phil

ssenart commented 2 years ago

Oui bien sûr Et si je lance la commande pygazpar seule, il la trouve mais répond avec des erreurs Avec la commande complète je n'ai qu'un

$ : commande introuvable

Le $ montrant bien que je suis dans le bon environnement Phil

Désolé, j'ai crée un bug dans la command line pygazpar en rajoutant le paramètre lastNDays. Je corrige ça...

ssenart commented 2 years ago

Merci à vous deux pour avoir identifié ces problèmes. Ils sont maintenant corrigés dans la 1.0.2.

pbranly commented 2 years ago

bonjour, le test en ligne de commande ne fonctionne toujours pas de mon coté. j'ai créé un répertoire /home/user/ssenart. voila la suite de commandes et leurs réponses

`root@xxx-NUC6CAYS:~# cd /home root@xxx-NUC6CAYS:/home# cd xxx root@xxx-NUC6CAYS:/home/xxx

cd ssenart

root@xxx-NUC6CAYS:/home/xxx/ssenart# python3 -m venv .venv root@xxx-NUC6CAYS:/home/xxx/ssenart# source .venv/bin/activate (.venv) root@xxx-NUC6CAYS:/home/xxxx/ssenart# pip install pygazpar Requirement already satisfied: pygazpar in ./.venv/lib/python3.9/site-packages (1.0.1) Requirement already satisfied: openpyxl==2.6.3 in ./.venv/lib/python3.9/site-packages (from pygazpar) (2.6.3) Requirement already satisfied: selenium==3.141 in ./.venv/lib/python3.9/site-packages (from pygazpar) (3.141.0) Requirement already satisfied: et_xmlfile in ./.venv/lib/python3.9/site-packages (from openpyxl==2.6.3->pygazpar) (1.1.0) Requirement already satisfied: jdcal in ./.venv/lib/python3.9/site-packages (from openpyxl==2.6.3->pygazpar) (1.4.1) Requirement already satisfied: urllib3 in ./.venv/lib/python3.9/site-packages (from selenium==3.141->pygazpar) (1.26.7) (.venv) root@xxxx-NUC6CAYS:/home/xxxx/ssenart# $ pygazpar -u 'zzzzzzzzzzzzzzzzzz -p 'rrrrrrrrrrrrrrr' -w '/usr/local/bin/geckodriver' -s 30 -t '/tmp' $ : commande introuvable:`

merci d'avance Philippe

ssenart commented 2 years ago

Salut Philippe,

Je vois dans tes messages :

Requirement already satisfied: pygazpar in ./.venv/lib/python3.9/site-packages (1.0.1)

Du coup, le passage en version 1.0.2 ne s'est pas fait.

J'ai fait la commande chez moi:

(.venv) C:\Temp\test-pygazpar>pip install pygazpar
Collecting pygazpar
  Downloading pygazpar-1.0.2-py39-none-any.whl (32 kB)
Collecting openpyxl==2.6.3
  Using cached openpyxl-2.6.3.tar.gz (173 kB)
Collecting selenium==3.141
  Using cached selenium-3.141.0-py2.py3-none-any.whl (904 kB)
Collecting jdcal
  Using cached jdcal-1.4.1-py2.py3-none-any.whl (9.5 kB)
Collecting et_xmlfile
  Downloading et_xmlfile-1.1.0-py3-none-any.whl (4.7 kB)
Collecting urllib3
  Downloading urllib3-1.26.7-py2.py3-none-any.whl (138 kB)
     |████████████████████████████████| 138 kB 6.4 MB/s
Using legacy 'setup.py install' for openpyxl, since package 'wheel' is not installed.
Installing collected packages: jdcal, et-xmlfile, openpyxl, urllib3, selenium, pygazpar
    Running setup.py install for openpyxl ... done
Successfully installed et-xmlfile-1.1.0 jdcal-1.4.1 openpyxl-2.6.3 pygazpar-1.0.2 selenium-3.141.0 urllib3-1.26.7

Je suis bien passé en 1.0.2.

Peux-tu refaire STP ?

pbranly commented 2 years ago

J’ai refait mais c’est toujours le même message . Il semble que la version 1.0.1 reste installée. J’ai tenté un pip install — upgrade pygazpar. A la fin j’ai eu un désinstall de la version 1.01 et un install de la 1.0.2 Et la c’est bon

merci Philippe