homebridge-lg-airco
Version:
Homebridge plugin to control a Smart Thinq enabled LG airco unit. Makes use of WideQ => https://github.com/sampsyo/wideq
56 lines (34 loc) • 1.84 kB
text/typescript
import {AirCooler, FanSpeed, HSwingMode, Mode, VSwingMode} from "./wideq-adapter";
export abstract class Controller {
//Device information
protected airCooler: AirCooler;
//State
protected isOn: boolean;
protected mode: Mode;
protected currentTemperatureInCelsius: number;
protected targetTemperatureInCelsius: number;
protected targetCoolingTemperatureInCelsius: number;
protected targetHeatingTemperatureInCelsius: number;
protected swingModeH: HSwingMode;
protected swingModeV: VSwingMode;
protected fanSpeed: FanSpeed;
protected powerDraw: number;
constructor() {
}
public abstract isPoweredOn(): boolean;
public async abstract setPowerState(powerOn: boolean): Promise<void>;
public abstract getMode(): Mode
public async abstract setMode(newTargetMode: Mode): Promise<void>;
public abstract getCurrentTemperatureInCelsius(): number;
public abstract getTargetCoolingTemperatureInCelsius(): number;
public abstract setTargetCoolingTemperatureInCelsius(newTargetCoolingTemperatureInCelsius: number): void;
public abstract getTargetHeatingTemperatureInCelsius(): number;
public abstract setTargetHeatingTemperatureInCelsius(newTargetHeatingTemperatureInCelsius: number): void;
protected async abstract setTargetTemperatureInCelsius(newTargetTemperatureInCelsius: number): Promise<void>;
public abstract getVerticalSwingMode(): VSwingMode;
public async abstract setVerticalSwingMode(newVerticalSwingMode: VSwingMode): Promise<void>;
public abstract getHorizontalSwingMode(): HSwingMode;
public async abstract setHorizontalSwingMode(newHorizontalSwingMode: HSwingMode): Promise<void>;
public abstract getFanSpeed(): FanSpeed;
public async abstract setFanSpeed(newFanSpeed: FanSpeed): Promise<void>;
}