В продолжение поста про автоматизацию учёта времени.
Для полноты картины всегда хотелось иметь в дневниковых записях или где-то рядом статистику, которую собирают умные часы: количество шагов, продолжительность и качество сна и т.п.
Изначально хотелось “просто потому что”, но потом я себе обосновал, что для правильного стратегирования нужно понимать, почему неделя сложилась именно так, а для лучшего понимания ИИ-стратега нужно кормить как можно более разнообразной пищей: не только списками задач и данными о работе за компьютером, но и данными о физической жизни: сон, подвижность, восстановление. Иначе часть реальности просто не попадает в анализ.
Именно поэтому следующим шагом я занялся выгрузкой и данных с умных часов Amazfit.
Долго запрягал, а потом быстро поехал и за три сеанса с Cursor сделал готовый инструмент для вытягивания данных из облаков Amazfit/Huami ![]()
Нашёл reverse-engineered материалы по Mi Fit / Huami и начал с них. Попутно узнали с курсором много нового, нагуглили правильные эндпоинты, придумали, как парсить получаемые данные.
Для формирования списка показателей применял FPF.
В результате сделали трёхслойную архитектуру:
raw JSON -> normalized JSON -> Markdown для Obsidian
Сначала сохраняются сырые ответы API. Потом из них строится стабильный нормализованный слой. И только потом формируется человекочитаемый экспорт в Obsidian.
При этом не все данные имеет смысл сохранять. Нам нужны не красивые отчёты сами по себе, а наблюдаемые носители данных, аккуратные утверждения и понимание, насколько эти утверждения вообще обоснованы. Ведь часть данных в умных часах - это первичные более-менее точные данные, а другая часть - это производные от них, посчитанные “на глазок” по каким-то среднестатистическим коэффициентам.
В итоге сформировался набор данных, который интересен сам по себе и который представляет хорошие исходники для анализа. Помимо данных за день считаем тренды как скользящее среднее и отклонения от них.
По текущим данным уже можно более-менее честно говорить про шаги, распределение активности по дню, длительность сна, время начала и окончания сна, параметры восстановления и историю тренировок. Всё красиво, но нельзя делать вид, что у меня уже есть полноценная система понимания здоровья. Для некоторых выводов данных пока недостаточно, а некоторые выводы я даже не знаю, как делать. Это работа на будущее.
Тем не менее, теперь недельное стратегирование начинает опираться не только на факт трудозатрат и фокуса, но и на физический фон недели. То есть в разбор можно включать не только вопросы вроде “чем я занимался вместо приоритетного проекта?”, но и вопросы вроде “как я соблюдаю режим дня?” и “какие есть корреляции между показателями физической активности и рабочими продуктами?”
Это и есть главный сдвиг.
Раньше у меня был в основном контур:
план недели -> факт трудозатрат -> разбор отклонений -> планирование следующей недели с поправкой на отклонения
Теперь постепенно собирается более полная схема:
план недели -> факт трудозатрат -> факт физического режима -> разбор отклонений и ограничений -> планирование следующей недели с рекомендациями по режиму дня
Отдельно отмечу, что Cursor здесь оказался полезен не просто как способ быстрее писать код, но также и как исследователь.
Он ускорил цикл гипотеза -> проверка -> фиксация решения, который мы многократно прошли, пока доводили решение до работоспособного состояния в ситуации, когда нет нормальной спецификации по API.
И в итоге всё получилось ![]()
Выложил на github: GitHub - dimonier/amazfit-sync: Python utility for fetching Amazfit/Zepp data into local JSON storage and then exporting normalized daily notes to Obsidian. · GitHub
Ниже пример ежедневного отчёта.
2026-03-14 physical activity report based on Amazfit smart watch
Trends (14d)
- Steps: baseline 5583.1 | today 9526 (+3942.9)
- Sleep: baseline 06:19 | today 05:47 (-00:33)
- Resting HR: baseline 56 | today 57 (+1)
Steps
- Steps: 9526
- Distance: 6811 m
- Walk minutes: 131 min
- Peak steps per minute: 105 steps/min
Steps By Hour
Hour and steps done within the hour
- 1: 37
- 4: 7
- 6: 41
- 7: 239
- 8: 341
- 9: 679
- 10: 352
- 11: 259
- 12: 894
- 13: 123
- 14: 818
- 15: 486
- 16: 2825
- 17: 950
- 18: 375
- 19: 416
- 20: 293
- 21: 204
- 22: 55
- 23: 132
Body
- Weight: 89.5 kg
- BMI: 27.1
- Body fat: n/a
Activity
- Calories: 349 kcal
- Detected activity sessions: 16
- Minutes of activity: 178 min
- Longest activity session: 30 min
- Peak activity hour: 16:00
Sleep
- Sleep start: 2026-03-13 23:35
- Sleep end: 2026-03-14 06:41
- Time in bed: 07:06
- Total sleep: 05:47
- Deep sleep: 01:12
- Light sleep: 04:35
- Resting heart rate: 57 bpm