# \[V4\] Service de développement Withings

**URL:** <https://community.gladysassistant.com/t/v4-dev-service-withings/5415>\
**Category:** Développement\
**Tags:** feature-integration, withings\
**Created:** [Mai 21, 2020, 4:12 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415 "2020-05-21T16:12:30Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Mai 21, 2020, 4:12 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/1 "2020-05-21T16:12:30Z")

</div>

Bonjour,

j’essaye de développer un service qui récupère les données des devices de cette marque.

une fois les informations récupérées sur le compte et les device, je souhaite récupérer toutes les données des mesures historiques.

je créé des feature\_state pour chaque mesure en définissant le created\_date et le updated\_date, mais apres l’enregistrement ces 2 dates sont forcé à la date courante et pas à ce que j’ai définit .

comment puis je faire pour sauvegarer des mesures de device dans le passé ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mai 25, 2020, 8:45 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/2 "2020-05-25T08:45:30Z")

</div>

Salut @euguuu! Top si tu développe ce service, j’ai vu ta PR 🙂

> [@euguuu](#):
>
> je créé des feature\_state pour chaque mesure en définissant le created\_date et le updated\_date, mais apres l’enregistrement ces 2 dates sont forcé à la date courante et pas à ce que j’ai définit .

Bonne remarque, c’est effectivement le comportement actuel, cf la ligne de code incriminé:

> <https://github.com/GladysAssistant/Gladys/blob/master/server/lib/device/device.saveState.js#L17>

Est-ce que tu pourrais me décrire plus en détail le fonctionnement espéré de ton service pour qu’on voir comment on pourrait faire au mieux ?

---

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Mai 25, 2020, 1:12 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/3 "2020-05-25T13:12:23Z")

</div>

Dans ce service, je commence par demander les info pour pouvoir connecter le compte withings de l’utilisateur (par oauth2)

une fois la connexion validé je récupère les infos du compte pour créer les devices existant dans ce compte (balance, montre, …) et je créé les feature associées (batterie, poids, poult,…) , je récupère ausi l’historique des mesures déjà existantes, et je souhaiterai enregistrer ces mesures (avec leur vrai dates de création) pour avoir l’historique dans gladys et permettre l’affichage sous forme du courbe par ex .

une fois tout ça fait je veux mettre un poll pour récup les nouvelles mesure 1 fois par jour, dans mon cas ce n’est pas le moment ou gladys va chercher les mesures qui compte mais la date de création de la mesure par le device sur le compte withings

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mai 26, 2020, 8:57 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/4 "2020-05-26T08:57:20Z")

</div>

Ok je vois l’idée !

Comme tu sync d’un coup plein de valeurs, je pense pas que la fonction actuelle ait du sens.

Ce qu’il faudrait, ce serait créer une fonction comme la fonction saveState, mais qui au lieu de prendre 1 valeur prenne un tableau de valeur.

Cette fonction irait:

1. Insérer la liste de t\_device\_feature\_state en DB
2. Mettre à jour le `t_device_feature`.`last_value` avec la dernière valeur du tableau
3. Appeler les scènes avec la dernière valeur et propager la dernière valeur en websockets aux clients connectés

En gros, recopier cette fonction:

> <https://github.com/GladysAssistant/Gladys/blob/master/server/lib/device/device.saveState.js>

Pour gérer l’insertion multiple.

Puis écouter sur un nouvel event, genre `EVENTS.DEVICE.NEW_STATE_SYNC` de la même manière que `EVENTS.DEVICE.NEW_STATE`

> <https://github.com/GladysAssistant/Gladys/blob/master/server/lib/device/index.js#L50>

Est-ce que tu pourrais t’en charger dans ta PR? 🙂

N’hésite pas si tu as des questions !

---

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Juin 15, 2020, 6:53 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/5 "2020-06-15T18:53:05Z")

</div>

Bonjour,

il faut que je m’y remette , mais oui je vais m’occper d’intégrer cette modif

---

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Novembre 16, 2020, 10:56 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/6 "2020-11-16T22:56:53Z")

</div>

Bonjour,

j’ai bien avancé sur ce dev, je viens de pousser une version presque finale de la dans la PR [WIP] Withings,

cette intégration permet:

