Skip to main content

eHome App 端详细需求设计文档

M04 实时监测(对应需求:FR-1301~1306)

项目内容
所属项目eHome 智能家居硬件配套 APP + 云端后台定制开发项目
设计依据《eHome智能家居项目需求文档(PRD V1.1)》实时监测章节、第8章、NFR-02(状态同步≤3s)/NFR-06(兼容性);《eHome项目页面功能工时费用明细表》M04模块
范围说明本模块覆盖传感器类设备(温湿度/光照/人体存在/门窗磁/水浸/烟雾等)的实时数据展示、历史趋势图表、阈值告警配置与记录、设备详情页联动;不包含非传感器类设备的控制页(属 M04-Q01 通用控制)、场景自动化触发配置(属 M06)、推送通道本身(属 M10,本模块仅消费推送事件)
优先级P0(MVP必须;传感器为 eHome 核心品类,实时监测是用户感知产品价值的第一触点)
里程碑M1 MVP开发(依赖 M01 登录态、M02 家庭/房间/设备列表、M03 配网绑定;与固件团队 M1 联调传感器上报协议)
文档用途直接交付 UI 设计、Flutter 开发(APP端)、云端开发、固件联调、测试QA

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

需求编号功能项
FR-1301传感器设备详情页(实时数值卡片、单位、信号/电量、最近更新时间)
FR-1302历史趋势图表(多时间粒度切换、手势缩放/滑动、异常点标注)
FR-1303阈值告警配置(上下限、使能开关、通知方式选择、冲突校验)
FR-1304告警记录列表(时间线、已读/未读、跳转详情、批量标记)
FR-1305传感器离线/异常状态处理(降级展示、排查引导、联动 M02-Q04)
FR-1306实时监测流程 UI 设计(图表组件、双主题、7语种、无障碍)

1. 模块概述与设计原则

1.1 模块范围

序号页面/功能项需求编号类型优先级
1传感器设备详情页(实时数据+快捷入口)FR-1301APPP0
2历史趋势页(全功能图表+导出)FR-1302APP+云端P0
3阈值告警配置页(规则编辑+预览)FR-1303APP+云端P0
4告警记录页(时间线+筛选+批量操作)FR-1304APP+云端P0
5离线/异常降级态与排查引导FR-1305APPP0
6实时监测 UI 规范(图表/卡片/动效/多语言)FR-1306UIP0

边界与衔接说明:

  • 入口A:M02 设备列表点击传感器类设备 → 本模块 R01;
  • 入口B:M02-Q04 离线排查【查看传感器数据】→ R01(携带离线上下文,展示降级态);
  • 入口C:M10 推送告警通知点击 → R04 告警记录页(定位到该条记录)或 R01(直达设备);
  • 出口:R01/R02/R03/R04 均支持返回上级;R01 内【更多设置】→ M02-Q04 设备信息/重配网/移除;R03 保存后触发云端规则下发,联动 M06 场景可选传感器条件。

1.2 设计原则

  • 实时性优先:传感器数值从设备上报到 APP 展示端到端 ≤3s(NFR-02);图表加载首屏 ≤1s(本地缓存+增量拉取);超时/离线态明确告知而非空白。
  • 数据可信:所有数值带单位、精度、时间戳;异常值(超量程/NaN/突变)前端过滤并标记"数据异常",不参与图表绘制但保留原始记录供排查。
  • 告警闭环:告警必须有"触发→通知→确认→恢复"完整生命周期;未读告警在列表/Tab 红点强提醒;已恢复告警自动标记但保留历史记录。
  • 低功耗友好:传感器多为电池设备,APP 不主动高频轮询;订阅 MQTT 主题按需接收;历史数据按粒度聚合拉取(1h/1d/1w/1m),避免拉取原始秒级数据。
  • 可访问性:图表不仅靠颜色区分曲线(形状/标签辅助);数值卡片支持读屏;阈值滑块支持键盘微调。
  • 双主题 + 7语种:全部文案(含单位、告警文案、排查引导)走多语言资源文件;图表配色适配深色模式。

