homebridge-lg-ac
Version:
A Homebridge plugin for controlling/monitoring LG AirConditioning device via LG ThinQ platform.
62 lines • 1.97 kB
JavaScript
;
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