BLE Scale Sync - Automatic body composition from 23 BLE scales to Garmin, Strava, MQTT & more

What is it?

BLE Scale Sync is a headless CLI tool that reads weight and impedance from BLE smart scales and
syncs body composition data to multiple targets. No phone app needed. Runs on a Raspberry Pi,
Docker, or any machine with Node.js.

Website: blescalesync.dev
GitHub: KristianP26/ble-scale-sync

Home Assistant Integration

MQTT with auto-discovery. Once connected, 10 sensors appear automatically:

  • Weight, BMI, Body Fat %, Muscle Mass, Body Water %
  • Bone Mass, Visceral Fat, BMR, Metabolic Age, Protein %
  • LWT availability tracking (online/offline)

Each user gets their own set of sensors (e.g. sensor.scale_kristian_weight,
sensor.scale_anna_body_fat).

Supported Scales

23 brands out of the box: Xiaomi Mi Scale, Renpho, Eufy, Yunmai, Beurer, Sanitas, Medisana,
Silvercrest, 1byone, Etekcity, Arboleaf, Lepulse, Fitdays, and more. Full list on the website under
Supported Scales.

Export Targets

Target What it does
MQTT Home Assistant auto-discovery, 10 sensors per user
Garmin Connect Automatic body composition upload
Strava Automatic athlete weight sync
InfluxDB Time-series storage for Grafana dashboards
Webhook POST JSON to any endpoint
Ntfy Push notifications on each measurement
File Local CSV or JSONL logging

All exporters run in parallel. Multi-user support with automatic weight-based identification and
per-user exporter config (e.g. each family member syncs to their own Garmin account).

ESP32 BLE Proxy

No Bluetooth on your server? A cheap ESP32 board (~8€) sits near the scale and relays BLE data over
WiFi/MQTT. The server needs no Bluetooth adapter at all. This simplifies Docker deployment: no
NET_ADMIN, no D-Bus mounts, no group-add. See the ESP32 Proxy guide on the website.

Quick Start (Docker)

The Docker image is on GHCR under ghcr.io/kristianp26/ble-scale-sync:latest. Run setup for the
interactive wizard, then start with CONTINUOUS_MODE=true. Full Docker commands and compose
examples are in the Getting Started guide on the website.

The setup wizard walks you through scale discovery, user profiles, exporter selection, and
connectivity tests.