系统架构与职责
设备通过BLE从手机取得WiFi信息,经MQTT Broker与后端通信。Web和小程序通过HTTP管理业务,通过Socket.IO接收状态变化。Broker负责认证授权与消息转发,不直接访问平台PostgreSQL。
模块落点
后端src/app.module.ts注册业务与基础设施。modules/auth管理登录与会话,modules/device管理设备、共享、影子和即时控制,modules/device-claim处理首次登记/票据/解绑,modules/device-operation负责归属状态机、能力、配置和标准服务。modules/firmware与ota-task管理固件目录和升级任务。gateways/mqtt连接Broker、匹配Topic并分发内部事件,gateways/ws推送当前用户有权查看的设备变化。
PostgreSQL是身份、归属、业务配置及升级任务的权威存储;Redis保存可过期会话、在线TTL、服务请求和占用;InfluxDB保存测量历史;OSS存二进制文件。设备NVS保存当前归属、参数、定时规则与执行水位,是断网执行所需的本地副本。数据库字段与状态见数据模型。
执行边界
HTTP入口校验账号权限;设备操作还须校验物模型和设备实际能力。MQTT ACL限制到单个产品/物理设备主题;业务层再次核对Topic身份、请求ID、归属和启动信息。MQTT连接认证成功不能代替归属激活,PubAck不能代替设备执行结果。
定时动作在设备本地触发,后端不是按分钟唤醒继电器的云端调度器。平台也没有跨设备场景引擎。设备配置与服务是通用能力,产品只注册自身属性、参数和硬件适配,不在后端为四路继电器建立专用调度表。
前端
小程序统一设备入口在pages/devices/detail,确认产品能力后跳转productPanels/relay或productPanels/sensor;选择期间隐藏通用控件,防止先闪出通用页。未知产品使用通用渲染。共用设备Store、权限及实时连接,分享者不会因为进入专属面板而取得拥有者权限。Web提供管理、产品物模型、固件任务和串口烧录工具。
