设备接入 · 实时监测 · 告警通知 · 场景联动 · 固件 OTA · 共享协作 —— 一套 PHP 常驻进程全搞定,无需 EMQX / Mosquitto 外部中间件。
八大能力域覆盖设备全生命周期,从出厂激活到固件升级。
纯 PHP 常驻进程实现 MQTT 3.1.1 协议服务端,QoS0/1/2、保留消息、遗嘱、会话恢复全支持。当前累计转发 2894 条消息,保留消息 19 条。
出厂预置激活令牌 → 首次联网一次性换领一机一密凭证 → App 扫码 SN + 配对码绑定认领。激活即换发凭证,杜绝裸设备上线。
每设备 3 路总线 × 3 探头(DS18B20 OneWire),位置级温度/温差上报告警。当前已落库 10728 个时序点。
原始稀疏点(每条带有效期,App 前向填充)+ 分钟级聚合(时间加权平均,step/window 可控:最近 30/60 分钟每分钟一点)。
设备端位图初判 + 云端 capture() 复核落库,防误报防刷屏(窗口抑制)。未读角标 / 已读回执 / App 推送一路打通。
温度越限 → 下发命令 → 设备执行,全链路 < 秒级。设备分组批量控制,当前 0 个场景在跑。
主人 / 可控制(perm=2)/ 只读(perm=1)三级权限,HTTP API 与 Broker ACL 双层校验。当前有效共享 0 条。
版本管理 + 分批推送 + 进度跟踪,断电续传由固件侧分片请求保障。无需拆机刷写。
不是"又一个 MQTT 接入",每一个设计点都对应一次真实踩坑的教训。
Broker 内嵌于插件(php think iot start -d),单机即可跑通,Windows 调试 / Linux 生产同构,运维成本≈0。
温变才上报(10s~120s 一条),每条带 iv 有效期,不做服务端插值放大。500 点曲线 ≈ 一张缩略图的体积。
服务端 cfg_ver ↔ 设备 sync_ver 回执对齐,retained 下发 + 断线重连自动补推,配置永不漂移、永不丢。
设备配置真源在云端(后台编辑 → retained 下发 → App 共用同一份),设备离线也能读能存,上线即生效。
设备侧 uuid/secret 一机一密 · 会员侧 mqttTicket 短时票据 · Broker ACL 按身份收敛订阅/发布范围,越权即断连。
client/ 设备管理 · monitor/ 监测 · scene/ 场景 · ota/ 升级 · mqtt/ Broker,旧路径兼容别名平滑迁移。
固件 → Broker → 落库 → App,全程秒级。
App 端 HTTP 接口按功能域划分、全部经会员鉴权;接口规模由路由表实时统计,能力扩张页面自动更新。
2 个接口 · 运行状态、指标快照与消息直发
1 个接口 · 出厂预置令牌换领一机一密凭证
13 个接口 · 绑定认领、共享授权、短时票据与命令下发
9 个接口 · 历史曲线、分钟级聚合、告警与设备日志
13 个接口 · 规则引擎、设备分组与批量控制
2 个接口 · 升级包管理与分批推送进度跟踪
命名空间隔离 + 身份裁决,连接层即安全边界——不依赖主题名保密。
每台设备独占自己的主题空间,发布 / 订阅权限由 Broker ACL 按归属实时裁决,越权订阅直接拒绝。
告警 / 共享 / 系统通知按账号隔离实时推送;App 连接「只订不发」,读写一律走鉴权 HTTP API。
状态与配置以保留消息存储于 Broker,设备离线可查最后状态,上线即自动对齐配置版本。
下行命令 / 配置经队列可靠投递,设备 ack 回执对齐版本号,未达即重发自愈。
从零到设备上线,三步。
命令行执行 php think iot start -d,常驻进程开始监听 MQTT 端口并每 2 秒写入运行快照。
后台「设备管理」预登记 SN 与激活令牌 → 设备首次联网完成入云激活,一次性领取设备凭证。
App 扫码 SN + 输入配对码绑定 → 配置传感器位置阈值 → 曲线 / 告警 / 场景联动全部就绪。