Live data from Hacker News

I Connected My Withings Body+ to Home Assistant with an ESP32

didac.dev

21–30 of 35 posts

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#22

Withings has a full available API, I wrote a tool to just scrape what I need from the app at https://developer.withings.com/

I think the main point here is that they don't want their data going through yet another cloud service.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#23
Nice! I also got tired of the Withings app (which now pushes AI subscriptions, wtf) and "made" an app for the smartwatches (at least, it works with my ScanWatch 2)

The app is at https://github.com/DavidVentura/withouthings - the firmware on the watch was leaked as well, and it's been helpful to debug some of the protocol.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#24

You can build your own scale with an ESP32 for like $25 in parts - Hx711, load cells, ESP32, and a handful of trivial components. I threw together one that sits under my gas bottle, so I know when it’s running low. Adding impedance would be a pretty trivial step.

> Adding impedance would be a pretty trivial step.

But not the calibration that maps a raw ADC sample to "24.5% body fat, 21 Kg bone ..." etc.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#25

You can build your own scale with an ESP32 for like $25 in parts - Hx711, load cells, ESP32, and a handful of trivial components. I threw together one that sits under my gas bottle, so I know when it’s running low. Adding impedance would be a pretty trivial step.

> Adding impedance would be a pretty trivial step. But not the calibration that maps a raw ADC sample to "24.5% body fat, 21 Kg bone ..." etc.

Sure, you’ve gotta have some known good values to compare to, but those aren’t hard to come by. Pretty sure you can get a decent idea of BF with callipers or somesuch.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#26

Earlier quoted context omitted.

> Adding impedance would be a pretty trivial step. But not the calibration that maps a raw ADC sample to "24.5% body fat, 21 Kg bone ..." etc.

Sure, you’ve gotta have some known good values to compare to, but those aren’t hard to come by. Pretty sure you can get a decent idea of BF with callipers or somesuch.

Body fat would be possibly the only metric that a withings scale gives you that you can get a somewhat accurate number from without needing a dexa scan.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#27

You can build your own scale with an ESP32 for like $25 in parts - Hx711, load cells, ESP32, and a handful of trivial components. I threw together one that sits under my gas bottle, so I know when it’s running low. Adding impedance would be a pretty trivial step.

> Adding impedance would be a pretty trivial step. But not the calibration that maps a raw ADC sample to "24.5% body fat, 21 Kg bone ..." etc.

Whatever values you stick in there are about as accurate as the scale is, so.

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#28
post #9

I'd love to be able to flash a custom firmware on the withings body+ to make the screen truly smart. It's a bummer to know that AI can do all these things if only the firmware was open source / accessible.

Same. It annoys me I cannot use baby wright mode to also weigh my dog as she's heavier than the 5kg limit they impose. However, reverse engineering firmware is really easy these days...

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#29
post #7

If you have a eufy scale, you can do this with no LLM needed - just set up an esp32 Bluetooth proxy, add it to home assistant, and then use the EufyLife integration someone already made. I did this recently with my scale to avoid having to sync it to my phone, go to the cloud, fetch data from the cloud, etc., and it's working fantastically. I have a little Home Assistant integration that pokes scale updates to a Pyth…

Is there any documentation and a specific esp32 Bluetooth proxy you would recommend?

Re: I Connected My Withings Body+ to Home Assistant with an ESP32

#30
post #7

If you have a eufy scale, you can do this with no LLM needed - just set up an esp32 Bluetooth proxy, add it to home assistant, and then use the EufyLife integration someone already made. I did this recently with my scale to avoid having to sync it to my phone, go to the cloud, fetch data from the cloud, etc., and it's working fantastically. I have a little Home Assistant integration that pokes scale updates to a Pyth…

Is there any documentation and a specific esp32 Bluetooth proxy you would recommend?

esp32 bluetooth proxy: There's a standard esphome component that just turns any esp32 with appropriate h/w into a BTLE proxy: https://esphome.io/components/bluetooth_proxy/

I'm just using a cheap ESP-WROOM-32 but the recommended way to do it is with an wired ethernet-based ESP32 so you don't have interference with the wifi and btle. For a scale this works well enough. I haven't yet received the athom smart plug so I can't recommend it yet. Should be here in a week or so.

Once you've got the proxy you can just use the eufylife integration: https://www.home-assistant.io/integrations/eufylife_ble/

To setup the esphome bluetooth proxy you install esphome, and then create a yaml file that you'll use to configure the board, like this:

   esphome:
     name: bluetooth-proxy
   
   esp32:
     board: esp32dev
     framework:
       type: esp-idf
   
   # Enable logging
   logger:
   
   # Enable Home Assistant API
   api:
     encryption:
       key: "YOUR_KEY_HERE"
   
   # Enable OTA updates
   ota:
     - platform: esphome
   
   # WiFi configuration (matching the settings from your other devices)
   wifi:
     ssid: "YOUR_WIFI_SSID"
     password: "YOUR_WIFI_PASSWORD"
   
     # Enable fallback hotspot (captive portal) in case wifi connection fails
     ap:
       ssid: "Bluetooth Proxy Fallback"
       password: "proxyfallback"
   
   captive_portal:
   
   # Enable ESP32 BLE Tracker
   esp32_ble_tracker:
     scan_parameters:
       active: true
   
   # Enable Bluetooth Proxy
   bluetooth_proxy:
     active: true
Once that's done, plug in your board to your system and use esphome run bluetooth-proxy.yaml (you might have to find the device it's showing up as in tty.usbserial or whatever).
Post reply on HN