UNPKG

homebridge-daikin-oneplus

Version:
92 lines 4.33 kB
import { Logging } from 'homebridge'; import { AirQualityLevel, Thermostat, ThermostatData, EquipmentStatus, TemperatureUnit, ThermostatMode } from './types.js'; type DataChanged = () => void; export declare class DaikinApi { private _token; private _tokenExpiration; private _devices; private _isInitialized; private _listeners; private _lastUpdateTimeMs; private _nextUpdateTimeMs; private _noUpdateBeforeMs; private _updateTimeout?; private _lastWriteStartTimeMs; private _lastWriteFinishTimeMs; private _lastReadStartTimeMs; private _lastReadFinishTimeMs; private user; private password; private log; private logRaw; private _pendingThresholds; private _emergencyHeatEnabled; constructor(user: string, password: string, log: Logging, logRaw: boolean); addListener(deviceId: string, listener: DataChanged): void; removeListener(deviceId: string, listener: DataChanged): void; private notifyListeners; Initialize(): Promise<void>; isInitialized(): boolean; private getData; updateNow(): void; /** * Schedules the next update. The scheduler has 2 modes. * * ASAP: Pull an update as soon as updates are neither blocked by a prior `blockUntilMs` value * nor by the maximum refresh frequency `DAIKIN_DEVICE_FOREGROUND_REFRESH_MS`. * * Regular: Pull an update every `DAIKIN_DEVICE_BACKGROUND_REFRESH_MS`. * * @param blockUntilMs If given and > 0 then no updates are guaranteed to take place in the next `blockUntilMs` milliseconds. * @param asap perform update as soon as allowed by DAIKIN_DEVICE_FOREGROUND_REFRESH_MS */ private _scheduleUpdate; private _scheduleAsap; private _scheduleFuture; private _updateIn; private _monotonic_clock_ms; private getToken; private setToken; private getDevices; getDeviceData(deviceId: string): Promise<ThermostatData | undefined>; private refreshToken; private getRequest; getDeviceList(): Thermostat[]; getCurrentStatus(deviceId: string): EquipmentStatus; getCurrentTemp(deviceId: string): number; getOutdoorTemp(deviceId: string): number; getTargetState(deviceId: string): ThermostatMode; getOneCleanFanActive(deviceId: string): boolean; getCirculateAirFanActive(deviceId: string): boolean; getCirculateAirFanSpeed(deviceId: string): number; getTargetTemp(deviceId: string): number; heatingThresholdTemperature(deviceId: string): number; coolingThresholdTemperature(deviceId: string): number; getCurrentHumidity(deviceId: string): number; getOutdoorHumidity(deviceId: string): number; getTargetHumidity(deviceId: string): number; getAirQualityLevel(deviceId: string, forIndoor: boolean): AirQualityLevel; getOzone(deviceId: string, forIndoor: boolean): number; getAirQualityValue(deviceId: string, forIndoor: boolean): number; getPM2_5Density(deviceId: string, forIndoor: boolean): number; getVocDensity(deviceId: string, forIndoor: boolean): number; getDisplayUnits(deviceId: string): TemperatureUnit; getScheduleState(deviceId: string): boolean; getAwayState(deviceId: string): boolean; setEmergencyHeatEnabled(deviceId: string, enabled: boolean): void; isEmergencyHeatEnabled(deviceId: string): boolean; setTargetTemps(deviceId: string, targetTemp?: number, heatThreshold?: number, coolThreshold?: number): Promise<boolean>; setTargetState(deviceId: string, requestedState: ThermostatMode): Promise<boolean>; setOneCleanFanActive(deviceId: string, requestedState: boolean): Promise<boolean>; setCirculateAirFanActive(deviceId: string, requestedState: boolean): Promise<boolean>; setCirculateAirFanSpeed(deviceId: string, requestedSpeed: number): Promise<boolean>; setDisplayUnits(deviceId: string, requestedUnits: TemperatureUnit): Promise<boolean>; setTargetHumidity(deviceId: string, requestedHumidity: number): Promise<boolean>; setScheduleState(deviceId: string, requestedState: boolean): Promise<boolean>; setAwayState(deviceId: string, requestedState: boolean, enableSchedule: boolean): Promise<boolean>; private putRequest; private _updateCache; private logError; } export {}; //# sourceMappingURL=daikinapi.d.ts.map