1
0
Fork 0
mirror of https://github.com/ananthb/hass-ble-scales.git synced 2026-09-20 16:26:51 +00:00
Home Assistant integration for broadcast BLE bathroom scales. Reads weight straight from the advertisement -- no pairing, no connection, no cloud.
Find a file
Ananth Bhaskararaman 636bc73663 Relicense from AGPL-3.0-only to GPL-3.0-only
The network-use clause buys nothing for a Home Assistant integration that
runs on the user's own hardware and talks to a scale over Bluetooth. Plain
GPL-3.0 keeps the copyleft and stays compatible with openScale, which the
parser is derived from.
2026-09-05 11:37:27 +00:00
custom_components/ble_scales hacs.json: hide the default branch 2026-09-05 09:45:49 +00:00
docs Decode impedance with the standard Chipsea broadcast layout 2026-09-05 09:39:38 +00:00
tests Decode impedance with the standard Chipsea broadcast layout 2026-09-05 09:39:38 +00:00
.gitignore Initial commit: passive HACS integration for AAA-series BLE scales 2026-09-05 08:49:11 +00:00
CHANGELOG.md Changelog: user-facing changes only 2026-09-05 09:50:21 +00:00
hacs.json hacs.json: hide the default branch 2026-09-05 09:45:49 +00:00
LICENSE Relicense from AGPL-3.0-only to GPL-3.0-only 2026-09-05 11:37:27 +00:00
README.md Relicense from AGPL-3.0-only to GPL-3.0-only 2026-09-05 11:37:27 +00:00

hass-ble-scales

Home Assistant integration for broadcast BLE bathroom scales. It reads the weight straight out of the Bluetooth advertisement — no pairing, no connection, no vendor app, no cloud — and gives each person their own weight, body composition and BMI.

Install

Add https://github.com/ananthb/hass-ble-scales as a custom repository in HACS, category Integration, then restart Home Assistant.

Configure

Add the integration, then pick yourself from the people Home Assistant already knows and stand on the scale — your usual weight is measured, not typed. Height, age and sex are optional and only affect body composition.

Readings are matched to people by weight; where two people are too close to separate, press their "weighing in" button before stepping on.

If weight and BMI work but body fat and muscle stay unknown, the scale did not complete an impedance measurement. Wipe the plate and stand on it barefoot with slightly damp feet.

Supported scales

Family Advertised name Service Status
AAA-series (Chipsea) AAA044 0xFFB0 verified against hardware
AAA-series (Chipsea) AAA002, AAA007, AAA013 0xFFB0 same frame format, untested

Sold under many brand names — Meditive among them. Any scale on service 0xFFB0 is offered for setup only if its advertisement parses and its checksum validates, so a device using that service with a different frame format is declined rather than adopted and misread.

If yours is not listed, open an issue with a capture — adding a family is a parser function and one registry entry in parser.py.

Notes

  • docs/protocol.md — the frame format, with captures.
  • body.py — which published equations the body composition uses, and why those numbers are a trend rather than a measurement.

Protocol decoding is owed to openScale.

Licence

GPL-3.0-only. See LICENSE.