1.3 用户与前置条件

  • 用户状态:必须已登录(M01);未登录拦截跳转登录页。
  • 设备前置:传感器已绑定且归属当前家庭(M02/M03);未绑定设备不可见。
  • 权限前置:告警通知需 M10 推送权限;未授权时 R03 通知方式选项置灰+引导开启。
  • 受限账号(M01-P09):允许查看数据与配置告警,但 R03 保存时提示"账号未补绑手机/邮箱,告警通知可能无法送达"。

2. 页面结构与流程图

2.1 页面导航结构

入口A:M02设备列表[传感器设备] ──► R01
入口B:M02-Q04离线排查[查看数据] ──► R01(降级态)
入口C:M10推送点击 ──► R04(定位记录)或 R01

R01 传感器设备详情页
├─ 实时数值卡片(主指标+副指标+信号/电量+更新时间)
├─ [历史趋势] ──► R02
├─ [告警设置] ──► R03
├─ [告警记录](未读红点)──► R04
├─ 离线/异常横幅(FR-1305)──► 排查引导 / M02-Q04
└─ [更多设置] ──► M02-Q04

R02 历史趋势页
├─ 时间粒度切换(1h/1d/1w/1m)
├─ 手势交互(缩放/滑动/长按查值)
├─ 异常点标注 + 图例开关
└─ [导出数据](CSV,P1预留)

R03 阈值告警配置页
├─ 指标选择(温度/湿度/光照等,按设备能力动态生成)
├─ 上下限滑块+数值输入(联动校验)
├─ 使能开关
├─ 通知方式(APP推送/短信/邮件,按M10能力动态)
├─ 生效时段(全天/自定义时段,P1预留)
└─ [保存] ──► 云端规则下发 ──► Toast成功 ──► 回R01

R04 告警记录页
├─ 时间线列表(未读加粗+蓝点)
├─ 筛选(设备/指标/时间范围/已读未读)
├─ 单条点击 ──► R01(带时间锚点跳转R02对应时刻)
├─ [全部已读] / [批量删除]
└─ 空态:"暂无告警记录"

2.2 核心状态机一:传感器数据流(设备→云端→APP)

[设备上报]

├──(MQTT publish sensor/data)──► [云端接收]
│ │
│ ├──(数值校验:量程/NaN/突变)──► [有效数据]
│ │ │
│ │ ├──(写入时序数据库)──► [持久化]
│ │ ├──(推送 MQTT sensor/realtime/`{deviceId}`)──► APP R01/R02 实时更新
│ │ └──(触发告警规则引擎)──► [告警生成] ──► M10推送 + R04写入
│ │
│ └──(校验失败)──► [异常数据]
│ │
│ ├──(写入异常日志,不入库)──► 云端监控看板
│ └──(推送 sensor/anomaly/`{deviceId}`)──► APP R01 标记"数据异常"

└──(设备离线 >5min)──► [离线状态]

├──(推送 device/offline/`{deviceId}`)──► APP R01 降级横幅
└──(离线 >24h)──► 触发离线告警(复用告警链路)

2.3 核心状态机二:告警生命周期

[规则配置完成]

├──(实时数据触发阈值)──► [告警触发]
│ │
│ ├──(生成告警记录,状态=未读/未恢复)──► R04新增 + M10推送
│ │ │
│ │ ├──(用户点击推送/R04记录)──► [已读](R04标记+红点消除)
│ │ │ │
│ │ │ ├──(数据恢复正常)──► [已恢复](自动标记,R04显示恢复时间)
│ │ │ └──(持续异常)──► 保持[未恢复],重复告警抑制(同规则10min内不重复推送)
│ │ │
│ │ └──(用户手动[忽略])──► [已忽略](保留记录,不再推送)
│ │
│ └──(规则被禁用/删除)──► 后续数据不再触发,已有未恢复告警自动标记[已失效]

