keptenkurk / BS440

Python code to talk to Medisana BS440 bluetooth enabled bathroom scale
MIT License
50 stars 34 forks source link

Read battery level from scale #49

Closed keptenkurk closed 7 years ago

keptenkurk commented 7 years ago

Is it possible to read the battery level from the device. The Bluetooth standard suggests it should have one (tnx @DjZU) https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.battery_service.xml

DjZU commented 7 years ago

Not very promising.

sudo gatttool --adapter hci0 --device 00:00:00:00:00:00 --addr-type random --interactive

[00:00:00:00:00:00][LE]> connect Attempting to connect to 00:00:00:00:00:00 Connection successful [00:00:00:00:00:00][LE]> primary attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb attr handle: 0x0008, end grp handle: 0x0008 uuid: 00001801-0000-1000-8000-00805f9b34fb attr handle: 0x0009, end grp handle: 0x0018 uuid: 0000180a-0000-1000-8000-00805f9b34fb attr handle: 0x0019, end grp handle: 0xffff uuid: 000078b2-0000-1000-8000-00805f9b34fb [00:00:00:00:00:00][LE]> characteristics handle: 0x0002, char properties: 0x0e, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb handle: 0x0006, char properties: 0x02, char value handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb handle: 0x000a, char properties: 0x02, char value handle: 0x000b, uuid: 00002a25-0000-1000-8000-00805f9b34fb handle: 0x000d, char properties: 0x02, char value handle: 0x000e, uuid: 00002a27-0000-1000-8000-00805f9b34fb handle: 0x0010, char properties: 0x02, char value handle: 0x0011, uuid: 00002a26-0000-1000-8000-00805f9b34fb handle: 0x0013, char properties: 0x02, char value handle: 0x0014, uuid: 00002a29-0000-1000-8000-00805f9b34fb handle: 0x0016, char properties: 0x02, char value handle: 0x0017, uuid: 00002a28-0000-1000-8000-00805f9b34fb handle: 0x001a, char properties: 0x20, char value handle: 0x001b, uuid: 00008a21-0000-1000-8000-00805f9b34fb handle: 0x001d, char properties: 0x20, char value handle: 0x001e, uuid: 00008a22-0000-1000-8000-00805f9b34fb handle: 0x0020, char properties: 0x02, char value handle: 0x0021, uuid: 00008a20-0000-1000-8000-00805f9b34fb handle: 0x0022, char properties: 0x08, char value handle: 0x0023, uuid: 00008a81-0000-1000-8000-00805f9b34fb handle: 0x0024, char properties: 0x20, char value handle: 0x0025, uuid: 00008a82-0000-1000-8000-00805f9b34fb

Primary returns 4 services: 1800 is Generic Access 1801 is Generic Attribute 180a is Device Information 78b2 is Weight Scale

Note that battery service 180f is not showing up. Also, the Weight Scale service is not 181d as suggested in the specifications.

Since:

Then my conclusion is that unfortunately our scales (at least the BS444) will not notify about the battery level.