I just released a Home Assistant integration for the Renpho ES-CS20M smart scale (also sold as Renpho Elis 1 and various locale-specific names). It’s local-only - no cloud, no Renpho app required.
Key features:
Real-time weight + on-device body composition (BMI, body fat %, muscle mass, body water %, etc.)
Multi-user support with adaptive weight-history matching. Optionally exclude users marked not_home via Person entities.
Mobile-app actionable notifications for ambiguous measurements — “Assign to Me” / “Not Me” buttons on each candidate user’s phone.
ESPHome Bluetooth proxy support so the scale doesn’t need to be in range of the HA host.
Per-user toggles for the scale’s athlete-tuned and alternative body-fat algorithms.
Fully unofficial — not affiliated with Renpho.
Install via HACS custom repository (HACS default-store submission is in progress). README has install steps.
Tested on my own ES-CS20M; if you have one, I’d love to hear how it works for you. Open issues / feature requests welcome; if you have a different Renpho scale model I’d love to hear if the integration works with that model as well.
Hello! Thank you for your work with the integration!
This is a really nice timing, I just got a Renpho Elis 1 smart scale, and for the last hour I’ve been trying to add the scale to my HA. I have it right next to a BLE Proxy (ESP32) and I can see it in the bluetooth map of Home Assistant (with the name ES-32MD, the model sold here) but for some reason the integration is not picking it up.
I understand this is the same device as Renpho ES-CS20M, on the back the HVIN says ‘ESCS0MB2’.
Any hints for troubleshooting this?
EDIT: I tried changing the local_name in manifest.json to accept ‘ES-32MD’, after that it finds the scale but I can’t get any measurement.
Hi @surubutna, seems to be a different variant. Most likely there are some protocol differences between the two. If you send me some more info I can look into it and try to see if that’s indeed the issue and if it is if the protocol is close enough for me to be able to easily add support for with minor changes to the integration.
Could you generate and send me the diagnostics json? You can generate it with the “Download Diagnostics” button at the bottom of the integrations’s device info card in Home Assistant. The other thing that would be helpful is debug logs showing what happens when you’re stepping on the scale for a measurement. You’d need to turn on debug logging for the integration, as well as the “Enable verbose library logging” checkbox in the integration’s advanced settings, then take the measurements and look for the relevant debug log messages (in the UI you might need to switch to the raw viewer mode to see debug/info messages and not just error/warning ones).
If you want you can open a new github issue with all this info and it will be more convenient to follow up on this. There’s already one similar issue open there (but for another different variant) if you want to take a look there as to the next steps on how to investigate this further and capture the bluetooth logs that would be needed for me to be able to add support for another variant with differences in the protocol (in case you want to already do that if we need it next).
I'm using your renpho_fitness_scale_ble integration with my Renpho ES-32MD.
The integration does successfully read all sensor data immediately after weighing. However, after about 2 hours, most sensors become unavailable , and the remaining ones (Weight, BMI, Battery) revert to default values (e.g., weight shows 50 kg instead of the last real measurement of 89 kg).
Device Details:
Model: Renpho ES-32MD
Purchase region: United Kingdom
Setup:
Home Assistant: Green (OS 17.3, Core 2026.5.1)
Bluetooth Proxy: ESP32 (ELEGOO) with ESPHome (esp32_ble_tracker + bluetooth_proxy )
Integration:renpho_fitness_scale_ble v0.1.2 (installed via HACS as custom repository)
What works (temporarily):
After stepping on the scale barefoot, all sensors update correctly – weight, body fat, muscle mass, water, BMR, etc.
The data appears in Home Assistant as expected.
What happens after ~2 hours:
Body fat, muscle mass, water, bone mass, protein, BMR → become unavailable
Weight, BMI, Battery → remain available but show default values (e.g., weight stuck at 50 kg, not the last real 89 kg)
This happens even if no new weighing occurs
The default values appear to be the ones entered during initial user profile setup
What I have tried:
Ensured Renpho app is closed on my iPhone during tests
The issue is reproducible – every weighing works, then data decays after ~2 hours
What I have NOT tried yet (but can if you advise):
Enabling passive scanning on Bluetooth proxy
Adding debug logging to configuration.yaml
Collecting diagnostics.json and home-assistant.log
Recreating the user profile
My suspicion:
The integration receives the data correctly but does not persist it properly for the ES-32MD
The fallback to profile defaults suggests the integration is losing the "last good value" and reverting to stored profile defaults
This might be specific to how ES-32MD handles measurement sessions
Could you please advise what diagnostics or logs would be most helpful for you to investigate this? I am happy to run any tests or provide any data you need.
Thank you for your work on this integration! Really appreciate your work!
Replying to myself. Strangely but now it works fine and I do not see such behaviour anymore. May be couple restarts helped. Anyhow, thank you vey much for this integration!
Just saw this now. Glad to hear it's working for you! Feel free to let me know if you encounter other issues (I'll probably see it faster if you report it in the github repo).
By the way, could you maybe check for me the full model details of your scale on the back of the device (model, FCC ID, IC, HVIN) as well as firmware version if you have it? I want to have a better record of the exact variants the integration works for and I've noticed some models have more than one variant, and it seems for ES-32MD some variants work and some don't.
Just installed. It didn't auto-detect my scale when I stepped on it, but it was easy enough to find the scale in the setup dropdown. Measurements got picked up almost immediately, good stuff!
Seems like all the new part#’s getting delivered are ESCS20MB2 models. I have bought and returned 3 different times now and have received the same every time.
Just wanted to say amazing work thanks - can't believe for 33 AUD can buy scales that fully local automatically update weight and body fat in Google Health via Home Assistant with this integration, Tasker and Tasker Health Connect plugin.
Yeah, it seems there are quite a few variants out there. If at any point someone with this variant maps out the protocol it uses - I'll be more than happy to add support for it. If you (or anyone else with this variant of the scale) wants to take a stab at it I'll also happily assist or advise.
You can see here for more details about the specific protocol and what's still needed:
@stern-shawn - I'm glad it's working for you! What name does the scale broadcast itself as? If I know that I can add it to the auto-discover so that other users can have it auto-discovered rather than need to add it manually.
By the way, could you maybe check for me the full model details of your scale on the back of the device (model, FCC ID, IC, HVIN) as well as firmware version if you have it? I want to have a better record of the exact variants the integration works for and I've noticed some models have more than one variant.
I’ve got my ES-CS20M feeding into HA now thanks to you, but I’m curious if the protocol you’re using could also work for gathering other Renpho BLE/Bluetooth devices like the RF-BMF01 (a Renpho smart tape measure that uses Bluetooth 4), R-MZW01 (a smart ring that uses Bluetooth 5) or the RP-BPM001S (a BP monitor that uses BLE/Bluetooth 4).
I’ve used the BT Snoop HCI for both the scale and the BP Cuff; I can supply you with the cuff if that’s at all helpful!
I just purchased a ESCS20MB2 which apparently don’t work. I am more than happy to assist you in adding support for it. I probably lack skill myself but I am advanced HA user and will manage to follow instructions and do testing/verification!