UNPKG

@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
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]; }