- la connexion au compte withings
- une api (server& front) générique pour se connecter à des services oauth2 (à confirmer sur d’autres intégrations)
- la création des devices withings automatique
- la récupération des mesures des devices
- l’affichage dans le dashboard d’une bo ‘Santé’ similaire à la box DeviceInRoom

Le reste à faire pour considérer l’intégration correcte est le suivant:

- doc d’intégration (en cours)
- ajouter une conf pour le site de demo
- relecture du code si possible et prise en compte des remarques
- [optionnel] test de l’intégration par des volontaires avec plus de device (normalement l’intégration marche pour tous les appareis withings mais je n’en ai qu’un pour le moment)

Idéalement pour une prochaine version j’aurais voulu afficher une box sur le dashboard sous forme d’un graphique en courbe, y a t’il des composant déjà prévu pour afficher l’historique des données ?

quelques images de l’intégration:  
 ![withings-dashboard-box](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/5/5705fea0c4955f4c8d9d2af14fcdebaec8012769.png)

 ![withings-dashboard-config](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/8/807ddba6c84c124e5f3554914e0b905450a2cb76.png) ![withings-settings-config-1](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/6/673ee2db54e8441593c115d5bb148eb2f34cff50.png) ![withings-settings-config-2](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/2/2041065c69d6893cf9ee245d1a19a2fe4124cbcd.png) ![withings-settings-config-3](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/4d696f897650cfa98da31569762ecd378bd1462d.png) ![withings-settings-config-4](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/9/9aedd106885c4f238675caa1118278ba666d6aa7.png)

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Novembre 17, 2020, 9:05 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/7 "2020-11-17T09:05:11Z")

</div>

Génial tout ça ! Merci @euguuu  
Est-ce que oar hasard il y aurait moyen d’afficher une courbe historique du poids ? Ce qui est en général tout l’interêt d’une balance connectée. A regler comme on le souhaite : 1 semaine / 1 mois / 1 an.

---

<div class="post-metadata">

**Author:** ![Hamtaro](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/hamtaro/32/2373_2.png) [@Hamtaro](https://community.gladysassistant.com/u/Hamtaro)\
**Post date:** [Novembre 17, 2020, 9:48 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/8 "2020-11-17T09:48:26Z")

</div>

> [@guim31](#):
>
> Est-ce que oar hasard il y aurait moyen d’afficher une courbe historique du poids ?

Il se pose aussi la question 😉

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Novembre 17, 2020, 9:51 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/9 "2020-11-17T09:51:01Z")

</div>

Ah oui en fait si je savais lire je ne poserai pas ce genre de questions cons… ^^  
Désolé !

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Novembre 17, 2020, 4:41 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/10 "2020-11-17T16:41:48Z")

</div>

Magnifique !!

C’est du très beau boulot @euguuu 🙂

