用途
基于 Topic 进行通信时,您可以使用规则引擎对 Topic 中的数据进行处理,然后转发到腾讯云其它服务或用户的业务后台服务,进行数据采集 + 计算 + 存储等服务。
步骤
1. 登录 物联网通信控制台,单击产品概况模块右上方的查看详情。
2. 选择左侧菜单规则引擎。
3. 进入规则引擎页面,单击创建规则,填入规则名称后,单击确定。
规则名称:支持英文、数字、下划线的组合,最多不超过32个字符。(名称新建后无法修改,请谨慎填写。)
规则描述:0 - 256个字的描述,可修改。
4. 创建成功后,即可自动进入规则详情页面,编辑数据筛选和行为操作。
筛选数据:通过选择设备、topic 类型,和设置需选择提取内容字段、条件,生成提取数据的 SQL 语句。
设备上报 JSON 数据支持通过字段提取数据内容,多个字段用逗号隔开,如果需全部字段转发填入' * '号;设备上报是非 JSON 数据,只能填入' * '号进行全部内容转发。字段定义如下:
字段中仅支持' * '、','、'.'、空格、字母和数字,不为空,最多不超过300个字符。
字段表示的是 JSON 中的键值 Key,若数据格式为非 JSON 数据时不可使用字段筛选,可使用' * '将所有数据进行转发。
上报的 JSON 数据格式,可以是嵌套的 JSON。例如:{"device_status":{"switch":"on"}},可以通过 device_status.switch 来获取到 switch 的值。
暂不支持子 SQL 和 JSON 数组。
当设备上报 json 数据时才支持,在条件中填字段(此字段必须在设备上报的 json 数据中)运算表达式,当设备上报的消息满足条件表达式时,才会提取数据并进行转发。支持的表达式见下表:
操作符 | 描述 | 举例 |
= | 相等 | color = 'red' |
<> | 不等于 | color <> 'red' |
AND | 逻辑与 | color = 'red' AND siren = 'on' |
OR | 逻辑或 | color = 'red' OR siren = 'on' |
( ) | 括号代表一个整体 | color = 'red' AND (siren = 'on' OR siren ='isTest') |
+ | 算术加法 | age = 4 + 5 |
- | 算术减 | age = 5 - 4 |
/ | 除 | age = 20 / 4 |
* | 乘 | age = 5 * 4 |
% | 取余数 | age = 0 % 6 |
< | 小于 | 5 < 6 |
<= | 小于或等于 | 5 <= 6 |
> | 大于 | 6 > 5 |
>= | 大于或等于 | 6 >= 5 |
行为操作:用于配置接收数据的目标,支持以下行为类型:
转发错误行为操作:通过配置与行为操作不同的行为类型,当行为操作进行3次重试转发都失败后,会向错误行为操作进行1次转发,确保设备数据不丢失。