ซิงก์ข้อมูล Apple Health ไป MQTT
เผยแพร่ข้อมูลสุขภาพไปยัง MQTT broker
Last updated: April 5, 2026
ในหน้านี้
- ภาพรวม
- ข้อกำหนดเบื้องต้น
- การกำหนดค่า
- ชื่อระบบอัตโนมัติ
- การแจ้งเตือน
- การกำหนดค่า Broker
- การตั้งค่าประเภทข้อมูล
- ประเภทข้อมูล
- การตั้งค่าตัวชี้วัดสุขภาพ
- การตั้งค่าการออกกำลังกาย
- การตั้งค่าการส่งออก
- รูปแบบการส่งออก
- เวอร์ชันการส่งออก
- ช่วงวันที่
- สรุปข้อมูล
- การจัดกลุ่มตามเวลา
- สรุปข้อมูล
- ความถี่การซิงก์
- การทดสอบและการตรวจสอบ
- ทดสอบด้วยตนเอง
- ใช้ MQTT Client
- ดูบันทึกกิจกรรม
- รูปแบบข้อความ
- การแก้ปัญหา
- ปัญหาที่พบบ่อย
- เคล็ดลับและแนวทางปฏิบัติ
ระบบอัตโนมัติ MQTT ให้คุณเผยแพร่ข้อมูลสุขภาพไปยัง MQTT broker ได้โดยอัตโนมัติ เหมาะสำหรับการเชื่อมต่อกับแพลตฟอร์ม IoT ระบบบ้านอัตโนมัติ หรือบริการใด ๆ ที่รองรับการส่งข้อความ MQTT
ภาพรวม
ระบบอัตโนมัติ MQTT เผยแพร่ข้อมูลสุขภาพของคุณเป็นข้อความ JSON ไปยังหัวข้อ MQTT ที่กำหนดบน MQTT broker ข้อมูลจะถูกส่งเมื่อระบบอัตโนมัติรันตามการตั้งค่าความถี่การซิงก์ของคุณ
กรณีใช้งาน:
- เชื่อมต่อกับแพลตฟอร์ม IoT (Home Assistant, OpenHAB ฯลฯ)
- เผยแพร่ข้อมูลสุขภาพไปยังแดชบอร์ดที่ใช้ MQTT
- ระบบตรวจสอบสุขภาพแบบเรียลไทม์
- การเชื่อมต่อบ้านอัจฉริยะแบบกำหนดเอง
- แพลตฟอร์มบันทึกและวิเคราะห์ข้อมูล
คุณสมบัติหลัก:
- รองรับเฉพาะ JSON (ปรับให้เหมาะกับ MQTT)
- รองรับการเชื่อมต่อแบบมีการยืนยันตัวตนและไม่ระบุตัวตน
- โครงสร้างหัวข้อปรับได้
- จัดการ Client ID
- การยืนยันตัวตนด้วยชื่อผู้ใช้/รหัสผ่าน (ไม่บังคับ)
ข้อจำกัด
การเข้าถึงข้อมูลสุขภาพ: แอปไม่ได้รับอนุญาตให้เข้าถึงข้อมูลสุขภาพขณะ iPhone ถูกล็อก ระบบอัตโนมัติจะรันได้เฉพาะช่วงเวลาที่อุปกรณ์ของคุณปลดล็อกเท่านั้น ซึ่งอาจส่งผลต่อความทันสมัยของข้อมูล ดูคำแนะนำการซิงก์ด้วยตนเองเพื่อให้ข้อมูลเป็นปัจจุบัน
การประมวลผลในพื้นหลัง: iOS จำกัดการประมวลผลในพื้นหลังเพื่อประหยัดแบตเตอรี่ ระบบอัตโนมัติอาศัยการรีเฟรชแอปในพื้นหลัง (Background App Refresh) และอาจไม่รันทันทีหาก:
- ปิดการรีเฟรชแอปในพื้นหลังสำหรับแอปนี้
- อุปกรณ์อยู่ในโหมดประหยัดพลังงาน
- อุปกรณ์ไม่ได้ใช้งานเป็นเวลานาน
- ทรัพยากรระบบถูกจำกัด
- มีหลายแอปแย่งช่วงเวลาการทำงานในพื้นหลัง
รองรับเฉพาะ JSON (เปลี่ยนไม่ได้)
ต้องมี MQTT broker (ภายในเครือข่ายหรือบนคลาวด์)
ข้อกำหนดเบื้องต้น
- MQTT broker (เช่น Mosquitto, HiveMQ, AWS IoT Core ฯลฯ)
- การเชื่อมต่อเครือข่ายไปยัง MQTT broker ของคุณ
- ที่อยู่ IP หรือโฮสต์เนมของ broker
- หมายเลขพอร์ต
- ไม่บังคับ: ชื่อผู้ใช้และรหัสผ่านหาก broker ของคุณต้องการการยืนยันตัวตน
การกำหนดค่า
ไปที่หน้าจอการส่งออกอัตโนมัติจากเมนูหลัก แล้วแตะ "ระบบอัตโนมัติใหม่" และเลือก "MQTT" เป็นประเภท
ชื่อระบบอัตโนมัติ
ตั้งชื่อที่อธิบายได้สำหรับระบบอัตโนมัติของคุณ (เช่น "Home Assistant MQTT", "Cloud MQTT Broker")
การแจ้งเตือน
กำหนดเมื่อต้องการรับการแจ้งเตือน:
- Notify on Cache Update — แจ้งเมื่ออัปเดตข้อมูลแคช
- Notify When Run — แจ้งทุกครั้งที่ระบบอัตโนมัติเผยแพร่ข้อมูล
การกำหนดค่า Broker
ที่อยู่ IP
ใส่ที่อยู่ IP หรือโฮสต์เนมของ MQTT broker ของคุณ
ตัวอย่าง:
192.168.1.100(IP ภายในเครือข่าย)mqtt.example.com(โฮสต์เนม)broker.hivemq.com(MQTT broker บนคลาวด์)localhost(หากรันบนอุปกรณ์เดียวกัน ไม่แนะนำบน iOS)
หมายเหตุ: ใช้ที่อยู่ IP สำหรับ broker ภายในเครือข่ายของคุณ หรือโฮสต์เนมสำหรับ broker บนคลาวด์ ให้แน่ใจว่า broker เข้าถึงได้จากอุปกรณ์ของคุณ
พอร์ต
ใส่หมายเลขพอร์ตสำหรับ MQTT broker ของคุณ
หมายเหตุ: พอร์ตเริ่มต้นคือ 1883
Topic
ใส่หัวข้อ MQTT ที่จะเผยแพร่ข้อมูลสุขภาพ นี่คือหัวข้อที่ผู้สมัครรับจะใช้เพื่อรับข้อมูลสุขภาพของคุณ
ตัวอย่างหัวข้อ:
health/datahome/health/metricsuser/health/exporthae/automation-name
แนวทางหัวข้อ:
- ใช้เครื่องหมาย
/เพื่อสร้างลำดับชั้นของหัวข้อ - ใช้ชื่อที่บอกประเภทข้อมูล
- หลีกเลี่ยงช่องว่างและอักขระพิเศษ
- พิจารณาใส่ชื่อระบบอัตโนมัติหากมีหลายระบบ
หมายเหตุ: ชื่อหัวข้อแยกตัวพิมพ์ใหญ่-เล็ก ให้แน่ใจว่าผู้สมัครรับใช้ชื่อหัวข้อเดียวกันทุกประการ
Client ID
ใส่ Client ID ที่ไม่ซ้ำสำหรับการเชื่อมต่อ MQTT นี้ เพื่อระบุอุปกรณ์ของคุณต่อ MQTT broker
ตัวอย่าง Client ID:
health-export-iphonehae-client-001ios-health-app
ชื่อผู้ใช้ (ไม่บังคับ)
ใส่ชื่อผู้ใช้สำหรับการยืนยันตัวตนกับ MQTT broker ปล่อยว่างหาก broker ของคุณไม่ต้องการการยืนยันตัวตน
รหัสผ่าน (ไม่บังคับ)
ใส่รหัสผ่านสำหรับการยืนยันตัวตนกับ MQTT broker ปล่อยว่างหาก broker ของคุณไม่ต้องการการยืนยันตัวตน
การตั้งค่าประเภทข้อมูล
ประเภทข้อมูล
เลือกประเภทข้อมูลสุขภาพที่จะส่งออก:
- ตัวชี้วัดสุขภาพ — ก้าว อัตราการเต้นของหัวใจ การนอน และการวัดอื่น ๆ
- การออกกำลังกาย — กิจกรรมออกกำลังกายและฟิตเนส
- อาการ — อาการและภาวะสุขภาพ
- ECG — การบันทึกคลื่นไฟฟ้าหัวใจ
- การแจ้งเตือนอัตราการเต้นของหัวใจ — เหตุการณ์อัตราการเต้นสูง/ต่ำ
- สภาวะทางจิตใจ — อารมณ์และสภาวะจิตใจ (iOS 18.0+)
- การติดตามรอบเดือน — ข้อมูลรอบเดือนและสุขภาพสืบพันธุ์
- ยา — บันทึกยาและการปฏิบัติตาม (iOS 26.0+)
การตั้งค่าตัวชี้วัดสุขภาพ
เมื่อเลือกตัวชี้วัดสุขภาพ:
เลือกตัวชี้วัดสุขภาพ — เลือกตัวชี้วัดเฉพาะที่จะรวม คุณเลือกได้ทั้งตัวชี้วัดที่มีทั้งหมดหรือเฉพาะบางตัว
เคล็ดลับ: เลือกเฉพาะตัวชี้วัดที่คุณต้องการช่วยลดขนาดข้อความและเวลาประมวลผล
แหล่งข้อมูลที่ต้องการ — กำหนดว่าเมื่อมีหลายแหล่งให้ตัวชี้วัดเดียวกัน แหล่งใดมีความสำคัญกว่า
การตั้งค่าการออกกำลังกาย
เมื่อเลือกการออกกำลังกาย:
รวมข้อมูลเส้นทาง — เปิดเพื่อรวมเส้นทางสำหรับการออกกำลังกายที่มีข้อมูลตำแหน่ง
รวมตัวชี้วัดการออกกำลังกาย — เปิดเพื่อรวมตัวชี้วัดสุขภาพที่เก็บระหว่างออกกำลังกาย (อัตราการเต้นของหัวใจ แคลอรี ฯลฯ)
การจัดกลุ่มตามเวลา (ตัวชี้วัดการออกกำลังกาย) — เมื่อใช้ Export Version 2 และเปิดรวมตัวชี้วัดการออกกำลังกาย:
- Minutes — จัดกลุ่มตัวชี้วัดการออกกำลังกายตามนาที
- Seconds — จัดกลุ่มตัวชี้วัดการออกกำลังกายตามวินาที
การตั้งค่าการส่งออก
รูปแบบการส่งออก
หมายเหตุ: ระบบอัตโนมัติ MQTT รองรับเฉพาะรูปแบบ JSON เท่านั้น การตั้งค่านี้เปลี่ยนไม่ได้และถูกตั้งเป็น JSON โดยอัตโนมัติ
เวอร์ชันการส่งออก
เลือกเวอร์ชันการส่งออกสำหรับข้อมูลการออกกำลังกาย:
- Version 1 — รูปแบบเก่า
- Version 2 — รูปแบบปัจจุบันพร้อมข้อมูลการออกกำลังกายที่ละเอียดขึ้น
หมายเหตุ: เวอร์ชันการส่งออกส่งผลหลักต่อโครงสร้างข้อมูลการออกกำลังกายหากคุณส่งออกการออกกำลังกาย
ช่วงวันที่
เลือกว่าควรส่งออกข้อมูลเมื่อใด:
- Default — ซิงก์ข้อมูลของวันก่อนหน้าเต็มวัน รวมถึงข้อมูลจนถึงวันที่และเวลาปัจจุบัน
- Since Last Sync — ในแต่ละครั้งที่ซิงก์ ส่งออกข้อมูลทั้งหมดตั้งแต่ครั้งล่าสุดที่ส่งออกรันจนถึงวันที่และเวลาปัจจุบัน
- Today — ซิงก์ข้อมูลทั้งหมดของวันปัจจุบันจนถึงเวลาปัจจุบัน
- Yesterday — ซิงก์ข้อมูลทั้งหมดของวันก่อนหน้าเต็มวัน
- Previous 7 Days — ซิงก์ข้อมูลเจ็ดวันก่อนหน้าเต็มวัน
สรุปข้อมูล
เมื่อใช้รูปแบบ JSON กับประเภทตัวชี้วัดสุขภาพ ให้เปิดหรือปิดสรุปข้อมูล
- เปิด — ให้ข้อมูลสรุปแบบรวม (ค่าเริ่มต้น)
- ปิด — ให้ข้อมูลแยกจุดเมื่อทำได้ แสดงจุดข้อมูลแต่ละจุด
การจัดกลุ่มตามเวลา
เมื่อเปิดสรุปข้อมูล ให้เลือกวิธีรวมข้อมูล
สรุปข้อมูล
เปิดหรือปิดสรุปข้อมูลสำหรับตัวชี้วัดสุขภาพ
- เปิด — ให้ข้อมูลสรุปแบบรวม (ค่าเริ่มต้น)
- ปิด — ให้ข้อมูลแยกจุดเมื่อทำได้
หมายเหตุ: การตั้งค่านี้ใช้กับประเภทตัวชี้วัดสุขภาพเท่านั้น
ความถี่การซิงก์
กำหนดความบ่อยที่ระบบอัตโนมัติควรเผยแพร่ข้อมูลไปยัง MQTT:
เลือกตัวเลขและช่วงเวลา
การทดสอบและการตรวจสอบ
ทดสอบด้วยตนเอง
- แตะ "การส่งออกด้วยตนเอง" ในหน้าจอตั้งค่าระบบอัตโนมัติ
- เลือกช่วงวันที่
- แตะ "ส่งออก" เพื่อเผยแพร่ข้อความ
- ใช้ MQTT client สมัครรับหัวข้อของคุณและตรวจสอบว่าได้รับข้อความ
ใช้ MQTT Client
เพื่อยืนยันว่ามีการเผยแพร่ข้อความ:
- ตั้งค่า MQTT client
- เชื่อมต่อกับ MQTT broker ของคุณโดยใช้ข้อมูลประจำตัวเดียวกัน
- สมัครรับหัวข้อของคุณ
- เรียกการส่งออกด้วยตนเองจากแอป
- ตรวจสอบว่าข้อความปรากฏใน MQTT client ของคุณ
ดูบันทึกกิจกรรม
- แตะ "View Activity Logs" ในหน้าจอตั้งค่าระบบอัตโนมัติ
- ทบทวนการรันล่าสุดของระบบอัตโนมัติ
- ตรวจสอบข้อผิดพลาดการเชื่อมต่อหรือการเผยแพร่ล้มเหลว
- ยืนยันเวลาที่เผยแพร่
รูปแบบข้อความ
ข้อความ MQTT ถูกเผยแพร่เป็น JSON เนื้อหาข้อความเป็นไปตามรูปแบบ JSON การส่งออกมาตรฐาน:
{
"data": {
"metrics": [...],
"workouts": [...],
...
}
}
ข้อความถูกเผยแพร่ด้วย:
- Topic: ตามที่กำหนดในระบบอัตโนมัติ
- QoS: การส่งมากสุดหนึ่งครั้ง (at most once)
- Retain: ไม่เก็บข้อความไว้
- Payload: สตริง JSON ที่มีข้อมูลสุขภาพ
การแก้ปัญหา
ปัญหาที่พบบ่อย
การเชื่อมต่อล้มเหลว
- ตรวจสอบว่าที่อยู่ IP/โฮสต์เนมของ broker ถูกต้อง
- ตรวจสอบว่าพอร์ตถูกต้องและ broker กำลังฟังพอร์ตนั้น
- ให้แน่ใจว่ามีการเชื่อมต่อเครือข่ายไปยัง broker
- ตรวจสอบกฎไฟร์วอลล์ว่าอนุญาตการเชื่อมต่อไปยัง broker
- ตรวจสอบว่า broker ต้องการ TLS/SSL หรือไม่
การยืนยันตัวตนล้มเหลว
- ตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านถูกต้อง
- ตรวจสอบว่าเปิดการยืนยันตัวตนบน broker หากใส่ข้อมูลประจำตัว
- ให้แน่ใจว่าผู้ใช้มีสิทธิ์เผยแพร่ไปยังหัวข้อที่กำหนด
ไม่ได้รับข้อความ
- ตรวจสอบว่าชื่อหัวข้อตรงกันทุกประการ (แยกตัวพิมพ์ใหญ่-เล็ก)
- ตรวจสอบว่าผู้สมัครรับเชื่อมต่อ broker เดียวกัน
- ให้แน่ใจว่าผู้สมัครรับสมัครรับหัวข้อที่ถูกต้อง
- ตรวจสอบว่าเปิดใช้งานระบบอัตโนมัติและกำลังรัน
- ดูบันทึกกิจกรรมหาข้อผิดพลาดการเผยแพร่
ข้อความมีขนาดใหญ่เกินไป
- ลดจำนวนตัวชี้วัดสุขภาพที่เลือก
- ใช้ตัวเลือกการรวมที่หยาบขึ้น
- พิจารณาแยกเป็นระบบอัตโนมัติหลายตัวตามประเภทข้อมูลที่ต่างกัน
เคล็ดลับและแนวทางปฏิบัติ
การซิงก์อัตโนมัติ:
- ชาร์จอุปกรณ์และใช้ iPhone Mirroring
- เมื่ออุปกรณ์กำลังชาร์จ iOS จำกัดการประมวลผลน้อยลง ข้อมูลจึงซิงก์ได้บ่อยขึ้น
- การใช้ iPhone Mirroring ทำให้อุปกรณ์ทำงานเหมือนปลดล็อก ข้อมูลสุขภาพจึงเข้าถึงได้โดย Health Auto Export เพื่อรันการทำงานอัตโนมัติ
- ชาร์จอุปกรณ์และใช้ iPhone Mirroring
การจัดระเบียบหัวข้อ:
- ใช้โครงสร้างหัวข้อแบบลำดับชั้น (เช่น
health/metrics,health/workouts) - ใส่ตัวระบุอุปกรณ์หรือระบบอัตโนมัติในหัวข้อ
- จดบันทึกโครงสร้างหัวข้อเพื่ออ้างอิง
- ใช้โครงสร้างหัวข้อแบบลำดับชั้น (เช่น
ขนาดข้อความ:
- รักษาขนาดข้อความให้เหมาะสมเพื่อไม่ให้เกินขีดจำกัดของ MQTT broker
- ใช้การรวมที่หยาบขึ้นเพื่อลดปริมาณข้อมูล
- พิจารณาแบ่งชุดข้อมูลขนาดใหญ่หลายข้อความ
การตรวจสอบ:
- ใช้บันทึกกิจกรรมในแอปเพื่อติดตามความสำเร็จของการเผยแพร่
Broker บนคลาวด์:
- เมื่อใช้ MQTT broker บนคลาวด์ (AWS IoT, HiveMQ Cloud ฯลฯ):
- ปฏิบัติตามข้อกำหนดการเชื่อมต่อเฉพาะของผู้ให้บริการ
- ตรวจสอบขีดจำกัดขนาดข้อความและอัตราข้อความ
- ตรวจสอบแนวทางการตั้งชื่อหัวข้อ
- เมื่อใช้ MQTT broker บนคลาวด์ (AWS IoT, HiveMQ Cloud ฯลฯ):