Как превратить данные Garmin в профессиональную аналитику: обзор Garmin Grafana

14 фев 2026
3,470
228
30
1 месяц

Вы когда-нибудь задумывались, насколько глубоко Garmin прячет ваши данные? Официальное приложение Garmin Connect — отличная штука для повседневного использования, но как только дело доходит до анализа трендов за год или желания сравнить уровень стресса с качеством сна на одном детальном графике, мы упираемся в ограничения интерфейса.

А что, если я скажу, что вы можете выгрузить каждый свой вдох, каждый удар сердца и каждый шаг в собственную базу данных и построить дашборд мечты? Сегодня разберем проект Garmin Grafana, который делает именно это.

Dashboard

Зачем это нужно, если есть приложение?

Знакомая ситуация: вы хотите посмотреть, как менялся ваш пульс в покое за последние три года, но в приложении это превращается в бесконечный скроллинг. Или, например, вы хотите наложить данные Body Battery на график рабочих встреч, чтобы понять, кто из коллег «выпивает» вашу энергию.

Проект garmin-grafana решает три фундаментальные проблемы:

Реклама
  1. Владение данными: Ваши показатели здоровья хранятся у вас (в InfluxDB), а не только на серверах Garmin.
  2. Свобода визуализации: Grafana позволяет строить любые графики — от тепловых карт шагов до сложных корреляций.
  3. Конфиденциальность: Вы не делитесь данными с сомнительными сторонними сервисами анализа. Все крутится в вашем Docker-контейнере.

Что умеет этот «комбайн»?

Автор проекта, Арпан Гхош (Arpan Ghosh), проделал колоссальную работу. Скрипт на Python автоматически забирает из облака Garmin практически всё, что фиксируют ваши часы:

  • Метрики здоровья: Пульс (до удара), уровень стресса, Body Battery, сатурация (SpO2), частота дыхания и HRV.
  • Сон: Не просто «сколько спал», а детальные фазы, движения во сне и даже оценка качества сна (Sleep Score).
  • Активность: Шаги (с детализацией по часам), сожженные калории и минуты интенсивности.
  • Тренировки: Полные GPS-треки, темп, высота и зоны пульса.

Интересная деталь: проект поддерживает даже тепловые карты (Heatmaps) для шагов и регулярности сна. Это позволяет с одного взгляда понять, в какие часы вы наиболее продуктивны и насколько стабилен ваш режим.

Как это устроено внутри

Архитектура проекта элегантна в своей простоте и упакована в Docker-стек:

  1. Garmin Fetch Data: Контейнер со скриптом, который имитирует работу клиента Garmin Connect, проходит аутентификацию (включая 2FA!) и забирает данные.
  2. InfluxDB: Тайм-серия база данных, идеально подходящая для хранения метрик здоровья. Используется версия 1.11, так как она быстрее и стабильнее работает с Grafana для таких задач.
  3. Grafana: Тот самый «красивый фасад», где уже настроен готовый дашборд.

Кстати, если вы пользуетесь умным домом на базе Home Assistant, автор предусмотрел способ прокинуть туда даже уровень заряда батареи часов (через отдельное приложение Connect IQ), так как стандартное API Garmin эту информацию отдает неохотно.

Быстрый старт: от нуля до графиков

Разработчик предусмотрел два пути: «для ленивых» и «для профи». Если у вас есть Linux или macOS (или WSL на Windows), установка сводится к паре команд.

Автоматическая установка

cd ~ && git clone https://github.com/arpanghosh8453/garmin-grafana.git garmin-grafana
cd garmin-grafana && sudo bash ./easy-install.sh

Скрипт сам поднимет контейнеры, спросит логин/пароль и предложит ввести код двухфакторки. После этого магия начнется сама собой.

А если я хочу данные за прошлые годы?

По умолчанию скрипт забирает данные за последние 7 дней. Но мы же здесь ради аналитики! Чтобы выкачать историю (bulk update), достаточно запустить разовую команду:

docker compose run --rm -e MANUAL_START_DATE=2023-01-01 garmin-fetch-data

Скрипт начнет методично (с соблюдением лимитов Garmin, чтобы вас не забанили) выкачивать историю в обратном хронологическом порядке.

Практическая польза и AI-интеграция

Одна из самых крутых фишек, которую добавил автор — экспорт в CSV. Зачем? Чтобы скормить эти данные локальной LLM (например, через Open WebUI) или ChatGPT.

Представьте, вы выгружаете данные за год и спрашиваете нейронку: «Проанализируй зависимость моего сна от интенсивности тренировок в среду. Есть ли паттерны перетренированности?». Это выводит биохакинг на совершенно новый уровень.

Пара нюансов, о которых стоит знать

  1. Холодное хранение Garmin: Данные старше 6 месяцев Garmin убирает в «архив». Скрипт их увидит, только если вы предварительно «разбудите» их через официальное приложение.
  2. Токены: Сессия живет около года. Раз в год придется обновлять аутентификацию, если у вас включена 2FA.
  3. Только облако: Скрипт не общается с часами напрямую по Bluetooth. Данные сначала должны улететь в Garmin Connect.

Итог: стоит ли пробовать?

Если вы разработчик и у вас на руке Garmin — однозначно да. Это отличный пример того, как можно использовать Docker и Grafana не только для мониторинга серверов, но и для мониторинга самого себя.

Проект полностью открыт, активно поддерживается сообществом (недавно автору даже всем миром скидывались на новые часы для тестов!) и дает то самое чувство контроля над собственными данными, которого нам так часто не хватает в эпоху облачных сервисов.

Попробовать проект: arpanghosh8453/garmin-grafana

Берегите себя, следите за пульсом и удачного селф-хостинга!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.