[obsolète] PYTHON : récupération des données API Withings

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]
Répondre
papoo
Messages : 1907
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

[obsolète] PYTHON : récupération des données API Withings

Message par papoo » 20 juil. 2017, 21:46

Bonjour
j'ai enfin réussi à récupérer les données de ma balance connectée withings via l'api et un script python.
voila déjà un aperçu des logs
2017-07-20 21_36_11-Domoticz - withings.png
2017-07-20 21_36_11-Domoticz - withings.png (10.73 Kio) Vu 6287 fois
la suite viewtopic.php?f=17&t=4440&p=38809#p38809

edit : Script obsolète ne fonctionnera plus le 1/12/18 suite à une modification de l'API
nouvelle version
https://easydomoticz.com/forum/viewtopi ... =17&t=7428
Modifié en dernier par papoo le 17 nov. 2018, 13:48, modifié 12 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

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.


deennoo
Messages : 4006
Enregistré le : 25 janv. 2015, 02:00

Re: PYTHON : recupération des données API Withings

Message par deennoo » 21 juil. 2017, 11:54

Je n'ai pas ce type de balance...mais cela peut etre utile pour declancher un scenario "salle de bain, bonjour papoo" si l'api est régulierement mise a jour et interroger ?
De quoi se faire Plaisir et essayer d'aider...
http://www.domo-attitude.fr

frenchyyii
Messages : 300
Enregistré le : 16 oct. 2015, 06:29

Re: PYTHON : recupération des données API Withings

Message par frenchyyii » 21 juil. 2017, 12:49

Yop, clairement si tu y arrives via l'api ca m'interesse. Perso je passe par IFTTT mais c'est galère et en plus je n'arrive pas à gérer pour différents utilisateurs. Y arrives tu d'ailleurs avec ton script ?
Merci

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

Re: PYTHON : recupération des données API Withings

Message par papoo » 21 juil. 2017, 13:10

Le déclenchement du script se fait classiquement via crontab donc oui on peut le déclencher aussi souvent qu'on le veut et les données sont accessible dès qu'elles sont synchronisées avec le site

Pour le multi utilisateurs il suffira de creer autant de script que d'utilisateurs
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

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 : recupération des données API Withings

Message par jackslayter » 23 juil. 2017, 08:38

Moi aussi j'en ai une mais avec mon script actuel il y a qu'une seule info qui ressort donc si tu arrives à lui faire cracher toutes ses infos c'est cool
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 : 1907
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: PYTHON : recupération des données API Withings

Message par papoo » 23 juil. 2017, 14:47

