Python-miio是一个强大的Python库,它允许你通过小米的miIO和MIoT协议来控制各种小米智能家居设备。无需再依赖小米的官方App,你就可以轻松地用Python脚本自动化你的智能家居生活。本文将详细介绍Python-miio库的功能、使用方法以及它能为你带来的便利。
什么是Python-miio?
Python-miio是一个开源的、社区驱动的项目,它并非小米官方出品,而是由热心的开发者们共同维护和完善。该库提供了一个命令行工具miiocli和Python API,让你能够方便地与支持miIO和MIoT协议的小米设备进行交互。它支持多种设备,涵盖了吸尘器、空气净化器、空调、灯具、插座等等。
Python-miio能做什么?
Python-miio主要有以下功能:
-
• 控制小米设备: 这是Python-miio的核心功能。你可以通过Python脚本或
miiocli来控制各种小米设备,例如开关空调、调节风扇速度、设置空气净化器的风量、控制扫地机器人的清扫等等。 -
• 获取设备状态: 你可以随时获取设备的运行状态,例如空气净化器的PM2.5值、空调的温度设置、扫地机器人的电池电量等等,这些信息可以用于构建更高级的自动化场景。
-
• 支持多种协议: Python-miio支持小米的miIO和MIoT协议,覆盖了大部分的小米智能家居设备。
-
• 命令行工具miiocli:
miiocli是一个方便易用的命令行工具,无需编写任何代码,你就可以通过简单的命令来控制设备。
如何使用Python-miio?
首先,你需要安装Python-miio库:
pip install python-miio
对于MIoT设备,建议安装最新的开发版本:
pip install git+https://github.com/rytilahti/python-miio.git
获取设备Token:
要控制设备,你需要获取设备的IP地址和Token。可以使用miiocli cloud命令从小米云服务器获取:
miiocli cloud
输入你的小米账号和密码后,程序会列出你所有已连接的设备及其Token。
使用miiocli控制设备:
一旦你获得了Token,就可以使用miiocli来控制设备了。例如,获取设备信息:
miiocli device --ip <ip> --token <token> info
控制MIoT设备:
# 获取状态
miiocli genericmiot --ip <ip> --token <token> status
# 设置参数,例如设置亮度为50
miiocli genericmiot --ip <ip> --token <token> set light:brightness 50
# 执行动作,例如开关灯
miiocli genericmiot --ip <ip> --token <token> call light:toggle
控制旧版miIO设备:
需要使用对应模块的命令,例如roborockvacuum控制扫地机器人。你可以使用--help参数查看可用命令。
使用Python API控制设备:
你可以使用Python API编写更复杂的脚本:
from miio import DeviceFactory
# 创建设备实例
dev = DeviceFactory.create("<ip address>", "<token>")
# 获取设备状态
status = dev.status()
print(status)
# 设置参数,例如设置温度
dev.set_property("temperature", 25)
支持的设备及更多功能:
Python-miio支持众多小米设备,包括但不限于:扫地机器人、空气净化器、空调、灯具、插座、摄像头等等。此外,它还提供了设备模拟器,方便开发者测试和开发。 该库还在持续更新中,支持的设备和功能也在不断增加。
总结:
Python-miio是一个功能强大、易于使用的Python库,它能够帮助你轻松地控制各种小米智能家居设备,实现自动化控制和管理。无论是简单的命令行操作还是复杂的Python脚本,Python-miio都能满足你的需求,让你更好地享受智能家居的便捷。
项目地址:https://github.com/rytilahti/python-miio