iot-server-new
首页自定义链接
多级目录
  • 子菜单1
  • 子菜单2
首页自定义链接
多级目录
  • 子菜单1
  • 子菜单2
  1. 首页
  • 配置模版
  • 单个设备管理.md
  • 设备列表
  • README.md
  • 2025-02-21
  • 2025-04-12-华为SNMP
  • 2025-05-06 - 前端调整
  • 全流程配置一个ONU的业务--华为SNMP
  • 设备黑名单方案
  • 平台-前端【HTTP协议】
    • 系统管理
      • 账户服务
        • 创建账户信息
        • 更新账户信息
        • 删除账户信息
        • 查询账户信息
      • 用户管理
        • 查询用户信息 Copy
        • 创建用户信息
        • 修改用户信息
        • 删除用户信息
        • 查询用户信息
      • 项目管理
        • 创建项目
        • 查询项目
        • 修改项目
        • 删除项目
      • 角色管理
        • 创建角色
        • 修改角色
        • 删除角色
        • 查询角色
        • 查询权限列表
      • 系统管理
        • 用户操作日志
      • 权限绑定
        • 绑定角色(用户操作)
        • 删除角色
        • 查询当前用户已有的角色和权限
        • 修改用户角色
    • 模版管理
      • 删除模版
      • 查询模版
      • 获取模版列属性
      • 创建模版
      • 修改模版
    • 模版模型管理
      • 查询模版模型
      • 创建模版模型
      • 修改模版模型
      • 删除模版类型
    • 设备管理
      • 设备属性管理
        • 删除设备
        • 表格列属性
        • 创建设备
        • 修改设备
        • 查找设备
      • 配置管理
        • 查看平台侧下发配置
        • 查看设备侧上报配置
        • frp远程配置地址
        • 提交设备自定义配置
        • 获取设备详情数据
        • 获取设备监控二级下拉菜单列表项
      • 操作管理
        • 配置下发
        • 设备重启
        • 固件升级
        • 恢复出厂设置
        • 查询任务
        • 批量删除设备
    • 拓扑管理
      • 查询设备的拓扑
      • 新增设备间的链路
      • 修改设备间的链路
      • 查询设备间的链路
      • 删除设备间的链路
    • 设备监控
      • 查询监控曲线
      • 查询指标信息
      • 查询维度数据
    • 计算接口
      • 计算设备数量(设备类型维度)
      • 首页统计数据
    • OLT
      • 模版管理
        • 添加速度模版
        • 查询速度模版
        • 添加VoIP模版
        • 查询VoIP模版
        • 添加TR069模版
        • 查询TR069模版
        • 创建ONU类型
        • 查询ONU类型
      • ONU设备管理
        • WAN Tab
          • 修改WAN
          • 查询WANs
        • LAN Tab
          • 修改LAN
          • 查询LANs
        • 无线(WLAN-SSID)Tab
          • 修改SSID
          • 查询SSIDs
        • 语音(VoIP)Tab
          • 查询SIPs
          • 修改SIP
          • 查询VoIPs
          • 修改VoIP
        • 时间同步(NTP)Tab
          • 修改NTP
          • 查询NTPs
        • 查询ONU列表(已认证)
        • 查询ONU列表(未注册)
        • 认证ONU
        • 删除ONU
        • 刷新ONU
      • OLT设备管理
        • Tag
          • 创建标签
          • 查询标签
          • 删除标签
          • 绑定资源标签
          • 解除资源标签
          • 查询资源标签
        • OLT详情Tab
          • 查询OLT列表
          • 刷新OLT信息(这个不用了)
        • 板卡(Card)Tab
          • 查询Card信息
          • 重启Card
          • 刷新Card信息
        • PON口(PON Ports) Tab
          • 查询PON信息
          • 刷新PON信息
          • 开启Autofind功能
          • RebootONUs
          • Enable All PONs
          • RebootAllONUs
          • 修改PON配置
        • 上联口(Uplink-ETH)Tab
          • 查询UpLink信息
          • 修改上联口配置
          • 刷新上联口(Refresh uplink ports info)
        • VLAN
          • 查询VLAN列表
          • 创建VLAN
          • 删除VLAN
        • 查看历史操作记录
        • ConfigONU
        • 查询PON ports信息
    • 内容翻译
      POST
    • 用户登录
      POST
  • 平台-设备【MQTT协议】
    • 设备上报配置信息
      VIEW
    • 设备上报监控信息
      VIEW
    • 设备上报基础信息
      VIEW
    • 平台下发配置/模版
      VIEW
    • 平台下发重启操作
      VIEW
    • 平台下发固件升级
      VIEW
    • 上报执行任务的结果
      VIEW
  1. 首页

