Python-miio是一个开源的Python库,用于控制使用小米miIO和MIoT协议的智能家居设备。它并非小米官方出品,而是由社区驱动开源开发维护的,这意味着它是一个独立的、志愿者贡献的项目。你可以使用它来控制各种小米设备,例如扫地机器人、空气净化器、空调、灯具等等,而无需依赖小米官方的App。
Python-miio能做什么?
Python-miio的主要功能是通过网络协议直接控制小米智能设备。这意味着你可以编写Python脚本来自动化你的智能家居场景,例如:
• 定时控制: 设置定时开关设备,例如每天早上定时开启空气净化器。
• 场景联动: 将多个设备的控制串联起来,例如当有人进入房间时自动打开灯光并调节空调温度。
• 远程控制: 即使不在家,也可以通过互联网远程控制家里的智能设备。
• 数据监控: 获取设备的实时状态信息,例如空气净化器的PM2.5值、扫地机器人的电池电量等。
• 自定义功能: 开发你自己的智能家居应用,实现更多个性化的功能。
Python-miio的关键功能及使用方法
获取设备信息和Token:
要使用Python-miio控制设备,首先需要获取设备的IP地址和Token。Token是设备的访问密钥,你需要使用miiocli cloud
命令从小米云端获取,这需要你提供小米账号密码。获取到这些信息后,你就可以开始控制设备了。
使用miiocli命令行工具:
miiocli
是一个强大的命令行工具,可以让你直接通过命令行控制支持的设备。它支持各种子命令,例如info
(获取设备信息), status
(获取设备状态), set
(设置设备参数), call
(执行设备动作)等等。对于支持MIoT协议的现代设备, miiocli genericmiot
子命令提供了通用的控制接口。
控制现代MIoT设备:
大多数现代小米设备都使用MIoT协议。Python-miio通过genericmiot
集成自动支持这些设备。它会下载并缓存设备的MIoT规范文件,从而识别并控制设备的各种功能,例如开关、亮度调节、模式切换等。
控制旧的miIO设备:
对于旧的miIO设备,Python-miio提供了对应的模块(例如roborockvacuum
用于控制小米扫地机器人)。 miiocli info
命令会显示应该使用的模块名称。
Python API 使用:
除了miiocli
命令行工具,你还可以直接使用Python API来控制设备。 DeviceFactory
类提供了一种简单的方式来创建设备实例:
from miio import DeviceFactory
dev = DeviceFactory.create("<ip address>", "<token>")
dev.status() # 获取设备状态
该方法会自动检测设备型号并创建对应的设备类实例。你还可以使用 sensors()
, settings()
, actions()
方法来获取设备支持的功能信息。
支持的设备:
Python-miio支持大量的小米智能设备,包括但不限于:扫地机器人、空气净化器、空调、灯具、插座、摄像头、网关等等。支持的设备列表在项目主页持续更新。
总结:
Python-miio 是一个功能强大、易于使用且社区活跃的 Python 库,能够有效地控制各种小米智能家居设备。无论是编写复杂的自动化脚本还是简单的命令行控制,它都能满足你的需求。它为构建个性化智能家居系统提供了无限可能。
项目地址:https://github.com/rytilahti/python-miio