@shadman-a/homebridge-my-ac
Version:
A Homebridge plugin for controlling/monitoring LG ThinQ devices via LG ThinQ platform.
135 lines (134 loc) • 5.65 kB
TypeScript
import { AccessoryContext, BaseDevice } from '../baseDevice.js';
import { LGThinQHomebridgePlatform } from '../platform.js';
import { CharacteristicValue, Logger, PlatformAccessory, Service } from 'homebridge';
import { Device } from '../lib/Device.js';
import { EnumValue, RangeValue } from '../lib/DeviceModel.js';
export declare enum ACModelType {
AWHP = "AWHP",
RAC = "RAC"
}
export declare enum FanSpeed {
LOW = 2,
LOW_MEDIUM = 3,
MEDIUM = 4,
MEDIUM_HIGH = 5,
HIGH = 6
}
export declare enum ACModeOption {
COOL = 0,
FAN = 1,
DRY = 2,
ENERGY_SAVE = 3
}
export type Config = {
ac_swing_mode: string;
ac_air_quality: boolean;
ac_mode: string;
ac_temperature_sensor: boolean;
ac_humidity_sensor: boolean;
ac_led_control: boolean;
ac_fan_control: boolean;
ac_jet_control: boolean;
ac_temperature_unit: string;
ac_buttons: {
name: string;
op_mode: string | number;
}[];
ac_air_clean: boolean;
ac_energy_save: boolean;
};
export default class AirConditioner extends BaseDevice {
readonly platform: LGThinQHomebridgePlatform;
readonly accessory: PlatformAccessory<AccessoryContext>;
protected service: Service;
protected serviceAirQuality: Service | undefined;
protected serviceSensor: Service | undefined;
protected serviceHumiditySensor: Service | undefined;
protected serviceLight: Service | undefined;
protected serviceFanV2: Service | undefined;
protected serviceJetMode: Service | undefined;
protected serviceQuietMode: Service | undefined;
protected serviceEnergySaveMode: Service | undefined;
protected serviceAirClean: Service | undefined;
protected serviceLabelButtons: Service | undefined;
protected jetModeModels: string[];
protected quietModeModels: string[];
protected airCleanModels: string[];
protected currentTargetState: number;
protected pendingPowerState: number | undefined;
protected pendingPowerStateUntil: number;
constructor(platform: LGThinQHomebridgePlatform, accessory: PlatformAccessory<AccessoryContext>, logger: Logger);
get config(): Config;
get Status(): ACStatus;
protected supportsJetMode(device: Device): boolean;
protected supportsQuietMode(device: Device): boolean;
protected supportsAirClean(device: Device): boolean;
protected isEnergySaveSupported(device: Device): boolean;
protected createFanService(): void;
protected createAirQualityService(): void;
protected createHeaterCoolerService(): void;
setEnergySaveActive(value: CharacteristicValue): Promise<void>;
setAirCleanActive(value: CharacteristicValue): Promise<void>;
setQuietModeActive(value: CharacteristicValue): Promise<void>;
setJetModeActive(value: CharacteristicValue): Promise<void>;
setFanState(value: CharacteristicValue): Promise<void>;
updateAccessoryCharacteristic(device: Device): void;
update(snapshot: any): void;
updateAccessoryActiveCharacteristic(): void;
updateAccessoryCurrentTemperatureCharacteristic(): void;
updateAccessoryStateCharacteristics(): void;
updateAccessoryTemperatureCharacteristics(): void;
updateAccessoryFanStateCharacteristics(): void;
updateAccessoryTotalConsumptionCharacteristic(): void;
updateAccessoryAirQualityCharacteristic(): void;
updateAccessoryTemperatureSensorCharacteristic(): void;
updateAccessoryHumiditySensorCharacteristic(): void;
updateAccessoryFanV2Characteristic(): void;
updateAccessoryLedControlCharacteristic(): void;
updateAccessoryJetModeCharacteristic(): void;
updateAccessoryQuietModeCharacteristic(): void;
updateAccessoryEnergySaveModeCharacteristic(): void;
updateAccessoryAirCleanCharacteristic(): void;
setLight(value: CharacteristicValue): Promise<void>;
setTargetState(value: CharacteristicValue): Promise<void>;
setActive(value: CharacteristicValue): Promise<void>;
setTargetTemperature(value: CharacteristicValue): Promise<void>;
setFanSpeed(value: CharacteristicValue): Promise<void>;
setSwingMode(value: CharacteristicValue): Promise<void>;
setOpMode(deviceId: string, opMode: number): Promise<boolean | undefined>;
setACMode(value: CharacteristicValue): Promise<void>;
setupButton(device: Device): void;
protected setupButtonOpmode(device: Device, name: string, opMode: number): void;
handleButtonOpmode(value: CharacteristicValue, opMode: number): Promise<void>;
}
export declare class ACStatus {
protected data: any;
protected device: Device;
protected config: Config;
private logger;
constructor(data: any, device: Device, config: Config, logger: Logger);
get isFahrenheitUnit(): boolean;
convertTemperatureCelsiusFromHomekitToLG(temperatureInCelsius: CharacteristicValue): number;
convertTemperatureCelsiusFromLGToHomekit(temperature: number): number;
get opMode(): number;
get isPowerOn(): boolean;
get currentRelativeHumidity(): number;
get currentTemperature(): number;
get targetTemperature(): number;
get airQuality(): {
isOn: any;
overall: number;
PM2: number;
PM10: number;
} | null;
get windStrength(): 1 | 2 | 3;
get rotationSpeed(): number;
get isSwingOn(): boolean;
get isLightOn(): boolean;
get isEnergySaveOn(): boolean;
get currentConsumption(): number;
get type(): string;
getTemperatureRange([minRange, maxRange]: [EnumValue, EnumValue]): RangeValue;
getTemperatureRangeForHeating(): [EnumValue, EnumValue];
getTemperatureRangeForCooling(): [EnumValue, EnumValue];
}