[TOC]
# 微瓴IOT通讯协议
通讯协议采用 TLV
结构,既type,length,value,其中type占2个字节,length占4字节(32位无符号整型),value的长度根据length的值来定义。 密文使用16进制文本传输。
注册服务器IP地址为:iot.weiling.qq.com:18831
本文档示例中使用的设备SM2非对称秘钥均在开放平台产品页获取
流程:
1.在开放平台申请产品pid,获取相应秘钥;
2.参照IOT通讯协议1.1 - 1.3进行设备注册登录;
3.注册完成之后,联系微瓴对接人提供微瓴沙箱项目权限,将设备接入微瓴沙箱进行调试,设备导入项目环境后需要再次进行设备注册来获取登陆的IP地址(来源于注册时返回的projAccessAddr);
注意:设备导入项目环境前是没有项目属性的,服务器IP默认为iot.weiling.qq.com:18831,设备导入微瓴沙箱环境之后,将携带有项目属性,对应的服务器IP也随项目环境改变。需要重新注册,将IP切换为注册返回的数据中的accessAddr里的地址。
4.选择MQTT(来源于注册时返回的mqttServer)使用微瓴IOT基础协议进行消息上报测试;
# 1. 设备接入
# 1.1 注册
- 协议字
0x000D
- 通讯协议
- 客户端请求包
key | type | description |
---|---|---|
v | Integer | 数据协议版本号,此版本号为2 |
pid | String | productId,产品IP,从微瓴开放平台申请 |
data | JSON | 数据内容,通过服务器公钥加密传输 |
sn | String | 设备序列号,厂商自己生成 |
lic | String | 通过设备私钥生成的licence,SM2(pid+sn),签名时使用的userId为当前pid |
ts | Long | 当前时间 |
mac | String | 加密后的data所计算的md5值 |
- 示例
明文
{
"v": 2,
"pid": "1700006345",
"data": {
"lic": "3045022100A25E953B55E466884C4DE68546F7F1BA97476490D5BC15424E3C72DCF9460B4A0220528A224D5697FADA38EC4D3B2AC26571969EBF703FCA784D41B6F8C17845BFDD",
"sn": "1700006345",
"ts": "1591347260079"
},
"mac":"b2a995b7de32efacd7144747bb7e870a"
}
2
3
4
5
6
7
8
9
10
SM2加密后
{
"v": 2,
"pid": "1700006345",
"data": "30820129022100C15EF8033C36AA13DE38DE14402D737FD56E194F99DBA890E76235B1D812F6FE0220684956A8B3C1E01C556372A93540883DAF462354BC0E34E212B8ECEC96FA2C65042004E6BD33B9D03F53895AB33D72D8A75AC61A81FF10ED86CC5FD4B0F5D0FD68D50481BF6B3F661766323A784159653A74AAF0DAA3DF444773C95B41340CDFD70A8AD4271EB71BA42FE0B7E8469E8E820DDE237507818E521616E76DE548FD205D17C1C6461E7EF2BBBA917F4D8D265A55A662779C8B5EC171B4D34ECF1C323A771ADEA1B28E2108FDF5293F8720A17DF80A33889EF109CEE0A696780F674AD30B5EBD9BB4CC2ED319D4705C30BEE65E764C5376D0C62CEC7655BCD0F58ED98597A93D9B3536FAA2D569366072E208D914414BAC7CB16A3E0D2D84063A1CA09D66FD15",
"mac": "b2a995b7de32efacd7144747bb7e870a"
}
2
3
4
5
6
TCP传输的完整内容
000d000002a77b2264617461223a223330383230313239303232313030433135454638303333433336414131334445333844453134343032443733374644353645313934463939444241383930453736323335423144383132463646453032323036383439353641384233433145303143353536333732413933353430383833444146343632333534424330453334453231324238454345433936464132433635303432303034453642443333423944303346353338393541423333443732443841373541433631413831464631304544383643433546443442304635443046443638443530343831424636423346363631373636333233413738343135393635334137344141463044414133444634343437373343393542343133343043444644373041384144343237314542373142413432464530423745383436394538453832304444453233373530373831384535323136313645373644453534384644323035443137433143363436314537454632424242413931374634443844323635413535413636323737394338423545433137314234443334454346314333323341373731414445413142323845323130384644463532393346383732304131374446383041333338383945463130394345453041363936373830463637344144333042354542443942423443433245443331394434373035433330424545363545373634433533373644304336324345433736353542434430463538454439383539374139334439423335333646414132443536393336363037324532303844393134343134424143374342313641334530443244383430363341314341303944363646443135222c2276223a322c22706964223a2231373030303036333435222c226d6163223a226232613939356237646533326566616364373134343734376262376538373061227d
- 服务端返回包
key | type | description |
---|---|---|
v | Integer | 数据协议版本号,此版本号为2 |
code | Integer | 请求错误码,0为成功 |
msg | String | 消息返回错误信息 |
data | JSON | 数据内容,通过设备公钥加密 |
wId | String | 设备在云端的唯一标识,后续登录和通讯都已wId为准。 |
mqttReciveTopic | String | 设备订阅的topic |
mqttPushTopic | String | 设备推送消息使用的topic |
mqttClientId | String | MQTT服务客户端ID,目前同wId |
mqttServer | String | MQTT服务链接地址 |
mqttUser | String | MQTT服务登录用户名 |
mqttPassword | String | MQTT服务登录密码 |
sslType | String | 通讯加密类型,none:无加密,PSK:使用psk方式通讯,SSL:按照单向认证方式加密 |
httpDomain | String | http通讯请求的地址 |
projId | String | 设备当前所属项目ID,为0表示未导入项目 |
projAccessAddr | jsonArray | 设备当前所属项目登录地址 |
ts | Long | 时间戳 |
mac | String | 加密后的data所计算的md5值 |
注意:1.mqttReciveTopic返回的订阅地址为/welink/msg/receive/v1/{din},v1版本的topic只支持din。如果要使用wId则需要使用v2版本的topic:/welink/msg/receive/v2/{wId};
2.mqttPushTopic返回的推送地址为/welink/msg/push/v1/{din},v1版本的topic只支持din。如果要使用wId则需要使用v2版本的topic:/welink/msg/push/v2/{wId}
- 示例
返回密文
{
"code": 0,
"data": "3082025d02201ee971f2e5a5e0334acd58aa4a619bae89bd37d85111cc016227caff011dac0f022100e56dbc0d48dbbe904ef134dd10b97bbcc554c7bdf48a6d2c6f29250c7d4297fa04202d544247b444d855eb1b788feef4416aeb837d42351aa225e41fb00802846bdc048201f204bf853903594deca1e805cefe8a84397ab143b9f0fda13bbe4e2b3b7cba7f7f748eb42c3b136fd3abbab71fe4926628b26c10ac4a4c0d8fec186bc25ed5c125df25f1ed8181dc4a9b407aa0f691913e4ecd45674e9366b0268628377f8c5f9ce33a89075b28205a5e3fafa7b66b43af9b7c5c817469e11619907c20254a30df98514df1e31f90d8df7efb603f765b3d8cefeca5a223a3f33b2cff89f74f9d240d16634a9c800d09bcff20ddcf1aeb74adb37840b46801347c0334f172c4a035d6fba9fe825d1c6e056b62b60aedfbcc7b0a581cbfa134e868b0030ec5e91aaf3d9a6a2315dc2274d21de83df06512223021d21b77c9fe6cb21ae94125bbb459d123781dd33fd59e0362a496b12c0bfa0f24e71805ce8030f8f52ef910698ddf7554cad6869e1311d48fab65e93d350ec2202b383f5c61d62670d7a38eef7ea33f7168ee52b3d7446d91d23be279d6bfc91e0d57b1c45de0960cd31739bf9db884b833c9e5c46a926355d218db6c55ba4df31988d086712e5746256d53cbca3f9ee01a5a33b46c28545d477d209d4a924f5a172ae0edd821b80dc3e75b91ab801a2c491b74ca964805b293a75add81879385e628cd08af4157edc45bfa328cd082bc58daa26514fe1f2ff58a5a7ac787c35ed4a664c540f0c0be2c7738b3b0461c3efc1630759307ca97d75f05b623b297d9",
"mac": "a5bf2a7fb5874f6ce806ec8584697be0",
"msg": "ok",
"v": 2
}
2
3
4
5
6
7
解密后明文
{
"projId": "0",
"projAccessAddr": [
"iot.weiling.qq.com:18831"
],
"sslType": "none",
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"mqttReciveTopic": "/welink/msg/receive/v1/",
"mqttPushTopic": "/welink/msg/push/v1/",
"mqttClientId": "300000000000113596",
"mqttServer": "tcp://14.22.3.11:18833",
"mqttUser": "welink_client",
"mqttPassword": "rAElRzKIvX_6EZqEWIvKNr_ILTm7*V3Se2v47TeaJACquKx40PtsU*******",
"ts": 1597379169314,
"httpDomain": "https://cloud-center.welink.qq.com"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 错误码
code | description |
---|---|
10000 | 上报数据格式异常 |
10001 | sn格式非法或未放号 |
10002 | 没有上传设备公钥 |
10003 | mac验证失败 |
1.licence生成,使用SM2算法用设备私钥加密pid+sn字符串获得,签名的userId使用pid;
2.示例的内容是明文,实际传输需要加密后再传输。
# 1.2 挑战应答
协议字
0x000B
通讯协议
客户端请求包 01
示例 以下为完整报文
000B0000000101
- 服务端返回包
key | type | description |
---|---|---|
v | Integer | 数据协议版本号 |
code | Integer | 请求错误码,0为成功 |
msg | String | 消息返回错误信息 |
data | Integer | 随机数 |
- 示例
{
"v":1,
"code":0,
"msg":"ok",
"data": 89741245
}
2
3
4
5
6
# 1.3 登录
- 协议字
0x000E
- 通讯协议
- 客户端请求包
key | type | description |
---|---|---|
v | Integer | 数据协议版本号,此版本号为2 |
pid | String | productId,产品IP,从微瓴开放平台申请 |
data | JSON | 数据内容,通过服务器公钥加密 |
wId | String | 注册时获得的wId |
lic | String | 通过设备私钥加密pid,sn,挑战应答返回的random所生成的licence,SM2(pid+sn+random),签名时使用的userId为当前pid |
ran | String | SM4,向量参数,长度:16,格式:大小写字母+数字 |
challenge_ran | Integer | 挑战应答的随机数,非必填 |
mac | String | 加密后的data所计算的md5值 |
- 示例
{
"v": 2,
"pid": "1700006345",
"data": {
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"lic": "304402201974BB000D2D403356B8479CC075209033A7647F1D1C59D160E0E8C217C3C77E02206AABD81445B830484C91BAEC043440855032211525AA0B5C19DF902247F3A326",
"ran": "9G44eKBX76pXXsl0",
"challenge_ran": 1396951838
},
"mac": "a5bf2a7fb5874f6ce806ec8584697be0"
}
2
3
4
5
6
7
8
9
10
11
SM2加密后
{
"data": "30820161022100D4AD312FE5DB022AC839FF8FA785C00C76E63DF62906B33CC5AB86224533D0B502207DF8C335111B64912BE684E38EE73596BC3D56C130CA5F37F887D0B7DA46F8CB0420EF63D8BFB82741C0EB317350434D8B559E1EB05A4626B1ACB76E2798988802F40481F7F35B28A4C3C3FA52151EFDC5CC5448A7010681C888AA7CFA99C60017AAFBE71F41FE664439A0113035E9DE615315F0F6824C18E9641954C0D91A107A7AC4832956449DB85851E06424E1DF8D9DACC5ED894AB87BBF376FB958501DA42107DC277CF35F52E8D5DB090C6EDD0E918F4A7148625CE8C187FBC2AAA317EA5912CB5F1C62B889030902DD35185C7D9A7499A72B82AFA2B9708EFAE52C63B22CEAA9A18661AF31FD241B78CEDC44CEC57A0FC336BCDFC093CC38138674C5501D85237650F6C29E518B4CD6DB78DBC0BB3A876C5633626E9653BB9E5B0A2CCC2D42D009F890F3DAD21C4785B21DB6271C1EBB6392187FC11ACC91",
"v": 2,
"pid": "1700006345",
"mac": "fe4d190b029a5b0522c72b6ca4f5c392"
}
2
3
4
5
6
TCP传输的完整内容
000e000003177b2264617461223a22333038323031363130323231303044344144333132464535444230323241433833394646384641373835433030433736453633444636323930364233334343354142383632323435333344304235303232303744463843333335313131423634393132424536383445333845453733353936424333443536433133304341354633374638383744304237444134364638434230343230454636334438424642383237343143304542333137333530343334443842353539453145423035413436323642314143423736453237393839383838303246343034383146374633354232384134433343334641353231353145464443354343353434384137303130363831433838384141374346413939433630303137414146424537314634314645363634343339413031313330333545394445363135333135463046363832344331384539363431393534433044393141313037413741433438333239353634343944423835383531453036343234453144463844394441434335454438393441423837424246333736464239353835303144413432313037444332373743463335463532453844354442303930433645444430453931384634413731343836323543453843313837464243324141413331374541353931324342354631433632423838393033303930324444333531383543374439413734393941373242383241464132423937303845464145353243363342323243454141394131383636314146333146443234314237384345444334344345433537413046433333364243444643303933434333383133383637344335353031443835323337363530463643323945353138423443443644423738444243304242334138373643353633333632364539363533424239453542304132434343324434324430303946383930463344414432314334373835423231444236323731433145424236333932313837464331314143433931222c2276223a322c22706964223a2231373030303036333435222c226d6163223a226665346431393062303239613562303532326337326236636134663563333932227d
- 服务端返回包
key | type | description |
---|---|---|
v | Integer | 数据协议版本号,此版本号为2 |
code | Integer | 请求错误码,0为成功 |
msg | String | 消息返回错误信息 |
data | JSON | 数据内容,通过 设备公钥加密 |
keyUsefulTime | Integer | 加密KEY以及httpToken的有效时间,单位:秒 |
httpToken | String | http协议通讯时使用的token,有效期:24小时,推荐23小时内重新登录获取新加密KEY |
ran | String | SM4,加密KEY,长度:16,有效期:24小时,推荐23小时内重新登录获取新加密KEY |
ts | Long | 时间戳 |
mac | String | 加密后的data所计算的md5值 |
- 示例
返回密文
{
"v": 2,
"code": 0,
"msg": "ok",
"data": "3081e0022100afde698b4331f2d8526502493d0dabf5f053a4fb41ca3fe1302586c7572bfe79022100c832e353e48f7c1459a6a2f974f08ca6ddae0daed9a09e37f0f4e053bf0299620420f0a4b4c1c59772bb7236ce7f641b6f48a604029169f377ebb197f53201b02f680476577478c95a0374e5907f18a84b58a34099035511228c7196ff740916f166d08baf6fb1f495b2141b35add3d75511844894d3e0fc0f9fe060df796ab086be011ee644e6936e35d9b7f8b628b7d1c874d8a0396aa22f7b77d0a2e96ab637731913b5c1175fdeb697e0936c7d43a8e5239e1b2822198a43",
"mac": "f481ed0fdf358bbd265af3b1f784d023"
}
2
3
4
5
6
7
解密后明文
{
"v": 2,
"code": 0,
"msg": "ok",
"data": {
"keyUsefulTime": 86400,
"httpToken": "e866d89d-7728-4a4e-863f-f2948f6c8611",
"ran": "aE1JFpkBHjyuGllk",
"ts": 1597380780621
},
"mac": "a1935c8783a912ba4ca53381cc16f330"
}
2
3
4
5
6
7
8
9
10
11
12
登录成功后,后续的消息传输使用SM4算法来加密消息体,加密key由客户端提供加密的向量(登陆请求的ran字段)和服务端返回加密的KEY值(登陆响应的ran字段)组合而成。
# 2 自定义消息
# 2.1 MQTT
- 相关配置
- mqttURL:
mqtt服务链接地址
- wId:
设备唯一标识
- user:
mqtt登录用户名
- password:
mqtt登录密码
- 消息订阅路径:
/welink/msg/receive/v2/{wId}
- 消息发布路径:
/welink/msg/push/v2/{wId}
- 注意事项:
- MQTT协议的心跳消息,需要在创建产品时设置的心跳间隔内最少上报一次,推荐上报周期为30秒/次;
- 同一个clientID只能同一个连接使用,不能多个连接共用同一个clientID;
- 服务质量水平(QoS)是一个消息的发送者和限定递送保证用于特定消息的消息的接收器之间的协议。MQTT中有2个QoS级别: 1.最多一次(0);2.至少一次(1)。当前场景下QoS为0就能满足需求,推荐使用0。
- 消息体(String)
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
subwId | String | 子设备唯一标识,非必填 |
msgType | String | report:主动发送,ack:查询返回 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,比如网关心跳消息为30001,模型消息为80000 |
value | Object | 除了本文档中的基础协议(3.1-3.11)可自定义消息内容,其他设备数据需要严格按照微瓴对象模型 (opens new window)上报,获取途径:1.项目管理平台自定义;2.使用公共模型 |
seq | String | 消息序号(递增) |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"wId":"cae629a1-befc-4084-b8a6-043855e58a3a",
"subwId":"47046519-ff93-4635-8d48-b389224151c3",
"msgType":"report",
"timeStamp":1600312947899,
"random":"2144425053",
"datapoint":30001,
"value":"welink",
"seq":"2144425053"
}
2
3
4
5
6
7
8
9
10
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
aa7d9a40a6e06f54b51e1a0c78f08b652b70cecb12c4728842440904d7bb32cee2ae582a6ee0f0c6937853d3c463d9f0d43a65162fa29b16e65e0e041cd7f7e1d55382550749e7b18d0d4af15cd1a494fdbc957fbf142dca58f3c0f015f3a757e14e7206ecaf13df22fe8192b9cf2aded7431b57dc5513e1a1b0d0d2b08fd663cc849f223fef1134e95c34e15fc0c85ee40685e337f30020919357acfa6f957282b34be596a5432079ba75ac30f382ae
1
# 3 微瓴IOT基础协议
以下文档中的加密KEY都为示例,实际请以登录的参数为准。其中SM4加密KEY为登录返回的ran,向量为登录时上报到微瓴的ran;
基础协议中的datapoint为功能码,如datapoint为30001的消息只能用来上报直连设备心跳。上报设备属性datapoint统一使用80000
# 3.1 标准消息格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
subwId | String | 子设备唯一标识,为空或者无此字段表示直连设备消息 |
msgType | String | report:主动发送,ack:查询返回 |
seq | Long | 消息序号 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码 |
value | String | 除了本文档中的基础协议(3.1-3.10)可自定义填充消息,其他设备数据需要严格按照微瓴对象模型 (opens new window)上报,获取途径:1.项目管理平台自定义;2.使用公共模型 |
直连设备基础消息格式:
{
"wId": "959fcdae-0804-4cd7-b578-4d04d9a99ee1",
"msgType": "report",
"datapoint": 80000,
"random": 1149701758,
"timeStamp": 1536151747890,
"value": "welink",
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
网关上报子设备基础消息格式:
{
"wId": "959fcdae-0804-4cd7-b578-4d04d9a99ee1",
"subwId": "213sdae-0023-4cd7-jf8s-ds87d9a678dj",
"msgType": "report",
"datapoint": 80000,
"random": 1149701758,
"timeStamp": 1536151747890,
"value": "welink",
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
10
# 3.2 直连设备上报心跳消息
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30001 |
value | String | 消息自定义内容,固定为welink |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"timeStamp": 1536151747890,
"random": 1149701758,
"datapoint": 30001,
"msgType": "report",
"wId": "959fcdae-0804-4cd7-b578-4d04d9a99ee1",
"value": "welink",
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee269f3658fc8da5c1c711aa0ef70b2ecb44e1dc993e1ecd0a3b2c46d165675fb0ebb12c2a6cb6d0d55842e4490c6b2e3b87aefd17a31cece1dd61d76b5b6d785bf7218ed107fb92a684dde3c835d5a491a1660481addf56de388f51d5fc7a1eb72c866f89eb74af434cd488fc2a44762d31d3e6a78c89bcc18665c3241d18728f9e
1
# 3.3 网关上报子设备注册消息
key | value | description |
---|---|---|
wId | String | 网关设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30010 |
value | String | 消息自定义内容,json类型字符串 |
page | Integer | 第几页 |
pageSize | Integer | 一页多少记录,最多100 |
total | Integer | 总记录数 |
deviceList | List | 设备列表 |
sn | String | 设备sn |
pid | String | 产品id |
deviceName | String | 设备名称,为空时默认 “设备类型-SN”;若不为空,超过50个字符,则截取前50个字符作为设备名称 |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"wId":"e4daa000-bff0-4a76-beb2-4b1e8e6ac6b8",
"random":1149701758,
"msgType":"report",
"timeStamp":1536151747890,
"datapoint":30010,
"value":{
"page":1,
"pageSize":5,
"total":2,
"deviceList":[
{
"pid":"1700005449",
"sn":"pppanchong_12345ddd1016",
"deviceName":"设备名称1"
},
{
"pid":"1700002550",
"sn":"sn201800001",
"deviceName":"设备名称2"
}
]
},
"seq":"1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee26db48628019ba9a3ce3c1b0087eac5f88bb7776fe1ecdc858dfd7374294e490e120e282ce8cbd45cc15ebd76981893163ebd1bd942d688ed4628a95eb0649885e7414e2c1a4c741200f5378c19109350b4350d218dc8497ed198a774196dbf4a55a279758aff26d62204ded1a4bdd126a1e7508f1bf4a60ca1bc9cc9ecc4e9529fa1e1d7727bfb1a8e2d2ad6253120dfdfc34f3572a0b113f6c24b4c80949e3885f27bec81e51beb4f3d2ecc2feffacbe7ea18b8ee375c74f6704ef0ecc4549374f22bf101457ce5eef6cdad006171b1949d18c835a9c314eae735e72d593c95e34976a9a9b99ded95d1ffed37495e2fea05874432a764943beb670601fd9c0f5
1
# 3.4 获取网关下子设备列表消息
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30007 |
value | String | 消息自定义内容,固定为welink |
seq | String | 消息序号 |
- 举例
- 加密key:LjMAotJ58hncFXUJ
- 向量:hfvj91uWuOso3LtF
- 明文
{
"wId": "a9213f89-b716-4cfe-8b32-f6c2ef916c3f",
"msgType": "report",
"random": 1149701758,
"timeStamp": 1536151747890,
"datapoint": 30007,
"value": "welink",
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
注:上报获取网关下子设备列表消息后,微瓴会下发一条datapoint为30006的子设备列表消息,格式如:3.5
- 密文
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee268b469a21679c6a2853c79a5155028d10fa03513a82ad41b6c7b4c788e0611377adfd35fbb3afa7b943868b33c53971b76edcc2ec203c670e143bf4ac7d4460f3627b008c9ddcb7e321862d156f77db53e2883ad4ea2b7253d2266476feb772a936aa8c13453929c37d4a867f4e76873832597a85012b5441ef6e5be4d75b8081
1
# 3.5 子设备列表接收(非摄像头类)
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
datapoint | Integer | 功能码,固定为30006 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
messageVersion | Integer | 消息版本号 |
totalPage | Integer | 总页码 |
totalRow | Integer | 总设备数 |
pageNumber | Integer | 当前页码 |
pageSize | Integer | 当前页码设备数 |
value | String | 消息自定义内容,数组类型字符串 |
wId | String | 子设备wId |
pid | Integer | 子设备的product id |
sn | String | 子设备唯一序列号 |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"wId":"e2c9d8c5-f13f-4dc9-aee6-348bd56546ad",
"msgType":"report",
"datapoint":30006,
"random":1149701758,
"timeStamp":1536151747890,
"messageVersion":1536151747902,
"totalPage":1,
"totalRow":2,
"pageNumber":1,
"pageSize":2,
"value":"[{\"wId\":\"527012d3-f5a0-47b1-932b-929f0776b2d3\",\"pid\":1700005449,\"sn\":\"pppanchong_12345ddd1016\"},{\"wId\":\"622cf1d8-b9b0-4834-8d9e-3ea27bc73cb8\",\"pid\":1700002550,\"sn\":\"sn201800001\"}]",
"seq":"1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
注:1.网关一次下发的子设备数量不会超过1000个,当网关下的子设备数量大于1000时,就会以分包的形式下发子设备消息(单条消息子设备的数量限制1000个);
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
# 3.6 子设备列表接收(摄像头类)
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
datapoint | Integer | 功能码,固定为30006 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
messageVersion | Integer | 消息版本号 |
totalPage | Integer | 总页码 |
totalRow | Integer | 总设备数 |
pageNumber | Integer | 当前页码 |
pageSize | Integer | 当前页码设备数 |
value | String | 消息自定义内容,数组类型字符串 |
wId | String | 子设备wId |
pid | Integer | 子设备的product id |
sn | String | 子设备唯一序列号 |
manufacturer | String | 设备厂商 |
nvrip | String | NVRIP地址 |
nvrport | Integer | NVR端口号 |
nvrusername | String | NVR用户名称 |
nvrpassword | String | NVR密码 |
nvr_manufacturer | String | NVR生产厂商 |
channel | Integer | NVR通道号 |
rtspuri | String | RTSP地址 |
rtsp_port | Integer | RTSP端口号 |
ip | String | IPCIP地址 |
port | Integer | IPC端口号 |
username | String | IPC用户名称 |
password | String | IPC密码 |
ipc_manufacturer | String | IPC生产厂商 |
stream_from | String | 实时流来源 |
is_convert | Integer | 是否经过地址转换 0-否 1-是 |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
1.摄像头类示例
{
"wId":"b79e0682-a7fe-4074-a125-2ef359f7af0f",
"msgType":"report",
"datapoint":30006,
"random":2011032394,
"timeStamp":1658461159965,
"messageVersion":1658461159982,
"totalPage":1,
"totalRow":2,
"pageNumber":1,
"pageSize":2,
"value":"[{\"nvrusername\":\"\",\"ipc_manufacturer\":\"\",\"ip\":\"\",\"nvrpassword\":\"\",\"din\":\"200900000000013050\",\"channel\":0,\"pid\":1700006212,\"rtspuri\":\"\",\"nvrport\":0,\"manufacturer\":\"111\",\"password\":\"\",\"stream_from\":\"\",\"wId\":\"cf6a976c-e5d9-4cca-abfc-ffaa8d9412c5\",\"nvrip\":\"\",\"subdin\":\"0\",\"port\":0,\"nvr_manufacturer\":\"\",\"sn\":\"test20220524001\",\"is_convert\":1,\"rtsp_port\":0,\"username\":\"\"},{\"nvrusername\":\"\",\"ipc_manufacturer\":\"\",\"ip\":\"\",\"nvrpassword\":\"\",\"din\":\"200900000000013558\",\"channel\":0,\"pid\":1700006212,\"rtspuri\":\"\",\"nvrport\":0,\"manufacturer\":\"111\",\"password\":\"admin\",\"stream_from\":\"\",\"wId\":\"e4851191-d795-4f36-b6cf-33e548b031db\",\"nvrip\":\"\",\"subdin\":\"0\",\"port\":0,\"nvr_manufacturer\":\"\",\"sn\":\"test20220722001\",\"is_convert\":1,\"rtsp_port\":0,\"username\":\"admin\"}]",
"seq":"1156056"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
注:1.网关一次下发的子设备数量不会超过1000个,当网关下的子设备数量大于1000时,就会以分包的形式下发子设备消息(单条消息子设备的数量限制1000个);
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
# 3.7 网关上报子设备心跳消息
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定report |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30002 |
value | String | 消息自定义内容,json类型字符串 |
page | Integer | 当前页码 |
pagesize | Integer | 总页码 |
total | Integer | 设备总数 |
deviceList | List | 子设备状态列表,列表长度为100以下 |
wId | String | 子设备wId |
status | String | 子设备状态 |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"wId":"dfd07fef-8f2e-48dd-ae38-810236fa32e2",
"msgType":"report",
"random":1149701758,
"timeStamp":1536151747890,
"datapoint":30002,
"value":{
"page":1,
"pagesize":1,
"total":5,
"deviceList":[
{
"wId":"5de40a08-3477-47c5-ac4a-2409e6ef371d",
"status":"offline"
},
{
"wId":"fcd4dbe1-87b6-4e60-90e3-2c6142014a29",
"status":"online"
}
]
},
"seq":"1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee2605a086c9f88332cc3321c142dddeb1f24c0f7027b1fdc5bc669a5d6afc06d31486f281029624b7d5dceb42d14a4c02f48e0294e8a58df104c4939a17767f4a7821a51762d8075bf25f8ee2828184bbdcb19edc3db8453e3a5a7418b0393a22b18bbe3a7c80bbccde29449a78936b4fbaa6c46d8e6f3655fa686cbc6f8fe1f48040b52acbd501b07c8d3abd19f88a0b48aa55028fbdf0fe398cd1200518170365938c81c0fbb2c3125edce138ea31090471947e38f3ad12e9a39e1241f6126272cfac77806e8671e42633268278339dc2f46b05fe6cdf11d7667084ec337d13f063dbfca2f83c474626d0b5a3f0c899e673a791be0c72ce9b598ed713f4b55f53582fc7a65a69315bc508c1d5d0ba0a6cd281ab25de74920258d849f70d7695bd
1
# 3.8 设备下载文件
- 设备收到的消息格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30003 |
value | JSON | 消息内容,如下实例 |
fileId | Stirng | 文件唯一标识 |
fileName | Stirng | 文件名 |
length | Integer | 上传文件大小 |
hash | String | 文件内容做SHA-256的hash,格式为16进制 |
url | String | 文件下载地址 |
data | String | 自定义透传消息 |
seq | String | 消息序号 |
- 明文
{
"timeStamp":1536151747890,
"random":1149701758,
"datapoint":30003,
"msgType":"report",
"wId":"d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"value":{
"fileId":"3364aef0-ca60-450a-b694-9dedae930b05",
"fileName":"testupload.jpg",
"length":25,
"hash":"73b48297c6ebac071ac66a03a8dabccbc9d0377c9b0b525d31e8cd14f5892713",
"url":"http://10.56.63.195:8504/file/upload/200200000000000008/2018-12-21/testupload?save_type=bigfiletodevice&wl_auth_sign=06f8789de2741cb7a29e40fa847a7e9cb2adcdc1fd27f9241515aa233566fe1b&wl_expire_time=1545406322095&wl_file_length=25&wl_file_sign=73b48297c6ebac071ac66a03a8dabccbc9d0377c9b0b525d31e8cd14f5892713&write_disk=d5",
"data":"photo"
},
"seq":"1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
# 3.9 设备上传文件
注:单个文件不超过300M,存储时间为24小时
设备上传文件分成三个步骤
设备请求上传
微瓴异步回复设备上传url
设备完成上传,上报给微瓴
设备请求上传格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30004 |
value | JSON | 消息内容,如下实例 |
fileName | Stirng | 文件名 |
length | Integer | 上传文件大小 |
hash | String | 文件内容做SHA-256的hash,格式为16进制 |
data | String | 自定义透传消息 |
seq | String | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"msgType": "report",
"random": 1149701758,
"timeStamp": 1536151747890,
"datapoint": 30004,
"value": {
"fileName": "testupload.jpg",
"data": "photo",
"length": 25,
"hash": "73b48297c6ebac071ac66a03a8dabccbc9d0377c9b0b525d31e8cd14f5892713"
},
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
- 微瓴异步回复设备上传url
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30004 |
value | JSON | 消息内容,如下实例 |
url | String | 文件上传url |
fileId | Stirng | 文件唯一标识 |
seq | Stirng | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"timeStamp":1536151747890,
"random":1149701758,
"datapoint":30004,
"msgType":"reportack",
"ackSeq":1149701758,
"wId":"d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"value":{
"url":"http://10.56.63.195:8504/file/upload/200200000000000008/2018-12-21/testupload?save_type=bigfiletodevice&wl_auth_sign=06f8789de2741cb7a29e40fa847a7e9cb2adcdc1fd27f9241515aa233566fe1b&wl_expire_time=1545406322095&wl_file_length=25&wl_file_sign=73b48297c6ebac071ac66a03a8dabccbc9d0377c9b0b525d31e8cd14f5892713&write_disk=d5",
"fileId":"3364aef0-ca60-450a-b694-9dedae930b05"
},
"seq":"1149701759"
}
2
3
4
5
6
7
8
9
10
11
12
13
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
- 设备发送文件上传结果
参数格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回 |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30005 |
value | JSON | 消息内容,如下实例 |
fileId | Stirng | 文件唯一标识 |
result | String | 固定参数,"success"、"fail" |
data | String | 自定义透传消息 |
seq | Stirng | 消息序号 |
举例
加密key:LjMAotJ58hncFXUJ
向量:hfvj91uWuOso3LtF
明文
{
"timeStamp": 1536151747890,
"random": 1149701758,
"datapoint": 30005,
"msgType": "report",
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"value": {
"fileId": "3364aef0-ca60-450a-b694-9dedae930b05",
"result": "success",
"data": "photo"
},
"seq": "1149701760"
}
2
3
4
5
6
7
8
9
10
11
12
13
- 密文(以下示例用16进制展示,实际传输数据使用的类型是字符集为UTF-8的字节数组)
477e616d551870f586497c75096a3193ead5247f72ff587b3f8ef1ee981860dd7087e525a3e59470596f40d36920ee266aefaf9fcdc0eeb00723f5712b274aeca21767a067d938a76c833259310afa15033eb2c2a90b960b3a833a946a1a6a7f759693c74c31109cc9abf5e5353d291f4428acbbe77c1c7a1900fe864da91833d14f9055be1adcc6a44543a93f2a005cb13779b47325da5aa2a6e708345eead1729199c1520fb5be676aac1ae6a020c3fa8c9e61e64c3ce7e92ab3fd602d9441fcaa5ed4e6a64aed4e8b3908d0809b5f74d7d6be3ee3bf4294504d24f95e3828aa0554875daa1403b16dfb79c4e019a2bd72e6ecd1cad5d7f4f8511f9fc06252e06fcbed81af49fffc0ab279f68decb30becf84f3edee669bd59ffa02ab01612b4bb3f860d8cf4d1552695be8b6c1a3d98497b1b3256102024aa0b67f7fd8d718bfac178fe9402a977ed7234e02a304845c230f229ca91c5653aae7884fabab94ca624764a2031060520d09bf14b60ec
1
# 3.10 OTA更新接收格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定为report |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30011 |
value | String | 消息自定义内容 |
fileId | Stirng | 文件唯一标识 |
fileName | Stirng | 文件名 |
length | Integer | 上传文件大小,单位:byte |
hash | String | 文件内容做SHA-256的hash,格式为16进制 |
url | String | 文件下载地址 |
data | String | 固件升级包的内容 |
ota_id | String | 固件的id值 |
name | String | 固件的名字 |
version | String | 固件的版本号 |
cmd | String | 升级指令,full:全量更新包 ,increment:增量更新包 |
seq | String | 消息序号 |
- 示例
{
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"msgType": "report",
"random": 1149701758,
"timeStamp": 1536151747890,
"datapoint": 222222,
"value": {
"fileId": "UUID",
"fileName": "WELINK-TH82S1-V1.0.0.0-build-20180509173508_test.bin",
"length": 1234,
"hash": "1234567890ABCDEF",
"url": "https://mvs-30035.sz.gfp.tencent-cloud.com//emulated/0/tencent/device/accesslog/1551345059794?sign=q-sign-algorithms6q-akDJwxbdHXcgrqZyWxNOcqdDnNq-sign-tim1551345059",
"data": "{\"ota_id\":\"292\",\"name\":\"固件升级\",\"cmd\":\"full\",\"version\":\"WELINK-TH82S1-V1.0.0.0\"}"
},
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 3.11 设备升级成功后上报升级结果
- 请求格式
key | value | description |
---|---|---|
wId | String | 设备唯一标识 |
msgType | String | report:主动发送,ack:查询返回,固定为ack |
random | Integer | 随机数 |
timeStamp | Long | 时间戳,单位:毫秒 |
datapoint | Integer | 功能码,固定为30012 |
value | String | 消息自定义内容 |
fileId | Stirng | 文件唯一标识 |
fileName | Stirng | 文件名 |
length | Integer | 下载的文件大小,单位:byte |
hash | String | 文件内容做SHA-256的hash,格式为16进制 |
ota_id | String | 当前ota升级包的id值,如果升级失败则保持之前的ota_id值 |
firmwareVersion | String | 当前ota升级包的固件版本号 |
result | String | 升级结果,success:成功 ,fail:失败 |
seq | String | 消息序号 |
- 示例
{
"wId": "d5d7c82d-9630-4278-8d35-a3dc4d650b0d",
"msgType": "ack",
"random": 3390683214,
"timeStamp": 1536151769890,
"datapoint": 30012,
"value": {
"fileId": "UUID",
"fileName": "WELINK-TH82S1-V1.0.0.0-build-20180509173508_test.bin",
"length": 1234,
"hash": "1234567890ABCDEF",
"ota_id": "292",
"firmwareVersion": "WELINK-TH82S1-V1.0.0.0",
"result": "success"
},
"seq": "1149701758"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17