2 puntos por GN⁺ 2025-02-04 | 1 comentarios | Compartir por WhatsApp
  • Script en Python para analizar y manipular datos de salud en una base de datos SQLite
  • Descarga y analiza datos desde Garmin Connect o relojes Garmin, archivos CSV de FitBit y archivos CSV de MS Health, y analiza los datos en la base de datos Sqlite usando notebooks de Jupyter

Funciones

  • Descarga e importa automáticamente datos como frecuencia cardíaca de todo el día, actividad, ascenso/descenso, estrés y minutos de intensidad desde la página "Daily Summary" de Garmin Connect
  • Extrae datos de sueño, peso y frecuencia cardíaca en reposo desde Garmin Connect, los guarda como archivos JSON y los importa a la base de datos
  • Descarga e importa archivos de actividad desde Garmin Connect. Incluye tablas de resumen para todas las actividades y datos detallados para algunos tipos de actividad
  • Resume los datos en tablas que incluyen resúmenes diarios, semanales, mensuales y anuales
  • Grafica los datos usando la línea de comandos o notebooks de Jupyter
  • Conserva los archivos JSON y FIT descargados para poder reconstruir la base de datos sin volver a conectarse a Garmin Connect ni volver a descargar los datos
  • Permite exportar actividades como archivos TCX

Cómo usarlo

Releases

  • GarminDb está alojado en PyPI. Requiere Python 3.x. Instala la versión más reciente ejecutando pip install garmindb en la terminal
  • Copia GarminConnectConfig.json.example a ~/.GarminDb/GarminConnectConfig.json, agrega tu nombre de usuario y contraseña de Garmin Connect, y ajusta la fecha de inicio de los datos
  • Para descargar todos los datos y crear la base de datos, ejecuta garmindb_cli.py --all --download --import --analyze
  • Para descargar e importar los datos más recientes y actualizar gradualmente la base de datos, ejecuta garmindb_cli.py --all --download --import --analyze --latest
  • Para respaldar el archivo de la base de datos, ejecuta de vez en cuando garmindb_cli.py --backup

Desde el código fuente

  • Clona con Git el repositorio de GarminDB usando el método de clonación por SSH. Los submódulos también deben usar SSH
  • En el árbol clonado, ejecuta make setup para dejar todo listo para procesar los datos
  • Copia GarminConnectConfig.json.example a ~/.GarminDb/GarminConnectConfig.json, agrega tu nombre de usuario y contraseña, y ajusta la fecha de inicio
  • Ejecuta make create_dbs una vez para importar y procesar los datos
  • Ejecuta periódicamente el comando make para mantener actualizados todos los datos locales

Notebooks de Jupyter

  • Los notebooks de Jupyter para analizar los datos de la base de datos están en el directorio 'Jupyter' del árbol de código fuente

Plugins

  • Los plugins permiten a los usuarios ampliar los tipos de datos que se procesan y almacenan en la base de datos. GarminDb ya incluye varios plugins para procesar apps de terceros de Connect IQ y campos de datos

1 comentarios

 
GN⁺ 2025-02-04
Opiniones en Hacker News
  • Hay que tener cuidado con las apps que autentican usando Garth. La integración con Garmin es difícil.

    • La API y el SDK de Garmin son difíciles de usar.
    • Hay una forma de exportar los datos desde Garmin Connect como archivos FIT.
    • Las librerías open source de Python y Go pueden leer e interpretar archivos FIT.
  • Hay una forma de obtener los datos actuales desde el dispositivo.

    • Puedes conectar el dispositivo a una computadora, montarlo como sistema de archivos y extraer los archivos .FIT.
  • Es útil usar Intervals para analizar datos relacionados con Garmin y Strava.

    • Es especialmente bueno porque puede generar métricas relacionadas con remo.
  • Garmin debería ofrecer hardware que permita gestionar mejor los datos, en lugar de depender de una app de smartphone.

    • No solo es difícil acceder a la API, sino que además no escuchan a la comunidad.
    • Hace falta una función para filtrar entrenamientos sin equipo.
  • El SDK de Garmin es antiguo y el acceso a los datos es limitado.

    • El formato de archivo FIT solo es compatible con apps limitadas.
  • Hace falta un reloj fitness con mejor acceso a los datos.

    • Se necesita un reloj que permita acceder a información de salud en tiempo real.
  • Compré el nuevo Garmin Vivoactive5 y estoy satisfecho, aunque la API de Garmin no es la mejor.

    • Consideré el Apple Watch Series 10, pero lo descarté por la duración de la batería y el precio.
    • Hace falta un reloj abierto que se pueda hackear, y el regreso de Pebble podría llenar ese vacío.