ซิงก์ข้อมูล Apple Health ไป MQTT

เผยแพร่ข้อมูลสุขภาพไปยัง MQTT broker

Last updated: April 5, 2026

ในหน้านี้

ระบบอัตโนมัติ 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/data
  • home/health/metrics
  • user/health/export
  • hae/automation-name

แนวทางหัวข้อ:

  • ใช้เครื่องหมาย / เพื่อสร้างลำดับชั้นของหัวข้อ
  • ใช้ชื่อที่บอกประเภทข้อมูล
  • หลีกเลี่ยงช่องว่างและอักขระพิเศษ
  • พิจารณาใส่ชื่อระบบอัตโนมัติหากมีหลายระบบ

หมายเหตุ: ชื่อหัวข้อแยกตัวพิมพ์ใหญ่-เล็ก ให้แน่ใจว่าผู้สมัครรับใช้ชื่อหัวข้อเดียวกันทุกประการ

Client ID

ใส่ Client ID ที่ไม่ซ้ำสำหรับการเชื่อมต่อ MQTT นี้ เพื่อระบุอุปกรณ์ของคุณต่อ MQTT broker

ตัวอย่าง Client ID:

  • health-export-iphone
  • hae-client-001
  • ios-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:

เลือกตัวเลขและช่วงเวลา

การทดสอบและการตรวจสอบ

ทดสอบด้วยตนเอง

  1. แตะ "การส่งออกด้วยตนเอง" ในหน้าจอตั้งค่าระบบอัตโนมัติ
  2. เลือกช่วงวันที่
  3. แตะ "ส่งออก" เพื่อเผยแพร่ข้อความ
  4. ใช้ MQTT client สมัครรับหัวข้อของคุณและตรวจสอบว่าได้รับข้อความ

ใช้ MQTT Client

เพื่อยืนยันว่ามีการเผยแพร่ข้อความ:

  1. ตั้งค่า MQTT client
  2. เชื่อมต่อกับ MQTT broker ของคุณโดยใช้ข้อมูลประจำตัวเดียวกัน
  3. สมัครรับหัวข้อของคุณ
  4. เรียกการส่งออกด้วยตนเองจากแอป
  5. ตรวจสอบว่าข้อความปรากฏใน MQTT client ของคุณ

ดูบันทึกกิจกรรม

  1. แตะ "View Activity Logs" ในหน้าจอตั้งค่าระบบอัตโนมัติ
  2. ทบทวนการรันล่าสุดของระบบอัตโนมัติ
  3. ตรวจสอบข้อผิดพลาดการเชื่อมต่อหรือการเผยแพร่ล้มเหลว
  4. ยืนยันเวลาที่เผยแพร่

รูปแบบข้อความ

ข้อความ MQTT ถูกเผยแพร่เป็น JSON เนื้อหาข้อความเป็นไปตามรูปแบบ JSON การส่งออกมาตรฐาน:

{
  "data": {
    "metrics": [...],
    "workouts": [...],
    ...
  }
}

ข้อความถูกเผยแพร่ด้วย:

  • Topic: ตามที่กำหนดในระบบอัตโนมัติ
  • QoS: การส่งมากสุดหนึ่งครั้ง (at most once)
  • Retain: ไม่เก็บข้อความไว้
  • Payload: สตริง JSON ที่มีข้อมูลสุขภาพ

การแก้ปัญหา

ปัญหาที่พบบ่อย

การเชื่อมต่อล้มเหลว

  • ตรวจสอบว่าที่อยู่ IP/โฮสต์เนมของ broker ถูกต้อง
  • ตรวจสอบว่าพอร์ตถูกต้องและ broker กำลังฟังพอร์ตนั้น
  • ให้แน่ใจว่ามีการเชื่อมต่อเครือข่ายไปยัง broker
  • ตรวจสอบกฎไฟร์วอลล์ว่าอนุญาตการเชื่อมต่อไปยัง broker
  • ตรวจสอบว่า broker ต้องการ TLS/SSL หรือไม่

การยืนยันตัวตนล้มเหลว

  • ตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านถูกต้อง
  • ตรวจสอบว่าเปิดการยืนยันตัวตนบน broker หากใส่ข้อมูลประจำตัว
  • ให้แน่ใจว่าผู้ใช้มีสิทธิ์เผยแพร่ไปยังหัวข้อที่กำหนด

ไม่ได้รับข้อความ

  • ตรวจสอบว่าชื่อหัวข้อตรงกันทุกประการ (แยกตัวพิมพ์ใหญ่-เล็ก)
  • ตรวจสอบว่าผู้สมัครรับเชื่อมต่อ broker เดียวกัน
  • ให้แน่ใจว่าผู้สมัครรับสมัครรับหัวข้อที่ถูกต้อง
  • ตรวจสอบว่าเปิดใช้งานระบบอัตโนมัติและกำลังรัน
  • ดูบันทึกกิจกรรมหาข้อผิดพลาดการเผยแพร่

ข้อความมีขนาดใหญ่เกินไป

  • ลดจำนวนตัวชี้วัดสุขภาพที่เลือก
  • ใช้ตัวเลือกการรวมที่หยาบขึ้น
  • พิจารณาแยกเป็นระบบอัตโนมัติหลายตัวตามประเภทข้อมูลที่ต่างกัน

เคล็ดลับและแนวทางปฏิบัติ

  1. การซิงก์อัตโนมัติ:

    • ชาร์จอุปกรณ์และใช้ iPhone Mirroring
      • เมื่ออุปกรณ์กำลังชาร์จ iOS จำกัดการประมวลผลน้อยลง ข้อมูลจึงซิงก์ได้บ่อยขึ้น
      • การใช้ iPhone Mirroring ทำให้อุปกรณ์ทำงานเหมือนปลดล็อก ข้อมูลสุขภาพจึงเข้าถึงได้โดย Health Auto Export เพื่อรันการทำงานอัตโนมัติ
  2. การจัดระเบียบหัวข้อ:

    • ใช้โครงสร้างหัวข้อแบบลำดับชั้น (เช่น health/metrics, health/workouts)
    • ใส่ตัวระบุอุปกรณ์หรือระบบอัตโนมัติในหัวข้อ
    • จดบันทึกโครงสร้างหัวข้อเพื่ออ้างอิง
  3. ขนาดข้อความ:

    • รักษาขนาดข้อความให้เหมาะสมเพื่อไม่ให้เกินขีดจำกัดของ MQTT broker
    • ใช้การรวมที่หยาบขึ้นเพื่อลดปริมาณข้อมูล
    • พิจารณาแบ่งชุดข้อมูลขนาดใหญ่หลายข้อความ
  4. การตรวจสอบ:

    • ใช้บันทึกกิจกรรมในแอปเพื่อติดตามความสำเร็จของการเผยแพร่
  5. Broker บนคลาวด์:

    • เมื่อใช้ MQTT broker บนคลาวด์ (AWS IoT, HiveMQ Cloud ฯลฯ):
      • ปฏิบัติตามข้อกำหนดการเชื่อมต่อเฉพาะของผู้ให้บริการ
      • ตรวจสอบขีดจำกัดขนาดข้อความและอัตราข้อความ
      • ตรวจสอบแนวทางการตั้งชื่อหัวข้อ