更新时间:2023-04-18 GMT+08:00
分享

命令下发失败或设备收不到命令如何处理?

调测设备命令下发前,请务必先调通设备上报数据,确保设备能成功上报数据至物联网平台。

  • 给使用LWM2M/CoAP协议接入的设备,例如NB-IoT设备下发命令时需要使用创建设备命令接口,如果调用接口失败请参考接口文档的错误码描述修改请求重新发送。需要注意的是,“paras”参数为必选,即使您下发的命令并不需要参数,也必须携带一个非空的“paras”。
  • 给使用MQTT协议接入的设备,例如集成了AgentLite SDK的设备下发命令时需要使用设备服务调用接口,如果调用接口失败请参考接口文档的错误码描述修改请求重新发送。

接口调用成功后,在开发中心的设备管理 > 历史命令中查看命令状态:

  • 如果命令状态为失败,则:
    • 检查设备日志,如果存在编码失败的提示(Encode error),则说明为编解码插件的问题,需要使用编解码检测工具检查编解码插件的正确性。

    • “设备管理”中检查设备状态,如果设备状态为异常或者离线,则需要保证设备为在线状态,可尝试上报一条数据。
    • 如果命令状态为已发送或超时,说明命令已经由物联网平台送出,建议先检查设备是否已收到命令,因为超时是指设备没有在规定时间内返回ACK,不一定代表设备为接收到命令。

      若设备确实没收到命令,请联系运营商检查网络侧。

  • 如果命令状态为已送达,说明物联网平台已经收到设备返回的ACK,物联网平台与设备之间的通信正常,请获取设备日志进行分析。

    若设备使用了NB模组,请检查设备是否正确的从NB模块中取出了命令:

    如果提前设置了AT+NNMI=1,则NB模块将自动通过串口推送收到的数据上报响应和下发的命令。

    如果没有设置,则NB模块将对数据上报响应和下发的命令进行缓存,需要设备发送AT+NMGR,从缓冲区中读取数据上报响应和下发的命令。在这种模式下,发送AT+NMGR的频率,需要比发送数据上报的命令AT+NMGS的频率更高,否则,将大量的只获取到数据上报响应,从而造成下发命令的延迟。

  • 如果命令状态为等待,并且省电模式为PSM,则表示下发的是缓存命令(调用创建设备命令时设置expireTime大于0),需设备上报一条数据后才能收到命令。

    设备侧的省电模式需要联系运营商确认,物联网平台侧可在设备管理平台的“应用列表”点击应用查看服务设置 > 工作模式(物联网平台侧设置的省电模式需要与设备侧一致,不一致时请以设备侧为准并修改物联网平台侧的设置)。

  • 如果命令状态为超期,则表示下发的是缓存命令,且命令下发后expireTime指定的时间内设备都处于PSM状态(低功耗状态),需要再下发一条命令并在expireTime指定的时间内控制设备上报一条数据脱离PSM状态。
分享:

命令下发(联通用户专用) 所有常见问题

more