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 条回复
Tink · 2026-01-10 22:58
#1

可以在家里部署一个 Home Assistant ,然后使用 miot 集成把米家设备集成进去,这个提供了各种 api 可供使用

est · 2026-01-10 22:58
#2

想知道背后原理,找到库,https://github.com/Do1e/mijia-api ,它 FAQ 说

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

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

原来 mijia 内部人员自己也靠抓包去逆向。。。抽象。。。。

Dreax · 2026-01-10 23:23
#3

@est 太抽象了

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: ruxuan1306
发布: 2026-01-10
点赞: 0
回复: 0