HealthKit 摘要
OpenClaw 可向已連線的 iPhone 節點要求目前日曆日的唯讀摘要。iPhone 會在裝置端計算彙總資料,且僅傳回步數、睡眠時間、平均靜止心率,以及體能訓練次數/時間。不支援個別 HealthKit 樣本、來源、中繼資料、臨床紀錄、背景擷取或寫入。 此功能預設為關閉。它需要在 iPhone 上另行同意,並在閘道上授權。需求
- 執行 OpenClaw iOS App,且 HealthKit 回報健康資料可用的 iPhone。
- 已連線並核准的 iPhone 節點。請參閱 iOS App 設定。
- 可連線至 iPhone 節點的目前版本閘道。
- 你預期查看的任何指標都必須有可讀取的「健康」資料。Apple Watch 可將資料提供給 iPhone 的「健康」資料庫,但 HealthKit 摘要不需要 OpenClaw watchOS App。
啟用存取權
1. 授權閘道命令
將health.summary 新增至 openclaw.json 中現有的 gateway.nodes.allowCommands 陣列。保留所有既有命令:
health.summary 被歸類為高度涉及隱私的命令,iOS 平台預設絕不允許此命令。gateway.nodes.denyCommands 中的項目會覆寫允許項目。請參閱節點命令政策。
2. 在 iPhone 上啟用分享
在 iOS App 中:- 開啟設定 -> 權限 -> 隱私權與存取 -> 健康摘要。
- 點選啟用並分享摘要。
- 閱讀揭露事項,然後在 Apple 的權限面板中選擇允許 OpenClaw 讀取的「健康」類別。
health.summary 新增至節點宣告的命令介面。核准因此產生的節點配對更新:
health.summary 命令:
要求今日摘要
僅支援today。其涵蓋範圍是從當地午夜至提出要求的時間,並使用 iPhone 目前的日曆與時區。
nodes 工具呼叫相同命令:
| 欄位 | 含義 |
|---|---|
period | 一律為 today |
startISO | 當地一天的開始時間,編碼為 ISO 時間點 |
endISO | 要求時間,編碼為 ISO 時間點 |
timeZoneIdentifier | iPhone 時區識別碼 |
stepCount | 四捨五入後的累計步數 |
sleepDurationMinutes | 去除重複並裁切至今日範圍的睡眠時間 |
restingHeartRateBpm | 平均靜止心率 |
workoutCount | 今日開始的體能訓練 |
workoutDurationMinutes | 這些體能訓練的總時間 |
隱私權行為
- 彙總作業在 iPhone 上進行。原始樣本不會離開裝置。
- 要求的彙總資料會透過你的閘道離開 iPhone。當代理程式提出要求時,彙總資料會送達已設定的 AI 供應商,並可能保留在聊天記錄中。直接透過命令列介面叫用則會將資料傳回給命令列介面操作員。
- OpenClaw 僅要求讀取權限,無法新增或修改「健康」資料。
- OpenClaw 僅在叫用
health.summary時讀取 HealthKit,不會在背景擷取健康資料。 - HealthKit 刻意不透露讀取權限是否遭拒。缺少指標可能表示存取遭拒、沒有相符的樣本,或資料類型無法使用。OpenClaw 無法區分這些情況。
- 此摘要用於個人健康與健身情境,而非診斷或醫療建議。
health.summary 命令。你也可以從 gateway.nodes.allowCommands 移除 health.summary,以關閉閘道端的存取關卡。
疑難排解
節點未宣告此命令
確認已在 iOS App 中啟用「健康摘要」,且 iPhone 已連線。執行openclaw nodes pending 並核准任何功能更新,然後再次檢查 openclaw nodes describe --node "<iPhone name>"。
命令需要明確選擇加入
將health.summary 新增至 gateway.nodes.allowCommands。同時確認 gateway.nodes.denyCommands 不包含該命令;拒絕清單優先。
HEALTH_ACCESS_DISABLED
App 端的分享開關已關閉。請在 iPhone 的隱私權與存取下啟用健康摘要。
摘要成功,但缺少指標
開啟 Apple 的「健康」App,確認今日已有資料。檢查 Apple「健康」設定中授予 OpenClaw 的存取權,但不要將空白結果視為存取遭拒的證明:HealthKit 會刻意隱藏這項差異。較早的時間範圍失敗
此命令僅接受{"period":"today"}。不支援多日與歷史摘要。