homebridge-vesync-v2
Version:
A Homebridge plugin for controlling VeSync smart devices including outlets, air purifiers, and humidifiers
86 lines (76 loc) • 1.87 kB
JavaScript
;
const fanTypes = [
'LTF-F422S-KEU',
'LTF-F422S-WUSR',
'LTF-F422_WJP',
'LTF-F422S-WUS',
'LTF-F411S-WUS'
];
const airPurifierTypes = [
'LV-PUR131S',
'Core200S',
'Core300S',
'Core400S',
'Core600S',
'Core100S',
'LAP-C201S-AUSR',
'LAP-C202S-WUSR',
'Vital100S',
'Vital200S'
];
const humidifierTypes = [
'Classic300S',
'Classic200S',
'Dual200S',
'OasisMist500S',
'LUH-D301S-WUS',
'LV600S',
'Dual100S',
'LUH-A601S-WUSR'
];
const lightbulbTypes = [
'ESL100',
'ESL100CW',
'ESL100MC'
];
// Additional outlet types found in the code
const outletTypes = [
'wifi-switch-1.3',
'ESO15-TB',
'ESW15-USA',
'ESW15-EU',
'ESW03-USA',
'ESW03-EU',
'ESW01-EU',
'BSD29',
'BSD33',
'BSD37',
'ESWD16',
'ESWL01',
'ESWL03',
'WS02',
'WiFiPowerStrip',
'ESW03-04'
];
module.exports = {
isDeviceType(deviceType, category) {
const deviceCategories = {
fan: fanTypes,
airPurifier: airPurifierTypes,
humidifier: humidifierTypes,
lightbulb: lightbulbTypes,
outlet: outletTypes
};
if (category === 'airPurifier') {
console.log(`[2.1] AirPurifier check for ${deviceType}`);
console.log(`[2.2] Available types:`, airPurifierTypes);
console.log(`[2.3] Direct match:`, airPurifierTypes.includes(deviceType));
console.log(`[2.4] Starts with match:`, airPurifierTypes.some(type => deviceType?.startsWith(type)));
}
const result = deviceCategories[category]?.some(type =>
type === deviceType || deviceType?.startsWith(type)
) || false;
console.log(`[2.5] TypeCheck: ${category}=${result} for ${deviceType}`);
return result;
}
};