设备上报消息后,您可以尝试从云端下发指令到设备端。本文介绍如何通过云端应用调用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/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****** 企业版实例的接入域名,请在物联网平台控制台,找到对应的实例,单击实例,进入实例详情页面查看。

    具体操作,请参见查看实例终端节点

  2. 打开CMD窗口,使用cd命令找到api.js文件所在路径,在该路径下执行以下命令,安装@alicloud/pop-core模块。
    npm install @alicloud/pop-core -S
  3. 继续在该路径下执行以下命令,安装co模块。
    npm install co
  4. 模块安装完成后,在CMD窗口输入如下命令,运行api.js代码,从云端下发指令到设备端。
    node api.js

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

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