Xiaomi mi body composition scale 2 stopped syncing after update to 3.0
Describe the bug I used 2.x version for a while and synced without problems, app got auto updated to v3.0, and it is not syncing anymore 'Failed to initiate notify' message appears briefly
To Reproduce Steps to reproduce the behavior:
- As usual stand on the scale/do measure
- Start open scale to sync with scale
- if it not auto syncing, click on Bluetooth button
- See error popups "Waiting for measurement via notifications" followed by "MIBFS:Failed to initiate notify"
Reproduced with latest version from f-droid (3.0 (70)
Expected behavior To get measurements like it used to work.
Debug log
Same, can't get any values since 3.0 update.
My log if helps:
| Field | Value |
|---|---|
| Time | 2025-12-03 12:56:00.037 |
| Session ID | 19ae3a3e3a5 |
| App | openScale |
| Version | 3.0 (70) |
| Package | com.health.openscale |
| Build Type | release |
| Device | samsung SM-G736B |
| Android | 16 (API 36) |
| Build ID | BP2A.250605.031.A3.G736BXXSAGYK2 |
| Build Time | 2025-12-01T12:00:14Z |
| Git SHA | e28baf50 |
? 2025-12-03 12:56:00.033 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale/files/logs/openScale_current_log.txt
? 2025-12-03 12:56:00.034 D/openScaleLog: Markdown diff block closed.
? 2025-12-03 12:56:00.037 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale/files/logs/openScale_current_log.txt
+ 2025-12-03 12:56:00.037 I/openScaleLog: File logging enabled during runtime – started fresh session log.
? 2025-12-03 12:56:05.500 D/UserSettingsRepository: Setting hapticOnMeasurement to: true
? 2025-12-03 12:56:24.273 D/BluetoothTopBar: User clicked bluetooth icon connect → trying to connect to saved device MI SCALE2
+ 2025-12-03 12:56:24.276 I/BleConnector: Attempting to connect to MI SCALE2
? 2025-12-03 12:56:24.277 D/BleConnector: Switching to new device: Releasing active communicator: null
? 2025-12-03 12:56:24.277 D/BleConnector: Switching to new device: Active communicator released and set to null.
? 2025-12-03 12:56:24.277 D/ScaleHandlerFactory: createCommunicator: Searching for communicator for 'MI SCALE2' (70:87:9E:BB:15:EF). Handler hint: 'Xiaomi Mi Scale v2'
+ 2025-12-03 12:56:24.277 I/ScaleHandlerFactory: Modern handler 'Xiaomi Mi Scale v2' supports 'MI SCALE2'.
? 2025-12-03 12:56:24.283 D/BleConnector: Adapter isConnected: false for MI SCALE2 (Status: CONNECTING)
+ 2025-12-03 12:56:24.282 I/ScaleHandlerFactory: Modern communicator 'GattScaleAdapter' created for 'MI SCALE2' with linkMode=CONNECT_GATT.
+ 2025-12-03 12:56:24.283 I/BleConnector: ActiveCommunicator successfully created: GattScaleAdapter. Starting observation job...
+ 2025-12-03 12:56:24.285 I/BleConnector: Adapter no longer reports connected for MI SCALE2. Current status: CONNECTING. Expecting Disconnected Event.
+ 2025-12-03 12:56:25.695 I/GattScaleAdapter: Found 70:87:9E:BB:15:EF → stop scan + connect
? 2025-12-03 12:56:27.726 D/GattScaleAdapter: Services discovered for 70:87:9E:BB:15:EF
? 2025-12-03 12:56:27.730 D/MiScaleHandler: attach()
? 2025-12-03 12:56:27.731 D/MiScaleHandler: handleConnected(userId=1, height=185.0, age=37)
+ 2025-12-03 12:56:27.731 I/MiScaleHandler: Connected (V2); init sequence
? 2025-12-03 12:56:27.732 D/MiScaleHandler: Unit set (v2): payload=[06 04 00 00]
? 2025-12-03 12:56:27.732 D/MiScaleHandler: Current time written (primary).
? 2025-12-03 12:56:27.733 D/BleConnector: Adapter isConnected: true for MI SCALE2 (Status: CONNECTING)
+ 2025-12-03 12:56:27.734 I/BleConnector: Successfully connected to MI SCALE2 via adapter's isConnected flow.
? 2025-12-03 12:56:27.734 D/BleConnector: BluetoothEvent received: Connected(deviceName=MI SCALE2, deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
+ 2025-12-03 12:56:27.735 I/BleConnector: Event: Connected to MI SCALE2 (70:87:9E:BB:15:EF)
? 2025-12-03 12:56:27.735 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Waiting for measurement via notifications., deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
? 2025-12-03 12:56:27.736 D/BleConnector: Event: Message from MI SCALE2: Waiting for measurement via notifications.
? 2025-12-03 12:56:27.813 D/GattScaleAdapter: → write to chr=00001542-0000-3512-2118-0009af100700 svc=00001530-0000-3512-2118-0009af100700 len=4 withResp=true payload=[06 04 00 00]
? 2025-12-03 12:56:28.326 D/GattScaleAdapter: ← write response chr=00001542-0000-3512-2118-0009af100700 len=4 status=SUCCESS payload=[06 04 00 00]
? 2025-12-03 12:56:28.350 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb
! 2025-12-03 12:56:28.350 W/GattScaleAdapter: Failed to initiate notify for 00002a2f-0000-3512-2118-0009af100700
? 2025-12-03 12:56:28.352 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Failed to enable notifications for 00002a2f-0000-3512-2118-0009af100700., deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
? 2025-12-03 12:56:28.353 D/BleConnector: Event: Message from MI SCALE2: Failed to enable notifications for 00002a2f-0000-3512-2118-0009af100700.
! 2025-12-03 12:56:28.740 W/MiScaleHandler: No history count response on primary; attempting fallback (ALL records).
? 2025-12-03 12:56:28.741 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb
? 2025-12-03 12:56:28.776 D/GattScaleAdapter: ← notify state chr=00002a2f-0000-3512-2118-0009af100700 status=SUCCESS
? 2025-12-03 12:56:28.980 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2025-12-03 12:56:29.016 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 58 00 96 8A BD 62]
? 2025-12-03 12:56:29.015 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2025-12-03 12:56:29.121 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 00 00 00 01]
? 2025-12-03 12:56:29.150 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 00 00 00 01]
? 2025-12-03 12:56:29.151 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 58 00 00 00 00 01]
+ 2025-12-03 12:56:29.151 I/MiScaleHandler: History count announced (marker=0): 88
? 2025-12-03 12:56:29.256 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2025-12-03 12:56:29.287 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2025-12-03 12:56:29.288 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 96 3C E9 07 08 0E 07 07 0A 22 32 3C E9 07 08 0F 07 06 26]
? 2025-12-03 12:56:29.289 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 86 47 E9 07 08 10 08 32 36 22 5A 3C E9 07 08 10 09 24 1F]
? 2025-12-03 12:56:29.290 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 36 47 E9 07 08 12 09 11 1B 22 0E 3D E9 07 08 13 07 09 11]
? 2025-12-03 12:56:29.290 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 DC 3C E9 07 08 14 07 08 05 22 08 48 E9 07 08 17 13 03 03]
? 2025-12-03 12:56:29.291 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 FE 3D E9 07 08 1F 09 06 08 22 58 3E E9 07 09 01 06 35 33]
? 2025-12-03 12:56:29.300 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 40 47 E9 07 09 01 08 28 22 22 FE 3D E9 07 09 02 06 3B 06]
? 2025-12-03 12:56:29.301 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 68 3D E9 07 09 03 07 00 16 22 C2 3D E9 07 09 04 07 07 0A]
? 2025-12-03 12:56:29.301 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 A4 3D E9 07 09 05 07 0F 1E 22 68 3D E9 07 09 06 08 18 25]
? 2025-12-03 12:56:29.302 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D6 47 E9 07 09 07 0A 20 31 22 CC 3D E9 07 09 0B 07 07 23]
? 2025-12-03 12:56:29.302 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 26 3E E9 07 09 0C 06 2A 1D 22 D6 47 E9 07 09 0E 0C 22 32]
? 2025-12-03 12:56:29.317 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 36 47 E9 07 09 0F 09 2E 37 22 1C 3E E9 07 09 10 07 00 0A]
? 2025-12-03 12:56:29.321 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 90 3D E9 07 09 11 07 0C 00 22 90 47 E9 07 09 11 08 37 1B]
? 2025-12-03 12:56:29.322 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 90 3D E9 07 09 12 07 0E 0C 22 68 3D E9 07 09 13 07 17 36]
? 2025-12-03 12:56:29.322 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 36 3D E9 07 09 14 08 31 30 22 36 47 E9 07 09 15 0C 04 02]
? 2025-12-03 12:56:29.323 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 F4 3D E9 07 09 16 07 16 33 22 D6 3D E9 07 09 17 07 0C 06]
? 2025-12-03 12:56:29.330 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 54 47 E9 07 09 17 08 3B 12 22 C2 3D E9 07 09 18 07 1A 06]
? 2025-12-03 12:56:29.331 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 FE 3D E9 07 09 19 07 1E 28 22 36 3D E9 07 09 1A 07 26 34]
? 2025-12-03 12:56:29.332 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 5E 47 E9 07 09 1A 09 2D 0F 22 E6 3C E9 07 09 1B 0A 1C 03]
? 2025-12-03 12:56:29.333 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 C2 47 E9 07 09 1C 0B 12 01 22 5E 47 E9 07 09 1D 09 00 1F]
? 2025-12-03 12:56:29.334 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D E9 07 09 1E 07 27 13 22 9A 47 E9 07 09 1E 08 3A 0C]
? 2025-12-03 12:56:29.343 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 FA 3C E9 07 0A 01 07 23 01 22 18 3D E9 07 0A 02 07 36 34]
? 2025-12-03 12:56:29.344 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 7C 47 E9 07 0A 02 09 0D 01 22 72 3D E9 07 0A 07 07 2D 2B]
? 2025-12-03 12:56:29.345 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 A4 47 E9 07 0A 07 11 30 20 22 36 47 E9 07 0A 08 09 36 22]
? 2025-12-03 12:56:29.346 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 72 47 E9 07 0A 0C 0A 36 02 22 1C 3E E9 07 0A 0E 07 14 16]
? 2025-12-03 12:56:29.346 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D E9 07 0A 0F 07 18 01 22 9A 3D E9 07 0A 10 07 26 00]
? 2025-12-03 12:56:29.359 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 AE 3D E9 07 0A 11 07 2B 14 22 76 48 E9 07 0A 12 0F 26 1D]
? 2025-12-03 12:56:29.360 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 2A 49 E9 07 0A 15 10 06 1C 22 B4 3C E9 07 0A 18 07 25 12]
? 2025-12-03 12:56:29.361 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 9A 47 E9 07 0A 1D 0C 0B 32 22 5E 3D E9 07 0B 03 09 2E 1B]
? 2025-12-03 12:56:29.361 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 02 49 E9 07 0B 03 0F 02 11 22 2C 3D E9 07 0B 04 08 2C 09]
? 2025-12-03 12:56:29.362 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 A0 3C E9 07 0B 06 09 15 00 22 F0 3C E9 07 0B 07 0A 27 14]
? 2025-12-03 12:56:29.374 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 BE 3C E9 07 0B 0A 0A 1A 08 22 78 3C E9 07 0B 0C 07 16 3A]
? 2025-12-03 12:56:29.375 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D2 3C E9 07 0B 0D 06 24 2C 22 96 3C E9 07 0B 0E 06 3B 35]
? 2025-12-03 12:56:29.376 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 96 3C E9 07 0B 0F 0A 13 26 22 04 3D E9 07 0B 10 09 1A 21]
? 2025-12-03 12:56:29.376 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 40 3D E9 07 0B 11 06 2B 3A 22 B4 3C E9 07 0B 12 06 32 2D]
? 2025-12-03 12:56:29.376 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 78 3C E9 07 0B 13 06 3A 3A 22 AA 3C E9 07 0B 14 06 35 2C]
? 2025-12-03 12:56:29.390 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 08 48 E9 07 0B 14 09 19 10 22 78 3C E9 07 0B 15 06 3B 28]
? 2025-12-03 12:56:29.391 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 16 0B 2F 0E 22 50 3C E9 07 0B 17 09 2E 3B]
? 2025-12-03 12:56:29.391 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 17 09 2F 23 22 64 3C E9 07 0B 18 06 35 20]
? 2025-12-03 12:56:29.392 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 76 48 E9 07 0B 18 09 18 26 22 28 3C E9 07 0B 19 06 28 2F]
? 2025-12-03 12:56:29.392 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 B0 3B E9 07 0B 1A 07 18 05 22 D8 3B E9 07 0B 1B 06 35 01]
? 2025-12-03 12:56:29.407 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 1E 3C E9 07 0B 1C 07 02 0C 22 46 3C E9 07 0B 1D 08 1C 2B]
? 2025-12-03 12:56:29.408 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 8C 3C E9 07 0B 1E 09 26 13 22 04 3D E9 07 0C 01 06 26 02]
? 2025-12-03 12:56:29.410 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D6 47 E9 07 0C 01 09 1B 1F 22 80 48 E9 07 0C 01 15 00 30]
? 2025-12-03 12:56:29.411 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 64 3C E9 07 0C 02 07 02 05 22 BA 3B E9 07 0C 03 07 08 24]
? 2025-12-03 12:56:29.411 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
+ 2025-12-03 12:56:29.412 I/MiScaleHandler: History import done: 0 record(s). Announced=88
+ 2025-12-03 12:56:35.557 I/BleConnector: disconnect() called for MI SCALE2. Active communicator: true, Status: CONNECTED
? 2025-12-03 12:56:35.558 D/BleConnector: Adapter isConnected: false for MI SCALE2 (Status: DISCONNECTING)
+ 2025-12-03 12:56:35.558 I/BleConnector: Adapter no longer reports connected for MI SCALE2. Current status: DISCONNECTING. Expecting Disconnected Event.
+ 2025-12-03 12:56:35.571 I/GattScaleAdapter: Disconnected 70:87:9E:BB:15:EF: SUCCESS
? 2025-12-03 12:56:35.572 D/MiScaleHandler: handleDisconnected()
? 2025-12-03 12:56:35.572 D/MiScaleHandler: detach()
? 2025-12-03 12:56:35.572 D/BleConnector: BluetoothEvent received: Disconnected(deviceAddress=70:87:9E:BB:15:EF, reason=SUCCESS) for MI SCALE2
+ 2025-12-03 12:56:35.572 I/BleConnector: Event: Disconnected from 70:87:9E:BB:15:EF. Reason: SUCCESS
? 2025-12-03 12:56:35.573 D/BleConnector: Disconnected event: Releasing active communicator: GattScaleAdapter
? 2025-12-03 12:56:35.573 D/BleConnector: Disconnected event: Active communicator released and set to null.
Heads up from my side, mine seems to work after some more attempts.
I'm experiencing the same issue.
I'm able to sync single data points when timing weighing and trying to connect. So only the "real time" measurement and none of the history entries.
Kinda how the Xiaomi Bluetooth Mi Scale - openscale Wiki describes at some point
Unfortunately I could only receive the weight data if a user was on the scale and a connection was established.
I'm able to sync with my Balance Feet (I think it's v2, but not sure) with the 3.0 update. But it takes some time. Basically, I do this:
- open the app
- click on the bluetooth icon, to activate it
- I use the scale
- then I see the same pop-up like the one mentioned above, something like
cannot notify - I wait for several seconds (30 or more), and then suddenly it syncs with the scale
With the previous version, I usually opened the app, wait 3-5 seconds to find the scale and then synchronize with it.
I can provide with logs, if I can do it from the mobile app itself (I don't have development environment for Android)
Can confirm issues with MIBFS sync and CSV backups import. Rolling back to 2.5.3 fixes both issues.
Same problem here and obviously database was converted, app crashes when just installing the previous apk. So no way back to the previous version.
While troubleshooting, I tried rolling back, couldn't import my CSV, then reinstalled v3 & restored my backup. During the restore, I had to re-add the scale & now it's working properly with my history intact.
Can another affected user try re-adding the scale under "Settings -> Bluetooth" or restoring a backup to a fresh install.
Can another affected user try re-adding the scale under "Settings -> Bluetooth"
Deleted the scales and added them back. Nothing has changed: the error persists, measurement results are not received.
Can another affected user try re-adding the scale under "Settings -> Bluetooth" or restoring a backup to a fresh install.
Somehow it kinda worked? Error message popped up but sync did work.
Steps I took
- create backup
- delete user data and cache, then uninstall
- reinstall 3.0 from f-droid
- stand on scale for a moment to turn on
- go to settings -> bluetooth, give permission, select scale
- click on bluetooth button on main screen, got asked to create user
- restore backup
- connect per bluetooth, error message pops up, but 8 records got synced (which I previously deleted when trying this)
- disconnect
- stand on scale to weigh
- step off, click main bluetooth button, error message pops up but new record is received
Will see if it keeps working over the next days.
I've got the same issue. Just updated today in the background, went to sync my latest measurement but the interface was horrid and cluttered, it had forgotten the mi scale, and when trying to add it fresh and sync got the same notify error as OP
Apart from the sync issues with MI 2 scale, I've also noticed that the measurement of muscle % drastically dropped by 32%! from 68% to 36%
In my case also the historical weight values dropped. Was there a faulty conversion? Or is that a setting that needs to be changed? 🤔
Experiencing the same issue. I'm an Android dev myself and have access to the hardware - let me know if you would like to do a pair debug session, @oliexdev!
@Mots Hi, unfortunately, I cannot provide a definitive solution because for some users it works fine, and for others it doesn’t. All the relevant information is available here:
Recently, I made some fixes addressing timing issues (see #1259), which might also resolve this problem. Please try setting the BLE tuning to conservative and share the log files if the issue persists.
I do wonder why so many users report that it doesn’t work, but only a couple actually post debug logs—it makes troubleshooting much harder. It’s a bit disappointing that most people only complain instead of actively helping to find a solution.
Can another affected user try re-adding the scale under "Settings -> Bluetooth" or restoring a backup to a fresh install.
Somehow it kinda worked? Error message popped up but sync did work. Steps I took
Will see if it keeps working over the next days.
Well it's a couple days later now and the behavior I described in my previous comment has been consistent. The error still pops up every time but syncing hasn't been an issue since.
Note I'm still on 3.0
Debug Log
| Field | Value |
|---|---|
| Time | 2026-01-04 13:12:31.611 |
| Session ID | 19b88ec61fb |
| App | openScale |
| Version | 3.0 (70) |
| Package | com.health.openscale |
| Build Type | release |
| Device | Google Pixel 9 |
| Android | 16 (API 36) |
| Build ID | BP3A.251105.015 |
| Build Time | 2025-12-01T12:00:14Z |
| Git SHA | e28baf50 |
? 2026-01-04 13:12:31.612 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale/files/logs/openScale_current_log.txt
? 2026-01-04 13:12:31.612 D/openScaleLog: Markdown diff block closed.
+ 2026-01-04 13:12:31.613 I/openScaleLog: File logging enabled during runtime – started fresh session log.
? 2026-01-04 13:12:57.533 D/BluetoothTopBar: User clicked bluetooth icon connect → trying to connect to saved device MIBFS
+ 2026-01-04 13:12:57.534 I/BleConnector: Attempting to connect to MIBFS
? 2026-01-04 13:12:57.534 D/BleConnector: Switching to new device: Releasing active communicator: null
? 2026-01-04 13:12:57.534 D/BleConnector: Switching to new device: Active communicator released and set to null.
? 2026-01-04 13:12:57.534 D/ScaleHandlerFactory: createCommunicator: Searching for communicator for 'MIBFS' (5C:CA:D3:98:45:1C). Handler hint: 'Xiaomi Mi Scale v2'
+ 2026-01-04 13:12:57.535 I/ScaleHandlerFactory: Modern handler 'Xiaomi Mi Scale v2' supports 'MIBFS'.
+ 2026-01-04 13:12:57.536 I/ScaleHandlerFactory: Modern communicator 'GattScaleAdapter' created for 'MIBFS' with linkMode=CONNECT_GATT.
+ 2026-01-04 13:12:57.536 I/BleConnector: ActiveCommunicator successfully created: GattScaleAdapter. Starting observation job...
? 2026-01-04 13:12:57.536 D/BleConnector: Adapter isConnected: false for MIBFS (Status: CONNECTING)
+ 2026-01-04 13:12:57.536 I/BleConnector: Adapter no longer reports connected for MIBFS. Current status: CONNECTING. Expecting Disconnected Event.
+ 2026-01-04 13:12:59.172 I/GattScaleAdapter: Found 5C:CA:D3:98:45:1C → stop scan + connect
? 2026-01-04 13:13:01.083 D/GattScaleAdapter: Services discovered for 5C:CA:D3:98:45:1C
? 2026-01-04 13:13:01.085 D/MiScaleHandler: attach()
? 2026-01-04 13:13:01.086 D/MiScaleHandler: handleConnected(userId=1, height=185.0, age=28)
+ 2026-01-04 13:13:01.086 I/MiScaleHandler: Connected (V2); init sequence
? 2026-01-04 13:13:01.088 D/MiScaleHandler: Unit set (v2): payload=[06 04 00 00]
? 2026-01-04 13:13:01.088 D/MiScaleHandler: Current time written (primary).
? 2026-01-04 13:13:01.090 D/BleConnector: Adapter isConnected: true for MIBFS (Status: CONNECTING)
+ 2026-01-04 13:13:01.091 I/BleConnector: Successfully connected to MIBFS via adapter's isConnected flow.
? 2026-01-04 13:13:01.091 D/BleConnector: BluetoothEvent received: Connected(deviceName=MIBFS, deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
+ 2026-01-04 13:13:01.091 I/BleConnector: Event: Connected to MIBFS (5C:CA:D3:98:45:1C)
? 2026-01-04 13:13:01.092 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Waiting for measurement via notifications., deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
? 2026-01-04 13:13:01.092 D/BleConnector: Event: Message from MIBFS: Waiting for measurement via notifications.
? 2026-01-04 13:13:01.171 D/GattScaleAdapter: → write to chr=00001542-0000-3512-2118-0009af100700 svc=00001530-0000-3512-2118-0009af100700 len=4 withResp=true payload=[06 04 00 00]
? 2026-01-04 13:13:01.706 D/GattScaleAdapter: ← write response chr=00001542-0000-3512-2118-0009af100700 len=4 status=SUCCESS payload=[06 04 00 00]
? 2026-01-04 13:13:01.812 D/GattScaleAdapter: → write to chr=00002a2b-0000-1000-8000-00805f9b34fb svc=0000181b-0000-1000-8000-00805f9b34fb len=10 withResp=true payload=[EA 07 01 04 0C 0D 01 00 00 01]
? 2026-01-04 13:13:01.827 D/GattScaleAdapter: ← write response chr=00002a2b-0000-1000-8000-00805f9b34fb len=10 status=SUCCESS payload=[EA 07 01 04 0C 0D 01 00 00 01]
? 2026-01-04 13:13:01.848 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb
? 2026-01-04 13:13:01.877 D/GattScaleAdapter: ← notify state chr=00002a2f-0000-3512-2118-0009af100700 status=SUCCESS
? 2026-01-04 13:13:02.081 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
! 2026-01-04 13:13:02.096 W/MiScaleHandler: No history count response on primary; attempting fallback (ALL records).
? 2026-01-04 13:13:02.097 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2026-01-04 13:13:02.199 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 FF FF 00 01]
? 2026-01-04 13:13:02.217 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 FF FF 00 01]
? 2026-01-04 13:13:02.318 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 13:13:02.337 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 13:13:02.439 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2026-01-04 13:13:02.456 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2026-01-04 13:13:02.558 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 00 00 00 01]
? 2026-01-04 13:13:02.576 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 00 00 00 01]
? 2026-01-04 13:13:02.677 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 13:13:02.696 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 13:13:02.717 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb
! 2026-01-04 13:13:02.719 W/GattScaleAdapter: Failed to initiate notify for 00002a2f-0000-3512-2118-0009af100700
? 2026-01-04 13:13:02.720 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Failed to enable notifications for 00002a2f-0000-3512-2118-0009af100700., deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
? 2026-01-04 13:13:02.720 D/BleConnector: Event: Message from MIBFS: Failed to enable notifications for 00002a2f-0000-3512-2118-0009af100700.
? 2026-01-04 13:13:02.939 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0E 00 96 8A BD 62]
? 2026-01-04 13:13:03.073 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 01 00 FF FF 00 01]
? 2026-01-04 13:13:03.267 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0E 00 96 8A BD 62]
? 2026-01-04 13:13:03.402 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0E 00 00 00 00 01]
+ 2026-01-04 13:13:03.402 I/MiScaleHandler: History count announced (marker=0): 14
? 2026-01-04 13:13:03.491 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 11 1B FD FF CE 09]
? 2026-01-04 13:13:03.687 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 12 27 FD FF 3E 08]
? 2026-01-04 13:13:03.882 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 12 2C FD FF 52 08]
? 2026-01-04 13:13:04.095 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 13 03 FD FF A2 08]
? 2026-01-04 13:13:04.365 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 1E 30 FD FF BA 09]
? 2026-01-04 13:13:04.527 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 1F 07 FD FF 9C 09]
? 2026-01-04 13:13:04.739 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 05 08 1D 2E FD FF D2 41]
? 2026-01-04 13:13:04.962 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 0C 09 00 03 57 02 10 40]
? 2026-01-04 13:13:05.200 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 15 0C 1D 25 4A 02 6A 40]
? 2026-01-04 13:13:05.412 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 16 07 33 13 6F 02 CA 3F]
? 2026-01-04 13:13:05.622 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 1A 0A 30 1A 59 02 6A 40]
? 2026-01-04 13:13:05.832 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 1D 0A 31 34 48 02 A6 40]
? 2026-01-04 13:13:06.049 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 EA 07 01 02 08 3A 1A 65 02 2E 40]
? 2026-01-04 13:13:06.252 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 EA 07 01 04 0C 0C 2A 4B 02 32 41]
+ 2026-01-04 13:13:06.254 I/MiScaleHandler: ← publish measurement to app
? 2026-01-04 13:13:06.264 D/BleConnector: BluetoothEvent received: MeasurementReceived(measurement=ScaleMeasurement(userId=1, dateTime=Sun Jan 04 13:12:00 GMT+01:00 2026, weight=83.45, fat=23.760563, water=52.300255, muscle=36.33227, visceralFat=13.426872, bone=3.242708, lbm=60.379105, bmr=0.0, impedance=0.0, height=0.0, weightUnit=null), deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
+ 2026-01-04 13:13:06.264 I/BleConnector: Event: Measurement received from MIBFS: Weight 83.45
+ 2026-01-04 13:13:06.264 I/BleConnector: (MIBFS): Saving measurement for App User ID 1.
? 2026-01-04 13:13:06.272 D/DatabaseRepository: Inserting measurement for user id: 1
? 2026-01-04 13:13:06.274 D/DatabaseRepository: New measurement inserted with id: 247. Recalculating derived values.
+ 2026-01-04 13:13:06.275 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
? 2026-01-04 13:13:06.281 D/DerivedValuesProcess: BMR calculation skipped: Missing/invalid weight, height or age (28).
? 2026-01-04 13:13:06.281 D/DerivedValuesProcess: TDEE calculation skipped: Missing or invalid BMR or activity level.
+ 2026-01-04 13:13:06.282 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 7 ms.
? 2026-01-04 13:13:06.282 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 1
? 2026-01-04 13:13:06.305 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.306 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.355 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 48 ms.
? 2026-01-04 13:13:06.355 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 3
? 2026-01-04 13:13:06.370 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.372 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.380 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 8 ms.
? 2026-01-04 13:13:06.381 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 4
? 2026-01-04 13:13:06.390 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.391 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.396 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 4 ms.
? 2026-01-04 13:13:06.396 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 5
? 2026-01-04 13:13:06.414 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.415 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.419 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 4 ms.
? 2026-01-04 13:13:06.420 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 12
? 2026-01-04 13:13:06.427 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.428 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.432 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 3 ms.
? 2026-01-04 13:13:06.432 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 7
? 2026-01-04 13:13:06.443 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.443 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.449 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 5 ms.
? 2026-01-04 13:13:06.449 D/DatabaseRepository: Inserting measurement value for measurement id: 247, typeId: 6
? 2026-01-04 13:13:06.456 D/DatabaseRepository: Recalculating derived values for measurement id: 247
+ 2026-01-04 13:13:06.456 I/DerivedValues: Starting recalculation of derived values for measurementId: 247
+ 2026-01-04 13:13:06.462 I/DerivedValues: Finished recalculation of derived values for measurementId: 247. Took 5 ms.
+ 2026-01-04 13:13:06.490 I/BleConnector: Measurement from MIBFS for User 1 saved (ID: kotlin.Unit). Values: 7
? 2026-01-04 13:13:06.527 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
+ 2026-01-04 13:13:06.527 I/MiScaleHandler: History import done: 1 record(s). Announced=14
? 2026-01-04 13:13:06.609 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[03]
? 2026-01-04 13:13:06.645 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
? 2026-01-04 13:13:06.714 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[04 FF FF 00 01]
? 2026-01-04 13:13:06.729 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[04 FF FF 00 01]
Note I'm still on 3.0
You have to test always with the latest dev version -> https://github.com/oliexdev/openScale/releases/tag/dev-build
Hi @oliexdev ,
I just tried latest dev build. It shows no "Failed to enable notifications for ..." error (as 3.0 (70) does), unfortunately the "no measurements received" part persists. Neither new (current) entry, nor historical ones are obtained.
| Field | Value |
|---|---|
| Time | 2026-01-04 19:23:12.625 |
| Timezone | Europe/Moscow (UTC 3h) |
| Session ID | 19b89d1e3f1 |
| App | openScale |
| Version | 3.0.1-debug (71) |
| Package | com.health.openscale.debug |
| Build Type | debug |
| Device | samsung SM-G736B |
| Android | 16 (API 36) |
| Build ID | BP2A.250605.031.A3.G736BXXSAGYL1 |
| Build Time | 2026-01-04T12:52:10Z |
| Git SHA | 417aa74 |
? 2026-01-04 19:23:12.620 D/openScaleLog: Markdown diff block closed.
? 2026-01-04 19:23:12.625 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale.debug/files/logs/openScale_current_log.txt
+ 2026-01-04 19:23:12.628 I/openScaleLog: File logging enabled during runtime – started fresh session log.
? 2026-01-04 19:23:18.351 D/BluetoothTopBar: User clicked bluetooth icon connect → trying to connect to saved device MI SCALE2
+ 2026-01-04 19:23:18.353 I/BleConnector: Attempting to connect to MI SCALE2
? 2026-01-04 19:23:18.353 D/BleConnector: Switching to new device: Releasing active communicator: null
? 2026-01-04 19:23:18.354 D/BleConnector: Switching to new device: Active communicator released and set to null.
? 2026-01-04 19:23:18.354 D/ScaleHandlerFactory: createCommunicator: Searching for communicator for 'MI SCALE2' (70:87:9E:BB:15:EF). Handler hint: 'Xiaomi Mi Scale v2'
+ 2026-01-04 19:23:18.355 I/ScaleHandlerFactory: Modern handler 'Xiaomi Mi Scale v2' supports 'MI SCALE2'.
+ 2026-01-04 19:23:18.369 I/ScaleHandlerFactory: Modern communicator 'GattScaleAdapter' created for 'MI SCALE2' with linkMode=CONNECT_GATT.
+ 2026-01-04 19:23:18.370 I/BleConnector: ActiveCommunicator successfully created: GattScaleAdapter. Starting observation job...
? 2026-01-04 19:23:18.371 D/BleConnector: Adapter isConnected: false for MI SCALE2 (Status: CONNECTING)
+ 2026-01-04 19:23:18.372 I/BleConnector: Adapter no longer reports connected for MI SCALE2. Current status: CONNECTING. Expecting Disconnected Event.
+ 2026-01-04 19:23:19.043 I/GattScaleAdapter: Found 70:87:9E:BB:15:EF → stop scan + connect
? 2026-01-04 19:23:21.388 D/GattScaleAdapter: Services discovered for 70:87:9E:BB:15:EF
? 2026-01-04 19:23:21.401 D/MiScaleHandler: attach()
+ 2026-01-04 19:23:21.402 I/MiScaleHandler: Connected (V2); init sequence
? 2026-01-04 19:23:21.405 D/MiScaleHandler: Unit set (v2): payload=[06 04 00 00]
? 2026-01-04 19:23:21.406 D/MiScaleHandler: Current time written (primary).
? 2026-01-04 19:23:21.408 D/BleConnector: Adapter isConnected: true for MI SCALE2 (Status: CONNECTING)
+ 2026-01-04 19:23:21.409 I/BleConnector: Successfully connected to MI SCALE2 via adapter's isConnected flow.
? 2026-01-04 19:23:21.409 D/BleConnector: BluetoothEvent received: Connected(deviceName=MI SCALE2, deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
+ 2026-01-04 19:23:21.410 I/BleConnector: Event: Connected to MI SCALE2 (70:87:9E:BB:15:EF)
? 2026-01-04 19:23:21.402 D/MiScaleHandler: handleConnected(userId=1, height=185.0, age=37)
? 2026-01-04 19:23:21.410 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Waiting for measurement via notifications., deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
? 2026-01-04 19:23:21.411 D/BleConnector: Event: Message from MI SCALE2: Waiting for measurement via notifications.
? 2026-01-04 19:23:21.509 D/GattScaleAdapter: → write to chr=00001542-0000-3512-2118-0009af100700 svc=00001530-0000-3512-2118-0009af100700 len=4 withResp=true payload=[06 04 00 00]
? 2026-01-04 19:23:21.955 D/GattScaleAdapter: ← write response chr=00001542-0000-3512-2118-0009af100700 len=4 status=SUCCESS payload=[06 04 00 00]
? 2026-01-04 19:23:21.990 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb
! 2026-01-04 19:23:21.991 W/GattScaleAdapter: Failed to initiate notify for 00002a2f-0000-3512-2118-0009af100700
! 2026-01-04 19:23:22.416 W/MiScaleHandler: No history count response on primary; attempting fallback (ALL records).
? 2026-01-04 19:23:22.418 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb
? 2026-01-04 19:23:22.453 D/GattScaleAdapter: ← notify state chr=00002a2f-0000-3512-2118-0009af100700 status=SUCCESS
? 2026-01-04 19:23:22.719 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2026-01-04 19:23:22.778 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 3C 00 96 8A BD 62]
? 2026-01-04 19:23:22.779 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2026-01-04 19:23:22.915 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 00 00 00 01]
? 2026-01-04 19:23:22.957 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 00 00 00 01]
+ 2026-01-04 19:23:22.959 I/MiScaleHandler: History count announced (marker=0): 60
? 2026-01-04 19:23:22.958 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 3C 00 00 00 00 01]
? 2026-01-04 19:23:23.097 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 19:23:23.137 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 19:23:23.139 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 AE 3D E9 07 0A 11 07 2B 14 22 76 48 E9 07 0A 12 0F 26 1D]
? 2026-01-04 19:23:23.141 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 2A 49 E9 07 0A 15 10 06 1C 22 B4 3C E9 07 0A 18 07 25 12]
? 2026-01-04 19:23:23.142 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 9A 47 E9 07 0A 1D 0C 0B 32 22 5E 3D E9 07 0B 03 09 2E 1B]
? 2026-01-04 19:23:23.143 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 02 49 E9 07 0B 03 0F 02 11 22 2C 3D E9 07 0B 04 08 2C 09]
? 2026-01-04 19:23:23.145 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 A0 3C E9 07 0B 06 09 15 00 22 F0 3C E9 07 0B 07 0A 27 14]
? 2026-01-04 19:23:23.153 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 BE 3C E9 07 0B 0A 0A 1A 08 22 78 3C E9 07 0B 0C 07 16 3A]
? 2026-01-04 19:23:23.155 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D2 3C E9 07 0B 0D 06 24 2C 22 96 3C E9 07 0B 0E 06 3B 35]
? 2026-01-04 19:23:23.157 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 96 3C E9 07 0B 0F 0A 13 26 22 04 3D E9 07 0B 10 09 1A 21]
? 2026-01-04 19:23:23.158 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 40 3D E9 07 0B 11 06 2B 3A 22 B4 3C E9 07 0B 12 06 32 2D]
? 2026-01-04 19:23:23.160 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 78 3C E9 07 0B 13 06 3A 3A 22 AA 3C E9 07 0B 14 06 35 2C]
? 2026-01-04 19:23:23.167 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 08 48 E9 07 0B 14 09 19 10 22 78 3C E9 07 0B 15 06 3B 28]
? 2026-01-04 19:23:23.169 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 16 0B 2F 0E 22 50 3C E9 07 0B 17 09 2E 3B]
? 2026-01-04 19:23:23.170 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 17 09 2F 23 22 64 3C E9 07 0B 18 06 35 20]
? 2026-01-04 19:23:23.171 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 76 48 E9 07 0B 18 09 18 26 22 28 3C E9 07 0B 19 06 28 2F]
? 2026-01-04 19:23:23.172 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 B0 3B E9 07 0B 1A 07 18 05 22 D8 3B E9 07 0B 1B 06 35 01]
? 2026-01-04 19:23:23.182 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 1E 3C E9 07 0B 1C 07 02 0C 22 46 3C E9 07 0B 1D 08 1C 2B]
? 2026-01-04 19:23:23.183 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 8C 3C E9 07 0B 1E 09 26 13 22 04 3D E9 07 0C 01 06 26 02]
? 2026-01-04 19:23:23.184 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D6 47 E9 07 0C 01 09 1B 1F 22 80 48 E9 07 0C 01 15 00 30]
? 2026-01-04 19:23:23.185 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 64 3C E9 07 0C 02 07 02 05 22 BA 3B E9 07 0C 03 07 08 24]
? 2026-01-04 19:23:23.186 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 1C 48 E9 07 0C 03 0D 11 38 22 9C 3B E9 07 0C 04 07 08 20]
? 2026-01-04 19:23:23.197 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 EA 47 E9 07 0C 04 0B 1E 10 22 B0 3B E9 07 0C 05 06 38 04]
? 2026-01-04 19:23:23.198 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 CE 3B E9 07 0C 06 0B 12 38 22 BA 3B E9 07 0C 07 0B 24 14]
? 2026-01-04 19:23:23.199 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 14 3C E9 07 0C 08 07 07 21 22 00 3C E9 07 0C 09 07 07 27]
? 2026-01-04 19:23:23.200 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 00 3C E9 07 0C 0A 07 04 12 22 08 48 E9 07 0C 0A 09 1A 13]
? 2026-01-04 19:23:23.201 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 3C 3C E9 07 0C 0B 07 14 14 22 64 3C E9 07 0C 10 07 0A 38]
? 2026-01-04 19:23:23.212 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 80 48 E9 07 0C 15 15 01 06 22 FA 3C E9 07 0C 19 07 15 34]
? 2026-01-04 19:23:23.213 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D EA 07 01 02 0B 26 16 22 FC 49 EA 07 01 02 0F 1C 02]
? 2026-01-04 19:23:23.214 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D EA 07 01 03 0B 1D 31 22 E6 3C EA 07 01 04 0C 0A 34]
? 2026-01-04 19:23:23.215 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 2A 49 EA 07 01 04 13 22 05 22 3E 49 EA 07 01 04 13 22 11]
? 2026-01-04 19:23:23.216 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 3E 49 EA 07 01 04 13 23 00 22 2A 49 EA 07 01 04 13 24 25]
? 2026-01-04 19:23:23.225 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
+ 2026-01-04 19:23:23.226 I/MiScaleHandler: History import done: 0 record(s). Announced=60
? 2026-01-04 19:24:08.129 D/UserSettingsRepository: Setting current user ID to: 2
+ 2026-01-04 19:24:08.148 I/SharedViewModel: Selected user: 2
+ 2026-01-04 19:24:08.213 I/BluetoothFacade: User context updated -> stv
? 2026-01-04 19:24:11.891 D/UserSettingsRepository: Setting current user ID to: 1
+ 2026-01-04 19:24:11.900 I/SharedViewModel: Selected user: 1
+ 2026-01-04 19:24:11.958 I/BluetoothFacade: User context updated -> sda
+ 2026-01-04 19:24:31.220 I/BleConnector: disconnect() called for MI SCALE2. Active communicator: true, Status: CONNECTED
? 2026-01-04 19:24:31.222 D/BleConnector: Adapter isConnected: false for MI SCALE2 (Status: DISCONNECTING)
+ 2026-01-04 19:24:31.222 I/BleConnector: Adapter no longer reports connected for MI SCALE2. Current status: DISCONNECTING. Expecting Disconnected Event.
+ 2026-01-04 19:24:31.249 I/GattScaleAdapter: Disconnected 70:87:9E:BB:15:EF: SUCCESS
? 2026-01-04 19:24:31.250 D/MiScaleHandler: handleDisconnected()
? 2026-01-04 19:24:31.251 D/MiScaleHandler: detach()
? 2026-01-04 19:24:31.251 D/BleConnector: BluetoothEvent received: Disconnected(deviceAddress=70:87:9E:BB:15:EF, reason=SUCCESS) for MI SCALE2
+ 2026-01-04 19:24:31.252 I/BleConnector: Event: Disconnected from 70:87:9E:BB:15:EF. Reason: SUCCESS
? 2026-01-04 19:24:31.252 D/BleConnector: Disconnected event: Releasing active communicator: GattScaleAdapter
? 2026-01-04 19:24:31.253 D/BleConnector: Disconnected event: Active communicator released and set to null.
? 2026-01-04 19:24:37.399 D/BluetoothTopBar: User clicked bluetooth icon connect → trying to connect to saved device MI SCALE2
+ 2026-01-04 19:24:37.401 I/BleConnector: Attempting to connect to MI SCALE2
? 2026-01-04 19:24:37.402 D/BleConnector: Switching to new device: Releasing active communicator: null
? 2026-01-04 19:24:37.402 D/BleConnector: Switching to new device: Active communicator released and set to null.
? 2026-01-04 19:24:37.404 D/ScaleHandlerFactory: createCommunicator: Searching for communicator for 'MI SCALE2' (70:87:9E:BB:15:EF). Handler hint: 'Xiaomi Mi Scale v2'
+ 2026-01-04 19:24:37.406 I/ScaleHandlerFactory: Modern handler 'Xiaomi Mi Scale v2' supports 'MI SCALE2'.
+ 2026-01-04 19:24:37.410 I/ScaleHandlerFactory: Modern communicator 'GattScaleAdapter' created for 'MI SCALE2' with linkMode=CONNECT_GATT.
+ 2026-01-04 19:24:37.410 I/BleConnector: ActiveCommunicator successfully created: GattScaleAdapter. Starting observation job...
? 2026-01-04 19:24:37.411 D/BleConnector: Adapter isConnected: false for MI SCALE2 (Status: CONNECTING)
+ 2026-01-04 19:24:37.411 I/BleConnector: Adapter no longer reports connected for MI SCALE2. Current status: CONNECTING. Expecting Disconnected Event.
+ 2026-01-04 19:24:37.650 I/GattScaleAdapter: Found 70:87:9E:BB:15:EF → stop scan + connect
? 2026-01-04 19:24:39.665 D/GattScaleAdapter: Services discovered for 70:87:9E:BB:15:EF
+ 2026-01-04 19:24:39.668 I/MiScaleHandler: Connected (V2); init sequence
? 2026-01-04 19:24:39.669 D/MiScaleHandler: Unit set (v2): payload=[06 04 00 00]
? 2026-01-04 19:24:39.666 D/MiScaleHandler: attach()
? 2026-01-04 19:24:39.670 D/MiScaleHandler: Current time written (primary).
? 2026-01-04 19:24:39.671 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Waiting for measurement via notifications., deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
? 2026-01-04 19:24:39.672 D/BleConnector: Event: Message from MI SCALE2: Waiting for measurement via notifications.
? 2026-01-04 19:24:39.673 D/BleConnector: BluetoothEvent received: Connected(deviceName=MI SCALE2, deviceAddress=70:87:9E:BB:15:EF) for MI SCALE2
+ 2026-01-04 19:24:39.673 I/BleConnector: Event: Connected to MI SCALE2 (70:87:9E:BB:15:EF)
? 2026-01-04 19:24:39.667 D/MiScaleHandler: handleConnected(userId=1, height=185.0, age=37)
? 2026-01-04 19:24:39.675 D/BleConnector: Adapter isConnected: true for MI SCALE2 (Status: CONNECTED)
? 2026-01-04 19:24:39.772 D/GattScaleAdapter: → write to chr=00001542-0000-3512-2118-0009af100700 svc=00001530-0000-3512-2118-0009af100700 len=4 withResp=true payload=[06 04 00 00]
? 2026-01-04 19:24:40.222 D/GattScaleAdapter: ← write response chr=00001542-0000-3512-2118-0009af100700 len=4 status=SUCCESS payload=[06 04 00 00]
? 2026-01-04 19:24:40.257 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb
! 2026-01-04 19:24:40.258 W/GattScaleAdapter: Failed to initiate notify for 00002a2f-0000-3512-2118-0009af100700
! 2026-01-04 19:24:40.684 W/MiScaleHandler: No history count response on primary; attempting fallback (ALL records).
? 2026-01-04 19:24:40.687 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb
? 2026-01-04 19:24:40.718 D/GattScaleAdapter: ← notify state chr=00002a2f-0000-3512-2118-0009af100700 status=SUCCESS
? 2026-01-04 19:24:40.987 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2026-01-04 19:24:41.033 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2026-01-04 19:24:41.048 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 3D 00 96 8A BD 62]
? 2026-01-04 19:24:41.171 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 00 00 00 01]
? 2026-01-04 19:24:41.212 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 00 00 00 01]
? 2026-01-04 19:24:41.214 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 3D 00 00 00 00 01]
+ 2026-01-04 19:24:41.215 I/MiScaleHandler: History count announced (marker=0): 61
? 2026-01-04 19:24:41.351 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 19:24:41.394 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 AE 3D E9 07 0A 11 07 2B 14 22 76 48 E9 07 0A 12 0F 26 1D]
? 2026-01-04 19:24:41.396 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 19:24:41.398 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 2A 49 E9 07 0A 15 10 06 1C 22 B4 3C E9 07 0A 18 07 25 12]
? 2026-01-04 19:24:41.399 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 9A 47 E9 07 0A 1D 0C 0B 32 22 5E 3D E9 07 0B 03 09 2E 1B]
? 2026-01-04 19:24:41.401 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 02 49 E9 07 0B 03 0F 02 11 22 2C 3D E9 07 0B 04 08 2C 09]
? 2026-01-04 19:24:41.402 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 A0 3C E9 07 0B 06 09 15 00 22 F0 3C E9 07 0B 07 0A 27 14]
? 2026-01-04 19:24:41.405 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 BE 3C E9 07 0B 0A 0A 1A 08 22 78 3C E9 07 0B 0C 07 16 3A]
? 2026-01-04 19:24:41.408 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D2 3C E9 07 0B 0D 06 24 2C 22 96 3C E9 07 0B 0E 06 3B 35]
? 2026-01-04 19:24:41.410 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 96 3C E9 07 0B 0F 0A 13 26 22 04 3D E9 07 0B 10 09 1A 21]
? 2026-01-04 19:24:41.411 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 40 3D E9 07 0B 11 06 2B 3A 22 B4 3C E9 07 0B 12 06 32 2D]
? 2026-01-04 19:24:41.422 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 78 3C E9 07 0B 13 06 3A 3A 22 AA 3C E9 07 0B 14 06 35 2C]
? 2026-01-04 19:24:41.423 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 08 48 E9 07 0B 14 09 19 10 22 78 3C E9 07 0B 15 06 3B 28]
? 2026-01-04 19:24:41.424 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 16 0B 2F 0E 22 50 3C E9 07 0B 17 09 2E 3B]
? 2026-01-04 19:24:41.425 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 50 3C E9 07 0B 17 09 2F 23 22 64 3C E9 07 0B 18 06 35 20]
? 2026-01-04 19:24:41.426 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 76 48 E9 07 0B 18 09 18 26 22 28 3C E9 07 0B 19 06 28 2F]
? 2026-01-04 19:24:41.437 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 B0 3B E9 07 0B 1A 07 18 05 22 D8 3B E9 07 0B 1B 06 35 01]
? 2026-01-04 19:24:41.438 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 1E 3C E9 07 0B 1C 07 02 0C 22 46 3C E9 07 0B 1D 08 1C 2B]
? 2026-01-04 19:24:41.439 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 8C 3C E9 07 0B 1E 09 26 13 22 04 3D E9 07 0C 01 06 26 02]
? 2026-01-04 19:24:41.440 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 D6 47 E9 07 0C 01 09 1B 1F 22 80 48 E9 07 0C 01 15 00 30]
? 2026-01-04 19:24:41.442 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 64 3C E9 07 0C 02 07 02 05 22 BA 3B E9 07 0C 03 07 08 24]
? 2026-01-04 19:24:41.452 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 1C 48 E9 07 0C 03 0D 11 38 22 9C 3B E9 07 0C 04 07 08 20]
? 2026-01-04 19:24:41.453 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 EA 47 E9 07 0C 04 0B 1E 10 22 B0 3B E9 07 0C 05 06 38 04]
? 2026-01-04 19:24:41.454 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 CE 3B E9 07 0C 06 0B 12 38 22 BA 3B E9 07 0C 07 0B 24 14]
? 2026-01-04 19:24:41.455 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 14 3C E9 07 0C 08 07 07 21 22 00 3C E9 07 0C 09 07 07 27]
? 2026-01-04 19:24:41.456 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 00 3C E9 07 0C 0A 07 04 12 22 08 48 E9 07 0C 0A 09 1A 13]
? 2026-01-04 19:24:41.465 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 3C 3C E9 07 0C 0B 07 14 14 22 64 3C E9 07 0C 10 07 0A 38]
? 2026-01-04 19:24:41.467 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 80 48 E9 07 0C 15 15 01 06 22 FA 3C E9 07 0C 19 07 15 34]
? 2026-01-04 19:24:41.469 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D EA 07 01 02 0B 26 16 22 FC 49 EA 07 01 02 0F 1C 02]
? 2026-01-04 19:24:41.470 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 4A 3D EA 07 01 03 0B 1D 31 22 E6 3C EA 07 01 04 0C 0A 34]
? 2026-01-04 19:24:41.471 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 2A 49 EA 07 01 04 13 22 05 22 3E 49 EA 07 01 04 13 22 11]
? 2026-01-04 19:24:41.480 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=20 status=SUCCESS payload=[22 3E 49 EA 07 01 04 13 23 00 22 2A 49 EA 07 01 04 13 24 25]
? 2026-01-04 19:24:41.481 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=10 status=SUCCESS payload=[22 2A 49 EA 07 01 04 13 2F 0B]
? 2026-01-04 19:24:41.482 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
+ 2026-01-04 19:24:41.482 I/MiScaleHandler: History import done: 0 record(s). Announced=61
? 2026-01-04 19:25:47.446 D/MiScaleHandler: detach()
? 2026-01-04 19:25:47.447 D/BleConnector: BluetoothEvent received: Disconnected(deviceAddress=70:87:9E:BB:15:EF, reason=REMOTE_USER_TERMINATED_CONNECTION) for MI SCALE2
+ 2026-01-04 19:25:47.447 I/BleConnector: Event: Disconnected from 70:87:9E:BB:15:EF. Reason: REMOTE_USER_TERMINATED_CONNECTION
+ 2026-01-04 19:25:47.445 I/GattScaleAdapter: Disconnected 70:87:9E:BB:15:EF: REMOTE_USER_TERMINATED_CONNECTION
? 2026-01-04 19:25:47.446 D/MiScaleHandler: handleDisconnected()
? 2026-01-04 19:25:47.449 D/BleConnector: Disconnected event: Active communicator released and set to null.
? 2026-01-04 19:25:47.448 D/BleConnector: Disconnected event: Releasing active communicator: GattScaleAdapter
Note I'm still on 3.0
You have to test always with the latest dev version ->
dev-build(release)
Seems like the dev build synced without any issue. No error pop up IIRC.
Log
| Field | Value |
|---|---|
| Time | 2026-01-04 17:54:10.535 |
| Timezone | Europe/Berlin (UTC 1h) |
| Session ID | 19b89ee3d67 |
| App | openScale |
| Version | 3.0.1-debug (71) |
| Package | com.health.openscale.debug |
| Build Type | debug |
| Device | Google Pixel 9 |
| Android | 16 (API 36) |
| Build ID | BP3A.251105.015 |
| Build Time | 2026-01-04T12:52:10Z |
| Git SHA | 417aa74 |
? 2026-01-04 17:54:10.534 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale.debug/files/logs/openScale_current_log.txt
? 2026-01-04 17:54:10.536 D/openScaleLog: Initial markdown-diff headers written to: /storage/emulated/0/Android/data/com.health.openscale.debug/files/logs/openScale_current_log.txt
+ 2026-01-04 17:54:10.537 I/openScaleLog: File logging enabled during runtime – started fresh session log.
? 2026-01-04 17:54:13.190 D/BluetoothTopBar: User clicked bluetooth icon connect → trying to connect to saved device MIBFS
+ 2026-01-04 17:54:13.193 I/BleConnector: Attempting to connect to MIBFS
? 2026-01-04 17:54:13.193 D/BleConnector: Switching to new device: Releasing active communicator: null
? 2026-01-04 17:54:13.193 D/BleConnector: Switching to new device: Active communicator released and set to null.
? 2026-01-04 17:54:13.194 D/ScaleHandlerFactory: createCommunicator: Searching for communicator for 'MIBFS' (5C:CA:D3:98:45:1C). Handler hint: 'Xiaomi Mi Scale v2'
+ 2026-01-04 17:54:13.194 I/ScaleHandlerFactory: Modern handler 'Xiaomi Mi Scale v2' supports 'MIBFS'.
+ 2026-01-04 17:54:13.199 I/ScaleHandlerFactory: Modern communicator 'GattScaleAdapter' created for 'MIBFS' with linkMode=CONNECT_GATT.
+ 2026-01-04 17:54:13.200 I/BleConnector: Adapter no longer reports connected for MIBFS. Current status: CONNECTING. Expecting Disconnected Event.
? 2026-01-04 17:54:13.200 D/BleConnector: Adapter isConnected: false for MIBFS (Status: CONNECTING)
+ 2026-01-04 17:54:13.199 I/BleConnector: ActiveCommunicator successfully created: GattScaleAdapter. Starting observation job...
+ 2026-01-04 17:54:13.639 I/GattScaleAdapter: Found 5C:CA:D3:98:45:1C → stop scan + connect
? 2026-01-04 17:54:15.516 D/GattScaleAdapter: Services discovered for 5C:CA:D3:98:45:1C
? 2026-01-04 17:54:15.519 D/MiScaleHandler: attach()
? 2026-01-04 17:54:15.520 D/MiScaleHandler: handleConnected(userId=1, height=185.0, age=28)
+ 2026-01-04 17:54:15.520 I/MiScaleHandler: Connected (V2); init sequence
? 2026-01-04 17:54:15.522 D/MiScaleHandler: Unit set (v2): payload=[06 04 00 00]
? 2026-01-04 17:54:15.523 D/MiScaleHandler: Current time written (primary).
? 2026-01-04 17:54:15.525 D/BleConnector: Adapter isConnected: true for MIBFS (Status: CONNECTING)
+ 2026-01-04 17:54:15.526 I/BleConnector: Successfully connected to MIBFS via adapter's isConnected flow.
? 2026-01-04 17:54:15.526 D/BleConnector: BluetoothEvent received: Connected(deviceName=MIBFS, deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
+ 2026-01-04 17:54:15.526 I/BleConnector: Event: Connected to MIBFS (5C:CA:D3:98:45:1C)
? 2026-01-04 17:54:15.527 D/BleConnector: BluetoothEvent received: DeviceMessage(message=Waiting for measurement via notifications., deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
? 2026-01-04 17:54:15.528 D/BleConnector: Event: Message from MIBFS: Waiting for measurement via notifications.
? 2026-01-04 17:54:15.608 D/GattScaleAdapter: → write to chr=00001542-0000-3512-2118-0009af100700 svc=00001530-0000-3512-2118-0009af100700 len=4 withResp=true payload=[06 04 00 00]
? 2026-01-04 17:54:16.143 D/GattScaleAdapter: ← write response chr=00001542-0000-3512-2118-0009af100700 len=4 status=SUCCESS payload=[06 04 00 00]
? 2026-01-04 17:54:16.252 D/GattScaleAdapter: → write to chr=00002a2b-0000-1000-8000-00805f9b34fb svc=0000181b-0000-1000-8000-00805f9b34fb len=10 withResp=true payload=[EA 07 01 04 10 36 0F 00 00 01]
? 2026-01-04 17:54:16.263 D/GattScaleAdapter: ← write response chr=00002a2b-0000-1000-8000-00805f9b34fb len=10 status=SUCCESS payload=[EA 07 01 04 10 36 0F 00 00 01]
? 2026-01-04 17:54:16.286 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb
? 2026-01-04 17:54:16.308 D/GattScaleAdapter: ← notify state chr=00002a2f-0000-3512-2118-0009af100700 status=SUCCESS
? 2026-01-04 17:54:16.513 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2026-01-04 17:54:16.532 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
! 2026-01-04 17:54:16.534 W/MiScaleHandler: No history count response on primary; attempting fallback (ALL records).
? 2026-01-04 17:54:16.638 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 FF FF 00 01]
? 2026-01-04 17:54:16.651 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 FF FF 00 01]
? 2026-01-04 17:54:16.755 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 17:54:16.772 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 17:54:16.875 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 96 8A BD 62]
? 2026-01-04 17:54:16.891 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 96 8A BD 62]
? 2026-01-04 17:54:16.995 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[01 00 00 00 01]
? 2026-01-04 17:54:17.012 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[01 00 00 00 01]
? 2026-01-04 17:54:17.117 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[02]
? 2026-01-04 17:54:17.120 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0F 00 96 8A BD 62]
? 2026-01-04 17:54:17.133 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[02]
? 2026-01-04 17:54:17.143 D/GattScaleAdapter: → set notify on chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181d-0000-1000-8000-00805f9b34fb
! 2026-01-04 17:54:17.144 W/GattScaleAdapter: Failed to initiate notify for 00002a2f-0000-3512-2118-0009af100700
? 2026-01-04 17:54:17.253 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 01 00 FF FF 00 01]
? 2026-01-04 17:54:17.451 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0F 00 96 8A BD 62]
? 2026-01-04 17:54:17.584 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=7 status=SUCCESS payload=[01 0F 00 00 00 00 01]
+ 2026-01-04 17:54:17.585 I/MiScaleHandler: History count announced (marker=0): 15
? 2026-01-04 17:54:17.673 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 11 1B FD FF CE 09]
? 2026-01-04 17:54:17.887 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 12 27 FD FF 3E 08]
? 2026-01-04 17:54:18.094 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 12 2C FD FF 52 08]
? 2026-01-04 17:54:18.319 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 13 03 FD FF A2 08]
? 2026-01-04 17:54:18.529 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 1E 30 FD FF BA 09]
? 2026-01-04 17:54:18.753 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 04 16 1F 07 FD FF 9C 09]
? 2026-01-04 17:54:18.981 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 24 E9 07 0C 05 08 1D 2E FD FF D2 41]
? 2026-01-04 17:54:19.176 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 0C 09 00 03 57 02 10 40]
? 2026-01-04 17:54:19.401 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 15 0C 1D 25 4A 02 6A 40]
? 2026-01-04 17:54:19.610 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 16 07 33 13 6F 02 CA 3F]
? 2026-01-04 17:54:19.834 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 1A 0A 30 1A 59 02 6A 40]
? 2026-01-04 17:54:20.043 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 E9 07 0C 1D 0A 31 34 48 02 A6 40]
? 2026-01-04 17:54:20.252 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 EA 07 01 02 08 3A 1A 65 02 2E 40]
? 2026-01-04 17:54:20.494 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 EA 07 01 04 0C 0C 2A 4B 02 32 41]
? 2026-01-04 17:54:20.702 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=13 status=SUCCESS payload=[02 26 EA 07 01 04 10 35 2A 4E 02 64 41]
+ 2026-01-04 17:54:20.706 I/MiScaleHandler: ← publish measurement to app
? 2026-01-04 17:54:20.715 D/BleConnector: BluetoothEvent received: MeasurementReceived(measurement=ScaleMeasurement(userId=1, dateTime=Sun Jan 04 17:53:00 GMT+01:00 2026, weight=83.7, fat=23.91708, water=52.192883, muscle=36.08172, visceralFat=13.548744, bone=3.2457817, lbm=60.435623, bmr=0.0, impedance=0.0), deviceAddress=5C:CA:D3:98:45:1C) for MIBFS
+ 2026-01-04 17:54:20.715 I/BleConnector: Event: Measurement received from MIBFS: Weight 83.7
+ 2026-01-04 17:54:20.716 I/BleConnector: (MIBFS): Saving measurement for App User ID 1.
? 2026-01-04 17:54:20.746 D/DatabaseRepository: Inserting measurement for user id: 1
? 2026-01-04 17:54:20.752 D/DatabaseRepository: New measurement inserted with id: 261. Recalculating derived values.
+ 2026-01-04 17:54:20.753 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
? 2026-01-04 17:54:20.775 D/DerivedValuesProcess: BMR calculation skipped: Missing/invalid weight, height or age (28).
? 2026-01-04 17:54:20.775 D/DerivedValuesProcess: TDEE calculation skipped: Missing or invalid BMR or activity level.
+ 2026-01-04 17:54:20.776 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 22 ms.
? 2026-01-04 17:54:20.776 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 1
? 2026-01-04 17:54:20.800 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:20.801 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
? 2026-01-04 17:54:20.873 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 3
+ 2026-01-04 17:54:20.873 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 71 ms.
? 2026-01-04 17:54:20.901 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:20.902 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:20.910 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 8 ms.
? 2026-01-04 17:54:20.911 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 4
? 2026-01-04 17:54:20.940 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:20.940 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:20.959 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 18 ms.
? 2026-01-04 17:54:20.960 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 5
? 2026-01-04 17:54:20.968 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:20.970 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:20.986 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 16 ms.
? 2026-01-04 17:54:20.987 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 12
? 2026-01-04 17:54:20.991 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:20.992 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:20.995 I/MiScaleHandler: History import done: 1 record(s). Announced=15
? 2026-01-04 17:54:20.994 D/GattScaleAdapter: ← received data chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
+ 2026-01-04 17:54:21.002 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 10 ms.
? 2026-01-04 17:54:21.003 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 7
? 2026-01-04 17:54:21.014 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:21.014 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:21.028 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 13 ms.
? 2026-01-04 17:54:21.029 D/DatabaseRepository: Inserting measurement value for measurement id: 261, typeId: 6
? 2026-01-04 17:54:21.041 D/DatabaseRepository: Recalculating derived values for measurement id: 261
+ 2026-01-04 17:54:21.041 I/DerivedValues: Starting recalculation of derived values for measurementId: 261
+ 2026-01-04 17:54:21.055 I/DerivedValues: Finished recalculation of derived values for measurementId: 261. Took 13 ms.
? 2026-01-04 17:54:21.075 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=1 withResp=true payload=[03]
+ 2026-01-04 17:54:21.116 I/BleConnector: Measurement from MIBFS for User 1 saved (ID: kotlin.Unit). Values: 7
? 2026-01-04 17:54:21.161 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=1 status=SUCCESS payload=[03]
? 2026-01-04 17:54:21.179 D/GattScaleAdapter: → write to chr=00002a2f-0000-3512-2118-0009af100700 svc=0000181b-0000-1000-8000-00805f9b34fb len=5 withResp=true payload=[04 FF FF 00 01]
? 2026-01-04 17:54:21.211 D/GattScaleAdapter: ← write response chr=00002a2f-0000-3512-2118-0009af100700 len=5 status=SUCCESS payload=[04 FF FF 00 01]
? 2026-01-04 17:54:38.445 D/UserSettingsRepository: Setting file logging enabled to: false
@kowalcj0 Apart from the sync issues with MI 2 scale, I've also noticed that the measurement of muscle % drastically dropped by 32%! from 68% to 36%
I'm saw a similar drop going from version 2.x to 3.x regarding muscle%: 72.4% to 36.4%. I never trusted the scale with those values anyways so it didn't bother me but the percentage before was absurdly wrong therefore it's a definite improvement. I don't remember if version 2.x also showed it as 70%+, could be this was a migration/conversion issue. But this belongs in it's own issue and not here.
I'm investigating now. Looking at this commit gives me some pause: https://github.com/oliexdev/openScale/commit/6ed3f62617ce1e966528b9a0a08978c404e51193
This many changes in one commit with a message that looks very llm-y? I'm also having a harder time grokking the new kotlin handler than I did with the old java one, despite being much more comfortable in kotlin usually.
Were all handlers rewritten as vibe code? If so, I'm really concerned about all sorts of other as-of-now undiscovered bugs having been introduced :/
@kowalcj0 Apart from the sync issues with MI 2 scale, I've also noticed that the measurement of muscle % drastically dropped by 32%! from 68% to 36%
I'm saw a similar drop going from version 2.x to 3.x regarding muscle%: 72.4% to 36.4%. I never trusted the scale with those values anyways so it didn't bother me but the percentage before was absurdly wrong therefore it's a definite improvement. I don't remember if version 2.x also showed it as 70%+, could be this was a migration/conversion issue. But this belongs in it's own issue and not here.
It all depends how muscle % is calculated. Citing, "very-scientific" sources like: https://www.menshealth.com/health/a27242669/what-your-body-composition-metrics-say-about-your-health/ https://support.withings.com/hc/en-us/articles/218500778-Body-What-are-the-normal-ranges-for-body-composition
What should my muscle mass be? Ages 20-39: 75-89 percent for men, 63-75.5 percent for women Ages 40-59: 73-86 percent for men, 62-73.5 percent for women ages 60-79: 70-84 percent for men, 60-72.5 percent for women
For more scientific analysis https://pmc.ncbi.nlm.nih.gov/articles/PMC11788497/
I do wonder why so many users report that it doesn’t work, but only a couple actually post debug logs—it makes troubleshooting much harder. It’s a bit disappointing that most people only complain instead of actively helping to find a solution.
I can only talk for myself, but maybe more people are in the same situation. I'm not an Android developer, nor I have a development setup, or have enough knowledge to get one. As I asked on my previous comment, can I get debug logs without setting up a development environment? If I can, I would gladly send as many logs as you need. It's not that I don't want to help, I just lack the knowledge on how to do it.
This is just a clarification, I don't want to make anyone angry. I'm a backend developer, and I know that receiving bug reports without any way to reproduce them is a pain. But, at least, we can see the amount of people affected by the issue. It's not the same if an issue affects 1 user, than 100.
I can only talk for myself, but maybe more people are in the same situation. I'm not an Android developer, nor I have a development setup, or have enough knowledge to get one. As I asked on my previous comment, can I get debug logs without setting up a development environment? If I can, I would gladly send as many logs as you need. It's not that I don't want to help, I just lack the knowledge on how to do it.
This is just a clarification, I don't want to make anyone angry. I'm a backend developer, and I know that receiving bug reports without any way to reproduce them is a pain. But, at least, we can see the amount of people affected by the issue. It's not the same if an issue affects 1 user, than 100.
No, this is not a matter of lacking knowledge—that’s exactly my point. If someone doesn’t even know how to create a debug file, it’s simply a lack of effort. There is a FAQ; the menu entry is not hidden, and it’s even mentioned in the issue creation itself.
Setting up an Android development environment is also not rocket science—it’s perfectly doable with a bit of effort, and there’s plenty of documentation available online. Sure, the reverse engineering part is tricky and there you need more knowledge how thinks works, some help is also documented in the wiki.
For some users, the dev version seems to work fine; for others, it doesn’t. I don’t know the solution. To figure it out, someone would need to examine their specific scale—maybe there are different software versions of the same scale, or it’s some unusual bug. I honestly don’t know. Somebody needs debug with the scale and to have to find out.
@oliexdev Sorry to hear that you seem to be disappointed. I wasn't aware that you would need more data. From my side, it seems to be working now, I'll keep an eye on it
I'll post the next debug log, last one didnt include useful information