2026.10.2
🙏 Thank you to @Triple-S
✨ New features
- Body type sensor: The body type (obese, overweight, thick-set, lack-exercise, balanced, balanced-muscular, skinny, balanced-skinny, skinny-muscular) was already calculated and translated but never exposed as an entity. It is now available as an
enumsensor, translated in all supported languages, for profiles with an impedance sensor (standard and dual-frequency modes). Its value appears after the next measurement. Closes [#273].
🔧 Improvements
- S400 body score — muscle thresholds based on the Skeletal Muscle Index: In S400 (dual-frequency) mode, the muscle part of the body score compared skeletal muscle mass (SMM) against total muscle mass thresholds scaled by an arbitrary 0.77 ratio. These thresholds were far too high and penalized most users (e.g. up to ~28 kg SMM for a 165 cm woman, while a typical value is ~18–22 kg). SMM is now compared against the Skeletal Muscle Index (SMI = SMM / height²) cut-points of Janssen et al. (2004), consistent with the Janssen equation already used to calculate SMM: 8.51 / 10.75 kg/m² for men and 5.76 / 6.75 kg/m² for women. S400 body scores will usually increase. Documented in
README_S400_UPGRADE.md. Via #458.
🔧 Bug fixes
- Last measurement time moving without a new weighing:
last_measurement_timewas stamped on every valid weight write. Scale integrations such asxiaomi_blere-publish the last weight on every advertisement (idle packets, periodic rebroadcasts about every 50 minutes on the S200), so the timestamp kept moving without any new weighing, and it could also be reset when the scale entity came back after a Home Assistant restart.- When a
stabilizedsensor is configured, the timestamp is now updated only on itsOFF→ONtransition, and only for a profile that accepted the weight (another user's weighing no longer updates it). - The startup replay of the current sensor values no longer updates it.
- Without a
stabilizedsensor, the behavior is unchanged: every new weight reading, even an identical one, updates it.
- When a
- Repeated notification when the weight sensor comes back from
unavailable: When the scale's weight entity became unavailable and then reappeared with the same last value (e.g. Xiaomi S200), it was treated as a new measurement and a new "Who is weighing?" notification was sent. A weight sensor returning fromunavailable/unknownwith its last value is now ignored. After a reset to 0 (e.g. ESPHome scales), the next reading is always a new measurement. Closes [#441].