const aliyunIot = require('../../');
|
const createTestDevices = require('./createTestDevice');
|
|
const gateway = aliyunIot.gateway({
|
productKey: '<productKey>',
|
deviceName: '<deviceName>',
|
deviceSecret: '<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);
|
});
|
});
|