检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
该场景主要描述的是应用侧或控制台可以给离线设备下发缓存命令,待设备上线后执行,控制台通过设备影子配置属性,待设备上线后上报的属性不匹配的话,会自动下发属性修改的指令,直至修改成功。 核心知识点:产品模型、编辑码插件、设备影子、属性上报、属性修改。
如果不以\r\n结尾,命令会在NB模组中缓存。 NB模组检测发送的数据上报状态是否为SENT? NB模组,通过AT+NQMGS,检查已经发送的命令状态。 PENDING,表示数据已发出,但是平台没有进行响应。 SENT,表示数据已发出,且平台进行了响应。
cache_enable Boolean 参数说明:是否开启缓存,默认为false,设备为true时,当设备入参(username,clientId,password,以及证书信息,函数urn)不变时,当缓存结果存在时,将直接使用缓存结果,建议在调试时设置为false,生产时设置为
是否缓存 选择“是”。 配置Topic策略。 参考设备策略使用说明,配置Topic策略,Topic策略配置参考如下: 表3 Topic策略参数说明 参数名 配置说明 所属资源空间 下拉选择所属的资源空间。 策略名称 填写为“PolicyTest”。
cache_enable Boolean 参数说明:是否开启缓存,默认为false,设备为true时,当设备入参(username,clientId,password,以及证书信息,函数urn)不变时,当缓存结果存在时,将直接使用缓存结果,建议在调试时设置为false,生产时设置为
Token有效期是24小时,从客户端获取开始算起(24小时是相对时间),需要使用同一个Token鉴权时,建议缓存起来使用,避免频繁调用。在Token过期前,务必刷新Token或重新获取Token,否则Token过期后会在服务端鉴权失败。
连接规格 Key Documentation 一个连接能够订阅queue数量 10 单个用户最大队列数 100 单个租户最大连接数 32 单个消息缓存时间 1天 接收平台推送的消息 客户端和平台之间的Receiver Link建链成功后,基于这个link,支持客户端主动拉取数据(推荐使用
单击“添加”,设置转发目标为“设备”,Topic为:“$topic()”(转发后Topic不变),ttl设置为5分钟(数据缓存5分钟)。设置完成后单击“确定”。
支持转发至“数据接入服务DIS”、“分布式消息服务 Kafka”、“对象存储服务 OBS”、“应用与数据集成平台 ROMA Connect”、“第三方应用服务(HTTP推送)”、“AMQP推送消息队列”、、、。
由于缓存的存在,对用户、用户组授予IoTDA相关的角色后,大概需要等待15分钟角色才能生效;授予IoTDA相关的策略后,大概需要等待5分钟策略才能生效。
表2 参数说明 参数名 参数说明 转发目标 选择“分布式消息服务(Kafka)” 区域 选择“分布式消息服务”区域。 对接地址 选择kafka服务的对接地址。 主题 填写接收推送消息的kafka topic。
√ √ √ - RocketMQ分布式消息服务 x √ √ - ROMA Connect应用与数据集成平台 x x √ - FunctionGraph函数工作流服务 x √ √ - MRS Kafka流式集群 x x √ - MySQL数据库 x √ √ - InfluxDB时序数据库
设备影子 物联网平台提供设备影子功能,用于缓存设备状态。设备在线时,可以直接获取下发的命令;设备离线时,上线后可以主动获取下发的命令。详细操作请参考设备影子。 消息跟踪 物联网平台支持通过消息跟踪功能进行快速的故障定位和原因分析。详细操作请参考设备消息跟踪。
buffer_timeout 否 Integer 参数说明:设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。
buffer_timeout Integer 参数说明:设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。
C# Demo使用说明 本文以C#语言为例,介绍应用通过MQTTS协议接入平台,接收服务端订阅消息的示例。 前提条件 熟悉.NETFramework开发环境配置,熟悉C#语言基本语法。 开发环境 本示例所使用的开发环境为.NETFramework 4.6.2版本,.Net SDK
ttl 否 Integer 参数说明:下发消息在平台缓存的老化时间,时间单位是分钟,默认值1440;ttl参数数值必须是5的倍数,即以5分钟为粒度;指定为0时表示不缓存消息,默认最大缓存时间为1440分钟。
buffer_timeout Integer 参数说明:设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。
Python Demo使用说明 本文以Python语言为例,介绍应用通过MQTTS协议接入平台,接收服务端订阅消息的示例。 前提条件 熟悉Python语言开发环境配置,熟悉Python语言基本语法。 开发环境 本示例使用了Python 3.8.8版本。 添加依赖 本示例使用的Python
hasMore字段仅在PSM模式下生效,当上报数据的hasMore字段为1时,物联网平台暂时不下发缓存命令,直到收到hasMore字段为0的上报数据,才下发缓存命令。如上报数据不携带hasMore字段,则物联网平台按照hasMore字段为0处理。