阿里云物联网平台使用教程6-物模型开发

1.物模型属性上报和云端属性设置

物模型的开发方式让设备不用关心如何去订阅MQTT topic,而是调用物模型相关的接口来实现属性上报、服务监听、事件上报。

设备属性上报

//API device.postProps(params, [callback])

// 上报设备属性
device.postProps({
  Temperature: 0
}, (res) => {
  console.log(res);
});

//示例代码用于上报一个名为Temperature的属性,其值为0,

云端属性设置

//API device.onProps(function(cmd)) 监听来自云端的属性设置
//示例一条服务器发送的cmd内容
{
    method: 'thing.service.property.set',
    id: '12345678',
    params: { Temperature: 100 },
    version: '1.0.0'
}

示例

// 监听云端设置属性服务消息,示例代码为设置温度为100℃
device.onProps((cmd)=>{
  console.log('>>>onProps',cmd); //打印完整的属性设置消息
  for(let key in cmd.params){ 
      if(key=='Temperature'){ //判断是否设置的是Temperature属性
          console.log('set property ',key);
          //将云端的设置属性本地保存
          tempSetValue=cmd.params.Temperature; 
        /*
        执行相关设备端的逻辑
        */
      //注意:云端下发命令后,云端属性的值并不会改变,云端需要等待来自设备端的属性上报
          device.postProps({'tempSetValue': tempSetValue});
      }
  }
})


这就是物联网云端下发属性设定值->执行逻辑->上报结果的浓缩过程.

2.监听云端下发的服务调用信息

//API device.onService(seviceIdentifier, [callback])

//比如云端下发一个打开阀的服务指令
device.onService('switch',(res,relay)=>{
    console.log('open the switch');
    /*
        此处执行打开switch的逻辑
    */
    relay('open swith is OK')
})

测试环境:

3.事件上报

//API device.postEvent(eventIdentifier, params, [callback]) 上报事件

device.postEvent('eventIdentifier1', {
    //key1是事件'eventIdentifier1的参数'
    key1: 'value1'
});

官网示例:

const iot = require('../');

const device = iot.device({
  "ProductKey": "a1ouyopKiEU",
  "DeviceName": "device6",
  "DeviceSecret": "yoyXdmII3xcT9udR1DLQRzMGjkRRtkgc"
});
 
device.on('connect', () => {
  console.log('>>>>>connect');
  device.postEvent("error", {
    power: 10,
  }, (res) => {
    console.log(`postEvent:`,res);
  })
});
学习更多知识,加QQ群:1098090823
威武网 » 阿里云物联网平台使用教程6-物模型开发

提供最优质的资源集合

立即查看 了解详情