Support: Body Composition Scale S400
Hi, in the new HA update support for the new Xiaomi S400 has been added, and the question is whether 25 new composition indicators will be added for Bodymiscale Integration?
https://rc.home-assistant.io/blog/2025/04/29/release-20255/#other-noteworthy-changes
https://www.mi.com/global/product/xiaomi-body-composition-scale-s400/
It's great to have managed to add this scale. I'll have to buy it to test it. Then for the additional sensors, I need to find the formulas. The new formulas are certainly calculated using low and high impedance. I quickly looked online, but there isn't much information.
Current formulas are easy to find. Easy example found on many sites bmi = weight (kg) / height (m)²
I have this scale and its working in 2025.5.0 now. It does indeed give high and low impedance sensors. Happy to provide test data from HA and the Xiaomi App if this helpds you find the formula.
It would be great if you could chose the profile ID as the deciding factor for the person the weight is going to be assigned to. We are quite close with weight with my wife and the scale can tell who is who. However the bodymiscale can't and I sometimes end up with my wife's weight
It would be great if you could chose the profile ID as the deciding factor for the person the weight is going to be assigned to. We are quite close with weight with my wife and the scale can tell who is who. However the bodymiscale can't and I sometimes end up with my wife's weight
I had the same problem. Bodymiscale only updated the weight. For some reason, impedance and "last time weighed" (optional) never updated.
So I created this simple automation:
alias: Update Nuno's Weight, Impedance, and Timestamp
description: Updates weight, impedance, and last weight time for Nuno
triggers:
- entity_id: sensor.body_composition_scale_8624_weight
trigger: state
conditions:
- condition: state
entity_id: sensor.body_composition_scale_8624_profile_id
state: "2"
actions:
- target:
entity_id: input_number.nuno_weight
data:
value: "{{ states('sensor.body_composition_scale_8624_weight') | float }}"
action: input_number.set_value
- target:
entity_id: input_number.nuno_impedance
data:
value: "{{ states('sensor.body_composition_scale_8624_impedance') | float }}"
action: input_number.set_value
- target:
entity_id: input_datetime.nuno_last_weight
data:
datetime: "{{ now().strftime('%Y-%m-%dT%H:%M:%S') }}"
action: input_datetime.set_datetime
mode: single
I didn't want to use ESPHome or interactive notifications because they were too slow, so I think this method is the best and simplest one.
Basically, when the scale is triggered and the profile ID matches yours (in my case, 2), it updates the input_number entities I created earlier using the Example 3 Blueprint (which I have since deleted).
Create another automation for your wife's profile id and her respective input_numbers and done.
Has anyone come up with a solution to calculate the bmi measurements for this scale?
I just receive the S400 (MJTZC01YM) instead of the Composition Scale 2. Have anyone been able to import all the data? I want to manage everything from HomeAssistant so maybe i need to return it to do that. If this is possible and help is needed i can provide information.
Hi, I have the s400 now, and the values calculated (Bodyage, lean fat etc.) are quite different from values in the app. I think this is du to the different measurement method.
Can I help by providing my values calculated in the app and my stats and the impedance and impedance low, so you could try to figure out the formulas?
I think it won't work with the current integration as the s400 provides high and low impedance and not just one impedance as the other supported scales. At least that's what I gathered.
Hi,
Has anyone checked the body metrics ? I compared the weighings of Mi Body Composition Scale 2 and Xiaomi Body Composition Scale S400. As for the weighing and impedance I have no comments, but as for the metrics there is a difference in the apps as well as the new scale. Mi Body Composition Scale 2 and Zeep Life app metrics agree. Xiaomi Body Composition Scale S400 and Xiaomi Home app, the metrics have a mismatch. The new app calculates it differently. e.g. body fat is higher in Mi Body Composition Scale 2 metrics as well as the scale itself displays lower body fat. Old metric 14.2% new metric (in Xiaomi Home and S400) 12.1% body fat.
I am inquiring because I am about to complete the integration of this scale in my project and I have started taking measurements: https://github.com/RobertWojtowicz/export2garmin
BR, Robert
Hi,
Has anyone checked the body metrics ? I compared the weighings of Mi Body Composition Scale 2 and Xiaomi Body Composition Scale S400. As for the weighing and impedance I have no comments, but as for the metrics there is a difference in the apps as well as the new scale. Mi Body Composition Scale 2 and Zeep Life app metrics agree. Xiaomi Body Composition Scale S400 and Xiaomi Home app, the metrics have a mismatch. The new app calculates it differently. e.g. body fat is higher in Mi Body Composition Scale 2 metrics as well as the scale itself displays lower body fat. Old metric 14.2% new metric (in Xiaomi Home and S400) 12.1% body fat.
I am inquiring because I am about to complete the integration of this scale in my project and I have started taking measurements: https://github.com/RobertWojtowicz/export2garmin
BR, Robert
Hi, I see that you've integrated the S400 in your export2garmin app. Did you manage to figure out how to integrate the S400 in bodymiscale or how to get the additional metrics (like body fat % etc) in Home Assistant? Any help would be greatly appreciated. Thanks!
Xiaomi Body Composition Scale S400 and Xiaomi Home app, the metrics have a mismatch. The new app calculates it differently. e.g. body fat is higher in Mi Body Composition Scale 2 metrics as well as the scale itself displays lower body fat. Old metric 14.2% new metric (in Xiaomi Home and S400) 12.1% body fat.
I can confirm that the calculation methods between the scale and the Xiaomi Home app indeed differ significantly. In my case, the discrepancy is also noticeable: the scale shows 27.3% body fat, while the Xiaomi Home app reports 30.2%.
It appears that the new algorithm in Xiaomi Home produces consistently higher body-fat values compared to the values displayed directly on the scale and those used in earlier Xiaomi devices/apps.
If you have any updated information regarding the calculation method or whether Xiaomi plans to unify the metrics, please share.