Claude + Oura + Xiaomi + Notion: гайд по созданию AI-доктора на 2026 год | AiManual
AiManual Logo Ai / Manual.
12 Мар 2026 Гайд

Персональный AI-доктор: как подключить Claude к данным Oura Ring, весам Xiaomi и ноушену для анализа здоровья

Пошаговая инструкция по интеграции Claude Opus 4.5 с Oura Ring, умными весами Xiaomi и Notion для комплексного анализа здоровья. Код, настройка API, примеры про

Проблема: ваше здоровье живет в сотне разных экосистем

Oura Ring показывает отличный сон, но вы чувствуете себя разбитым. Весы Xiaomi радуют цифрами, а джинсы не сходятся. В Notion лежат заметки о самочувствии, но связи между ними вы не видите.

Каждое устройство и приложение создает свой изолированный мир. Oura говорит про HRV, Xiaomi - про процент жира, Notion хранит субъективные ощущения. Сводить это в единую картину - задача для полноценного аналитика, которого у вас нет. До сегодняшнего дня.

Ключевой момент 2026 года: AI-модели наконец-то научились работать с неструктурированными мультимодальными данными. Claude Opus 4.5 понимает контекст между разными типами метрик без предварительной жесткой нормализации.

Решение: превращаем Claude в вашего цифрового терапевта

Claude Opus 4.5 - это не просто чат-бот. Это аналитический движок с долгой контекстной памятью и способностью работать с инструментами (tools). Через систему Connectors он может напрямую запрашивать данные из API, а результаты анализа записывать обратно в ваши системы.

Представьте диалог: "Claude, почему вчера мой глубокий сон был на 40% меньше нормы, хотя я лег вовремя?"

AI в реальном времени:

  • Запросит данные сна из Oura API
  • Проверит вес и состав тела из журнала Xiaomi
  • Найдет заметки о ужине и стрессе в Notion
  • Сравнит с аналогичными периодами за последний месяц
  • Даст гипотезу: "Вы съели тяжелую пищу за 2 часа до сна, что подтверждается записью в Notion. Плюс весы показывают +0,5 кг воды. Рекомендую..."

0Что понадобится перед началом

КомпонентВерсия/Требования (2026)Комментарий
Claude APIAnthropic Messages API, поддерживающий Claude 3.5 Opus и 4.5Используем последнюю модель Claude Opus 4.5 для лучшего понимания контекста
Oura RingAPI v2, OAuth токенНужен доступ к данным сна, готовности, активности
Весы XiaomiМодель с синхронизацией в Mi Fit / Zepp LifeДанные будем забирать через неофициальное API или экспорт
NotionРабочее пространство, интеграция с APIСоздадим базу данных для логов и аналитики
Сервер/ФункцияPython 3.11+, FastAPI или Cloud FunctionДля оркестрации вызовов и хранения токенов
💡
Если не хотите возиться с сервером, посмотрите кейс по Claude + n8n. Визуальный автомат-оркестратор отлично подходит для таких интеграций без написания кода.

1Достаем данные из Oura Ring через официальный API

Первое - получаем доступ к API Oura. Идем в Oura Cloud, создаем приложение, получаем client_id и client_secret.

OAuth flow в 2026 немного изменился - теперь требуется PKCE для нативных приложений. Но для серверного сценария используем простой Personal Access Token.

Не храните токен в коде! Используйте переменные окружения или secrets manager. Токен Oura дает доступ ко ВСЕМ вашим биометрическим данным.

Пример запроса за последние данные сна:

import requests
from datetime import datetime, timedelta

OURA_TOKEN = os.getenv('OURA_ACCESS_TOKEN')

def get_oura_sleep():
    today = datetime.now().date()
    week_ago = today - timedelta(days=7)
    
    headers = {
        'Authorization': f'Bearer {OURA_TOKEN}'
    }
    
    # API v2 endpoint
    response = requests.get(
        f'https://api.ouraring.com/v2/usercollection/sleep',
        headers=headers,
        params={'start_date': week_ago, 'end_date': today}
    )
    
    if response.status_code == 200:
        return response.json()['data']
    else:
        raise Exception(f'Oura API error: {response.status_code}')

# Получаем ключевые метрики
sleep_data = get_oura_sleep()
latest_sleep = sleep_data[0] if sleep_data else {}

sleep_metrics = {
    'total_sleep': latest_sleep.get('total_sleep_duration', 0) / 3600,  # в часах
    'deep_sleep': latest_sleep.get('deep_sleep_duration', 0) / 3600,
    'rem_sleep': latest_sleep.get('rem_sleep_duration', 0) / 3600,
    'hrv': latest_sleep.get('hrv', 0),
    'readiness': latest_sleep.get('readiness_score', 0)
}

Claude отлично понимает эти данные в сыром JSON. Но для человека я бы рекомендовал создать небольшой адаптер, который преобразует данные в более читаемый формат перед отправкой в промпт.

2Подключаем весы Xiaomi - самая грязная часть работы

Здесь официального API нет. Есть три пути:

  1. Использовать бэкдор через Mi Fit API (недокументированный, ломается)
  2. Экспортировать данные в Google Fit / Apple Health, а оттуда забирать
  3. Парсить локальный файл приложения на телефоне

Я выбрал второй путь как наиболее стабильный в 2026. Настраиваем синхронизацию Mi Fit с Google Fit. Затем используем Google Fitness API.

# Для Google Fitness API нужна OAuth 2.0 настройка
# Создаем проект в Google Cloud, включаем Fitness API
def get_xiaomi_weight_data():
    from google.oauth2.credentials import Credentials
    from googleapiclient.discovery import build
    
    # Токен получаем через OAuth flow
    creds = Credentials.from_authorized_user_info(info)
    service = build('fitness', 'v1', credentials=creds)
    
    # Источник данных для весов Xiaomi обычно имеет такое название
    data_source = "raw:com.xiaomi.hm.health:weight"
    
    now = int(time.time() * 1000000000)  # наносекунды
    day_ago = now - 86400000000000  # 24 часа назад
    
    dataset = service.users().dataSources().\
        datasets().\
        get(userId='me', dataSourceId=data_source, \
            datasetId=f'{day_ago}-{now}').execute()
    
    weights = []
    for point in dataset.get('point', []):
        weight_kg = point['value'][0]['fpVal']
        timestamp = int(point['startTimeNanos']) / 1e9
        weights.append({
            'weight': weight_kg,
            'timestamp': datetime.fromtimestamp(timestamp),
            'fat_percent': point['value'][1]['fpVal'] if len(point['value']) > 1 else None
        })
    
    return weights

Если этот путь кажется слишком сложным, рассмотрите AIDA - контейнер с 400+ инструментами. Там есть готовые скрипты для работы с IoT-устройствами.

3Создаем хаб данных в Notion

Notion - идеальное место для консолидации. Создаем базу данных "Здоровье" с такими свойствами:

  • Дата (Date)
  • Вес (Number)
  • Процент жира (Number)
  • HRV (Number)
  • Глубокий сон (Number)
  • Самочувствие (Select: Отлично/Хорошо/Нормально/Плохо)
  • Заметки (Text)

API Notion в 2026 стабильно работает. Получаем интеграционный токен, делитесь базой данных с интеграцией.

import requests
import json

NOTION_TOKEN = os.getenv('NOTION_TOKEN')
DATABASE_ID = os.getenv('HEALTH_DB_ID')

def add_to_notion(health_data):
    url = "https://api.notion.com/v1/pages"
    
    headers = {
        "Authorization": f"Bearer {NOTION_TOKEN}",
        "Content-Type": "application/json",
        "Notion-Version": "2022-06-28"  # Актуальная версия на 2026
    }
    
    properties = {
        "Дата": {
            "date": {"start": health_data['date']}
        },
        "Вес": {
            "number": health_data['weight']
        },
        "HRV": {
            "number": health_data['hrv']
        },
        "Самочувствие": {
            "select": {"name": health_data['mood']}
        }
    }
    
    data = {
        "parent": {"database_id": DATABASE_ID},
        "properties": properties
    }
    
    response = requests.post(url, headers=headers, data=json.dumps(data))
    return response.status_code == 200

4Собираем все вместе в Claude Connector

Claude Projects (анонсированы в 2025) позволяют создавать специализированных агентов с доступом к инструментам. Настраиваем Connector, который умеет:

  1. Вызывать наш серверный endpoint за свежими данными
  2. Читать историю из Notion
  3. Анализировать тренды
  4. Записывать выводы обратно в Notion

Конфигурация инструментов для Claude API:

{
  "tools": [
    {
      "name": "get_health_metrics",
      "description": "Fetch latest health data from Oura Ring, Xiaomi scales, and Notion",
      "input_schema": {
        "type": "object",
        "properties": {
          "days_back": {
            "type": "integer",
            "description": "Number of days to look back"
          }
        }
      }
    },
    {
      "name": "analyze_trend",
      "description": "Analyze health trends over time",
      "input_schema": {
        "type": "object",
        "properties": {
          "metric": {
            "type": "string",
            "enum": ["weight", "hrv", "deep_sleep", "readiness"]
          },
          "period": {
            "type": "string",
            "enum": ["week", "month", "quarter"]
          }
        }
      }
    },
    {
      "name": "log_insight",
      "description": "Save an insight to Notion health database",
      "input_schema": {
        "type": "object",
        "properties": {
          "insight": {
            "type": "string",
            "description": "The health insight to save"
          },
          "severity": {
            "type": "string",
            "enum": ["info", "warning", "action"]
          }
        }
      }
    }
  ]
}

