AnyLink Cloud 云平台WebApi数据调用接口 标准版

Posted by

接口说明

  • 适用范围:使用 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超时,其它失败" 
}

附录

datatype_id对应的数据类型

Leave a Reply

您的电子邮箱地址不会被公开。