How to add Xiaomi Mijia scale S400 (model: MJTZC01YM) into Home Assisstant

I have the same scale and integrated into HA for a few months now. But it’s flakey - sometimes HA sees the updated value when the scale reads, sometimes the scale needs to read several times. Recently, HA stopped seeing new values at all, until I reconnected it to the Xiaomi app.

Has anyone else seem this issue? Any ideas?

The btmon snoop log indicates that the scale is transmitting some identifying packets (device name, device address), but no data.

Putting xiaomi-ble in logging mode gives these messages when no data is read:
[xiaomi_ble.parser] Advertisement doesn't contain payload, adv: 1059d9...

Scale FW ver 2.1.1_0057_0077
HA 25.10.4 in a docker container
Host BLE interface and esphome bluetooth proxy - the issue also shows up when either is used in isolation

Did you manage to figure out how to get scale integrated in Bodymiscale? I assume a configuration.yaml file is needed but I have no idea what to put in it.

Wow, I have a very similar issue. I, and another person use the scale. I used it first and when I step on it, it registers all metrics and transmits it to Home Assistant (as Profile ID: 1).

However, when the other person uses it, it has the same issue as you where it registers the weight but stalls right after attempting to calculate the heart rate and just flashes the weight back. Consequently, only the weight of this user is transmitted to Home Assistant (as Profile ID: 0).

I have integrated the scale in Home Assistant using Xiaomi BLE but also have bodymiscale installed via HACS (although, it is unconfigured and doesn’t pick up the scale, so I don’t think this has any impact).

Did you manage to solve this issue on you end?

Hi all,

I’m still stuck with the Xiaomi S400 (MJTZC01YM) in Home Assistant.

Setup

  • Home Assistant OS / Core: 2026.1.3
  • Bluetooth: Realtek BT 5.4 USB dongle (hci0)
  • Integration: Xiaomi BLE

Current state

  • Device is discovered and added
  • Only 1 diagnostic entity (RSSI). No weight/impedance entities.
  • BLE logs show FE95 (MiBeacon) advertisements consistently, but only very short payloads like:
    service_data={‘0000fe95-…’: b’0X…08’} / b’0Z…08’}
  • Log lines show: match: set() (nothing claims/parses the frames)
  • Repairs is always empty (no Xiaomi BLE repair prompt)

What I tried (multiple times)

  • Enabled passive scanning + full HA reboot
  • Removed/re-added Xiaomi BLE + HA reboot
  • Reset scale via pinhole (~10s)
  • Weighed next to the dongle (< 1m), stayed on scale 10–15s
  • Phone Bluetooth OFF / Xiaomi app force-closed (to avoid interference)
  • Enabled debug logging:
    logger:
    default: warning
    logs:
    homeassistant.components.xiaomi_ble: debug
    homeassistant.components.bluetooth: debug
    habluetooth: debug

Question

  • Has anyone recently (2025/2026) gotten the S400 (MJTZC01YM) working in Home Assistant WITHOUT ESPHome?
    If yes: which exact HA/Core version + steps (and did you need Xiaomi account/bindkey), especially if Repairs never showed up?

Thanks!