└──(设备离线)──► 告警暂停,恢复在线后重新评估


3. 页面级详细需求

R01 传感器设备详情页(FR-1301)

页面目标:一眼获取传感器核心实时状态,快速进入历史/告警/设置。

页面元素:

元素规格与规则
顶部导航返回箭头 + 设备名(可编辑,同 M02-Q04 命名规则);右侧[更多设置]→ M02-Q04
离线/异常横幅设备离线 >5min → 黄色横幅"设备已离线,数据更新于 XX:XX"+[排查问题]→ M02-Q04;数据异常 → 橙色横幅"最近数据异常,仅供参考"+[查看详情]→ R02 异常标注视图
主数值卡片大字号实时数值+单位(如"24.5 °C");数值变化时微动效(300ms渐变);超过告警阈值时数值变红+闪烁1次;更新时间"更新于 12:34:56"(相对时间 >1min 显示绝对时间)
副指标区多指标横向滚动卡片(如湿度/光照/电池);每卡:图标+数值+单位;电池 <20% 红色警示
信号/电量条信号强度三档图标+RSSI数值(调试模式可见);电池百分比+预估剩余天数(基于近7天平均功耗)
快捷入口组[历史趋势]→R02;[告警设置]→R03;[告警记录]→R04(未读数角标)
底部说明"数据每 X 秒更新一次"(按设备上报频率动态显示);"数据仅供参考,不作为医疗/安全依据"免责声明

逻辑规则:

  1. 数据来源:优先订阅 MQTT sensor/realtime/{deviceId} 实时推送;首次进入/回前台时 HTTP 拉取最新快照兜底;推送断连 >10s 自动切轮询(5s间隔),恢复后切回推送;
  2. 数值格式化:按设备能力模型定义精度(温度±0.1、湿度±1%、光照整数);单位跟随系统 locale(℃/℉ 可切换,设置项在 M02-Q04);
  3. 异常值处理:云端标记 anomaly=true 的数据,APP 展示灰色斜体+"⚠️"图标,不计入图表有效点;连续3条异常 → 触发离线/异常横幅;
  4. 埋点:页面停留时长、快捷入口点击率、离线横幅曝光。

异常与边界:MQTT 断连且 HTTP 失败 → 展示最后缓存值+"数据可能不是最新"提示;设备被移除(M02)→ 页面 Toast"设备已移除"→ 自动返回列表。

验收要点:实时数值 ≤3s 更新(抓包验证);离线/异常双横幅正确触发;数值格式化与单位切换正确;异常值视觉区分明确。


R02 历史趋势页(FR-1302)

页面目标:可视化传感器数据变化规律,支持异常回溯与数据导出。

页面元素:

元素规格与规则
时间粒度Tab1小时/24小时/7天/30天;默认24小时;切换时图表平滑过渡动画
折线图区域单/多指标曲线(图例控制显隐);X轴时间/Y轴数值自适应刻度;网格线浅色;深色模式自动反色
手势交互双指缩放(最小粒度15min/最大30天);单指滑动平移;长按弹出十字准星+精确数值气泡(时间+各指标值)
异常点标注异常数据点用空心圆+虚线连接;点击异常点弹出"数据异常,原始值: XX"+[查看原始日志](P1)
告警事件标记触发告警的时刻在图表上标红色竖线+小三角;点击跳转 R04 对应记录
统计摘要卡当前粒度下:平均值/最大值/最小值/波动幅度;异常点数
[导出数据]P1预留按钮;P0阶段置灰+Toast"即将支持"