Когда Claude вызывает get_health_metrics, наш сервер собирает данные из всех источников, нормализует их и возвращает единым JSON. Claude с его контекстом в 200K токенов может анализировать месяцы таких данных.

💡
Помните статью Claude for Healthcare vs ChatGPT Health? Anthropic специально дообучала модели на медицинских данных. Opus 4.5 понимает разницу между клинически значимым падением HRV и нормальной вариабельностью.

5Задаем правильные вопросы - где проявляется магия

Типичные ошибки: спрашивать "Как мое здоровье?" или "Все ли хорошо?". Claude выдаст общую воду.

Правильные вопросы контекстуальны и конкретны:

  • "На основе данных за последние 7 дней, какие 3 фактора больше всего повлияли на мой показатель готовности (readiness)? Сравни с предыдущей неделей."
  • "Заметил, что глубокий сон снизился на 15% в последние 3 дня. Есть ли корреляция с временем ужина или потреблением кофеина? Проверь мои заметки в Notion."
  • "Мой вес вырос на 0,8 кг за неделю, но процент жира не изменился. Это отеки или мышцы? Что говорят данные о гидратации и HRV?"
  • "Спрогнозируй, как повлияет на мой сон и восстановление запланированная на завтра интенсивная тренировка. Учитывай текущие метрики и историю."

Пример промпта для Claude:

Ты - персональный аналитик здоровья. У тебя есть доступ к моим данным из Oura Ring, весов Xiaomi и дневника в Notion.

Пожалуйста:
1. Проанализируй тренд HRV за последние 14 дней
2. Найди дни с аномально низкими значениями
3. Сопоставь эти дни с:
   - Качеством сна (глубокий + REM фазы)
   - Изменениями веса и состава тела
   - Заметками о самочувствии и стрессе в Notion
4. Выяви потенциальные паттерны
5. Дай 2-3 конкретные рекомендации на следующую неделю

Будь конкретен. Если видишь статистически значимую корреляцию - укажи. Если данных недостаточно - скажи, что именно нужно отслеживать.

Ошибки, которые совершают 95% людей

  1. Фетишизация точности. Весы Xiaomi показывают процент жира с погрешностью ±3%. Oura измеряет температуру с точностью ±0,1°C. Не нужно строить выводы на разнице в 0,5%. AI должен учитывать погрешность приборов.
  2. Отсутствие бейзлайна. Claude не знает, что для вас "нормально". Первые 2 недели - сбор референсных данных. Только потом можно говорить об отклонениях.
  3. Игнорирование контекста. Выпили бокал вина? Перелетели через 5 часовых поясов? Болели? Эти события нужно явно заносить в Notion, иначе AI будет строить неверные гипотезы.
  4. Слепая вера в рекомендации. Claude Opus 4.5 - не врач. Это аналитический инструмент. Если он говорит "похоже на начало ОРВИ" - это повод измерить температуру градусником, а не бежать в аптеку.

Самая опасная ошибка - пытаться поставить диагноз по советам AI. Помните скандал 2024 года, когда ChatGPT советовал голодать при диабете? Claude обучен быть осторожнее, но пределы его компетенции четко обозначены Anthropic.

FAQ: вопросы, которые вы постеснялись спросить

ВопросКороткий ответРазвернуто
Безопасно ли отдавать биометрию в API?Не совсемДанные проходят через Anthropic серверы. Хоть они и не используются для тренировки, утечки возможны. Для параноиков: локальный Ollama с медицинской моделью плюс полная изоляция данных.
Сколько это стоит?~$50-100 в месяцClaude Opus 4.5: ~$3 за 1K промптов. Oura API: бесплатно. Notion: бесплатно до 1000 блоков. Сервер: $10-20. Итого меньше, чем один поход к нутрициологу.
Что насчет медицинской лицензии?У Claude ее нетAnthropic четко позиционирует Claude for Health как "wellness assistant", не медицинский инструмент. Но они активно движутся в эту сторону.
А если я спортсмен?Будет еще полезнееДобавьте данные тренировок из Strava/Garmin. Claude найдет связи между нагрузкой, восстановлением и прогрессом. Спортсмены - идеальные пользователи такой системы.

Главный нюанс 2026 года: интеграции становятся проще, но ответственность растет. Раньше вы просто смотрели на цифры в приложении. Теперь AI выдает каузальные гипотезы. "Падение HRV на 12% коррелирует с увеличением потребления кофеина на 200 мг" - это уже не просто данные, это почти рекомендация.

Следующий шаг - добавление данных о питании (см. как Omada Health учила Llama 3.1) и генетики. Тогда картина станет по-настоящему полной.

А через год, глядишь, и до полноценного медицинского ассистента дойдем. Пока же - ваш личный AI-доктор в телефоне, который знает о вашем теле больше, чем вы сами.

Подписаться на канал