Skip to main content

eHome App 端详细需求设计文档

M07 传感器校准(对应需求:FR-1601~1606)

项目内容
所属项目eHome 智能家居硬件配套 APP + 云端后台定制开发项目
设计依据《eHome智能家居项目需求文档(PRD V1.1)》传感器校准章节、第8章、NFR-02(指令下发时延)/NFR-06(兼容性);《eHome项目页面功能工时费用明细表》M07模块
范围说明本模块覆盖传感器类设备(温湿度/光照/空气质量/人体存在等)的校准向导、偏移量/两点校准、校准记录与撤销、固件级校准参数下发与验证、校准有效期管理;不包含阈值告警配置(属 M04-R03)、历史趋势图表(属 M04-R02)、OTA 升级流程(属 M09)
优先级P0(MVP必须;传感器精度是监测/告警/数据分析三大模块的数据可信度基石,出厂漂移与安装环境差异必须可通过校准修正)
里程碑M2 完整功能期开发(依赖 M01 账号、M02 家庭/设备数据、M03 配网绑定、M04 实时数据流;固件侧校准协议须 M1 冻结)
文档用途直接交付 UI 设计、Flutter 开发(APP端)、云端开发、固件联调、测试QA

需求编号映射(以工时表 M07 功能项为准):

需求编号功能项
FR-1601校准入口与状态总览(校准状态徽标、有效期提醒、可校准能力检测)
FR-1602单点偏移校准向导(参考值输入、实时读数对比、偏移量计算与确认)
FR-1603两点线性校准向导(低温/高温两点采样、斜率截距计算、精度预览)
FR-1604校准参数下发与生效验证(固件写入、回读校验、失败回滚)
FR-1605校准记录管理(历史记录、当前参数查看、恢复出厂校准、有效期管理)
FR-1606传感器校准流程 UI 设计(向导组件、双主题、7语种、无障碍)

1. 模块概述与设计原则

1.1 模块范围

序号页面/功能项需求编号类型优先级
1校准状态总览区(设备详情页内嵌+校准中心页)FR-1601APP+云端P0
2单点偏移校准向导页FR-1602APP+云端+固件P0
3两点线性校准向导页FR-1603APP+云端+固件P0
4下发与验证流程(进度态/回读校验/回滚)FR-1604云端+固件P0
5校准记录页FR-1605APP+云端P0
6校准 UI 规范FR-1606UIP0

边界与衔接说明:

  • 入口A:M04-R01 传感器设备详情页【校准传感器】→ 本模块 C01;
  • 入口B:「我的」Tab →【设备管理】→ 选择传感器 → C01(设备未选定时先进 M02 设备列表筛选传感器品类);
  • 入口C:M04-R01 数据异常横幅【排查数据问题】→ 排查结论指向漂移时引导 C01;
  • 出口:校准完成回 R01(数值即时应用新校准参数);C05 恢复出厂校准后提示重新核对 M04-R03 告警阈值;固件版本不支持校准时引导 M09 OTA。

1.2 设计原则

  • 数据链路一致:校准参数在设备固件端生效(边缘校准),云端与 APP 不另做软件修正层——保证语音生态(M11)、第三方生态、APP 三端读到同一校准后数值,避免多端不一致。
  • 引导式低门槛:默认推荐单点偏移校准(覆盖80%场景,2分钟完成);两点校准仅对温度类高精度需求开放,向导明确说明差异与适用场景,不强迫用户理解斜率/截距概念。
  • 参考值可信提示:单点校准依赖用户提供可信参考值(标准温度计/权威气象数据),向导必须明示参考值来源建议与误差风险;参考值明显异常(偏离当前读数超量程50%)时强确认拦截。
  • 可撤销可追溯:每次校准写入记录(操作人/时间/前后参数/参考值来源);任意时刻可恢复出厂校准;下发失败自动回滚至上一有效参数,设备永不难用。
  • 有效期管理:校准有效期默认12个月(云端可按品类配置);到期前7天推送提醒(复用 M06 通知渠道);过期不强制失效,仅降级展示"建议重新校准"。
  • 安全红线:校准仅家庭管理员或有设备编辑权限成员可操作(联动 M02 权限);参数下发需设备在线且非 OTA 升级中(联动 M09 升级锁定);下发指令走签名 MQTT 通道防伪造。
  • 双主题 + 7语种:向导步骤文案、单位(℃/℉ 跟随 M04 设置)、记录字段全部资源文件;数值输入键盘类型按语种地区适配(小数点/逗号)。

