2 pontos por GN⁺ 2025-02-04 | 1 comentários | Compartilhar no WhatsApp
  • Script em Python para analisar e manipular dados de saúde em um banco de dados SQLite
  • Baixa e analisa dados do Garmin Connect ou de relógios Garmin, arquivos CSV do FitBit e CSV do MS Health, e usa notebooks Jupyter para analisar os dados no banco de dados Sqlite

Recursos

  • Baixa e importa automaticamente dados da página "Resumo diário" do Garmin Connect, incluindo frequência cardíaca ao longo do dia, atividade, subida/descida, estresse e minutos de intensidade
  • Extrai dados de sono, peso e frequência cardíaca em repouso do Garmin Connect, salva em arquivos JSON e importa para o banco de dados
  • Baixa e importa arquivos de atividade do Garmin Connect. Inclui uma tabela de resumo para todas as atividades e dados detalhados para alguns tipos de atividade
  • Resume os dados em tabelas com resumos diários, semanais, mensais e anuais
  • Exibe gráficos dos dados usando a linha de comando ou notebooks Jupyter
  • Arquiva os arquivos JSON e FIT baixados para que seja possível recriar o banco de dados sem se reconectar ao Garmin Connect ou baixar os dados novamente
  • Pode exportar atividades como arquivos TCX

Como usar

Releases

  • O GarminDb é hospedado no PyPI. Requer Python 3.x. Execute pip install garmindb no terminal para instalar a release mais recente
  • Copie GarminConnectConfig.json.example para ~/.GarminDb/GarminConnectConfig.json, adicione o nome de usuário e a senha do Garmin Connect e ajuste a data inicial dos dados
  • Para baixar todos os dados e criar o banco de dados, execute garmindb_cli.py --all --download --import --analyze
  • Para baixar e importar os dados mais recentes e atualizar o banco de dados de forma incremental, execute garmindb_cli.py --all --download --import --analyze --latest
  • Para fazer backup do arquivo do banco de dados, execute garmindb_cli.py --backup de vez em quando

A partir do código-fonte

  • Faça um clone Git do repositório GarminDB usando o método de clone via SSH. Os submódulos também devem usar SSH
  • No diretório clonado, execute make setup para preparar o processamento dos dados
  • Copie GarminConnectConfig.json.example para ~/.GarminDb/GarminConnectConfig.json, adicione o nome de usuário e a senha e ajuste a data inicial
  • Execute make create_dbs uma vez para importar e processar os dados
  • Execute o comando make periodicamente para manter todos os dados locais atualizados

Notebooks Jupyter

  • Os notebooks Jupyter para analisar dados do banco de dados estão no diretório 'Jupyter' da árvore de código-fonte

Plugins

  • Os plugins permitem que o usuário amplie os tipos de dados a serem processados e armazenados no banco de dados. O GarminDb já possui vários plugins para processar apps Connect IQ de terceiros e campos de dados

1 comentários

 
GN⁺ 2025-02-04
Comentários do Hacker News
  • É preciso ter cuidado com apps que fazem autenticação usando Garth. A integração com a Garmin é difícil

    • A API e o SDK da Garmin são difíceis de usar
    • Há uma forma de exportar dados do Garmin Connect como arquivos FIT
    • Bibliotecas open source em Python e Go conseguem ler e interpretar arquivos FIT
  • Existe uma forma de obter os dados atuais diretamente do dispositivo

    • É possível conectar o dispositivo ao computador, montá-lo como sistema de arquivos e pegar os arquivos .FIT
  • Usar o Intervals para analisar dados relacionados a Garmin e Strava é útil

    • Especialmente porque ele consegue gerar métricas relacionadas a remo
  • A Garmin deveria oferecer hardware que permitisse gerenciar melhor os dados, em vez de depender do app de smartphone

    • Além de o acesso à API ser difícil, a empresa também não escuta a comunidade
    • É preciso uma função para filtrar exercícios sem equipamento
  • O SDK da Garmin é antigo e o acesso aos dados é limitado

    • O formato de arquivo FIT só é suportado por apps limitados
  • É preciso um relógio fitness com melhor acesso aos dados

    • É necessário um relógio que permita acessar informações de saúde em tempo real
  • Comprei um novo Garmin Vivoactive5 e, embora a API da Garmin não seja ideal, estou satisfeito

    • Considerei o Apple Watch Series 10, mas desisti por causa da duração da bateria e do preço
    • É preciso um relógio aberto e hackeável, e o retorno do Pebble pode preencher essa lacuna