Etekcity Fitness Scale BLE Custom Integration

Hey everyone!

I’ve created this custom integration for Etekcity Bluetooth Fitness Scales, as I wanted to easily get my weight data into Home Assistant without relying on the VeSync app or an internet connection. While the app is very nice and has a lot of cool advanced features, I found that I don’t really use most of them, and I found it a bit frustrating due to synchronization issues which made it practically impossible to sync and record my measurements without having my phone at hand and the app open and connected while using the scale. Also, I preferred the data to just get pushed to HA locally over having it getting to HA from VeSync through the internet.

The integration is very simple and basic, since I mostly just implemented the stuff I was personally interested in for my own use of the scale. So it just receives and records weight measurements once the reading stabilizes when you step on the scale. For now the only thing I added other than that is support for different display units, so that if anyone wants to use it in different parts of the world they can.

The parser library I implemented for the integration to use also extracts the impedance measurement, so if there’s interest I might add that or maybe at some point even try to figure out how to use it to calculate body composition metrics based on the impedance (which is what the VeSync app does I guess).

I have the Etekcity Smart Fitness Scale ESF-551 model, so that’s the only model that’s tested and known to work with the integration. I don’t know whether it might also work as is with some of the other ESF models or not, but if it doesn’t - my guess is it should probably be pretty easy to add support for them if I get the bluetooth packet captures from them.

So if you want to give it a try, I’ve put all the details on GitHub:

You can install it manually from the repo, or through HACS (which is probably the easiest way):
Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

If you run into any issues or have any feedback, feel free to let me know here or on GitHub.

Cheers

5 Likes

Thanks for making and sharing this! I’ve started a very hacky fork of the Python library that I’ve adapted to work with a different make/model/protocol, and time-permitting hope to have a usable fork of the HA component soon as well; Down the road, it might be nice to try to DRY out these various libraries/integrations for smart scales in general so the common parts can be more easily reused to support more devices.

Nice! How’s it coming along?

And absolutely, I’d love to see if we can do that down the road. I’m not sure about the library as most of the other scales I looked at seem to work totally differently (not sure about yours), but it’s worth a look. As for the HA integration - makes sense and should be totally doable.

Let me know when you’re all done with your adaptations and we can think how best to do it.

Ran into a little bit of trouble; The modified library itself running natively on my laptop was able to make connections to the scale, but the Home Assistant component was not - I think this is because my Home Assistant instance uses a Bluetooth Proxy rather than a local BT adapter, and the library is trying to manage bleak directly rather than using one of the Home Assistant provided active bluetooth coordinators (as some native integrations like Switchbot and Xiaomi BLE do).

The next time I have a bit of time to kill, I might take a pass at shifting things around to work that way (unless someone beats me to it :wink:)

A few people asked me about the bluetooth proxy thing, which I’m not really familiar with. I’m working on a couple of other things at the moment, but once I’m done with those I’ll look into this one next, hopefully within a week or two. Let me know if you beat me to it or have some insights on the matter.

1 Like

@BHSPitMonkey - added support for ESPHome bluetooth proxy (currently as pre-release version 0.3.0 but if no issues come up will make it a normal release).
Feel free to install the update and try it out, and hopefully now this allows you to proceed with your own fork. Let me know how it goes.

1 Like

@ronnnnnnn Thanks for your work on this integration! I am currently using ESPHome Bluetooth proxies in my Home Assistant setup and it is working as expected with the 0.3.1 release.

Is there any chance you could add support for multiple users to the integration?

HI there,

I have plenty of Bluetooth proxies and even my Shelly devices act now as a proxy device.

I installed the HACS integration and used a bluetooth scanner app to find out the MAC address, which starts with S16… naming convention. I was able to add the device into HA, but only once I unchecked the box for calculating body numbers.

Now I can see a master device and the scale beneath it with 2 measurements, but they are both unknown.

What am I missing please?

One more question… Why are you using Bluetooth given that this scale supports Wifi?

Thanks.

@Pseudomizer Are you sure you’re referring to the same product (ESF-551)? I don’t see any mention of Wi-Fi in the manual: ESF-551-Smart-Fitness-Scale-USCA.pdf

Have a look at OpenScale which supports quite a number of devices.

There are different methods each manufacturer implements collection and transmission of data, and looking at the source code should give you lots of ideas.

