在Athom Homey中,我可以创建自己的脚本来执行不同的任务。例如,检查班级灯中的每个设备,如果它们与数组匹配,则应打开。我的第一个尝试就是显示存在于两个数组中的设备。如果我跳过我的数组,只使用数组myLights中的一个ID,它只打印该设备的名称。如何在整个数组中做到这一点呢?
//Fetch all devices from Homey
let devices = await Homey.devices.getDevices();
let myLights = [
//Fireplace_lightstrip
"fe5d4348-8842-438d-be7e-d03d772ddddd",
//Lightswitch_Hall
"bc77b020-0388-42b5-9088-b329dbceeeee",
//Chromecast_power
"b50c3c39-285d-4dba-8e4c-327621ffffff", //is not on the class light and should not be displayed
//Next
"four" //is not on the class light and should not be displayed
];
Object.values(devices).forEach(device => {
if(device.class != 'light') return false;
//if (device.id !== "bc77b020-0388-42b5-9088-b329dbcef7ba") return false;
if (device.id !== myLights) return false;
console.log(device.name);
return true;
});发布于 2019-11-20 00:58:23
为了检查整个数组,我们还需要一个循环:
Object.values(devices).forEach(device => {
if(device.class != 'light') return false;
//if (device.id !== "bc77b020-0388-42b5-9088-b329dbcef7ba") return false;
var result = myLights.filter((light) => device.id == light);
if (result.length <= 0) return false;
console.log(device.name);
return true;
});https://stackoverflow.com/questions/58938130
复制相似问题