Guide pilier
Plusieurs montres connectées sans données dupliquées : le guide de déduplication multi-wearable
Chaque appareil connecté pense être la seule source de vérité, et il a raison de son propre point de vue. Le problème commence quand cinq sources de vérité écrivent toutes dans Health Connect et qu'aucune ne sait que les autres existent.
En bref
- Health Connect ne déduplique pas : c'est une base de données neutre par source et chaque application écrit de façon indépendante. La logique de déduplication doit se trouver dans l'application qui agrège les données.
- Trois problèmes typiques : pas en double dus à des enregistrements cumulatifs qui se chevauchent, séances de sommeil dupliquées et fréquence cardiaque moyenne contaminée par des contextes différents.
- La bonne stratégie combine trois techniques : winner-takes-all par fenêtre temporelle (fréquence cardiaque), slot-merge de 15 minutes (pas) et clustering avec priorité de source (sommeil).
- Deux choses nécessitent une configuration manuelle : quel appareil vous portez la nuit et la désactivation de Google Fit comme source d'écriture s'il est encore actif.
- FitMesh Sync applique cette déduplication automatiquement et sépare toujours la fréquence cardiaque au repos de la fréquence cardiaque d'entraînement.
Si vous portez plusieurs appareils connectés, votre compteur de pas est presque certainement gonflé. Pas à cause d'un bug : c'est le comportement attendu d'un écosystème conçu pour des appareils uniques, utilisé par quelqu'un qui a compris que des outils différents font mieux des choses différentes. Une Galaxy Watch pour le quotidien, une bague connectée pour le sommeil, une Garmin pour les longues courses, une Suunto pour les sorties en mer ou en montagne : chaque appareil excelle dans son contexte. Mais le tableau de bord doit savoir que les 8 000 pas du matin ne doivent pas être additionnés aux 8 000 pas enregistrés par Garmin lors de la course de l'après-midi sur les mêmes trottoirs.
Pourquoi les données se dupliquent : la cause technique du problème
Health Connect est une base de données locale sur Android. Toute application avec les bonnes autorisations peut écrire des enregistrements de n'importe quel type : pas, fréquence cardiaque, séances de sommeil, entraînements. Health Connect ne sait pas si deux enregistrements représentent la même chose mesurée deux fois : il n'y a pas de champ "source principale" et pas de déduplication automatique. C'est un choix de conception délibéré, pas une limitation technique : le système est neutre vis-à-vis des sources pour ne favoriser aucun fabricant.
Le problème concret : quand vous portez à la fois une Galaxy Watch et une Garmin pendant une course de 10 km, les deux écrivent dans Health Connect. La Galaxy Watch enregistre ses 9 847 pas, la Garmin enregistre ses 10 124 pas (les chiffres divergent parce que les calibrations des capteurs diffèrent). Une application qui lit Health Connect sans logique de déduplication les additionne : résultat, 19 971 pas pour une course de 10 km. C'est le double. Et pour la fréquence cardiaque c'est encore pire : les moyennes sont contaminées par des mesures prises dans des contextes physiques différents.
Trois schémas de duplication les plus fréquents
- Enregistrements cumulatifs additionnés: pour les pas, certaines applications écrivent des enregistrements cumulatifs ("total des pas jusqu'à maintenant") plutôt que des enregistrements intraday. Si Galaxy Watch et Garmin Connect utilisent tous les deux des enregistrements cumulatifs, le total en fin de journée est la somme de deux totaux, pas un total dédupliqué.
- Séances de sommeil qui se chevauchent: Galaxy Ring ou Oura écrit une séance de sommeil de 22h30 à 06h45. Galaxy Watch écrit de 22h35 à 06h40 (même nuit, fenêtres légèrement différentes). Un agrégateur qui ne regroupe pas les séances par cluster temporel affiche deux nuits de sommeil, doublant les heures totales et faussant les moyennes du score de sommeil.
- Fréquence cardiaque moyenne quotidienne de sources mixtes: votre ceinture Polar H10 enregistre 147 bpm comme moyenne d'entraînement. La Galaxy Watch a enregistré 72 bpm comme moyenne au repos l'après-midi. Sans étiqueter les fenêtres temporelles, la moyenne quotidienne devient un nombre physiquement sans signification.
La configuration décrite : quatre appareils connectés, quatre rôles
Pour être concret, je travaille avec cette configuration spécifique : montre connectée quotidienne (Galaxy Watch 7) qui enregistre tout en arrière-plan, bague connectée (Galaxy Ring ou Oura Ring) optimisée pour le suivi du sommeil avec des capteurs supérieurs aux montres connectées, montre GPS de course (Garmin Forerunner) pour les séances de running avec un GPS précis et une analyse avancée du VO2max, montre outdoor/voile (Suunto Race ou Suunto Ocean) pour les sorties en bateau et le trekking où le journal GPS et l'altimètre barométrique sont essentiels. Quatre appareils, quatre contextes d'utilisation, quatre applications qui écrivent dans Health Connect.
| Métrique | Source préférée | Raison | Sources à ignorer |
|---|---|---|---|
| Sommeil (durée, phases, score) | Bague connectée (Oura / Galaxy Ring) | Capteurs PPG plus proches du doigt, moins d'interférence due aux mouvements nocturnes | Galaxy Watch, Garmin (même nuit) |
| Pas quotidiens (hors entraînement) | Galaxy Watch (quand portée) | Toujours au poignet, couvre la journée complète | Garmin, Suunto (pas portés toute la journée) |
| Pas et distance pendant la course | Garmin Forerunner | GPS précis, calibration de cadence spécifique à la course | Galaxy Watch (moins précise sur longues distances) |
| Fréquence cardiaque pendant l'entraînement | Source spécifique de l'entraînement (Garmin pour la course, Suunto pour l'outdoor) | Capteurs optiques de l'appareil conçu pour ce contexte | Galaxy Watch (en arrière-plan pendant la même fenêtre horaire) |
| HRV (variabilité de la fréquence cardiaque) | Bague connectée (mesure nocturne) | Mesuré au repos profond, le contexte le plus fiable pour la HRV | Galaxy Watch (mesure diurne moins standardisée) |
| Journal GPS et altimétrie (outdoor/voile) | Suunto | Altimètre barométrique, GPS marin, enregistrement de tracés longue durée | Galaxy Watch, Garmin (contexte non spécifique à l'outdoor) |
Comment fonctionne la déduplication : trois stratégies concrètes
1. Winner-takes-all par source et fenêtre temporelle
Pour la fréquence cardiaque intraday et les données d'entraînement, la méthode la plus fiable consiste à définir une priorité de source pour chaque fenêtre temporelle. Si Garmin a enregistré des données de fréquence cardiaque entre 17h30 et 18h45 (durée de la course), tout tableau de bord sérieux utilise ces données et ignore celles enregistrées par la Galaxy Watch dans la même fenêtre. La Galaxy Watch redevient "gagnante" à partir de 18h46, quand Garmin n'enregistre plus de données actives.
En pratique, cela s'implémente en lisant les enregistrements de type ExerciseSession depuis Health Connect : chaque séance d'entraînement a un startTime et un endTime. La logique de dédup utilise ces fenêtres pour décider quelle source a la priorité pour les métriques dans cette fenêtre temporelle.
2. Fusion au niveau des champs pour les métriques quotidiennes agrégées
Pour le total de pas quotidiens, le winner-takes-all n'est pas la bonne solution : la Galaxy Watch collecte des pas de 07h00 à 17h29, la Garmin collecte des pas de 17h30 à 18h45. Les additionner est correct, ce n'est pas une duplication. Le problème se pose quand les deux ont enregistré des pas dans la même fenêtre temporelle.
La fusion au niveau des champs fonctionne ainsi : divisez la journée en créneaux de 15 minutes. Pour chaque créneau, conservez uniquement l'enregistrement avec la valeur la plus élevée parmi toutes les sources (approche conservatrice : suppose que la valeur la plus haute est la plus précise). Additionnez les maximums par créneau : vous obtenez un total quotidien dédupliqué. Cette approche fonctionne parce que deux appareils enregistrant les mêmes pas produisent des valeurs similaires (la plus haute est une estimation de la vérité), tandis que deux appareils dans des contextes différents produisent des valeurs additives.
3. Regroupement temporel pour les séances de sommeil
Pour le sommeil, le problème est différent : les séances d'Oura Ring et de Galaxy Watch pour la même nuit se chevauchent presque entièrement, mais aucune n'est fausse. Elles mesurent simplement la même chose avec des capteurs différents. La stratégie est le clustering : si deux séances de sommeil se chevauchent à plus de 80 % de leur durée, elles sont considérées comme la même nuit. La priorité de source est ensuite appliquée : la bague connectée gagne parce que les capteurs optiques au doigt sont statistiquement plus précis pour les phases du sommeil que les capteurs au poignet.
Ce que vous devez configurer : les trois paramètres critiques
Tout ne peut pas être automatisé. Il y a trois configurations qui nécessitent une saisie de l'utilisateur parce qu'elles dépendent d'habitudes personnelles qu'aucun algorithme ne peut inférer.
- Définissez quel appareil est votre source principale pour le sommeil. Si vous avez à la fois une Galaxy Watch et une bague connectée, vous devez le préciser explicitement. FitMesh Sync vous le demande lors de l'onboarding ("Quel appareil portez-vous la nuit ?"). Si vous ne le précisez pas, la Galaxy Watch est utilisée par défaut comme choix le plus courant, mais c'est un choix arbitraire.
- Désactivez Google Fit comme source d'écriture s'il est encore actif. Allez dans Health Connect > Gestion des autorisations > Google Fit et vérifiez qu'il n'a QUE la permission de lecture, pas d'écriture. Google Fit obsolète qui écrit encore dans Health Connect est la première cause de pas triplés dans les configurations multi-wearable.
- Précisez les périodes d'activité pour les appareils spécifiques. Si vous portez la Garmin uniquement pendant les courses (jamais au repos), le système peut ignorer ses données de fréquence cardiaque en dehors des fenêtres d'entraînement. Sans cette information, la fréquence cardiaque au repos mesurée par Garmin pendant une activité lente peut contaminer la moyenne au repos.
Le cas Suunto : des données qui ne passent pas par Health Connect
Suunto est l'exception dans ce scénario. Contrairement à Garmin (qui écrit nativement dans Health Connect depuis Garmin Connect Android), l'application Suunto sur Android n'a pas d'intégration native avec Health Connect pour tous les types de données. Les traces GPS et les données d'entraînement de Suunto sont accessibles via l'API Suunto Sport Engine, pas via Health Connect.
Cela signifie qu'intégrer Suunto dans un tableau de bord multi-source nécessite un connecteur séparé qui lit depuis l'API Suunto Sport Engine avec authentification OAuth. FitMesh Sync prend en charge cette intégration séparément : allez dans Paramètres, section Appareils, et ajoutez Suunto comme source OAuth. Une fois connectées, les données Suunto sont fusionnées dans le flux Health Connect avec la même logique de déduplication.
Fréquence cardiaque moyenne "contaminée" : un exemple réel
C'est le problème que je trouve le moins évident mais le plus dommageable pour ceux qui utilisent les données pour suivre leur santé dans le temps. Scénario : vous courez pendant 45 minutes avec une ceinture Polar H10 connectée à Garmin (données d'entraînement fiables, moyenne 148 bpm). Pendant ce temps, la Galaxy Watch enregistre votre fréquence cardiaque toutes les 10 minutes en arrière-plan, voyant des valeurs entre 145 et 155 bpm (correct, vous courez). Après la course, vous vous asseyez pendant deux heures avec une fréquence cardiaque de 62-68 bpm. La Galaxy Watch enregistre toujours.
Un tableau de bord qui calcule la "fréquence cardiaque moyenne quotidienne" sans distinguer les sources prend toutes ces données, les additionne et divise. Le résultat est un nombre qui ne représente ni la fréquence cardiaque au repos ni la fréquence cardiaque d'entraînement : c'est la moyenne de choses qui ne devraient pas être moyennées ensemble. C'est pourquoi FitMesh Sync expose séparément la fréquence cardiaque au repos (calculée en excluant les fenêtres d'entraînement) et la fréquence cardiaque d'entraînement (calculée par type d'activité), plutôt que d'afficher une seule moyenne quotidienne.
Ce que FitMesh Sync gère automatiquement
- Détection automatique des séances d'entraînement: lit les enregistrements ExerciseSession depuis Health Connect et construit la carte des fenêtres actives pour chaque source.
- Slot-merge des pas en 15 minutes: prend le maximum par créneau sur toutes les sources, élimine les chevauchements sans perdre les données additives (Galaxy Watch le matin + Garmin pour la course de l'après-midi).
- Regroupement des séances de sommeil: regroupe les séances se chevauchant à plus de 80 % et applique la priorité bague connectée > montre connectée pour les phases du sommeil.
- Séparation fréquence cardiaque au repos vs entraînement: les fenêtres d'entraînement sont exclues du calcul de la fréquence cardiaque au repos.
- Déduplication des enregistrements Samsung dupliqués: filtre les enregistrements avec le même horodatage et source_package répété (le bug Samsung connu d'écriture double).
Limites honnêtes : ce qui ne peut pas encore être automatisé
Je ne veux pas surestimer ce qu'un tableau de bord peut faire seul. Il y a des scénarios qui nécessitent encore une intervention manuelle ou qui produisent des résultats approximatifs :
- Entraînements de natation avec Suunto et Galaxy Watch qui se chevauchent: Galaxy Watch reconnaît la natation comme une ExerciseSession (type SWIMMING), Suunto enregistre via l'API Sport Engine. Si les horodatages se chevauchent partiellement (ex : changement de couloir entre les longueurs), la fusion est conservatrice mais pas parfaite.
- VO2max de sources différentes: Garmin calcule son VO2max avec un algorithme propriétaire (FirstBeat), Galaxy Watch utilise une autre méthode. Les estimations ne sont pas comparables : FitMesh Sync affiche actuellement les deux métriques séparément, sans les fusionner.
- HRV de ceinture pectorale pendant la journée vs bague la nuit: si vous utilisez une ceinture Polar H10 pour la HRV matinale et la bague pour la HRV nocturne, les valeurs sont correctes dans leurs contextes respectifs mais pas directement comparables. C'est une limite de la biométrie, pas du logiciel : la HRV varie selon l'heure de la journée et la posture corporelle.
En résumé
- Health Connect ne déduplique pas : c'est une base de données neutre par source et chaque application écrit de façon indépendante. La logique de déduplication doit se trouver dans l'application qui agrège les données.
- Les trois principaux problèmes dans les configurations multi-wearable sont : des pas en double dus à des enregistrements cumulatifs qui se chevauchent, des séances de sommeil dupliquées provenant d'appareils mesurant la même nuit, et une fréquence cardiaque moyenne contaminée par des mesures dans des contextes physiques différents.
- La bonne stratégie combine trois techniques complémentaires : winner-takes-all par fenêtre temporelle (fréquence cardiaque intraday), slot-merge de 15 minutes (pas) et clustering temporel avec priorité de source (sommeil).
- Deux choses nécessitent une configuration manuelle : quel appareil vous portez la nuit et la désactivation de Google Fit comme source d'écriture s'il est encore actif.
- Suunto ne passe pas par Health Connect : un connecteur OAuth séparé est nécessaire. Les données sont ensuite unifiées avec la même logique de dédup.
- La fréquence cardiaque moyenne quotidienne sans distinction de contexte est un nombre physiquement sans signification : séparez toujours la fréquence cardiaque au repos de la fréquence cardiaque d'entraînement.
Questions fréquentes
Puis-je utiliser Galaxy Watch et Garmin ensemble sans données dupliquées ?+
Oui, mais cela nécessite un agrégateur qui gère la déduplication. Galaxy Watch et Garmin écrivent tous les deux dans Health Connect, donc si vous ouvrez Health Connect vous verrez des enregistrements des deux pour les mêmes métriques. Une application comme FitMesh Sync utilise la logique winner-takes-all pour les fenêtres d'entraînement (Garmin gagne pendant la course) et le slot-merge de 15 minutes pour les pas quotidiens (aucune source n'est perdue, mais les doublons sont éliminés).
L'Oura Ring se synchronise-t-il avec Health Connect ?+
Oui, depuis 2024 l'Oura Ring enregistre les données de sommeil, de fréquence cardiaque et d'activité dans Health Connect sur Android. Les données de sommeil d'Oura sont particulièrement détaillées (phases REM, léger et profond avec horodatage granulaire) et sont enregistrées comme des enregistrements SleepSession. Si vous avez aussi la Galaxy Watch active la nuit, vous verrez deux enregistrements SleepSession pour la même nuit : un agrégateur qui ne regroupe pas produira des heures de sommeil doublées.
Comment les pas sont-ils dédupliqués quand je porte plusieurs appareils connectés en même temps ?+
La méthode la plus robuste est le slot-merge par fenêtre temporelle. La journée est divisée en intervalles (typiquement 5-15 minutes). Pour chaque intervalle, la valeur maximale parmi toutes les sources est prise. Cela fonctionne parce que deux appareils mesurant la même marche produisent des valeurs similaires (le maximum est une estimation de la vérité), tandis que deux appareils à des moments différents produisent des valeurs correctement additives. Le résultat est un total quotidien qui ne compte pas deux fois les mêmes marches, mais inclut correctement la marche matinale avec la Galaxy Watch et la course de l'après-midi avec Garmin.
Suunto écrit-il dans Health Connect ?+
Pas complètement. Contrairement à Garmin qui dispose d'une intégration native avec Health Connect depuis son application Android, Suunto expose les données principalement via l'API Suunto Sport Engine avec authentification OAuth. Cela signifie qu'intégrer Suunto dans un tableau de bord multi-source nécessite un connecteur séparé lisant depuis l'API Suunto. FitMesh Sync inclut ce connecteur : une fois Suunto ajouté comme source OAuth, les données sont fusionnées dans le flux principal avec la même logique de déduplication.
Pourquoi ma fréquence cardiaque moyenne semble-t-elle trop haute ou trop basse avec plusieurs appareils connectés ?+
C'est presque certainement un problème de contextes mélangés. Si votre tableau de bord calcule la fréquence cardiaque moyenne quotidienne en additionnant tous les enregistrements de toutes les sources, il finit par calculer la moyenne de la fréquence cardiaque au repos avec la fréquence cardiaque d'entraînement. La solution est de séparer les contextes : fréquence cardiaque au repos (calculée uniquement sur les heures en dehors des fenêtres d'entraînement) et fréquence cardiaque moyenne d'entraînement (calculée uniquement pendant les séances d'exercice, par type d'activité). Une seule moyenne quotidienne multi-source n'a pas de signification physique.
Galaxy Ring et Galaxy Watch dupliquent-ils les données de sommeil ?+
Oui, si vous portez les deux la nuit. Galaxy Ring et Galaxy Watch écrivent tous les deux des séances de sommeil dans Health Connect pour la même nuit. Samsung Health essaie de gérer cela en interne (Galaxy Ring a la priorité s'il est détecté comme la source nocturne active), mais ce comportement n'est pas garanti sur tous les appareils et versions de One UI. Si vous utilisez un agrégateur tiers comme FitMesh Sync, la logique de clustering du sommeil résout le problème indépendamment de Samsung Health.
Avis légal
FitMesh Sync est un produit indépendant. Samsung, Garmin, Suunto, Oura, Polar, Google, Apple sont des marques de leurs propriétaires respectifs. Cet article n'implique aucune affiliation ni parrainage.
Avis de santé
Les informations contenues dans cet article sont fournies à titre informatif uniquement et ne remplacent pas l'avis de votre médecin, pharmacien ou professionnel de santé. FitMesh Sync est une application fitness et bien-être, pas un dispositif médical, et ne pose pas de diagnostic ni ne traite de pathologie. En cas de symptômes, de questions ou de décisions thérapeutiques, consultez toujours votre médecin.
Rédigé par
Matteo Pizzi
Founder & Solo Dev, FitMesh Sync · Fosforonero
Développeur de logiciels italien. J'ai créé FitMesh Sync pour combler le fossé entre ma montre connectée et un vrai tableau de bord personnel. Confidentialité avant tout, indie, serveurs UE.
En savoir plus sur le projetContinuer la lecture
Nouveautés
Vous savez maintenant de quel appareil provient chaque donnée
Montre, bague connectée et autres appareils sur un seul écran, avec une indication claire de qui a mesuré quoi. Une vue unique, sans double comptage.
Guide
La meilleure application de synchronisation de données de santé sur Android: guide 2026
Health Connect est la prise dans le mur. Une application qui s'y connecte directement lit tout ce que votre wearable y a écrit. Une application qui le contourne a besoin de son propre câble pour chaque appareil, et ce câble casse en permanence.
Guide
Comment fonctionne Health Connect: guide complet pour Android 2026
Health Connect n'est pas qu'une simple application: c'est la couche d'échange de données qui permet à toutes les applications de santé Android de communiquer. Voici ce qu'il fait vraiment, comment il gère vos autorisations et ce qui se passe quand quelque chose ne fonctionne pas.