# 音像与 IoT 能力边界

这份文档用于回答两个问题：

- 这个 skill 能控制什么？
- 哪些请求不该做，或需要先确认？

如果用户输入和这份边界不匹配，优先解释原因，不要硬执行。

## 一、稳定支持（建议直接执行）

以下能力可稳定映射到本 skill 的现有脚本：

- 设备查询与状态读取
  - `bash scripts/list_devices.sh`
  - `bash scripts/list_iot_devices.sh`
  - `bash scripts/list_scenes.sh`
- 智能屏能力（`xiaodu`）
  - 文本播报：`bash scripts/speak.sh`
  - 语音指令：`bash scripts/control_xiaodu.sh`
  - 拍照：`bash scripts/take_photo.sh`
  - 资源推送（图片/视频/音频）：`bash scripts/push_resource.sh`
- IoT 基础控制（`xiaodu-iot`）
  - 开关：`turnOn` / `turnOff`
  - 属性设置：`set + attribute + value`
  - 场景触发：`bash scripts/trigger_scene.sh`

## 二、覆盖到的主要控制能力（按设备族）

下面是从语料归纳出的高频意图族。命中这些意图时，默认优先路由到 `xiaodu-iot`，不是智能屏语音链路。

### 1) 灯光类

- 支持意图：
  - 开关灯（单灯/房间/全部）
  - 亮度（百分比、相对增减、最亮/最暗）
  - 色温（低/高/数值）
  - 颜色（红/白/紫/橙/黄等）
  - 模式（阅读/夜灯/休闲/音乐/明亮）
- 典型 QA：
  - “把灯光调到二十”
  - “把主卧的灯调成绿色”
  - “把客厅的灯全部开亮”
  - “关闭所有灯”

### 2) 空调类

- 支持意图：
  - 开关、房间级控制、全屋控制
  - 温度绝对值与相对值（升高/降低 N 度）
  - 模式（制冷/制热/除湿/通风/自动/强劲/静音）
  - 风速档位（1/2/3 档、最大/最小、调高/调低）
  - 风向/摆风（上下/左右/朝上/朝下/扫风）
  - 定时与取消定时
  - 状态查询（当前温度/模式）
- 典型 QA：
  - “空调调到22度”
  - “把空调调成制热”
  - “把客厅空调风速调到3档”
  - “一个半小时后帮我关闭空调”

### 3) 风扇类

- 支持意图：
  - 开关、风速/功率
  - 风类切换（自然风/普通风等）
  - 摆风/摇头
  - 定时与取消定时
- 典型 QA：
  - “风扇小一格”
  - “风扇切换风类”
  - “风扇左右摇摆”
  - “取消风扇的定时”

### 4) 窗帘类

- 支持意图：
  - 开启/关闭（含全部）
  - 开合百分比或半开半关
  - 暂停动作
  - 状态查询（开了吗）
- 典型 QA：
  - “打开全部窗帘”
  - “关闭遮光帘”
  - “窗帘关闭一半”
  - “暂停窗帘”

### 5) 电视/机顶盒/投影/音箱（音像控制）

- 支持意图：
  - 开关、静音、音量增减/设值
  - 频道切换、上/下一个台、指定频道
  - 信号源切换（含 HDMI 语义）
  - 遥控按键类（确认/返回/左右/首页/菜单）
  - 模式切换（电视模式、高清等）
  - 连接/断开/解绑/取消控制（条件支持）
- 典型 QA：
  - “卧室电视音量调到20”
  - “电视回到上个节目”
  - “电视到hdmi”
  - “按下电视的ok键”

### 6) 扫地机/吸尘器类

- 支持意图：
  - 开始/暂停/继续/停止
  - 回充、停止充电
  - 区域清扫（客厅/卧室/卫生间）
  - 吸力档位与水量档位
  - 状态查询（电量、是否在工作）
- 典型 QA：
  - “扫地机器人开始工作”
  - “让扫地机去客厅清扫”
  - “扫地机器人水量调到最高”
  - “吸尘器吸力变小”

### 7) 加湿器/净化器/热水设备/插座/门锁等

- 支持意图：
  - 档位/湿度/自动模式设置
  - 定时、取消定时
  - 开关控制
  - 门锁上锁/解锁（高风险，建议二次确认）
- 典型 QA：
  - “加湿器开到二档”
  - “空气净化器自动挡”
  - “关闭卫生间的热水器”
  - “请锁好门”

### 8) 设备发现与管理

- 支持意图（条件支持）：
  - 发现/搜索设备
  - 添加/连接/解绑某类设备
  - 遥控学习（电视/风扇/机顶盒）
- 说明：
  - 是否可执行，取决于 `xiaodu-iot` schema 是否暴露对应动作。
  - 若 schema 无此工具，直接说明“不支持”并给出替代路径。

## 三、条件支持与明确不支持

### 条件支持（先查 schema 再执行）

- 投屏相关（“打开投屏”“爱奇艺投屏”“切换投屏设备”）
- 绑定/解绑/连接类动作
- 学习遥控类动作
- 定时删除或复杂计划管理
- 设备专有能力（如“火力增强”“空气炸锅定时”“洗衣机水量 43 升”）

这些请求在 `xiaodu-iot` 工具里有动作与参数就执行；没有就拒绝并说明缺失项。

### 明确不支持（默认拒绝）

- 非智能家居控制域：
  - 电梯楼层控制（如“去二楼吧”）
  - 车辆功能控制（如“车内温度多少度”“车辆氛围灯”）
  - 打印机任务（如“帮我打印一张”）除非设备列表中确有可控打印设备
  - 纯内容检索问答（如“赵丽颖的电视剧”）除非用户明确要求“发送到电视语音助手”
- 设备不存在时的盲控：
  - 未在设备列表里出现目标设备，不执行控制，只返回“未找到设备”。

## 四、执行策略（给模型）

1. 先判定是智能屏能力还是 IoT 家电能力。  
2. IoT 意图先查设备，确认目标设备存在；必要时要求用户补设备名/房间。  
3. 属性控制统一映射到：`action=set + attribute + value`。  
4. 高风险动作（二次影响明显）先确认：
   - 门锁开关
   - 全屋设备批量开关
   - 长时定时任务创建/删除
5. schema 缺字段时，不脑补参数；先告知用户“不支持该属性/动作”。  

## 五、从 QA 到脚本的路由速查

- “开灯/关灯/亮度/色温/颜色/模式” -> `bash scripts/control_iot.sh`
- “空调温度/模式/风速/风向/摆风/定时” -> `bash scripts/control_iot.sh`
- “风扇风类/风速/定时/摇头” -> `bash scripts/control_iot.sh`
- “窗帘开合/暂停/查询” -> `bash scripts/control_iot.sh` 或 `bash scripts/list_iot_devices.sh`
- “电视音量/频道/信号源/静音/遥控键” -> `bash scripts/control_iot.sh`
- “投屏/影视内容播放” -> 优先 `bash scripts/control_xiaodu.sh`，设备型投屏再走 IoT
- “扫地机清扫/回充/吸力/水量” -> `bash scripts/control_iot.sh`
- “设备列表/状态/场景” -> `bash scripts/list_iot_devices.sh` / `bash scripts/list_scenes.sh` / `bash scripts/trigger_scene.sh`

## 六、说明

这份文档是按 QA 样本归纳的“能力地图”，不是 schema 的替代品。  
最终可执行能力以实时 `mcporter list xiaodu-iot --schema` 返回为准。