逻辑规则:

  1. 数据拉取策略:按粒度调用 GET /sensors/{id}/history?granularity=1h&start=&end=;返回聚合数据点(1h粒度返回分钟级均值、24h返回小时级均值等);本地 LRU 缓存最近3次查询结果;
  2. 图表渲染:使用 fl_chart 或 syncfusion_flutter_charts;大数据量(>1000点)启用降采样(LTTB算法)保特征;首屏渲染 ≤1s;
  3. 时间范围边界:1h粒度最多查最近24h;24h最多查最近30d;超出范围自动截断并提示;
  4. 异常点与告警标记数据随历史接口一并返回,无需额外请求;
  5. 横屏模式:图表区域全屏,摘要卡收起为浮层。

验收要点:四粒度切换流畅无卡顿;手势缩放/滑动/长按查值精准;异常点与告警标记位置准确;大数据量降采样不失真;深色模式配色合规。


R03 阈值告警配置页(FR-1303)

页面目标:让用户低门槛配置个性化告警规则,避免误报漏报。

页面元素:

元素规格与规则
指标选择器下拉/分段控件,列出该传感器支持的告警指标(温度/湿度/光照/门窗开合等);选中后下方动态加载对应配置项
阈值设置区双滑块(下限/上限)+ 数值输入框联动;滑块步进按指标精度(温度0.5、湿度1%);输入框失焦时校验:下限<上限、在设备量程内;越界自动修正+Toast提示
使能开关默认开启;关闭时整个配置区置灰,保存后规则停用
通知方式组复选框:APP推送(必选,不可取消)/ 短信 / 邮件;短信/邮件未配置时置灰+[去配置]→ M01-P09 补绑页;推送权限未授+[去开启]→ 系统设置引导
生效时段P0固定"全天";P1扩展自定义时段(工作日/周末/自定义cron)
预览文案动态生成自然语言描述:"当温度 <18°C 或 >30°C 时,通过APP推送通知我";多语言
[保存]主按钮;校验通过后 POST /sensors/{id}/alerts;成功 Toast"告警规则已保存"→ 回 R01;失败展示错误原因

逻辑规则:

  1. 规则冲突校验:同一设备同一指标不允许重叠区间(如同时设"<20"和"<25");保存前云端校验,冲突返回 CONFLICT 错误码+具体冲突规则ID,APP 高亮冲突项;
  2. 通知渠道可用性:短信/邮件需 M01 已绑定且验证通过;未绑定选项置灰+引导;推送权限检测用 permission_handler;
  3. 规则下发:保存成功后云端异步下发至规则引擎(≤2s生效);下发失败自动重试3次,仍失败标记规则"下发异常",R01 告警设置入口旁显示黄色感叹号;
  4. 编辑模式:从 R01 进入为新建;从 R04 告警记录[修改规则]进入为编辑,预填现有规则;
  5. 受限账号提示:保存时若账号未补绑手机/邮箱,弹窗"告警通知可能无法送达,建议先补绑"+[仍要保存]/[去补绑]。

验收要点:滑块与输入框双向联动无误;量程/冲突校验全覆盖;通知渠道置灰与引导正确;规则下发 ≤2s 生效;预览文案多语言准确。


R04 告警记录页(FR-1304)

页面目标:高效管理告警历史,快速定位问题时刻,闭环告警处理。

页面元素:

元素规格与规则
筛选栏设备下拉(当前家庭所有传感器)/ 指标下拉 / 时间范围选择器 / 状态筛选(全部/未读/未恢复);默认"全部+最近7天"
时间线列表每条:告警图标+指标名+触发值+阈值+时间(相对/绝对智能切换);未读项左侧蓝点+文字加粗;未恢复项右侧红色"未恢复"标签;已恢复项绿色"已恢复"+恢复时间
单条点击→ R01 设备详情页,并自动跳转 R02 历史图表定位到告警触发时刻(深链参数 timestamp)
[全部已读]顶部按钮;点击后当前筛选结果全部标记已读;红点即时消除
[批量删除]长按进入多选模式;勾选后底部[删除];删除二次确认;仅允许删除已恢复/已忽略记录,未恢复记录禁止删除
空态插画+"暂无告警记录"+[调整筛选]
加载更多分页加载(每页20条);滚动到底部自动加载;加载中骨架屏

