Platforms overview
สรุปข้อมูล HealthKit
ข้อมูลสรุป HealthKit
OpenClaw สามารถขอข้อมูลสรุปแบบอ่านอย่างเดียวของวันปฏิทินปัจจุบันจาก Node ของ iPhone หรือ iPad ที่เชื่อมต่ออยู่ อุปกรณ์จะคำนวณข้อมูลรวมภายในอุปกรณ์และส่งคืนเฉพาะจำนวนก้าว ระยะเวลานอนหลับ อัตราการเต้นของหัวใจขณะพักโดยเฉลี่ย และจำนวน/ระยะเวลาการออกกำลังกาย ไม่รองรับตัวอย่างข้อมูล HealthKit แต่ละรายการ แหล่งที่มา เมทาดาทา เวชระเบียน การนำเข้าข้อมูลเบื้องหลัง และการเขียนข้อมูล
ฟีเจอร์นี้ปิดอยู่โดยค่าเริ่มต้น โดยต้องให้ความยินยอมแยกต่างหากบนอุปกรณ์ iOS และให้สิทธิ์บน Gateway
ข้อกำหนด
- iPhone หรือ iPad ที่ใช้งานแอป OpenClaw สำหรับ iOS ซึ่ง HealthKit รายงานว่ามีข้อมูลสุขภาพพร้อมใช้งาน
- Node iOS ที่เชื่อมต่อและได้รับการอนุมัติแล้ว โปรดดู การตั้งค่าแอป iOS
- Gateway เวอร์ชันปัจจุบันที่สามารถเข้าถึง Node iOS ได้
- ข้อมูล Health ที่อ่านได้สำหรับเมตริกที่ต้องการดู Apple Watch สามารถเพิ่มข้อมูลลงในคลัง Apple Health ได้ แต่ไม่จำเป็นต้องใช้แอป 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. เปิดใช้การแชร์บนอุปกรณ์ iOS
ในแอป iOS:
- เปิด Settings -> Permissions และค้นหา Apple Health Summaries ในส่วน Apple Health ที่แสดงอยู่เสมอ
- แตะ Enable Apple Health Summaries
- อ่านคำชี้แจง จากนั้นเลือกหมวดหมู่ Health ที่ OpenClaw สามารถอ่านได้ในหน้าต่างสิทธิ์ของ Apple
สวิตช์นี้จะบันทึกตัวเลือกการแชร์กับ OpenClaw ที่ให้ไว้อย่างชัดแจ้ง แต่ไม่ได้หมายความว่า Apple ได้ให้สิทธิ์ทุกหมวดหมู่ที่ร้องขอ
การเปิดใช้ข้อมูลสรุป Health จะเพิ่ม health.summary ลงในชุดคำสั่งที่ Node ประกาศไว้ ให้อนุมัติการอัปเดตการจับคู่ Node ที่เกิดขึ้น:
openclaw nodes pendingopenclaw nodes approve <requestId>จากนั้นตรวจสอบว่าอุปกรณ์ iOS ที่เชื่อมต่อแสดงคำสั่ง health.summary ที่มีผลใช้งาน:
openclaw nodes describe --node "<iOS device name>"ขอข้อมูลสรุปของวันนี้
รองรับเฉพาะ today โดยครอบคลุมตั้งแต่เที่ยงคืนตามเวลาท้องถิ่นจนถึงเวลาที่ส่งคำขอ โดยใช้ปฏิทินและเขตเวลาปัจจุบันของอุปกรณ์ iOS
openclaw nodes invoke \ --node "<iOS device name>" \ --command health.summary \ --params '{"period":"today"}' \ --jsonAgent สามารถเรียกคำสั่งเดียวกันด้วยเครื่องมือ nodes:
{ "action": "invoke", "node": "<iOS device name>", "invokeCommand": "health.summary", "invokeParamsJson": "{\"period\":\"today\"}"}เพย์โหลดข้อมูลสรุปประกอบด้วย:
| ฟิลด์ | ความหมาย |
|---|---|
period |
เป็น today เสมอ |
startISO |
เวลาเริ่มต้นของวันตามเวลาท้องถิ่น ซึ่งเข้ารหัสเป็นเวลาแบบ ISO |
endISO |
เวลาที่ส่งคำขอ ซึ่งเข้ารหัสเป็นเวลาแบบ ISO |
timeZoneIdentifier |
ตัวระบุเขตเวลาของอุปกรณ์ iOS |
stepCount |
จำนวนก้าวสะสมที่ปัดเศษแล้ว |
sleepDurationMinutes |
เวลานอนหลับที่ตัดข้อมูลซ้ำออกและจำกัดเฉพาะวันนี้ |
restingHeartRateBpm |
อัตราการเต้นของหัวใจขณะพักโดยเฉลี่ย |
workoutCount |
การออกกำลังกายที่เริ่มในวันนี้ |
workoutDurationMinutes |
ระยะเวลารวมของการออกกำลังกายเหล่านั้น |
ฟิลด์เมตริกเป็นฟิลด์เสริมและจะไม่รวมอยู่เมื่อ HealthKit ไม่ส่งคืนค่าที่อ่านได้ ระบบจะรวมช่วงการนอนหลับและแหล่งข้อมูลที่ทับซ้อนกันก่อนคำนวณระยะเวลา จึงไม่นับนาทีเดียวกันซ้ำสองครั้ง
ลักษณะการทำงานด้านความเป็นส่วนตัว
- การรวมข้อมูลเกิดขึ้นบนอุปกรณ์ iOS ตัวอย่างข้อมูลดิบจะไม่ออกจากอุปกรณ์
- ข้อมูลรวมที่ร้องขอจะออกจากอุปกรณ์ผ่าน Gateway เมื่อ Agent ร้องขอ ข้อมูลรวมจะส่งไปถึงผู้ให้บริการ AI ที่กำหนดค่าไว้และอาจคงอยู่ในประวัติการแชต การเรียกใช้ CLI โดยตรงจะส่งข้อมูลกลับไปยังผู้ดำเนินการ CLI
- OpenClaw ขอเฉพาะสิทธิ์การอ่านเท่านั้น จึงไม่สามารถเพิ่มหรือแก้ไขข้อมูล Health ได้
- OpenClaw จะอ่าน HealthKit เฉพาะเมื่อมีการเรียกใช้
health.summaryเท่านั้น ไม่มีการนำเข้าข้อมูลสุขภาพเบื้องหลัง - HealthKit ไม่เปิดเผยโดยเจตนาว่าสิทธิ์การอ่านถูกปฏิเสธหรือไม่ เมตริกที่ขาดหายไปอาจหมายถึงถูกปฏิเสธสิทธิ์ ไม่มีตัวอย่างข้อมูลที่ตรงกัน หรือชนิดข้อมูลไม่พร้อมใช้งาน OpenClaw ไม่สามารถแยกแยะกรณีเหล่านี้ได้
- ข้อมูลสรุปนี้มีไว้เพื่อบริบทด้านสุขภาพและการออกกำลังกายส่วนบุคคล ไม่ใช่เพื่อการวินิจฉัยหรือคำแนะนำทางการแพทย์
หากต้องการหยุดแชร์ ให้กลับไปที่ Apple Health Summaries แล้วแตะ Turn Off Summaries จากนั้นอุปกรณ์ iOS จะนำความสามารถ Health และคำสั่ง health.summary ออกจากชุดคำสั่งของ Node นอกจากนี้ยังสามารถนำ health.summary ออกจาก
gateway.nodes.allowCommands เพื่อปิดการอนุญาตฝั่ง Gateway ได้
การแก้ไขปัญหา
Node ไม่ได้ประกาศคำสั่ง
ยืนยันว่าเปิดใช้ข้อมูลสรุป Apple Health ในแอป iOS และอุปกรณ์เชื่อมต่ออยู่ เรียกใช้ openclaw nodes pending และอนุมัติการอัปเดตความสามารถทั้งหมด จากนั้นตรวจสอบ openclaw nodes describe --node "<iOS device name>" อีกครั้ง
คำสั่งต้องเปิดใช้อย่างชัดแจ้ง
เพิ่ม health.summary ลงใน gateway.nodes.allowCommands และตรวจสอบด้วยว่า
gateway.nodes.denyCommands ไม่มีรายการดังกล่าว เนื่องจากรายการปฏิเสธมีผลเหนือกว่า
HEALTH_ACCESS_DISABLED
สวิตช์การแชร์ฝั่งแอปปิดอยู่ เปิดใช้ Apple Health Summaries ภายใต้ Settings -> Permissions -> Apple Health บนอุปกรณ์ iOS
ขอข้อมูลสรุปสำเร็จแต่ไม่มีเมตริกบางรายการ
เปิดแอป Health ของ Apple และยืนยันว่ามีข้อมูลของวันนี้ ตรวจสอบสิทธิ์การเข้าถึงของ OpenClaw ในการตั้งค่า Health ของ Apple แต่อย่าถือว่าผลลัพธ์ว่างเปล่าเป็นหลักฐานว่าสิทธิ์ถูกปฏิเสธ เนื่องจาก HealthKit จงใจซ่อนความแตกต่างดังกล่าว
ช่วงเวลาที่เก่ากว่าใช้ไม่ได้
คำสั่งยอมรับเฉพาะ {"period":"today"} ไม่รองรับข้อมูลสรุปหลายวันและข้อมูลย้อนหลัง