Aller au contenu principal

Intégration domotique Withings, gratuite et open source

Intégration Withings pour Gladys Assistant

Poids, tension, activité et sommeil de vos balances, montres et tensiomètres Withings.

Cette intégration amène dans Gladys les données de vos appareils Withings : poids et composition corporelle d'une balance, tension artérielle, pouls, température, pas et sommeil d'une montre ou d'un Sleep Analyzer.

Les données viennent du cloud Withings (les mêmes que dans l'application Withings) : l'intégration ne parle pas aux appareils sur votre réseau.

Ce que vous obtenez​

Dans GladysCe qu'il contient
Appareil Withings healthVos mesures (poids, masse grasse, muscles, tension, pouls, SpO2, température…), l'activité du jour, la dernière nuit, l'état « au lit »
Un appareil par appareil Withings« Batterie faible » (balances, tensiomètres, montres, thermomètres)
5 déclencheurs de scèneNouvelle mesure, couché, levé, résumé de la nuit disponible, objectif de pas atteint
2 actions de scèneActualiser les données Withings, lire la dernière valeur Withings
2 widgets de tableau de bordSanté Withings (résumé), Évolution du poids (graphique)

Les fonctionnalités de l'appareil Withings health suivent ce que votre compte mesure vraiment : un tensiomètre donne la tension, pas vingt fonctionnalités de composition corporelle vides. Quand un nouveau type de mesure apparaît, l'appareil affiche un bouton Mettre à jour dans l'onglet Découverte.

Les mesures gardent leur propre date : une pesée synchronisée une heure plus tard est enregistrée à l'heure où vous êtes monté sur la balance.

Avant de commencer​

  • Un compte Withings, avec vos appareils installés dans l'application Withings (Health Mate) et synchronisés.
  • Gladys 5.1 ou plus récent.
  • En option : Gladys Plus, pour les notifications en temps réel (voir plus bas).

1. Créer une application développeur Withings​

Withings demande de déclarer chaque application qui lit ses données. C'est gratuit et cela prend cinq minutes.

  1. Allez sur developer.withings.com et connectez-vous avec votre compte Withings.
  2. Créez une application, de type Public API integration.
  3. Donnez-lui un nom (par exemple « Mon Gladys ») et une description.
  4. Callback URL : mettez une adresse provisoire pour l'instant, par exemple https://localhost/. Vous ajouterez la vraie à l'étape 3 plus bas.
  5. Enregistrez. Withings affiche le Client ID et le Client secret de l'application.

2. Configurer l'intégration​

Dans Gladys, ouvrez Intégrations → Withings → Configuration :

ChampQue mettre
Client IDLe Client ID de votre application Withings
Client secretLe Client secret de votre application Withings
Intervalle de rafraîchissement (min)Fréquence de lecture de Withings. 30 minutes par défaut (5 à 1440)
Objectif de pas quotidienUtilisé par le déclencheur « Objectif de pas atteint ». 10 000 par défaut
Notifications temps réel (Gladys Plus)Activé par défaut. Ne marche qu'avec Gladys Plus

Enregistrez.

3. Connecter votre compte Withings​

  1. Cliquez sur Connecter (champ « Compte Withings »).
  2. La première fois, Withings répond que l'adresse de retour n'est pas autorisée (redirect_uri). C'est normal : Withings n'accepte que les adresses déclarées dans votre application.
  3. De retour dans Gladys, cliquez sur Tester la connexion : le message affiche l'URL de rappel utilisée par Gladys. Elle est aussi dans les journaux de l'intégration (« Callback URL to declare in your Withings app »).
  4. Sur developer.withings.com, modifiez votre application et ajoutez cette adresse aux callback URLs. Enregistrez.
  5. Cliquez à nouveau sur Connecter, identifiez-vous chez Withings et acceptez.

Le statut passe à Connecté, l'intégration lit un an de mesures (seule la dernière valeur de chacune est mise dans Gladys), et les appareils apparaissent dans Découverte. Créez-les comme n'importe quel appareil.

L'URL de rappel dépend de l'adresse avec laquelle vous ouvrez Gladys. Cliquez toujours sur Connecter depuis la même adresse (celle que vous avez déclarée).

Notifications temps réel (Gladys Plus)​

Sans Gladys Plus, l'intégration lit Withings à l'intervalle de rafraîchissement : une pesée arrive dans Gladys en moins de 30 minutes (par défaut).

Avec Gladys Plus, Withings prévient Gladys dès qu'une donnée arrive :

  1. Dans l'écran de configuration de l'intégration, remplissez le bloc Webhooks Gladys Plus avec votre clé Open API Gladys Plus.
  2. Laissez Notifications temps réel activé.

L'intégration s'abonne alors toute seule aux notifications Withings. Les nouvelles mesures arrivent en quelques secondes, et un Sleep Analyzer envoie les événements au lit / hors du lit (ces deux-là n'existent qu'avec Gladys Plus).

« Tester la connexion » indique si les notifications sont actives.

Appareils et fonctionnalités​

Withings health​

FonctionnalitéUnitéRemarques
Poids, masse grasse, masse maigre, masse musculaire, masse osseuse, eau corporellekgBalance
Taux de masse grasse%Balance
Indice de graisse viscérale—Body Comp / Body Scan
Tension systolique / diastoliquemmHgTensiomètre
Fréquence cardiaquebpmBalance, tensiomètre
Oxygène sanguin (SpO2)%ScanWatch
Température corporelle, température cutanée°CThermo, ScanWatch
Vitesse de l'onde de pouls, âge vasculairem/s, —Body Cardio, Body Scan
Pas, distance, dénivelé, calories actives et totales (du jour)—, mMontre ou téléphone ; remis à 0 à minuit
Durée de sommeil, sommeil profond / léger / paradoxal, score, réveils, poulsmin, —Dernière nuit, datée à l'heure du réveil
Au lit0 / 1Sleep Analyzer, avec Gladys Plus

Gladys n'a pas d'unité kilogramme, bpm ou mmHg : ces fonctionnalités portent l'unité dans leur nom.

Un appareil par appareil Withings​

Une fonctionnalité Batterie faible (1 quand Withings signale une batterie faible), pour une scène « changer les piles ». Un Sleep Analyzer branché sur secteur n'en a pas.

Scènes​

Déclencheurs​

DéclencheurQuandVariables
Nouvelle mesure WithingsUne pesée, une prise de tension… est enregistréeType, date, et chaque valeur de la mesure (poids…)
CouchéUn Sleep Analyzer détecte quelqu'un qui se couche—
LevéUn Sleep Analyzer détecte quelqu'un qui se lève—
Résumé de la nuit disponibleWithings a analysé la nuit dernièreDurée de sommeil (min), score de sommeil, réveils
Objectif de pas atteintLes pas du jour atteignent l'objectif (une fois par jour)Pas, objectif

« Nouvelle mesure Withings » peut être filtré sur le type : pesée, tension artérielle, température, oxygène sanguin, autre. Seules les mesures récentes (moins de 24 heures) le déclenchent : connecter le compte ne rejoue jamais les anciennes pesées.

Exemple : quand une pesée arrive, m'envoyer « Poids : {{triggerEvent.data.weight}} kg ».

Actions​

ActionCe qu'elle faitRésultats
Actualiser les données WithingsLit Withings tout de suiteNombre de nouvelles mesures
Lire la dernière valeur WithingsLa dernière valeur connue d'une mesureConnue (oui/non), valeur, unité, date

Widgets du tableau de bord​

  • Santé Withings : jusqu'à quatre tuiles en direct (poids, pas, sommeil, tension…), la dernière mesure et la dernière synchronisation, les notifications, les piles, et un bouton Actualiser.
  • Évolution du poids : le poids actuel et sa courbe sur une semaine, un mois, trois mois ou un an (réglage du widget).

Boutons de l'écran de configuration​

  • Tester la connexion : compte, appareils, dernière synchronisation, notifications et URL de rappel à déclarer chez Withings.
  • Synchroniser maintenant : lit Withings tout de suite.
  • Déconnecter le compte Withings : oublie les jetons et arrête les notifications. Les appareils restent dans Gladys avec leur historique.

Dépannage​

Message / symptômeQue faire
« Renseignez le Client ID et le Client secret… »Remplissez les deux champs, enregistrez
Withings dit que redirect_uri est invalideAjoutez à votre application Withings l'URL de rappel donnée par « Tester la connexion » (étape 3)
« Withings a refusé la connexion… cliquez sur Connecter »Accès révoqué, secret changé ou jeton expiré : cliquez à nouveau sur Connecter
« Withings est injoignable pour le moment »Withings ou votre Internet est coupé ; l'intégration réessaie au prochain rafraîchissement
Notifications « inactives (pas de Gladys Plus lié) »Remplissez le bloc Webhooks Gladys Plus, ou gardez seulement le minuteur
Un nouveau type de mesure n'a pas de fonctionnalitéDécouverte → Withings health → Mettre à jour
Pas d'événement « au lit »Il faut un Sleep Analyzer et Gladys Plus

L'intégration écrit ce qu'elle fait dans ses journaux (le conteneur de l'intégration), jamais un jeton ni le Client secret.

Vie privée​

  • Vos données vont du cloud Withings à votre Gladys, via votre application développeur. Rien ne passe par un tiers (Gladys Plus relaie seulement les notifications « nouvelle donnée », qui ne contiennent aucune mesure).
  • Le Client secret et les jetons sont stockés dans la configuration Gladys de l'intégration, jamais réaffichés et jamais écrits dans les journaux.
  • L'intégration garde un petit fichier dans son volume /data (dernière lecture, dernières valeurs) pour qu'un redémarrage ne duplique pas les mesures et ne relance pas les scènes.
  • Un compte Withings par installation de l'intégration.

Paramètres de configuration​

Voici les paramètres demandés par Withings dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Pour commencersectionNonLes données Withings viennent du cloud Withings, via une application développeur à vous (gratuite). 1. Sur developer.withings.com, créez une application (Public API integration). 2. Ajoutez l'URL de rappel de votre Gladys : cliquez une fois sur Connecter ci-dessous, puis lancez « Tester la connexion » pour la voir, ou lisez-la dans les logs de l'intégration. 3. Copiez ici le Client ID et le Client secret, enregistrez, puis cliquez sur Connecter et identifiez-vous chez Withings.
Client IDstringOuiLe Client ID de votre application Withings.
Client secretsecretOuiLe Client secret de votre application Withings. Stocké dans Gladys, jamais réaffiché.
Compte Withingsoauth2NonEnregistrez d'abord le Client ID et le secret, puis cliquez sur Connecter et identifiez-vous chez Withings.
Intervalle de rafraîchissement (min)numberNonFréquence de lecture de Withings, en minutes. Avec Gladys Plus, les nouvelles mesures arrivent aussi en quelques secondes.
Objectif de pas quotidiennumberNonLe déclencheur de scène « Objectif de pas atteint » se déclenche une fois par jour quand les pas du jour l'atteignent.
Notifications temps réel (Gladys Plus)booleanNonDemande à Withings de prévenir Gladys des nouvelles données via Gladys Plus : les mesures en quelques secondes, et les événements « au lit » / « hors du lit » d'un Sleep Analyzer. Sans Gladys Plus, l'intervalle de rafraîchissement s'applique.

Comment installer Withings dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Withings apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/prohand/gladys-withings:1.0.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/prohand/gladys-withings.

Withings nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

Withings est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par prohand, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