Техническая часть оказалась самой болезненной 😵‍💫

Поскольку Garmin — закрытая экосистема, официального API для личных данных нет. Для получения коммерческого API надо питчить свой продукт команде Garmin и проходить через бюрократию. Это если твою заявку вообще увидят и одобрят. Поэтому пришлось использовать неофициальную библиотеку: ловить токены, обходить блокировки по IP, настраивать стабильную авторизацию. В итоге все работает — данные обновляются каждые 30 минут без ручного входа 🔄 С FatSecret другая история. API есть, но доступ к личному дневнику — отдельный квест с OAuth. Решение — headless-браузер на Playwright: он логинится, забирает данные и обновляет их по расписанию. Тоже настроил забирать данные каждые 30 минут. Это удобно, если нужен спонтанный отчет за сегодня.

Дальше начинается самое интересное☝️

Данные из четырех источников собираются в единую базу на личном сервере. Claude агрегирует их, находит паттерны и собирает отчеты — как автоматические, так и по запросу.

Утром в 08:30 прилетает отчет: сон прошлой ночи, Recovery Score, активность за вчера, питание и один конкретный фокус на день.

Данные отображаются в виде HTML таблиц с цветными статусами, под ними — анализ паттернов с учетом генетики.

По запросу — любой срез: "проанализируй сон и активность за последние 2 недели", "что происходило с восстановлением в апреле", "как нагрузка влияла на качество сна".

Система видит связи, которые руками просто не собрать.

Коммерческий продукт из этого строить не планирую. Для работы боту нужны логин и пароль от Garmin Connect и FatSecret — это персональные и фактически медицинские данные. Не говоря уже про генетические тесты и анализы. Ввязываться в эту историю с коммерческой стороны не хочу.

Но главная ценность не в этом. Самый успешный продукт — тот что построен под себя. Теперь у меня есть персонализированное решение, которое знает весь мой контекст, все детали, мою генетику и мои анализы. И оно работает каждый день.

Слепо доверять я ему не собираюсь, но в качестве второго мнения и полноценной системы с данными вполне подходит.

Попробуем собрать 100 реакций, и я опубликую реальный вывод бота. Посмотрите сами, какие персональные рекомендации выдает система на основе живых данных.