逻辑规则:

  1. 数据来源:GET /alerts?deviceId=&metric=&status=&start=&end=&page=;支持游标分页避免深翻页性能问题;
  2. 未读计数:进入页面拉取未读数,更新 Tab 红点与 R01 入口角标;[全部已读]后即时刷新计数;
  3. 告警跳转:点击记录携带 alertId + timestamp 跳转 R01;R01 接收参数后自动打开 R02 并定位图表时间点;
  4. 删除保护:未恢复告警禁止删除(防止丢失活跃问题);删除操作记录审计日志;
  5. 推送联动:M10 推送点击携带 alertId,APP 启动/回前台后直跳 R04 并高亮该条记录(3s 高亮动画)。

验收要点:筛选组合全覆盖;未读标记与计数实时准确;跳转 R02 时间定位精准;删除保护生效;推送点击直达高亮。


R05 离线/异常降级态与排查引导(FR-1305)

触发条件与处理:

状态触发条件R01 展示用户操作
短暂离线设备 >5min 未上报黄色横幅"设备已离线,数据更新于 XX:XX"[排查问题]→ M02-Q04 离线排查流程
长期离线>24h 未上报红色横幅+触发离线告警(复用告警链路)同上
数据异常连续3条 anomaly=true橙色横幅"最近数据异常,仅供参考"[查看详情]→ R02 异常标注视图
电量极低电池 <5%数值卡片电池图标红色闪烁+横幅"电量极低,请尽快更换电池"[查看更换指引]→ H5(M10 帮助中心)
固件过旧版本号 < 最低兼容版本蓝色横幅"建议升级固件以获得完整监测功能"[去升级]→ M09 OTA 流程

逻辑规则:

  1. 降级态不影响历史数据查看(R02 仍可查离线前数据);
  2. 离线恢复后横幅自动消失(MQTT device/online 事件驱动);
  3. 排查引导内容与 M02-Q04 离线排查模块复用,避免重复维护;
  4. 所有横幅支持读屏焦点捕获与语音播报。

验收要点:五种降级态触发条件准确;横幅自动消失/出现及时;排查跳转闭环;读屏兼容。


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

  1. 双主题:浅色/深色两套;图表曲线色板深色模式自动调整对比度;告警红/恢复绿/异常橙在双主题下均满足 WCAG AA;数值卡片背景色随主题切换。
  2. 组件清单:实时数值卡片(主/副)、信号/电量条、离线/异常横幅(黄/橙/红/蓝四色)、时间粒度Tab、折线图(含手势/准星/异常点/告警标记)、阈值双滑块+输入框、通知方式复选组、告警时间线条目(未读/未恢复/已恢复三态)、筛选栏、空态插画。
  3. 动效规范:数值变化渐变300ms;图表切换淡入200ms;告警触发时数值闪烁1次(避免频繁闪烁干扰);横幅滑入/滑出250ms;列表项入场交错动画。
  4. 多语言:单位符号(°C/°F/%/lux)跟随 locale;告警预览文案、排查引导、免责声明全部资源文件;德/法预留1.4倍空间;图表Y轴刻度标签防溢出截断。
  5. 无障碍:图表提供"数据摘要"文本替代(读屏可读平均值/最大值/异常数);滑块支持键盘方向键微调(步进=精度);告警状态不仅靠颜色(标签文字+图标);时间线列表项焦点顺序从上到下。
  6. 响应式:平板/折叠屏宽屏模式下 R01 采用左右分栏(左数值卡+右图表预览);R02 图表区域宽度自适应。

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

  1. MQTT 订阅管理:复用 M02/M04 连接层;订阅 sensor/realtime/{deviceId}、sensor/anomaly/{deviceId}、device/offline/{deviceId}、device/online/{deviceId};消息解析统一走 protobuf/json schema 校验;断连自动重连+指数退避;后台保活(Android foreground service,iOS background fetch 降级)。
  2. 图表库选型:syncfusion_flutter_charts(商业授权已采购)或 fl_chart(开源备选);要求:手势缩放/平移/长按准星、大数据量降采样、双主题色板、无障碍语义树;封装为 SensorChartWidget 统一组件。
  3. 状态管理:Riverpod/BLoC;实时数据流用 StreamProvider;历史数据用 FutureProvider + 缓存层;告警未读数全局 Provider 驱动 Tab 红点与 R01 角标。
  4. 本地缓存:Hive/Isar 存储最近24h实时数据+最近3次历史查询;缓存键=deviceId+granularity+timeRange;TTL 10min;离线时展示缓存+"数据可能不是最新"。
  5. 手势与性能:图表手势用 GestureDetector + TransformationController;大数据量渲染隔离到 Isolate 计算降采样点;首屏渲染 ≤1s(benchmark 覆盖)。
  6. 深链路由:注册 ehome://sensor/{deviceId}?alertId=&timestamp= 路由;R01/R02 接收参数后自动定位;路由参数校验防注入。
  7. 安全:传感器数据 TLS 传输;本地缓存加密(AES-GCM);告警记录不含用户 PII;Sentry 上报脱敏。
  8. 埋点:R01 停留时长、R02 粒度切换分布、R03 保存成功率、R04 筛选使用率、离线横幅点击率;性能埋点(图表渲染耗时、MQTT 消息延迟)。

6. 云端需求(实时监测服务)

6.1 接口清单

接口方法说明
/sensors/{id}/snapshotGET最新实时数据快照(兜底拉取);返回数值+单位+时间戳+异常标记+信号/电量
/sensors/{id}/historyGET历史聚合数据;参数 granularity(1h/1d/1w/1m)、start、end;返回时间点+聚合值+异常标记+告警事件
/sensors/{id}/alerts/configGET/POST获取/保存告警规则;POST 校验冲突+量程+下发规则引擎;返回规则ID+下发状态
/alertsGET告警记录列表;支持 deviceId/metric/status/time/page 筛选;游标分页
/alerts/{id}/readPOST标记已读;支持批量(ids数组)
/alerts/{id}/dismissPOST手动忽略未恢复告警
/alerts/batch-deletePOST批量删除(仅已恢复/已忽略);审计日志
/alerts/unread-countGET当前用户未读告警数(驱动红点)
(MQTT)sensor/realtime/{deviceId}实时数据推送;protobuf/json;QoS1
(MQTT)sensor/anomaly/{deviceId}异常数据通知
(MQTT)device/offline/{deviceId}、device/online/{deviceId}设备离线/上线事件
(内部)规则引擎接收告警配置;订阅实时数据流;触发告警生成;重复告警抑制(10min窗口)

6.2 关键策略

  1. 数据管道:设备 MQTT → Kafka → Flink 实时校验+聚合 → 时序数据库(TDengine/InfluxDB)+ Redis 最新快照;异常数据分流至异常日志表;全链路 ≤1s 处理延迟。
  2. 告警规则引擎:内存规则匹配(Drools/自研轻量引擎);支持上下限、使能、通知渠道;重复告警抑制(同设备同规则10min内仅推1次);规则变更热加载 ≤2s。
  3. 历史数据聚合:写入时预聚合(分钟级/小时级/天级);查询直接读聚合表,避免实时计算;保留原始数据30天(合规/排查),聚合数据永久。
  4. 离线判定:云端心跳检测(设备最后上报时间 >5min → 离线事件);离线告警独立规则,不与阈值告警混淆。
  5. 数据合规:传感器数据留存策略按地区法规(GDPR/CCPA);用户删除账号时清除关联传感器历史数据(M10 合规通道联动)。
  6. 性能SLA:实时推送 P99 延迟 ≤3s;历史查询 P99 ≤500ms(缓存命中 ≤50ms);告警触发到推送 ≤5s;接口 QPS ≥1000/实例。
  7. 监控看板:数据上报成功率、异常数据比例、告警触发量/误报率、接口延迟/错误率;异常自动告警运维。

7. 验收标准核对表

需求验收标准本设计落点
FR-1301实时数值 ≤3s 更新;离线/异常横幅正确触发;数值格式化与单位切换正确R01;MQTT+HTTP兜底;异常值处理规则
FR-1302四粒度切换流畅;手势交互精准;异常点/告警标记准确;首屏 ≤1sR02;聚合拉取+降采样;图表组件规范
FR-1303阈值校验全覆盖;通知渠道联动正确;规则下发 ≤2s;预览文案多语言R03;冲突校验;M01/M10联动;规则引擎
FR-1304筛选/未读/跳转/删除保护全闭环;推送点击直达高亮R04;游标分页;深链路由;M10联动
FR-1305五种降级态触发准确;排查引导复用 M02-Q04;横幅自动消失R05;状态机2.2;M02联动
FR-1306双主题/7语种/无障碍/响应式全达标第4章;UI组件清单;无障碍规范

QA测试要点(专项):

  1. 实时性压测:100台传感器并发上报,APP 端到端延迟 P99 ≤3s;MQTT 断连重连后数据不丢失;
  2. 图表性能:30天粒度(~43200点)渲染帧率 ≥30fps;手势操作无掉帧;低端机(骁龙660级)首屏 ≤1.5s;
  3. 告警全链路:阈值触发→推送到达→点击跳转→R02定位,全流程 ≤5s;重复告警抑制验证(10min内仅1条);规则修改后2s内生效;
  4. 异常注入:超量程/NaN/突变数据注入,验证前端过滤与异常标记;设备离线5min/24h 横幅触发;
  5. 弱网与离线:2G网络下图表加载 ≤3s;完全离线时展示缓存数据+提示;恢复网络后自动同步;
  6. 多语言与无障碍:7语种文案无截断;读屏软件可朗读数值/图表摘要/告警状态;键盘可操作滑块;
  7. 数据安全:本地缓存加密验证;抓包无明文敏感数据;账号删除后传感器数据清除验证;
  8. 兼容性:iOS 13+/Android 7.0+ 真机覆盖;折叠屏/平板分栏布局;深色模式全组件走查。

8. 依赖与风险

说明责任/时点
固件传感器协议上报字段定义、精度、量程、异常标记位、心跳间隔——本模块数据源固件团队 M0 提供协议文档;M1 联调
M02 设备/家庭模型设备列表、房间归属、设备信息编辑、离线排查入口M1 接口契约冻结
M01 账号体系受限账号标记、手机/邮箱绑定状态(通知渠道校验)M1 已交付
M10 推送/H5/工单告警推送通道、帮助中心H5、离线排查工单联动M1 并行
M09 OTA固件过旧横幅跳转升级流程M2 联调
M06 场景自动化传感器告警/数值作为场景触发条件(M06 消费本模块规则)M2 接口对齐
时序数据库选型TDengine/InfluxDB/ClickHouse 选型影响查询性能与运维成本M0 技术评审确定
图表库授权Syncfusion 商业授权采购流程;备选 fl_chart 功能差距评估M0 完成采购/评估
传感器品类扩展新传感器品类(如空气质量/噪声)需扩展能力模型与告警指标运营期迭代;架构预留扩展点
海外合规GDPR/CCPA 数据留存与删除要求;传感器数据是否属于个人数据需法务确认M1 法务评审

以上为 M04 实时监测(FR-1301~1306)完整详细需求设计:实时数据 ≤3s 更新、四粒度历史图表、阈值告警全生命周期、五种降级态处理、双主题7语种无障碍均已落点;与 M01/M02/M03/M10 文档格式及衔接协议一致(MQTT复用、设备模型同源、推送通道联动),可直接交付 UI 与开发。如确认无误,可按同样格式继续输出 M05 场景自动化、M06 定时任务等后续模块。