一、建立与MQTT服务器的连接
HOST : auth.mqtt.9iot.cn
PORT : 1883
USERNAME : 请登录厂商运营系统查看。
PASSWORD : 请登录厂商运营系统查看。
CLIENT ID : 请根据设备情况,写入设备全球唯一标识。一般为设备/WIFI 模块MAC地址。 8字节,不足末尾补零。
二、MQTT发布与订阅 TOPIC 格式约定
设备端:
发布 : / c u s t i d / {cust_id}/ custid/{product_id}/${client_id}/update
订阅 : /${cust_id}/${product_id}/${client_id}/get
故障上报: /${cust_id}/${product_id}/${client_id}/alert
客户端 :
发布 : / c u s t i d / {cust_id}/ custid/{product_id}/${client_id}/set
订阅 : / c u s t i d / {cust_id}/ custid/{product_id}/${client_id}/get
三、指令说明。
1)协议结构说明
Version : 版本号(公有协议 0001 开始,私有协议 0501开始)
Length : 完整协议包大小
Header_crc : 协议头校验码。采用的多项式为CRC-16/CCITT的16位循环校验码
Body : 数据体,以下为数据体结构定义
PackageType :协议包类型,用于应用层消息逻辑处理方式。以下为协议包类型值约定:
Command : 应用命令字,以下为值约定:
2)设备与服务端建立连接之后,应首先发送设备认证数据包。以下为设备认证指令说明与实例:
RES:
设备(Device Type)类型说明:
3)设备认证通过之后,应根据实际持续情况上报心跳包:
此处应结合接入设备和上层应用的实际情况,合理选择心跳包上传频率及方案。一般情况下,如设备在接受云端指令之外的动作触发(如机械或者红外等方案),应即时通过心跳方式将当前状态上报上来。
如设备某些参数时刻变化,如传感器类设备,则建议按一定时间间隔上报最新状态。
心跳发送约定
1、设备上电入网,认证通过,立即发送至少一次心跳
2、设备状态改变(包括且不限于,MIOC系统控制/外界条件触发/传统渠道如遥控、功能按钮),立即发送至少一次
3、一定时间间隔,如60s
4)云端接受各客户终端的控制请求,向设备发送控制指令:
设备应反馈控制结果:
5)云端接受各客户终端的查询请求,向设备发送查询指令:
设备应反馈查询结果:
6)云端接受各客户终端的请求,向网关发起进入套件配对模式指令:
设备应反馈控制结果:
7)云端接收客户端指令,向网关发起套件解绑指令
设备应反馈控制结果:
8)OTA升级:
a、检查对应可接入设备的最新版本
https://mioc.9iot.cn/api/base/standard/v1/ota/versioncheck?mac=5CCF7FCCF2390000
MAC 设备MAC地址
返回示例
RES:
其中:
firmware_version 为最新固件版本号,请设备端自行与当前版本号进行比对,是否需要更新
size 为最新固件包大小,byte
url 为最新固件包下载地址,通过版本号的比对,如需更新则使用此地址进行固件下载
signtype 为密钥算法 暂未启用
9)云端要求设备重发认证指令:
收到此指令,请暂停所有其他上报指令,优先完成认证操作
设备重新认证:
重发认证包
10)网关发起套件解绑/删除:
RES:
10)设置MQTT遗愿消息: