核心用法
本技能基于 python-miio 库实现小米智能家居设备的本地局域网控制。用户需提前获取设备的 IP 地址和 32 字符 Token,通过 miiocli 命令行工具执行各类操作。
配置流程:
1. 使用 Xiaomi Cloud Tokens Extractor 登录米家账号提取设备 Token
2. 在 references/devices.md 中建立设备信息表(含 IP、Token、型号)
3. 通过 miiocli 执行 MIOT 协议命令
支持操作:
- 通用 MIOT 设备:查询属性(
get_property_by)、开关控制(set_properties) - 加湿器:专用
airhumidifiermiot模块状态查询 - 电饭煲:专用
cooker模块状态查询
显著优点
- 纯本地控制:不依赖小米云服务,响应速度快且隐私性更强
- 设备覆盖广:支持 MIOT 协议的各类小米/生态链设备
- 协议标准化:基于小米公开的 MIOT 协议,指令结构统一
- 零硬件成本:利用现有局域网基础设施,无需额外网关
潜在缺点与局限性
- Token 获取门槛:需运行第三方脚本或抓包提取 Token,对普通用户技术门槛较高
- Token 时效性:部分设备 Token 可能随固件更新或重置而变化
- 功能受限:仅能执行基础开关和状态读取,复杂场景联动需配合米家 App
- 网络绑定:必须与设备同局域网,无法远程控制(除非配合 VPN)
- 依赖维护:
python-miio需社区持续更新以适配新设备
适合人群
- 注重隐私、希望减少云端依赖的技术用户
- 需将小米设备集成到自定义自动化工作流的开发者
- 已有局域网基础设施的智能家居爱好者
常规风险
- 凭证泄露:Token 相当于设备密码,明文存储在配置文件中有泄露风险
- 依赖冲突:已知
click>=8.1.0会导致TypeError,需锁定旧版本 - 网络稳定性:局域网波动会导致控制失败,无云端 fallback 机制
- 设备误操作:命令行操作缺乏确认机制,存在误触开关的可能
- 固件兼容性:小米未公开承诺协议稳定性,固件升级可能破坏兼容性