Đồng bộ dữ liệu Apple Health tới MQTT
Xuất bản dữ liệu sức khỏe lên broker MQTT.
Last updated: April 5, 2026
Trên trang này
- Tổng quan
- Điều kiện
- Cấu hình
- Tên tự động hóa
- Thông báo
- Cấu hình broker
- Cài đặt loại dữ liệu
- Loại dữ liệu
- Cấu hình Chỉ số sức khỏe
- Cấu hình Buổi tập
- Cài đặt xuất
- Định dạng xuất
- Phiên bản xuất
- Khoảng ngày
- Tóm tắt dữ liệu
- Gom nhóm thời gian
- Tóm tắt dữ liệu
- Tần suất đồng bộ
- Kiểm thử và xác minh
- Kiểm thử thủ công
- Dùng client MQTT
- Xem nhật ký hoạt động
- Định dạng tin
- Khắc phục sự cố
- Vấn đề thường gặp
- Mẹo và thực hành tốt
Tự động hóa MQTT cho phép bạn tự động xuất bản dữ liệu sức khỏe lên broker MQTT. Cách này rất phù hợp khi tích hợp với nền tảng IoT, hệ thống nhà thông minh hoặc bất kỳ dịch vụ nào hỗ trợ nhắn tin MQTT.
Tổng quan
Tự động hóa MQTT xuất bản dữ liệu sức khỏe của bạn dưới dạng tin JSON tới một topic MQTT trên broker. Dữ liệu được gửi mỗi khi tự động hóa chạy theo cài đặt tần suất đồng bộ của bạn.
Trường hợp dùng:
- Tích hợp với nền tảng IoT (Home Assistant, OpenHAB, v.v.)
- Xuất bản dữ liệu sức khỏe lên bảng điều khiển dựa trên MQTT
- Hệ thống giám sát sức khỏe gần thời gian thực
- Tích hợp nhà thông minh tùy chỉnh
- Nền tảng ghi log và phân tích dữ liệu
Điểm chính:
- Chỉ định dạng JSON (tối ưu cho MQTT)
- Hỗ trợ kết nối có xác thực và ẩn danh
- Cấu trúc topic có thể cấu hình
- Quản lý Client ID
- Tùy chọn xác thực tên người dùng/mật khẩu
Hạn chế
Truy cập dữ liệu Sức khỏe: Ứng dụng không được phép truy cập dữ liệu sức khỏe khi iPhone đang khóa. Tự động hóa chỉ chạy trong các khoảng thời gian thiết bị của bạn đang mở khóa. Điều này có thể ảnh hưởng đến độ “mới” của dữ liệu. Xem hướng dẫn đồng bộ thủ công để giữ dữ liệu cập nhật.
Xử lý nền: iOS giới hạn xử lý nền để tiết kiệm pin. Tự động hóa phụ thuộc Làm mới ứng dụng nền và có thể không chạy ngay nếu:
- Làm mới ứng dụng nền bị tắt cho ứng dụng
- Thiết bị đang ở Chế độ nguồn điện thấp
- Thiết bị không hoạt động trong thời gian dài
- Tài nguyên hệ thống bị hạn chế
- Nhiều ứng dụng cùng tranh thời gian chạy nền
Chỉ định dạng JSON (không thể đổi)
Cần broker MQTT (cục bộ hoặc trên đám mây)
Điều kiện
- Một broker MQTT (ví dụ Mosquitto, HiveMQ, AWS IoT Core, v.v.)
- Kết nối mạng tới broker MQTT của bạn
- Địa chỉ IP hoặc hostname của broker
- Số cổng
- Tùy chọn: Tên người dùng và mật khẩu nếu broker yêu cầu xác thực
Cấu hình
Đi tới màn hình Xuất tự động trong điều hướng chính, sau đó chạm Tự động hóa mới và chọn MQTT làm loại tự động hóa.
Tên tự động hóa
Nhập tên mô tả cho tự động hóa (ví dụ “MQTT Home Assistant”, “Broker MQTT đám mây”).
Thông báo
Cấu hình khi bạn muốn nhận thông báo:
- Thông báo khi cập nhật bộ nhớ đệm — Nhận thông báo khi dữ liệu trong bộ nhớ đệm được cập nhật
- Thông báo khi chạy — Nhận thông báo mỗi khi tự động hóa xuất bản dữ liệu
Cấu hình broker
Địa chỉ IP
Nhập địa chỉ IP hoặc hostname của broker MQTT.
Ví dụ:
192.168.1.100(IP cục bộ)mqtt.example.com(hostname)broker.hivemq.com(broker MQTT đám mây)localhost(nếu chạy trên cùng thiết bị — không khuyến nghị trên iOS)
Lưu ý: Dùng địa chỉ IP cho broker cục bộ trên mạng của bạn, hoặc hostname cho broker trên đám mây. Đảm bảo broker truy cập được từ thiết bị của bạn.
Cổng
Nhập số cổng cho broker MQTT.
Lưu ý: Cổng mặc định là 1883.
Topic
Nhập topic MQTT nơi dữ liệu sức khỏe sẽ được xuất bản. Đây là topic mà subscriber dùng để nhận dữ liệu sức khỏe của bạn.
Ví dụ topic:
health/datahome/health/metricsuser/health/exporthae/ten-tu-dong-hoa
Thực hành tốt với topic:
- Dùng dấu gạch chéo (/) để tạo phân cấp topic
- Dùng tên mô tả loại dữ liệu
- Tránh khoảng trắng và ký tự đặc biệt
- Có thể gắn tên tự động hóa khi bạn có nhiều tự động hóa
Lưu ý: Tên topic phân biệt chữ hoa/thường. Subscriber phải dùng đúng tên topic.
Client ID
Nhập Client ID duy nhất cho kết nối MQTT này. Giá trị này định danh thiết bị của bạn với broker MQTT.
Ví dụ Client ID:
health-export-iphonehae-client-001ios-health-app
Tên người dùng (tùy chọn)
Nhập tên người dùng để xác thực với broker MQTT. Để trống nếu broker không yêu cầu xác thực.
Mật khẩu (tùy chọn)
Nhập mật khẩu để xác thực với broker MQTT. Để trống nếu broker không yêu cầu xác thực.
Cài đặt loại dữ liệu
Loại dữ liệu
Chọn loại dữ liệu sức khỏe cần xuất:
- Chỉ số sức khỏe — Bước chân, nhịp tim, giấc ngủ và các chỉ số khác
- Buổi tập — Hoạt động thể chất và thể dục
- Triệu chứng — Triệu chứng và tình trạng sức khỏe
- ECG — Kết quả điện tâm đồ
- Thông báo nhịp tim — Sự kiện nhịp tim cao/thấp
- Trạng thái tinh thần — Mục tâm trạng và tinh thần (iOS 18.0+)
- Theo dõi chu kỳ — Dữ liệu chu kỳ và sức khỏe sinh sản
- Thuốc — Nhật ký thuốc và tuân thủ (iOS 26.0+)
Cấu hình Chỉ số sức khỏe
Khi chọn Chỉ số sức khỏe:
Chọn chỉ số sức khỏe — Chọn các chỉ số cụ thể cần đưa vào. Bạn có thể chọn tất cả hoặc chỉ một phần.
Mẹo: Chỉ chọn chỉ số cần thiết giúp giảm kích thước tin và thời gian xử lý.
Nguồn ưu tiên — Cấu hình nguồn dữ liệu được ưu tiên khi nhiều nguồn cùng cung cấp một chỉ số.
Cấu hình Buổi tập
Khi chọn Buổi tập:
Bao gồm dữ liệu lộ trình — Bật để gồm lộ trình cho buổi tập có dữ liệu vị trí.
Bao gồm chỉ số buổi tập — Bật để gồm chỉ số sức khỏe thu thập trong buổi tập (nhịp tim, calo, v.v.).
Gom nhóm thời gian (chỉ số buổi tập) — Khi dùng Phiên bản xuất 2 và đã bật Bao gồm chỉ số buổi tập:
- Phút — Gom chỉ số buổi tập theo phút
- Giây — Gom chỉ số buổi tập theo giây
Cài đặt xuất
Định dạng xuất
Lưu ý: Tự động hóa MQTT chỉ hỗ trợ định dạng JSON. Không thể đổi; luôn được đặt thành JSON.
Phiên bản xuất
Chọn phiên bản xuất cho dữ liệu buổi tập:
- Phiên bản 1 — Định dạng cũ
- Phiên bản 2 — Định dạng hiện tại với dữ liệu buổi tập chi tiết hơn
Lưu ý: Phiên bản xuất chủ yếu ảnh hưởng cấu trúc dữ liệu buổi tập nếu bạn đang xuất buổi tập.
Khoảng ngày
Chọn thời điểm dữ liệu được xuất:
- Mặc định — Đồng bộ dữ liệu cho cả ngày hôm trước cộng dữ liệu tới thời điểm hiện tại
- Kể từ lần đồng bộ trước — Mỗi lần đồng bộ, xuất toàn bộ dữ liệu từ lần chạy trước tới hiện tại
- Hôm nay — Đồng bộ toàn bộ dữ liệu của ngày hiện tại tới thời điểm hiện tại
- Hôm qua — Đồng bộ toàn bộ dữ liệu của ngày liền trước
- 7 ngày trước — Đồng bộ dữ liệu cho bảy ngày đầy đủ trước đó
Tóm tắt dữ liệu
Khi dùng định dạng JSON với loại Chỉ số sức khỏe, bật hoặc tắt Tóm tắt dữ liệu.
- Bật — Cung cấp bản tóm tắt đã gộp (mặc định)
- Tắt — Cung cấp dữ liệu chi tiết hơn khi có thể, hiển thị từng điểm dữ liệu
Gom nhóm thời gian
Khi Tóm tắt dữ liệu được bật, chọn cách gộp dữ liệu.
Tóm tắt dữ liệu
Bật hoặc tắt Tóm tắt dữ liệu cho Chỉ số sức khỏe.
- Bật — Cung cấp bản tóm tắt đã gộp (mặc định)
- Tắt — Cung cấp dữ liệu chi tiết hơn khi có thể
Lưu ý: Cài đặt này chỉ áp dụng cho loại Chỉ số sức khỏe.
Tần suất đồng bộ
Cấu hình tần suất tự động hóa xuất bản dữ liệu lên MQTT:
Chọn một số và một khoảng thời gian.
Kiểm thử và xác minh
Kiểm thử thủ công
- Chạm Xuất thủ công trong màn hình cấu hình tự động hóa
- Chọn khoảng ngày
- Chạm Xuất để xuất bản một tin
- Dùng client MQTT subscribe đúng topic và xác nhận đã nhận tin
Dùng client MQTT
Để xác minh tin đang được xuất bản:
- Thiết lập client MQTT
- Kết nối tới broker MQTT bằng cùng thông tin đăng nhập
- Subscribe topic của bạn
- Kích hoạt xuất thủ công từ ứng dụng
- Xác nhận tin xuất hiện trong client MQTT
Xem nhật ký hoạt động
- Chạm Xem nhật ký hoạt động trong màn hình cấu hình tự động hóa
- Xem các lần chạy gần đây
- Kiểm tra lỗi kết nối hoặc lỗi xuất bản
- Xác nhận thời điểm xuất bản
Định dạng tin
Tin MQTT được xuất bản dưới dạng JSON. Payload tuân theo định dạng JSON xuất chuẩn:
{
"data": {
"metrics": [...],
"workouts": [...],
...
}
}
Tin được xuất bản với:
- Topic: Theo cấu hình trong tự động hóa
- QoS: Giao tối đa một lần
- Retain: Tin không được giữ lại
- Payload: Chuỗi JSON chứa dữ liệu sức khỏe
Khắc phục sự cố
Vấn đề thường gặp
Lỗi kết nối
- Kiểm tra IP/hostname broker đúng
- Xác nhận cổng đúng và broker đang lắng nghe cổng đó
- Đảm bảo có kết nối mạng tới broker
- Kiểm tra tường lửa cho phép kết nối tới broker
- Xem broker có yêu cầu TLS/SSL không
Lỗi xác thực
- Kiểm tra tên người dùng và mật khẩu
- Xác nhận xác thực đã bật trên broker nếu bạn nhập thông tin đăng nhập
- Đảm bảo tài khoản có quyền publish lên topic đã chọn
Không nhận được tin
- Xác nhận tên topic khớp hoàn toàn (phân biệt hoa thường)
- Kiểm tra subscriber kết nối cùng broker
- Đảm bảo subscriber subscribe đúng topic
- Xác nhận tự động hóa đã bật và đang chạy
- Xem Nhật ký hoạt động để tìm lỗi xuất bản
Tin quá lớn
- Giảm số chỉ số sức khỏe được chọn
- Dùng tùy chọn gộp ít chi tiết hơn
- Cân nhắc tách thành nhiều tự động hóa cho từng loại dữ liệu
Mẹo và thực hành tốt
Đồng bộ tự động:
- Sạc thiết bị và dùng Phản chiếu iPhone
- Khi đang sạc, iOS hạn chế hiệu năng ít hơn nên dữ liệu có thể đồng bộ thường xuyên hơn
- Phản chiếu iPhone giúp thiết bị hoạt động giống như đang mở khóa, dữ liệu Sức khỏe khả dụng cho Health Auto Export để chạy hành động tự động
- Sạc thiết bị và dùng Phản chiếu iPhone
Tổ chức topic:
- Dùng cấu trúc phân cấp (ví dụ
health/metrics,health/workouts) - Có thể gắn định danh thiết bị hoặc tự động hóa vào topic
- Ghi chú cấu trúc topic để tra cứu sau
- Dùng cấu trúc phân cấp (ví dụ
Kích thước tin:
- Giữ tin ở mức hợp lý để tránh vượt giới hạn broker
- Gộp ít chi tiết hơn để giảm khối lượng dữ liệu
- Cân nhắc chia tập dữ liệu lớn qua nhiều tin
Giám sát:
- Dùng Nhật ký hoạt động trong ứng dụng để theo dõi xuất bản thành công
Broker đám mây:
- Khi dùng broker MQTT trên đám mây (AWS IoT, HiveMQ Cloud, v.v.):
- Tuân theo yêu cầu kết nối riêng của họ
- Kiểm tra giới hạn kích thước tin và tốc độ
- Xác nhận quy ước đặt tên topic
- Khi dùng broker MQTT trên đám mây (AWS IoT, HiveMQ Cloud, v.v.):