设备上报消息后,您可以尝试从云端下发指令到设备端。本文介绍如何通过云端应用调用Pub接口,向温控器发送指令。

前提条件

已接入设备。具体操作,请参见设备接入和上报数据

操作步骤

说明 示例通过自定义Topic下发指令。您也可以通过物模型相关Topic,发送标准化的物模型数据,更多信息,请参见什么是物模型
  1. 在本地计算机创建一个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/get",
      "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);
    })                            
    本示例需修改以下参数的值。更多信息,请参见云端开发指南
    说明 MessageContent是要发送的消息主体,通过将消息原文转换成二进制数据,并进行Base64编码生成。示例为消息“washingMode: 2, washingTime: 30”编码后的值。
    参数 示例 说明
    accessKeyID LTAI4GFGQvKuqHJhFa****** 您的阿里云账号的AccessKey ID。

    登录物联网平台控制台,将鼠标移至账号头像上,然后单击AccessKey管理,获取AccessKey ID和AccessKey Secret。

    说明 如果使用RAM用户,您需授予该RAM用户管理物联网平台的权限(AliyunIOTFullAccess),否则将连接失败。授权方法请参见授权RAM用户访问物联网平台
    accessKeySecret iMS8ZhCDdfJbCMeA005sieKe******
    TopicFullName /g34q2******/Device1/user/get 要发布消息的自定义Topic。

    本示例使用物联网平台中的自定义Topic:/${productKey}/${deviceName}/user/user/get

    其中${productKey}为产品家庭温控器ProductKey值,${deviceName}为设备Device1

    更多信息,请参见使用自定义Topic进行通信

    ProductKey g34q2****** 家庭温控器ProductKey值。
    IotInstanceId iot-cn-6ja1y****** iot测试环境的实例ID。

    您可在控制台的实例概览页面查看。

  2. 打开CMD窗口,使用cd命令找到PubApi.js文件所在路径,在该路径下执行以下命令,安装@alicloud/pop-core模块。
    npm install @alicloud/pop-core -S

    返回类似信息,表示安装成功。

    + @alicloud/pop-core@1.7.10
    updated 1 package and audited 24 packages in 1.653s
    found 0 vulnerabilities
  3. 继续在该路径下执行以下命令,安装co模块。
    npm install co

    返回类似信息,表示安装成功。

    + co@4.6.0
    updated 1 package and audited 24 packages in 1.244s
    found 0 vulnerabilities
  4. 模块安装完成后,在CMD窗口输入如下命令,运行PubApi.js代码,从云端下发指令到设备端。
    node PubApi.js

    执行结果如下图所示。关于返回参数的更多信息,请参见Pub

    Pub API运行结果
  5. PubApi.js代码运行成功后,在左侧导航栏,单击监控运维 > 日志服务,进入云端运行日志页签,查看设备API调用的⽇志。
    API调用日志
    您也可以在设备端查看下发的MessageContent内容,如图所示。设备端消息