1.3 用户与前置条件

  • 用户状态:必须已登录(M01);未登录拦截跳转登录页,成功回跳 C01。
  • 设备前置:目标传感器已绑定当前家庭、在线、电量 ≥20%(低电量校准失败风险高,强提示先换电池);固件版本 ≥ 最低校准支持版本(云端配置下发,不满足→引导 M09 OTA)。
  • 能力前置:设备能力模型声明 calibration 能力(支持的校准类型:offset/two_point、指标:温度/湿度/光照等、量程与步进精度);无该能力的品类(如门窗磁)不展示校准入口。
  • 权限前置:家庭管理员或具备设备编辑权限的成员;普通成员进入 C01 为只读态(可见状态与记录,按钮置灰+提示)。
  • 环境前置:向导内提示"校准前请将设备置于稳定环境≥30分钟"(温湿度类),光照类提示"准备已知照度参考环境"。

2. 页面结构与流程图

2.1 页面导航结构

入口A:M04-R01[校准传感器] ──► C01
入口B:我的→设备管理→[传感器] ──► C01
入口C:R01数据异常横幅[排查]──(结论=漂移)──► C01

C01 校准状态总览页
├─ 校准状态卡(未校准/已校准+偏差预览/校准过期/固件不支持)
├─ 当前参数摘要(偏移量/校准类型/校准时间/剩余有效期)
├─ [开始校准] ──► C02 校准方式选择
│ ├─ [单点偏移校准·推荐] ──► C03 单点校准向导(4步)
│ └─ [两点线性校准] ──► C04 两点校准向导(6步)
├─ [校准记录] ──► C05
└─ [恢复出厂校准] ──► C05(危险操作区)

C03 单点校准向导(步骤条 1/4~4/4)
├─ Step1 准备与环境确认(checklist勾选)
├─ Step2 稳定读数采集(30s采样窗口+波动检测)
├─ Step3 参考值输入(单位切换+异常强确认)
└─ Step4 确认与下发 ──► C06 下发进度页 ──(成功)──► 完成页[查看效果]回R01

C04 两点校准向导(步骤条 1/6~6/6)
├─ Step1 准备与环境确认
├─ Step2 低点采样(低温环境+参考值)
├─ Step3 高点采样(高温环境+参考值)
├─ Step4 精度预览(校准前后误差对比图)
├─ Step5 确认参数(斜率/截距可视化解读)
└─ Step6 下发 ──► C06

C06 下发与验证页
├─ 进度步骤:参数写入→设备重启采样→云端回读校验
├─ 成功:✓+新参数摘要+[完成]
└─ 失败:原因+自动回滚提示+[重试]/[联系客服]

C05 校准记录页
├─ 当前生效参数卡
├─ 历史记录时间线(操作人/时间/类型/前后值/来源)
├─ [恢复出厂校准](红色危险按钮+身份验证)
└─ 有效期进度条+到期提醒开关

2.2 核心状态机一:设备校准状态(设备×指标维度)

[未校准](出厂默认参数)

├──(完成校准向导并下发成功)──► [已校准]
│ │
│ ├──(有效期内)──► 正常展示"校准有效 · 剩余N天"
│ ├──(到期前7天)──► [临期] ──► M06通知渠道推送提醒 ──► [已校准·建议重校]
│ ├──(超过有效期)──► [校准过期](参数仍生效,状态徽标橙色,R01/C01提示重校)
│ │
│ ├──(再次校准成功)──► [已校准](有效期重置,旧记录归档)
│ └──(恢复出厂校准)──► [未校准](清空偏移参数,记录归档)

