检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
同时在“设备详情”页面查看到上报的属性: 图2 查看上报数据-parameter 如果在“设备详情”页面没有最新上报数据,请确认设备上报的服务/属性和产品模型中的服务/属性一致。 接收下发命令 订阅了命令Topic后,可以在控制台下发同步命令。详情请参考MQTT设备同步命令下发。 命令下发后,demo中接收到命令:
SDK通过AMQP接入华为云物联网平台,接收服务端订阅消息的示例。 开发环境 Python 3.0及更高版本。本示例使用了Python 3.9版本。 下载SDK 本示例使用的Python语言的AMQP SDK为python-qpid-proton(本示例使用版本为0.37.0),可以通过以下命令安装最新版本SDK。 pip
Integer 正在执行的子任务个数。 success Integer 执行成功的子任务个数。 fail Integer 执行失败的的子任务个数。 waitting Integer 等待执行的子任务个数。 fail_wait_retry Integer 失败等待重试的子任务个数。 stopped
设备的产品模型中定义了物联网平台可向设备下发的命令,设备命令为应用服务器提供向设备下发命令的功能,实现对设备的控制操作。 设备属性 设备的产品模型中定义了物联网平台可向设备下发的属性,设备属性为应用服务器提供向设备下发属性的功能。 AMQP队列管理 AMQP队列管理为客户创建、删除、查看队列。AMQ
是 String 参数说明:设备命令所属的设备服务ID,在设备关联的产品模型中定义。 buffer_timeout 否 Integer 参数说明:设备命令的缓存时间,单位为秒,表示物联网平台在把命令下发给设备前缓存命令的有效时间,超过这个时间后命令将不再下发,默认值为172800s(48小时)。
小程序支持接收平台下发命令的功能,在MQTT建链完成并成功订阅Topic后,可以在控制台设备详情中对该设备进行同步命令下发。下发成功后,在MQTT的回调函数中接收到平台下发给设备的命令。 例如下发参数名为LightControl: Switch,参数值为ON的命令。 图9 命令下发-MQTT
SDK接入示例 本文介绍使用Node.js语言的AMQP SDK接入华为云物联网平台,接收服务端订阅消息的示例。 开发环境 本示例所使用的开发环境为Node.js 8.0.0及以上版本。请前往Node.js官网下载。安装成功之后可以通过以下命令查看node版本。 node --version
台设备详情中命令下发或使用应用侧Demo对该设备ID进行命令下发。下发成功后,在Demo中接收到平台下发给设备的命令。 例如下发参数名为smokeDetector: SILENCE,参数值为50的命令。 图4 命令下发-SILENCE 命令下发成功后,Demo收到的消息是50,命令运行主界面显示如下:
IoTDARegion.CN_NORTH_4 请替换为您要访问的物联网平台的区域,当前物联网平台可以访问的区域,在SDK代码iotda_region.py中已经定义。 您可以在控制台上查看当前服务所在区域名称,区域名称、区域和终端节点的对应关系,具体步骤请参考地区和终端节点。 region_id
后,再定义每个服务具备的属性、命令以及命令的参数。 以水表为例,水表具有多种能力,如上报水流、告警、电量、连接等各种数据,并且能够接受服务器下发的各种命令。产品模型文件在描述水表的能力时,可以将水表的能力划分五个服务,每个服务都需要定义各自的上报属性或命令。说明如下: 服务类型 描述
接入物联网平台的场景,支持设备消息上报、平台消息下发的Topic进行自定义。根据Topic不同,应用侧可实现不同的业务逻辑处理,也适用于应用侧和设备侧之间,设备无法按照产品模型中定义的属性上报或命令下发的场景。 本示例中,应用服务器收到设备上报Topic为室内温度的数据,判断是否开启或关闭室内空调。
设备无法按照产品模型中定义的格式进行指令下发时,可使用此接口下发自定义格式的数据给设备。在此之上也可以使用平台封装的标准格式,即在应用侧API的下发设备消息中payload_format填写为“standard”,或者在设备详情页的云端下发-消息下发中下发时选择“按系统格式”。 消息下发和命令下发的区别,请查看消息通信说明。
热门问题 设备管理服务和设备接入服务合一后的差异点是什么? 如何获取对接物联网平台的地址? 如何获取新域名和老域名接入的地址/证书? 新旧域名接入的鉴权方式有什么区别? 命令/属性下发总是超时? 应用侧如何获取appid和secret? Java SDK中有多个demo,该参考哪一个demo?
js语言为例,介绍应用通过MQTTS协议接入平台,接收服务端订阅消息的示例。 前提条件 熟悉Node.js语言开发环境配置,熟悉Node.js语言基本语法。 开发环境 本示例所使用的开发环境为Node.js v13.14.0版本。请前往Node.js官网下载。安装成功之后可以通过以下命令查看node版本。 node --version
设备注册完毕后,按照图中流程实现消息/属性上报、接收命令/属性/消息、OTA升级、自定义TOPIC、泛协议接入(相关Demo)等功能。 平台提供了两种SDK,它们之间的区别如下表: SDK种类 SDK集成场景 SDK支持的物联网通信协议 IoT Device SDK 面向运算、存储能力较强的嵌入式设备,例如网关、采集器等。
修改产品 功能介绍 应用服务器可调用此接口修改已导入物联网平台的指定产品模型,包括产品模型的服务、属性、命令等。此接口仅修改了产品,未修改和安装插件,如果修改了产品中的service定义,且在平台中有对应的插件,请修改并重新安装插件。 调用方法 请参见如何调用API。 URI PUT
存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报和命令接收等功能。相关集成指导请参见端云互通组件开发指南。 IoT Device SDK Tiny可以运行于无linux操作系统的设备,也可以被模组集成,但是不提供网关服务。
存储/计算资源有苛刻限制的终端设备上的轻量级互联互通中间件,您只需调用API接口,便可实现设备快速接入到物联网平台以及数据上报和命令接收等功能。相关集成指导请参见端云互通组件开发指南。 IoT Device SDK Tiny可以运行于无linux操作系统的设备,也可以被模组集成,但是不提供网关服务。
访问设备接入服务,单击“管理控制台”,进入设备接入控制台。选择您的实例,单击实例卡片进入。 选择左侧导航栏的“监控运维 > 远程登录”。 图1 远程登录-远程登录页面 单击“选择设备”,具体选择需要进行远程登录的设备,输入SSH登录的用户名和密码。 物联网平台不会保存用户输入的用户名和密码,仅透传给设备。 图2
编写脚本,实现二进制数据到JSON数据的转换。脚本需要实现如下两个方法: decode:将设备上报的二进制数据转换为平台产品模型中定义的JSON格式。具体的JSON格式要求见: 数据解码格式定义 。 encode:平台有下行数据发送给设备时,将平台的JSON格式数据转换为设备支持的二进制格式。平台的JSON格式见:数据编码格式定义。