设备上报消息后,您可以尝试从云端下发指令到设备端。本文介绍如何通过云端应用调用Pub接口,向温控器发送指令。
前提条件
操作步骤
说明 示例通过自定义Topic下发指令。您也可以通过物模型相关Topic,发送标准化的物模型数据,更多信息,请参见什么是物模型。
- 在本地计算机创建一个JavaScript文件(例如PubApi.js),用来存放Pub API调⽤的参考代码。Pub API调⽤的参考代码如下所示:
const Core = require('@alicloud/pop-core'); var client = new Core({ accessKeyId: 'LTAI4GFGQvKuqHJhFa******', accessKeySecret: 'iMS8ZhCDdfJbCMeA005sieKe******', endpoint: 'https://iot.cn-shanghai.aliyuncs.com', apiVersion: '2018-01-20' }); var params = { "RegionId": "cn-shanghai", "TopicFullName": "/g34q2******/Device1/user/test", "MessageContent": "d2FzaGluZ01vZGU6IDIsIHdhc2hpbmdUaW1lOiAzMA==", "ProductKey": "g34q2******" "IotInstanceId": "iot-cn-6ja1y******" } var requestOption = { method: 'POST' }; client.request('Pub', params, requestOption).then((result) => { console.log(JSON.stringify(result)); }, (ex) => { console.log(ex); })
参数 示例 说明 accessKeyID LTAI4GFGQvKuqHJhFa****** 您的阿里云账号的AccessKey ID。 登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。
说明 如果使用RAM用户,您需授予该用户管理物联网平台的权限(AliyunIOTFullAccess),否则将连接失败。授权方法请参见授权RAM用户访问物联网平台。accessKeySecret iMS8ZhCDdfJbCMeA005sieKe****** endpoint https://iot.cn-shanghai.aliyuncs.com 阿里云服务的API服务端地址。其中,地域需与物联网平台产品地域保持一致。 在物联网平台控制台左上方可查看地域。RegionId的表达方法,请参见地域和可用区。
本示例中,地域为华东2(cn-shanghai)。
TopicFullName /g34q2******/Device1/user/get 要发布消息的Topic。 本示例通过该自定义Topic发布消息,更多信息,请参见使用自定义Topic进行通信。
MessageContent d2FzaGluZ01vZGU6IDIsIHdhc2hpbmdUaW1lOiAzMA== 要发送的消息主体。您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。 示例为消息“washingMode: 2, washingTime: 30”编码过后的值。
ProductKey g34q2****** 设备所属产品Key。可在控制台设备详情页查看。 IotInstanceId iot-cn-6ja1y****** 企业版实例的接入域名,请在物联网平台控制台,找到对应的实例,单击实例,进入实例详情页面查看。 具体操作,请参见查看实例终端节点。
- 打开CMD窗口,使用cd命令找到api.js文件所在路径,在该路径下执行以下命令,安装@alicloud/pop-core模块。
npm install @alicloud/pop-core -S
- 继续在该路径下执行以下命令,安装co模块。
npm install co
- 模块安装完成后,在CMD窗口输入如下命令,运行api.js代码,从云端下发指令到设备端。
- api.js代码运行成功后,在左侧导航栏,单击监控运维 > 日志服务,进入云端运行日志页签,查看设备API调用的⽇志。您也可以在设备端查看收到的该消息,如图所示。
在文档使用中是否遇到以下问题
更多建议
匿名提交