├──(下发失败)──► [校准失败] ──► 自动回滚至上一有效参数
│ ├──(回滚成功)──► 恢复之前状态(未校准/已校准)
│ └──(回滚失败·罕见)──► [参数异常] ──► 云端告警运维 + APP强提示联系客服

└──(固件升级后校准能力变化·M09联动)──► 重新拉取能力模型刷新可用校准类型

2.3 核心状态机二:校准下发事务(云端-固件)

[APP提交校准参数]

├──(前置校验:设备在线/非OTA中/权限/签名)──► [事务创建·参数暂存云端]
│ │
│ ├──(MQTT下行 calibrate/set {params, txId, signature})──► [等待固件ACK]
│ │ │
│ │ ├──(固件写入Flash成功→ACK)──► [等待验证采样]
│ │ │ │
│ │ │ ├──(固件应用新参数上报≥3条数据)──► [云端回读校验]
│ │ │ │ │
│ │ │ │ ├──(回读参数一致+数据合理性通过)──► [事务成功] ──► 更新校准状态+写记录+APP完成页
│ │ │ │ └──(校验失败)──► [事务失败]
│ │ │ │
│ │ │ └──(超时120s无有效数据)──► [事务失败·超时]
│ │ │
│ │ └──(固件写入失败→NACK/超时60s)──► [事务失败]
│ │
│ └──(校验不通过)──► [拒绝提交] ──► APP展示具体原因

└──[事务失败]──► (MQTT下行 calibrate/rollback {lastValidParams})──► [自动回滚]
├──(回滚ACK成功)──► 状态恢复 + APP提示"已回滚,设备可正常使用"
└──(回滚失败)──► [参数异常] 运维告警 + 工单入口


3. 页面级详细需求

C01 校准状态总览页(FR-1601)

页面目标:一屏看清该传感器校准健康度,低门槛进入校准流程。

页面元素:

元素规格与规则
顶部导航返回箭头 + 标题"传感器校准";设备名+房间名副标题
状态徽标卡四态:未校准(灰"使用出厂参数")/已校准(绿"校准有效·剩余N天")/校准过期(橙"已超有效期,建议重校")/固件不支持(蓝"升级固件后可校准");徽标含图标+文字不只靠颜色
当前偏差预览卡已校准态展示:当前偏移量/校准类型/校准时间/操作人;未校准态展示引导文案"校准可修正安装环境导致的读数偏差"
可校准指标列表按设备能力模型动态生成(温度/湿度/光照…);每指标:当前状态+精度规格(如±0.3℃);多指标设备逐指标独立校准
[开始校准]主按钮;固件不支持时替换为[升级固件]→M09;设备离线时置灰+提示"设备离线,请先恢复连接"→M02-Q04
[校准记录]次按钮 → C05
低电量提示条电量<20%时黄色横幅"电量较低,校准可能失败,建议先更换电池"+[仍要继续]
权限只读态普通成员:按钮全部置灰+顶部提示"仅管理员可执行校准"

逻辑规则:

  1. 数据来源:GET /calibration/{deviceId}/status(返回各指标校准状态、当前参数、有效期、能力声明、电量、固件支持版本);进入页面拉取+下拉刷新;
  2. 有效期倒计时:云端存储校准时间+品类有效期配置(默认365天);剩余天数客户端按本地时区计算展示;
  3. 能力检测:能力模型无 calibration 声明 → 页面整体替换为"该设备不支持校准"说明态(含品类原因,如门窗磁为开关量无校准概念);
  4. 固件版本比对:当前版本 < calibration_min_firmware → 状态徽标"固件不支持"+[升级固件]按钮(携带目标版本跳转 M09);
  5. 与 R01 联动:校准完成后返回 R01,实时数值立即反映新参数(固件端已生效,无需APP处理);
  6. 埋点:页面曝光、开始校准点击、各拦截态(离线/低电量/固件/权限)曝光与转化。

异常与边界:状态接口失败→展示缓存+重试按钮;设备校准中被移除(M02)→Toast"设备已移除"返回列表;多指标设备部分指标不可校准→逐项独立展示状态。

验收要点:四态徽标与云端一致;能力/固件/电量/权限/离线五重前置拦截正确;多指标独立状态展示;只读态无操作入口。


C02 校准方式选择页

页面目标:帮助用户按需求选择合适校准方式,明示差异与成本。

页面元素:

元素规格与规则
方式卡片:单点偏移"推荐"角标;说明"修正整体读数偏高/偏低,约2分钟,适合绝大多数场景";适用指标标签(全部可校准指标)
方式卡片:两点线性说明"修正全量程线性偏差,需准备两个不同温度环境,约15~30分钟";仅温度类指标可选(能力模型 two_point 声明);不可用时置灰+原因
对比说明折叠面板表格对比:耗时/所需准备/修正能力/适用场景
准备清单通用清单:设备在线、电量充足、参考工具(标准温度计/权威气象App数据)、稳定环境≥30min
[下一步]进入对应向导;[返回]回C01

逻辑规则:两点校准入口仅当能力模型声明支持且指标=温度时可用;已有两点校准记录的设备再次单点校准会覆盖为单点参数——选择时弹窗告知"将替换现有两点校准参数"。

验收要点:方式可用性按能力模型动态正确;覆盖告知弹窗触发;准备清单多语言完整。


C03 单点偏移校准向导(FR-1602)

页面目标:4步引导完成偏移校准,采样稳定性与参考值可信度双保障。

步骤流程:

步骤内容交互与校验
Step1 准备确认checklist:①设备已置于稳定环境≥30分钟 ②已准备可信参考值来源 ③设备电量充足;逐项勾选后[下一步]激活勾选状态仅本次会话有效;[查看参考值来源建议]展开H5说明(标准温度计/当地气象局数据/同房间已校准设备)
Step2 稳定采样实时读数大字展示+30s采样窗口;波动检测:30s内极差>阈值(温度0.5℃/湿度3%)判定不稳定,提示"环境波动较大"→[重新采样]/[强制继续](记录标记forced)MQTT订阅实时数据;采样进度环形动画;强制继续需二次确认且写入记录
Step3 参考值输入数值输入框+单位切换(℃/℉联动M04设置);键盘类型按locale(德/法小数逗号自动转换);输入即预览"当前读数 vs 参考值 → 偏差 X"校验:参考值在设备量程内;偏差超量程50%→红色强确认弹窗"参考值与当前读数差异过大(X),请确认输入正确";必填
Step4 确认下发汇总卡:设备/指标/稳定读数均值/参考值/计算偏移量/校准后预览读数;[确认并下发]→C06;[返回修改]回Step3偏移量=参考值-采样均值(保留设备精度位数);确认页明示"参数将写入设备固件"

逻辑规则:

  1. 采样均值计算:30s窗口内剔除异常标记数据(M04 anomaly)后取均值;有效样本<10条→提示采样失败重试;
  2. 向导中断保护:任意步骤退出弹窗"校准未完成,进度将不保留";Step2采样数据本地暂存防APP闪退丢失(恢复仅限同一会话5分钟内);
  3. 计算与下发:APP将偏移量提交 POST /calibration/{deviceId}/apply(云端二次校验量程/精度步进后进入下发事务);APP不直接下发MQTT;
  4. 埋点:各步骤到达率/流失率、波动强制继续占比、参考值异常拦截次数、全流程耗时。

异常与边界:Step2期间设备离线→中断向导提示恢复连接后重来;Step3切换单位自动换算已输入值;提交瞬间设备进入OTA(M09锁定)→云端拒绝返回错误码,APP提示稍后再试。

验收要点:四步流转+中断保护;波动检测阈值触发与强制继续标记;参考值强确认拦截;单位换算与locale键盘正确;偏移量计算精度正确。


C04 两点线性校准向导(FR-1603)

页面目标:6步完成温度类传感器全量程线性校准,向普通用户屏蔽数学概念。

步骤流程:

