J'avais proposé une PR à l'auteur Jarek Hartman, il vient de la fusionner le 31/03/2022.
Donc inutile maintenant de passer par l'étape n°8 ci-dessous, les modifs sont déjà intégrées
Balances connectées Withings intégrées à Domoticz
Le script python de référence ne fonctionne plus depuis le 8 février 2022, date à laquelle Withings a modifié les nœuds de l'API.
J'ai emprunté à Papoo ses widgets domoticz, à Jarek Hartman son utilitaire pour récupérer les données Withings en le modifiant légèrement, et écrit un script dzVents pour mettre à jour tout ça dans domoticz.
Python 3.x est nécessaire.
Si l'expérience vous tente, c'est par là :
- Aller sur la page Withings-sync de Github et suivre les instructions, à savoir :
Code : Tout sélectionner
pip install withings-sync - Dans un terminal, lancer une première fois l'application sous root pour générer le fichier .withings_user.json qui contiendra le token.
On le copiera plus tard dans le répertoire de domoticz :
Code : Tout sélectionner
$ sudo bash [sudo] password for pi: $ su - root $ withings-sync -f 2019-01-25 -v Can't read config file config/withings_user.json User interaction needed to get Authentification Code from Withings! Open the following URL in your web browser and copy back the token. You will have *30 seconds* before the token expires. HURRY UP! (This is one-time activity) https://account.withings.com/oauth2_user/authorize2?response_type=code&client_id=183e03e1f363110b3551f96765c98c10e8f1aa647a37067a1cb64bbbaf491626&state=OK&scope=user.metrics&redirect_uri=https://wieloryb.uk.to/withings/withings.html& Token : - Avec un navigateur Internet, aller sur https://account.withings.com/oauth2_user/authorize2?response_type=code&client_id=183e03e1f363110b3551f96765c98c10e8f1aa647a37067a1cb64bbbaf491626&state=OK&scope=user.metrics&redirect_uri=https://wieloryb.uk.to/withings/withings.html&
- Choisir l'utilisateur qui convient sur la page qui s'affiche :
Si la page demande une identification, il faut entrer le nom d'utilisateur et le mot de passe qui ont servi à enregistrer la balance.
- On tombe ensuite sur la page de l'application, cliquer sur Autoriser donnera le token :
Attention, on a que 30 secondes pour le recopier dans le terminal.
- Une fois collé dans le terminal, le fichier permettant l'accès est généré.
Code : Tout sélectionner
Token : 11354a073c8b93b8ada0d258ac022e6d3ff01f8f 2022-02-19 18:21:16,511 - withings - INFO - Get Access Token 2022-02-19 18:21:16,688 - withings - INFO - Refresh Access Token 2022-02-19 18:21:16,944 - withings - INFO - Get Measurements 2022-02-19 18:21:17,082 - root - INFO - This Withings metric contains no weight data. Not syncing... 2022-02-19 18:21:17,082 - root - INFO - No Trainerroad username or a new measurement - skipping sync 2022-02-19 18:21:17,082 - root - INFO - No Garmin username - skipping sync - Recopier le fichier qui contient le token de la home directory de root vers le répertoire de domoticz :
Domoticz en aura besoin lors de l'appel de l'application.
Code : Tout sélectionner
cp /root/.withings_user.json /home/pi/domoticz/ - [OBSOLETE] Ensuite il faut modifier l'application pour qu'elle puisse sortir du json.
Il suffit de remplacer le fichier /usr/local/lib/python3.8/dist-packages/withings_sync/sync.py par celui ci :
Il faut normalement le faire sous root. - Maintenant on peut tester et vérifier si l'application modifiée sort bien le json.
A exécuter avec sudo si on est pas sous root pour que le fichier d'authentification soit utilisé.
Si rien ne sors, il faudra penser à se peser...Code : Tout sélectionner
sudo withings-sync -J
- Si le json est affiché, c'est tout bon.
Il ne reste plus qu'à mettre le script dzVents dans son répertoire /home/pi/domoticz/scripts/dzVents/scripts et à le personnaliser.
Les instructions sont à l'intérieur, il faut juste indiquer le nom des widgets à utiliser et mettre à nil ceux qu'on ne veut pas dans Domoticz.
Attention de ne pas appeler le script trop souvent (15 mn a l'air de tenir).
Si les appels sont trop fréquents, Withings désactive le token et il faut recommencer son obtention à partir du point 3 après avoir supprimé le fichier /root/.withings_user.json