UNPKG

homebridge-lg-ac

Version:

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

62 lines 1.97 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 AirConditioner_1 = __importDefault(require("./devices/AirConditioner")); /** * 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) { // thinq2 switch (device.type) { case 'AC': return AirConditioner_1.default; } return null; } static category(device) { switch (device.type) { case 'AC': return 21 /* Categories.AIR_CONDITIONER */; } 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