在腾讯云物联网开发平台控制台(以下简称控制台)创建产品时,会默认生成一套产品的数据模板和一些标准功能,用户也可以自定义功能。数据模板对应的功能包含三大类:属性,事件和行为。控制台数据模板的使用,请参考官网 数据模板 章节。
产品定义数据模板后,设备可以按照数据模板中的定义上报属性、事件,并可对设备下发远程控制指令,即对可写的设备属性进行修改。数据模板的管理详见 产品定义。数据模板协议包括设备属性上报、设备远程控制、获取设备最新上报信息、设备事件上报、设备行为。对应的定义和云端下发控制指令使用的 Topic 请参考官网 数据模板协议 章节。
本文主要描述 SDK Demo 在数据模板中获取到设备最新上报信息部分。
运行示例程序,在数据模板模块上点击设备上线
按钮且设备成功上线后,点击状态更新
按钮,发布属性类型的 Topic:
$thing/up/property/{ProductID}/{DeviceName}
示例代码如下:
if(Status.OK != mDataTemplateSample.propertyGetStatus("report", false)) {
mParent.printLogInfo(TAG, "property get status failed!", mLogInfoText, TXLog.LEVEL_ERROR);
}
if(Status.OK != mDataTemplateSample.propertyGetStatus("control", false)) {
mParent.printLogInfo(TAG, "property get status failed!", mLogInfoText, TXLog.LEVEL_ERROR);
}
观察Logcat日志。
I/com.tencent.iot.hub.device.java.core.mqtt.TXMqttConnection: Starting publish topic: $thing/up/property/LWVUL5SZ2L/light1 Message: {"method":"get_status","clientToken":"LWVUL5SZ2Llight14","type":"report","showmeta":0}
I/com.tencent.iot.hub.device.java.core.mqtt.TXMqttConnection: Starting publish topic: $thing/up/property/LWVUL5SZ2L/light1 Message: {"method":"get_status","clientToken":"LWVUL5SZ2Llight15","type":"control","showmeta":0}
D/TXDataTemplateFragment: onPublishCompleted, status[OK], topics[[$thing/up/property/LWVUL5SZ2L/light1]], userContext[], errMsg[publish success]
D/TXDataTemplateFragment: onPublishCompleted, status[OK], topics[[$thing/up/property/LWVUL5SZ2L/light1]], userContext[], errMsg[publish success]
D/TXDataTemplateFragment: receive command, topic[$thing/down/property/LWVUL5SZ2L/light1], message[{"method":"get_status_reply","clientToken":"LWVUL5SZ2Llight14","code":0,"status":"success","type":"report","data":{"reported":{"power_switch":0,"name":"test","brightness":0,"color":0}}}]
D/TXDATATEMPLATE: handle_reply: reply OK! ClientToken:LWVUL5SZ2Llight14
D/TXDataTemplateFragment: event down stream message received : {"reported":{"power_switch":0,"name":"test","brightness":0,"color":0}}
D/TXDataTemplateFragment: receive command, topic[$thing/down/property/LWVUL5SZ2L/light1], message[{"method":"get_status_reply","clientToken":"LWVUL5SZ2Llight15","code":0,"status":"success","type":"control","data":{}}]
D/TXDATATEMPLATE: handle_reply: reply OK! ClientToken:LWVUL5SZ2Llight15
D/TXDataTemplateFragment: event down stream message received : {}
以上是成功发布获取设备最新上报信息Topic的日志。如果已订阅 Topic,会接收到如上日志中的report和control消息。同时,在控制台中可以查看对应设备各个属性的最新值,对比可发现与接收到的订阅消息的data参数内各个属性值是一致的。在控制台中查看设备属性以及在线调试设备,请参考 设备调试 章节。