
我让 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: 小爱音箱 ``` 1 Tink PRO 可以在家里部署一个 Home Assistant ,然后使用 miot 集成把米家设备集成进去,这个提供了各种 api 可供使用 |
2 est 想知道背后原理,找到库,https://github.com/Do1e/mijia-api ,它 FAQ 说 如何抓包?小米官方给了一个抓包教程 https://iot.mi.com/new/doc/accesses/direct-access/extension-development/troubleshooting/packet_capture 原来 mijia 内部人员自己也靠抓包去逆向。。。抽象。。。。 |
4 hanguofu 4 天前 via Android 谢谢分享~~请问对于开关灯这样的需求,是不是仅用这套 mijia-api 就足够了? |