const aliyunIot = require('../../'); const createTestDevices = require('./createTestDevice'); const gateway = aliyunIot.gateway({ productKey: '', deviceName: '', deviceSecret: '', }); gateway.on('connect', () => { console.log('connect succesfully!'); createTestDevices().forEach(deviceConfig => { // 添加子设备到拓扑 gateway.addTopo(deviceConfig, (err, result) => { if (!err) { console.log(err, result); // 子设备上线 gateway.login(deviceConfig, (err, result) => { console.log(err, result); setInterval(() => { console.log('开始上报'); // 子设备属性数据上报 gateway.postSubDeivceProps( deviceConfig, { LightStatus: Math.ceil(Math.random() * 32) }, (err, result) => { console.log(err, result); console.log('子设备属性上报完成!'); // 子设备事件上报 gateway.postSubDeviceEvent( deviceConfig, 'TestEvent', // 自定义一个告警事件 {}, (err, result) => { console.log(err, result); console.log('子设备事件上报完成!'); } ); } ); const unsub = gateway.subTopicAndOnMessage( '/sys/+/+/thing/service/#', (err, topic, message) => { console.log('收到 topic', err, topic, message); // 取消监听 unsub(); } ); }, 30000); }); } }); setTimeout(() => { // 获取拓扑关系 gateway.getTopo(deviceConfig, (err, result) => { console.log(err, result); // 子设备下线 // gateway.logout(deviceConfig, (err, result) => { // console.log(err, result); // // 移除拓扑关系 // gateway.deleteTopo(deviceConfig, (err, result) => { // console.log(err, result); // }); // }); }); }, 2000); }); });