# 常规告警Api

适用范围

博灵A4系列支持通过IP地址直接调用该章节功能

博灵A3系列仅能通过云服务使用该章节功能

常规Api为报警灯核心功能之一。本章节将讲解如何通过常规Api来触发报警灯进行自定义声光告警。

# 开始使用

首先需要在Api->Api启停设置中打开声光播报功能。

设置好Api Key,以便后续使用,默认key为1qaz2wsx设置方法

# 构造请求

该接口的请求地址为:

http://<设备IP地址>/api/api/send_msg

请求方式:

POST

x-www-form-urlencoded 或 form-data

请求参数:

参数名 变量类型 说明 是否必填
led_style string led样式参数,详情见下表。
color json led颜色数组,支持RGB颜色代码和 W3C规范颜色名称 (opens new window)
举例:["blue"]或者["#00ffff"]
只有转亮支持多颜色数组。
led_flag json led样式参数,详情见下表。
text string 播报的文本内容,最长150个文字,当前版本超出不会报错,但是会被截断
tts_speed int 语音播报速率,范围1~10,不存在则默认中速
play_time int 播报时长
当该值存在时,如果超过播报时间没有播报完成,播报内容会被截断。
tone string 铃声编号,该值可在通知组设置中的提示音获得。
time string 当前秒级时间戳
该值会参与签名计算。请求时间戳与设备时间误差需在120s以内。
sign string 签名字符串,具体算法见生成签名章节。

led相关参数提醒

led_stylecolorled_flag这三个参数必须同时使用,如果不用则全都不传。

可选参数提醒

led_stylecolorled_flagtext这两组选项至少要存在一组

# LED样式参数

样式值 效果 参数下标 参数说明 推荐值
15 转亮 0 旋转间隔时间(秒) [0.03,1]
1 加速因子
20 闪亮 0 闪亮时间(秒) [1, 1]
1 熄灯时间(秒)
25 常亮 无参数,填写[0]进行占位即可
30 脉动 无参数,填写[0]进行占位即可

# 签名算法

  1. 在请求参数数组中加入token项,值为Api Key,加入time项,值为当前的时间戳。之后按照key值进行字典升序排列。
  2. 按排列后顺序进行组合,按照key value进行拼接,得到签名字符串sign_str
  3. 将拼接好后的签名字符串sign_str,使用MD5进行散列计算,即可得到签名字符串sign

# 签名计算实例

  1. 假设要请求的原始参数如下表
参数名
led_style 15
color ["#123456"]
led_flag [0.1,1]
text 好用的声光播报终端
time 1668843530
  1. 参数数组中加入tokentime

注意

此步骤在请求数组中加入内容,并不是修改真实的请求参数数组,而是为了计算需要所需要的中间步骤!

参数名
led_style 15
color ["#123456"]
led_flag [0.1,1]
text 好用的声光播报终端
time 1668843530
token 1qaz2wsx
  1. 以key按照字典升序排序,之后对字符串进行拼接,得到签名字符串sign_str
color["#123456"]led_flag[0.1,1]led_style15text好用的声光播报终端time1668843530token1qaz2wsx
  1. 对签名上述的字符串进行MD5计算,可以得到签名sign
dc76013f54527b7074e4076e86fba803

5.将signtime添加到请求参数中,得到最终的请求参数

参数名
led_style 15
color ["#123456"]
led_flag [0.1,1]
text 好用的声光播报终端
time 1668843530
sign dc76013f54527b7074e4076e86fba803

6.使用Post方式将其作为请求内容发送即可,请求成功后得到响应值。

{
    "code": 200,          // 状态码,200表示成功
    "msg": "OK",          // 返回信息,OK表示成功
    "data": {
        "method": 50,     // 方法id,无需处理
        "id": "4972367dd614bf8adfe5fff138a3af76", // 本次请求的id
        "data": 1,        // 设备播报队列中剩余待播报的数量
        "res_code": 0     // 内部状态码,正常为0,无需处理
    }
}

# 使用PostMan进行手动调试

操作步骤请参照下图,可点击图片放大查看

除手动创建请求外,资料下载处提供了PostMan测试配置文件,其中内置了签名自动计算脚本,您只需要修改参数即可快速发送请求进行测试!点我下载。 (opens new window)