设备数据上送、下置
Topic列表
<gateway_sn>/devices
设备列表上送(未压缩)
0/1
<gateway_sn>/devices_gz
设备列表上送(ZIP压缩)
0/1
<gateway_sn>/data
单个设备数据上送(未压缩)
0/1
<gateway_sn>/data_gz
多个设备数据上送(ZIP压缩)
0/1
<gateway_sn>/event
设备事件(未压缩)
0/1
<gateway_sn>/cached_data
断线缓存数据上送(未压缩)
0/1
<gateway_sn>/cached_data_gz
断线缓存数据上送(ZIP压缩)
0/1
<gateway_sn>/output
设备数据下置(网关订阅主题)
0/1
<gateway_sn>/result/output
设备数据下置结果反馈
0/1
<gateway_sn>/command
设备指令执行(网关订阅主题)
0/1
<gateway_sn>/result/command
设备指令执行结果反馈
0/1
备注:
所有Topic的Payload使用JSON格式数据
压缩是标准的ZIP压缩算法(如使用zlib库进行压缩)
gateway_sn 是网关产品序列号
网关连接平台成功后,需要订阅数据下置主题,以接收来自平台的数据下置消息
设备(模型)列表格式
示例:
{
"2-30002-001843-00059":{
"meta": {
"inst": "ThingsLink",
"description": "ThingsLink IOE Device",
"app": "FreeIOE",
"link": "http://device.freeioe.org/device?name=",
"app_inst": "ioe",
"platform": "openwrt/arm_cortex-a9_neon",
"skynet": 1892,
"name": "ThingsLink",
"series": "FreeIOE",
"manufacturer": "BambooShoots IOE",
"version": 1175,
"firmware": "1.95"
},
"inputs": [{
"name": "cpuload",
"desc": "CPU load avg_15"
}, {
"unit": "\u2103",
"name": "cpu_temp",
"desc": "CPU temperature"
}, {
"vt": "int",
"desc": "Running status of freeioe_Vserial",
"name": "app_run_freeioe_Vserial"
}],
"commands": [{
"name": "cfg_crash_ack",
"desc": "Configuration file crash acknowledgement"
}]
},
"2-30002-001843-00059.Net_info": {
"outputs": {},
"meta": {
"manufacturer": "BambooShoots IOE",
"inst": "net_info",
"description": "net_info Meta",
"app": "APP00000115",
"app_inst": "Net_info",
"series": "Unknown",
"name": "net_info",
"link": "http://device.freeioe.org/device?name="
},
"inputs": [{
"vt": "string",
"desc": "default_gw",
"name": "default_gw"
}, {
"vt": "string",
"desc": "gw_interface",
"name": "gw_interface"
}, {
"name": "del_interface",
"desc": "del_interface"
}, {
"name": "mod_interface",
"desc": "mod_interface"
}]
}
}
其中"2-30002-001843-00059"和"2-30002-001843-00059.Net_info"为JSON字典中的key,也是设备序列号,须保证平台唯一。 只能包含:数字、字母、-和.
设备模型信息说明
meta
设备信息
除去下述字段,用户可自定义其他字段信息
meta.manufacturer
设备厂家信息
meta.inst
设备在网关中的实例名称(如: 电表#1)
meta.description
设备描述
meta.app
隶属应用ID
meta.app_inst
隶属应用的实例名
meta.series
设备型号
meta.name
设备名称
meta.link
更多设备信息描述Link
inputs
设备数据项
数组(可扩展),用以数据上送(采集)
inputs[i].vt
数据类型
float/int/string 默认为float
inputs[i].name
名称
设备内唯一
inputs[i].desc
描述
inputs[i].unit
单位
outputs
设备输出项
数组(可扩展),用以数据下置
outputs[i].name
名称
设备内唯一
outputs[i].desc
描述
commands
设备指令项
数组(可扩展)
commands[i].name
名称
设备内唯一
commands[i].desc
描述
单个数据上送
数据格式:
[
["<device_sn>/<input_name>/<input_property>", "<value>", "<timestamp>", "<quality>"]
]
数据示例:
[
["TRTX011933000001/cpu_load/value", 0.12, 1562474541.01, 0]
]
device_sn
设备备序列号, 跟网关序列号一样,要保证本平台内唯一
input_name
设备采集点名称
input_property
采集属性(通常为value)组成
timestamp
数据时间戳(浮点)
小数部分是毫秒值,.01 是10毫秒
value
数据(整数、浮点、字符串)
quality
质量戳
表明数据质量,0代表数据可信,其他表示数据可信值较低
多个数据上送
格式为数组,数据示例
[
["<device_sn>/<input_name>/<input_property>", "<value>", "<timestamp>", "<quality>"],
["<device_sn>/<input_name>/<input_property>", "<value>", "<timestamp>", "<quality>"]
]
具体字段含义同单个数据上传的字段。
设备事件
数据示例:
[
"<device_sn>",
{
"level": 3,
"type": "DEV",
"info": "设备XXXX故障",
"data": {
"xxx": "xxxxxx"
}
},
1562474541.01
]
0
设备序列号
1
信息节点
.level
事件等级
.type
事件类型(SYS/DEV/COMM/DATA/APP)
字符串
.info
事件说明
字符串
.data
事件自定义数据
对象
2
时间戳
事件发生时间
数据下置格式
示例:
{
"id": "XXXXXX",
"data":{
"device": "<device_sn>",
"output": "<output_name>",
"prop":"value",
"value":10
}
}
id
数据下置指令唯一ID,用作反馈执行结果
建议使用UUID字符串
data
数据
data.device
设备序列号
data.output
设备输入项ID
data.prop
输出项属性名(通常为value)
data.value
输出内容(数字、字符串、JSON对象)
数据下置结果反馈
示例:
{
"id":"XXXXXX",
"result":true,
"message":"Output to xxxx successfully",
"timestamp":1562474541.01,
"timestamp_str":"Sun Jul 7 13:04:13 2019"
}
id
数据下置指令唯一ID
来自数据下置时平台下发的id属性
result
结果(boolean)
message
执行结果信息(字符串)
timestamp
执行反馈时间戳
timestamp_str
执行反馈时间戳字符串(不包含毫秒值)
设备指令执行
示例:
{
"id": "XXXXXXXX",
"data": {
"device": "<device_sn>",
"cmd": "stop_run",
"param": "force"
}
}
id
指令执行请求的唯一ID,用作反馈执行结果
建议使用UUID字符串
data
数据
data.device
设备序列号
data.cmd
设备指令名称
data.param
指令参数(数字、字符串、JSON对象)
指令执行结果反馈
示例:
{
"id":"XXXXXX",
"result":true,
"message":"Output to xxxx successfully",
"timestamp":1562474541.01,
"timestamp_str":"Sun Jul 7 13:04:13 2019"
}
id
指令执行请求的唯一ID
来自指令执行请求时平台下发的id属性
result
结果(boolean)
message
执行结果信息(字符串)
timestamp
执行反馈时间戳
timestamp_str
执行反馈时间戳字符串(不包含毫秒值)
交互流程

Last updated
Was this helpful?