Skip to content

整理前文档快照:15.设备面板与交互 ​

这是历史资料,不作为当前操作说明;返回现行页面。原文按文本保存,保留当时方案及验证范围。

text
# 设备面板与交互(v0.6)

v0.6首批优先四路继电器。采用“公共设备能力 + 产品专属面板 + 通用物模型面板”,不建设动态插件下载、插件市场或每个型号独立维护一套业务代码。手机视觉与真实操作仍待用户确认,本版尚未收口。

## 页面边界

- 首页、个人中心、登录、BLE添加引导、分享、设备设置与OTA继续共用,不恢复家庭、房间或场景入口。
- `/pages/devices/detail`是既有统一入口,加载当前设备后按稳定产品ID与能力选择面板。
- `/productPanels/relay/index`位于独立`productPanels`分包;仅`p_relay_4ch`且具备`relay_1`至`relay_4`四个可写布尔属性、没有额外可写能力时使用。不根据中文产品名、设备昵称或硬件目录名选面板。
- 未知产品、缺少通道、属性类型不匹配或出现额外可写能力时保留通用面板;专属分包无法打开时也保留当前通用页。直接进入不兼容的专属页时提供通用页按钮,不自动循环跳转。
- 公共详情外壳与`useDeviceDetail`共用加载/失败重试、实时Store、控制、设置和历史入口。产品面板负责组织交互,不复制认证、MQTT、权限、分享与OTA。

## 四路继电器

白色主体、蓝色点缀。四个大按钮显示通道名、设备上报的实际状态、正在确认和操作失败;产品图加载失败用简洁外壳轮廓兜底。未知状态显示“状态未上报”,不能默认当成关闭。离线保留最近状态并禁用控制。

点击单路后阻止该路重复下发,其他通道可独立操作。HTTP执行确认与设备状态回传都满足后才结束等待,不直接修改本地影子或提前宣称成功。确认后主动刷新一次详情,补偿实时连接暂时不可用;状态等待有8秒上限。设备离线或失败时解除等待并显示原因,旧请求晚到不能结束同通道的新请求。离页清理等待计时器。

控制页不展示历史曲线、固件版本、SSID/RSSI或芯片温度。版本和连接信息留在设备设置,分享接收方仍按现有权限隐藏拥有者管理项。定时、倒计时与延时留给v0.7,本版不显示未实现入口。

## 通用面板与历史规则

通用页继续按物模型展示可写布尔开关、多通道开关及只读测量;数值缺失时显示“—”,不填零。温湿度计不需要为每个型号复制页面。

历史曲线必须同时满足只读、数值型,且不是枚举映射、开关组件或连接/版本元数据。布尔、字符串、枚举、数值编码枚举、SSID、RSSI、芯片温度和固件版本不提供曲线入口。四路继电器无论旧物模型是否还含数值属性,都不显示历史入口。

历史页直接访问时再次按相同规则检查;继电器不请求遥测、不显示时间与属性选择器。传感器温湿度保留历史;网络或权限失败应明确显示错误并可重试,不伪装成“没有功能”。已有数据库历史不删除。

## 首批验证与剩余工作

- 54项相关回归覆盖产品匹配/通用兜底、无历史继电器、传感器数值曲线、重复点击、实际影子不被改写、上报先于HTTP确认、失败/断网、旧请求晚到、超时与离页清理、旧设备详情隔离,以及设置/分享/OTA回归。
- 类型检查、微信Build与H5构建通过;最终微信产物核对独立分包及包体积。H5构建不代表已完成视觉验收:本机无可用Playwright浏览器,应用内浏览器被设置禁用,未声称截图检查通过,临时预览与下载进程已关闭。
- 首批手机验收:打开四路继电器,应自动进入四路面板;依次操作并观察三端同步,离线不可操作;分享账号可控制、仍无改名/OTA/解绑权限;继电器无曲线,传感器仍有温湿度曲线。
- SSID/RSSI候选固件专项显示、其他设置/个人页的进一步清理仍按看板推进,不因首批继电器页交付而自动宣布v0.6完成。不额外要求照片或视频归档。

首批交付:小程序2ed2fa3已提交推送,微信0.6.0开发版本(robot1)已通过官方CI上传,未提审或正式发布。上传前重新完成类型检查和微信Build。主包构建文件约1.08 MiB、产品分包约6.8 KiB;包体积以官方上传结果为准。

## 面板分发闪屏修复

用户指出首批版本会先显示通用控制页,再跳到继电器专属页,本轮尚未通过视觉验收。现将面板选择、请求加载与分包跳转状态分开:即使已有同设备缓存,统一入口也只显示中性加载态;确定为通用产品或专属跳转明确失败后,才挂载通用界面。跳转成功前不会短暂露出通用控件。请求失败仍能重试,显式通用兜底入口不循环跳转。

本轮58项相关回归通过,其中检查真实页面模板的绑定状态,覆盖缓存/无缓存、请求返回与导航完成之间的空隙、通用产品、跳转失败与重试。小程序修复提交2ca05a3;手机视觉仍待用户复测,不标记v0.6已验收。

## 继电器3.1.7编号约定

按用户要求,固件3.1.7的新1/2/3/4对应旧4/3/2/1,按键与输出一起调整。平台仍使用relay_1至relay_4,面板不再叠加反转,否则会抵消固件修改。旧NVS按物理输出读取和保存,升级后的页面状态按新编号呈现。通用OTA包已发布平台并核对私有OSS下载;未自动下发,安装后逐路按键/网页控制与断电恢复留待用户实测。

## 环境传感器专属页与查询负载

`p_env_sensor`具有只读数值测量能力时进入`productPanels/sensor/index`;名称不决定分发。遇到新增可写能力等不匹配情况回退通用页,避免隐藏控制。请求/分包跳转期间隐藏通用面板,继电器与传感器共用加载、实时Store、权限及设置/历史入口。

温湿度重点展示,气压、CO2、可选光照按产品模型显示;缺失/非有限值显示`--`,0照度/0湿度仍是真实有效值,不补造数据。固件/WiFi信息在设置中。共享成员沿用现有查看权限,不获得拥有者能力。

EnvSense1.3.4每60秒上报有效读数,新固件构建覆盖旧5秒配置;云端发布不意味着旧设备已升级。历史查询采用今天5分钟均值、近7天1小时均值、近30天6小时均值,每属性约最多300个点,后端限制有效范围不超过31天。无定时轮询,切换时间/属性才查;加载中阻止重复操作、过期请求不覆盖新数据,取消全部属性清空图表。曲线时间按手机本地显示,跨天范围带日期。聚合限制返回量,不能把它说成已经删除原始历史或改变保留策略。

本轮清理未引用的旧设备列表、模板FAQ/反馈页面及生成路由,保留账号、分享、设置、隐私协议、网络与BLE诊断,不新增假入口。相关UI45项、BLE240项通过,手机视觉与新固件实物验收尚待用户确认。

## 设置、关于与协议入口

设置页只保留已登录用户的“账号和安全”和退出登录;个人资料从“我的”头像进入,关于与协议在“我的”保持单一入口。不恢复主题/网络测试/清空缓存等模板功能,不清空全部Storage来模拟缓存清理。

关于页使用现有Logo,介绍配网、控制、环境监测、单设备分享与OTA;版本唯一来源为`src/config/app.ts`的`APP_VERSION`,当前显示V0.6.0,不读取微信环境版本、不显示开发测试版;不提供项目主页入口。用户协议与隐私说明合并单页连续正文,不再折叠章节或分两个模板页面;显式点击阅读并同意通过EventChannel回传登录页,默认未同意,浏览不代表同意。协议按钮不代替微信平台授权流程。