> [@guim31](#):
>
> Est-ce que oar hasard il y aurait moyen d’afficher une courbe historique du poids ? Ce qui est en général tout l’interêt d’une balance connectée. A regler comme on le souhaite : 1 semaine / 1 mois / 1 an.

Je pense que c’est plus quelque chose qu’on veut de manière générale à Gladys, pas juste à ce service. Donc pas la peine de développer ça dans le service à mon avis.

On a cette tâche qui a déjà 12 votes :

> [@Box sur le dashoard affichant en courbe l'historique des valeurs d'un capteur](https://community.gladysassistant.com/t/box-sur-le-dashoard-affichant-en-courbe-lhistorique-des-valeurs-dun-capteur/5514):
>
> Cette box demandera en configuration à l’utilisateur de sélectionner un capteur. Ensuite, il peut afficher d’un clic une vue: dernière 24h dernière semaine dernier mois L’issue GitHub: [https://github.com/GladysAssistant/Gladys/issues/693](https://github.com/GladysAssistant/Gladys/issues/693)

Je pense que ça résoudra le problème 🙂

---

<div class="post-metadata">

**Author:** ![Hamtaro](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/hamtaro/32/2373_2.png) [@Hamtaro](https://community.gladysassistant.com/u/Hamtaro)\
**Post date:** [Novembre 17, 2020, 4:59 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/11 "2020-11-17T16:59:12Z")

</div>

> [@pierre-gilles](#):
>
> Je pense que c’est plus quelque chose qu’on veut de manière générale

J’aimais beaucoup la v3 pour ça… 😛

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Novembre 17, 2020, 8:05 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/12 "2020-11-17T20:05:43Z")

</div>

> [@pierre-gilles](#):
>
> Je pense que c’est plus quelque chose qu’on veut de manière générale à Gladys, pas juste à ce service. Donc pas la peine de développer ça dans le service à mon avis.

Nickel ! Alors comme moi je ne comprends rien à la construction de Gladys, je ne pensais pas qu’on pouvait créer un outil «&nbsp;historique&nbsp;» et s’en servir sur tous les capteurs souhaités. Merci pour l’info !

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Novembre 17, 2020, 10:20 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/13 "2020-11-17T22:20:27Z")

</div>

Oui actuellement l’historique est en base de données, d’ailleurs quand tu configure Gladys pour la 1ère fois tu définis quelle rétention tu souhaites.

Il faut développer la fonctionnalité

---

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Novembre 18, 2020, 8:15 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/14 "2020-11-18T08:15:11Z")

</div>

Au niveau de cet affichage il y a un dev en cours ? il y a deja des choix de fait sur la techno a uilisé ou l’archi a mettre en place ou il faut commencer de 0 ?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Novembre 18, 2020, 9:04 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/15 "2020-11-18T09:04:09Z")

</div>

> [@pierre-gilles](#):
>
> On a cette tâche qui a déjà 12 votes :
> 
> [Box sur le dashoard affichant en courbe l'historique des valeurs d'un capteur](https://community.gladysassistant.com/t/box-sur-le-dashoard-affichant-en-courbe-lhistorique-des-valeurs-dun-capteur/5514)
> 
> Je pense que ça résoudra le problème

C’est par là que ça se passe

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Novembre 19, 2020, 7:57 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/16 "2020-11-19T07:57:08Z")

</div>

> [@euguuu](#):
>
> Au niveau de cet affichage il y a un dev en cours ? il y a deja des choix de fait sur la techno a uilisé ou l’archi a mettre en place ou il faut commencer de 0 ?

Il n’y a pas de développement en cours. On en a parlé sur l’autre sujet qui est juste une carte de «&nbsp;todo&nbsp;» mais globalement tout est à faire: choix de la lib de charts, et développement 🙂

On en parle sur l’autre sujet ?

---

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [Mars 16, 2021, 8:14 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/17 "2021-03-16T20:14:21Z")

</div>

Bonjour à tous,  
je relance le sujet.  
@euguuu est proche de la fin du dev, le PR est en revue, on recherche donc des volontaires pour tester / valider le service, si possible avec du matériel.

Merci par avance.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 22, 2021, 2:50 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/18 "2021-03-22T02:50:15Z")

</div>

Je relance le sujet, personne n’a de matériel et pourrait tester la PR ? 🙂

Sinon, est-ce qu’il serait possible d’avoir une petite présentation de la PR @euguuu ? 🙂

Qu’est-ce qu’elle fait? Quels périphériques Withings sont gérés?

---

<div class="post-metadata">

**Author:** ![euguuu](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/euguuu/32/5061_2.png) [@euguuu](https://community.gladysassistant.com/u/euguuu)\
**Post date:** [Mars 22, 2021, 5:17 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/19 "2021-03-22T17:17:52Z")

</div>

la doc associé décrit étape par étape chaque page du service , je peux faire une demo au besoin ou donner mes code withings (correspond au oauth2 car je peux les supprimer/changer en 1 clics apres les tests)

je n’ai testé en condition réelle que avec 1 équipement (la balance Body)  
mais en thérorie le service est compatible avec tous les équipements de la marque

le service créé automatiquement les device en fonction de ceux déclarer sur la pf withings, récupère l’historique des mesures et ensuite va faire un poll quotidien pour récupérer les nouvelles mesures

au niveau utilisation des mesures il y a une box similaire à la box device in room mais qui récupère uniquement les feature de category ‘health’

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 23, 2021, 12:25 UTC](https://community.gladysassistant.com/t/v4-dev-service-withings/5415/20 "2021-03-23T00:25:24Z")

</div>

Ok, et comment tu gère le fait que c’est des équipements de santé plus “personnelle” que liés à la maison ?

Ta balance elle renvoie des poids liés à des personnes de ta maison (et non pas lié à des pièces comme la plupart des capteurs jusqu’ici), comment tu as réfléchi ça ?

[Page suivante](https://community.gladysassistant.com/t/v4-dev-service-withings/5415.md?page=2)
