homebridge-lg-airco
Version:
Homebridge plugin to control a Smart Thinq enabled LG airco unit. Makes use of WideQ => https://github.com/sampsyo/wideq
117 lines • 4.92 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DummyController = void 0;
const wideq_adapter_1 = require("./wideq-adapter");
const controller_1 = require("./controller");
class DummyController extends controller_1.Controller {
constructor(airCooler, updateInterval, debugLogger) {
super();
this.airCooler = airCooler;
this.isOn = true;
this.mode = wideq_adapter_1.Mode.COOL;
this.currentTemperatureInCelsius = 24;
this.fanSpeed = wideq_adapter_1.FanSpeed.HIGH;
this.powerDraw = 50;
this.swingModeH = wideq_adapter_1.HSwingMode.ALL;
this.swingModeV = wideq_adapter_1.VSwingMode.ALL;
this.targetCoolingTemperatureInCelsius = 18;
this.targetHeatingTemperatureInCelsius = 21;
this.logDebug = debugLogger;
}
isPoweredOn() {
return this.isOn;
}
async setPowerState(powerOn) {
if (this.isOn !== powerOn) {
this.isOn = powerOn;
this.logDebug('Setting power value: ' + (powerOn ? 'ON' : 'OFF'));
}
}
getMode() {
this.logDebug('Getting mode value: ' + this.mode);
return this.mode;
}
async setMode(newTargetMode) {
if (this.mode !== newTargetMode) {
this.isOn = true;
this.mode = newTargetMode;
this.logDebug('Setting mode value: ' + newTargetMode);
await this.setTargetTemperatureInCelsius(this.mode === wideq_adapter_1.Mode.COOL ? this.targetCoolingTemperatureInCelsius : this.targetHeatingTemperatureInCelsius);
}
else {
this.setPowerState(true);
}
}
getCurrentTemperatureInCelsius() {
this.logDebug('Getting current temperature value: ' + this.currentTemperatureInCelsius);
return this.currentTemperatureInCelsius;
}
getTargetCoolingTemperatureInCelsius() {
this.logDebug('Getting target temperature value: ' + this.targetCoolingTemperatureInCelsius);
return this.targetCoolingTemperatureInCelsius;
}
setTargetCoolingTemperatureInCelsius(newTargetCoolingTemperatureInCelsius) {
if (this.targetCoolingTemperatureInCelsius !== newTargetCoolingTemperatureInCelsius) {
this.isOn = true;
this.targetCoolingTemperatureInCelsius = newTargetCoolingTemperatureInCelsius;
if (this.mode === wideq_adapter_1.Mode.COOL) {
this.setTargetTemperatureInCelsius(this.targetCoolingTemperatureInCelsius);
}
}
}
getTargetHeatingTemperatureInCelsius() {
this.logDebug('Getting target heating temperature value: ' + this.targetHeatingTemperatureInCelsius);
return this.targetHeatingTemperatureInCelsius;
}
setTargetHeatingTemperatureInCelsius(newTargetHeatingTemperatureInCelsius) {
if (this.targetHeatingTemperatureInCelsius !== newTargetHeatingTemperatureInCelsius) {
this.isOn = true;
this.targetHeatingTemperatureInCelsius = newTargetHeatingTemperatureInCelsius;
if (this.mode === wideq_adapter_1.Mode.HEAT) {
this.setTargetTemperatureInCelsius(this.targetHeatingTemperatureInCelsius);
}
}
}
async setTargetTemperatureInCelsius(newTargetTemperatureInCelsius) {
if (this.targetTemperatureInCelsius !== newTargetTemperatureInCelsius) {
this.isOn = true;
this.targetTemperatureInCelsius = newTargetTemperatureInCelsius;
this.logDebug('Setting temperature value: ' + newTargetTemperatureInCelsius);
}
}
getVerticalSwingMode() {
this.logDebug('Getting v-swing value: ' + this.swingModeV);
return this.swingModeV;
}
async setVerticalSwingMode(newVerticalSwingMode) {
if (this.swingModeV !== newVerticalSwingMode) {
this.isOn = true;
this.swingModeV = newVerticalSwingMode;
this.logDebug('Setting swing V value: ' + newVerticalSwingMode);
}
}
getHorizontalSwingMode() {
this.logDebug('Getting h-swing value: ' + this.swingModeH);
return this.swingModeH;
}
async setHorizontalSwingMode(newHorizontalSwingMode) {
if (this.swingModeH !== newHorizontalSwingMode) {
this.isOn = true;
this.swingModeH = newHorizontalSwingMode;
this.logDebug('Setting swing H value: ' + newHorizontalSwingMode);
}
}
getFanSpeed() {
this.logDebug('Getting fan speed value: ' + this.fanSpeed);
return this.fanSpeed;
}
async setFanSpeed(newFanSpeed) {
if (this.fanSpeed !== newFanSpeed) {
this.isOn = true;
this.fanSpeed = newFanSpeed;
this.logDebug('Setting fan speed value: ' + newFanSpeed);
}
}
}
exports.DummyController = DummyController;
//# sourceMappingURL=dummy-controller.js.map