- 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
Comentários do Hacker News
É preciso ter cuidado com apps que fazem autenticação usando Garth. A integração com a Garmin é difícil
Existe uma forma de obter os dados atuais diretamente do dispositivo
.FITUsar o Intervals para analisar dados relacionados a Garmin e Strava é útil
A Garmin deveria oferecer hardware que permitisse gerenciar melhor os dados, em vez de depender do app de smartphone
O SDK da Garmin é antigo e o acesso aos dados é limitado
É preciso um relógio fitness com melhor acesso aos dados
Comprei um novo Garmin Vivoactive5 e, embora a API da Garmin não seja ideal, estou satisfeito