Claude Code 想出了办法控制我的灯 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ruxuan1306
V2EX    分享创造

Claude Code 想出了办法控制我的灯

  •  
  •   ruxuan1306 4 天前 1502 次点击

    我让 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: 小爱音箱 ``` 
    6 条回复    2026-01-11 11:12:58 +08:00
    Tink
        1
    Tink  
    PRO
       4 天前
    可以在家里部署一个 Home Assistant ,然后使用 miot 集成把米家设备集成进去,这个提供了各种 api 可供使用
    est
        2
    est  
       4 天前
    想知道背后原理,找到库,https://github.com/Do1e/mijia-api ,它 FAQ 说


    如何抓包?小米官方给了一个抓包教程

    https://iot.mi.com/new/doc/accesses/direct-access/extension-development/troubleshooting/packet_capture

    原来 mijia 内部人员自己也靠抓包去逆向。。。抽象。。。。
    Dreax
        3
    Dreax  
       4 天前
    @est 太抽象了
    hanguofu
        4
    hanguofu  
       4 天前 via Android
    谢谢分享~~请问对于开关灯这样的需求,是不是仅用这套 mijia-api 就足够了?
    livib
        5
    livib  
       4 天前
    @est 对开发者算是比较友好了
    est
        6
    est  
       4 天前
    @livib 更友好的东西是一套 well defined 操原子,本地 test suite ,这样你可以在一台机器本机完成整个链路的模拟。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5638 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:48 PVG 16:48 LAX 00:48 JFK 03:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86