Skill: alleneee/mijia-home (version 1.1.0)

--- name: xiaomi-home description: 小米/米家智能家居设备控制。通过 MCP Server 工具控制家中的小米设备，包括灯、空气净化器、电暖气、空调、风扇、扫地机器人、窗帘等。当用户提到任何关于智能家居控制的指令时触发，如"把灯关掉"、"开空调"、"净化器调到睡眠模式"、"客厅太暗了"、"家里空气不好"等。即使用户没有明确说"小米"或"米家"，只要涉及家居设备控制，都应该触发此 skill。也支持查询设备状态，如"空气质量怎么样"、"家里几度"等。 --- # 小米智能家居控制 你可以通过 MCP Server 提供的工具控制用户家中的小米/米家智能设备。 ## 首次配置 每次收到设备控制请求时，先调用 `xiaomi_auth_status` 检查认证状态。 如果状态为 `not_configured` 或 `not_authenticated`，引导用户完成配置： 1. 告诉用户需要提供小米账号和密码 2. 用户提供后，调用 `xiaomi_setup(username, password, country)` 发起登录 3. 如果返回 `verification_required`，告诉用户查看手机/邮箱验证码 4. 用户提供验证码后，调用 `xiaomi_verify(code)` 完成认证 5. 认证成功后继续执行原始的设备控制请求 如果状态为 `pending_verification`，直接询问用户验证码。 如果状态为 `authenticated`，跳过配置直接操作设备。 ## 可用工具 MCP Server `xiaomi-home` 提供以下工具： | 工具 | 用途 | |------|------| | `xiaomi_auth_status` | 检查认证状态 | | `xiaomi_setup` | 配置账号并发起登录 | | `xiaomi_verify` | 提交二次验证码 | | `xiaomi_list_devices` | 列出所有设备，获取设备 did | | `xiaomi_find_device` | 按名称模糊搜索设备 | | `xiaomi_get_properties` | 读取设备属性 | | `xiaomi_set_property` | 设置设备属性 | | `xiaomi_call_action` | 调用设备动作 | | `xiaomi_camera_list` | 列出已配置的摄像头 | | `xiaomi_camera_add` | 添加/更新摄像头 | | `xiaomi_camera_remove` | 移除摄像头 | | `xiaomi_camera_snapshot` | 摄像头截图 | ## 工作流程 ### 第一步：定位设备 从用户的自然语言指令中提取设备关键词，用 `xiaomi_find_device` 搜索。 例如用户说"把客厅的灯关掉"，提取"客厅"或"灯"进行搜索。 如果没有找到，尝试用 `xiaomi_list_devices` 列出所有设备，让用户确认。 ### 第二步：查询设备规格 拿到设备的 `model` 后，需要知道该设备支持哪些 siid/piid。 常见设备的 MIoT 规格： **开关类设备（灯、插座、开关）** - siid=2, piid=1: 开关 (bool) - siid=2, piid=2: 亮度 (uint8, 1-100) - siid=2, piid=3: 色温 (uint32) **空气净化器** - siid=2, piid=1: 开关 (bool) - siid=2, piid=5: 模式 (uint8, 0=自动 1=睡眠 2=喜爱 3=手动) - siid=2, piid=8: 风速等级 - siid=3, piid=6: PM2.5 (只读) - siid=3, piid=8: 温度 (只读) - siid=3, piid=7: 湿度 (只读) **电暖气/取暖器** - siid=2, piid=1: 开关 (bool) - siid=2, piid=2: 目标温度 - siid=2, piid=3: 模式 **风扇** - siid=2, piid=1: 开关 (bool) - siid=2, piid=2: 风速等级 - siid=2, piid=3: 摆头 (bool) - siid=2, piid=4: 模式 **扫地机器人** - siid=2, piid=1: 状态 - siid=2, piid=2: 模式 - siid=2, aiid=1: 开始清扫（动作） - siid=2, aiid=2: 停止清扫（动作） 以上仅为常见参考值，不同型号的 siid/piid 可能不同。如果控制失败，先用 `xiaomi_get_properties` 尝试读取 siid=2 的 piid 1-10 来探测设备支持的属性。 ### 第三步：执行操作 根据用户意图调用对应工具： - **开/关设备**: `xiaomi_set_property(did, siid=2, piid=1, value=true/false)` - **调节属性**: `xiaomi_set_property(did, siid, piid, value)` - **执行动作**: `xiaomi_call_action(did, siid, aiid)` - **查询状态**: `xiaomi_get_properties(did, siid=2, piids="1,2,3,4,5")` ### 第四步：反馈结果 用自然语言告诉用户操作结果，例如： - "已关闭客厅吸顶灯" - "空气净化器已切换到睡眠模式，当前 PM2.5: 35" - "电暖气已开启，目标温度设为 24 度" 如果操作失败，说明原因并建议排查方向（设备是否在线、是否在同一局域网等）。 ## 场景联动 用户可能描述一个场景而非单个设备操作，例如： - "我要睡觉了" -> 关灯 + 净化器睡眠模式 + 电暖气调低 - "出门了" -> 关闭所有设备 - "客厅太暗了" -> 开灯并调高亮度 - "看看门口" -> 截图 + 分析 + 建议联动 遇到场景指令时，拆解为多个设备操作，依次执行并汇报结果。 ## 注意事项 - 操作前确认设备在线（is_online），离线设备无法控制 - siid/piid 因型号而异，失败时用探测方式确认正确的属性 ID - 布尔值使用 true/false，不是 0/1 - 设备 did 是字符串，不要猜测，必须从 list 或 find 工具获取 ## 摄像头与视觉感知 当用户想"看看"某个位置时，使用摄像头截图功能： 1. 调用 `xiaomi_camera_list` 确认有哪些摄像头 2. 调用 `xiaomi_camera_snapshot(name)` 截取图片 3. 用 Read 工具读取返回的图片路径，分析图片内容 4. 用自然语言描述看到的内容，并根据场景建议联动操作 触发关键词："看看"、"门口有没有人"、"摄像头"、"监控"、"拍一张"等。 如果用户想添加摄像头，引导使用 `xiaomi_camera_add(name, rtsp_url)`。 测试时可用 `mock://文件名` 或 `mock://目录名` 加载本地图片。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)