iot - 阿里云IoT平台连接组件

示例代码

var iot = require('iot');
var network = require('network');

var iotdev;

const productkey = '<product key>';
const devicename = '<device name>';
const devicesecret = '<device secret>';

var lightSwitch = 0;

function iotDeviceOnConnect()
{
    iotdev.onService(function(service) {
        console.log('received cloud service id ' + service.service_id);
        console.log('received cloud service param  ' + service.params);
        console.log('received cloud service param len  ' + service.params_len);
    });

    iotdev.onProps(function(properity) {
        console.log('received cloud properity param ' + properity.params);
        console.log('received cloud properity param len ' + properity.params_len);
    });

    setInterval(function() {
        lightSwitch = 1 - lightSwitch;

        // Post properity
        iotdev.postProps(
            JSON.stringify({
                LightSwitch: lightSwitch
            })
        );

        // Post event
        iotdev.postEvent({
            id: 'ErrorMessage',
            params: JSON.stringify({
                ErrorCode: 0
            })
        });
    }, 3000);
}

function iotDeviceCreate()
{
    iotdev = iot.device({
        productKey: productkey,
        deviceName: devicename,
        deviceSecret: devicesecret
    });

    iotdev.on('connect', function () {
        console.log('success connect to aliyun iot server');
        iotDeviceOnConnect();
    });

    iotdev.on('reconnect', function () {
        console.log('success reconnect to aliyun iot server');
    });

    iotdev.on('disconnect', function () {
        console.log('aliyun iot server disconnected');
    });
}

var networkClient = network.openNetWorkClient();

var netStatus = networkClient.getStatus();

if (netStatus == 'connect') {
    console.log('network connected, create iot connection');
    iotDeviceCreate();
} else {
    networkClient.on('connect', function() {
        console.log('network connected, create iot connection');
        iotDeviceCreate();
    });
}

device(Object option)

创建 iot 实例,同时会开始尝试连接阿里云IoT平台。iot实例默认开启TLS加密。

入参

属性

类型

必填

描述

productKey

String

设备的prodctKey

deviceName

String

设备的deviceName

deviceSecret

String

设备的deviceSecret

region

String

阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区

keepaliveSec

Number

心跳包报文时间间隔,默认值60秒

返回

  • iot 实例。

iot 实例

事件

  • 事件:'connect'

当iot client 连接到iot平台时,触发connect事件。

  • 事件:'disconnect'

当连接断开时,触发'disconnect'事件。

  • 事件:'close'

当iot client 关闭时,触发close事件。

  • 事件:'error'

当设备跟iot平台通信过程中遇到错误时,触发error事件。

方法

  • iot.postProps(Object option)

上报属性。

  • iot.postEvent(Object option)

上报事件。

  • iot.close()

关闭iot实例。

  • iot.on(String event, Function callback)

注册iot事件回调函数。

事件:'connect'

当iot client 连接到iot平台时,触发'connect'事件。

事件:'disconnect'

当连接断开时,触发'disconnect'事件。三元组错误、三元组重复上线、服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。

事件:'close'

当iot client 关闭时,触发'close'事件。

事件:'error'

当设备跟iot平台通信过程中遇到错误时,触发'error'事件。'error'事件的回调函数参数有:

属性

类型

描述

error

String

错误信息

iot.onService(Object payload)

监听云端服务下发。

入参

Object类型,其属性有:

属性

类型

描述

service_id

String

服务标志符,详细请参考什么是物的模型

params

String

服务内容

params_len

Number

服务内容长度

iot.onProps(Object payload)

监听云端属性下发。

入参

Object类型,其属性有:

属性

类型

描述

params

String

属性内容

params_len

Number

属性内容长度

iot.postProps(Object options)

上报设备属性。

入参

Object类型,其属性有:

属性

类型

必填

描述

payload

String

设备定义的属性参数(String内容格式:"属性名:属性值")。详细请参考什么是物的模型

iot.postEvent(Object options)

上报设备的事件。

入参

Object类型,其属性有:

属性

类型

必填

描述

id

String

事件标志符,详细请参考什么是物的模型

params

String

要上报的事件参数

iot.close()

关闭IoT实例。

iot.on(String event, Function callback)

监听事件。

入参

属性

类型

必填

描述

event

String

注册的事件名称

callback

Function

监听事件的回调函数

说明

硬件平台支持

硬件平台

是否支持

说明

HaaS600-EC100Y

HaaS600-EC600S

HaaS510

HaaS531

HaaS100

HaaS EDU K1

HaaS200