Skip to content

Get Xiaomi Mi Smart Scale 2 weight and publishing to mqtt

License

Notifications You must be signed in to change notification settings

qbbr/mi-scale-2

Repository files navigation

mi-scale-2

Get Xiaomi Mi Smart Scale 2 weight and publishing to mqtt

Tested only on Raspberry Pi 3b + Mi Scale 2

Requirements

  • python3
  • python-dotenv
  • bluepy
  • paho-mqtt
  • root permission for bluepy.btle
sudo pip install -r requirements.txt

Usage

always run with sudo or from root:

cp .env.dist .env
vim .env
sudo ./main.py
# sudo ./main.py --help
# sudo ./main.py --loglevel=DEBUG

Autostart

sudo cp mi-scale-2.service /etc/systemd/system/
sudo systemctl enable mi-scale-2
sudo systemctl start mi-scale-2

Integrate with Home Assistant

qbbr-mi-scale-2-home-assistant-integration

# configuration.yaml:
mqtt:
    sensor:
      - name: "my_weight"
        state_topic: "miscale/qbbr/weight"
        force_update: true
        unit_of_measurement: "kg"
        state_class: "measurement"
        icon: mdi:scale

# customize.yaml:
sensor.my_weight:
    friendly_name: Мой вес

Help

get dev mac address:

sudo hcitool lescan

if u have troubleshoots, try restart u bluetooth/adapter

sudo hciconfig hci0 reset
sudo invoke-rc.d bluetooth restart

Reverse Engineering RAW Schema for Mi Scale 2

!!! slightly different than from openScale wiki !!!

byte 0:

  • 0 bit - unknown
  • 1 bit - unit kg
  • 2 bit - unit lbs
  • 3 bit - unknown
  • 4 bit - jin (chinese catty) unit
  • 5 bit - stabilized
  • 6 bit - unknown
  • 7 bit - weight removed

byte 1-2:

  • weight (little endian)

Links