Python-miio:用Python控制小米miIO和MIoT协议的智能家居设备

文摘   2024-11-20 00:01   湖南  

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


小白这样学Python
专注Python编程开发知识分享!
 最新文章