Skip to content

Smart scale: local HA logging + Google Health for the AI coach #241

Description

@etrobert-bot

Goal

Track body weight with a smart scale that (1) logs locally to Home Assistant
(local-first, no cloud) and (2) gets weight into Google Health so the AI
coach can use it.

Decision: Xiaomi Mi Body Composition Scale 2 (~€30)

One cheap scale satisfies both requirements via two independent paths that don't
conflict (BLE advertisements can be read by multiple listeners at once):

  • Local (Home Assistant): HA's passive xiaomi_ble integration reads the
    scale's BLE broadcast directly — no account, no app, no Xiaomi cloud. This is
    the real trend data, alongside the AirGradient sensors.
  • Google Health (AI coach): Install Zepp Life (v8.3.0+) on iPhone →
    Profile › Settings › Privacy & Security › Apple Health → enable Weight, Body
    Fat %, BMI. Zepp writes to Apple Health, and Google Health ingests from Apple
    Health on iOS. This is the official, durable route — it does not rely on
    the Fitbit Web API (which sunsets September 2026).

So: weigh in once → BLE broadcast hits HA, and Zepp (when phone is nearby)
pushes the same reading up to Google Health.

Why not the alternatives

  • Withings Body: its main advantage (auto-sync) runs through Google Health
    Connect, which is Android-only; the HA integration is cloud-polled, not
    local. No real edge over Xiaomi on iPhone, and pricier (~€80+).
  • DIY local→Google bridge (HA pushing weight via Fitbit Web API): dead end.
    The Fitbit Web API sunsets September 2026 and OAuth tokens don't transfer;
    the replacement Google Health API has no documented write path yet (the
    google-health skill is read-only).

Key finding that unblocked this

On iOS, Google Health links third-party data via Apple Health (Health
Connect is the Android equivalent). Withings and Xiaomi (Mi Fitness/Zepp) are
listed as supported sources, with weight/body measurements among shared metrics.
The legacy Fitbit app does NOT read Apple Health — but Google Health does,
which is what matters for the coach.

Implementation tasks

  • Buy Xiaomi Mi Body Composition Scale 2
  • Add a Bluetooth adapter or an ESPHome Bluetooth proxy in range of the
    bathroom so HA can hear the scale
  • Configure HA xiaomi_ble (passive BLE) and confirm weight appears
  • Install Zepp Life on iPhone, enable Apple Health write (Weight/Body Fat
    %/BMI), confirm weight reaches Google Health (alternative: AirWeight,
    $3.99, reads the scale straight into Apple Health without a Zepp account)

Notes / caveats

  • Phone must be in BLE range when stepping on (or shortly after — Zepp caches and
    syncs on next connect).
  • Body-fat % on both paths is bioimpedance — treat as a trend, not gospel.
  • Weight is noisy day-to-day (±1–2 kg on water/food/salt); the value is the
    7-day rolling average, which HA can chart.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions