Files
qipai/docs/mqtt-protocol-mapping.md
T

2.5 KiB
Raw Blame History

MQTT 协议映射

M06-C 已按 V5.4 中固化的厂商协议字段实现适配器、上行解析、命令关联、消息幂等与死信。仓库当前未找到总纲点名的两份 PDF 原件,因此尚不能完成 PDF 页码级复核;不得把此状态写成“PDF 已阅读”。

设备 Topic/命令 方向 字段 状态
4G 智能门禁控电箱 /devicesend/{DeviceID}/devicewill/{DeviceID}/deviceaccept/{DeviceID} 双向 basicInfo/mqttConfig/startVoice/task/taskconfigConctolPowerCrldoorPlayTTS/stopTTSCrlLEDtask/addtask/canceltask PARTIAL
Sub-1G 智能门锁 经父控制箱使用相同三个 Topic 双向 AddDeviceCtrlDeviceopen/close/setkey/delkey/setcard/delcard/factoryreset PARTIAL
4G 智慧插座 /devicesend/{DeviceID}/devicewill/{DeviceID}/deviceaccept/{DeviceID} 双向 basicInfo/workInfoon/offlocaltaskclearTask;过载、过温、过流、过压/欠压、功率和温度阈值告警 PARTIAL

M06-A ACL 基线

客户端 允许发布 允许订阅 状态
设备客户端 qipai-device-{DeviceID},用户名等于 DeviceID /devicesend/{DeviceID}/devicewill/{DeviceID} /deviceaccept/{DeviceID} 模板已固定,生产未应用
后端服务 qipai_backend_prod /deviceaccept/+ /devicesend/+/devicewill/+ 模板已固定,生产未应用
普通客户端 禁止 $SYS/##+/# 禁止未显式允许主题 模板已生成

后端 MQTT.js 固定使用 MQTT 3.1protocolVersion: 3)、QoS 1、持久会话、自动重连,并在每次连接成功后显式恢复两个上行订阅。单条应用消息默认限制为 64 KiB。

M06-C 消息规则

  • 命令 ID 只允许 1-13 位数字,默认生成 10 位秒时间戳加 3 位滚动序号。
  • 下发先写 qipai_iot_commands=PENDINGMQTT 发布成功后转 PUBLISHED,有效 ACK 才转 ACKED
  • fail/busy/unconfirm/timeout/full 统一转 FAILED 并保留厂商结果码;超时扫描可把未回包命令转 TIMEOUT
  • 上行先校验 Topic、资产 DeviceID 和 JSON;异常 Topic、未知设备、非法 JSON/字段进入 qipai_iot_dead_letters
  • QoS 1 重复消息命中唯一键后只增加 receive_count,不重复执行 ACK、状态快照或后续业务副作用。
  • 原始 JSON 与标准化 JSON 分开保存;协议字段大小写和拼写不得在适配器外重新拼装。