[obsolète] PYTHON : récupération des données API Withings
[obsolète] PYTHON : récupération des données API Withings
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 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
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 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.
Re: PYTHON : recupération des données API Withings
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
http://www.domo-attitude.fr
-
- Messages : 310
- Enregistré le : 16 oct. 2015, 06:29
Re: PYTHON : recupération des données API Withings
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
Merci
Re: PYTHON : recupération des données API Withings
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
Pour le multi utilisateurs il suffira de creer autant de script que d'utilisateurs
-
- Messages : 961
- Enregistré le : 30 sept. 2014, 14:40
- Localisation : Isère (38)
Re: PYTHON : recupération des données API Withings
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
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
Re: PYTHON : recupération des données API Withings
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
décompressez le zip joint
et copiez son contenu dans
editez le fichier withing.py pour personnaliser vos identifiants pour l'API (CONSUMER_KEY et CONSUMER_SECRET)
lancez ensuite le script
vous obtenez une réponse de type
copiez collez l'url complète et collez la dans votre navigateur
vous arrivez sur une page de ce type 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
seule la partie apres nous interresse
copiez la puis collez la dans votre console en l'entourant de '
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
pour un lancement automatique toutes les deux minutes
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
Code : Tout sélectionner
/home/pi/domoticz/scripts/python/
lancez ensuite le script
Code : Tout sélectionner
python /home/pi/domoticz/scripts/python/withings/withings.py
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:
vous arrivez sur une page de ce type 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
Code : Tout sélectionner
oauth_verifier=
copiez la puis collez la dans votre console en l'entourant de '
Code : Tout sélectionner
'es6Et6xxxxxxk8OBSb'
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
Modifié en dernier par papoo le 03 août 2017, 22:37, modifié 1 fois.
Re: PYTHON : recupération des données API Withings
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.
N'y connaissant pas grand chose à python. Avez vous un avis ?
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'
-
- Messages : 5663
- Enregistré le : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: PYTHON : recupération des données API Withings
Salut,
A mon avis il te faut installer urllib2 ou modifier le script pour qu'il charge urllib3
A mon avis il te faut installer urllib2 ou modifier le script pour qu'il charge urllib3
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: PYTHON : recupération des données API Withings
Effectivement il faut urlib2
j'avais oublié qu'il était installé sur mon pi désolé
j'avais oublié qu'il était installé sur mon pi désolé
-
- Messages : 310
- Enregistré le : 16 oct. 2015, 06:29
Re: PYTHON : recupération des données API Withings
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:
Merci pour vos retours
Eric
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
Eric