UNPKG

@elshaer/homebridge-lg-thinq

Version:

A Homebridge plugin for controlling/monitoring LG ThinQ device via LG ThinQ platform.

99 lines 4.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.cToF = exports.fToC = exports.mergeDeep = exports.isObject = exports.Helper = void 0; const AirPurifier_1 = __importDefault(require("./devices/AirPurifier")); const Refrigerator_1 = __importDefault(require("./devices/Refrigerator")); const WasherDryer_1 = __importDefault(require("./devices/WasherDryer")); const Dishwasher_1 = __importDefault(require("./devices/Dishwasher")); const Dehumidifier_1 = __importDefault(require("./devices/Dehumidifier")); const helper_1 = __importDefault(require("./v1/helper")); const constants_1 = require("./lib/constants"); const AirConditioner_1 = __importDefault(require("./devices/AirConditioner")); const AeroTower_1 = __importDefault(require("./devices/AeroTower")); const Styler_1 = __importDefault(require("./devices/Styler")); const RangeHood_1 = __importDefault(require("./devices/RangeHood")); const Oven_1 = __importDefault(require("./devices/Oven")); const Microwave_1 = __importDefault(require("./devices/Microwave")); const WasherDryer2_1 = __importDefault(require("./devices/WasherDryer2")); /** * Platform Accessory * An instance of this class is created for each accessory your platform registers * Each accessory may expose multiple services of different service types. */ class Helper { static make(device) { if (device.platform === constants_1.PlatformType.ThinQ1) { // check if thinq1 available return helper_1.default.make(device); } // thinq2 switch (device.type) { case 'AERO_TOWER': return AeroTower_1.default; case 'AIR_PURIFIER': return AirPurifier_1.default; case 'REFRIGERATOR': return Refrigerator_1.default; case 'WASHER': case 'WASHER_NEW': case 'WASH_TOWER': case 'DRYER': return WasherDryer_1.default; case 'WASH_TOWER_2': return WasherDryer2_1.default; // new kind of washer case 'DISHWASHER': return Dishwasher_1.default; case 'DEHUMIDIFIER': return Dehumidifier_1.default; case 'AC': return AirConditioner_1.default; case 'STYLER': return Styler_1.default; case 'HOOD': return RangeHood_1.default; case 'MICROWAVE': return Microwave_1.default; case 'OVEN': return Oven_1.default; } return null; } static category(device) { switch (device.type) { case 'AIR_PURIFIER': return 19 /* Categories.AIR_PURIFIER */; case 'DEHUMIDIFIER': return 23 /* Categories.AIR_DEHUMIDIFIER */; case 'AC': return 21 /* Categories.AIR_CONDITIONER */; case 'DISHWASHER': return 1 /*Sprinkler*/; case 'OVEN': return 9 /*Thermostat*/; case 'MICROWAVE': return 9 /*air heater*/; default: return 1 /* Categories.OTHER */; } } } exports.Helper = Helper; function isObject(item) { return (item && typeof item === 'object' && !Array.isArray(item)); } exports.isObject = isObject; function mergeDeep(target, ...sources) { if (!sources.length) { return target; } const source = sources.shift(); if (isObject(target) && isObject(source)) { for (const key in source) { if (isObject(source[key])) { if (!target[key]) { Object.assign(target, { [key]: {} }); } mergeDeep(target[key], source[key]); } else { Object.assign(target, { [key]: source[key] }); } } } return mergeDeep(target, ...sources); } exports.mergeDeep = mergeDeep; function fToC(fahrenheit) { return parseFloat(((fahrenheit - 32) * 5 / 9).toFixed(1)); } exports.fToC = fToC; function cToF(celsius) { return Math.round(celsius * 9 / 5 + 32); } exports.cToF = cToF; //# sourceMappingURL=helper.js.map