华为IoTDA平台两个设备之间通信的过滤条件如何设置

目录

引言

过滤规则

特定topic转发

特定设备转发

特定产品转发

特定数据转发

结语

参考资料


引言

前一篇博文介绍了如何在两个设备之间进行通信转发。和利用topic进行转发相比,华为的这种方法比较麻烦,但是它功能比较强,包括可以利用SQL语言的条件进行过滤转发。今天就简单介绍一下其转发的规则。

过滤规则

从创建规则的界面可以看到,其右侧实际上有一个SQL语句作为过滤条件。这个条件可以直接通过编辑SQL语句来实现。

其编辑界面如下:

 这里面最重要的是过滤条件字段,其语法参考SQL语言中的WHERE语句。推送数据字段的修改一般不用于设备间通信,更多的是用于其他推送对象。

数据转发规则收到的数据的格式是这样的:

{
  "resource": "device.message",
  "event": "report",
  "event_time": "string",
  "notify_data": {
    "header": {
      "app_id": "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "device_id": "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "node_id": "ABC123456789",
      "product_id": "ABC123456789",
      "gateway_id": "d4922d8a-6c8e-4396-852c-164aefa6638f",
      "tags": [
        {
          "tag_key": "testTagName",
          "tag_value": "testTagValue"
        }
      ]
    },
    "body": {
      "topic": "string",
      "content": "string"
    }
  }
}

所以,就可以利用各种条件语句实现特定的数据转发。下面是几种常见的数据转发条件。 

特定topic转发

如果希望Topic中包含/test/M2M/的消息上报,可在SQL的过滤条件中添加TARTS_WITH(notify_data.body.topic,'/test/M2M/'),则所有topic以“/test/M2M/”开头的都会触发该流转规则,转发到设置的转发目标。

特定设备转发

若希望指定某个设备上报的数据进行流转,可在SQL语句中添加:AND notify_data.header.device_id='${对应的设备ID}'。

特定产品转发

若希望指定某种产品上报的数据进行流转,可在SQL语句中添加:AND notify_data.header.product_id='${对应的产品ID}'。

特定数据转发

如果希望设备上报消息中temperature大于38度时会触发转发,则使用如下条件:notify_data.body.content.temperature > 38

结语

华为的数据转发规则很强大,值得深入学习。

参考资料

SQL语句_设备接入 IoTDA_华为云

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值