规则函数

最近更新时间:2024-09-30 11:39:21

我的收藏
规则引擎提供多种函数,您可以在规则引擎的字段,条件以及数据库字段对应的值中使用这些函数,实现数据的多样化处理。

支持的函数

函数名
用法描述
productId()
返回消息来源的产品 ID。
deviceName()
返回消息来源的设备名字。
timestamp()
返回当前的 Unix 系统时间戳,秒为单位。
topic()
返回消息来源的原始 Topic。
topic(n)
返回消息来源的原始 Topic 以/分割的第 n 个分段。
payloadLen()
返回 payload 的字节长度。
bin_to_dec()
将二进制数 data 转换为十进制整数。
to_hex ()
将输入的原始消息转换为16进制字符串。
randint(min,max)
返回 min 和 max 之间的随机整数。
upper(string)
返回大写字符串(输入的消息格式需为 JSON 格式,函数对象为对应的 key 值。例如输入消息为 "tencent":"iot",则 upper(tencent)=IOT)。
lower(string)
返回小写字符串(输入的消息格式需为 JSON 格式,函数对象为对应的 key 值)。
crypto(field,String)
对 field 的值进行加密,第二个参数 String 为算法字符串。可选:MD5,SHA1,SHA256,SHA384,SHA512。(输入的消息格式需为 JSON 格式,函数对象为对应的 key 值)。
concat(string1, string2)
字符串连接,例如 concat(deviceid,'a')concat(field1,field2)
requestId()
返回物联网通信生成的消息 ID,数据不唯一,请不要用于数据库主键。
newuuid()
返回一个随机 UUID 字符串,数据不唯一,请不要用于数据库主键。
replace(source, substring, replacement)
replacement 替换 source 中的 substring。
substring(source, start, end)
字符串截取,返回从 start(包括)到 end(不包括)的字符串。

使用示例

某一家居温湿度设备 dev00 向云端发送的消息内容为:
{"room1":{"temperature":31,"humidity":"63%"},
"room2":{"temperature":26,"humidity":"63%"}}
温湿度产品下有 dev00,dev01,dev02 三个设备分别监测了 room1,room2,room3...room6 六个房间的温湿度,只有当 room1 房间的温度高于30摄氏度时需要对数据转入 MySQL 数据库进行处理。依照此案例规则引擎的设置如下: