Python library for interfacing with Xiaomi smart appliances
Project description
This library (and its accompanying cli tool) can be used to interface with devices using Xiaomi’s miIO and MIoT protocols.
Getting started
If you already have a token for your device and the device type, you can directly start using miiocli tool. If you don’t have a token for your device, refer to Getting started section of the manual for instructions how to obtain it.
The miiocli is the main way to execute commands from command line. You can always use –help to get more information about the available commands. For example, executing it without any extra arguments will print out options and available commands:
$ miiocli --help Usage: miiocli [OPTIONS] COMMAND [ARGS]... Options: -d, --debug -o, --output [default|json|json_pretty] --help Show this message and exit. Commands: airconditioningcompanion ..
You can get some information from any miIO/MIoT device, including its device model, using the info command:
miiocli device --ip <ip> --token <token> info Model: some.device.model1 Hardware version: esp8285 Firmware version: 1.0.1_0012 Network: {'localIp': '<ip>', 'mask': '255.255.255.0', 'gw': '<ip>'} AP: {'rssi': -73, 'ssid': '<nnetwork>', 'primary': 11, 'bssid': '<bssid>'}
Each different device type is supported by their corresponding module (e.g., vacuum or fan). You can get the list of available commands for any given module by passing –help argument to it:
$ miiocli vacuum --help Usage: miiocli vacuum [OPTIONS] COMMAND [ARGS]... Options: --ip TEXT [required] --token TEXT [required] --id-file FILE --help Show this message and exit. Commands: add_timer Add a timer. ..
Each command invocation will automatically detect the device model necessary for some actions by querying the device. You can avoid this by specifying the model manually:
miiocli vacuum --model roborock.vacuum.s5 --ip <ip> --token <token> start
API usage
All functionality is accessible through the miio module:
from miio import Vacuum vac = Vacuum("<ip address>", "<token>") vac.start()
Each separate device type inherits from miio.Device (and in case of MIoT devices, miio.MiotDevice) which provides a common API.
Each command invocation will automatically detect (and cache) the device model necessary for some actions by querying the device. You can avoid this by specifying the model manually:
from miio import Vacuum vac = Vacuum("<ip address>", "<token>", model="roborock.vacuum.s5")
Please refer to API documentation for more information.
Troubleshooting
You can find some solutions for the most common problems can be found in Troubleshooting section.
If you have any questions, or simply want to join up for a chat, check our Matrix room.
Contributing
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.
Supported devices
Xiaomi Mi Robot Vacuum V1, S4, S4 MAX, S5, S5 MAX, S6 Pure, M1S, S7
Xiaomi Mi Home Air Conditioner Companion
Xiaomi Mi Smart Air Conditioner A (xiaomi.aircondition.mc1, mc2, mc4, mc5)
Xiaomi Mi Air Purifier 2, 3H, 3C, Pro, Pro H, 4 Pro (zhimi.airpurifier.m2, mb3, mb4, v7, vb2, va2)
Xiaomi Mi Air (Purifier) Dog X3, X5, X7SM (airdog.airpurifier.x3, airdog.airpurifier.x5, airdog.airpurifier.x7sm)
Xiaomi Mi Air Humidifier
Xiaomi Aqara Camera
Xiaomi Aqara Gateway (basic implementation, alarm, lights)
Xiaomi Mijia 360 1080p
Xiaomi Mijia STYJ02YM (Viomi)
Xiaomi Mijia 1C STYTJ01ZHM (Dreame)
Dreame F9, D9, Z10 Pro
Xiaomi Mi Home (Mijia) G1 Robot Vacuum Mop MJSTG1
Xiaomi Roidmi Eve
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
Huayi Huizuo Lamps
Xiaomi Universal IR Remote Controller (Chuangmi IR)
Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, ZA5 1C, P5, P9, P10, P11
Xiaomi Rosou SS4 Ventilator (leshow.fan.ss4)
Xiaomi Mi Air Humidifier V1, CA1, CA4, CB1, MJJSQ, JSQ, JSQ1, JSQ001
Xiaomi Mi Water Purifier (Basic support: Turn on & off)
Xiaomi Mi Water Purifier D1, C1 (Triple Setting)
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), VA4 (zhimi.airfresh.va4), A1 (dmaker.airfresh.a1), 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
Xiaomiyoupin Curtain Controller (Wi-Fi) (lumi.curtain.hagl05)
Xiaomi Xiaomi Mi Smart Space Heater S (zhimi.heater.mc2)
Xiaomi Xiaomi Mi Smart Space Heater 1S (zhimi.heater.za2)
Yeelight Dual Control Module (yeelink.switch.sw1)
Scishare coffee maker (scishare.coffee.s1102)
Qingping Air Monitor Lite (cgllc.airm.cgdn1)
Xiaomi Walkingpad A1 (ksmb.walkingpad.v3)
Xiaomi Smart Pet Water Dispenser (mmgg.pet_waterer.s1, s4)
Xiaomi Mi Smart Humidifer S (jsqs, jsq5)
Feel free to create a pull request to add support for new devices as well as additional features for supported devices.
Projects using this library
This library is used by various projects to support MiIO/MiOT devices. If you are using this library for your project, feel free to open a PR to get it listed here!
Home Assistant (official)
Home Assistant uses this library to support several platforms out-of-the-box. This list is incomplete as the platforms (in parentheses) may also support other devices listed above.
Xiaomi Mi Robot Vacuum (vacuum)
Xiaomi Philips Light (light)
Xiaomi Aqara Gateway Alarm (alarm_control_panel)
Xiaomi Mi WiFi Repeater 2 (device_tracker)
Home Assistant (custom)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python-miio-0.5.10.tar.gz
.
File metadata
- Download URL: python-miio-0.5.10.tar.gz
- Upload date:
- Size: 232.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.16.9-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea257eb887558b467715e33dc67a754acdd5cc55443a6ef0ca4c634935d42063 |
|
MD5 | c90d760b2e3be39193f70968c3a78a4e |
|
BLAKE2b-256 | 956a6ca1730b032ba1f4045eede79fac3a8bc40759cbbdea67532ea4ce3f14c1 |
File details
Details for the file python_miio-0.5.10-py3-none-any.whl
.
File metadata
- Download URL: python_miio-0.5.10-py3-none-any.whl
- Upload date:
- Size: 317.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.2 Linux/5.16.9-arch1-1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42b94e12d84b1df99c2e5488de599c74475fdcde5aac37ff78a548331162892a |
|
MD5 | 3ec4ea4c135a113a76b0e428f0cce4fd |
|
BLAKE2b-256 | 8706478f57355cacfe2f8dddb5f55a6ca2c24717534c5881fe35443ee5083c33 |