Remember that BLE is usually restricted to single sessions so you will have to offer at least the functionality people give up on their app to use your integration.

There is discussion there about how impedance data is extrapolated to make up a range of statistics such as water content, bone mass, protein levels, etc. It makes assumption that may be quite wrong for you body type, nationality, gender, and overall health. Still, it appeases the marketing types and allows them to add ‘Smart’ to their advertising.

Add MQTT in a fork and it could become even more popular.

Just FYI. If anyone was able to connect to the scale, but the values are all “Unknown”, try turning on “Passive scanning” on your bluetooth and restart HA.

I’m running HAOS on a Proxmox VM, and was getting bluez.org.error.inprogress in the logs on startup when the scale was trying to connect. This fixed it.

1 Like

Yes. Actually someone already asked for that a little while ago on Github and I was meaning to look into it but it slipped my mind. I’ll definitely try to look into it soon.

I think you probably have a different model. The ESF-551 only supports Bluetooth, no Wifi. So most likely your scale’s model uses a somewhat different protocol and that’s why it doesn’t work with the integration.
If you let me know the exact model and send me some Bluetooth data together with relevant measurement data I can try to analyze it to see if maybe it’s simple enough to easily add support for.

Hi Home Assistant fam - currently using this integration for the Etekcity Smart Fitness Scale (model ESF 551) and it works great. However I keep running into the same snag, which is that whenever I use the scale and then let it sit for a few days, it doesn’t send the data to home assistant when I weigh in. I’ve been able to remove the device and then re-add it to get it to reconnect.

However, this is kinda dumb to need to do this every time, so what am I doing wrong here? I have it set up with an EPL running BLE proxy in the room it is in. And as stated, when initially setting up the device, everything works great.

I’ve seen a few users post about passive BLE monitoring vs. active, so could someone advise on if this might help me fix this?

Thanks all!

It took some time but here’s a version with multi-user support. I’m releasing it as a beta for now to give it a little time to see I haven’t accidentally broken anything along the way, and will probably make it into a normal public release in a few days or once I get some feedback that everything seems to work properly.
If you (or anyone else) want to try it out you can install it manually through HACS (it’s release v0.3.7b2) as it won’t update automatically just yet as it’s a beta release.

If you do please let me know how it goes, whether the multi-user functionality works fine or not, and also if nothing else might have broken along the way.

Ron

2 Likes

Does it stop working immediately after that first time or only after a few days? If you weight yourself again after an hour does it still work?

Can you check the logs for any errors or warnings that might be related?

Hey there!

Just found this, worth a cup of coffee, but a question: I run HA Core (not hacs), copied it to the custom_components directory, but when I try to add the integration I get the:

Config flow could not be loaded: {“message”:“Invalid handler specified”}

Checking the logs with error level logging I see:

2025-12-23 20:59:15.201 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration etekcity_fitness_scale_ble: No module named ‘sensor_state_data’

Running:

  • Installation method Home Assistant Core
  • Core 2025.11.3
  • Frontend 20251105.1

Do I need to have mqqt installed or something else?

Edit, chugging away at the code here, I can see that one needs to do a pip install sensor-state-data in order for things to work. Well, more work, now the system just says it can’t find the scale with a “no devices found on the network”. Hm…

Thanks!

Update, looks like I just had to step on the scale to turn it on and it was found. Excellent integration, and a cup of coffee is on the way.

Thank you.
PS to all, this scale is on Amazon for $19.99. Can’t get much better than that…

1 Like

Hello,
which devices of Etekcity are supported? I just bought an Type Fit 8S from Amazon (Amazon.de).

I added this integration, and when I add a device I get the answer “No devices found on the network”. Is this a cheep model which is not yet supported?

Edit: I have to turn on the display on the scale.

Edit2: I have integrated my device and I got the BT address, but both sensors (impedance and weight) are unknown. Did I miss some configuration? Or does the device loose the connection to my BLE network?

Thank you for the kind words, and for letting me know about the issue! :slight_smile:
I’ve removed it as a dependency in the latest version (it’s actual use by the integration was very minor anyway, so it was easy enough to overcome and just remove the dependency).

PS: And thank you very much for that cup of coffee of course! :pray: :slightly_smiling_face: