# Get Device Messages

> 设备消息获取 (Get Device Messages)

- Skill: `18816132863/get-device-messages` (Agent Skill)
- Install (CLI): `npx skillmds@latest add 18816132863/get-device-messages`
- Raw SKILL.md: https://api.skillmd.com/api/skills/18816132863/get-device-messages/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-device-messages

---


# 设备消息获取 (Get Device Messages)

## 核心定位

本技能是一个**数据源技能**。它不直接面向用户生成最终的阅读报告，而是作为面向用户的技能（例如“全屋简报”）子技能。它的核心职责是从海量的设备通知中，提炼出有价值的信息，剔除冗余噪音（如设备频繁上下线的抖动），确保下游技能接收到的数据是精准且经过分类的。

## 触发与协作

- **输入参数**:
    - `last_days`: 整数，表示查询过去多少天的消息（默认为 7）。
    - `home_id`: 目标家庭ID，通过调用上游技能get_homes_info\SKILL.md传入。非必须，如果用户未指定家庭，则直接查询用户所有家庭的消息，并按照家庭维度区分。
- **输出数据**: 结构化的消息列表，包含“紧急告警”、“一般通知”和“已忽略的冗余信息统计”。

## 执行流程

### 1. 参数构建与脚本调用
根据用户指定的时间范围参数，构建命令行指令，调用底层 JS 脚本与`smartHomeService` 交互，获取指定。
- **执行命令**:
```bash
# 支持 --last-days传参，例如查询近7天的消息
node common-skill/bin/smarthome-claw.js get_device_messages --last-days 7

# 支持 --date传参，支持today和yesterday，例如查询今天的消息
node common-skill/bin/smarthome-claw.js get_device_messages --date today
```

## 输出文件
- `out_put/get_device_messages/device_messages.txt` - 设备消息列表

### 2. 数据清洗与智能聚合 (核心逻辑)
为了生成高质量的简报，必须对原始数据进行以下处理：

#### 消息去重与防抖
- **规则**: 如果同一设备在短时间内（如10分钟内）上报相同的“离线”或“恢复在线”消息，视为网络抖动。
- **处理**: 仅保留第一条和最后一条，中间重复项标记为“已折叠”。
- **示例**: 设备“智能门锁”在1分钟内上报了5次“电量低”，聚合为1条：“智能门锁（5次） - 电量低”。

#### 重要性分级
根据内容关键词，将消息重新划分为简报所需的三个等级：
- **重点关注**: 告警消息，例如涉及安全、财产或设备故障的消息。
    - *关键词*: “逗留”、“烟雾”、“电压异常”等。
- **一般动态**: 用户需知晓但不紧急的状态变更。
    - *关键词*: “设备添加”、“设备周报”、“门铃按压”、“自动化执行失败”。
- **忽略/统计**: 纯粹的流水账，无需在简报中展示细节，仅做数量统计。
    - *关键词*: “定时开关执行成功”、“设备上线”、“设备周报”。

### 3. 输出结构化结果
将处理后的数据以清晰的格式展示，重要级较高的优先展示。若存在多个家庭，按照家庭维度分开展示。

## 与其他技能的协作

### 1. 家庭简报
```bash
# 第一步：获取家庭信息
node common-skill/bin/smarthome-claw.js get_homes_info

# 第二步：获取设备消息
node common-skill/bin/smarthome-claw.js get_device_messages --last-days 1
```

### 2. 设备控制记录查询
- 结合 `get_control_records` 分析设备的主动操作和被动告警

## 相关技能

- [`get_homes_info`](./get_homes_info/SKILL.md) - 获取家庭信息
- [`get_control_records`](./get_control_records/SKILL.md) - 获取设备控制记录
- [`get_devices_info`](./get_devices_info/SKILL.md) - 获取设备信息

# 实现细节
- **按 deviceId 统计**：设备消息查询后的统计按 deviceId 进行，确保同一设备的多条消息聚合一致
- **设备名称展示规则**：当同一 deviceId 下存在多设备名称（如"华为全屋智能中控屏"和"Smart Home Panel"）时，优先向用户展示中文名
