Guia pilar
Vários smartwatches juntos sem dados duplicados: guia de deduplicação multi-wearable
Cada wearable acredita ser a única fonte da verdade, e está certo do seu ponto de vista. O problema começa quando cinco fontes da verdade escrevem todas no Health Connect e nenhuma sabe que as outras existem.
Resumo
- O Health Connect não deduplica: é um banco de dados neutro por fonte e cada app escreve de forma independente. A lógica de deduplicação deve estar no app que agrega os dados.
- Três problemas típicos: passos duplicados por registros cumulativos sobrepostos, sessões de sono duplicadas e frequência cardíaca média contaminada por contextos diferentes.
- A estratégia correta combina três técnicas: winner-takes-all por janela temporal (frequência cardíaca), slot-merge de 15 minutos (passos) e clustering com prioridade de fonte (sono).
- Duas coisas exigem configuração manual: qual dispositivo você usa à noite e desativar o Google Fit como fonte de escrita, se ainda estiver ativo.
- O FitMesh Sync aplica essa deduplicação automaticamente e sempre separa a frequência cardíaca em repouso da frequência cardíaca durante o treino.
Se você usa mais de um wearable, a sua contagem de passos quase certamente está inflada. Não por causa de um bug: é o comportamento esperado de um ecossistema projetado para dispositivos únicos, usado por alguém que entendeu que ferramentas diferentes fazem coisas diferentes melhor. Um Galaxy Watch para o dia a dia, um anel inteligente para o sono, um Garmin para corridas longas, um Suunto para saídas de barco ou na montanha: cada dispositivo se destaca no seu contexto. Mas o painel precisa saber que os 8.000 passos da manhã não devem ser somados aos 8.000 passos que o Garmin registrou durante a corrida da tarde pelas mesmas calçadas.
Por que os dados se duplicam: a raiz técnica do problema
O Health Connect é um banco de dados local no Android. Qualquer app com as permissões corretas pode gravar registros de qualquer tipo: passos, frequência cardíaca, sessões de sono, treinos. O Health Connect não sabe se dois registros representam a mesma coisa medida duas vezes: não há campo "fonte primária" e não há deduplicação automática. Esta é uma escolha de design deliberada, não uma limitação técnica: o sistema é neutro em relação às fontes para não favorecer nenhum fabricante.
O problema concreto: quando você usa Galaxy Watch e Garmin durante uma corrida de 10 km, ambos escrevem no Health Connect. O Galaxy Watch registra seus 9.847 passos, o Garmin registra seus 10.124 passos (os números divergem porque as calibrações dos sensores são diferentes). Um app que lê o Health Connect sem lógica de deduplicação os soma: resultado, 19.971 passos para uma corrida de 10 km. Isso é o dobro. E para a frequência cardíaca é pior: as médias ficam contaminadas por medições feitas em contextos físicos diferentes.
Três padrões de duplicação que aparecem com mais frequência
- Registros cumulativos somados: para passos, alguns apps gravam registros cumulativos ("passos totais do dia até agora") em vez de registros intradiários. Se tanto o Galaxy Watch quanto o Garmin Connect usam registros cumulativos, o total ao final do dia é a soma de dois totais, não um total deduplicado.
- Sessões de sono sobrepostas: Galaxy Ring ou Oura gravam uma sessão de sono das 22:30 às 06:45. O Galaxy Watch grava das 22:35 às 06:40 (mesma noite, janelas ligeiramente diferentes). Um agregador que não agrupa temporalmente as sessões mostra duas noites de sono, dobrando as horas totais e distorcendo as médias do score de sono.
- Frequência cardíaca média diária de fontes mistas: sua cinta Polar H10 registra 147 bpm como média do treino. O Galaxy Watch registrou 72 bpm como média em repouso da tarde. Sem marcar as janelas temporais, a média diária torna-se um número sem sentido físico.
O cenário que descrevo: quatro wearables, quatro funções
Para ser concreto, trabalho com este cenário específico: smartwatch do dia a dia (Galaxy Watch 7) que registra tudo em segundo plano, anel inteligente (Galaxy Ring ou Oura Ring) otimizado para monitoramento do sono com sensores superiores em comparação aos smartwatches, relógio GPS de corrida (Garmin Forerunner) para sessões de corrida com GPS preciso e análise avançada de VO2max, relógio outdoor/vela (Suunto Race ou Suunto Ocean) para saídas de barco e trekking onde o registro GPS e o altímetro barométrico são essenciais. Quatro dispositivos, quatro contextos de uso, quatro apps que escrevem no Health Connect.
| Métrica | Fonte preferida | Motivo | Fontes a ignorar |
|---|---|---|---|
| Sono (duração, fases, score) | Anel inteligente (Oura / Galaxy Ring) | Sensores PPG mais próximos do dedo, menos interferência de movimentos noturnos | Galaxy Watch, Garmin (mesma noite) |
| Passos diários (fora do treino) | Galaxy Watch (quando usado) | Sempre no pulso, cobre o dia completo | Garmin, Suunto (não usados o dia inteiro) |
| Passos e distância durante a corrida | Garmin Forerunner | GPS preciso, calibração de cadência específica para corrida | Galaxy Watch (menos preciso em longas distâncias) |
| Frequência cardíaca durante o treino | Fonte específica do treino (Garmin para corrida, Suunto para outdoor) | Sensores ópticos do dispositivo projetado para aquele contexto | Galaxy Watch (em segundo plano durante a mesma janela de tempo) |
| HRV (variabilidade da frequência cardíaca) | Anel inteligente (medição noturna) | Medido em repouso profundo, o contexto mais confiável para HRV | Galaxy Watch (medição diurna menos padronizada) |
| Log GPS e altimetria (outdoor/vela) | Suunto | Altímetro barométrico, GPS marítimo, registro de trilhas de longa duração | Galaxy Watch, Garmin (contexto não específico para outdoor) |
Como funciona a deduplicação: três estratégias concretas
1. Winner-takes-all por fonte e janela temporal
Para a frequência cardíaca intraday e os dados de treino, o método mais confiável é definir uma prioridade de fonte para cada janela temporal. Se o Garmin registrou dados de frequência cardíaca entre 17:30 e 18:45 (duração da corrida), qualquer painel sério usa esses dados e ignora os dados gravados pelo Galaxy Watch na mesma janela. O Galaxy Watch volta a ser "vencedor" a partir das 18:46, quando o Garmin não está mais gravando registros ativos.
Na prática, isso é implementado lendo os registros do tipo ExerciseSession do Health Connect: cada sessão de treino tem um startTime e endTime. A lógica de dedup usa essas janelas para decidir qual fonte tem prioridade para as métricas dentro daquela janela temporal.
2. Merge field-level para métricas diárias agregadas
Para o total de passos diários, a estratégia winner-takes-all não é a solução certa: o Galaxy Watch coleta passos das 07:00 às 17:29, o Garmin coleta passos das 17:30 às 18:45. Somar é correto, não é duplicação. O problema ocorre quando ambos registraram passos na mesma janela temporal.
O merge field-level funciona assim: divida o dia em slots de 15 minutos. Para cada slot, mantenha apenas o registro com o valor mais alto entre todas as fontes (conservador, assume que o valor mais alto é o mais preciso). Some os máximos por slot: você obtém um total diário deduplicado. Essa abordagem funciona porque dois dispositivos que registram os mesmos passos produzem valores similares (o mais alto é uma estimativa da verdade), enquanto dois dispositivos em contextos diferentes produzem valores aditivos.
3. Clustering temporal para sessões de sono
Para o sono, o problema é diferente: as sessões do Oura Ring e do Galaxy Watch para a mesma noite se sobrepõem quase completamente, mas nenhuma está errada. Elas simplesmente medem a mesma coisa com sensores diferentes. A estratégia é o clustering: se duas sessões de sono se sobrepõem em mais de 80% da duração, são tratadas como a mesma noite. Em seguida, aplica-se a prioridade de fonte: o anel inteligente vence porque os sensores ópticos no dedo são estatisticamente mais precisos para as fases do sono do que os sensores de pulso.
O que você precisa configurar: as três configurações críticas
Nem tudo pode ser automatizado. Há três configurações que exigem input do usuário porque dependem de hábitos pessoais que nenhum algoritmo pode inferir.
- Defina qual dispositivo é sua fonte principal de sono. Se você tem Galaxy Watch e anel inteligente, precisa informar isso explicitamente. O FitMesh Sync pergunta durante o onboarding ("Qual dispositivo você usa à noite?"). Se não especificar, usa o Galaxy Watch como padrão por ser o mais comum, mas essa é uma escolha arbitrária.
- Desative o Google Fit como fonte de escrita, se ainda estiver ativo. Vá em Health Connect > Gerenciamento de permissões > Google Fit e verifique que ele tenha APENAS permissão de leitura, não de escrita. O Google Fit desativado que ainda grava no Health Connect é a principal causa de passos triplicados em setups multi-wearable.
- Especifique os períodos de atividade para dispositivos específicos. Se você usa o Garmin apenas durante as corridas (nunca em repouso), o sistema pode ignorar seus dados de frequência cardíaca fora das janelas de treino. Sem essa informação, a frequência cardíaca em repouso medida pelo Garmin durante uma atividade lenta pode contaminar a média de repouso.
O caso Suunto: dados que não passam pelo Health Connect
O Suunto é a exceção neste cenário. Ao contrário do Garmin (que grava nativamente no Health Connect a partir do Garmin Connect Android), o app Suunto no Android não tem integração nativa com o Health Connect para todos os tipos de dados. Os rastreamentos GPS e os dados de treino do Suunto são acessíveis via API Suunto Sport Engine, não via Health Connect.
Isso significa que integrar o Suunto a um painel multi-fonte requer um conector separado que lê da API Suunto Sport Engine com autenticação OAuth. O FitMesh Sync suporta essa integração separadamente: vá em Configurações, seção Dispositivos, e adicione o Suunto como fonte OAuth. Uma vez conectado, os dados do Suunto são mesclados ao fluxo do Health Connect com a mesma lógica de deduplicação.
Frequência cardíaca média "contaminada": um exemplo real
Este é o problema que acho menos óbvio, mas mais prejudicial para quem usa os dados para monitorar o bem-estar ao longo do tempo. Cenário: você corre por 45 minutos com uma cinta Polar H10 conectada ao Garmin (dados confiáveis de treino, média de 148 bpm). Enquanto isso, o Galaxy Watch registra sua frequência cardíaca a cada 10 minutos em segundo plano, vendo valores entre 145 e 155 bpm (correto, você está correndo). Após a corrida, você fica sentado por duas horas com frequência cardíaca de 62-68 bpm. O Galaxy Watch continua registrando.
Um painel que calcula a "frequência cardíaca média diária" sem distinguir as fontes pega todos esses dados, os soma e divide. O resultado é um número que não representa nem a frequência em repouso nem a frequência durante o treino: é a média de coisas que não deveriam ser mediadas juntas. Por isso, o FitMesh Sync exibe separadamente a frequência cardíaca em repouso (calculada excluindo as janelas de treino) e a frequência cardíaca de treino (calculada por tipo de atividade), em vez de mostrar uma única média diária.
O que o FitMesh Sync faz automaticamente
- Detecção automática de sessões de treino: lê os registros ExerciseSession do Health Connect e constrói o mapa de janelas ativas para cada fonte.
- Slot-merge de passos em 15 minutos: pega o máximo por slot entre todas as fontes, eliminando sobreposição sem perder os dados aditivos (Galaxy Watch de manhã + Garmin na corrida da tarde).
- Clustering de sessões de sono: agrupa sessões sobrepostas em mais de 80% e aplica a prioridade anel > smartwatch para as fases do sono.
- Separação de frequência cardíaca em repouso vs. treino: as janelas de treino são excluídas do cálculo da frequência cardíaca em repouso.
- Deduplicação de registros duplicados da Samsung: filtra registros com o mesmo timestamp e source_package repetido (o bug conhecido de gravação dupla da Samsung).
Limites honestos: o que ainda não pode ser automatizado
Não quero superestimar o que um painel pode fazer sozinho. Há cenários que ainda requerem intervenção manual ou que produzem resultados aproximados:
- Treinos de natação com Suunto e Galaxy Watch sobrepostos: O Galaxy Watch reconhece a natação como ExerciseSession (tipo SWIMMING), o Suunto registra via API Sport Engine. Se os timestamps se sobrepõem parcialmente (ex: troca de raia entre voltas), a fusão é conservadora, mas não perfeita.
- VO2max de fontes diferentes: O Garmin calcula seu VO2max com um algoritmo proprietário (FirstBeat), o Galaxy Watch usa um método diferente. As estimativas não são comparáveis: o FitMesh Sync atualmente exibe as duas métricas separadamente, sem mesclá-las.
- HRV de cinta peitoral durante o dia vs. anel à noite: se você usa uma cinta Polar H10 para HRV matinal e o anel para HRV noturno, os valores são corretos em seus contextos, mas não são diretamente comparáveis. Este é um limite da biometria, não do software: a HRV varia de acordo com a hora do dia e a postura corporal.
Em resumo
- O Health Connect não deduplica: é um banco de dados neutro por fonte e cada app escreve de forma independente. A lógica de deduplicação deve estar no app que agrega os dados.
- Os três principais problemas em setups multi-wearable são: passos duplicados por registros cumulativos sobrepostos, sessões de sono duplicadas de dispositivos que medem a mesma noite e frequência cardíaca média contaminada por medições em contextos físicos diferentes.
- A estratégia correta combina três técnicas complementares: winner-takes-all por janela temporal (frequência cardíaca intraday), slot-merge de 15 minutos (passos) e clustering temporal com prioridade de fonte (sono).
- Duas coisas exigem configuração manual: qual dispositivo você usa à noite e desativar o Google Fit como fonte de escrita, se ainda estiver ativo.
- O Suunto não passa pelo Health Connect: é necessário um conector OAuth separado. Os dados são então unificados com a mesma lógica de dedup.
- A frequência cardíaca média diária sem distinção de contexto é um número sem sentido físico: separe sempre a frequência cardíaca em repouso da frequência cardíaca durante o treino.
Perguntas frequentes
Posso usar Galaxy Watch e Garmin juntos sem dados duplicados?+
Sim, mas requer um agregador que gerencie a deduplicação. Galaxy Watch e Garmin escrevem ambos no Health Connect, então se você abrir o Health Connect verá registros de ambos para as mesmas métricas. Um app como o FitMesh Sync usa a lógica winner-takes-all para janelas de treino (Garmin vence durante a corrida) e o slot-merge de 15 minutos para passos diários (nenhuma fonte é perdida, mas os duplicados são eliminados).
O Oura Ring sincroniza com o Health Connect?+
Sim, desde 2024 o Oura Ring grava dados de sono, frequência cardíaca e atividade no Health Connect no Android. Os dados de sono do Oura são particularmente detalhados (fases REM, leve e profundo com timestamping granular) e são gravados como registros SleepSession. Se você também tiver o Galaxy Watch ativo à noite, verá dois registros SleepSession para a mesma noite: um agregador que não faz clustering produzirá horas de sono duplicadas.
Como os passos são deduplicados quando tenho vários wearables ao mesmo tempo?+
O método mais robusto é o slot-merge por janela temporal. O dia é dividido em intervalos (tipicamente 5-15 minutos). Para cada intervalo, pega-se o valor máximo entre todas as fontes. Isso funciona porque dois dispositivos que medem a mesma caminhada produzem valores similares (o máximo é uma estimativa da verdade), enquanto dois dispositivos em momentos diferentes produzem valores aditivos corretos. O resultado é um total diário que não conta as mesmas caminhadas duas vezes, mas inclui corretamente a caminhada matinal com o Galaxy Watch e a corrida da tarde com o Garmin.
O Suunto grava no Health Connect?+
Não completamente. Ao contrário do Garmin, que tem integração nativa com o Health Connect a partir do seu app Android, o Suunto expõe os dados principalmente através da API Suunto Sport Engine com autenticação OAuth. Isso significa que integrar o Suunto em um painel multi-fonte requer um conector separado que lê da API Suunto. O FitMesh Sync inclui esse conector: uma vez que o Suunto é adicionado como fonte OAuth, os dados são mesclados ao fluxo principal com a mesma lógica de deduplicação.
Por que minha frequência cardíaca média parece muito alta ou muito baixa com vários wearables?+
Quase certamente é um problema de contexto misturado. Se o seu painel calcula a frequência cardíaca média diária somando todos os registros de todas as fontes, acaba por calcular a média da frequência em repouso com a frequência durante o treino. A solução é separar os contextos: frequência cardíaca em repouso (calculada apenas nas horas fora das janelas de treino) e frequência cardíaca média de treino (calculada apenas durante as sessões de exercício, por tipo de atividade). Uma única média diária multi-fonte não tem sentido físico.
Galaxy Ring e Galaxy Watch duplicam os dados de sono?+
Sim, se você usar ambos à noite. Tanto o Galaxy Ring quanto o Galaxy Watch gravam sessões de sono no Health Connect para a mesma noite. O Samsung Health tenta gerenciar isso internamente (o Galaxy Ring tem prioridade se detectado como fonte ativa noturna), mas o comportamento não é garantido em todos os dispositivos e versões do One UI. Se você usar um agregador de terceiros como o FitMesh Sync, a lógica de clustering de sono resolve o problema independentemente do Samsung Health.
Aviso legal
FitMesh Sync é um produto independente. Samsung, Garmin, Suunto, Oura, Polar, Google, Apple são marcas registradas de seus respectivos proprietários. Este artigo não implica nenhuma afiliação ou patrocínio.
Aviso de saúde
As informações deste artigo têm fins informativos e não substituem o aconselhamento do seu médico, farmacêutico ou profissional de saúde. FitMesh Sync é um app de fitness e bem-estar, não um dispositivo médico, e não diagnostica nem trata condições de saúde. Diante de sintomas, dúvidas ou decisões de tratamento, consulte sempre o seu médico.
Escrito por
Matteo Pizzi
Founder & Solo Dev, FitMesh Sync · Fosforonero
Desenvolvedor de software italiano. Criei o FitMesh Sync para preencher a lacuna entre o meu smartwatch e um painel pessoal de verdade. Privacidade em primeiro lugar, indie, servidores na UE.
Saiba mais sobre o projetoContinue lendo
Novidades
Agora você sabe de qual dispositivo vem cada dado
Relógio, anel e outros dispositivos na mesma tela, com a indicação clara de quem mediu o quê. Uma visão única, sem contagens duplicadas.
Guia
Melhor app de sincronização de dados de saúde para Android: guia 2026
Health Connect é a tomada na parede. Um app que se conecta diretamente lê tudo que o seu wearable gravou ali. Um app que o contorna precisa de um cabo próprio para cada dispositivo, e esse cabo quebra o tempo todo.
Guia
Como funciona o Health Connect: guia completo para Android 2026
O Health Connect não é apenas um app: é a camada de troca de dados que permite que todos os apps de saúde Android se comuniquem. Veja o que ele realmente faz, como gerencia suas permissões e o que acontece quando algo não funciona.