PYTHON : récupération des données API Withings avec OAuth 2.0

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
truelle
Messages : 1
Enregistré le : 06 juil. 2019, 10:47

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par truelle » 06 juil. 2019, 10:58

Bonjour à tous :)
Je suis un heureux utilisateur de produits withings / nokia, et j'aimerais récupérer mes différentes données. Déjà franchement bravvo, je n'imaginais pas que quelqu'un se soit déjà penché sur la question et qu'en plus il y a ait une communauté dérrière. Alors par contre je n'utilise pas le système Domoticz, je shouaite jsute récupérer mes données pour les mettre dans une base de donnée.
J'ai récupéré le script Withings-sync ici : https://github.com/papo-o/domoticz_scri ... gs-sync.py, et j'ai réussi à connecter mon compte développeur withings avec le script, mais quand je shouaite récupérer mes resultats, j'obtiens cette erreur

Code : Tout sélectionner

root@serveur:/home/truelle/testpy# python3 withings-sync.py sync
Traceback (most recent call last):
  File "toto.py", line 303, in <module>
    json_object = json.loads(domoticzrequest(domoticzurl))
  File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
J'ai également modifié dans le script withings-sync quelques variables afin qu'elles soit compatibles à mon environnement :

Code : Tout sélectionner

#domoticz settings
domoticz_host           = 'www.mon_serveur.com'    # Url domoticz
domoticz_port           = '80'            # port
domoticz_url            = '' #'json.htm'        # Ne pas modifier
debugging                = False            # True pour voir les logs dans la console log Dz et en ligne de commande, ou False pour ne pas les voir (attention aux majuscules)
Pour le json.htm j'ai essayé avec et sans mais j'ai le même message d'erreur. J'ai également essayé de le créer à la main dans mon /var/www mais sans plus de succès.

Quelqu'un aurait déjà eu ce soucis ?

Merci

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


jackslayter
Messages : 950
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter » 29 oct. 2019, 15:10

j'ai vu que le script ne marchait plus depuis le début du mois

Code : Tout sélectionner

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/requests_oauthlib/oauth2_session.py", line 330, in request
    http_method=method, body=data, headers=headers)
  File "/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 196, in add_token
    raise TokenExpiredError()
oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/python/nokia2/domoticz_nokia_health.py", line 278, in <module>
    measures = client_nokia.get_measures(limit=2)
  File "/usr/local/lib/python3.5/dist-packages/nokia/__init__.py", line 217, in get_measures
    r = self.request('measure', 'getmeas', kwargs)
  File "/usr/local/lib/python3.5/dist-packages/nokia/__init__.py", line 202, in request
    r = self.client.request(method, '/'.join(url_parts), params=params)
  File "/usr/local/lib/python3.5/dist-packages/requests_oauthlib/oauth2_session.py", line 343, in request
    self.auto_refresh_url, auth=auth, **kwargs
  File "/usr/local/lib/python3.5/dist-packages/requests_oauthlib/oauth2_session.py", line 309, in refresh_token
    self.token = self._client.parse_request_body_response(r.text, scope=self.scope)
  File "/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py", line 411, in parse_request_body_response
    self.token = parse_token_response(body, scope=scope)
  File "/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/parameters.py", line 379, in parse_token_response
    validate_token_parameters(params)
  File "/usr/local/lib/python3.5/dist-packages/oauthlib/oauth2/rfc6749/parameters.py", line 389, in validate_token_parameters
    raise MissingTokenError(description="Missing access token parameter.")
oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.
après une MàJ de oauthlib

Code : Tout sélectionner

pip3 install requests-oauthlib
j'ai ça

Code : Tout sélectionner

Traceback (most recent call last):
  File "/usr/lib/python3.5/configparser.py", line 1135, in _unify_values
    sectiondict = self._sections[section]
KeyError: 'nokia'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/python/nokia2/domoticz_nokia_health.py", line 258, in <module>
    client_nokia = auth_nokia( config )
  File "/home/pi/domoticz/scripts/python/nokia2/domoticz_nokia_health.py", line 245, in auth_nokia
    creds = nokia.NokiaCredentials(config.get('nokia', 'access_token'),
  File "/usr/lib/python3.5/configparser.py", line 778, in get
    d = self._unify_values(section, vars)
  File "/usr/lib/python3.5/configparser.py", line 1138, in _unify_values
    raise NoSectionError(section)
configparser.NoSectionError: No section: 'nokia'
j'ai mis à jour le script , j'étais en V2018

Une idée sur le problème ?
merci
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

papoo
Messages : 1905
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo » 29 oct. 2019, 21:49

As tu mis à jour la bibliothèque nokia ? il me semble avoir eu un problème similaire cet été, dû à la suppression de l'api des serveurs de nokia,

Code : Tout sélectionner

Implement new Withings URLs for API and registration
il faut, une fois la mise à jour effectuée (pas de mon script mais de la bibliothèque https://github.com/orcasgit/python-nokia) recommencer le processus d'authentification de l'utilisateur.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

jackslayter
Messages : 950
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter » 30 oct. 2019, 09:49

c'est bon j'ai tout mis à jour, par contre j'ai une erreur

Code : Tout sélectionner

Traceback (most recent call last):
  File "/home/pi/domoticz/scripts/python/nokia2/domoticz_nokia_health.py", line
    if y != None and idx_heart_pulse != None:
NameError: name 'y' is not defined
je suis en None

Code : Tout sélectionner

idx_heart_pulse         = None         # renseigner l'idx du device Rythme ....
j'ai pas changé les variables depuis la V2018
merci
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


papoo
Messages : 1905
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo » 30 oct. 2019, 22:02

tu es en mode debugging?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

jackslayter
Messages : 950
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter » 31 oct. 2019, 08:20

ça le fait en debug true/false
vu que je n'ai pas de pulse, je l'ai commenté dans le script
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

papoo
Messages : 1905
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo » 31 oct. 2019, 10:14

J’ai planté mon install hier soir en mettant à jour la bibli nokia
Impossible d’accéder au serveur
Je te dis dès que j’aurai réussi à debugger
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

jackslayter
Messages : 950
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter » 31 oct. 2019, 10:26

ok,
moi j'ai désintall la lib nokia et réinstall puis tout re configuré.
merci
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

papoo
Messages : 1905
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par papoo » 01 nov. 2019, 16:35

je n'arrive pas a reproduire ton problème. tout fonctionne normalement pour moi
par contre je suis en python 3.6.8 pas en 3.5 comme toi.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

jackslayter
Messages : 950
Enregistré le : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: PYTHON : récupération des données API Withings avec OAuth 2.0

Message par jackslayter » 04 nov. 2019, 08:42

ok je vais essayer
merci
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre