阿里云物联网平台设备间通信(通过规则引擎-云产品流转)

阿里云物联网平台设备间通信(通过规则引擎-云产品流转)

前言

我们正常的使用阿里云物联网平台,一般是:

  1. 设备通过物模型上报数据属性
  2. App通过云端API获取设备的数据属性
  3. App通过云端API调用设备的服务,来控制设备执行各种命令

一般都是设备和App的互动,很少有设备和设备间的通信。但是最近正好就有这种需求,所以开始研究,如何在阿里云物联网平台上面实现设备间通信。

自定义Topic

阿里云物联网平台给了很多Topic,基础通信Topic、物模型通信Topic,这些一看就不知道跟我们的需求没关系,不能乱用。直到看到了自定义Topic,一眼就相中了,感觉遇到了对的人。于是有了如下的思路。
在这里插入图片描述

  • 新建一个自定义Topic/${productKey}/${deviceName}/user/m2m
  • A设备订阅/${productKey}/aName/user/m2m主题
  • B设备订阅/${productKey}/bName/user/m2m主题
  • A设备如果想要给B设备发消息,只要往/${productKey}/bName/user/m2m 发送消息即可
  • B设备就可以接收到A设备发送的消息

But,理想是美好的,现实是残酷的,阿里云物联网平台做了限制,设备只能给自身的Topic发送消息,不能给别的设备的Topic发送消息。所以在第4步就行不通,A设备无法往/${productKey}/bName/user/m2m 发送消息
所以,这一招失败,但是自定义Topic还是有用的。后面再说。

云产品流转

在这里插入图片描述

选择JSON格式

在这里插入图片描述

编写SQL

在这里插入图片描述

转发数据

在这里插入图片描述
这一步是关键,本来是只能转发到固定的设备,但是通过${target}设置了一个变量,即目标设备的deviceName。

具体操作

  • A设备订阅/${productKey}/aName/user/get主题
  • B设备订阅/${productKey}/bName/user/get主题
  • A设备如果想要给B设备发消息,只要往/${productKey}/aName/user/update 发送消息
  • 消息格式是JSON,里面必须包含target这个字段,target:bName
  • 云产品流转就将一条消息转发到/${productKey}/bName/user/get
  • B设备就可以接收到A设备发送的消息,而且还可以从target这个字段知道是谁发消息给他

在这里插入图片描述

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小康师兄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值