问题排查
问题排查
本文介绍在本地环境调试数据解析脚本的代码示例,和物联网平台不能正常使用脚本解析数据时的排错方法。
本地环境调试脚本
目前,物联网平台数据解析支持在线测试脚本是否能解析数据,但不支持调试。建议先在本地编写脚本、调试完成后,再将脚本拷贝到物联网控制台的脚本编辑器中。
以下本地调试代码基于物模型数据解析使用示例中的示例脚本。您在实际使用时,请按照您的脚本需求进行具体参数设置。
//Test Demo
function Test()
{
//0x001232013fa00000
var rawdata_report_prop = new Buffer([
0x00, //固定command头,0代表是上报属性。
0x00, 0x22, 0x33, 0x44, //对应id字段,标记请求的序号。
0x12, 0x32, //两字节int16,对应属性prop_int16。
0x01, //一字节bool,对应属性prop_bool。
0x3f, 0xa0, 0x00, 0x00 //四字节float,对应属性prop_float。
]);
rawDataToProtocol(rawdata_report_prop);
var setString = new String('{"method":"thing.service.property.set","id":"12345","version":"1.0","params":{"prop_float":123.452, "prop_int16":333, "prop_bool":1}}');
protocolToRawData(JSON.parse(setString));
}
Test();
线上问题排查
设备端连接物联网平台,上报属性数据后,若数据解析运行正常,在设备列表单击该设备对应的查看,进入设备详情页,在*物模型数据* > *运行状态***页签下,可以看到设备上报的数据。
若设备已经上报了数据,但是却没有显示对应的数据,可选择*监控运维* > *日志服务* > *云端运行日志***,通过日志排查问题。
问题排查过程如下:
- 选择对应产品,输入DeviceName,单击搜索,业务类型选择物模型上报,查询该设备的相关日志。
- 查看日志记录,日志中会显示脚本转化后的数据和原数据。
- 结合日志说明文档,查看错误码的信息。
- 按照错误码提示,结合脚本和设备上报的数据排查问题。
下面列举一些错误:
-
脚本不存在。
日志中显示错误码为6200。访问日志说明文档,查看错误的具体含义。错误码6200表示脚本不存在。请在控制台检查脚本是否已提交。
-
Alink method不存在。
日志中显示错误码为6450。日志说明文档中有该错误码解释:错误码6450表示Alink协议格式的数据中method不存在。 原因是设备上报的自定义/透传格式数据,经过脚本解析为Alink标准格式数据后无method。
日志内容如:
17:54:19.064, A7B02C60646B4D2E8744F7AA7C3D9567, upstream-error - bizType=OTHER_MESSAGE,params={"params":{}},result=code:6450,message:alink method not exist,...
可以从日志内容中看到,错误消息为
alink method not exist
,即Alink协议格式的数据中method不存在。这是解析脚本中method定义有问题,需修改脚本。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)