云服务器内容精选

  • 开发中心模拟设备如何上报负数? 使用LWM2M协议接入的设备上报负数时,编解码插件对应的数据类型要选择有符号整形数;实际上报数据时,负数转换为二进制编码时需要转换为补码,再转换为十六进制数填写到模拟设备数据上报界面。 例如: -5转换为二进制,原码为10000101,补码为11111011,补码转换为十六进制为FB,再与消息中其他字段(如地址域字段取值为00)组合后上报。 父主题: 设备集成(联通用户专用)
  • 开发中心、设备接入和设备管理的差异是什么? 开发中心、设备接入和设备管理的主要差异是: 产品 定位 商用/测试 价格 特别关注 设备接入 进行海量设备联接、数据采集/转发、远程控制的云服务。 商用环境 按照消息数收费 开通设备管理服务时,系统会同时开通设备接入服务。开通设备管理服务后,设备接入服务中已注册的设备,可以在设备管理服务中继续使用。 设备管理 在设备接入基础上,增加了产品模型定义、远程诊断、数据存储、软固件升级等更丰富的设备管理能力。使用设备管理时,包含设备接入服务的能力。 商用环境 按照设备数收费 开发中心所在的测试环境,设备管理服务所在商用环境,两个环境的设备数据不能互通。已对接测试环境的设备/应用如果需要迁移至商用环境,需要在商用环境重新创建应用和注册设备,并修改设备/应用中平台的接入信息。 开发中心 基于设备管理提供的一站式开发工具,帮助开发者快速进行产品模型(Profile)和编解码插件的开发,同时提供在线自助测试、产品发布等多种能力。 测试环境 免费 开发中心上开发的产品(Profile文件和编解码插件)只适用于设备管理服务,不能在设备接入服务中导入和使用。 点击查看更多开发中心,设备接入和设备管理功能和使用限制差异。 父主题: 方案咨询(联通用户专用)
  • 如何获取应用ID和应用密钥?如何重置应用密钥? 设备接入和设备管理商用环境 应用ID和应用密钥在创建应用后生成,请将密钥保存在本地,密钥信息在应用详情中不可见。 如需修改应用密钥,请登录设备接入或设备管理服务管理控制台,点击“进入设备接入服务”或“进入设备管理服务”,在“应用列表”中单击应用,在应用定义中可重置应用密钥。 开发中心调测环境 应用ID和应用密钥在创建项目后生成,请将密钥保存在本地。 如需修改应用密钥,请登录开发中心,进入创建的应用或者项目,在“应用-对接信息”中重置应用密钥查看。 父主题: 应用集成(联通用户专用)
  • 物联网平台的命令状态总共有几种? 物联网平台命令下发包含如下状态: 超期:表示命令在物联网平台缓存时间超期,未向设备下发。 成功:表示物联网平台已经将命令下发给设备,且收到设备上报的命令执行结果。 失败:表示编解码插件解析为空,或执行结果响应里面有“ERROR CODE”等。 超时:表示物联网平台等待ACK响应超时。 取消:表示应用侧已经取消命令下发。 等待:表示命令在物联网平台缓存,还未下发给设备。 已发送:表示物联网平台已经将命令下发给设备。 已送达:表示物联网平台已经将命令下发给设备,且收到设备返回的ACK消息。 各命令状态之间的转换如下图所示: 父主题: 命令下发(联通用户专用)
  • 设备端开发 完成云端配置后,需要进行设备端业务开发。完整的设备开发流程可参考设备侧开发。本章节以MQTT.fx为例,介绍在设备迁移场景下,设备侧如何在尽量少改动的情况下,实现设备建立MQTT连接、数据上报、指令接收等功能。 设备同物联网平台建立MQTT连接。 参考下表配置鉴权参数。 参数 必选/可选 参数描述 Broker Address 必选 华为云物联网平台的MQTT协议接入地址,请参考此处获取。 Broker Port 必选 8883。若设备侧MQTT接入端口不是8883,且无法修改,可以开通企业版实例,参考此页面配置MQTT协议接入端口。 Client ID 可选 使用设备迁移前的Client ID。 User Name 必选 填写步骤3注册设备时生成的设备ID,默认通过控制台生成的设备ID会添加产品ID前缀。在设备迁移场景,设备侧User Name参数无法修改时可以调用创建设备接口,指定设备ID参数值同迁移前的User Name参数值保持一致。 Password 必选 加密后的设备密钥。Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。 secret为注册设备时平台返回的secret。 参考下表配置“SSL/TLS”认证参数,然后单击“Apply”。 参数 必选/可选 参数描述 Enable SSL/TLS 必选 选择“Enable SSL/TLS” CA certificate file 必选 上传证书资源页面获取的CA证书。如果设备侧的CA证书无法修改,可以开通企业版实例,参考此页面配置服务端证书。 设备同物联网平台建立连接后,设备沿用迁移前的topic和payload格式上报数据。物联网平台针对这类非系统预定义的topic,统一按照“设备消息”的处理流程将设备上报的数据转发给第三方应用或者华为云的其他云服务处理。 图2 设备在线 根据迁移前的topic进行订阅,接收应用服务器下发的指令。
  • 整体方案 假设企业终端设备接入自建MQTT集群,业务架构如下图所示。 基于MQTT协议的上行数据和下行指令的业务定义如下: 业务场景 通信Topic 报文Payload 设备上报数据 /aircondition/data/up { "temperature": 26.0 } 服务端控制指令 /aircondition/cmd { "switch": "off" } 为减少企业改造成本,华为云物联网平台提供如下迁移方案,设备侧不用改变原有的topic和payload报文格式,就可以快速迁移设备到华为云物联网平台。 企业设备迁移上云有三个核心变更点: 设备侧修改接入域名为华为云物联网平台的接入点。 配置规则引擎,把设备数据流转到应用服务器、AMQP消费组或华为云第三方云服务产品。 应用服务器适配设备消息下发接口往指定topic下发消息。
  • 新增产品模型 Profile开发完成并测试验证后,可以将profile文件导入到控制台上使用,有三种导入方式: 产品中心导入:在开发中心上完成profile的定义并发布到产品中心。 本地导入:指线下完成profile的开发,通过上传profile包的方式导入。 注:通过本地导入的profile不含编解码插件,如果设备上报采用的是二进制码流,请使用产品中心导入的方式。 手动创建:手动创建一个产品(支持CoAP/LWM2M、MQTT或LoRaWAN),不定义设备属性(不需要开发profile及编解码插件),仅透传数据,不解析数据(透传模式具体请参考数据上报(联通用户专用))。如使用手动创建的产品模型,建议仅开通设备接入服务即可。 当协议类型选择LoRaWAN时,无法注册为普通设备,仅能注册为LoRaServer的子设备。 导入产品模型后,就无法对已导入产品模型的产品信息和服务能力进行修改,例如修改协议类型、新增一个服务等。可以通过设备配置更新、设备影子对设备服务属性值进行修改,通过界面修改OM维护能力。 登录物联网平台控制台,点击右上角“进入设备管理服务”。 单击左下角,选择“产品模型”,单击“新增产品模型”。 产品模型可通过从产品中心导入和从本地导入两种方式。 从产品中心导入: 选择“从产品中心导入”,进入到产品中心页面。 导入自有产品:产品中心默认显示自有产品列表,可通过产品名称或者设备类型搜索产品。 导入第三方公开产品:“产品范围”选择“第三方公开”,可通过产品名称、设备类型或者厂商名称搜索产品。 导入第三方私有产品:单击页面右上角“第三方私有产品”,在弹出的窗口中输入产品验证码,该验证码由设备厂商提供。 在搜索的产品模型列表中单击需要导入的产品名称。 从本地导入: 选择“本地导入”进入到本地导入产品的页面。 在弹出的窗口中输入产品名称,并上传资源文件。 单击“确定”,等待导入完成。 在“产品模型”页面查看导入结果。 导入失败:可在“失败原因”中查看导入失败的原因,用户可根据失败原因定位错误。 导入成功:可单击“详情”,查看产品模型详情。 用户可以在产品列表中删除不再使用的产品,单击“删除”即可。 单击“详情”,用户可查看产品模型详细信息,包括查看该产品模型具备的服务列表,产品维护能力配置,以及自定义topic。 关于自定义topic,每个产品模型最多可以自定义10个,只有MQTT协议接入的设备支持自定义,参数信息配置如下: 设备操作权限: 发布: 设备侧消息上报时,可按配置中自定义的topic进行消息上报;数据流转时,设备消息中会携带topic参数标识该消息从哪个topic上报。 订阅:设备侧消息下发时,可在消息内容中指定此消息下发使用哪个topic;消息发往设备时,可以根据指定的topic下发。 发布和订阅:同时具备发布和订阅的权限。 topic名称:自定义即可。支持英文字母、数字、下划线,+和#(仅权限是订阅时支持),长度限制64。 描述:关于该topic的描述。 如果还未使用该产品模型注册设备,则可以删除该产品模型。 如果已使用该产品模型注册过设备,则无法删除该产品模型。
  • 概述 产品模型(也称Profile)用于描述设备具备的能力和特性。开发者通过定义Profile,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息,如颜色、开关等。当定义完一款产品模型后,在进行设备注册时,就可以选择已在控制台上导入的产品模型。 Profile包括产品信息、服务能力、维护能力三部分: 产品信息 描述一款设备的基本信息,包括厂商ID、厂商名称、设备类型、型号、协议类型。其中厂商ID和型号唯一标识一款产品。 例如:水表的厂商名称为“HZYB”,厂商ID为“TestUtf8ManuId”,设备类型为“WaterMeter”,型号为“NBIoTDevice”,协议类型为“CoAP”。 服务能力 描述设备具备的业务能力。将设备业务能力拆分成若干个服务后,再定义每个服务具备的属性、命令以及命令的参数。 以水表为例,水表具有多种能力,如上报水流、告警、电量、连接等各种数据,并且能够接受服务器下发的各种命令。Profile文件在描述水表的能力时,可以将水表的能力划分五个服务,每个服务都需要定义各自的上报属性或命令。说明如下: 服务名 描述 基础(WaterMeterBasic) 用于定义水表上报的水流量、水温、水压等参数,如果需要命令控制或修改这些参数,还需要定义命令的参数。 告警(WaterMeterAlarm) 用于定义水表需要上报的各种告警场景的数据,必要的话需要定义命令。 电池(Battery) 定义水表的电压、电流强度等数据。 传输规则(DeliverySchedule) 定义水表的一些传输规则,必要的话需要定义命令。 连接(Connectivity) 定义水表连接参数。 注:具体定义几个服务是非常灵活的,如上面的例子可以将告警服务拆分成水压告警服务和流量告警服务,也可以将告警服务合入到水表基础服务中。 维护能力 描述设备具备的维护能力,包括固件升级、软件升级、配置更新。 关于Profile文件的规范、含义和样例等,可参考如何离线开发?
  • 检查软件升级能力 对终端设备进行软件升级,需要检查设备对应的产品模型中,是否支持设备的软件升级能力。您可以通过如下方式检查和设置设备软件升级的能力 登录设备管理服务的控制台,单击左下角,切换到设备管理页面。 在“产品模型”界面点击“详情”,进入“产品详情”界面。 在“维护能力配置”界面中,检查软件升级的能力。协议为LWM2M的产品模型,将软件升级设置为“支持”,协议为PCP。协议为MQTT的产品模型,将软件升级设置为“支持”,不校验软件升级协议类型。 该操作只是修改了产品模型的能力,该产品模型对应的终端设备也需要支持软件升级的能力。否则,当升级任务中选择了不支持软件升级的终端设备,会导致软件升级失败。
  • 制作软件升级版本包 设备升级的软件包文件由各设备厂商提供,在物联网平台上传设备的软件升级包前,需要制作软件升级的版本包,用于修改软件包的描述文件,如软件版本、厂商名称、设备类型、产品模型等信息。下面将详细介绍版本包的制作方法。 新建文件夹命名为“DM”,在DM文件夹下新建文件夹,命名为“linux”。 使用Notepad++文本工具新建一个文本文件,拷贝如下内容到文本中,在Notepad++工具的“编码”菜单中选择“使用UTF-8编码”,然后将文本进行存储,存储路径选择步骤1中的“linux”文件夹,文件名称命名为“UpgradeDesc”,保存类型选择“.json”。 { "specVersion": "", "fileName": "", "packageType": "", "version": "", "deviceType": "", "manufacturerName": "", "model": "", "protocolType":"", "description":"", "versionCheckCode":"", "deviceShard":"", "platform":"", "supportSourceVersionList":[], "date":"" } 打开创建的“UpgradeDesc.json”文件,修改软件升级描述文件,相关字段如下表所示。 字段名 字段描述 是否必填 specVersion 描述文件版本号,固定值:“1.0”。 是 fileName 软件包文件名,例如:“ExamplePackage_V1.0.10.xx”。 是 packageType 软件包类型,必须设置为:“softwarePackage”。 是 version 软件包版本号长度不超过16个字节,例如:“V1.0.10” 是 deviceType 设备类型,需要与产品模型保持一致。例如:“WaterMeter”。 是 manufacturerName 制造商名称,需要与产品模型保持一致。例如:“TestUtf8ManuName”。 是 model 产品型号,需要与产品模型保持一致。例如:“TestUtf8ModelM2M”。 是 protocolType 设备接入协议类型,需要与产品模型保持一致。例如:“CoAP”。 说明: 设备接入的协议类型有三种:“CoAP”、“LWM2M”、“MQTT”。 是 description 对软件包的自定义描述。 是 versionCheckCode 软件升级包校验码,长度为4个字符。软件包下载时支持断点续传,根据该字段标识前后两次下载的软件包分片是否为同一个软件包。 否 deviceShard 终端下载软件包的每个分片的大小,单位为byte,如果不设置默认为500byte。大小为32~500之间。 否 platform 标识设备的操作系统,如linux。 否 supportSourceVersionList 支持用于升级此版本包的设备源版本列表。 支持通配符配置,*代表匹配任意0~n个字符,?代表匹配单个任意字符,如果存在多个版本,请使用英文“;”隔开。 否 date 出包时间,格式为:“yyyy-MM-dd”。 否 在与“DM”同级目录下创建文件夹,命名为“linux”,该文件夹名称必须同步骤1中的文件夹命令保持一致,将厂商软件包(软件包格式无限制)置于该文件中。 选中“DM”和“linux”文件夹,使用压缩工具打包成ZIP格式的压缩包,建议命令为“xx_package.zip”。 文件“DM”和“linux”的命名是固定的。 “xx_package.zip”下不能包含package这层目录。 仅支持ZIP格式的压缩包,不能压缩成其他格式后,例如rar,再手动修改文件类型为zip。
  • MQTT协议软件升级流程 MQTT协议SOTA升级流程的详细说明: 1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。 3. 平台感知设备是否在线,当设备在线时立即触发升级协商流程。当设备不在线时,等待设备上线订阅升级topic,平台感知设备上线,触发升级协商流程。 4~5. 平台向设备下发查询设备软件版本号的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级 。如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理,升级任务置为成功。如果返回的软件版本信息与升级的目标版本信息不同,且该版本号支持升级,则继续进行下一步的升级处理。 6~7. 物联网平台下发下载包URL、token及包的相关信息,用户根据下载包URL和token通过HTTP协议来下载软件包,24小时后token无效。 8. 终端设备进行下载包升级操作,升级完成后终端设备向物联网平台反馈升级的结果。 9. 物联网平台向控制台/应用服务器通知升级的结果。
  • 概述 软件(Software)一般分为系统软件和应用软件,系统软件实现设备最基本的功能,比如编译工具、系统文件管理等;应用软件可以根据设备的特点,提供不同的功能,比如采集数据、数据分析处理等。 软件升级又称为SOTA(SoftWare Over The Air),是指用户可以通过OTA的方式支持对LWM2M协议和MQTT协议的设备进行软件升级。基于LWM2M协议的产品模型,软件升级遵循的协议为PCP协议(查看PCP协议介绍),设备侧需要遵循PCP协议进行软件升级的适配开发,适配方法请参考设备侧适配开发指导(联通用户专用);基于MQTT协议的产品模型,不校验软件升级协议类型。 物联网平台支持LWM2M协议和MQTT协议的产品模型的软件升级。
  • LWM2M协议软件升级流程 LWM2M协议SOTA升级流程的详细说明: 1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软件升级任务。 3. NB-IoT设备上报数据,平台感知设备上线,触发升级协商流程。 4~5. 物联网平台向设备下发查询设备软件版本的命令,查询成功后,物联网平台根据升级的目标版本判断设备是否需要升级。 如果返回的软件版本信息与升级的目标版本信息相同,则升级流程结束,不做升级处理。 如果返回的软件版本信息与升级的目标版本信息不同,则继续进行下一步的升级处理。 6. 物联网平台向设备订阅软件升级的状态。 7~8. 物联网平台查询终端设备所在的无线信号覆盖情况,获取小区ID、RSRP(Reference Signal Received Power,参考信号接收功率)和SINR(Signal to Interference Plus Noise Ratio,信号干扰噪声比)信息。 查询成功:则根据如下方式计算可同时升级的并发数计算,并按照步骤10进行处理。 如下图所示,如果设备的RSRP强度和SINR强度均落在等级“0”中,则同时可以对该小区的50个相同信号覆盖区间的设备进行同时升级。 如果设备的RSRP强度和SINR强度分别落在等级“0”和“1”中,则以信号较弱的等级“1”为准,则只能同时对该小区的10个设备进行升级。 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。 如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。 如果用户在软件升级中发现同时进行升级的设备数较少,则可以联系当地运营商检查和优化设备所在小区的无线覆盖情况。 查询失败:则按照流程9进行处理。 9. 物联网平台继续下发查询小区ID信息的命令,获取终端设备所在的小区ID信息。 如果查询成功:物联网平台支持同时对该小区的10个相同情况的设备进行软件升级。 如果查询失败:则升级失败。 10~12. 物联网平台通知设备有新的软件包版本,设备启动软件包的下载。软件包的下载按照分片的方式进行下载,支持断点续传功能,通过软件包分片中携带的“versionCheckCode”确定是否属于同一个软件包。下载完成后,设备知会物联网平台软件包已下载完毕。 13~14. 物联网平台向设备下发升级的命令,终端设备进行升级操作,升级完成后终端设备向物联网平台反馈升级的结果。 15. 物联网平台向控制台/应用服务器通知升级的结果。
  • 执行软件升级 根据PCP协议约定的交互流程,物联网平台收到设备发送的软件包下载结果通知后,需要通知设备进行升级操作。 物联网平台发送的请求消息 根据PCP消息结构的定义可以得出,物联网平台向设备发送执行软件升级消息,各个消息字段的填写如下: 起始标识固定为:FFFE。 版本号固定为:01。 消息码:与请求的消息码一致,为17。 校验码:CRC16计算前先用0000替代。 数据区长度:根据数据区的字段的数据类型得出无数据区,即为0字节,转换为十六进制为:0000。 数据区:无数据区,无需携带该字段。 字段 数据类型 描述及要求 无数据区 物联网平台向设备下发的执行软件升级的消息为:FFFE 01 17 0000 0000(CRC16校验前),经CRC16计算得到校验码为:CF90。则替换校验码后物联网平台向设备发送的消息为:FFFE0117CF900000。 设备发送的应答消息 设备收到物联网平台下发的执行升级消息后,将对收到消息后的执行动作进行应答,各消息字段的填写如下。 起始标识固定为:FFFE。 版本号固定为:01。 消息码:与请求的消息码一致:17。 校验码:CRC16计算前先用0000替代。 数据区长度:根据数据区的字段定义得出该数据长度为1个字节,转换为十六进制为:0001。 数据区:处理成功,则返回00,其它处理结果请参考数据区定义。本示例以返回00处理成功为例进行说明。 字段 数据类型 描述及要求 结果码 BYTE 0X00处理成功。 0X01设备使用中。 0X04电量不足。 0X05剩余空间不足。 0X09内存不足。 设备向物联网平台应答的消息为:FFFE 01 17 0000 0001 00 (CRC16校验前),经CRC16计算得到校验码为:B725。则替换校验码后设备返回的响应消息为:FFFE0117B725000100 。
  • 上报升级结果 根据PCP协议约定的交互流程,设备在执行完软件升级后,将会向物联网平台上报升级的结果。 设备发送的请求消息 根据PCP消息结构的定义可以得出,设备向物联网平台上报升级结果,各个消息字段的填写如下: 起始标识固定为:FFFE。 版本号固定为:01。 消息码:与请求的消息码一致,为18。 校验码:CRC16计算前先用0000替代。 数据区长度:根据数据区的字段的数据类型得出数据区长度为17字节,转换为十六进制为:0011。 数据区:结果码,以上报升级成功为例,结果码为00。当前版本号:升级完成后的版本号,与物联网平台下发的软件版本一致,即v1.0,转换为十六进制为:56312E30000000000000000000000000。 字段 数据类型 描述及要求 结果码 BYTE 0X00升级成功。 0X01设备使用中。 0X04电量不足。 0X05剩余空间不足。 0X09内存不足。 0X0A安装升级包失败。 0X7F内部异常。 当前版本号 BYTE[16] 设备当前版本号。 设备向物联网平台上报升级结果的消息为:FFFE 01 18 0000 0011 0056312E30000000000000000000000000(CRC16校验前),经CRC16计算得到校验码为:C7D2。则替换校验码后设备向物联网平台上报升级结果码流为:FFFE0118C7D200110056312E30000000000000000000000000。 物联网平台发送的应答消息 物联网平台收到设备上报的升级结果消息后,将对设备进行应答,各个消息字段的填写如下。 起始标识固定为:FFFE。 版本号固定为:01。 消息码:与请求的消息码一致:18。 校验码:CRC16计算前先用0000替代。 数据区长度:根据数据区的字段定义得出该数据长度为1个字节,转换为十六进制为:0001。 数据区:处理成功,则返回00,升级任务不存在80。本示例以返回00处理成功为例进行说明。 字段 数据类型 描述及要求 结果码 BYTE 0X00处理成功。 0X80升级任务不存在。 物联网平台向设备的应答消息为:FFFE 01 18 0000 0001 00 (CRC16校验前),经CRC16计算得到校验码为:AFA1。则替换校验码后物联网平台返回的应答消息为:FFFE0118AFA1000100 。 至此,设备的软件升级功能适配就完成了,赶紧动手试一试吧。