步骤内容交互与校验
Step1 准备确认checklist:①可制备低温环境(如冰水混合物0℃附近)②可制备高温环境(如恒温40℃附近,勿超设备量程)③两点间隔建议≥20℃;附安全提示(勿将设备浸入液体除非IP等级允许)展开[为什么需要两个点]图文说明
Step2 低点采样设备置于低温环境→实时读数+30s采样窗口(同C03波动检测)→输入低点参考值参考值需处于量程下1/3区间,否则提示"低点建议靠近量程下限"
Step3 高点采样设备移至高温环境→提示"等待读数稳定(通常需10~20分钟)"→用户点击[读数已稳定]后开始30s采样→输入高点参考值高点参考值需处于量程上1/3区间;高低点差<15℃→警告"两点间距过小将放大误差,建议重新制备环境"+[仍要继续]
Step4 精度预览图表对比:校准前(两点实测偏差连线)vs 校准后(理论归零);文案"校准后全量程最大误差预计从 ±X℃ 降至 ±Y℃"计算斜率k=(高参考-低参考)/(高采样-低采样)、截距b;k超出合理区间[0.8,1.25]→提示传感器可能存在硬件异常,建议联系售后+可强制继续(记录标记suspect)
Step5 确认参数通俗化展示:"读数将被按比例修正";专业参数折叠面板(k/b值、采样原始数据)供高级用户核对;[确认并下发]→C06覆盖既有校准参数的告知(若有)
Step6 下发直接进入C06事务

逻辑规则:

  1. 两点采样数据全程本地暂存+云端草稿保存(POST /calibration/draft),支持24h内断点续做(向导页展示"继续上次未完成的校准"入口);
  2. k/b计算在APP端预览、云端提交时重算校验(双端一致性);
  3. 硬件异常判定(k越界)仅提示不阻断,标记 suspect 写入记录供售后排查;
  4. 环境制备指引为建议性质,免责声明"请参考设备说明书操作,因不当操作造成的损坏不在保修范围"(H5链接)。

验收要点:六步流转+草稿续做;高低点区间校验与间距警告;k越界suspect标记;精度预览图表与计算一致;覆盖告知。


C06 下发与验证页(FR-1604)

页面目标:透明展示"写入-验证-生效"事务过程,失败可回滚可解释。

页面元素:

元素规格与规则
进度步骤条三步:①参数写入设备 ②设备应用新参数(重启采样,约30~60s)③云端验证;每步loading/✓/✘
实时状态文案"正在写入校准参数…"/"设备正在应用新参数,请稍候"/"正在验证校准效果…"
成功态绿色✓+新参数摘要卡(类型/偏移量或k,b/生效时间/有效期至)+[完成]回C01、[查看实时数据]回R01
失败态红色✘+失败原因(写入失败/验证超时/回读不一致)+回滚状态提示"设备已自动恢复上一校准参数,可正常使用"+[重试]/[联系客服](携带txId上下文→M10工单)
超时兜底全事务120s超时判定;进度页轮询+MQTT双通道监听

逻辑规则:

  1. 事务状态来源:MQTT calibrate/tx/{txId} 推送(写入ACK/验证进度/最终结果)+ HTTP GET /calibration/tx/{txId} 轮询兜底(2s间隔);
  2. 验证标准:云端回读固件参数与提交一致 + 新参数生效后连续3条上报数据合理性校验(与参考值偏差在预期精度内);
  3. 回滚自动化:失败后云端自动下发 rollback(状态机2.3),APP展示回滚结果;回滚失败转"参数异常"态强提示联系客服;
  4. 事务幂等:同 txId 重复提交去重;事务进行中禁止发起新校准(C01按钮置灰"校准进行中");
  5. 期间设备离线:事务标记失败并回滚,恢复在线后云端校验固件实际参数与云端记录一致性(对账),不一致自动修复+告警运维。

验收要点:三步进度真实反映事务状态;失败三原因注入测试;自动回滚真机验证(失败后设备读数恢复);事务幂等与并发锁定;断网/离线场景对账修复。


C05 校准记录页(FR-1605)

页面目标:完整追溯校准历史,支持一键恢复出厂与有效期管理。

页面元素:

