Intégration domotique Fitbit, gratuite et open source

Pas, sommeil, cœur au repos et batterie de votre montre Fitbit, via Google Health.
Amène dans Gladys les données de votre montre ou bracelet Fitbit (et d'une Google Pixel Watch utilisée avec Fitbit) : pas, distance, étages, calories et minutes actives du jour, fréquence cardiaque au repos, sommeil de la nuit, poids et masse grasse quand vous les saisissez, batterie et dernière synchronisation de la montre. Deux déclencheurs de scène lancent vos routines : réveillé et objectif de pas atteint. Un widget du tableau de bord résume le tout.
Lecture seule : l'intégration n'écrit jamais rien dans votre compte Google.
L'API Web Fitbit (Fitbit Web API) est en cours de retrait. Google l'a remplacée par l'API Google Health (Google Health API) : le support de la Fitbit Web API a pris fin le 30 septembre 2026, Google a annoncé son arrêt pour fin octobre 2026, et il n'est plus possible de créer une application développeur Fitbit. Cette intégration lit donc vos données Fitbit par la Google Health API, depuis le compte Google auquel votre Fitbit est lié — comme l'intégration « Google Health » de Home Assistant, qui a remplacé son intégration Fitbit.
Développée sans le matériel : l'intégration a été écrite et testée sur les réponses documentées de la Google Health API, sans montre ni compte Fitbit. Vos retours sont bienvenus sur le forum Gladys ou sur GitHub.
Cette intégration n'est affiliée ni à Fitbit ni à Google.
Prérequis
- Gladys 5.1.0 ou plus récent.
- Une montre ou un bracelet Fitbit dont le compte Fitbit a été migré vers un compte Google (l'application Fitbit le propose ; c'est obligatoire pour la Google Health API).
- Un projet Google Cloud à vous, gratuit : l'intégration utilise votre client OAuth, vos données vont de Google à votre Gladys uniquement.
- L'application Fitbit sur votre téléphone, synchronisée : la montre n'envoie ses données à Google qu'en se synchronisant avec le téléphone.
Configuration
La mise en place prend une dizaine de minutes, une seule fois. Le bouton
Connecter de l'écran Configuration affiche l'URI de redirection à
déclarer chez Google : https://my.gladysassistant.com/redirect/oauth (une
page hébergée par Gladys qui vous renvoie vers votre propre Gladys ; les
jetons n'y passent jamais).
1. Créer le projet Google Cloud
- Ouvrez la console Google Cloud avec n'importe quel compte Google et créez un projet (par exemple « Gladys »).
- Dans API et services → Bibliothèque, cherchez Google Health API et cliquez sur Activer.
2. Configurer l'écran de consentement OAuth
- Dans Google Auth Platform (anciennement « Écran de consentement OAuth »), cliquez sur Commencer : donnez un nom d'application (« Gladys »), votre adresse e-mail, choisissez l'audience Externe et acceptez les conditions. Laissez vides les champs facultatifs de marque (logo, domaines) : ils déclencheraient la validation par Google.
- Dans Audience, ajoutez votre propre compte Google (celui de votre Fitbit) comme utilisateur test, puis cliquez sur Publier l'application pour qu'elle soit En production. Une application restée « En test » perd son autorisation tous les 7 jours.
3. Créer le client OAuth
- Dans Clients (ou Identifiants), créez un ID client OAuth de type Application Web.
- Sous URI de redirection autorisés, ajoutez exactement
https://my.gladysassistant.com/redirect/oauth. Si vous avez choisi, dans Gladys, d'utiliser l'adresse de votre instance (Gladys servi en HTTPS), déclarez plutôt cette adresse. - Copiez l'ID client et le code secret du client.
4. Connecter Gladys
- Dans Gladys, ouvrez Intégrations → Fitbit → Configuration, collez l'ID client et le secret, puis Enregistrez.
- Cliquez sur Connecter : Google vous demande de choisir votre compte. L'application étant la vôtre et non validée par Google, il affiche « Google n'a pas validé cette application » : cliquez sur Paramètres avancés, puis Accéder à Gladys.
- Cochez toutes les autorisations (activité, mesures de santé, sommeil, paramètres) et confirmez. Une autorisation non cochée laisse ses fonctionnalités vides.
- L'appareil Fitbit apparaît dans l'onglet Découverte : ajoutez-le.
Autres réglages : l'objectif de pas quotidien (pour le déclencheur et le widget), l'intervalle de rafraîchissement (15 minutes par défaut) et la langue des noms de fonctionnalités (français par défaut, à choisir avant d'ajouter l'appareil : Gladys garde les noms donnés à la création).
L'appareil
Un appareil Fitbit par compte Google, en lecture seule :
| Fonctionnalité | Contenu |
|---|---|
| Pas du jour | Pas depuis minuit (dans le fuseau horaire de votre compte Fitbit) |
| Distance du jour | Kilomètres |
| Étages du jour | Étages montés |
| Calories brûlées (kcal) | Total du jour, métabolisme de base compris |
| Minutes actives | Minutes modérément et très actives, comme dans l'application Fitbit |
| Fréquence cardiaque au repos (bpm) | La dernière valeur quotidienne calculée par Fitbit |
| Durée du sommeil | Heures endormi la nuit dernière (siestes exclues) |
| Efficacité du sommeil | Temps endormi sur le temps entre coucher et lever, en % |
| Heure du coucher / du lever | Texte, « 23:12 » et « 07:05 », à l'heure du lieu où vous avez dormi |
| Poids (kg) / Masse grasse | La dernière saisie (balance ou saisie manuelle), lue une fois par heure |
| Batterie de la montre | % du bracelet synchronisé en dernier (une balance est ignorée) |
| Dernière synchronisation | Texte, date et heure de la dernière synchronisation montre → téléphone |
Une valeur que Google ne donne pas (pas de poids saisi, autorisation refusée) reste vide ; la dernière valeur connue n'est jamais remplacée par 0. Les valeurs qui ne changent pas sont renvoyées toutes les 6 heures pour rester « récentes » dans Gladys.
Widget
Résumé Fitbit : trois tuiles (pas, heures de sommeil, fréquence cardiaque au repos) et une liste : progression vers l'objectif de pas, coucher → lever, efficacité du sommeil, montre et batterie (orange sous 20 %), dernière synchronisation (orange au-delà de 24 heures). Quand Google ne peut pas être lu, une ligne dit pourquoi et les derniers chiffres restent. Le widget fonctionne avant même l'ajout de l'appareil.
Déclencheurs de scène
- Fitbit : réveillé (
woke_up) : une nuit de sommeil s'est terminée. Google ne la connaît qu'une fois la montre synchronisée et la nuit calculée : le déclencheur arrive donc après votre lever — de quelques minutes à une heure, selon le moment où le téléphone se synchronise. Variables : heure du lever, heure du coucher, heures de sommeil, efficacité du sommeil. Une fois par nuit, jamais pour une sieste, jamais pour une nuit découverte plus de 12 heures après sa fin. - Fitbit : objectif de pas atteint (
step_goal_reached) : les pas du jour ont atteint l'objectif de la configuration. Une fois par jour. Variables : pas, objectif.
La première lecture après l'installation enregistre la situation sans rien déclencher : la nuit dernière n'est pas une nouvelle.
Action de configuration
Rafraîchir maintenant lit Google Health tout de suite et dit ce qui a été lu (pas du jour, dernière synchronisation) ou pourquoi ça a échoué.
Exemples de scènes
- Routine du matin : déclencheur « Fitbit : réveillé » → ouvrir les volets de la chambre, allumer la cuisine, envoyer « Bonjour ! {{heures de sommeil}} h de sommeil » sur Telegram.
- Nuit courte : déclencheur « Fitbit : réveillé », condition « Durée du sommeil inférieure à 6 » → repousser les appareils bruyants à l'après-midi.
- Félicitations : déclencheur « Fitbit : objectif de pas atteint » → une notification et un flash de couleur de la lampe du salon.
- Rappel batterie : chaque soir à 21 h, condition « Batterie de la montre inférieure à 20 » → « Pense à charger ta montre avant la nuit ».
Dépannage
- « Saisissez l'ID client et le secret… » : remplissez les deux champs et enregistrez avant de cliquer sur Connecter.
- Google affiche « redirect_uri_mismatch » : l'URI de redirection autorisée du client OAuth doit être exactement celle affichée sous le bouton Connecter.
- « L'API Google Health n'est pas activée… » : activez-la dans la bibliothèque de votre projet, puis patientez quelques minutes.
- « Ce compte Google n'a pas de données Fitbit… » : migrez votre compte Fitbit vers votre compte Google dans l'application Fitbit, puis connectez ce compte Google.
- « Google a retiré l'autorisation… » chaque semaine : l'application de votre projet est encore « En test » : publiez-la en production, puis cliquez à nouveau sur Connecter.
- Des chiffres qui ne bougent pas : regardez « Dernière synchronisation » — la montre doit se synchroniser avec l'application Fitbit du téléphone (Bluetooth activé, application autorisée en arrière-plan).
- Des fonctionnalités vides : une autorisation est restée décochée sur l'écran de consentement de Google. Cliquez à nouveau sur Connecter et cochez tout.
- Journaux détaillés : démarrez l'intégration avec
LOG_LEVEL=debug. Ils ne contiennent jamais vos données de santé ni vos jetons.
Limites
- Pas de temps réel : Google Health a ce que la montre a envoyé à sa dernière synchronisation ; l'intégration le lit toutes les 15 minutes par défaut (30 min ou 1 h possibles).
- Quota : Google fixe le quota de l'API par projet Cloud (voir « Quotas » dans la console). Une lecture coûte 8 requêtes (2 de plus une fois par heure pour le poids et la masse grasse), environ 35 requêtes par heure à 15 minutes : loin des limites. Google peut répondre « quota dépassé » (429) : l'intégration réessaie au rafraîchissement suivant.
- Un seul compte Google par installation de l'intégration.
- L'objectif de pas de l'application Fitbit n'est pas exposé par l'API : réglez le vôtre dans la configuration.
- Pas de fréquence cardiaque minute par minute, pas de phases de sommeil, pas de SpO2 : gardés pour une version ultérieure.
- Application Google non validée : convient à un usage personnel (jusqu'à 100 utilisateurs) ; Google affiche un avertissement sur l'écran de consentement.
Confidentialité et données
- L'intégration ne parle qu'à Google (
oauth2.googleapis.com,health.googleapis.com), avec votre propre client OAuth. - Les jetons sont gardés dans
/data/fitbit.json, lisible par l'intégration seule ; le secret du client reste dans la configuration de Gladys. - Les données de santé vont dans Gladys (états, historique, widget) et nulle part ailleurs, et jamais dans les journaux.
Paramètres de configuration
Voici les paramètres demandés par Fitbit dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Avant de commencer | section | Non | Google a remplacé l’API Web Fitbit par l’API Google Health : l’intégration lit vos données Fitbit depuis votre compte Google. Dans la console Google Cloud, créez un projet, activez l’API Google Health, configurez l’écran de consentement OAuth (Externe, publié « En production ») et créez un client OAuth de type « Application Web » dont l’URI de redirection autorisée est celle affichée sous le bouton Connecter. Saisissez ensuite son ID client et son secret ici, enregistrez et cliquez sur Connecter. La documentation détaille chaque étape. |
| ID client OAuth | string | Oui | ID client du client OAuth créé dans votre projet Google Cloud. |
| Secret du client OAuth | secret | Oui | Affiché à côté de l’ID client dans la console Google Cloud. |
| Compte Google | oauth2 | Non | Enregistrez d’abord l’ID client et le secret, puis connectez le compte Google lié à votre Fitbit. Accès en lecture seule. |
| Objectif de pas quotidien | number | Non | Utilisé par le déclencheur de scène « Objectif de pas atteint » et par le widget. |
| Intervalle de rafraîchissement | select | Non | Fréquence de lecture de Google Health. La montre n’envoie ses données qu’à la synchronisation avec le téléphone. |
| Langue des noms de fonctionnalités | select | Non | Noms donnés aux fonctionnalités quand l’appareil est ajouté à Gladys. |
Comment installer Fitbit dans Gladys
- Dans Gladys, ouvrez Intégrations : Fitbit apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-fitbit: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). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-fitbit.
Fitbit 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
Fitbit 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 guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation