# Get Decive Info

> 通用原子技能，根据用户语料，结合上下文解析家庭、房间及设备类型，输出结构化的设备列表信息。

- Skill: `18816132863/get-decive-info` (Agent Skill)
- Install (CLI): `npx skillmds@latest add 18816132863/get-decive-info`
- Raw SKILL.md: https://api.skillmd.com/api/skills/18816132863/get-decive-info/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: 18816132863 (https://skillmd.com/u/18816132863)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/18816132863/get-decive-info

---


# 用户设备信息获取

## 技能说明

本技能是一个**设备数据检索与过滤工具**。它的主要职责是根据用户的自然语言描述（如“客厅的灯”、“主卧所有设备”），精准定位并返回符合条件的设备列表。它通常作为“设备控制”、“设备执行日志查询”等技能的前置步骤，提供精确的设备目标数据。

## 执行流程

1.  **解析家庭上下文**
    - 根据上下文或者调用 `get-home-info` 技能，获取当前目标家庭的 `homeId`。
    - 如果用户未指定家庭且有多个家，默认查询所有家庭的设备信息。

2.  **获取全量设备数据**
    - 使用获取到的 `homeId`，调用底层 JS 脚本获取该家庭下的所有设备信息。
    - **命令**: 
    ```bash
    node common-skill/bin/smarthome-claw.js get_devices_info
    ```

## 输出文件
- `out_put/get_devices_info/devices_info.txt` - 设备信息列表

3.  **语义过滤与推理**
    - 分析用户输入，提取**房间**和**设备类型**关键词。
    - **逻辑判断**:
        - **指定房间 + 指定设备**: 例如“客厅的灯” -> 过滤 `location="客厅"` AND `type="light"`。
        - **指定房间 + 未指定设备**: 例如“看看主卧有什么” -> 过滤 `location="主卧"`，返回该房间所有设备。
        - **未指定房间 + 指定设备**: 例如“家里的摄像头” -> 过滤 `type="camera"`，返回全屋所有摄像头。
        - **未指定房间 + 未指定设备**: 例如“列出所有设备” -> 不进行过滤，返回全量列表。

4.  **输出结果**
    - 将过滤后的设备列表以 JSON 格式返回给主技能。

## 边界情况处理

- **无匹配设备**: 如果用户输入的条件互斥（例如用户说“卫生间的电视”，但卫生间没有电视），需用户澄清具体设备，例如询问用户“是否要获取客厅的电视信息”。若用户澄清后仍无匹配设备，返回空列表 `[]` 并标记 `reason: "no_matching_devices"`，供主技能提示用户。
- **设备离线**: 即使设备离线（`online: false`），只要在筛选范围内，也应包含在列表中，供主技能判断是否执行操作。
- **模糊房间名**: 支持同义词匹配（如“房间”匹配“卧室”）。

## 执行逻辑

### 1. 获取全量设备数据
- 调用底层 API 获取用户所有家庭下的所有设备
- 按家庭维度组织数据

### 2. 设备信息结构化
- 提取关键信息：设备 ID、名称、房间、类型
- 过滤无效设备数据
- **按 deviceId 统计**：所有设备相关信息查询后的统计均按 deviceId 进行，确保同一设备的多份数据聚合
- **设备名称展示规则**：当同一 deviceId 下存在多设备名称（如"华为全屋智能中控屏"和"Smart Home Panel"）时，优先向用户展示中文名

### 3. 支持筛选（可选）
- 按房间筛选：如"客厅的所有设备"
- 按设备类型筛选：如"所有摄像头"
- 按家庭筛选：如"父母家的所有设备"
