北向WebAPI
# 接口说明
北向WebAPI说明
# 简介
本文档为IoTCenter平台北向通用API说明文档。
原则上本文档中API进行鉴权认证后,方可调用IoT平台上发布的业务类接口。
提示
状态码说明:
0:成功
-1:失败
# 业务流程
总体流程
业务接口使用前需要通过鉴权,鉴权有效时间为120分钟,在有效期内可无限次访问其他业务API接口,第三方应用需在120分钟内重新调用鉴权接口以实现续签。方可继续调用其他业务API。
传参说明
注意:所有接口中,都需在Headers头中增加X-ClientId参数,参数值为文档提供方提供的AppId值。
# 业务接口
# 鉴权
典型场景
第三方应用需要调用IoT平台业务及订阅API接口前,需调用此API实现鉴权认证。
接口功能
实现第三方应用在访问业务及订阅API之前的认证。
使用说明
注意事项
鉴权接口登录系统返回accessToken信息,有效期120分钟,其余业务接口需要在Header中添加Bearer Token。
前提条件
无
使用限制
无
接口原型
接口原型
请求方法 POST 请求地址 /south/platform/signIn 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 UserName 是 String body 第三方应用的身份标识,由物联网平台提供。 Password 是 String body 第三方应用的密码,与appID对应,用于登录访问物联网平台。 X-ClientId 是 string header 第三方应用的身份标识(appID),由物联网平台提供 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 accessToken 是 String 鉴权成功生成的Token,其余业务接口需在Header中添加此Token。 accessTokenExpired 是 int 平台生成并返回accessToken的有效时间。 单位:秒。 succeeded 是 bool 接口请求是否成功。成功:true;失败:false HTTP请求示例
代码
{ "UserName": "admin", "Password":"****************" }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "accessToken": "*****************", "accessTokenExpired": 7200 }, "succeeded": true }
# 查询终端列表信息
典型场景
当应用查询指定网关下所有终端的基本信息(终端类型,终端状态、经纬度等)时,需调用此接口。
接口功能
根根据给定的条件批量获取符合条件的终端信息列表。
交互流程
应用向平台发送查询终端信息的条件。
平台根据查询条件返回终端信息列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型
请求方法 POST 请求地址 /iot/ganwei/v2/devices 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken gatewayId 否 String body 网关标识 terminalId 否 int body 终端标识(优先选择) terminalNo 否 List<string> body 终端编码(terminalId和terminalNo二选一) terminalName 否 String body 终端名称 terminalTypeId 否 int body 终端类型Id terminalStatus 否 string body 查询终端的状态。
NoCommunication:离线;
CommunicationOK:正常;
HaveAlarm:报警;
HaveSetParm:正在设置中;
Initial:正在初始化;CheFang:撤防beginTime 否 String body 查询注册终端信息时间在beginTime之后的记录。
平台时间格式:
yyyy-MM-ddTHH:mm:ss。endTime 否 String body 查询注册终端信息时间在endTime之前的记录。
平台时间格式:
yyyy-MM-ddTHH:mm:ss。sort 否 String body 指定返回记录的排序。缺省值:DESC。
ASC:按注册终端的时间升序排列;
DESC:按注册终端的时间降序排列。accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 object 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<Device> 终端分页列表信息。 Device
名称 是否必选 是否可改 类型 说明 terminalId 是 否 Int 终端ID,用于唯一标识一个终端 terminalNo 是 否 String 终端编码 gatewayId 是 是 String 网关ID,用于标识一个测站。 createTime 是 否 String 创建终端的时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10。 lastModifiedTime 是 是 String 最后修改终端的时间。 terminalName 是 是 String 终端名称。 terminalTypes 是 是 String 终端类型 terminalTypeIds 是 是 String 终端类型Id longitude 否 是 String 经度 latitude 否 是 String 纬度 areaName 否 是 String 所属区域名称 buildName 否 是 String 所在建筑名称 unitName 否 是 String 所属单位名称 address 否 是 String 终端的位置信息 extendInfo 否 是 String 终端的扩展信息 remark 否 是 String 终端的描述信息 terminalStatus 否 否 String 终端的状态,共三类
NoCommunication:离线;
CommunicationOK:正常
HaveAlarm:报警eventTime 否 是 DateTime 当前时间 HTTP请求示例
代码
{ "pageNo": 1, "pageSize": 2 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "pageNo": 1, "pageSize": 2, "totalCount": 24, "totalPage": 12, "list": [ { "terminalId": 1, "terminalNo": "1", "gatewayId": "", "createTime": "2020-06-29T16:53:31", "lastModifiedTime": "2020-06-29T16:53:31", "terminalName": "企业用电-浦江县欣亚水晶饰品有限公司", "terminalTypes": "", "terminalTypeIds": "", "longitude": "", "latitude": "", "areaName": "", "buildName": "", "unitName": "", "address": "", "extendInfo": "", "remark": "", "terminalStatus": "NoCommunication", "eventTime": "2020-06-29T16:53:31" }, { "terminalId": 2, "terminalNo": "2", "gatewayId": "", "createTime": "2020-06-29T16:53:31", "lastModifiedTime": "2020-06-29T16:53:31", "terminalName": "企业用电-浙江浦江亿帆钻饰科技有限公司", "terminalTypes": "", "terminalTypeIds": "", "longitude": 0, "latitude": 0, "areaName": "", "buildName": "", "unitName": "", "address": "", "extendInfo": "", "remark": "", "terminalStatus": "NoCommunication", "eventTime": "2020-06-29T16:53:31" } ] }, "succeeded": true }
# 查询单个终端信息
典型场景
当应用查询指定网关下指定终端的基本信息(终端类型,终端状态、经纬度等)时,需调用此接口。
接口功能
根据给定的条件批量获取符合条件的终端信息列表。
交互流程
应用向平台发送查询终端信息的条件。
平台根据查询条件返回终端信息。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型
请求方法 POST 请求地址 /iot/ganwei/v2/device 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken terminalId 否 Int body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Device
名称 是否必选 是否可改 类型 说明 terminalId 是 否 Int 终端ID,用于唯一标识一个终端 terminalNo 是 否 String 终端编码 gatewayId 是 是 String 网关ID,用于标识一个测站。 createTime 是 否 String 创建终端的时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10。 lastModifiedTime 是 是 String 最后修改终端的时间。 terminalName 是 是 String 终端名称。 terminalTypes 是 是 String 终端类型 terminalTypeIds 是 是 String 终端类型Id longitude 否 是 String 经度 latitude 否 是 String 纬度 areaName 否 是 String 所属区域名称 buildName 否 是 String 所在建筑名称 unitName 否 是 String 所属单位名称 address 否 是 String 终端的位置信息 extendInfo 否 是 String 终端的扩展信息 remark 否 是 String 终端的描述信息 terminalStatus 否 否 String 终端的状态,共三类
NoCommunication:离线;
CommunicationOK:正常
HaveAlarm:报警eventTime 否 是 DateTime 当前时间 HTTP请求示例
代码
{ "terminalId": 1 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "terminalId": 1, "terminalNo": "1", "gatewayId": "", "createTime": "2020-06-29T16:53:31", "lastModifiedTime": "2020-06-29T16:53:31", "terminalName": "企业用电-浦江县欣亚水晶饰品有限公司", "terminalTypes": "", "terminalTypeIds": "", "longitude": "", "latitude": "", "areaName": "", "buildName": "", "unitName": "", "address": "", "extendInfo": "", "remark": "", "terminalStatus": "NoCommunication", "eventTime": "2020-06-29T16:53:31" }, "succeeded": true }
# 查询终端类型
典型场景
当应用需要查询终端信息中类型参数信息时,需调用此API。
接口功能
根据给定的条件获取符合条件的终端类型参数信息列表。
交互流程
应用请求调用终端类型参数API。
物联网平台返回终端类型参数信息列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型
请求方法 POST 请求地址 /iot/ganwei/v2/device/types 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
| 名称 | 是否必选 | 类型 | 位置 | 说明 | |---------------|----------|--------|--------|------------| | Authorization | 是 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken | | accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 lists 是 list<DevicePars> 终端参数列表信息。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 DevicePars
名称 是否必选 是否可改 类型 说明 terminalTypeId 否 否 Int 终端类型Id terminalTypeName 否 是 String 终端类型名称,如多传感器,接触传感器,摄像通道。 HTTP请求示例
代码
{ }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": [ { "terminalTypeId": 1, "terminalTypeName": "摄像通道" }, { "terminalTypeId": 2, "terminalTypeName": "可燃气体传感器" }, { "terminalTypeId": 3, "terminalTypeName": "接触传感器" }, { "terminalTypeId": 4, "terminalTypeName": "多传感器" }, { "terminalTypeId": 5, "terminalTypeName": "储罐" }, { "terminalTypeId": 6, "terminalTypeName": "温湿度传感器" } ], "succeeded": true }
# 查询终端属性及指令信息
典型场景
当应用查询指定网关下所有终端的属性(如终端的温度、压力、容量等)及指令(如开门/关门)信息时,需调用此接口。
接口功能
根据给定的条件批量获取符合条件的终端属性及指令信息列表。
交互流程
应用向平台发送查询终端属性及指令信息的条件。
平台根据查询条件返回终端属性及指令信息列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/device/propertys 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken gatewayId 否 String body 网关唯一标识。 terminalId 否 Int body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) terminalTypeId 否 int body 终端类型Id areaName 否 String body 查询指定区域下的终端,可模糊查询 buildName 否 String body 查询指定建筑中的终端,可模糊查询 unitName 否 String Body 查询指定单位的终端,可模糊查询 pageNo 否 Int body 查询的页码,第一页为1,缺省值为1 pageSize 否 Int body 查询每页信息的数量,范围0-50, 缺省值:25。 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<Property> 终端列表信息。 Property
名称 是否必选 是否可改 类型 说明 terminalId 是 否 String 终端标识。 terminalNo 是 否 String 终端编码 terminalName 是 是 String 终端属性名称 propertys 是 否 List<PropertyV2Item> 终端属性合集 PropertyV2Item
名称 是否必选 是否可改 类型 说明 propertyId 是 否 Int 终端属性Id propertyCode 是 否 String 终端属性编码 propertyName 是 是 String 终端属性名称 propertyType 是 否 String 终端属性类型 propertyIsAlarm 否 否 Bool 终端属性当前是否报警 propertyUnit 否 否 String 终端属性单位 propertyType 否 否 String propertyValue类型
YC:double,string
YX:string
SET:无HTTP请求示例
代码
{ "pageNo": 1, "pageSize": 50, "terminalId": "22254", "terminalNo": "1" }
HTTP响应示例
代码
{ "code": 200, "succeeded": true, "message": "Success", "data": { "pageNo": 1, "pageSize": 2, "totalCount": 144, "totalPage": 72, "list": [{ "terminalId": 1, "terminalNo": "1", "terminalName": "净水器", "propertys": [{ "propertyId": 1, "propertyCode": "233", "propertyName": "空气湿度04", "propertyType": "yc", "propertyValue": "28", "propertyIsAlarm": false, "propertyUnit": "℃", "propertyDataType": "double" }] }] } }
# 查询终端属性历史值
典型场景
当应用查询指定网关下所有终端属性的历史值时,需调用此接口,最大支持查询一年。
接口功能
根据给定的条件批量获取符合条件的终端信息列表。
交互流程
应用向平台发送查询终端属性历史值的条件。
平台根据查询条件返回终端属性历史值列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/device/property/history 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken propertyCode 是 String body 终端属性唯一标识。 terminalId 是 Int body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) beginTime 否 DateTime body 查询起始时间 endTime 否 DateTime body 查询终止时间 pageNo 否 Int body 查询的页码,第一页为1,缺省值为1 pageSize 否 Int body 查询每页信息的数量,范围0-50, 缺省值:25。 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<PropertyHistory> 终端列表信息。 PropertyHistory
名称 是否必选 是否可改 类型 说明 datetime 是 否 String 时间 value 是 是 String 值。 HTTP请求示例
代码
{ "pageNo": 1, "pageSize": 50, "propertyCode": "shidu", "terminalId": 22254, "terminalNo": "1", "beginTime": "2021-09-09 00:00:00", "endTime": "2021-09-09 16:00:00" }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "pageNo": 1, "pageSize": 25, "totalCount": 30, "totalPage": 2, "list": [ { "datetime": "2021-01-01T13:00:01", "value": 0 }, { "datetime": "2021-01-01T13:00:10", "value": 0 }, { "datetime": "2021-01-01T13:00:20", "value": 0 }, { "datetime": "22021-01-01T13:00:30", "value": 0 } ] }, "succeeded": true }
# 查询平台终端实时事件列表
典型场景
当应用查询指定网关下物联网平台实时终端事件(含报警、报警消除、指令下发)的信息时,需调用此接口。
接口功能
根据给定的条件批量获取符合条件的实时报警及消除信息列表。
交互流程
应用向平台发送查询终端实时事件(含报警、报警消除、指令下发)的条件。
平台根据查询条件返回终端实时事件(含报警、报警消除、指令下发)列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/device/events 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken terminalId 否 String body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) eventType 否 String body 事件类型
NORMAL:报警消除(恢复);
ABNORMAL:报警;
COMMAND:指令下发pageNo 否 Int body 查询的页码,第一页为1,缺省值为1 pageSize 否 Int body 查询每页信息的数量,范围0-50, 缺省值:25。 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<DeviceEvent> 查询列表信息。 DeviceEvent
名称 是否必选 是否可改 类型 说明 requestId 是 否 String 终端事件标识 terminalId 是 否 String 终端标识 terminalNo 是 否 String 终端编码 terminalName 否 否 String 终端名称 terminalType 否 否 String 终端类型 gatewayId 是 否 String 网关唯一标识。 propertyId 否 否 String 终端属性唯一标识 propertyName 否 否 String 终端属性名称 propertyType 是 否 String 终端属性类型,如压力、温度、湿度 propertyModel 是 否 String 终端属性模型
yc:属性(模拟量)
yx:属性(状态量)
Set:指令(设置量)eventType 是 否 String 事件类型
NORMAL:报警消除(恢复)
ABNORMAL:报警
COMMAND:指令下发eventContent 是 否 String 事件内容 eventTime 是 否 String 事件发生时间 currentValue 是 是 String 终端属性实时值 currentPropertyIsAlarm 否 是 String 终端属性实时状态
NORMAL:正常
ABNORMAL:报警
OFFLINE:离线propertyUnit 否 是 String 终端属性值的单位。如% terminalStatus 否 否 String 终端状态,共三类
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警HTTP请求示例
代码
{ "pageNo": 1, "pageSize": 10 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "pageNo": 1, "pageSize": 10, "totalCount": 2, "totalPage": 1, "list": [ { "requestId": "00f37aab-46c7-4d80-8c44-fb0670173925", "terminalId": "ae0c7032-d6a9-4240-bee9-d9b22229d002", "terminalNo": "1", "terminalName": "温湿度1", "terminalType": "test", "gatewayId": "", "propertyName": "", "propertyType": "", "propertyCode": "", "eventType": "COMMAND", "eventContent": "温湿度1-遥测设置1>>设置成功!---by:ganwei", "eventTime": "2020-06-30T13:35:04", "currentValue": "", "currentPropertyIsAlarm": "", "propertyUnit": "", "terminalStatus": "HaveAlarm" } ] }, "succeeded": true }
# 查询平台终端历史事件列表
典型场景
当应用查询指定网关下物联网平台历史终端事件(含报警、报警消除、指令下发)的信息时,需调用此接口。
接口功能
根据给定的条件批量获取符合条件的历史报警及消除信息列表。
交互流程
应用向平台发送查询终端历史事件(含报警、报警消除、指令下发)的条件。
平台根据查询条件返回终端历史事件(含报警、报警消除、指令下发)列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/device/events/history 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken terminalId 否 String body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) eventType 否 String body 事件类型
NORMAL:报警消除(恢复)
ABNORMAL:报警
COMMAND:指令下发beginTime 否 DateTime body 开始时间。起止时间不可跨天 endTime 否 DateTime body 终止时间。起止时间不可跨天 pageNo 否 Int body 查询的页码,第一页为1,缺省值为1 pageSize 否 Int body 查询每页信息的数量,范围0-50, 缺省值:25。 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<DeviceEvent> 终端列表信息。 DeviceEvent
名称 是否必选 是否可改 类型 说明 requestId 是 否 String 终端事件标识 terminalId 是 否 String 终端标识 terminalNo 是 否 String 终端编码 terminalName 否 否 String 终端名称 terminalType 否 否 String 终端类型 gatewayId 是 否 String 网关唯一标识。 propertyId 否 否 String 终端属性唯一标识 propertyName 否 否 String 终端属性名称 propertyType 是 否 String 终端属性模型
yc:属性(模拟量)
yx:属性(状态量)
Set:指令(设置量)eventType 是 否 String 事件类型
NORMAL:报警消除(恢复)
ABNORMAL:报警
COMMAND:指令下发eventContent 是 否 String 事件内容 eventTime 是 否 String 事件发生时间 currentValue 是 是 String 终端属性实时值 currentPropertyIsAlarm 否 是 String 终端属性实时状态
NORMAL:正常
ABNORMAL:报警
OFFLINE:离线propertyUnit 否 是 String 终端属性值的单位。如% terminalStatus 否 否 String 终端状态,共三类
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警HTTP请求示例
代码
{ "pageNo":1, "pageSize": 100, "beginTime": "2021-09-09 8:22:13", "endTime": "2021-09-09 16:22:13", "eventType":"ABNORMAL", "terminalId":22254, "terminalNo": "2" }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "pageNo": 1, "pageSize": 10, "totalCount": 2, "totalPage": 1, "list": [ { "requestId": "00f37aab-46c7-4d80-8c44-fb0670173925", "terminalId": "ae0c7032-d6a9-4240-bee9-d9b22229d002", "terminalNo": "2", "terminalName": "温湿度1", "terminalType": "test", "gatewayId": "", "propertyName": "", "propertyType": "", "propertyCode": "", "eventType": "COMMAND", "eventContent": "温湿度1-遥测设置1>>设置成功!---by:ganwei", "eventTime": "2020-06-30T13:35:04", "currentValue": "", "currentPropertyIsAlarm": "", "propertyUnit": "", "terminalStatus": "HaveAlarm" } ] }, "succeeded": true }
# 终端指令下发
典型场景
第三方应用向终端立即下发指令(如下发开门指令)时需调用此API,支持给本应用的终端和授予权限的其它应用的终端下发指令。
接口功能
应用给终端发送指令消息,实现对传感器的实时控制。平台分别提供了下发至终端或者具体某传感器的控制指令接口,下发消息的具体格式需要应用与终端自定义,平台在接口中进行封装与透传。应用发送命令/事件给网关(或者网关下的终端)指定的服务。
交互流程
应用请求调用终端指令下发API。
物联网平台下发命令到终端层。
使用说明
注意事项
终端具备功能:停用/启用,修改频率
测站具备功能:召测,修改频率
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/device/property/command 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken terminalId 否 Int body 终端标识(优先选择) terminalNo 否 String body 终端编码(terminalId和terminalNo二选一) propertyCode 否 String body 终端属性编码 value 否 String body 下发值
如开关门禁,1:关门 0:开门accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。
成功:200
失败:-1message 是 String 接口请求结果描述。 status 是 String 指令状态
sent:已发送。
failed:失败。commandTime 是 String 平台下发指令的时间
平台时间格式:
yyyy-MM-ddTHH:mm:ss。commandId 是 String 终端指令唯一标识。在下发终端命令时由物联网平台分配获得 HTTP请求示例
代码
{ "terminalId": 1, "terminalNo": "2", "propertyCode": "wenduset", "value": "25" }
HTTP响应示例
代码
{ "code": 200, "message": "终端指令下发成功", "status": "sent", "commandTime": "2020-06-22T13:27:22", "commandId": "56c7b1ea-0d46-4e0b-8788-a9cc1f8b3793" }
# 同步终端指令下
- 典型场景 第三方应用向终端立即下发指令(如下发开门指令)时需调用此API,支持给本应用的终端和授予权限的其它应用的终端下发指令。
- 接口功能 应用给终端发送指令消息,实现对传感器的实时控制。平台分别提供了下发至终端或者具体某传感器的控制指令接口,下发消息的具体格式需要应用与终端自定义,平台在接口中进行封装与透传。应用发送命令/事件给网关(或者网关下的终端)指定的服务。
- 交互流程 e) 应用请求调用终端指令下发API。 f) 物联网平台下发命令到终端层。
- 使用说明
- 注意事项 终端具备功能:停用/启用,修改频率
测站具备功能:召测,修改频率
- 前提条件
应用已完成鉴权,accessToken在有效期内。
- 使用限制
无
接口原型表格
请求方法 | POST |
---|---|
请求地址 | /iot/ganwei/v2/syncsend-command |
传输协议 | HTTP |
接口方式 | Restful |
- 请求参数
响应参数表格
名称 | 是否必选 | 类型 | 说明 | |
---|---|---|---|---|
Authorization | 是 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken |
terminalId | 否 | Int | body | 终端标识(优先选择) |
terminalNo | 否 | String | body | 终端编码(terminalId和terminalNo二选一) |
propertyCode | 否 | String | body | 终端属性编码 |
value | 否 | String | body | 下发值 如开关门禁,1:关门 0:开门 |
accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |
如开关门禁,1:关门 0:开门
- 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0失败:-1或者大于0。(大于0时参考具体错误代码) |
message | 是 | String | 接口请求结果描述。 |
data | 是 | object | 设备返回的原始信息 |
succeeded | 是 | Bool | 接口请求是否成功。成功:true失败:false |
data
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
resCode | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0失败:-1或者大于0。(大于0时参考具体错误代码) |
resMsg | 是 | String | 接口请求结果描述。 |
data | 是 | String | 接口返回内容 |
requestId | 是 | String | 同步接口请求id |
- HTTP请求示例
{
"terminalId": 1,
"terminalNo": "2",
"propertyCode": "wenduset",
"value": "25"
}
- HTTP响应示例
{
"data": {
"resCode": "0",
"resMsg": "Success",
"data": "",
"requestId": "255a3321-547d-45f2-b3ad-d17a6c9f7abd"
},
"code": 200,
"message": "操作成功",
"succeeded": true
}
# 批量查询终端状态
- 典型场景 批量查询终端状态时,需调用此接口。
- 接口功能 根据给定的条件批量获取符合条件的终端信息列表。 交互流程 m) 应用向平台发送查询终端信息的条件。 n) 平台根据查询条件返回终端信息。
- 使用说明
无
- 注意事项
无
- 前提条件
应用已完成鉴权,accessToken在有效期内。
- 使用限制 无
- 接口原型
请求方法 | POST |
---|---|
请求地址 | /iot/ganwei/v2/device/GetListDeviceStatus |
传输协议 | HTTP |
接口方式 | Restful |
- 请求参数
名称 | 是否必选 | 类型 | 位置 | 说明 |
---|---|---|---|---|
Authorization | 是 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。格式:Bearer accessToken |
TerminalNos | 否 | List<string> | body | 终端编码 |
pageNo | 否 | Int | body | 查询的页码,第一页为1 |
pageSize | 否 | Int | body | 查询每页信息的数量,范围0-100 |
accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |
- 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0失败:-1或者大于0。(大于0时参考具体错误代码) |
message | 是 | String | 接口请求结果描述。 |
data | 是 | Object | 查询结果集合 |
succeeded | 是 | Bool | 接口请求是否成功。成功:true失败:false |
Page
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
pageNo | 是 | Int | 查询的页码。 |
pageSize | 是 | Int | 查询每页信息的数量。 |
totalCount | 是 | Int | 查询的记录数量。 |
totalPage | 是 | Int | 查询的总页数。 |
list | 是 | List<Device> | 终端分页列表信息。 |
Device
名称 | 是否必选 | 是否可改 | 类型 | 说明 |
---|---|---|---|---|
terminalId | 是 | 否 | Int | 终端ID,用于唯一标识一个终端 |
terminalNo | 是 | 否 | String | 终端编码 |
terminalStatus | 否 | 否 | String | 终端的状态,共三类NoCommunication:离线CommunicationOK:正常HaveAlarm:报警 |
- HTTP请求示例
{
"pageNo": 1,
"pageSize": 10
}
- HTTP响应示例
{
"data": {
"pageNo": 1,
"pageSize": 10,
"totalCount": 151,
"totalPage": 16,
"list": [
{
"terminalId": 2736,
"terminalNo": "13855",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2737,
"terminalNo": "13856",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2738,
"terminalNo": "13857",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2739,
"terminalNo": "13858",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2740,
"terminalNo": "13859",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2741,
"terminalNo": "13860",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2742,
"terminalNo": "13861",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2743,
"terminalNo": "13862",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2744,
"terminalNo": "13863",
"terminalStatus": "CommunicationOK"
},
{
"terminalId": 2745,
"terminalNo": "13864",
"terminalStatus": "CommunicationOK"
}
]
},
"code": 200,
"message": "操作成功",
"succeeded": true
}
# 确认实时快照事件
- 典型场景
当需要确认实时快照信息时需调用此接口。
- 接口功能
根据给定的条件确认实时快照信息。
使用说明
注意事项
无
- 前提条件
应用已完成鉴权,accessToken在有效期内。
- 使用限制
无
- 接口原型
请求方法 | POST |
---|---|
请求地址 | /v2/device/events/ConfirmedEvent |
传输协议 | HTTP |
接口方式 | Restful |
- 请求参数
名称 | 是否必选 | 类型 | 位置 | 说明 |
---|---|---|---|---|
Authorization | 是 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。格式:BeareraccessToken |
requestId | 是 | String | body | 实时快照唯一标识 |
ProcMsg | 是 | String | body | 处理意见 |
WuBao | 是 | Int | Body | 是否误报 |
accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |
- 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0失败:-1或者大于0。(大于0时参考具体错误代码) |
message | 是 | String | 接口请求结果描述。 |
succeeded | 是 | Bool | 接口请求是否成功成功:true失败:false |
- HTTP请求示例
{
"requestId":"53a03da5-b132-4fad-b4b9-aeaf0004c24f",
"ProcMsg": "确认",
"WuBao": 1
}
- HTTP响应示例
{
"code": 200,
"message": "操作成功",
"succeeded": true
}
# 查询序列类型终端属性历史值
- 典型场景
当应用查询指定网关下所有终端属性的历史值时,需调用此接口,最大支持查询一年。
- 接口功能
根据给定的条件批量获取符合条件的终端信息列表。 交互流程 p) 应用向平台发送查询终端属性历史值的条件。 q) 平台根据查询条件返回终端属性历史值列表。
- 使用说明
- 注意事项 无
- 前提条件 应用已完成鉴权,accessToken在有效期内。
- 使用限制 无
- 接口原型
请求方法 | POST |
---|---|
请求地址 | /iot/ganwei/v2/device/property/GetSeqDataFromCurveAsync |
传输协议 | HTTP |
接口方式 | Restful |
- 请求参数
名称 | 是否必选 | 类型 | 位置 | 说明 |
---|---|---|---|---|
Authorization | 是 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。格式:Bearer accessToken |
propertyCode | 是 | String | body | 终端属性唯一标识。 |
terminalId | 是 | Int | body | 终端标识(优先选择) |
terminalNo | 否 | String | Body | 终端编码(terminalId和terminalNo二选一) |
beginTime | 否 | DateTime | Body | 查询起始时间。 |
endTime | 否 | DateTime | Body | 查询终止时间。 |
pageNo | 否 | Int | body | 查询的页码,第一页为1,缺省值为1 |
pageSize | 否 | Int | body | 查询每页信息的数量,范围0-50, 缺省值:25。 |
accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |
- 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0失败:-1或者大于0。(大于0时参考具体错误代码) |
message | 是 | String | 接口请求结果描述。 |
data | 是 | Page | 查询结果集合。 |
succeeded | 是 | Bool | 接口请求是否成功成功:true 失败:false |
Page
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
pageNo | 是 | Int | 查询的页码。 |
ageSize | 是 | Int | 查询每页信息的数量。 |
totalCount | 是 | Int 查询的记录数量。 | |
totalPage | 是 | Int | 查询的总页数。 |
lists | 是 | List<PropertyHistory> | 终端列表信息。 |
PropertyHistory
名称 | 是否必选 | 是否可改 | 类型 | 说明 |
---|---|---|---|---|
datetime | 是 | 否 | String | 时间 |
value | 是 | 是 | String | 值。 |
- HTTP请求示例
{
"pageNo": 1,
"pageSize": 100,
"propertyCode": "shidu",
"terminalId": 22254,
"terminalNo": "1",
"beginTime": "2021-09-09 00:00:00",
"endTime": "2021-09-09 16:00:00"
}
- HTTP响应示例
{
"data": {
"pageNo": 1,
"pageSize": 100,
"totalCount": 0,
"totalPage": 0,
"list": []
},
"code": 200,
"message": "操作成功",
"succeeded": true
}
# 查询字符串类型终端属性历史值
- 典型场景
当应用查询指定网关下所有终端属性类型为字符串的历史值时,需调用此接口,最大支持查询一年。
- 接口功能
根据给定的条件批量获取符合条件的终端信息列表。
交互流程
r) 应用向平台发送查询终端属性历史值的条件。
s) 平台根据查询条件返回终端属性历史值列表。
- 使用说明
- 注意事项 无
- 前提条件
应用已完成鉴权,accessToken在有效期内。
- 使用限制 无
- 接口原型
请求方法 | POST |
---|---|
请求地址 | /iot/ganwei/v2/device/property/GetStringInfoFromCurve |
传输协议 | HTTP |
接口方式 | Restful |
- 请求参数
名称 | 是否必选 | 类型 | 位置 | 说明 |
---|---|---|---|---|
Authorization | 否 | String | Header | 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。格式:Bearer accessToken |
propertyCode | 是 | String | body | 终端属性唯一标识。 |
terminalId | 是 | Int | body | 终端标识(优先选择) |
terminalNo | 否 String | Body | 终端编码(terminalId和terminalNo二选一) | |
beginTime | 否 | String | DateTime | 查询起始时间。 |
endTime | 否 | String | DateTime | 查询终止时间。 |
pageNo | 否 | Int | body | 查询的页码,第一页为1,缺省值为1 |
pageSize | 否 | Int | body | 查询每页信息的数量,范围0-50, 缺省值:25。 |
accept-language | 是 | string | header | 中文:zh-CN;英文:en-US |
- 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 |
message | 是 | String | 接口请求结果描述。 |
data | 是 | Page | 查询结果集合。 |
succeeded | 是 | Bool | 接口请求是否成功成功:true失败:false |
Page
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
pageNo | 是 | Int | 查询的页码。 |
pageSize | 是 | Int | 查询每页信息的数量。 |
totalCount | 是 | Int | 查询的记录数量。 |
totalPage | 是 | Int | 查询的总页数。 |
lists | 是 | List<PropertyHistory> | 终端列表信息。 |
PropertyHistory
名称 | 是否必选 | 是否可改 | 类型 | 说明 |
---|---|---|---|---|
datetime | 是 | 否 | String | 时间 |
value | 是 | 是 | String | 值。 |
- HTTP请求示例
{
"pageNo": 1,
"pageSize": 100,
"propertyCode": "shidu",
"terminalId": 22254,
"terminalNo": "1",
"beginTime": "2021-09-09 00:00:00",
"endTime": "2021-09-09 16:00:00"
}
- HTTP响应示例
{
"data": {
"pageNo": 1,
"pageSize": 100,
"totalCount": 0,
"totalPage": 0,
"list": []
},
"code": 200,
"message": "操作成功",
"succeeded": true
}
# 订阅接口
# 创建订阅
典型场景
应用服务器需要订阅消息推送(如终端属性数据变化,终端在离线变化等)的通知时,可调用此接口进行消息订阅。
接口功能
根据给定的条件订阅消息推送数据。
交互流程
应用依据需求请求调用创建订阅API。
物联网平台返回订阅结果。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/subscription/create 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken subscriptionName 是 String body 订阅名称 terminalTypeIdList 是 Int[] body 授权终端Id callbackUrl 是 String body 订阅回调地址 callbackappId 是 String body 订阅回调请求账号 callbackappkey 是 String body 订阅回调请求密钥 protocolType 否 Int body 协议类型
1:Https
2:Http
3:Kafka
4:Activemq
5:Rabbitmq
6:MqttdataType 否 Int body 通知类型
1:DATA_CHANGED(终端属性变化)
2:EVENT_CHANGED(终端事件)
3:STATUS_CHANGED(终端状态变化)
4:COMMAND_RESPONSE(终端命令响应)mqsTopic 否 String body MQS消息主题 sslPath 否 String body SSL证书路径 sslPassword 否 String body SSL证书密码(加密存储) subState 否 Int body 是否有效 0:失效 1:有效 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 Int 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 SubCreate 执行结果。 0订阅失败 1 订阅成功 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 SubCreate
名称 是否必选 类型 说明 Id 是 Int 订阅ID HTTP请求示例
代码
{ "subscriptionName": "终端属性变化", "terminalTypeIdList": [1], "callbackUrl": "10.51.9.152:9092,10.51.9.77:9092,10.51.9.184:9092", "callbackappId": "ganwei//Kafka账号", "callbackappkey": "15a8728fc3b84636912e76a1fbd7f6ac//Kafka密码", "protocolType": 3//Kafka, "dataType": 1//DATA_CHANGED, "mqsTopic": "T_GANWEI_DEVICE_DATA_CHANGED_JiaJu", "sslPath": null, "sslPassword": null, "state": 1 }
HTTP响应示例
代码
{ "data":{ "Id": 1 }, "code": 200, "message": "Success", "succeeded": true }
# 查询订阅列表
典型场景
应用服务器可在物联网平台上创建多个订阅,以订阅不同类型的消息推送通知。应用服务器若需要查看多个订阅的配置信息,可调用此接口进行查询。
接口功能
根据给定的条件获取符合条件的订阅配置信息列表。
交互流程
应用请求调用查询订阅列表API。
物联网平台返回订阅配置信息列表。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/subscription/query 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken protocolType 否 Int body 协议类型
1:Https
2:Http
3:Kafka
4:Activemq
5:Rabbitmq
6:MqttdataType 否 Int body 通知类型
1:DATA_CHANGED(终端属性变化)
2:EVENT_CHANGED(终端事件)
3:STATUS_CHANGED(终端状态变化)
4:COMMAND_RESPONSE(终端命令响应)subscriptionId 否 Int body 订阅Id appId 否 String body 应用Id channelType 否 String body 类型。 RomaOfflineApi:线下Roma北向Api RestfulApi:第三方平台API RomaConnectKafka:线上ROMA-Kafka 默认RestfulApi。 notifyType 否 String body 通知类型。 T_GANWEI_DEVICE_DATA_CHANGED:终端属性数据变化通知 T_GANWEI_DEVICE_STATUS_CHANGED:终端在离线变化通知 T_GANWEI_DEVICE_EVENT:终端事件变化通知 T_GANWEI_COMMAND_RESPONSE:终端指令下发结果通知 T_GANWEI_DEVICE_INFO_CHANGED:终端信息变化通知 state 否 Int body 是否有效 0:失效 1:有效 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 data 是 Page 查询结果集合。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 Page
名称 是否必选 类型 说明 pageNo 是 Int 查询的页码。 pageSize 是 Int 查询每页信息的数量。 totalCount 是 Int 查询的记录数量。 totalPage 是 Int 查询的总页数。 list 是 List<Subscription> 查询列表信息。 Subscriptions
名称 是否必选 是否可改 类型 说明 subscriptionId 是 String body 订阅Id appId 否 String body 应用Id callbackUrl 是 String body 回调地址 callbackappId 否 String body 回调地址请求账号 callbackappkey 否 String body 回调地址请求密钥 protocolType 否 Int body 协议类型
1:Https
2:Http
3:Kafka
4:Activemq
5:Rabbitmq
6:MqttdataType 否 Int body 通知类型
1:DATA_CHANGED(终端属性变化)
2:EVENT_CHANGED(终端事件)
3:STATUS_CHANGED(终端状态变化)
4:COMMAND_RESPONSE(终端命令响应)mqsTopic 否 String MQS消息主题 sslPath 否 String SSL证书路径 sslPassword 否 String SSL证书密码(加密存储) subTime 否 DateTime body 订阅时间 delTime 否 DateTime body 失效时间 state 否 Int body 是否有效 0:失效 1:有效 HTTP请求示例
代码
{ "pageNo": 1, "pageSize": 10 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "data": { "pageNo": 1, "pageSize": 10, "totalCount": 1, "totalPage": 1, "list": [ { "subscriptionId": "15a8728fc3b84636912e76a1fbd7f6ac", "appId": "admin", "callbackUrl": "/iot/ganwei/v2/subscription/query", "callbackappId": "user", "callbackappkey": "123", "protocolType": 1, "dataType": 2, "subTime": "2020-07-20T15:50:40", "delTime": null, "state": 1 } ] }, "succeeded": true }
# 修改订阅
典型场景
应用服务器需要修改订阅消息配置时,可调用此接口进行消息订阅配置变更。
接口功能
根据给定的条件修改订阅消息配置数据。
交互流程
应用依据需求请求调用修改订阅API。
物联网平台返回修改结果。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/subscription/edit 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken subscriptionId 是 Int body 订阅Id subscriptionName 是 String body 订阅名称 terminalTypeIdList 是 Int[] body 授权终端Id callbackUrl 否 String body 订阅回调地址 callbackappId 否 String body 订阅回调请求账号 callbackappkey 否 String body 订阅回调请求密钥 protocolType 否 Int body 协议类型
1:Https
2:Http
3:Kafka
4:Activemq
5:Rabbitmq
6:MqttdataType 否 Int body 通知类型
1:DATA_CHANGED(终端属性变化)
2:EVENT_CHANGED(终端事件)
3:STATUS_CHANGED(终端状态变化)
4:COMMAND_RESPONSE(终端命令响应)mqsTopic 否 String body MQS消息主题 sslPath 否 String body SSL证书路径 sslPassword 否 String body SSL证书密码(加密存储) state 否 Int body 是否有效 0:失效 1:有效 accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 SHTTP请求示例
代码
{ "subscriptionName": "终端属性", "terminalTypeIdList": [1], "callbackUrl": "https://192.168.0.126:44380/iot/ganwei/v1/gateway/database/sync21", "callbackappId": "user", "callbackappkey": "123", "protocolType": 1, "dataType": 1, "mqsTopic": "T_GANWEI_DEVICE_DATA_CHANGED_JiaJu111111", "sslPath": null, "sslPassword": null, "state": 1, "subscriptionId": 42 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "succeeded": true }
# 删除订阅
典型场景
应用服务器需要删除订阅消息通知时,可调用此接口进行删除订阅。
接口功能
根据给定的条件删除订阅。
交互流程
应用依据需求请求调用删除订阅API。
物联网平台返回订阅结果。
使用说明
注意事项
无
前提条件
应用已完成鉴权,accessToken在有效期内。
使用限制
无
接口原型
接口原型表格
请求方法 POST 请求地址 /iot/ganwei/v2/subscription/delete 传输协议 HTTP 接口方式 Restful 请求参数
请求参数表格
名称 是否必选 类型 位置 说明 Authorization 是 String Header 访问IoT平台的认证信息,值为accessToken,accessToken值为调用鉴权接口返回的accessToken。 格式:Bearer accessToken subscriptionId 是 Int header 订阅Id accept-language 是 string header 中文:zh-CN;英文:en-US 响应参数
响应参数表格
名称 是否必选 类型 说明 code 是 String 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:0 失败:-1或者大于0。(大于0时参考具体错误代码) message 是 String 接口请求结果描述。 succeed 是 Bool 接口请求是否成功。 成功:true。 失败:false。 SHTTP请求示例
代码
{ "subscriptionId":1 }
HTTP响应示例
代码
{ "code": 0, "message": "Success", "succeeded": true }
# 消息推送模型
# 终端属性数据变化通知
典型场景
平台发现终端属性数据变化时(如温度值的变化),消息主题Topic为DATA_CHANGED,第三方应用可订阅该Topic,实时监听终端属性数据变化消息。
消息功能
平台使用此消息主题将终端数据的变化通知给第三方应用。
交互流程
真实终端数据发生变化。
平台检测到此变化,主动推送变化数据到消息主题Topic中。
第三方应用监听DATA_CHANGED主题,实时获取终端属性数据消息
使用说明
注意事项
无
前提条件
应用已完成消息主题订阅。
使用限制
无
消息主题
DATA_CHANGED
参数说明
参数说明表格
名称 是否必选 类型 说明 requestId 是 String 消息的序列号,唯一标识该消息 terminalId 是 String 终端唯一标识 terminalName 是 String 终端属性唯一标识 terminalNo 是 String 终端编码 terminalTypeId 是 Int[] 终端类型Id(数组) terminalTypeName 是 String[] 终端类型名称(数组) gatewayId 否 String 网关标识 notifyType 是 String 平台发布通知类型
终端属性变化:DATA_CHANGEDmqsTime 是 String 变化时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10 terminalStatus 是 String 终端状态
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警Data 是 List<TerminalDataInfo> 终端下各个属性实时信息集合 TerminalDataInfo终端属性对象如下:
名称 是否必选 类型 说明 propertyName 是 String 终端属性名称 propertyCode 是 String 终端属性编码 propertyType 是 String 终端属性类型:YC,YX,SET propertyValue 是 String 终端属性实时值 propertyIsAlarm 是 Bool 终端属性是否报警 propertyUnit 否 String 终端属性单位 propertyDataType 是 String propertyValue类型
YC:double,string
YX:string
SET:无消息示例
代码
{ "requestId":"6c505c63-fbb3-483e-aa7c-dc7c8b9bae13", "terminalId":24, "terminalNo":"1", "terminalName":"温湿度#11146", "terminalTypeId":"[1]", "terminalTypeName":"["智能温感设备"]", "gatewayId":"1122", "notifyType":"DATA_CHANGED", "mqsTime":"2021-08-06 17:02:07.855", "terminalStatus":"CommunicationOK", "Data":[ { "propertyName":"温度", "propertyCode":"wendu", "propertyType":"YC", "propertyValue":"21", "propertyIsAlarm":false, "propertyUnit":"℃", "propertyDataType":"string" }, { "propertyName":"湿度", "propertyCode":"shidu", "propertyType":"YC", "propertyValue":"43", "propertyIsAlarm":false, "propertyUnit":"%", "propertyDataType":"string" } ] }
# 终端在离线变化通知
典型场景
平台发现终端在离线或网络连接中断时(如水质终端异常离线),消息主题Topic为STATUS_CHANGED,第三方应用可订阅该Topic,实时监听终端状态变化消息。
消息功能
平台使用此消息主题将终端状态的变化通知给第三方应用。
交互流程
真实终端状态发生变化,异常离线。
平台检测到此变化,主动推送状态变化到消息主题Topic中。
第三方应用监听STATUS_CHANGED主题,实时获取终端状态消息
使用说明
注意事项
无
前提条件
应用已完成消息主题订阅。
使用限制
无
消息主题
STATUS_CHANGED
参数说明
参数说明表格
名称 是否必选 类型 说明 requestId 是 String 消息的序列号,唯一标识该消息 terminalId 是 String 终端唯一标识 terminalName 是 String 终端属性唯一标识 terminalTypeId 是 String 终端类型Id(数组) terminalNo 是 String 终端编码 terminalTypeName 是 String 终端类型名称(数组) gatewayId 否 String 网关标识 notifyType 是 String 平台发布通知类型
终端属性变化:STATUS_CHANGEDmqsTime 是 String 变化时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10 terminalStatus 是 String 终端状态
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警Data 是 TerminalStateInfo 当前终端状态 TerminalStateInfo对象如下
名称 是否必选 类型 说明 terminalStatus 是 String 终端状态
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警消息示例
代码
{ "requestId":"6c505c63-fbb3-483e-aa7c-dc7c8b9bae13", "terminalId":24, "terminalNo":"1", "terminalName":"温湿度#11146", "terminalTypeId":"[1]", "terminalTypeName":"["智能温感设备"]", "gatewayId":"1122", "notifyType":"STATUS_CHANGED", "mqsTime":"2021-08-06 17:02:07.855", "terminalStatus":"CommunicationOK", "Data":{ "terminalStatus":"CommunicationOK" } }
# 终端事件变化通知
典型场景
平台发现终端事件(含报警、报警消除、指令下发)变化时(如温度值越线报警、烟感终端恢复通讯、门禁终端开/关门指令),消息主题Topic为DEVICE_EVENT,第三方应用可订阅该Topic,实时监听终端事件变化消息。
消息功能
平台使用此消息主题将终端事件(含报警、报警消除、指令下发)变化通知给第三方应用。
交互流程
真实终端数据发生变化,超出阈值范围。
平台检测到此变化,触发越限报警,主动推送此报警事件变化数据到消息主题Topic中。
第三方应用监听EVENT_CHANGED主题,实时获取终端事件消息
使用说明
注意事项
无
前提条件
应用已完成消息主题订阅。
使用限制
无
消息主题
EVENT_CHANGED
参数说明
参数说明表格
名称 是否必选 类型 说明 requestId 是 String 消息的序列号,唯一标识该消息 terminalId 是 String 终端唯一标识 terminalName 是 String 终端属性唯一标识 terminalTypeId 是 String 终端类型Id(数组) terminalNo 是 String 终端编码 terminalTypeName 是 String 终端类型名称(数组) gatewayId 否 String 网关标识 notifyType 是 String 平台发布通知类型
终端属性变化:STATUS_CHANGEDmqsTime 是 String 变化时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10 terminalStatus 是 String 终端状态
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警Data 是 TerminalAlarmInfo 终端事件信息 TerminalAlarmInfo终端属性对象如下:
名称 是否必选 类型 说明 propertyName 是 String 终端属性名称 propertyCode 是 String 终端属性编码 propertyType 是 String 终端属性类型:YC,YX,SET propertyValue 是 String 终端属性实时值 ropertyIsAlarm 是 Bool 终端属性是否报警 propertyUnit 否 String 终端属性单位 eventType 是 String 事件类型:恢复正常,告警 eventContent 是 String 事件内容 propertyDataType 是 String propertyValue类型
YC:double,string
YX:string
SET:无消息示例
代码
{ "requestId":"6c505c63-fbb3-483e-aa7c-dc7c8b9bae13", "terminalId":24, "terminalNo":"1", "terminalName":"温湿度#11146", "terminalTypeId":"[1]", "terminalTypeName":"["智能温感设备"]", "gatewayId":"1122", "notifyType":"EVENT_CHANGED", "mqsTime":"2021-08-06 17:02:07.855", "terminalStatus":"CommunicationOK", "Data":{ "propertyName":"温度", "propertyCode":"wendu", "propertyType":"YC", "propertyValue":"21", "propertyDataType":"string", "propertyIsAlarm":false, "propertyUnit":"℃", "eventType":"恢复正常", "eventContent":"温度恢复正常" } }
# 终端指令下发结果通知
典型场景
平台发现终端指令下发结果执行完成时(如门禁终端开门指令执行完成),消息主题Topic为COMMAND_RESPONSE,第三方应用可订阅该Topic,实时监听终端指令执行结果消息。
消息功能
平台使用此消息主题将终端指令执行结果通知给第三方应用。
交互流程
第三方应用调用终端指令下发接口,执行指令动作。
平台检测到指令请求,将指令下发至终端层,同时生成唯一指令Id返回接口请求,当平台监听到终端层响应指令并执行完成后,主动推送指令执行结果消息到主题Topic中。
第三方应用监听COMMAND_RESPONSE主题,实时获取消息,依据请求接口返回的指令Id获取指令执行结果。
使用说明
注意事项
无
前提条件
应用已完成消息主题订阅。
使用限制
无
消息主题
COMMAND_RESPONSE
参数说明
参数说明表格
名称 是否必选 类型 说明 requestId 是 String 消息的序列号,唯一标识该消息 terminalId 是 String 终端唯一标识 terminalName 是 String 终端属性唯一标识 terminalTypeId 是 String 终端类型Id(数组) terminalNo 是 String 终端编码 terminalTypeName 是 String 终端类型名称(数组) gatewayId 否 String 网关标识 notifyType 是 String 平台发布通知类型
终端属性变化:STATUS_CHANGEDmqsTime 是 String 变化时间,时间格式:yyyy-MM-dd HH:mm:ss,如2019-09-27 17:54:10 terminalStatus 是 String 终端状态
NoCommunication:离线
CommunicationOK:正常
HaveAlarm:报警Data 是 TerminalCommandInfo 命令响应内容 TerminalCommandInfo终端属性对象如下:
名称 是否必选 类型 说明 propertyName 是 String 终端属性名称 propertyCode 是 String 终端属性编码 CommandResult 是 Bool 是否成功 CommandMsg 是 String 执行结果描述 CommandRequestId 否 Bool 下发命令时传入的标识 消息示例
代码
{ "requestId":"6c505c63-fbb3-483e-aa7c-dc7c8b9bae13", "terminalId":24, "terminalNo":"1", "terminalName":"温湿度#11146", "terminalTypeId":"[1]", "terminalTypeName":"["智能温感设备"]", "gatewayId":"1122", "notifyType":"COMMAND_RESPONSE", "mqsTime":"2021-08-06 17:02:07.855", "terminalStatus":"CommunicationOK", "Data":{ "propertyName":"温度", "propertyCode":"wendu", "CommandResult":true, "CommandMsg":"执行成功", "CommandRequestId":"", } }