物联网平台提供日志服务功能。您可以在物联网平台控制台日志服务页,查询设备日志。本文主要介绍设备日志中的错误码和排错方法。

查询设备日志

查询设备日志途径:

  1. 登录物联网平台控制台
  2. 在左侧导航栏,单击监控运维 > 日志服务
  3. 选择产品、日志类型,输入设备名称等搜索条件,然后单击搜索

    支持的搜索条件:

    搜索条件 说明
    DeviceName 输入设备名称。可以根据设备名称,搜索出该设备的相关日志。
    内容关键字 输入日志内容关键字搜索具体日志。
    MessageID 消息ID,物联网平台为消息生成的唯一标识符。可以用MessageID追踪到这条消息全链路的流转状况,和查询消息内容。
    状态 查询某种结果状态的日志。可选择:
    • 全部状态
    • 成功
    • 失败
    时间范围 选择要查询日志的时间范围。
说明 日志状态码说明:200表示成功,其余表示失败。失败状态码说明,请参见以下各章节。

设备行为分析

设备行为主要有设备上线(online)和设备下线(offline)的日志。

错误码 含义 原因 排查
400 请求错误。 原因可能是:
  • 被使用相同设备证书的设备踢下线。

    物联网平台仅以设备证书信息(productKey、deviceName、deviceSecret)来判断设备。

    具体原因可能是:

    • 多个设备上烧录了相同的设备证书。
    • 设备端网络或电源不稳定,发生了瞬间断网或断电重连。这种情况下,设备与物联网平台是连接的,不影响设备使用。
  • 设备在云端已被删除。
  • 设备在云端已被禁用
  • 在控制台,设备的设备详情页,查看设备的激活时间,根据时间判断是否有设备使用相同证书接入物联网平台。
  • 在控制台设备列表下,搜索设备,查看设备是否已被删除。
  • 在控制台,查看对应的设备状态,是否显示为已禁用

上、下行消息分析

  • 上行消息日志主要包括:设备发送消息到Topic,消息流转到规则引擎,和规则引擎数据流转功能转发消息到其他Topic和阿里云其他云产品。
  • 下行消息日志主要是云端发送消息到设备的日志。
错误码 含义 原因 排查
1901 受限于网络环境(如tcp write buffer拥堵等),消息发送失败。 设备端接受消息的通道阻塞,可能由于网络慢或者设备端消息能力不足,导致了服务端发送消息失败。 检查网络情况和设备端消息消费能力。
1902 消息写入网络时,发生异常。 网络异常导致发送失败。 检查网络情况。
1903 Topic格式错误。 消息Topic格式错误。 核对Topic格式。
1904 云端收到无效的RRPC响应。 云端收到的RRPC响应没有对应的RRPC请求。可能是之前的请求已经超时失败。 检查设备端回复的RRPC响应,是否已经超时。
1905 云端等待设备响应RRPC超时。 云端下发的RRPC请求,没有在超时时间内收到设备端的RRPC响应。 检查设备端上收的RRPC请求,是否已及时响应。
1950 消息写入时,网络连接发生异常。 网络错误导致发送消息失败。 检查网络状况。
1951 未知的响应类型。 设备端向云端发送了未知类型的消息。 检查设备发送的消息类型。如果您使用的是阿里云设备端SDK,请联系客服或提交工单处理。
9200 设备未激活。 设备没有在物联网平台激活。新设备注册后,需要设备成功接入物联网平台,并进行数据上报才会激活设备。 在控制台,查看设备状态。
9201 设备离线。 设备不在线。 在控制台,查看设备状态。
9236 Topic鉴权失败。 发布或订阅消息的Topic对应的权限不一致。 在控制台,设备的Topic列表中,Topic权限是否正确,即用于发布消息的Topic,权限须为发布;订阅消息的Topic,权限须为订阅。
9324 限流。 设备或者租户流转请求过多。 降低消息发送频率,或者咨询客服。
9321 参数非法。 传递的请求参数不合法,包括其他云产品参数。 根据提示检查对应的参数设置。
9320 payload非法 设备发送的消息体的格式不合法。 检查消息体的格式是否规范。
9331 消息流转的目标云产品内部错误。 数据流转目标云产品的内部发生错误。 根据内容中的错误码,到对应云产品官网上查询或者联系客服。
9332 云产品配置异常。 设置消息流转时,配置有误,导致连接目标云产品服务时出错。 检查数据流转规则,查看目标产品的配置是否正确,资源是否存在。根据内容中的错误码,到对应云产品官网上查询原因和处理方法。
9333 云产品授权错误。 授予物联网平台访问目标云产品的权限可能有误。 检查您的阿里云RAM授权策略。
9399 服务器内部未知错误。 物联网平台内部错误。 请联系客服或提交工单。

物模型数据分析

物的模型数据分析日志,包含上报属性或事件日志、属性设置日志、服务调用日志、属性或服务调用的回复日志。

透传/自定义数据格式产品下的物模型数据分析,除了展示日志的内容之外,还会显示设备上报的原始数据的16进制字符串格式内容。

日志格式说明

参数 说明
id Alink协议的消息ID,用于标识云端和设备端通信的消息。
params 请求参数。
code 返回的结果代码。
method 请求方法。
type 消息上下行类型。 upstream上行,downstream下行。
scriptData 数据格式为透传(自定义)时,展示数据解析转换的入参和出参。
downOriginalData 数据格式为透传(自定义)时,需进行数据解析的下行原始数据,格式为Alink JSON。
downTransformedData 数据格式为透传(自定义)时,下行数据经数据解析后的数据,格式为十六进制字符串。
upOriginalData 数据格式为透传(自定义)时,需进行数据解析的上行原始数据,格式为十六进制字符串。
upTransformedData 数据格式为透传(自定义)时,上行数据经数据解析后的数据,格式为Alink JSON。

调用服务和设置属性失败错误码:

调用服务时,物联网平台会通过设备的模型描述TSL校验该服务的入参是否符合该服务在TSL中的定义。

错误码 含义 原因 排查
9201 设备已下线。 设备不在线时,会报这个错。 在控制台,查看设备的在线状态。
9200 设备没有激活。 设备没有在物联网平台激活。新设备注册后需要进行数据上报。 在控制台,查看设备的在线状态。
6208 设备被禁用。 设备被禁用时,属性设置、服务调用被禁止使用。 在控制台,查看设备的状态。 如果设备被禁用,启用该设备然后重试操作即可。
6300 TSL校验时,method不存在。 TSL校验时,设备上报的Alink(标准)格式数据,或者自定义(透传)格式数据经过脚本转换后,没有Alink协议要求的method参数。 查看设备属性上报的日志,查看上报的数据。 或者查看设备的本地日志,查看上报的数据。
6206 查询服务定义出错。 调用服务时,会查询服务的定义信息,如果服务不存在会报这个错误。 在控制台产品详情中,查看设备所属产品的功能定义,查看传入的服务是否存在。如果存在,请校验传入的参数中是否包含不可见字符。
6200 脚本不存在。 对于透传(自定义)格式的产品,下行服务调用时,会调用产品脚本进行数据的转换。如果脚本不存在,会报这个错误。 在控制台产品详情中,查看产品的脚本是否存在。如果存在,请重新保存脚本后再尝试操作。
6201 脚本转换后数据为空。 脚本执行正常,但是脚本中返回的数据为空。如rawDataToProtocol返回null, protocolToRawData返回null或者空数组。 查看脚本的内容,确认在什么情况下返回数据为空。
6207 数据的格式错误。

下行同步调用时,或者设备上报数据时出现。

下行同步调用时,可能有如下原因:

  • 设备返回的数据格式错误。
  • 对自定义/透传格式数据进行解析后的数据格式错误。
  • 服务调用传入的参数格式不正确。
参见API接口文档及TSL,查看服务需要的数据格式。同时参见Alink协议文档,查看对应的数据格式。
系统异常错误码
5159 获取TSL中属性信息时报错。 系统异常。 可以通过提交工单排查。
5160 获取TSL中事件信息时报错。
5161 获取TSL中服务信息时报错。
6661 查询租户信息时异常。
6205 下行服务调用异常。

上报属性和上报事件失败错误码:

属性上报、事件上报时会通过物的模型描述TSL校验,校验属性是否符合TSL中属性的定义,事件的传入参数是否符合TSL中事件的定义。

错误码 含义 原因 排查
6106 上报的属性数据过多。 设备一次上报的有效属性个数不能超过200个。 查看设备属性上报的日志,检查上报的属性个数。或者查看设备本地的日志,查看上报的数据。
6300 TSL校验时,method不存在。 TSL校验时,设备上报的Alink(标准)格式数据,或者自定义(透传)格式数据经过脚本转换后,没有Alink协议要求的method参数。 查看设备属性上报的日志,查看上报的数据。 或者查看设备的本地日志,查看上报的数据。
6320 TSL校验时,属性信息不存在。 查询设备的TSL时,没有查询到设备的属性信息。 在控制台产品详情中,查看设备所属产品的功能定义,查看属性定义是否存在。不存在时,定义相应的属性。
6450 Alink协议格式的数据中method不存在。 设备上报的Alink标准格式数据,或者自定义/透传格式数据经过脚本解析为Alink标准格式数据后无method。 查看设备属性上报的日志,检查设备上报的数据中是否有method参数。或者查看设备本地的日志。
6207 数据的格式错误。

下行同步调用时,或者设备上报数据时出现。

设备上报数据时,可能原因为:设备上报的Alink数据格式,或者调用脚本解析后返回的数据格式不是JSON格式。

请参见Alink协议文档,查看对应数据格式,并按格式要求上报数据。
系统异常错误码
6452 限流。 请求量过大,触发限流。 可以通过提交工单排查。
6760 租户的空间存储超出配额。 系统异常。 可以通过提交工单排查。

调用服务和设置属性的reply失败错误码:

错误码 含义 原因 排查
通用错误码
460 参数错误。 请求的参数错误。 可以通过提交工单排查。
500 系统内部异常。 系统发生未知异常。 可以通过提交工单排查。
400 服务请求时报错。 调用服务时发生未知错误。 可以通过提交工单排查。
429 请求过于频繁。 请求过于频繁,触发系统限流时会报这个错。 可以通过提交工单排查。
系统异常错误码
6452 限流。 请求量过大,触发限流。 可以通过提交工单排查。

TSL公共错误码

调用服务、上报属性、事件上报时,会通过设备的模型描述TSL校验,校验该服务的入参是否符合该服务的定义,属性是否符合属性的定义,事件的传入参数是否符合事件的定义。

错误码 含义 原因 排查
6321 TSL中,属性对应的标识符identifier不存在。 系统异常。 可以通过提交工单排查。
6317 TSL模型有错误。 系统异常。 可以通过提交工单排查。
6302 参数不存在。 TSL校验服务的入参时,服务要求的参数没有传。 在控制台产品详情中,查看设备所属产品的功能定义。服务查询调用、属性设置,查询对应服务的入参,核对传入的参数。
6306 传入的参数,不符合TSL整形数据的规范。 TSL校验时:
  • 参数类型,和TSL中定义的类型不一致。
  • 传入的参数取值范围不符合功能定义时设置的参数范围。
在控制台产品详情中,查看设备所属产品的功能定义和对应服务的入参,核对传入的参数类型。
6307 传入的参数,不符合TSL中32位浮点数据的规范。 TSL校验时:
  • 参数类型,和TSL中定义的类型不一致。
  • 传入的参数取值范围不符合功能定义时设置的参数范围。
在控制台产品详情中,查看设备所属产品的功能定义和对应服务的入参,核对传入的参数类型和参数的取值范围。
6322 传入的参数,不符合TSL中64位浮点数据的规范。 TSL校验时:
  • 参数类型,和TSL中定义的类型不一致。
  • 传入的参数取值范围不符合功能定义时设置的参数范围。
在控制台产品详情中,查看设备所属产品的功能定义和对应服务的入参,核对传入的参数类型和参数的取值范围。
6308 传入的参数,不符合TSL中布尔类型数据的规范。 TSL校验时:
  • 参数类型,和TSL中定义的类型不一致。
  • 传入的参数取值范围不符合功能定义时设置的参数范围。
在控制台产品详情中,查看设备所属产品的功能定义和对应服务的入参,核对传入的参数类型。
6309 传入的参数,不符合TSL中枚举类型数据的规范。 TSL校验时,参数类型和TSL中定义的类型不一致。 在控制台中产品详情中查看设备所属产品的功能定义,对应服务的入参,核对传入的参数类型。
6310 传入的参数,不符合TSL中字符类型数据的规范。 TSL校验时:
  • 参数类型,和TSL中定义的类型不一致。
  • 传入的字符类型的参数长度超过限制。
在控制台中产品详情中查看设备所属产品的功能定义,对应服务的入参,核对传入的参数类型。
6311 传入的参数,不符合TSL中日期类型数据的规范。 TSL校验时:
  • 传入的参数类型,需要和TSL中定义的类型完全一致。
  • 传入的日期类型判断不是UTC时间戳的字符格式时会报错。
在控制台中产品详情中查看设备所属产品的功能定义,对应服务的入参,核对传入的参数类型。
6312 传入的参数,不符合TSL中结构体类型数据的规范。 TSL校验时:
  • 传入的参数类型,需要和TSL中定义的类型完全一致。
  • 结构体类型中参数的个数和TSL中定义不一致时会报这个错。
在控制台产品详情中查看设备所属产品的功能定义,对应服务的入参,核对传入的参数类型。
6304 校验的参数,在TSL结构体中不存在。 TSL校验时,传入的参数在结构体中不存在。 在控制台产品详情中查看设备所属产品的功能定义,对应服务的入参,核对传入的参数类型。
6324 校验参数时,数组类型的参数不符合规范。 TSL校验时:
  • 传入的数组类型的参数不符合TSL定义时,会报这个错。
  • 数组中参数个数超过了TSL中定义的最大个数。
  • 在控制台产品详情中,查看设备所属产品的功能定义,检查对应数组的定义。
  • 查看设备上报的日志,检查设备上报的数据中数组内元素的个数。
6328 校验参数时,传入的参数不是数组类型。 TSL校验时,传入的参数如果不是数组类型,会报这个错。 在控制台中产品详情中查看设备所属产品的功能定义,查看对应服务的入参,查询类型为数组的参数,然后检查传入的对应参数是否是数组类型。
6325 校验参数时,传入的数组类型参数中的元素类型,目前不支持该类型。 TSL校验参数时报错,数组中元素的类型目前只支持整形、32位浮点类型、64位浮点类型、字符串类型、结构体类型。 检查传入的数组元素类型是否是目前支持的类型。
系统异常错误码
6318 TSL解析时系统异常。 系统异常。 可以通过提交工单排查。
6329 校验参数时,TSL中数组规范解析出错。
6323 TSL中参数规范格式错误。
6316 TSL中解析参数报错。
6314 TSL不支持的数据类型。
6301 通过TSL校验参数格式时报错。
数据解析脚本相关
26010 请求过于频繁被限流。 请求过于频繁。 可以通过提交工单排查。
26001 脚本内容为空。 执行脚本时获取脚本内容,不存在。 在控制台查询产品的脚本是否存在。如果存在,则是否正常保存。应是正式的脚本,不是草稿。
26002 脚本执行时异常。 脚本执行正常,但脚本编写有问题,如脚本中语法错误。 在控制台使用相同的参数去执行脚本,查看具体的错误信息,修改脚本。注意控制台只提供了脚本的基础运行环境,并不会对脚本进行详细的校验。建议脚本需在本地经过详细的自验后,再进行保存。
26006 脚本执行时必要的方法不存在。 脚本执行正常,脚本内容有误。脚本编写要求有protocolToRawData和rawDataToProtocol这两个服务,如果执行时不存在,会报错。 在控制台查询脚本的内容,查看protocolToRawData和rawDataToProtocol服务是否存在。
26007 脚本执行时返回的结果格式不正确。 脚本执行正常,但返回的结果不符合格式要求。 脚本编写要求有protocolToRawData和rawDataToProtocol这两个服务。 protocolToRawData返回byte[]数组, rawDataToProtocol要求返回JSON对象。 如果脚本返回的结果不符合这两种格式,返回时会报这个错。 如设备上报数据后,会返回结果给设备。返回的结果也会经过脚本进行解析,如果对于返回结果不做处理,可能会返回不符合要求的类型。 在控制台查看脚本,获取脚本内容。按照输入参数,在本地执行脚本并查看返回结果的格式是否符合要求。