快速数据集成

FsuOS应用的场景有很多,大多数运营商场景下,FsuOS采集的数据都是通过联通/电信/铁塔/移动的B接口规范上报给SC平台。第三方应用如果需要数据的话,可以从SC平台直接获取所有FSU采集的数据。
第三方应用,也可以直接调用FsuOS的RESTful WebApi接口,直接获取指定Fsu上设备的数据。

FsuOS的RESTful WebApi,使用token的方式,进行每次调用的验证,提供以下4个接口:(假设目标FSU IP为192.168.3.11)

获取验证token

POST: http://192.168.3.11/login/gettoken

Body请求参数(form-data)
username 管理员在设置,用户管理界面分配的用户账户,至少具备"普通用户",“管理员"权限才能使用api接口
password 填充md5(用户密码),不要填原始密码

调用成功,返回下述内容,msg即为token值,保存后续使用。

{

    "ret": 0,
    "msg": "e9fefb0dbbe4caeee4f60ec7abda2aaa", //token
}

获取设备列表

POST: http://192.168.3.11/api/getdevice

Header请求参数
usertoken 获取验证token接口获取的token:e9fefb0dbbe4caeee4f60ec7abda2aaa

返回值:

{

    "ret": 0, //0成功 1失败
    "msg": [
        {
            "id": "14", //设备id
            "dev_type": "0", //设备类型(0:DI开关量;1:AI模拟量;2:串口设备;4:网络设备;5:板载电表;6:虚拟设备;7:NB移动网络设备;8:CDMA移动网络设备)
            "port": "3", //端口
            "model": "water2", //设备协议
            "extra_para": "", //逻辑参数
            "threshold_setting": null,
            "added_by": null, //添加人
            "added_datetime": null, //添加时间
            "device_id": "91102", //设备编号
            "rid": null,
            "device_vendor": "",
            "mfd": null,
            "batch_no": "",
            "data_id": "14",
            "device_name": "水浸", //设备名称
            "name": null,
            "is_uploadB": "1", //是否上传B接口数据(0:不上传;1:上传)
            "spdev_name": "水浸" //设备协议名称
        },
        {
            "id": "13", //设备id
            "dev_type": "1", //设备类型(0:DI开关量;1:AI模拟量;2:串口设备;4:网络设备;5:板载电表;6:虚拟设备;7:NB移动网络设备;8:CDMA移动网络设备)
            "port": "101", //端口
            "model": "ai_general_temp_humid", //设备协议
            "extra_para": "", //逻辑参数
            "threshold_setting": null,
            "added_by": null, //添加人
            "added_datetime": null, //添加时间
            "device_id": "91101", //设备编号
            "rid": null,
            "device_vendor": "",
            "mfd": null,
            "batch_no": "",
            "data_id": "13",
            "device_name": "温湿度", //设备名称
            "name": null,
            "is_uploadB": "1", //是否上传B接口数据(0:不上传;1:上传)
            "spdev_name": "温湿度" //设备协议名称
        }
    ], //返回文字描述
}
参数名 参数值 参数类型 描述说明
ret 0 Integer 0成功 1失败
msg Array 返回文字描述
msg.id 14 String 设备表记录的id
msg.dev_type 0 String 设备类型(0:DI开关量;1:AI模拟量;2:串口设备;4:网络设备;
msg.port 3 String 端口
msg.model water2 String 设备协议
msg.extra_para String 逻辑参数
msg.threshold_setting String 告警阈值,会有2种格式,一直是FsuOS默认格式,另一种是B接口规则格式
msg.added_by String 添加人
msg.added_datetime String 添加时间
msg.device_id 91102 String 设备编号,一般都是B接口的设备编号
msg.rid String
msg.device_vendor String 设备供应商
msg.mfd String
msg.batch_no String
msg.data_id 14 String
msg.device_name 水浸 String B接口平台下发的设备名
msg.name String Fsu网站用户添加设备时的设备名
msg.is_uploadB 1 String 是否上传B接口数据(0:不上传;1:上传)
msg.spdev_name 水浸 String 设备协议名称

获取数据

POST: http://192.168.3.11/api/getdata

Header请求参数
usertoken 获取验证token接口获取的token:e9fefb0dbbe4caeee4f60ec7abda2aaa

Body请求参数(form-data)
data_ids 获取设备列表中返回的data_id字段,当需要获取多个时,半角逗号分隔: 13,14,

返回值,根据设备协议的不同,会按照协议输出的字段返回所有数据,AlertArray中表明对应的数据是否处于告警状态:

{

    "ret": 0,
    "msg": [
        {
            "数据ID": "13",
            "无数据": false,
            "更新时间": "2024-07-26 09:02:27",
            "温度": "30.30℃",
            "湿度": "49.60%"
        },
        {
            "数据ID": "14",
            "无数据": false,
            "更新时间": "2024-07-26 09:02:27",
            "AlertArray": {
                "水浸状态": false 
                 }, 
             
            "水浸状态": "正常", 
             
            "ALERT": {
                "911460601001": 1 
                 } 
             }
    ], //返回文字描述
    "data": ""

}

获取告警数据

POST: http://192.168.3.11/api/getalert

Header请求参数
usertoken 获取验证token接口获取的token:e9fefb0dbbe4caeee4f60ec7abda2aaa

Body请求参数(form-data)
page 逆序,最新的在前面,第几页,每页20条数据,从1开始

返回值,

{

    "ret": 0, //0成功 1失败
    "msg": [
        {
            "id": "1134", //告警id
            "data_id": "13", //设备data_id
            "level": "2", //告警等级
            "signal_name": "30.2999992", //信号触发值
            "signal_id": "911243003001", //信号id
            "subject": "温度室内环境温度高 阈值:28.00 当前值:30.30", //描述
            "signal_index": "1",
            "status": "0", //告警状态(0:待上报;1:上报成功;2:上报失败)
            "added_datetime": "2024-07-26 09:07:12", //添加时间
            "restore_datetime": null, //告警推送时间
            "end_status": "0", //告警恢复状态(0:未恢复;3:已恢复;4:推送成功;5:推送失败)
            "upload_added_datetime": null, //告警恢复时间
            "upload_restore_datetime": null, //告警恢复推送时间
            "device_id": "91101", //设备编号
            "rid": null,
            "device_name": "温湿度" //设备名称
        }
    ],
}
参数名 参数值 参数类型 描述说明
msg.subject 温度室内环境温度高 阈值:28.00 当前值:30.30 String 描述
msg.signal_index 1 String
msg.status 0 String 触发告警上报状态(0:待上报;1:上报成功;2:上报失败)
msg.added_datetime 2024-07-26 09:07:12 String 触发告警时间
msg.restore_datetime 恢复告警时间
msg.end_status 0 String 恢复告警上报状态(0:未恢复;3:已恢复;4:推送成功;5:推送失败)
msg.upload_added_datetime 触发告警推送成功时间
msg.upload_restore_datetime 恢复告警推送成功时间
msg.device_id 91101 String B接口设备编号
msg.rid String B接口设备资源编号
msg.device_name 温湿度 String 设备名称