小米体脂秤2接入 Home Assistant(ESP32 蓝牙网关 + bodymiscale) Link to heading
简介 Link to heading
小米体脂秤2默认主要通过 Zepp Life App 查看历史数据,不方便在智能家居场景中做统一展示和自动化联动。本文整理了一套可落地的接入方案:使用 ESP32 充当蓝牙网关,把体重与阻抗数据接入 Home Assistant,再由 bodymiscale 计算体脂相关指标,并通过自动化区分不同家庭成员。
你将获得以下能力:
- 在 Home Assistant 中查看体重、阻抗及多项体脂计算指标
- 自动将称重数据分配到不同家庭成员
- 使用可视化卡片展示身体数据趋势
硬件信息 Link to heading
- 小米体脂秤2(型号:
XMTZC05HM) - ESP32-S3-N16R8 Dev Board


配套版本信息 Link to heading
- Home Assistant
2025.11.0(容器化安装) - bodymiscale
2026.1.0-beta - ESPHome
2025.10.4
安装步骤 Link to heading
1. ESP32 通过 ESPHome 配置为蓝牙网关 Link to heading
ESPHome 安装与刷机步骤这里不展开,仅保留关键配置。最重要的是最后两项:
esp32_ble_tracker:bluetooth_proxy:
esphome:
name: ble-gateway-s3
friendly_name: ble-gateway-s3
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
logger:
api:
encryption:
key: "XXXr9wv11Z14cjNY0tOYwYQmSE3YES8633nLIxKdLug="
ota:
- platform: esphome
password: "XXXc86444f8772960d1528401bd157"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Ble-Gateway-S3 Fallback Hotspot"
password: !secret wifi_password
captive_portal:
# Enable BLE scan
esp32_ble_tracker:
# Enable BLE proxy
bluetooth_proxy:
2. Home Assistant 添加 ESPHome 设备 Link to heading
路径:设置 -> 设备与服务 -> 添加集成 -> ESPHome
- 主机:
ble-gateway-s3.local - 端口:
6053 - API 密钥:填写 ESPHome YAML 中
api.encryption.key
3. 添加 Xiaomi BLE 集成 Link to heading
先在体脂秤上完整测量一次,然后:
路径:设置 -> 设备与服务 -> 添加集成 -> Xiaomi -> Xiaomi BLE
选择设备类型:Mi Body Composition Scale。
添加完成后,在实体中应能看到刚测得的体重和阻抗。

4. 添加自动化脚本,区分多人体重 Link to heading
路径:设置 -> 自动化与场景 -> 蓝图 -> 导入蓝图
原始蓝图:
你使用的修改版(在 HA 侧生成 last_weight_time):
配置示例:
- Weight Sensor:
Mi Body Composition Scale - Impedance Sensor:
Mi Body Composition Scale 阻抗 - Number of Users:
2
User 1(hao) Link to heading
- User 1 Name:
hao - User 1 Min Weight:
60 - User 1 Max Weight:
100
创建数值辅助元素(体重):
- 名称:
hao-weight - 图标:
mdi:weight-kilogram - 最小值:
0 - 最大值:
100 - 单位:
kg

创建数值辅助元素(阻抗):
- 名称:
hao-impedance - 图标:
mdi:omega - 最小值:
0 - 最大值:
1000 - 单位:
ohm
创建日期/时间辅助元素(上次称重时间):
- 名称:
hao-last-weight-time - 图标:
mdi:omega - 类型:
日期和时间
User 2(hui) Link to heading
- User 2 Name:
hui - User 2 Min Weight:
40 - User 2 Max Weight:
59
同样创建 3 个辅助元素(weight / impedance / last-weight-time)。
⚠️ 关键提示:不同成员的体重区间必须有明显差异,且不能重叠,否则同一次称重可能命中多个区间,系统无法准确判断归属。
例如:成员 A 为60~100kg,成员 B 为40~59kg。
配置完成后,建议每位成员各测量一次,并在 设置 -> 设备与服务 -> 实体 中筛选新建辅助实体,确认体重、阻抗和时间都已正确更新。
5. 添加 bodymiscale 集成 Link to heading
该集成可通过 HACS 安装。为了使用更新版本,这里采用手动安装方式:
下载:
解压后将:
bodymiscale-2026.1.0-beta/custom_components/bodymiscale
复制到:
/config/custom_components/bodymiscale
重启 HA 后添加 bodymiscale 集成,按用户逐个配置。例如:
- 姓名:
hao - 生日:
01/01/1990 - 性别:
male - 身高:
180 - 体重传感器:
hao-weight - 阻抗传感器:
hao-impedance - 上次称重时间传感器:
hao-last-weight-time
提交后,按相同方式再添加另一位成员。
6. 添加 lovelace-body-miscale-card Link to heading
项目地址:
手动安装方式:
- 将
body-miscale-card.js和images文件夹放到 HA 的www目录(即/config/www) - 在 HA 中添加前端资源:
- 路径:
/local/body-miscale-card.js - 类型:
JavaScript 模块
- 路径:
- 重启 HA,浏览器按
Ctrl + F5强制刷新
在仪表盘中添加卡片(Custom: BodyMiScale Card):
- account:
bodymiscale.hao - background image:
/local/images/miscale2.jpg - Icons path:
/local/images/bodyscoreIcon - 勾选
Enable impedance

7. 最终效果 Link to heading
点击卡片下方按钮可展开并查看更多身体指标。

备注 Link to heading
- 若后续 bodymiscale 版本支持直接指定
last-weight-time,ESP32 可只作为纯 BLE Gateway,整体架构会更简洁