规则引擎提供多种函数,您可以在规则引擎的字段,条件以及数据库字段对应的值中使用这些函数,实现数据的多样化处理。
支持的函数
函数名 | 用法描述 |
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 数据库进行处理。依照此案例规则引擎的设置如下: