UNPKG

homebridge-vesync-v2

Version:

A Homebridge plugin for controlling VeSync smart devices including outlets, air purifiers, and humidifiers

34 lines (31 loc) 1.72 kB
"use strict"; const deviceTypes = require('./devices/deviceTypes'); const BaseDevice = require('./devices/BaseDevice'); const FanDevice = require('./devices/FanDevice'); const AirPurifierDevice = require('./devices/AirPurifierDevice'); const HumidifierDevice = require('./devices/HumidifierDevice'); const LightbulbDevice = require('./devices/LightbulbDevice'); const OutletDevice = require('./devices/OutletDevice'); module.exports = { createDevice(accessory, client, log, debug, Service, Characteristic) { const type = accessory.context.type; log("[1] DeviceFactory: type=" + type); log("[2] DeviceFactory: context=" + JSON.stringify({name: accessory?.context?.name, id: accessory?.context?.id})); if (deviceTypes.isDeviceType(type, 'fan')) { log("[3] Creating: Fan"); return new FanDevice(accessory, client, log, debug, Service, Characteristic); } else if (deviceTypes.isDeviceType(type, 'airPurifier')) { log("[3] Creating: AirPurifier"); return new AirPurifierDevice(accessory, client, log, debug, Service, Characteristic); } else if (deviceTypes.isDeviceType(type, 'humidifier')) { log("[3] Creating: Humidifier"); return new HumidifierDevice(accessory, client, log, debug, Service, Characteristic); } else if (deviceTypes.isDeviceType(type, 'lightbulb')) { log("[3] Creating: Lightbulb"); return new LightbulbDevice(accessory, client, log, debug, Service, Characteristic); } else { log("[3] Creating: Outlet (default)"); return new OutletDevice(accessory, client, log, debug, Service, Characteristic); } } };