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": {}}