UNPKG

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
"use strict"; 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; } };