使用 python-miio 控制小米智能插座(示例与 Token 获取)
本文介绍如何使用 python-miio 控制小米智能插座,并演示如何获取设备的 IP 与 Token。
快速安装
安装 python-miio:
python -m pip install python-miio
使用示例(Python)
请将下列示例中的 IP、TOKEN 替换为你自己的设备信息:
from miio.device import Device
# 替换为你的设备 IP 和 Token
IP = "192.168.31.59"
TOKEN = "1f96ab0exxxxxxxxxxx"
device = Device(IP, TOKEN)
# 查看设备状态
result = device.send("get_properties", [{'did': 'MYDID', 'siid': 2, 'piid': 1}])
print(result) # [{'did': 'MYDID', 'siid': 2, 'piid': 1, 'code': 0, 'value': False}]
# 打开
result = device.send("set_properties", [{'did': 'MYDID', 'siid': 2, 'piid': 1, 'value': True}])
print(result)
# 关闭
result = device.send("set_properties", [{'did': 'MYDID', 'siid': 2, 'piid': 1, 'value': False}])
print(result)
获取设备 Token 与 IP(使用 Xiaomi-cloud-tokens-extractor)
推荐使用 Piotr Machowski 的工具来从小米云中提取本地设备 Token。操作步骤如下:
- 克隆仓库并进入目录:
git clone https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor.git
cd Xiaomi-cloud-tokens-extractor
- 安装依赖:
pip3 install -r requirements.txt
- 运行提取脚本(按提示登录并选择服务器):
python3 token_extractor.py
运行示例(实操输出)示意:
- 按提示选择登陆方式(密码或扫码)。扫码后页面会显示 QR 地址,扫码登录后会列出你在该服务器(如 cn)下的家庭与设备列表。
- 输出示例会包含设备名称、ID、MAC、IP、TOKEN、MODEL 等信息,例如:
NAME: Mijia Smart Plug 3
ID: 20xxxxxxxx
MAC: 14:D8:xx:xx:xx:10
IP: 192.168.31.59
TOKEN: 1f96ab0xxxxxxxxxxxxxx
MODEL: cuco.plug.v3
常见问题与提示
- 无法连接/获取信息:确认脚本运行机器与设备在同一局域网内,且 IP 和 Token 正确无误。