将 Apple Health 数据同步到 Home Assistant
将您的健康数据与 Home Assistant 集成。
Last updated: February 5, 2026
On this page
Home Assistant 自动化允许您将健康数据自动同步到 Home Assistant 作为传感器状态。此集成使您能够在 Home Assistant 自动化、仪表板和其他集成中使用您的健康数据。
概述
Home Assistant 自动化将您的健康指标发送到 Home Assistant 的 REST API,创建或更新可在整个 Home Assistant 实例中使用的传感器状态。数据专门为 Home Assistant 的 /states/
使用场景:
- 在 Home Assistant 仪表板上显示健康指标
- 基于健康数据创建自动化
- 将健康数据与其他智能家居设备集成
- 在 Home Assistant 中跟踪健康趋势
主要功能:
- 自动传感器状态创建
- 仅 JSON 格式(针对 Home Assistant 优化)
- 仅支持 Health Metrics 数据类型
- 简单的 URL 配置
限制
健康数据访问: 当 iPhone 锁定时,应用无法访问健康数据。自动化只会在设备解锁期间运行。这可能会影响数据的新鲜度。请参阅手动同步说明以保持数据最新。
后台处理: iOS 限制后台处理以保持电池寿命。自动化依赖于应用后台刷新,在以下情况下可能不会立即运行:
- 应用的后台刷新已禁用
- 设备处于低电量模式
- 设备长时间处于非活动状态
- 系统资源受限
- 多个应用竞争后台执行时间
仅支持 Health Metrics 数据类型
仅 JSON 格式(无法更改)
先决条件
- 在您的网络上运行且可访问的 Home Assistant 实例
- Home Assistant API 访问令牌(长期访问令牌)
- 到您的 Home Assistant 实例的网络连接
- 支持 REST API 的 Home Assistant 版本
配置
从主导航导航到自动化导出屏幕,然后点击"新建自动化"并选择"Home Assistant"作为自动化类型。
自动化名称
为您的自动化输入一个描述性名称。此名称将用于在 Home Assistant 中生成传感器实体 ID。
注意: 自动化名称将转换为小写并删除空格以创建实体 ID。例如,"我的健康数据"变为 hae.wodejiankangshuju。
通知
配置何时接收通知:
- 缓存更新时通知 - 缓存数据更新时接收通知
- 运行时通知 - 每次自动化执行时接收通知
Home Assistant URL
输入您的 Home Assistant 实例的基本 URL。如果不使用默认值,则应包括协议和端口。
URL 示例:
http://homeassistant.local:8123http://192.168.1.100:8123
注意: URL 必须可从您的设备访问。如果使用 HTTPS,请确保您的证书有效或添加例外。
自动生成的端点
应用会根据您的自动化名称自动生成完整的 API 端点:
{your_url}/api/states/hae.{automation_name}
例如,如果您的 URL 是 http://homeassistant.local:8123 且您的自动化名称是"健康指标",则端点将是:
http://homeassistant.local:8123/api/states/hae.jiankangzhibiao
此端点显示在 URL 字段下方作为参考。
请求超时
选择对 Home Assistant 的 HTTP 请求的超时间隔。
可用的超时选项:
- 60 秒 - 默认值,适用于大多数 Home Assistant 实例
- 300 秒(5 分钟) - 适用于较慢的 Home Assistant 实例
- 1800 秒(30 分钟) - 适用于非常慢的处理
- 3600 秒(1 小时) - 最大推荐超时
HTTP 标头
添加用于访问 Home Assistant API 的身份验证标头。您需要使用长期访问令牌添加 Authorization 标头。
必需标头:
Authorization: Bearer YOUR_LONG_LIVED_ACCESS_TOKEN
要获取长期访问令牌:
- 打开 Home Assistant
- 转到您的个人资料(点击左下角的您的姓名)
- 向下滚动到"长期访问令牌"
- 点击"创建令牌"
- 给它一个名称(例如,"Health Auto Export")
- 复制令牌并将其粘贴到标头值字段中
可选标头:
如果需要,您可以为 Home Assistant 设置添加其他标头。
要添加标头:
- 点击"添加标头"
- 在左侧字段中输入标头键
- 在右侧字段中输入标头值
- 对其他标头重复
重要: 每个标头键必须具有相应的值。空标头将被忽略。
数据类型设置
数据类型
注意: Home Assistant 自动化仅支持 Health Metrics 数据类型。此设置无法更改,并自动设置为 Health Metrics。
Health Metrics 配置
选择 Health Metrics - 选择要包含的特定指标。您可以选择所有可用指标或选择特定指标。
提示: 仅选择您需要的指标可以改善处理时间并减少发送到 Home Assistant 的数据大小。
首选来源 - 配置当多个来源提供相同指标时哪些数据源具有优先级。
导出设置
导出格式
注意: Home Assistant 自动化仅支持 JSON 格式。此设置无法更改,并自动设置为 JSON。
导出版本
注意: 导出版本不适用于 Home Assistant 自动化,因为格式专门针对 Home Assistant 的状态 API 进行了优化。
日期范围
选择何时应导出数据:
- 默认 - 同步前一天的全部数据加上到当前日期和时间的数据
- 今天 - 同步当前日期到当前时间的所有数据
- 昨天 - 同步前一天的全部所有数据
注意: Home Assistant 自动化不支持"实时"、"自上次同步"或"过去 7 天"选项。
汇总数据
为 Health Metrics 打开或关闭汇总数据。
- 开启 - 提供聚合数据摘要(默认)
- 关闭 - 在可能的情况下提供非聚合数据
注意: 此设置仅适用于 Health Metrics 数据类型。
时间分组
启用汇总数据时,选择应如何聚合数据:
- 默认 - 无聚合,原始数据点
- 天 - 按天分组数据(推荐)
同步频率
配置自动化应多久与 Home Assistant 同步数据:
选择一个数字和间隔。
测试和验证
手动测试
- 在自动化配置屏幕上点击"手动导出"
- 选择日期范围
- 点击"导出"以发送测试请求
- 在 Home Assistant 中检查传感器状态是否已创建/更新
在 Home Assistant 中验证
- 打开 Home Assistant
- 转到开发者工具 > 状态
- 搜索
hae.{your_automation_name}(小写,无空格) - 验证传感器状态显示您的健康数据
- 检查"最后更新"时间戳以确认最近的同步
查看活动日志
- 在自动化配置屏幕上点击"查看活动日志"
- 查看最近的自动化运行
- 检查是否有错误或警告
- 验证请求时间戳和响应状态
检查 Home Assistant 日志
如果数据未出现在 Home Assistant 中:
- 打开 Home Assistant
- 转到设置 > 系统 > 日志
- 查找与 REST API 或传感器状态相关的错误
- 检查身份验证错误或无效数据格式
故障排除
常见问题
身份验证错误
- 验证您的长期访问令牌是否正确
- 确保 Authorization 标头格式为:
Bearer YOUR_TOKEN - 检查令牌是否已过期或已被撤销
- 验证令牌在 Home Assistant 中具有适当的权限
传感器未出现在 Home Assistant 中
- 检查自动化名称是否包含特殊字符
- 验证实体 ID 格式:
hae.{automation_name}(小写,无空格) - 检查 Home Assistant 日志中的错误
- 确保 API 请求成功(检查活动日志)
数据未更新
- 检查自动化是否已启用
- 查看活动日志中的错误
- 确保与 Home Assistant 的网络连接
连接超时
- 验证 Home Assistant 是否正在运行且可访问
- 检查网络连接
- 如果 Home Assistant 响应缓慢,请增加请求超时设置
- 验证 URL 和端口是否正确
错误消息
如果出现以下情况,应用将显示错误消息:
- URL 无效或无法访问
- 身份验证失败(检查 Authorization 标头)
- Home Assistant 返回错误状态代码
- 网络连接不可用
检查活动日志以获取详细的错误信息,包括 HTTP 状态代码和来自 Home Assistant 的错误消息。
Home Assistant 集成提示
在自动化中使用健康数据
健康数据与 Home Assistant 同步后,您可以在自动化中使用它们:
automation:
- alias: "良好睡眠质量"
trigger:
- platform: numeric_state
entity_id: sensor.hae_myhealthdata_sleep_total
above: 7
action:
- service: notify.mobile_app_your_phone
data:
message: "昨晚睡眠很棒!"
创建仪表板
将健康指标添加到您的 Home Assistant 仪表板:
- 转到您的仪表板
- 添加新卡片
- 选择"实体"或"仪表"卡片类型
- 添加
hae.{your_automation_name}传感器实体
传感器状态结构
Home Assistant 中的传感器状态包含:
state: 当前值或状态attributes: 其他数据包括:- 时间戳信息
- 与导出的 JSON 格式匹配的数据结构
- 适用时的单位信息
提示和最佳实践
命名:
- 避免可能导致问题的特殊字符
数据选择:
- 仅选择您需要的指标