云服务器内容精选
-
下发消息状态 MQTT设备消息执行状态以及状态变化机制如下所示。 图4 设备消息状态 表2 消息执行状态 消息执行状态 说明 等待(PENDING) MQTT协议设备不在线,物联网平台会将消息进行缓存,此时任务状态为“等待”状态。 超时(TIMEOUT) 物联网平台缓存的PENDING状态的消息,如果1天之内还没有下发下去,物联网平台会将消息状态设置为“超时”。 已送达(DELIVERED) 物联网平台将消息发送给设备后,状态变为“已送达”。 失败(FAILED) 物联网平台发送消息给设备不成功,消息状态变为“失败”。
-
消息下发使用QoS 1说明 MQTT设备接入,使用QoS 1的系统Topic进行设备消息下发说明: 图2 消息下发使用Qos 1流程图 设备上线。 订阅Topic,设置订阅Topic的QoS为1。 图3 订阅Topic的QoS为1 应用侧或平台用下发设备消息接口,下发请求到物联网平台,下发消息样例如下: POST https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/messages Content-Type: application/json X-Auth-Token: ******** { "message_id": "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name": "messageName", "message": "HelloWorld" } 物联网平台根据协议规范下发消息给设备。MQTT设备必须先订阅平台消息下发下行接口对应的Topic才能收到平台下发的消息,消息样例如下: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "object_device_id": "{object_device_id}", "name": "name", "id": "id", "content": "hello" } 物联网平台向设备下发消息后,向应用服务器返回201 Created,消息状态为DELIVERED。消息下发是异步操作,不需要等设备ACK就可以回响应。 物联网平台没有收到设备接收消息的ACK响应,重发消息;默认每隔2s重发一次,总下发3次。 设备再次上线或订阅Topic。 物联网平台会重发之前设备未回ACK且未超时的消息,默认每隔10s重发一次,总下发5次;每次重发也会触发每隔2s重发机制。 平台将消息的最终结果推送给应用服务器,设备消息状态为已送达(DELIVERED)或超时(TIMEOUT)。使用接口:设备消息状态变更通知接口。 Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "resource": "device.message.status", "event": "update", "notify_data": { "message_id": "string", "name": "string", "device_id": "string", "status": "DELIVERED", "timestamp": "string" } }
-
使用服务质量 支持MQTT的服务质量等级为QoS 0、QoS 1,不支持QoS 2。 Topic的QoS为 0 时,消息下发不需要等设备回ACK,仅只下发一次; Topic的QoS为 1时,消息下发需要等设备回ACK。 平台默认该设备订阅了QoS为0的系统Topic, 如果需要QoS为1的下行系统Topic,需要设备设置订阅QoS。 设备订阅非$oc开头的自定义Topic, 如果需要平台支持该Topic的QoS为1, 需向平台提交工单联系申请。 如果设备订阅Topic的QoS为1, 平台下发消息没有收到设备确认ACK时, 平台会重发消息, 默认每隔2s重发1次, 共重发3次; 重发后设备依旧没有回确认响应且消息还在缓存时间内, 设备再次上线或订阅Topic时, 平台会再重发消息, 默认每隔10s重发1次, 共重发5次; 同时每次重发也会触发每隔2s重发机制, 故订阅Topic的QoS为1时平台会重发消息, 设备可能会收到重复消息,建议设备要有去重机制。
-
消息缓存下发使用说明 消息下发是平台向设备直接下发消息的一种方式。具有缓存特性,当设备不在线时,平台会对下发的消息进行缓存,直到设备上线。 以MQTT设备接入为例,使用系统Topic进行设备消息缓存下发说明: 图1 消息缓存下发流程 应用侧或平台用下发设备消息接口,下发请求到物联网平台,下发消息样例如下: POST https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/messages Content-Type: application/json X-Auth-Token: ******** { "message_id": "99b32da9-cd17-4cdf-a286-f6e849cbc364", "name": "messageName", "message": "HelloWorld" } 物联网平台向应用返回201 Created,消息状态为PENDING。 物联网平台通过设备消息状态变更通知接口推送消息结果给应用,设备未上线时,设备消息状态为等待(PENDING),对应的消息样例如下: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "resource": "device.message.status", "event": "update", "notify_data": { "message_id": "string", "name": "string", "device_id": "string", "status": "PENDING", "timestamp": "string" } } 设备上线。 设备订阅消息下发的topic,用于接收消息,订阅的topic见步骤6。 物联网平台根据协议规范下发消息给设备。MQTT设备必须先订阅平台消息下发下行接口对应的Topic才能收到平台下发的消息,消息样例如下: Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "object_device_id": "{object_device_id}", "name": "name", "id": "id", "content": "hello" } 平台将消息的最终结果推送给应用服务器,设备消息状态为已送达(DELIVERED)。使用接口:设备消息状态变更通知接口。 Topic: $oc/devices/{device_id}/sys/messages/down 数据格式: { "resource": "device.message.status", "event": "update", "notify_data": { "message_id": "string", "name": "string", "device_id": "string", "status": "DELIVERED", "timestamp": "string" } }
-
概述 消息下发不依赖产品模型,提供给设备的单向通知,具有消息缓存功能;云端消息下发中,平台会以异步方式(消息下发后无需等待设备侧回复响应)下发消息给设备;若设备不在线,则在设备在线后发送数据(支持配置,最长缓存时间24小时)。平台对每个设备默认只保存20条消息,超过20条后,后续的消息会替换下发最早的消息。同时,消息下发支持使用自定义topic的格式进行数据下发。 表1 消息下发Topic类别 消息下发Topic类别 描述 系统Topic 平台预先定义了各种设备和平台通信的Topic,具体Topic列表和功能说明可参考Topic定义。 自定义Topic 用户可以自定义Topic,设备和平台间可以基于用户自定义的Topic进行通信。 自定义topic分类: 在产品中定义需要使用的Topic,这类Topic有$oc/devices/{device_id}/user/前缀,消息上报或者消息下发时平台会校验Topic是否在产品中定义,未在产品中定义的Topic会被平台拒绝。使用方式可以参考链接使用自定义Topic进行通信的最佳实践。 使用非$oc开头的自定义Topic,如/aircondition/data/up进行消息通信,这类Topic平台不校验Topic权限,根据MQTT协议定义的规则进行Topic的消息上下行通信。使用方式可以参考链接第三方云设备迁移至华为云最佳实践。
-
操作步骤 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。 依次单击“规则 - 数据转发 - 策略配置 - 数据流转积压策略”进入积压策略配置界面。 图1 策略配置界面 在弹出的界面中填写名称、描述、积压大小、积压时间等信息后,单击确定即可完成积压策略创建。 图2 创建积压策略 表1 参数说明 参数名称 描述 策略名称 长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 描述 关于该策略的描述,长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 积压大小 单个转发规则流转数据在IoT物联网平台最大积压(缓存)大小,单位为B,最大可配置为1073741823 B,即1GB。 积压时间 单个转发规则流转数据在IoT物联网平台最大积压(缓存)时间,单位为秒,最大可配置为86399秒,即24小时。
-
概述 当转发目标(如第三方应用服务器等)由于性能等原因无法快速处理IoT物联网平台流转数据时,未能及时处理的流转数据会积压(缓存)在IoT物联网平台。目前IoT物联网平台默认配置单个转发规则流转数据的最大积压(缓存)大小为1GB,最大积压(缓存)时间为24小时,超过最大积压(缓存)大小或积压(缓存)时间时,最早未被处理的流转数据会被丢弃直至满足积压(缓存)大小和时间限制。 客户可以根据自身的业务场景以及转发目标(如第三方应用服务器等)的性能等情况,在IoT物联网平台上创建合适的积压策略,控制流转数据在IoT物联网平台的积压情况。 例如:当业务对数据实时性的要求高于完整性,而转发目标(如第三方应用服务器等)长时间性能不足或业务中断一段时间,未能及时处理IoT物联网平台流转数据,导致流转数据大量积压在IoT物联网平台,转发目标(如第三方应用服务器等)接收到的数据一直是延迟、滞后的数据, 此时可以考虑使用积压策略配置较小的积压大小和积压时间,丢弃过时的数据,接收、处理较为实时的流转数据。
-
操作步骤 进入“策略”界面,单击展开“静态策略”,单击“添加实例”。 按照下方参数说明填写关键参数信息后,单击“确定”。 表1 静态策略参数列表 参数名称 说明 示例 关键字 即关键字来源中的关键字。设备发放时,如果关键字来源字符串中包含设置的关键字,则可按该实例进行发放。 将设备名称携带Beijing的设备发放至华北-北京四的物联网平台。 设备名称:WaterMeter-Beijing0001、WaterMeter-Beijing0002 关键字来源:设备名称 关键字:Beijing 发放区域:华北-北京四 发放应用:beijing-app1 将上报信息中携带Beijing的设备发放至华北-北京四的物联网平台。 关键字来源:数据上报 topic“$oc/devices/${device_id}/sys/bootstrap/up”上报信息:{ "baseStrategyKeyword": "WaterMeter-Beijing0003"} 关键字:Beijing 发放区域:华北-北京四 发放应用:beijing-app1 关键字来源 关键字来源指的是用于匹配关键字的字符串信息的数据来源。目前支持设备名称与数据上报两种形式。 如果为设备名称,则匹配关键字的字符串取设备创建后的设备名称。 如果为数据上报,则匹配关键字的字符串取设备发放过程中,发起发放请求Topic“$oc/devices/${device_id}/sys/bootstrap/up” 的上报信息json中的baseStrategyKeyword属性。 优先级别 发放策略的优先级,取值范围1 - 5级,1级为最低优先级。当一个设备符合多个发放策略时,按照优先级最高的策略实例发放。 发放区域 发放到指定区域后,设备将接入对应区域的设备接入服务。 所选区域未开通设备接入服务时,如果确定添加实例,系统将自动为您开通设备接入服务。不同区域设备接入服务价格不同,收费详情请参考价格说明。 发放应用 选择对应设备接入服务区域已创建的应用。在物联网平台中,设备由应用统一管理。 如果对应设备接入服务区域未创建应用,需要前往对应服务创建应用。
-
概述 静态策略,即设备关键字模糊匹配的发放策略。每条静态策略实例指:匹配上该策略实例的设备,将会被发放到该条策略实例关联的设备接入实例的对应资源空间(即应用)下。 设备匹配静态策略实例的机制为: 设备的发放策略为“静态策略”,设备的关键字来源字符串包含某一静态策略实例的关键字,即被认为该设备匹配上该条策略实例。关键字来源有以下两种来源类型: 设备名称:如果设备名称包含设置的关键字,即可按照该行策略指定的发放应用进行实例发放。 数据上报:如果设备在连接后,进行发放publish时,上报Topic “$oc/devices/${deviceId}/sys/bootstrap/up” 中,json上报的属性 “baseStrategyKeyword” 包含设置的关键字,即可按该实例进行发放。 一个设备最多匹配一条静态策略实例; 当一个设备匹配上多条静态策略实例时,则以优先级最高的策略实例为优先。
-
操作步骤 访问设备接入服务,单击“管理控制台”进入设备接入控制台。 单击左侧导航栏“产品”,单击页面左侧的“创建产品”。根据页面提示填写参数,然后单击“确定”,完成产品的创建。 基本信息 所属资源空间 下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。 产品名称 为产品命名。产品名称在相同资源空间有唯一性。长度不超过64,只允许中文、字母、数字、以及_?'#().,&%@!-等字符的组合。 协议类型 MQTT:使用MQTT协议接入平台的设备,数据格式可以是二进制也可以是JSON格式,采用二进制时需要部署编解码插件。 LwM2M/CoAP:使用在资源受限(包括存储、功耗等)的NB-IoT设备,数据格式是二进制,需要部署编解码插件才能与物联网平台交互。 HTTPS:HTTPS是基于HTTP协议,通过SSL加密的一种安全通信协议。物联网平台支持HTTPS协议通信。 Modbus:物联网平台支持使用Modbus协议接入,使用Modbus协议的设备接入IoT边缘节点的方式为非直连。直连设备和非直连设备差异说明,请参考这里。 HTTP(TLS加密)、ONVIF、OPC-UA、OPC-DA、Other:通过边缘接入。 数据格式 JSON:平台和设备之间的通信协议采用JSON格式。 二进制码流:您需在控制台开发编解码插件,将设备上报的二进制码流数据转换为JSON格式;将平台下发的JSON格式数据解析为二进制码流格式,设备才能与平台进行通信。 所属行业 请根据实际情况选择。 设备类型 请根据实际情况选择。 高级配置 产品ID 定制ProductID,用于唯一标识一个产品。如果携带此参数,平台将产品ID设置为该参数值;如果不携带此参数,产品ID在物联网平台创建产品后由平台分配获得。 产品描述 产品描述。请根据实际情况填写。 产品创建成功后,您可以单击“删除”删除不再使用的产品。删除产品后,该产品下的产品模型、编解码插件等资源将被清空,请谨慎操作。
-
产品模型开发方法 物联网平台提供了多种开发产品模型的方法,您可以根据自己需求,选择对应的方法开发产品模型。 自定义模型(在线开发):从零自定义构建产品模型。详细参考在线开发产品模型。 上传模型文件(离线开发):将本地写好的产品模型上传到平台。详细请参考离线开发产品模型。 Excel导入:通过导入文件的方式快速开发产品模型。详细请参考Excel导入。 导入库模型(平台预置产品模型):您可以使用平台预置的产品模型,快速完成产品开发。当前平台提供了标准模型和厂商模型。标准模型遵循行业标准的产品模型,适用行业内绝大部分厂商设备,而厂商模型针对设备类型发布的产品模型,适用于用行业内少量厂家设备。您可以根据实际需求选择相应的产品模型。
-
什么是产品模型 产品模型用于描述设备具备的能力和特性。开发者通过定义产品模型,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息,如颜色、开关等。当定义完一款产品模型后,再进行创建设备时,就可以使用在控制台上定义的产品模型。 产品模型包括产品信息和服务能力: 产品信息 描述一款设备的基本信息,包括设备类型、协议类型。 例如:设备类型为“WaterMeter”,协议类型为“CoAP”。 服务能力 描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。 以水表为例,水表具有多种能力,如上报水流、告警、电量、连接等各种数据,并且能够接受服务器下发的各种命令。产品模型文件在描述水表的能力时,可以将水表的能力划分五个服务,每个服务都需要定义各自的上报属性或命令。说明如下: 服务类型 描述 基础(WaterMeterBasic) 用于定义水表上报的水流量、水温、水压等参数,如果需要命令控制或修改这些参数,还需要定义命令的参数。 告警(WaterMeterAlarm) 用于定义水表需要上报的各种告警场景的数据,必要的话需要定义命令。 电池(Battery) 定义水表的电压、电流强度等数据。 传输规则(DeliverySchedule) 定义水表的一些传输规则,必要的话需要定义命令。 连接(Connectivity) 定义水表连接参数。 具体定义几个服务是非常灵活的,如上面的例子可以将告警服务拆分成水压告警服务和流量告警服务,也可以将告警服务合入到水表基础服务中。
-
场景说明 对于设备上报到平台的数据,使用函数工作流FunctionGraph处理实时流数据。通过函数服务,用户只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,即可跟踪设备的设备属性、消息上报,状态变更,分析、整理和计量数据流。 本示例为将所有设备上报的属性转发至FunctionGraph函数工作流,根据设备资源空间Id的不同推送到用户Http服务器的不同路径,请您提供自行部署的Http服务器。本示例通过设备接入服务的数据转发能力来驱动事件函数,不需要额外配置触发器。
-
构建函数工程 本例提供了设备属性上报格式转换并转发到第三方应用的源码(包含函数依赖),用户可以下载学习使用。 创建工程 本例使用Java语言实现设备接入属性数据流式转换功能与推送功能,有关函数开发的过程请参考FunctionGraph的Java函数开发指南,本例不再介绍函数工作流函数实现的代码。 下载样例源码,解压缩并在Idea中导入工程。代码说明可参考:样例代码说明,其中用户自己的服务器地址通过函数环境变量NA_MOCK_SERVER_ADDRESS传入。 图1 样例代码说明 打包工程 使用Idea的Build Artifacts打包Jar,Idea配置及打包如下图所示。 图2 工程Artifacts Output 配置参考 图3 Build Artifacts
-
按资源空间创建同步任务 进入“设备数据同步”界面,单击右上角“创建同步任务”。 同步方式选择“按资源空间整体同步”,将所有必填选项选择完毕后,单击“确认创建”。 在设备数据同步任务界面,将会看到刚创建的任务,可以对任务进行查看详情、重试、停止或删除操作。 单击“任务ID”或者“详情”,可以看到刚创建的任务的详细内容,并且可以使用“高级搜索”对同步设备进行过滤查询操作。 单击“设备名称”,可以跳转到设备同步详情页,能够查看该设备的信息和设备的发放记录。 同一个资源空间不能创建多个同步任务,如需对该资源空间下的数据进行重新同步,要删除该资源空间关联的同步任务。重新创建该资源空间的同步任务后,相关数据同步到新的目标实例,设备南向引导以最新同步的目标平台实例为准下发地址。(删除同步任务之后,如果没有创建新的同步任务,设备南向无法引导。) 当多个资源空间同时同步时,若某资源空间下的产品、证书同步失败只影响当前资源空间的同步,其他资源空间正常执行。当产品和证书同步失败时,可以选择通过重试同步任务,尝试进行再次同步。 按资源空间同步后,在源实例的设备接入控制台上查看不到同步的资源空间。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格