emqx/apps/emqx_rule_engine
Shawn 15d048d8ec feat(funcs): add bitsize/1 and subbits/2,3,6 functions
Given following Rule SQL:

```
select
  subbits(payload, 1, 8) as firstByte,
  case
    when firstByte = 123 then 't/{'
    when firstByte = 125 then 't/}'
    else 't/' + str(firstByte)
  end as tp
from "t/#"
```

Input Payload: `{x}`
Output: `{"tp": "t/{", "firstByte": 123}`

Input Payload: `}x`
Output: `{"tp": "t/}", "firstByte": 125}`

Input Payload: `a`
Output: `{"tp": "t/97", "firstByte": 97}`
2020-12-10 11:26:07 +08:00
..
docs refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
etc refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
include chore(apps): Sync again all apps 2020-12-07 21:30:21 +01:00
priv refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
src feat(funcs): add bitsize/1 and subbits/2,3,6 functions 2020-12-10 11:26:07 +08:00
test feat(funcs): add bitsize/1 and subbits/2,3,6 functions 2020-12-10 11:26:07 +08:00
.gitignore refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
README.md refactor(proj): Add apps 2020-12-04 22:11:53 +01:00
rebar.config chore(apps): Sync again all apps 2020-12-07 21:30:21 +01:00

emqx-rule-engine

IoT Rule Engine for EMQ X Broker.

Concept

iot rule "Rule Name"
  when
     match TopicFilters and Conditions
  select
    para1 = val1
    para2 = val2
  then
    take action(#{para2 => val1, #para2 => val2})

Architecture

          |-----------------|
 Pub ---->| Message Routing |----> Sub
          |-----------------|
               |     /|\
              \|/     |
          |-----------------|
          |   Rule Engine   |
          |-----------------|
               |      |
        Backends Services Bridges

SQL for Rule query statement

select id, time, temperature as t from "topic/a" where t > 50;

License

Copyright (c) 2019 EMQ Technologies Co., Ltd. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.