GoForum › 🌐 V2EX
Claude Code 想出了办法控制我的灯
ruxuan1306 ·
2026-01-10 22:58 ·
0 次点赞 · 3 条回复
我让 Claude Code 关闭我的米家吸顶灯,Claude Code 一番摸索找到了 mijia-api,成功执行了关灯。
感谢 mijia-api 作者🙏,我也让 Claude Code 记录成了简单的 SKILL.md ,分享给有需要的朋友。
---
name: mijia-control
description: 控制米家智能设备。当用户想要开关灯、调节亮度、控制扫地机器人、空气净化器、空调等智能家居设备时使用。
permissions:
- Bash(uvx mijiaAPI:*)
---
# 米家智能设备控制指南
使用 `uvx mijiaAPI` 命令控制米家智能设备。
## 1. 安装与登录
首次使用扫码登录:
```bash
uvx mijiaAPI -l
```
认证信息保存在 `~/.config/mijia-api/auth.json`。
## 2. 查看家庭列表
```bash
uvx mijiaAPI --list_homes
```
## 3. 查看设备列表
```bash
uvx mijiaAPI -l
```
显示设备名称、did (设备 ID )和 model (型号)。
## 4. 查看设备属性
```bash
uvx mijiaAPI --get_device_info <model>
```
## 5. 常用命令
### 控制设备属性
```bash
# 基本格式
uvx mijiaAPI set --did <设备 ID> --prop_name "<属性名>" --value <值>
# 示例:开关灯
uvx mijiaAPI set --did 123456789 --prop_name "on" --value True
uvx mijiaAPI set --did 123456789 --prop_name "on" --value False
# 示例:调节亮度 (1-100)
uvx mijiaAPI set --did 123456789 --prop_name "brightness" --value 50
# 示例:调节色温 (具体范围取决于设备)
uvx mijiaAPI set --did 123456789 --prop_name "color-temperature" --value 2700
```
### 获取设备状态
```bash
uvx mijiaAPI get --did <设备 ID> --prop_name "<属性名>"
# 示例
uvx mijiaAPI get --did 123456789 --prop_name "on"
uvx mijiaAPI get --did 123456789 --prop_name "brightness"
```
### 使用小爱音箱(可选)
有小爱音箱时,可用自然语言控制:
```bash
uvx mijiaAPI --run "<语音命令>" --wifispeaker_name "<音箱名称>"
# 示例
uvx mijiaAPI --run "关闭所有灯" --wifispeaker_name "小爱音箱 Pro"
uvx mijiaAPI --run "把台灯调到 50%亮度" --wifispeaker_name "小爱音箱 Pro"
```
适用场景:批量控制、房间控制、属性调节(亮度、色温等)。
## 6. 常见设备属性
灯光:`on`(开关)、`brightness`(亮度 1-100 )、`color-temperature`(色温)
空气净化器:`on`(开关)、`mode`(模式)、`fan-level`(风速)
## 7. 批量操作
使用 `&&` 连接多个命令:
```bash
uvx mijiaAPI set --did 111 --prop_name "on" --value True && \
uvx mijiaAPI set --did 222 --prop_name "on" --value True
```
## 8. 参考资料
- GitHub 项目: https://github.com/Do1e/mijia-api
- 更多命令选项:`uvx mijiaAPI --help`
## 9. 设备笔记(重要)
优先查看 `~/.config/mijia-api/my-devices.yaml`(如存在)。
包含:家庭列表、设备信息、小爱音箱名称。
工作流程:
1. 查看笔记文件,获取小爱音箱名称
2. 直接执行:`uvx mijiaAPI --run "关闭所有灯" --wifispeaker_name "小爱音箱 Pro"`
笔记不存在:查询家庭和设备信息,自动创建笔记文件。
快捷调用失败:自动重新查询信息(`--list_homes` 和 `-l`),更新笔记文件,然后重新执行用户请求。
笔记示例:
```yaml
# 米家设备笔记
homes:
我的家:
id: 123456789
wifispeaker: 小爱音箱 Pro
devices:
- 台灯 (did: 111111111, model: yeelink.light.lamp4)
- 吸顶灯 (did: 222222222, model: xiaomi.light.ceil04)
办公室:
id: 987654321
wifispeaker: 小爱音箱
```
3 条回复
想知道背后原理,找到库,https://github.com/Do1e/mijia-api ,它 FAQ 说
如何抓包?小米官方给了一个抓包教程
原来 mijia 内部人员自己也靠抓包去逆向。。。抽象。。。。
添加回复
你还需要 登录
后发表回复
可以在家里部署一个 Home Assistant ,然后使用 miot 集成把米家设备集成进去,这个提供了各种 api 可供使用