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

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

Last updated: May 20, 2026

ในหน้านี้

คู่มือระบบอัตโนมัติ MQTT

ระบบอัตโนมัติ MQTT ให้คุณเผยแพร่ข้อมูลสุขภาพไปยัง MQTT broker ได้โดยอัตโนมัติ เหมาะสำหรับการเชื่อมต่อกับแพลตฟอร์ม IoT ระบบบ้านอัตโนมัติ หรือบริการใด ๆ ที่รองรับการส่งข้อความ MQTT

ภาพรวม

ระบบอัตโนมัติ MQTT เผยแพร่ข้อมูลสุขภาพของคุณเป็นข้อความ JSON ไปยังหัวข้อ MQTT ที่กำหนดบน MQTT broker ข้อมูลจะถูกส่งเมื่อระบบอัตโนมัติรันตามการตั้งค่าความถี่การซิงก์ของคุณ

กรณีใช้งาน:

  • เชื่อมต่อกับแพลตฟอร์ม IoT (Home Assistant, OpenHAB ฯลฯ)
  • เผยแพร่ข้อมูลสุขภาพไปยังแดชบอร์ดที่ใช้ MQTT
  • ระบบตรวจสอบสุขภาพแบบเรียลไทม์
  • การเชื่อมต่อบ้านอัจฉริยะแบบกำหนดเอง
  • แพลตฟอร์มบันทึกและวิเคราะห์ข้อมูล

คุณสมบัติหลัก:

  • รองรับเฉพาะ JSON (ปรับให้เหมาะกับ MQTT)
  • รองรับการเชื่อมต่อแบบมีการยืนยันตัวตนและไม่ระบุตัวตน
  • โครงสร้างหัวข้อปรับได้
  • จัดการ Client ID
  • การยืนยันตัวตนด้วยชื่อผู้ใช้/รหัสผ่าน (ไม่บังคับ)

ข้อจำกัด

  • การเข้าถึงข้อมูลสุขภาพ: แอปไม่ได้รับอนุญาตให้เข้าถึงข้อมูลสุขภาพขณะ iPhone ถูกล็อก ระบบอัตโนมัติจะทำงานเฉพาะเมื่ออุปกรณ์ปลดล็อก นี่เป็นข้อจำกัดจาก Apple ที่ไม่สามารถหลีกเลี่ยงได้ ข้อมูลเพิ่มเติม

  • การประมวลผลในพื้นหลัง: 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:

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

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

ใช้ MQTT Client

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

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

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

ข้อความ 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
      • ขณะชาร์จ iOS จำกัดประสิทธิภาพน้อยลง ทำให้ซิงค์ข้อมูลได้บ่อยขึ้น
      • เมื่อใช้การสะท้อนหน้าจอ iPhone อุปกรณ์จะทำงานเหมือนปลดล็อก Health Auto Export จึงเข้าถึงข้อมูลสุขภาพเพื่อรันการทำงานอัตโนมัติได้
  2. การซิงก์อัตโนมัติ:

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

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

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

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

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

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

  1. แตะ ดูบันทึกกิจกรรม ในหน้าจอการตั้งค่าระบบอัตโนมัติ
  2. ตรวจสอบ การรัน (จัดกลุ่ม ใหม่สุดก่อน) และขยายเหตุการณ์ในแต่ละการรัน
  3. แยก คำเตือน (เช่น การคิวรีข้อมูลสุขภาพช้า) จาก ข้อผิดพลาด (ความล้มเหลวในการเชื่อมต่อโบรกเกอร์หรือการเผยแพร่)—ดู ภาพรวมระบบอัตโนมัติ — บันทึกกิจกรรม
  4. ตรวจสอบบรรทัดความสำเร็จและความล้มเหลวของการเผยแพร่สำหรับแต่ละการรัน
  5. แชร์ (แถบเครื่องมือ) ส่งออก ZIP การวินิจฉัย บันทึกเหตุการณ์แอป ฉบับเต็มสำหรับฝ่ายสนับสนุน (เหมือน การตั้งค่า → ขั้นสูง)
  6. ล้าง ลบเฉพาะประวัติกิจกรรมของระบบอัตโนมัตินี้