avant toutes choses il vous faut :
Créez une application de développeur à partir de l'application partenaire Withings (https://developer.health.nokia.com/partner/dashboard),
vous obtiendrez une clé API (CONSUMER_KEY) et un secret API(CONSUMER_SECRET) à renseigner dans ce script
Ce site Web api de Withings vous aidera à obtenir des informations supplémentaires concernant votre compte (étape 1 à l'étape 3).
Pensez à noter :
• Oauth_signature
• oauth_token
• À l'étape 1, vous pouvez laisser le champ «Callback URL» vierge

ensuite installez si ce n'est pas déjà fait python3 et python3-dev comme décrit ici https://www.domoticz.com/forum/viewtopi ... 6&p=119747

Code : Tout sélectionner

sudo apt-get install -y python3
sudo apt-get install -y python3-dev
sudo apt-get install -y python3-pip
sudo apt-get install -y python-urllib2
sudo pip3 install request
décompressez le zip joint
withings.zip
(4.89 Kio) Téléchargé 262 fois
et copiez son contenu dans

Code : Tout sélectionner

/home/pi/domoticz/scripts/python/
editez le fichier withing.py pour personnaliser vos identifiants pour l'API (CONSUMER_KEY et CONSUMER_SECRET)

lancez ensuite le script

Code : Tout sélectionner

python /home/pi/domoticz/scripts/python/withings/withings.py
vous obtenez une réponse de type

Code : Tout sélectionner

Go to https://oauth.withings.com/account/authorize?oauth_token=6d9db66940cc95428c972775557488373f618c2d494111111111 allow the app and copy your oauth_verifier
Please enter your oauth_verifier: 
copiez collez l'url complète et collez la dans votre navigateur
vous arrivez sur une page de ce type
2017-07-23 14_27_41-Withings.png
2017-07-23 14_27_41-Withings.png (48.84 Kio) Vu 6292 fois
sélectionnez l'utilisateur de la balance dont vous souhaitez récupérer les données puis validez.
vous obtenez une chaine de ce type

Code : Tout sélectionner

oauth_token=8661f25f44946904d238d990999184de949ee2c7ec6358be6d11111c&oauth_verifier=es6Et6xxxxxxk8OBSb
seule la partie apres

Code : Tout sélectionner

oauth_verifier= 
nous interresse
copiez la puis collez la dans votre console en l'entourant de '

Code : Tout sélectionner

'es6Et6xxxxxxk8OBSb'
un fichier pickled_creds est créé dans /home/pi/ contenant vos identifiants cryptés
si vous souhaitez récupérer les infos de plusieurs utilisateurs il faudra dupliquer et renommer le script withings.py , et personnaliser le nom de ce fichier.(pickled_creds1,pickled_creds2, etc)

il ne vous reste plus qu'a creer les devices dans domoticz et personnaliser leurs idx dans le script withings.py et ajouter une ligne dans votre crontab

Code : Tout sélectionner

crontab -e

Code : Tout sélectionner

*/2 * * * * sudo python /home/pi/domoticz/scripts/python/withings/withings.py
pour un lancement automatique toutes les deux minutes
Modifié en dernier par papoo le 03 août 2017, 22:37, modifié 1 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

kouf
Messages : 16
Enregistré le : 25 mars 2016, 06:50

Re: PYTHON : recupération des données API Withings

Message par kouf » 03 août 2017, 12:26

Déjà merci pour les scripts ça va permettre de me débarrasser d'IFTT.
Je viens de faire un premier test en suivant les consignes mais je tombe sur une erreur.
Pour information sur suis sur une debian Jessie.

Code : Tout sélectionner

root@dockerbox:/home/xxx/domoticz-script/script/withings# python3 withings.py
Traceback (most recent call last):
  File "withings.py", line 14, in <module>
    import urllib, urllib2#, hashlib,subprocess
ImportError: No module named 'urllib2'
N'y connaissant pas grand chose à python. Avez vous un avis ?

vil1driver
Messages : 5189
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: PYTHON : recupération des données API Withings

Message par vil1driver » 03 août 2017, 12:31

Salut,

A mon avis il te faut installer urllib2 ou modifier le script pour qu'il charge urllib3

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

Re: PYTHON : recupération des données API Withings

Message par papoo » 03 août 2017, 18:55

Effectivement il faut urlib2
j'avais oublié qu'il était installé sur mon pi désolé
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

frenchyyii
Messages : 300
Enregistré le : 16 oct. 2015, 06:29

Re: PYTHON : recupération des données API Withings

Message par frenchyyii » 04 août 2017, 00:40

Merci bien pour ce script, ça fonctionne à 70% pour l'instant pour moi.
Explications:
- mon cron ne fonctionne pas .. je devrais réussir à resoudre ce souci
- plus bizarre, les taux d'hydrations ne correspondent pas du tout à ce qui s'affiche sur la balance ni sur l'appli. Pour moi par ex l'appli affiche 56% et DZ lui 42%, pour ma nénette l'appli 52% et DZ 26%. Pourriez vous vérifier ces valeurs chez vous ?
- le taux d'hydratation ne remonte pas lorsque je lance le python et que je n'ai pas fait au préalable de mesure de rythme cardiaque.

J'ai aussi ces erreurs sur chacun des profils, que je peux supprimer en effaçant les lignes de code correspondant à la mesure du front d'onde cardiaque:

Code : Tout sélectionner

Traceback (most recent call last):
  File "./withingssteph.py", line 291, in <module>
    log("vitesse onde de pouls : %s" % pulse_wave_velocity)
NameError: name 'pulse_wave_velocity' is not defined
Merci pour vos retours
Eric

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