平台-设备MQTT协议

说明:为了统一前端/平台/设备端数据格式|交互协议,统一使用该文档进行统一维护。#


由于设备端使用mqtt协议,因此这里只做交互协议展示,不做具体接口调用!!!
由于MQTT协议是个传输层的协议,在应用层没有定义格式,需要用户自己定义。

设备接入平台#

设备接入平台有两种方式:
1.
设备直接进行平台连接
2.
用户在平台预先进行配置和注册,等设备连接后进行管理

设备发送CONNECT报文#

1.
在mqtt协议中,设备向平台侧发送CONNECT类型的报文,这时平台侧仅处理该设备是否有权限接入平台,以及存储设备的ClientID。
2.
在当前版本中,暂定所有的设备都放通接入。
3.
因此设备端肯定都能收到平台侧响应的CONNACK报文,如果设备侧没有接收到CONNACK报文,那么设备侧需要一直尝试发送CONNECT报文,发送间隔暂定2.5*KeepAlive.

设备发送PUBLISH报文#

1.
在设备连接入平台后,设备需要立即发送PUBLISH报文,上报设备本身的基础信息,以便平台识别该设备,如果没有上报,此时存在场景,需要依次讨论:
设备是全新上线的,那么平台侧只有ClientID,没有其他信息,无法进行其他业务处理
设备之前上报过信息,那么平台侧使用相同ClientID的设备来处理和响应后续的处理
2.
当前默认只发送QoS=0的报文信息,每隔5分钟循环上报一次
3.
QoS=0的PUBLISH报文,平台侧无须响应
4.
设备上报其他消息也适用PUBLISH报文
如果使用QoS=1/2的PUBLISH报文,那么服务端需要额外处理,设备侧也需要额外处理重试的报文,这里增加了复杂度,暂定为只用QoS=0的报文

设备发送SUBSCRIBE报文#

1.
设备订阅主题名称为设备sn/+的主题,平台侧通过查找设备sn的主题,发送消息给设备侧

设备发送PINGREQ报文#

1.
设备侧可以不用循环发送PINGREQ报文,因为会循环主动报上设备信息。

设备发送DISCONNECT报文#

1.
设备侧主动下线,需要主动发送DISCONNECT报文,以便平台侧能够实时感知到

配置管理的问题#

平台侧存储两套配置,一套是平台侧配置的(平台页面修改),一套是设备端实时运行的(由设备端上报)。这里的差异来源于平台下发的异常和客户在设备端页面修改
1.
平台侧的配置仅来源于平台侧模版和平台页面修改
2.
设备端的运行配置仅来源于设备端上报

这里需要解决配置不一致的问题。#

1.
如果是客户在页面修改,那么不需要处理,有差异平台侧直接存储就行了。
2.
如果是平台下发异常,那么需要重新下发配置。
设备上报的时候,需要增加一个字段用来识别当前的配置是否是客户修改过的。这时,如果平台识别到配置差异是用户的修改,那么不下发配置了。如果没识别到是客户修改的,那么差异就是平台侧下发异常的,这里需要重新下发。
那么这里需要识别配置是否有差异?
1.
如果是是计算hash的话,那么平台侧只能知道有差异,无法知道差异来源,因此配置只能全部下发
2.

主题管理#

主题管理有两套方案:
1.
(方案1)主题=sn,然后业务数据使用method=xxx来识别
2.
(方案2)主题=sn/$method, 然后直接传输数据
例如:
设备上报状态信息:
1.
(方案1)topic=sn1, body={"method":"status", "content":{"cpu":"x"}}
2.
(方案2)topic=sn1/status, body={"cpu": "xxx"}
设备接收配置信息
1.
(方案1)topic=sn1, body={"method":"config", "content":{"vlan":{...}, "wan":{...}}}
2.
(方案2)topic=sn1/config, body={"vlan":{...}, "wan":{...}}
设备接收重启信息
1.
(方案1)topic=sn1, body={"method":"reboot", "content":{}}
2.
(方案2)topic=sn1/reboot, body={}
修改于 2024-06-10 14:44:59
上一页
用户登录
下一页
设备上报配置信息
Built with