// HACKER NEWS — CYBERSECURITY
I Connected My Withings Body+ to Home Assistant with an ESP32
My Withings scale now sends weight and body composition data directly to Home Assistant through an ESP32, without going through the Withings cloud.
I have had a Withings Body+ for years. We step on it, it figures out who is who, and the measurements appear in the Withings app. Nothing was wrong with that. I just wanted the same data in Home Assistant.
Home Assistant already has a Withings integration. It would have taken me a few minutes to set up, but it gets the measurements from your Withings account. The data still has to make this trip:
I wanted to remove the middle step. After some digging with ChatGPT, it looked like an original ESP32 could talk to the scale over Bluetooth and send the result to Home Assistant using ESPHome. I already had one in a drawer, which was enough of an excuse to try it.
I didn't modify or open the scale. The ESP32 sits nearby and only needs a USB cable for power.
After a weigh-in, the Body+ sends the measurement to the ESP32 over Bluetooth. ESPHome passes it to Home Assistant over Wi-Fi.
I also removed the saved Wi-Fi network from the Body+, so the scale itself can no longer upload anything to Withings.
The exact ESP32 matters here. The Body+ syncs using Bluetooth Classic, while ESP32-C3 and ESP32-S3 boards only support Bluetooth LE. I happened to have an original ESP32 development board, and that was the right one. Any original ESP32 with Bluetooth Classic should work; a C3 or S3 won't.
The ESP32 was the easy part. The problem was that the Body+ protocol isn't documented for anyone trying to replace the Withings app.
I gave the problem to OpenCode running Codex. It went through an old version of the Withings Android app, compared it with existing work on the protocol, and started building an ESPHome component.