Platforms overview

Сводки HealthKit

Сводки HealthKit

OpenClaw может запрашивать доступную только для чтения сводку за текущий календарный день с подключенного узла iPhone. iPhone вычисляет агрегированные данные на устройстве и возвращает только количество шагов, продолжительность сна, среднюю частоту сердечных сокращений в покое, а также количество и продолжительность тренировок. Отдельные образцы HealthKit, источники, метаданные, клинические записи, фоновый сбор данных и запись не поддерживаются.

По умолчанию эта функция отключена. Для нее требуются отдельное согласие на iPhone и авторизация на Gateway.

Требования

  • iPhone с приложением OpenClaw для iOS, на котором HealthKit сообщает, что данные о здоровье доступны.
  • Подключенный и одобренный узел iPhone. См. настройку приложения iOS.
  • Актуальный Gateway, который может связаться с узлом iPhone.
  • Доступные для чтения данные Health по всем показателям, которые вы ожидаете увидеть. Apple Watch может передавать данные в хранилище Health на iPhone, но приложение OpenClaw для watchOS не требуется для сводок HealthKit.

Включение доступа

1. Авторизуйте команду Gateway

Добавьте health.summary в существующий массив gateway.nodes.allowCommands в openclaw.json. Сохраните все уже присутствующие команды:

json5
{  gateway: {    nodes: {      allowCommands: ["health.summary"],    },  },}

health.summary относится к командам с повышенными требованиями к конфиденциальности и никогда не разрешается платформой iOS по умолчанию. Запись в gateway.nodes.denyCommands переопределяет разрешающую запись. См. политику команд Node.

2. Включите передачу данных на iPhone

В приложении iOS:

  1. Откройте Settings -> Permissions -> Privacy & Access -> Health Summaries.
  2. Нажмите Enable & Share Summaries.
  3. Прочитайте уведомление, затем на экране разрешений Apple выберите категории Health, которые OpenClaw может читать.

Переключатель сохраняет ваш явный выбор о передаче данных в OpenClaw. Он не означает, что Apple предоставила доступ ко всем запрошенным категориям.

При включении сводок Health команда health.summary добавляется в объявленный узлом набор команд. Одобрите появившееся обновление сопряжения узла:

bash
openclaw nodes pendingopenclaw nodes approve <requestId>

Затем убедитесь, что подключенный iPhone предоставляет действующую команду health.summary:

bash
openclaw nodes describe --node "<iPhone name>"

Запрос сводки за сегодня

Поддерживается только today. Период охватывает время от местной полуночи до момента запроса с учетом текущего календаря и часового пояса iPhone.

bash
openclaw nodes invoke \  --node "<iPhone name>" \  --command health.summary \  --params '{"period":"today"}' \  --json

Агенты могут вызвать ту же команду с помощью инструмента nodes:

json
{  "action": "invoke",  "node": "<iPhone name>",  "invokeCommand": "health.summary",  "invokeParamsJson": "{\"period\":\"today\"}"}

Полезная нагрузка сводки содержит:

Поле Значение
period Всегда today
startISO Местное начало дня в формате момента времени ISO
endISO Время запроса в формате момента времени ISO
timeZoneIdentifier Идентификатор часового пояса iPhone
stepCount Округленное суммарное количество шагов
sleepDurationMinutes Время сна без повторов, ограниченное сегодняшним днем
restingHeartRateBpm Средняя частота сердечных сокращений в покое
workoutCount Тренировки, начавшиеся сегодня
workoutDurationMinutes Общая продолжительность этих тренировок

Поля показателей необязательны и не включаются, если HealthKit не возвращает доступное для чтения значение. Стадии сна и пересекающиеся источники объединяются до вычисления продолжительности, поэтому одна и та же минута не учитывается дважды.

Обработка конфиденциальных данных

  • Агрегирование выполняется на iPhone. Необработанные образцы не покидают устройство.
  • Запрошенные агрегированные данные передаются с iPhone через ваш Gateway. Когда их запрашивает агент, они поступают настроенному поставщику ИИ и могут сохраняться в истории чата. При прямом вызове через CLI они возвращаются оператору CLI.
  • OpenClaw запрашивает доступ только для чтения. Он не может добавлять или изменять данные Health.
  • OpenClaw читает HealthKit только при вызове health.summary. Фоновый сбор данных о здоровье не выполняется.
  • HealthKit намеренно не сообщает, был ли доступ для чтения отклонен. Отсутствие показателя может означать отказ в доступе, отсутствие подходящих образцов или недоступность типа данных. OpenClaw не может различить эти случаи.
  • Сводка предназначена для предоставления контекста о личном здоровье и физической активности, а не для диагностики или медицинских рекомендаций.

Чтобы прекратить передачу данных, вернитесь в раздел Health Summaries и нажмите Disable. После этого iPhone удалит возможность Health и команду health.summary из набора команд узла. Также можно удалить health.summary из gateway.nodes.allowCommands, чтобы закрыть доступ со стороны Gateway.

Устранение неполадок

Команда не объявлена узлом

Убедитесь, что сводки Health включены в приложении iOS и iPhone подключен. Выполните openclaw nodes pending и одобрите все обновления возможностей, затем снова проверьте openclaw nodes describe --node "<iPhone name>".

Для команды требуется явное согласие

Добавьте health.summary в gateway.nodes.allowCommands. Также убедитесь, что gateway.nodes.denyCommands не содержит эту команду: список запретов имеет приоритет.

HEALTH_ACCESS_DISABLED

Переключатель передачи данных в приложении отключен. Включите Health Summaries в разделе Privacy & Access на iPhone.

Сводка возвращается успешно, но показатели отсутствуют

Откройте приложение Health от Apple и убедитесь, что данные за сегодня существуют. Проверьте доступ OpenClaw в настройках Health от Apple, но не считайте пустой результат доказательством отказа в доступе: HealthKit намеренно скрывает это различие.

Запросы за более ранние периоды завершаются ошибкой

Команда принимает только {"period":"today"}. Сводки за несколько дней и исторические сводки не поддерживаются.

См. также

Was this useful?
On this page

On this page