接口说明
- 适用范围:使用 AnyLink 系列产品的用户,可以调用本文档描述的 RESTful API,查询和控制设备数据。
- 接口地址:https://s1.anylink.io:8443,本文档内简称为 <%=BaseUrl%>。
- 编码方式:除非特殊说明,本文档中的接收和返回参数编码方式都为 UTF-8。
- 兼容性:接口返回数据为 JSON 格式,在后续的升级中扩展字段,会兼容旧版本。
- http接口地址:http://s1.anylink.io:8600。
接口鉴权
采用 token 鉴权:调用其他接口前,需要先用账号密码获取 token。
请求类型: POST
URI: /user/getToken
参数:
{ "tenantEname": "企业号",/*必须*/ "name": "用户名",/*必须*/ "password": "密码",/*必须,明文*/ "hash": "一个任意字符串"/*必须*/ }
返回:
{ "status": "100", "data": "token,令牌" }
- 多租户登录的账号格式为 用户名@企业号,账号密码请咨询企业管理员。
- token 有效期 600 分钟,超期需要重新获取。
- 旧版登陆方式 /user/login 仍然有效,但建议尽快切换至新版多租户登陆。
名词解释
-
网关(agent):即 AnyLink 系列硬件产品,DA、SE、IE 等。
-
设备(device):即网关监控的设备,网关采集设备的数据,上传到云端。
-
数据项(dataItem):某一个设备中配置的监控数据项,可写数据支持远程控制。
-
告警(alarm):某一个设备中,针对数据项配置的告警规则,触发告警产生告警消 息,告警解除产生恢复通知。
设备查询接口
分页获取网关-设备列表
请求类型: GET
URI: /agentList/pagination
参数:
{ "token": "令牌",/*必须*/ "page": "页数",/*必须*/ "perPage": "每页记录数",/*必须*/ "agentId": "网关序列号",/*如果却省则返回所有网关信息*/ "condition": "网关状态,/*1表示在线,0表示离线", /*如果缺省则返回所有设备*/ }
返回:
{ "status": "100", "result": { "pageInfo": { "page": "页数", "perPage": "每页记录数", "total": "总数" }, "data": [{ "serialNumber": "网关序列号", "agentCondition": "网关状态", "protocol": "通讯协议", "version": "agent版本", "versionDetail": "agent详细版本", "createTime": "创建时间", "updateTime": "更新时间", "lastContact": "最近联系时间", "deviceList": [{ "deviceId": "设备ID", "deviceName": "设备名称", "serialNumber": "网关序列号", "condition": "设备状态" }] }] } }
数据项查询接口
分页获取单个设备的实时数据
请求类型: GET
URI: /currentdata/pagination
参数:
{ "token": "令牌",/*必须*/ "page": "页数",/*必须*/ "perPage": "每页记录数",/*必须*/ "deviceId": "设备ID",/*必须*/ "itemName": "数据项名称"/*确省则返回全部数据*/ }
返回:
{ "status": "100", "result": { "pageInfo": { "page": "页数", "perPage": "每页记录数", "total": "总数" }, "data": [ { "datatype_id": "数据项类型", "itemname": "数据项名称", "itemid": "数据项ID", "val": "数据项的值", "htime": "采集时间", "devid": "设备ID", "deviceName": "设备名称", "quality": "采集到的数据项值的质量,通常是g,表示good", "alias": "数据项别名", "readOnly": "是否只读, 0表示只读,1表示可写", "config": "配置文件返回的原始config字符串", "datatype_name": "数据项类型名词解释" } ] } }
分页获取单个数据项的历史数据
说明:历史数据查询时间跨天则触发聚合,小于7天按10分钟聚合,小于30天按1小时 聚合,单次查询时间跨度不要超过30天。
请求类型: GET
URI: /historydata/list
参数:
{ "token": "令牌",/*必须*/ "page": "页数",/*必须*/ "perPage": "每页记录数",/*必须*/ "deviceId": "设备ID",/*必须*/ "itemId": "数据项ID",/*必须*/ "startTime": "时间区间的左区间,Long型,13位", "endTime": "时间区间的右区间,Long型,13位", "aggregator": "聚合方式,范围:avg,dev,first,last,min,max,sum,代表:平均值、方差、第一条、最后一条、最小值、最大值、求和,若为空,默认取值 为 first" }
返回:
{ "status": "100", "result": { "pageInfo": { "page": "页数", "perPage": "每页记录数", "total": "总数" }, "data": [{ "val": "数据项的值", "htime": "数据项采集时间" }] } }
告警查询接口
分页获取设备的存活告警生命周期
请求类型: GET
URI: /alarm/alarmLifeCycle
参数:
{ "token": "令牌",/*必须*/ "page": "页数",/*必须*/ "perPage": "每页记录数",/*必须*/ "startTime": "时间区间的左区间,Long型,13位", "endTime": "时间区间的右区间,Long型,13位", "severitys": "告警级别字符串,范围:8,9,10,11,12,表示:一级,二级,三级,四级,通知,选择多个级别用英文逗号隔开,如果该参数为空,默认选择所有级 别。" "deviceids": "多个deviceid用英文逗号分隔。如果该参数为空,默认选择该用 户权限范围内的所有deviceid" }
返回:
{ "status": "100", "result":{ "data": [ { "deviceid": "设备ID", "ruleid": "告警规则ID", "htime": "告警时间", "active": "是否激活true or false", "ack": "是否确认true or false", "alarmname": "告警名称", "severity": "告警级别,范围:8,9,10,11,12,表示:一级,二级,三级,四级,通知", "alarmdesc": "告警详情描述", "itemname": "数据项名称", "itemvalue": "数据项值", "trigger_name": "触发器名称", "device_name": "设备名称", "serialnumber": "网关序列号", "devicecondition": "设备状态,1表示在线,0表示离线", "lastcontact": "最近联系时间" }], "pageInfo": { "page": "int. 第几页", "perPage": "int. 每页显示的条数", "total": "int. 数据总条数" } }
分页获取设备的历史告警生命周期
请求类型: GET
URI: /hisalarm/alarmLifeCycle
参数:
{ "token": "令牌",/*必须*/ "page": "页数",/*必须*/ "perPage": /*必须*/"每页记录数", "startTime": /*必须*/"起始时间, UNIX时间戳ms,Long型", "endTime": /*必须*/"截止时间, UNIX时间戳ms,Long型。开始时间和截止时间跨度不能超过7天", "severitys": "告警级别字符串(可选值:8,9,10,11,12分别对应一级,二级,三级,四级,通知)e.g. 告警级别,告警级别,告警级别。如果该参数为空,默认选择所 有级别。", "deviceids": "多个deviceid用英文逗号分隔。如果该参数为空,默认选择该用 户权限范围内的所有deviceid" }
返回:
{ "status":"100", "result":{ "data":[ { "active": "boolean. true表示告警状态,false表示复位状态", "alarmdesc":"string. 告警描述", "alarmname":"string. 告警名称", "device_name":"string. 设备名称", "deviceid":"int,deviceid", "starttime":"long. 告警生命周期的起始时间。UNIX时间戳,ms", "endtime":"long. 告警生命周期的复位时间。UNIX时间戳,ms", "itemname":"string. 数据项名称", "itemvalue":"触发告警当前的数据项值", "devicecondition":"int. 设备在线状态,0--离线,1--在线", "lastcontact":"long. device的最后联系时间,UNIX时间戳,ms", "ruleid":"int. 告警规则 rule id", "serialnumber":"int. 网关序列号", "severity":"int. 告警级别" }], "pageInfo":{ "page":"int. 第几页", "perPage":"int. 每页显示的条数", "total":"int. 数据总条数" } } }
远程控制接口
向设备数据项发送控制命令
请求类型: PUT
URI: /control/v2.1
参数:
{ "token": "令牌",/*必须*/ "hash": "任意字符串", "devid": "设备ID",/*必须*/ "itemid": "数据项ID", "itemName": "数据项名称,与itemId至少有一个存在,如果同时存在,则以itemId为准", "value":"字符串,控制数据项的值(开关量类型的数据项值为 0 或 1)"/*必须*/ }
返回:
{ "status": "100", "data": "用来获取控制结果的标识 sigh" }
获取设备数据项控制结果
说明: 获取控制结果(需循环访问,直到得到结果) 请求类型: GET
URI: /control/result
参数:
{ "token": "令牌",/*必须*/ "hash": "任意字符串", "devid": "设备ID",/*必须*/ "itemid": "数据项ID", "itemName": "数据项名称,与itemId至少有一个存在,如果同时存在,则以itemId为准", "sign": "用来获取控制结果的标识" /*必须*/ }
返回:
{ "status": "100", "data": "0成功,3超时,其它失败" }