修改日期 | 修改人 | 备注 |
2021-07-02 15:17:38[当前版本] | admin | 修正 |
2021-07-02 15:14:51 | admin | 修正 |
2020-07-16 10:57:30 | admin | 修正 |
2020-07-16 10:29:49 | admin | 增加检查更新协议 |
HOST : tcp.9iot.cn
PORT : 9995
USERNAME : 请登录厂商运营系统查看。
PASSWORD : 请登录厂商运营系统查看。
CLIENT ID : 请根据设备情况,写入设备全球唯一标识。一般为设备/WIFI 模块MAC地址。 8字节,不足末尾补零。
字段 |
大小(byte) |
描述 |
|
协议头 |
version |
2 |
版本号 |
length |
2 |
数据包大小 |
|
header_crc |
2 |
协议头校验码 |
|
协议体 |
body |
Length - 8 |
数据体 |
body_crc |
2 |
数据体校验码 |
Version : 版本号(公有协议 0001 开始,私有协议 0501开始)
Length : 完整协议包大小
Header_crc : 协议头校验码。采用的多项式为CRC-16/CCITT的16位循环校验码
Body : 数据体,以下为数据体结构定义
字段 |
大小(byte) |
描述 |
PackageType |
1 |
协议包类型 |
Command |
2 |
应用命令字 |
Data |
不定长 |
数据 |
PackageType :协议包类型,用于应用层消息逻辑处理方式。以下为协议包类型值约定:
字节值 |
描述 |
0x00 |
Message,无需回复协议包类型 |
0x01 |
Get,需回复协议包类型,用于请求获取数据回复 |
0x02 |
Set,需回复协议包类型,用于设置数据需返回设置成功与否 |
0x03 |
Result,无需回复协议包类型,用于set/get类型正确回复包,序列号与set和get包相同 |
0x04 |
Error,无需回复协议包类型,用于set/get类型错误回复包,序列号与set和get包相同 |
Command : 应用命令字,以下为值约定:
数据包类型 |
command |
source数据来源 |
设备登录认证 |
0x0001 |
设备 |
设备数据上传 |
0x0002 |
设备 |
发送设备控制指令 |
0x0003 |
Server |
时间同步 |
0x0004 |
Server |
心跳包 |
0xFFFF |
设备 |
发送设备查询指令 |
0X0005 |
Server |
数据透传 |
0x0010 |
Server/设备 |
故障上报 |
0x0006 |
设备 |
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
01 |
|
2 |
Command / 数据包类型 |
0001 |
||
|
|
16 | MAC ADDRESS /设备标识 |
00000000000000010000(不足末尾补零ASCII) |
|
|
20 |
USERNAME / 用户名对应APPID |
[BG73ivJHX6OFxxxxXXXX] ASCII |
|
|
16 |
PASSWORD / 密码对应PRODUCT_ID |
5D31FF4CA98943E9955A025C9CAC23F3 |
1 |
Device Type / 设备类型 |
01 |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
RES:
分类 |
描述 |
长度 |
字段名 |
数据样例 |
||
Header |
|
2 |
version |
0001 |
||
2 |
length |
0000 |
||||
2 |
header_crc |
0000 |
||||
Payload |
Defination |
1 |
PackageTypeee |
03 |
||
2 |
Command |
0001 |
||||
Date |
|
1 |
RES |
00(成功) 01(认证失败) |
||
Tail |
2 |
CRC |
0000 |
设备(Device Type)类型说明:
设备 |
标识(1byte) |
电视 |
0x01 |
灯 |
0x02 |
空调 |
0x03 |
空气净化器 |
0x04 |
插座 |
0x05 |
单开开关 |
0x06 |
扫地机器人 |
0x07 |
窗帘 |
0x08 |
加湿器 |
0x09 |
风扇 |
0x0A |
暖奶机 |
0x0B |
豆浆机 |
0x0C |
电热水壶 |
0x0D |
饮水机 |
0x0E |
电饭煲 |
0x0F |
热水器 |
0x10 |
烤箱 |
0x11 |
净水器 |
0x12 |
冰箱 |
0x13 |
机顶盒 |
0x14 |
洗衣机 |
0x16 |
智能床 |
0x17 |
香薰机 |
0x18 |
窗 |
0x19 |
空气开关 |
0x1A |
温度传感器 |
0x1B |
烟雾传感器 |
0x1C |
可燃气体传感器 |
0x1D |
PM2.5传感器 |
0x1E |
人体传感器 |
0x1F |
光照传感器 |
0x20 |
雨水传感器 |
0x21 |
此处应结合接入设备和上层应用的实际情况,合理选择心跳包上传频率及方案。一般情况下,如设备在接受云端指令之外的动作触发(如机械或者红外等方案),应即时通过心跳方式将当前状态上报上来。
如设备某些参数时刻变化,如传感器类设备,则建议按一定时间间隔上报最新状态。
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
00 |
|
2 |
Command / 数据包类型 |
FFFF |
||
1 |
Device Type / 设备类型 |
01 |
||
不定长 |
结合实际情况,一般可将设备当前状态值上报上来 |
0000 |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
1、设备上电入网,认证通过,立即发送至少一次心跳
2、设备状态改变(包括且不限于,MIOC系统控制/外界条件触发/传统渠道如遥控、功能按钮),立即发送至少一次
3、一定时间间隔,如60s
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
02 |
|
2 |
Command / 数据包类型 |
0003 |
||
1 |
Device Type / 受控设备类型 |
套件类型:01
单品类型:02 |
||
|
|
8 | Suite ID / 套件标识 |
0000[不足末尾补零 ] 若受控设备为单品,则此值全部为0 |
|
|
1 | Control Type / 控制类型 | 01 |
2 |
Control Value / 控制设值 |
0001 |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
设备应反馈控制结果:
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
03 |
|
2 |
Command / 数据包类型 |
0002 |
||
1 |
Control Type / 控制类型 |
01 |
||
1 |
Control Value / 控制设值 |
00 |
||
1 |
RESULT / 控制结果 |
00[SUCCESS] 0X[FAILD] |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
02 |
|
2 |
Command / 数据包类型 |
0005 |
||
1 |
Query Type / 查询类型 |
01 [为查询所有状态值] |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
设备应反馈查询结果:
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
03 |
|
2 |
Command / 数据包类型 |
0002 |
||
1 |
Device Type / 设备类型 |
01 |
||
不定长 |
结合实际情况 |
0000 |
||
2 |
PayLoad_CRC / 数据体校验码 |
0000 |
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
02 |
|
2 |
Command / 数据包类型 |
0006 |
||
|
|
1 |
Device Type / 设备类型 |
02 |
|
|
8 |
Suite ID/套件标识 |
此处全部为00 |
1 |
ERROR Code/ 故障代码 |
取值详情参照具体设备业务协议 |
||
|
2 | ERROR CONTENT / 故障内容 | 一般为故障参数值,具体参照具体设备业务协议 | |
2 | PayLoad_CRC / 数据体校验码 |
0000 |
收到此指令,请暂停所有其他上报指令,优先完成认证操作
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
02 |
|
2 |
Command / 数据包类型 |
0003 |
||
|
|
1 |
Device Type / 受控设备类型 |
02 |
|
|
8 |
Suite ID/套件标识 |
此处全部00 |
|
|
1 |
Contorl Type/控制类型 |
7C |
2 |
Contorl value/控制设值 |
0000 |
||
2 | PayLoad_CRC / 数据体校验码 | 0000 |
设备重新认证:
重发认证包
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
03 |
|
2 |
Command / 数据包类型 |
0006 |
||
|
|
1 |
Device Type / 受控设备类型 |
02 |
|
|
8 |
Suite ID/套件标识 |
此处全部00 |
|
|
1 |
Report Type/控制类型 |
7B |
2 |
Report value/控制设值 |
当前版本号 |
||
2 | PayLoad_CRC / 数据体校验码 | 0000 |
分类 |
描述 |
长度[字节] |
字段名 |
数据样例 |
Header |
2 |
VERSION/版本 |
0001 |
|
2 |
LENGTH/长度 |
0000 |
||
2 |
Header_CRC/头部校验码 |
0000 |
||
PayLoad |
1 |
PackgeType / 协议包类型 |
02 |
|
2 |
Command / 数据包类型 |
0003 |
||
|
|
1 |
Device Type / 受控设备类型 |
02 |
|
|
8 |
Suite ID/套件标识 |
此处全部00 |
|
|
1 |
Report Type/控制类型 |
7D |
2 | PayLoad_CRC / 数据体校验码 | 0000 |
a、检查对应可接入设备的最新版本
https://mioc.9iot.cn/api/base/standard/v1/ota/versioncheck?mac=5CCF7FCCF2390000
MAC 设备MAC地址
返回示例
RES:
{ "item": null, "version": null, "xt_userinfo_realName": null, "mtdpimg_base_url": null, "mtdpimg_base_path_url": null, "mtdpsources_base_url": null, "mtdpsources_base_path_url": null, "xt_attachmentPath": null, "sessionId": null, "firmware_id": "BEA42E2C8EC445FBBE6DB44989AD58CD", "firmware_name": "curtain motor 7", "firmware_version": "7", "size": "317876", "url": "https://mioc.9iot.cn/xtCommonController/downFile?xt_attachment_id=91CC36C75E4A42D1932BD4C0077C804E", "url1": "https://mioc.9iot.cn/xtCommonController/downFile?xt_attachment_id=A7E85266E96844658178454BEB53A7D4", "url2": "https://mioc.9iot.cn/xtCommonController/downFile?xt_attachment_id=3C69CB1CDF614777BE36537D2C93890D", "signtype": "MD5", "description": "curtain motor 7", "access_device_id": "97BA42A50BFE4AC68D59CCCF226D6456", "path": "91CC36C75E4A42D1932BD4C0077C804E" }
其中:
firmware_version 为最新固件版本号,请设备端自行与当前版本号进行比对,是否需要更新
size 为最新固件包大小,byte
url 为最新固件包下载地址,通过版本号的比对,如需更新则使用此地址进行固件下载
url1 WIFI模组OTA所需
url2 WIFI模组OTA所需
signtype 为密钥算法 暂未启用