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. Сохраните все уже присутствующие команды:
{ gateway: { nodes: { allowCommands: ["health.summary"], }, },}health.summary относится к командам с повышенными требованиями к конфиденциальности и никогда не разрешается
платформой iOS по умолчанию. Запись в gateway.nodes.denyCommands переопределяет
разрешающую запись. См. политику команд Node.
2. Включите передачу данных на iPhone
В приложении iOS:
- Откройте Settings -> Permissions -> Privacy & Access -> Health Summaries.
- Нажмите Enable & Share Summaries.
- Прочитайте уведомление, затем на экране разрешений Apple выберите категории Health, которые OpenClaw может читать.
Переключатель сохраняет ваш явный выбор о передаче данных в OpenClaw. Он не означает, что Apple предоставила доступ ко всем запрошенным категориям.
При включении сводок Health команда health.summary добавляется в объявленный узлом
набор команд. Одобрите появившееся обновление сопряжения узла:
openclaw nodes pendingopenclaw nodes approve <requestId>Затем убедитесь, что подключенный iPhone предоставляет действующую команду
health.summary:
openclaw nodes describe --node "<iPhone name>"Запрос сводки за сегодня
Поддерживается только today. Период охватывает время от местной полуночи до момента запроса
с учетом текущего календаря и часового пояса iPhone.
openclaw nodes invoke \ --node "<iPhone name>" \ --command health.summary \ --params '{"period":"today"}' \ --jsonАгенты могут вызвать ту же команду с помощью инструмента nodes:
{ "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"}. Сводки за несколько дней и исторические
сводки не поддерживаются.