FsuOS应用的场景有很多,大多数运营商场景下,FsuOS采集的数据都是通过联通/电信/铁塔/移动的B接口规范上报给SC平台。第三方应用如果需要数据的话,可以从SC平台直接获取所有FSU采集的数据。
第三方应用,也可以直接调用FsuOS的RESTful WebApi接口,直接获取指定Fsu上设备的数据。
FsuOS的RESTful WebApi,使用token的方式,进行每次调用的验证,提供以下4个接口:(假设目标FSU IP为192.168.3.11)
Body请求参数(form-data)
username 管理员在设置,用户管理界面分配的用户账户,至少具备"普通用户",“管理员"权限才能使用api接口
password 填充md5(用户密码),不要填原始密码
调用成功,返回下述内容,msg即为token值,保存后续使用。
{
"ret": 0,
"msg": "e9fefb0dbbe4caeee4f60ec7abda2aaa", //token
}
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 | 设备协议名称 |
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": ""
}
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 | 设备名称 |