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