元素规格与规则
当前生效参数卡指标+校准类型+参数值(偏移量或k/b)+校准时间+操作人+有效期至;[到期提醒]开关(默认开,到期前7天经M06渠道推送)
历史时间线每条:时间+类型(单点/两点/恢复出厂/云端对账修复)+前后参数对比+操作人+标记(forced强制采样/suspect硬件疑似异常/rollback回滚);点击展开详情(采样原始数据摘要)
[恢复出厂校准]红色危险按钮(危险操作区);弹窗告知:"将清除所有校准参数,恢复出厂精度(±规格值);已配置的告警阈值(M04-R03)建议校准后重新核对"→身份验证(复用M01验证服务)→POST /calibration/{deviceId}/factory-reset→走C06同款下发事务
有效期进度条可视化剩余有效期占比;过期段橙色
空态"暂无校准记录,当前使用出厂参数"+[开始校准]

逻辑规则:

  1. 记录来源:用户校准/恢复出厂/云端对账自动修复三类均写入,操作人字段区分(用户昵称/系统);
  2. 记录保留:云端永久保留(设备生命周期内);APP分页拉取每页20条;
  3. 恢复出厂权限:仅家庭管理员;需身份验证(短信/邮箱验证码或密码);
  4. suspect记录售后联动:详情页[联系售后]→M10工单自动携带suspect参数上下文;
  5. 到期提醒去重:同一校准周期仅提醒1次(提醒后记录已提醒标记)。

验收要点:三类记录完整可追溯;恢复出厂身份验证+下发事务+R01数值回退验证;标记体系(forced/suspect/rollback)正确;到期提醒单次触发。


4. 通用交互与视觉规范(UI设计输入,FR-1606)

  1. 双主题:浅色/深色两套;状态徽标四色(灰/绿/橙/蓝)深色模式调整亮度满足WCAG AA;向导步骤条、精度预览图表双主题适配。
  2. 组件清单:状态徽标卡、指标列表项、方式选择卡片(推荐角标/置灰态)、向导步骤条(横向4~6步)、checklist勾选项、采样实时读数卡(大数值+波动检测动画)、参考值输入框(单位切换/异常强确认弹窗)、精度对比图(校准前后双折线)、参数汇总卡、事务进度步骤条(三步态)、记录时间线条目(标记徽章)、危险操作区(红色按钮+确认弹窗,复用M02移除设备样式)、有效期进度条。
  3. 动效:采样窗口环形进度+读数实时跳动(300ms节流);波动超标时读数卡抖动提示1次;事务步骤切换渐入;成功态✓打勾动画;徽标状态切换渐变。
  4. 多语言:向导全部步骤文案、checklist、单位(℃/℉/lux/%RH)、免责声明、记录字段资源文件;德/法预留1.4倍空间;数值输入locale适配(小数逗号);免责声明法务多语言审定。
  5. 无障碍:步骤条支持读屏播报当前步骤/总步骤;checklist焦点顺序正确;状态不仅靠颜色(图标+文字);强确认弹窗焦点锁定在弹窗内;采样动画提供"减弱动效"模式。
  6. 响应式:平板/折叠屏宽屏下向导采用左步骤条+右内容区布局;精度对比图宽屏全幅展示。

5. 客户端技术要求(Flutter)

  1. MQTT 订阅:复用 M02/M04 连接层;订阅 sensor/realtime/{deviceId}(采样用)、calibrate/tx/{txId}(事务进度);断连重连期间采样步骤自动暂停并提示(采样窗口顺延,超3次断连判定采样失败)。
  2. 状态管理:Riverpod/BLoC;向导多步骤用 StateNotifier 管理步骤状态机+本地暂存(C04草稿同步云端);事务进度 StreamProvider(MQTT)+Timer轮询兜底;采样滑动窗口计算(30s、极差、均值、异常剔除)封装 SamplingEngine 工具类,单元测试覆盖。
  3. 数值处理:单位换算(℃↔℉)统一走 UnitConverter(与M04/M05共用);精度按能力模型步进round;locale数值解析(逗号/点小数)用 intl 包 NumberFormat;k/b浮点计算注意精度(double,保留6位有效)。
  4. 本地暂存:Hive 存储向导草稿(C04两点数据,TTL 24h,键=deviceId+userId+draftVersion);闪退恢复同会话5分钟内C03数据;草稿含采样原始序列(脱敏无PII)。
  5. 深链路由:注册 ehome://calibration/{deviceId}?metric= 路由;入口A/B/C携带上下文;事务完成深链回跳R01携带refresh标记。
  6. 性能:采样实时渲染节流300ms;精度预览图表复用 EhomeChartWidget(M05组件库);向导页预加载下一步资源。
  7. 安全:校准提交走HTTPS;MQTT下行签名由云端生成(APP不接触签名密钥);本地草稿不加密敏感级(无PII)但随账号数据清除(M01注销联动);Sentry上报脱敏。
  8. 埋点:漏斗(C01曝光→开始→各步骤→提交→成功)、失败原因分布、forced/suspect标记率、恢复出厂使用率、全流程耗时P50/P90;支撑校准成功率运营监控(目标≥95%)。

6. 云端需求(校准服务)

6.1 接口清单

接口方法说明
/calibration/{deviceId}/statusGET校准状态总览(各指标状态/当前参数/有效期/能力声明/固件支持版本/电量/OTA锁定状态)
/calibration/{deviceId}/applyPOST提交校准参数(offset或k,b);云端二次校验(量程/步进/事务冲突/设备状态)→创建下发事务→返回txId
/calibration/tx/{txId}GET事务状态查询(步骤进度/结果/失败原因码);MQTT推送优先,本接口轮询兜底
/calibration/{deviceId}/factory-resetPOST恢复出厂校准(身份验证凭证校验→下发事务)
/calibration/draftPOST/GET/DELETE两点校准草稿云端暂存(24h TTL)
/calibration/{deviceId}/recordsGET校准记录分页查询(含标记/操作人/前后参数)
/calibration/{deviceId}/reminderPUT到期提醒开关设置
(MQTT下行)calibrate/set参数写入指令(params+txId+签名);QoS1;固件ACK/NACK回报
(MQTT下行)calibrate/rollback回滚指令(lastValidParams+txId+签名)
(MQTT上行)calibrate/tx/{txId}事务进度推送(写入ACK/验证数据/最终结果)→转发APP
(内部)校准事务管理器事务状态机、超时控制(ACK 60s/全事务120s)、幂等去重、自动回滚、结果落库
(内部)参数对账任务每日全量比对固件回读参数与云端记录;漂移自动修复(走静默下发事务)+告警运维;对账修复写入记录(操作人=系统)

6.2 关键策略

  1. 事务一致性:以 txId 为主键的分布式事务记录(暂存参数→ACK→验证→提交/回滚全状态落库);任一环节失败自动回滚至 lastValidParams;回滚失败升级运维告警+工单;事务进行中锁定该设备校准操作。
  2. 双重校验:APP端预校验(体验快速反馈)+云端强校验(量程/步进精度/k合理区间/权限/设备在线/非OTA锁定/固件版本支持);校验规则云端配置热更新(新品类接入不改代码)。
  3. 参数安全存储:生效参数与历史记录永久存储(设备生命周期);参数下发指令签名(HMAC,密钥云端KMS管理),固件验签防伪造指令。
  4. 有效期管理:品类级有效期配置表(默认365天,云端可调);到期提醒任务扫描(提前7天)→经M06通知渠道分发(尊重免打扰策略,但校准提醒为提示级P3);过期不失效仅标记。
  5. 对账与自愈:每日对账任务(固件参数回读 vs 云端记录);不一致自动静默修复并写记录;连续对账失败3次转人工工单。
  6. 性能SLA:status接口P99≤300ms;apply创建事务≤500ms;事务全程(写入→验证)P90≤90s;记录查询P99≤500ms。
  7. 运营监控看板:校准成功率(目标≥95%)、失败原因分布(写入失败/验证超时/回读不一致/回滚失败)、forced/suspect标记率(硬件质量信号反馈供应链)、恢复出厂率;suspect率超阈值自动告警硬件团队。

7. 验收标准核对表

需求验收标准本设计落点
FR-1601四态徽标准确;能力/固件/电量/权限/离线五重拦截;多指标独立状态C01;status接口;状态机2.2
FR-1602四步向导闭环;波动检测+强制标记;参考值强确认;单位/locale正确C03;SamplingEngine;UnitConverter
FR-1603六步向导+草稿续做;高低点区间校验;k越界suspect;精度预览准确C04;draft接口;双端计算一致性
FR-1604事务三步透明;失败自动回滚真机验证;幂等与锁定;对账自愈C06;事务管理器;回滚指令
FR-1605三类记录可追溯;恢复出厂身份验证+数值回退;到期提醒单次C05;records接口;提醒任务
FR-1606双主题/7语种/无障碍/响应式全达标第4章;组件清单;无障碍规范

QA测试要点(专项):

  1. 校准全链路真机验证:单点/两点校准→下发→固件生效→R01数值变化符合偏移量→语音生态(M11)读数同步一致(边缘校准三端一致性核心验证);
  2. 事务失败注入:固件写入NACK/验证超时/回读不一致三类注入→自动回滚→设备读数恢复上一参数;回滚失败→参数异常态+运维告警;
  3. 采样引擎:波动数据注入(极差超阈值)触发不稳定提示;异常标记数据剔除正确;有效样本不足判定;断连顺延与3次判定;
  4. 参考值校验:量程外/偏差>50%强确认拦截;单位切换换算;德/法小数逗号输入解析;
  5. 两点校准边界:高低点差<15℃警告;k超出[0.8,1.25]suspect标记;草稿24h续做与过期清理;断点闪退恢复;
  6. 前置拦截矩阵:离线/低电量/OTA中/固件过旧/无权限/事务进行中六种状态逐项验证按钮态与引导跳转;
  7. 恢复出厂:身份验证失败拦截;下发事务;R01数值回退出厂;M04-R03阈值核对提示;记录归档完整;
  8. 对账自愈:人为篡改固件参数→次日对账修复+记录(操作人=系统);连续3次失败转工单;
  9. 多语言与无障碍:7语种向导文案无截断;读屏步骤播报;减弱动效模式;深色模式徽标对比度;
  10. 兼容与性能:iOS 13+/Android 7.0+真机;status接口100并发P99≤300ms;采样渲染节流帧率≥55fps。

8. 依赖与风险

说明责任/时点
固件校准协议calibrate/set、rollback指令格式、Flash参数区、验签实现、回读接口——本模块基石固件团队M1冻结协议;M2联调(最大联调风险项,预留2周缓冲)
设备能力模型calibration能力声明(类型/指标/量程/步进/最低固件版本)由M02能力模型扩展M1能力模型评审纳入
M04 实时数据流采样窗口依赖实时推送稳定性;异常标记数据剔除联动M1接口契约;M2联调
M09 OTA校准最低固件版本引导升级;OTA锁定期间禁止校准事务M2联调
M06 告警通知到期提醒经M06渠道分发(P3提示级);校准后阈值核对提示M2并行
M01 账号/权限恢复出厂身份验证;管理员/成员权限角色M1已交付
M02 权限体系设备编辑权限判定M1已交付
参考值可信度用户参考值不准导致"越校越偏"——向导强提示+异常拦截缓解,仍存在客诉风险帮助文档(M10 FAQ)明确参考值来源建议;客服话术培训
传感器硬件个体差异suspect标记率若超预期需反馈供应链/固件滤波调优运营期监控看板跟踪
低功耗设备约束电池设备校准期间高频采样增加功耗;固件侧限定校准会话最长时长固件团队评估;向导提示校准期间耗电

以上为 M07 传感器校准(FR-1601~1606)完整详细需求设计:单点/两点双向导、边缘校准三端一致、下发事务与自动回滚、记录追溯与恢复出厂、有效期管理均已落点;与 M01/M02/M04/M06/M09/M10/M11 文档格式及衔接协议一致(能力模型同源、MQTT复用、权限与身份验证联动),可直接交付 UI 与开发。如确认无误,可按同样格式继续输出其余模块(如 M08 OTA升级、M09 定时任务等)。