阿里云IoT物模型-属性,服务,事件通信的topic和payload详解-阿里云开发者社区

开发者社区> 《IoT物联网技术》> 正文

阿里云IoT物模型-属性,服务,事件通信的topic和payload详解

简介: 0.阿里云IoT物模型   物模型定义了产品的属性、服务、事件通信协议,IoT设备和云端需要按约定规则通信,才能实现物模型转化。     1.设备属性通信 1.1 设备上报属性 设备上报pubTopic /sys/{productKey}/{deviceName}/thing/event/property/post 设备上报payload格式
+关注继续查看

0.阿里云IoT物模型

 
物模型定义了产品的属性、服务、事件通信协议,IoT设备和云端需要按约定规则通信,才能实现物模型转化。
 
 

1.设备属性通信

1.1 设备上报属性

设备上报pubTopic

/sys/{productKey}/{deviceName}/thing/event/property/post
设备上报payload格式
{
"id": 3536123,
"version": "1.0",
"params": {
"属性key1": "属性value1",
"属性key2": "属性value2"
},
"method": "thing.event.property.post"
}
 

IoT云端响应replyTopic

/sys/{productKey}/{deviceName}/thing/event/property/post_reply
云端响应payload格式
{
"id": 3536123,
"code": 200,
"data": {}
}
 
 

1.2 云端设置设备属性

设备订阅subTopic

/sys/{productKey}/{deviceName}/thing/service/property/set
IoT云端下行的payload格式
{
"id": 3536123,
"version": "1.0",
"params": {
"属性key1": "属性value1",
"属性key2": "属性value2"
},
"method": "thing.service.property.set"
}
 
 

设备响应replyTopic

/sys/{productKey}/{deviceName}/thing/service/property/set_reply
设备响应payload格式
{
"id": 3536123,
"code": 200,
"data": {}
}
 
 

1.3 云端获取设备属性

设备订阅subTopic

/sys/{productKey}/{deviceName}/thing/service/property/get
IoT云端下行的payload格式
{
"id": 3536123,
"version": "1.0",
"params": [
"属性key1",
"属性key2"
],
"method": "thing.service.property.get"
}
 
 

设备响应replyTopic

/sys/{productKey}/{deviceName}/thing/service/property/get_reply
设备响应payload格式
{
"id": 3536123,
"code": 200,
"data": {
"属性key1": "属性value1",
"属性key2": "属性value2"
}
}
 
 
 

2.设备服务调用

2.1 服务的异步调用

设备订阅subTopic

注意:服务订阅Topic这里不支持+通配符
/sys/{productKey}/{deviceName}/thing/service/{tsl.service.identifier}
或者订阅指定service
/sys/{productKey}/{deviceName}/thing/service/{tsl.service.identifier}
IoT云端下行的payload格式
{
"id": 3536123,
"version": "1.0",
"params": {
"入参key1": "入参value1",
"入参key2": "入参value2"
},
"method": "thing.service.{tsl.service.identifier}"
}
 
 

设备响应replyTopic

/sys/{productKey}/{deviceName}/thing/service/{tsl.service.identifier}_reply
设备响应payload格式
{
"id": 3536123,
"code": 200,
"data": {
"出参key1": "出参value1",
"出参key2": "出参value2"
}
}
 

2.2 服务的同步调用

 

设备订阅subTopic

注意:服务同步调用API是InvokeThingService
/sys/${productKey}/${deviceName}/rrpc/request/+
IoT云端下行的payload格式
{
"id": 3536123,
"version": "1.0",
"params": {
"入参key1": "入参value1",
"入参key2": "入参value2"
},
"method": "thing.service.{tsl.service.identifier}"
}
 
 

设备响应replyTopic

/sys/${productKey}/${deviceName}/rrpc/response/request的消息Id
 
设备响应payload格式
{
"id": 3536123,
"code": 200,
"data": {
"出参key1": "出参value1",
"出参key2": "出参value2"
}
}
 
 

3.设备事件上报

3.1 事件上报

设备上报pubTopic

/sys/{productKey}/{deviceName}/thing/event/{tsl.event.identifier}/post
设备上报payload格式
{
"id": 3536123,
"version": "1.0",
"params": {
"入参key1": "入参value1",
"入参key2": "入参value2"
},
"method": "thing.event.{tsl.event.identifier}.post"
}
 
 

IoT云端响应replyTopic

/sys/{productKey}/{deviceName}/thing/event/{tsl.event.identifier}/post_reply
云端响应payload格式
{
"id": 3536123,
"code": 200,
"data": {}
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
事务ACID属性与隔离级别
概念 数据库领域中的事务指的是一系列对数据库的操作集合,是数据库管理系统(DBMS)定义的一个执行单位。事务的作用体现在两个方面: 在并发访问数据库的场景中,利用事务来隔离多个应用程序的操作,避免多个操作彼此之间相互影响 提供一种从失败中恢复到正常状态的方法,同时提供数据库即使在异常状态仍能保持一致性的方法 当然以上两条是事务理论上应该持有的特性,但是实际应用过程中,由于业务需求的不同或配置方式不同,事务对以上两个方面的满足程度也不尽相同。
964 0
Mysql编写定时任务事件
原文:Mysql编写定时任务事件 场景:   例如:某系统,用户每天只能拥有一次的抽奖机会,抽过后当天就不可再抽,但是过了24:00点后用户就重新拥有一次抽奖机会。像这种需要数据库定时对某个字段进行更新操作的任务,完全可以通过数据库本身的事件机制进行操作,而服务器端也不需要用额外的代码进行这种监控定时的操作。
990 0
分布式事务解决方案——柔性事务与服务模式
原创: Hollis 在我的博客中,介绍过很多关于分布式和事务的文章,在阅读本文之前,希望读者可以对这些基础知识有所了解,这里简单把之前的文章列举下,已经按照顺序排好,可按顺序阅读。
1613 0
浏览器事件window.onload、o…
原文地址:浏览器事件window.onload、onfocus、onblur、onscroll和resize作者:lilyxiao Sample Page!   载入文档:   取得焦点:   失去焦点:   拖动滚动条:   变换尺...
990 0
Ionic2 下处理 Android 设备下返回按钮的事件
原文发表于我的技术博客 本文分享了 Ionic2 下处理 Android 设备下返回按钮的事件,供参考。原文发表于我的技术博客 代码中我分享了如何捕捉 Ionic2 项目在 Android 设备下返回按钮事件,并在捕捉到的事件中可以灵活根据需求编写相关业务逻辑,如退出、返回等。
971 0
分布式事务中间件 Fescar—RM 模块源码解读
前言 在SOA、微服务架构流行的年代,许多复杂业务上需要支持多资源占用场景,而在分布式系统中因为某个资源不足而导致其它资源占用回滚的系统设计一直是个难点。我所在的团队也遇到了这个问题,为解决这个问题上,团队采用的是阿里开源的分布式中间件Fescar的解决方案,并详细了解了Fescar内部的工作原理,解决在使用Fescar中间件过程中的一些疑虑的地方,也为后续团队在继续使用该中间件奠定理论基础。
24297 0
+关注
《IoT物联网技术》
公众号《IoT物联网技术》相关阿里云IoT文章同步
87
文章
7
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载