阿里云物联网套件设备间互相通信_规则引擎

接入阿里云物联网套件基础版、接入过程详见阿里云文档

https://help.aliyun.com/product/30520.html

本来以为mqtt的订阅和发布 是直接支持M2M,即设备和设备之间通信的,不需要什么配置。错误实验过程如下

设备1  device1  用来发布topic 和payload   productKEY/device2/drive payload=1    

设备2  device2  订阅topic productKEY/device2/drive

结果设备1、设备2都上线之后  设备1调用发布报错code 520  

后来发现,默认不支持M2M通信 需要加规则引擎   过程如下

阿里云物联网套件设备间互相通信_规则引擎_第1张图片
1
阿里云物联网套件设备间互相通信_规则引擎_第2张图片
2
阿里云物联网套件设备间互相通信_规则引擎_第3张图片
3

图3(上)只需要填写对应的产品名  和发布设备的topic名


阿里云物联网套件设备间互相通信_规则引擎_第4张图片
4

选择添加操作    填写订阅设备的topic值即可

到这里本来以为什么都OK了  在发布设备上  发布一个productKey/发布设备名/topic值(如XXXX/contralphone/drive)payload=1  没有反应 看日志   报错playload is not json

所以m2m不能像用api或者直接在管理后台哪有 直接写payload的值而是要转成json 比如

{"protocolMessageId":"1","topic":"/PUQIWwvKCJl/contralphone/drive"}

转成json后  就可以实现M2M了 

不理解为什么不能直接夸设备订阅。可能有个中含义吧   另注:用阿里云文档中API的方式发布消息,接入过程中也是有坑的 。

你可能感兴趣的:(阿里云物联网套件设备间互相通信_规则引擎)