实现备注
product_key与did:
当触发方式为online/offline/alert/fault/data时, 产生这个触发方式的设备由该参数指定, 以下把指定的这个设备称为主设备
event参数表示该规则的触发方式,以下是可选值的意义:
online - 设备上线
offline - 设备下线
alert - 设备某个报警数据点发生报警
fault - 设备某个故障数据点发生故障
data - 设备上报状态
event_attr参数表示,当触发方式为alert(报警)/fault(故障)时, 发生这个报警/故障的数据点,以及报警/故障的发生/恢复,由该参数指定
"event_attr": {
"attr_name": "datapoint_alert", ---- 发生这个报警/故障的数据点
"value": "1" ---- 报警/故障的发生/取消, 值为1时表示发生, 值为0时表示取消
}
注: 这里提到的报警/故障的"发生"指的是-设备上一次上报的报警/故障数据点的值为0, 这一次上报的为1, 那么报警/故障发生
这里提到的报警/故障的"恢复"指的是-设备上一次上报的报警/故障数据点的值为1, 这一次上报的为0, 那么报警/故障恢复
其他情况均不属于"发生"和"恢复"
input指定规则中需要用到的设备数据,数组中每一个对象代表一个设备的数据,不需要使用设备数据时可忽略此参数:
[{
"product_key": "pk1", ---- 设备所属Product key
"did": "did1", ---- 设备did
"prefix": "device1" ---- 用于在条件及输出中引用这个设备的数据点值的前缀, 如设置了这个参数为device1时,
则device1.datapoint1表示引用这个设备的标识名为datapoint1的数据点
}]
condition指定触发规则需要满足的条件, 云端处理时将逐组检查数组内的条件, 任意一组条件满足时触发输出
[
[{
"left": "device1.datapoint1", ---- 左比较参数, 参数的值类型需要和右比较参数一致
"opt": "==", ---- 比较运算符, 可选值有: >, >=, <, <=, ==, != (注:只有数值类型才能比较大小)
"right": "1" ---- 右比较参数, 参数的值类型需要和左比较参数一致,
使用常数时注意,"1"代表数字1,"'1'"或""1""才是字符串"1"
}],
[{ ---- 每个数组表示一组条件,当这个组里的所有条件都满足时,这一组条件满足
"left": "device1.datapoint1",
"opt": "==",
"right": "1"
},{
"left": "device2.datapoint2",
"opt": ">",
"right": "25"
}]
]
output指定当条件满足时, 需要做的事情,可认为云端同时执行各组动作,各组之间互不影响
[
[{ ---- 每个数组表示一组输出动作,按顺序执行,前面的动作执行失败时,后面不会执行
"type": "devctrl", ---- output的类型, devctrl表示控制设备
"did": "did1", ---- 指定被控制的设备的did
"attrs": { ---- key-value形式
"datapoint1": 1, ---- 设置datapoint1值为1
"datapoint2": 25,
"datapoint3": "黄色"
}
},{
"type": "delay", ---- output的类型, delay表示延时
"delay": 5 ---- 延时时长, 单位:秒
},{
"type": "devctrl",
"did": "QxP6E9qFwwzsqKb2UYf4uw",
"raw": [1, 2, 3] ---- raw形式
}],
[{
"type": "devctrl",
"did": "QxP6E9qFwwzsqKb2UYf4uw",
"attrs": {
"datapoint1": 1,
"datapoint2": 25,
"datapoint3": "黄色"
}
}]
]