设备端开发完成后,您可使用物联网平台的在线调试功能,从控制台下发指令给设备端,进行功能测试。
物联网平台提供两种调试方式:在线调试、设备模拟器。请根据您的实际情况选择调试方式。
本文使用真实设备的在线调试,为您介绍相关操作步骤。

在线调试
-
登录物联网平台控制台,进入对应实例,在左侧导航栏,选择监控运维 > 在线调试。
-
在在线调试页面,选择本次调试的充电桩设备(device-1)。
-
在调试功能下拉框,选择默认模块。
-
进行服务调用,下发数据。
在服务调用页签下,将调试功能下拉框选择为默认模块 / 开启充电(startChaResService),在JSON编辑器中输入请求参数(例如
{"charm":30}),单击发送指令进行下发。右侧实时日志区域可查看调用结果,若参数名与物模型定义不匹配,将返回Code:6304错误;参数正确时返回Code:200表示调用成功。云端下发数据后,可在设备端查看相关日志是否打印,以此判断指令是否达到设备端。
设备端日志显示服务调用响应的 topic 及 payload,并输出注册服务成功信息。其中 topic 中
/sys/与/device-1/之间为产品标识(已脱敏),关键日志内容为:null[MqttSendExecutor.java] - asyncSend(129):MqttSendExecutor:publish: topic: [ /sys/xxx/device-1/thing/service/startChaResService_reply ] null[MqttSendExecutor.java] - asyncSend(130):MqttSendExecutor:publish: payload: [ {"code":200,"id":"1081366032","data":{"charm":20}} ] null[MqttDefaulCallback.java] - null[MqttDefaulCallback.java] - -20/? D/PersistentConnect:SubscribeRrpcListener, onResponseSuccess(), topic = /sys/xxx/device-1/thing/service/startChaResService -20/? D/[Tmp]TResRequestListener:onSuccess mIdentifier:startChaResService -20/? D/[Tmp]TResRequestWrapperHandler:onSuccess identifier:null returnValue: mHandler:com.aliyun.alink.devicesdk.demo.ThingSample$4@1bb2b87f -20/? D/ThingSample:onSuccess() called with: o = [null], outputParams = [null] -20/? D/ ThingSample:注册服务成功 -
按以下说明进行属性调试。
在属性调试页签中,从模块下拉框中选择目标模块,选择需调试的属性,在输入框中填写属性值,然后单击对应的操作按钮执行调试。右侧实时日志区域可查看调试结果。
调试方法说明如下。
参数
描述
获取
从设备上获取指定属性的值。
设置
从云端下发设置(set)属性值的指令给设备。设备收到指令后,设置属性值,并将最新属性值上报给云端。
设置期望值
从云端下发设置期望属性值的指令给设备。如果下发指令时设备在线,设备立即收到指令,更新该属性值,并将新属性值上报云端;如果下发指令时设备不在线,待设备重新上线时主动获取期望属性值信息,然后更新属性值并上报。
云端下发数据后,可在设备端查看相关日志是否打印,以此判断指令是否达到设备端。如以下日志所示,设备收到set指令后,返回了服务的响应信息,同时向云端上报了最新属性。
D/ThingSample:收到异步下行数据 {acOutMeterIty=com.aliyun.alink.linksdk.tmp.device.payload.ValueWrapper$IntValueWrapper@365d97d7} D/[Tmp]TPropServiceHandler:onComplete identifier:set errorInfo:null result:null mCb:com.aliyun.alink.linksdk.tmp.resource.TResResponseCallback@3907d1aa D/[Tmp]TResResponseCallback:onComplete identifier:set mRequestId:1123469761 errorInfo:null result:null D/[Tmp]GsonUtils:toJson ret:{"code":200,"id":"1123469761"} D/PersistentConnect:SubscribeRrpcListener, onReceived(),onResponse() call D/PersistentConnect:SubscribeRrpcListener, onReceived(), onResponse(), rrpc rsp, replytopic = null [MqttDefaulCallback.java] - onRrpcResponse(171):MqttDefaulCallback:onRrpcResponse(), reply topic = null [MqttSendExecutor.java] - asyncSend(129):MqttSendExecutor:publish: topic: [ /sys/xxx/device-1/thing/service/property/set_reply ] [MqttSendExecutor.java] - asyncSend(130):MqttSendExecutor:publish: payload: [ {"code":200,"id":"1123469761"} ] D/[Tmp]TPropServiceHandler:onComplete runnable setprop and notify D/[Tmp]TShadow:setPropertyValue propId :acOutMeterIty value:com.aliyun.alink.linksdk.tmp.device.payload.ValueWrapper$IntValueWrapper@365d97d7 needPubli... D/[Tmp]TShadow:triggerPostEvent outputParams:{acOutMeterIty=com.aliyun.alink.linksdk.tmp.device.payload.ValueWrapper$IntValueWrapper@365d97d7} D/[Tmp]TextHelper:getTopicStr identifier:post type:EVENT deviceModel:com.aliyun.alink.linksdk.tmp.devicemodel.DeviceModel@43b8fd99 D/[Tmp]GsonUtils:toJson ret:{"id":"131942201","version":"1.0","method":"thing.event.property.post","params":{"acOutMeterIty":10}} D/ConnectSDK:publishResource() common Resource D/ConnectSDK:publishResourceWithMqtt D/PersistentConnect:send() [MqttSendExecutor.java] - asyncSend(129):MqttSendExecutor:publish: topic: [ /sys/xxx/device-1/thing/event/property/post ] [MqttSendExecutor.java] - asyncSend(130):MqttSendExecutor:publish: payload: [ B@59fc08c2 ] [MqttDefaulCallback.java] - deliveryComplete(111):MqttDefaulCallback:deliveryComplete! null -
在左侧导航栏,单击设备,再单击目标设备(device-1)后的查看。
-
在设备详情页物模型数据 > 事件管理页签下,查看设备上报的属性、事件和服务调用数据,判断设备是否收到云端指令,并且正常返回响应信息。
-
在物模型数据 > 运行状态页签下,默认模块中属性交流输出电表底值检的值为
10。 -
在事件管理页签下,事件列表显示一条记录:时间为
2023/04/19 10:54:12.957,标识符为startChaResEvt,事件名称为启动充电结果事件,事件类型为info,输出参数为{"gunNum":50}。 -
在设备详情页的服务调用页签下,可查看服务调用记录。表格包含时间、标识符、服务名称、输入参数、输出参数列。示例记录中,标识符和服务名称均为set,输入参数为
{"acOutMeterIty":10},输出参数中"code":200表示服务调用成功。
-
日志服务
设备在运行过程中,可能会出现一些异常。例如连接失败、认证失败、设备上报的数据不符合物模型规范等,您可以通过日志服务查看和排查问题。
例如,上述案例的云端配置中已定义属性参数acOutMeterIty为整型,当真实设备上报的值不是整型时,日志服务会展示该错误详情。
例如设备端上报属性的代码如下,其中传入的值 10.87 不符合整型规范,会被日志服务识别为错误。
在物联网平台对应实例下左侧导航栏,选择监控运维 > 日志服务,查看日志信息。
日志详情中显示错误码 6306,错误信息为 tsl parse: data type is not int -> acOutMeterity,Reason 为 tsl parse failed,表示上报值 10.87 不符合整型定义,物模型解析失败。
同时您也可以开启云端运行日志转储功能,通过日志报表进一步查看设备大盘,包括设备上下线次数、设备上线IP区域分布、设备上行/下行消息数量、上行/下行消息量TOP20设备列表、物模型校验错误码分布、云端API调用错误量分布等多维度指标。
日志转储相关说明,请参见云端运行日志转储。