# SPEC协议规范
工具功能
本工具用于检测设备的真实功能与在开发者平台配置的 SPEC 定义是否一致,帮助开发者快速发现配置与实际功能之间的差异
实现原理
工具通过设备所属环境和设备 DID 查询设备上报日志,清洗出属性值,并与 SPEC 定义的属性进行对比。系统会识别出 SPEC 中已定义但设备日志中缺失的属性,这类属性将被标记为 miss(缺失)。
# 工具使用
工具入口

点击「打开工具」按钮,进入任务操作页面。
任务操作

在任务操作页面,您可以:
选择环境:选择设备所属的测试环境
选择设备:从对应环境中选择待测试设备,最多支持 **5 **个设备
设置对比时间段:选择日志对比的时间范围,最长 7 天
开始测试:点击「开始测试」按钮启动对比任务
任务列表

任务执行完成后,您可以上传报告并进入查看报告 了解详细的对比结果,如图所示:

# 查看报告
除了在任务列表中查看报告外,您还可以在客户端左侧菜单的测试结果里面找到已上传的报告,进入报告页面后展示的内容如下:

设备信息:被测试设备的基本信息
对比时间段:日志分析的时间范围
SPEC 定义版本:对应的设备类型(设备 urn 的值)
对比统计结果:整体匹配情况的汇总数据
对比统计明细:详细的属性匹配结果,匹配结果说明:
成功:设备功能与 SPEC 定义匹配成功
miss:设备未上报该功能的 OT 日志,可能原因包括:
(1)设备不具备此功能
(2)功能未被触发,未产生日志
手动确认
对于标记为 miss 的属性,实验室同学可以与厂商确认后进行手动确认。在报告页面填写原因说明并提交后,工具会自动更新匹配结果和报告数据。

# 实现原理与常见问题排查
# 一、工具实现原理
# 1.1 核心概述
# 1.2 核心逻辑详解
步骤1:过滤测试任务时间窗
查询到的上报数据中,落在 Spec 功能测试或耗时测试执行时间窗口内的数据会被过滤掉。这些测试任务会主动触发设备上报,产生的上报数据不代表真实用户行为,会干扰完整性判断。

步骤2:比较差异
遍历 Spec 基准列表中的每个属性/事件,在 OT 消息列表中查找是否存在匹配的 IID:

# 1.3 结果状态流转
1.3.1 属性结果

三种结果判断标准:
| 结果 | 说明 |
|---|---|
| 成功 | 日志信息中找到了匹配的 IID |
| miss | Spec 定义了但实际日志数据中未找到 |
| 确认后通过 | 人工审核后确认该 MISS 属于正常情况,附带确认原因 |
1.3.2 任务结果

三种结果判定逻辑:
| 条件 | 审批状态 |
|---|---|
| 所有属性均为 "成功" | 通过 |
| 存在 MISS,但全部已人工 "确认后通过" | 确认后通过 |
| 存在未确认的 MISS | 不通过 |
# 二、常见问题
# 2.1 属性 MISS 排查步骤
Step 1:检查时间范围是否合理
- 用户是否在该时间段内实际操作过设备(触发属性上报)
- 检查 miss 的属性操作时间是否在 spec 功能测试和耗时测试时间段内,这部分时间段日志会被过滤掉
- 本工具用于查询日志的底表有一天数据延迟,最好是当天操作设备,第二天再用工具比较
Step 2:确认 MISS 属性在对比时间段内是否有上报日志记录
可以在开发者平台根据设备 did 查询日志记录,地址:https://iot.mi.com/fe-op/operationCenter/log/device#tab=COMMUNICATION
Step 3:寻求工具组支持
如果步骤1和步骤2都检查确认无误且在步骤2中找到了 miss 属性的 OT 日志,那么可以提单给 SA 处理,并且贴上前两步检查信息,无有效信息的工单不予处理。
# 2.2 常见情况和对应的处理方式
| 根因 | 处理方式 |
|---|---|
| 设备确实未上报(正常 MISS) | 排查设备固件是否实现了该属性 |
| write 属性 + 海外环境 | 海外无下行 RPC 表,属于已知限制,走人工确认 |
| Spec 定义中的属性,设备无法触发或不方便触发的功能 | 联系认证实验室测试人员,走人工确认 |
# 2.3 人工确认操作
对于确认属于预期的 MISS 属性,通过「人工确认」功能将其标记为 "确认后通过",需填写确认原因(如"该事件为故障告警,正常使用不会触发"等)。