PiotrMachowski/Xiaomi-cloud-tokens-extractor

This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.

Python

4,844

110 commits

updated Nov 8, 2025

See the code

README

GitHub Latest Release GitHub All Releases Ko-Fi buycoffee.to PayPal.Me Revolut.Me

Xiaomi Cloud Tokens Extractor

This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.

It supports two ways of authentication:

  • username (e-mail/Xiaomi Cloud account ID) & password
  • QR code

After logging in you have to select a Xiaomi's server region (cn - China, de - Germany etc.). Leave it empty to check all available

In return all of your devices connected to account will be listed, together with their name and IP address.

Windows

Download and run token_extractor.exe.

Linux & Home Assistant (in SSH & Web Terminal)

Execute following command:

bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run.sh)

If installation fails try Docker version

Docker & Home Assistant (in SSH & Web Terminal)

Execute following command:

bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run_docker.sh)

To run this command in HA you have to disable protected mode in addon's settings and restart it

Manual run in python

Download and unpack archive:

wget https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/releases/latest/download/token_extractor.zip
unzip token_extractor.zip
cd token_extractor

Install dependencies and run script:

pip3 install -r requirements.txt
python3 token_extractor.py

Troubleshooting

If you have problems with using this tool try following solutions:

  • Make yourself sure that you provide correct credentials (e.g. not ones from Roborock app!)
  • Remove Cloudflare DNS
  • Disable network ad blockers (AdGuard, PiHole, etc.) and restrictions (UniFi Country Restriction etc.)
  • Check SPAM folders for 2FA e-mail
  • Use QR code authentication instead of username & password
  • Just wait - there is a limit of 3/5 (depending on region) 2FA requests per day

Home Assistant additional tools

Support

If you want to support my work with a donation you can use one of the following platforms:

PlatformPayment methodsLinkComment
Ko-fi
  • PayPal
  • Credit card
  • Buy Me a Coffee at ko-fi.com
  • No fees
  • Single or monthly payment
  • buycoffee.to
  • BLIK
  • Bank transfer
  • Postaw mi kawę na buycoffee.to
    PayPal
  • PayPal
  • PayPal Logo
  • No fees
  • Revolut
  • Revolut
  • Credit Card
  • Revolut
  • No fees
  • Powered by

    PyCharm logo.

    roborock
    xiaomi
    xiaomi-vacuum

    PiotrMachowski/Xiaomi-cloud-tokens-extractor

    This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.

    Python

    4,844

    110 commits

    updated Nov 8, 2025

    See the code

    README

    GitHub Latest Release GitHub All Releases Ko-Fi buycoffee.to PayPal.Me Revolut.Me

    Xiaomi Cloud Tokens Extractor

    This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices.

    It supports two ways of authentication:

    • username (e-mail/Xiaomi Cloud account ID) & password
    • QR code

    After logging in you have to select a Xiaomi's server region (cn - China, de - Germany etc.). Leave it empty to check all available

    In return all of your devices connected to account will be listed, together with their name and IP address.

    Windows

    Download and run token_extractor.exe.

    Linux & Home Assistant (in SSH & Web Terminal)

    Execute following command:

    bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run.sh)
    

    If installation fails try Docker version

    Docker & Home Assistant (in SSH & Web Terminal)

    Execute following command:

    bash <(curl -L https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/raw/master/run_docker.sh)
    

    To run this command in HA you have to disable protected mode in addon's settings and restart it

    Manual run in python

    Download and unpack archive:

    wget https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/releases/latest/download/token_extractor.zip
    unzip token_extractor.zip
    cd token_extractor
    

    Install dependencies and run script:

    pip3 install -r requirements.txt
    python3 token_extractor.py
    

    Troubleshooting

    If you have problems with using this tool try following solutions:

    • Make yourself sure that you provide correct credentials (e.g. not ones from Roborock app!)
    • Remove Cloudflare DNS
    • Disable network ad blockers (AdGuard, PiHole, etc.) and restrictions (UniFi Country Restriction etc.)
    • Check SPAM folders for 2FA e-mail
    • Use QR code authentication instead of username & password
    • Just wait - there is a limit of 3/5 (depending on region) 2FA requests per day

    Home Assistant additional tools

    Support

    If you want to support my work with a donation you can use one of the following platforms:

    PlatformPayment methodsLinkComment
    Ko-fi
  • PayPal
  • Credit card
  • Buy Me a Coffee at ko-fi.com
  • No fees
  • Single or monthly payment
  • buycoffee.to
  • BLIK
  • Bank transfer
  • Postaw mi kawę na buycoffee.to
    PayPal
  • PayPal
  • PayPal Logo
  • No fees
  • Revolut
  • Revolut
  • Credit Card
  • Revolut
  • No fees
  • Powered by

    PyCharm logo.

    roborock
    xiaomi
    xiaomi-vacuum

    Significant stargazers

    (top 24 of 34)

    Val Packett

    579 followers · starred Nov 2025

    JounQin

    673 followers · starred Nov 2023

    Andy Lok

    274 followers · starred Feb 2021

    Paul

    386 followers · starred Jun 2025