@elshaer/homebridge-lg-thinq
Version:
A Homebridge plugin for controlling/monitoring LG ThinQ device via LG ThinQ platform.
99 lines • 4.1 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 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