PyPI version Build Status Coverage Status Documentation status Black Hound

This library (and its accompanying cli tool) is used to interface with devices using Xiaomi’s miIO protocol.

Supported devices

  • Xiaomi Mi Robot Vacuum V1, S5, M1S
  • Xiaomi Mi Home Air Conditioner Companion
  • Xiaomi Mi Air Purifier
  • Xiaomi Aqara Camera
  • Xiaomi Aqara Gateway (basic implementation, alarm, lights)
  • Xiaomi Mijia 360 1080p
  • Xiaomi Mijia STYJ02YM (Viomi)
  • Xiaomi Mi Smart WiFi Socket
  • Xiaomi Chuangmi Plug V1 (1 Socket, 1 USB Port)
  • Xiaomi Chuangmi Plug V3 (1 Socket, 2 USB Ports)
  • Xiaomi Smart Power Strip V1 and V2 (WiFi, 6 Ports)
  • Xiaomi Philips Eyecare Smart Lamp 2
  • Xiaomi Philips RW Read (philips.light.rwread)
  • Xiaomi Philips LED Ceiling Lamp
  • Xiaomi Philips LED Ball Lamp (philips.light.bulb)
  • Xiaomi Philips LED Ball Lamp White (philips.light.hbulb)
  • Xiaomi Philips Zhirui Smart LED Bulb E14 Candle Lamp
  • Xiaomi Philips Zhirui Bedroom Smart Lamp
  • Xiaomi Universal IR Remote Controller (Chuangmi IR)
  • Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, P5
  • Xiaomi Mi Air Humidifier V1, CA1, CB1, MJJSQ, JSQ001
  • Xiaomi Mi Water Purifier (Basic support: Turn on & off)
  • Xiaomi PM2.5 Air Quality Monitor V1, B1, S1
  • Xiaomi Smart WiFi Speaker
  • Xiaomi Mi WiFi Repeater 2
  • Xiaomi Mi Smart Rice Cooker
  • Xiaomi Smartmi Fresh Air System VA2 (zhimi.airfresh.va2), T2017 (dmaker.airfresh.t2017)
  • Yeelight lights (basic support, we recommend using python-yeelight)
  • Xiaomi Mi Air Dehumidifier
  • Xiaomi Tinymu Smart Toilet Cover
  • Xiaomi 16 Relays Module
  • Xiaomi Xiao AI Smart Alarm Clock
  • Smartmi Radiant Heater Smart Version (ZA1 version)
  • Xiaomi Mi Smart Space Heater

Feel free to create a pull request to add support for new devices as well as additional features for supported devices.

Getting started

Refer the manual for getting started.


We welcome all sorts of contributions from patches to add improvements or fixing bugs to improving the documentation. To ease the process of setting up a development environment we have prepared a short guide for getting you started.


This project was started to allow controlling locally available Xiaomi Vacuum cleaner robot with Python (hence the old name python-mirobo), however, thanks to contributors it has been extended to allow controlling other Xiaomi devices using the same protocol miIO protocol. (another source for vacuum-specific documentation)

First and foremost thanks for the nice people over ioBroker forum who figured out the encryption to make this library possible. Furthermore thanks goes to contributors of this project who have helped to extend this to cover not only the vacuum cleaner.