计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
文档首页/ 设备接入 IoTDA/ 常见问题/ 消息通信相关问题

消息通信相关问题

更新时间:2024-07-29 GMT+08:00

数据上报失败如何处理?

  1. 若设备是使用接口注册的,请确认设备是否因为没在指定的timeout时间内上线而被物联网平台自动删除了。如果设备已被删除,请重新注册设备再尝试上报数据。
  2. 请检查使用接口注册设备时,填写的产品信息是否和产品模型一致。
  3. 请检查上报的数据名称是否和产品模型定义的服务属性一致。
  4. 确定以上都不存在问题时,请检查设备和物联网平台之间的网络链路是否畅通,设备是否正常运行。

设备上报数据,应该选择消息接口还是属性接口?

根据实际业务场景来使用。如果不需要平台解析数据,仅透传数据的话,可以使用消息上报(无需开发产品模型);如果需要平台解析数据,请使用属性接口上报(需要开发产品模型)。

设备消息上报成功后,如何在平台查看是否上报成功?

由于消息是透传的,当前可以通过消息跟踪和运行日志查看。

  • 消息跟踪:进入设备接入控制台,进入您的实例,选择设备 > 所有设备,单击具体设备,启动消息跟踪后查看。
  • 运行日志:可参考运行日志使用说明进行配置,启动运行日志后查看。

设备显示上报数据成功,在控制台未看到数据?

可能原因

设备上报的数据内容与产品模型中定义的属性不匹配。

解决方法

  1. 查看设备对应产品信息,比较产品模型中的属性信息和设备上报属性是否一致。
  2. 进入设备接入控制台,选择设备 > 所有设备,单击具体设备,启动消息跟踪,设备重新上报后可以查看是否有相关日志,如果没有日志,表示数据未到达平台,检查设备侧的网络状态;如果有日志,可以查看日志内具体报错信息。
  3. 也可单击监控运维 >运行日志进入运行日志页面,可参考运行日志使用说明进行配置,启动后可以查看日志内具体报错信息。

设备影子显示数据与设备上报数据不一致?

设备接入服务中,设备上报的二进制数据平台进行了Base64处理,因此显示的数据不一致。进行Base64解密后数据将一致。

设备通过自定义Topic上报数据失败?

可能原因

自定义Topic不匹配或没有发布权限。

解决方案

console平台操作已指定消息topic前缀为$oc/devices/{device_id}/user/, 用户在前缀的基础上增加自定义部分,且不能是变量。通过自定义Topic上报数据时需要确认Topic是否已存在并已具备发布权限。

图1 Topic管理-新增自定义Topic

设备上报数据后,收不到物联网平台回复的数据上报响应?

  • 如果插件为在线开发,则插件的数据上报消息中需要勾选“添加响应字段”
    图2 插件开发-新增消息
  • 如果插件为离线开发,则插件代码中需要定义cloudRsp逻辑。
    图3 插件代码样例

设备在一个位置上报数据成功,在另一个位置上报失败?

请联系NB-IoT网络运营商,确认NB-IoT卡是否有地域限制,以及当地NB网络状态。

NB设备上报数据为字符串时如何转换为二进制编码?

请先将字符串转换为ASCII编码再转换为二进制编码,例如“abc”转换成ASCII编码是979899,再转换为二进制编码011000010110001001100011。

为何上报中文数据,平台会乱码呈现?

问题描述

使用MQTT.fx设备模拟器进行数据上报时,在json字符串中携带中文字符,如下图:

图4 MQTT.fx数据上报截图

上报至IoTDA平台后,会出现乱码情况,如下图:

图5 设备-设备属性乱码样例

可能原因

MQTT.fx设备模拟器不支持中文字符。

解决办法

  1. 与平台交互时,不使用中文字符。
  2. 请将上报数据中的中文字符进行Unicode编码处理。
  3. 替换第三方设备模拟器,推荐使用IoTDA自研的设备模拟器

LWM2M/CoAP协议接入的设备如何进行命令下发?

LWM2M/CoAP协议接入的设备,在设备 > 所有设备 > 设备详情 > 云端下发 > 异步命令下发 > 命令下发页面下发命令。

详细操作可参考LwM2M/CoAP设备命令下发

MQTT协议接入的设备如何进行命令下发?

MQTT协议接入的设备,在设备 > 所有设备 > 设备详情 > 云端下发 > 同步命令下发 > 命令下发页面下发命令。

详细操作可参考MQTT设备命令下发

命令下发失败如何处理?

问题描述

调用命令下发接口报错或调用接口成功但设备未收到命令。

可能原因

  1. 设备协议不支持。
  2. 设备订阅的下行topic不正确或者设备上行topic及消息体不正确。

解决方法

  1. 确认使用的接口是否支持设备协议(同步命令下发当前仅支持MQTT协议设备)。
  2. 同步命令下发操作步骤:
    • 确认设备订阅下行topic是否正确(需订阅成功后才可调用接口,不订阅,设备收不到平台消息),详细请参考平台命令下发接口文档。
    • 若设备有收到平台下发的消息,确认设备上行topic及消息体是否正确,且必须在收到平台消息20s内(消息接口不限定20s),通过上行topic向平台发送,否则接口报错(request_id为下行消息中携带)。
  3. 异步命令下发操作步骤:

    确认是立即下发还是缓存下发(根据入参的send_strategy判断)。

    • 立即下发:设备在线,调用接口后设备立即收到。
    • 缓存下发:调用接口后,设备上报数据后收到。

设备变为异常或者离线后,命令下发会成功吗?

同步命令会下发失败。

异步命令入参send_strategy为delay,命令会被缓存起来,等数据上报或者设备上线之后下发。

命令/属性下发总是超时?

命令下发、属性设置、属性查询接口为同步命令,需要设备及时回响应,否则会超时。

物联网平台下发异步命令有重发机制吗?

物联网平台具备异步命令重发机制。异步命令发送后(可以在设备接入的命令详情中查看命令发送时间):如果物联网平台未收到设备返回的ACK,则在10s~15s后会进行第一次重传。如果物联网平台仍未收到设备返回的ACK,在20s~30s后进行第二次重传。如果物联网平台依旧未收到设备返回的ACK,在40s~60s进行第三次重传。如果物联网平台在80s~180s后还没收到设备返回的ACK,则命令状态变为超时。

物联网平台的命令状态总共有几种?

LWM2M/CoAP设备命令下发状态

物联网平台命令下发包含如下状态:
  • 超期:表示命令在物联网平台缓存时间超期,未向设备下发。
  • 成功:表示物联网平台已经将命令下发给设备,且收到设备上报的命令执行结果。
  • 失败:表示编解码插件解析为空,或执行结果响应里面有“ERROR CODE”等。
  • 超时:表示物联网平台等待ACK响应超时。
  • 取消:表示应用侧已经取消命令下发。
  • 等待:表示命令在物联网平台缓存,还未下发给设备。
  • 已发送:表示物联网平台已经将命令下发给设备。
  • 已送达:表示物联网平台已经将命令下发给设备,且收到设备返回的ACK消息。

各命令状态之间的转换如下图所示:

图6 命令状态转换图

MQTT设备下发消息状态

  • 等待:MQTT设备不在线,物联网平台会将消息进行缓存,此时任务状态为“等待”状态。
  • 超时:物联网平台缓存的PENDING状态的消息,如果1天之内还没有下发下去,物联网平台会将消息状态设置为"超时”。
  • 已送达:物联网平台将消息发送给设备后,状态变为“已送达”。
  • 失败:物联网平台发送消息给设备不成功,消息状态变为“失败”。

各消息状态之间的转换如下图所示:

图7 消息状态转换图

平台能批量下发命令吗?

通过调用物联网平台的创建批量任务接口可以进行批量命令下发。

说明:

通过创建批量任务下发的命令为缓存命令。

同步接口调用失败,显示超时该如何处理?

同步命令下发显示超时一般是端侧未在20s左右回复响应导致。可以使用真实设备或者模拟器来模拟设备上报响应(同步命令下发响应属性修改响应属性查询响应),其中特别注意设备侧响应的request_id需要跟平台下发的保持一致。

LwM2M协议设备的命令下发多条,为什么只有一条是成功,其他是已发送状态?

因为LwM2M协议是异步命令下发,并且是逐条下发的,收到上一条协议回复的响应后,才会进行下一条指令的下发。

平台向NB-IoT设备缓存下发命令,为什么设备一直收到同一条控制命令?

设备收到平台下发的命令后,必须向平台返回ACK响应,平台才认为设备收到了命令,否则平台认为这条命令没有下发成功,会重复下发这条命令直到收到ACK响应或命令过期。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容