homebridge-daikin-oneplus
Version:
Control a Daikin One+ thermostat.
101 lines • 4.62 kB
TypeScript
import { AxiosResponse } from 'axios';
import { Logging } from 'homebridge';
export declare const enum TargetHeatingCoolingState {
OFF = 0,
HEAT = 1,
COOL = 2,
AUTO = 3,
AUXILIARY_HEAT = 4
}
export type DataChanged = () => void;
export declare const DAIKIN_DEVICE_WRITE_DELAY_MS: number;
export declare const DAIKIN_DEVICE_BACKGROUND_REFRESH_MS: number;
export declare const DAIKIN_DEVICE_FOREGROUND_REFRESH_MS: number;
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 pendingCoolThreshold?;
private pendingHeatThreshold?;
constructor(user: string, password: string, log: Logging);
addListener(l: DataChanged): void;
removeListener(l: DataChanged): void;
private notifyListeners;
Initialize(): Promise<void>;
isInitialized(): boolean;
getData(): Promise<void>;
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
*/
_scheduleUpdate(blockUntilMs?: number, asap?: boolean): void;
private _scheduleAsap;
private _scheduleFuture;
private _updateIn;
private _monotonic_clock_ms;
getToken(): Promise<boolean | void>;
setToken(response: AxiosResponse<any>): Promise<void>;
getDevices(): Promise<any>;
getDeviceData(device: any): Promise<any>;
refreshToken(): Promise<boolean | void> | undefined;
getRequest(uri: string): Promise<any>;
getDeviceList(): any[] | undefined;
getDeviceName(deviceName: number, deviceNameCustom: string): string;
deviceHasData(deviceId: string): boolean;
getCurrentStatus(deviceId: string): number;
getCurrentTemp(deviceId: string): number;
getOutdoorTemp(deviceId: string): number;
getTargetState(deviceId: string): number;
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): number;
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): number;
getScheduleState(deviceId: string): boolean;
getAwayState(deviceId: string): boolean;
setTargetTemps(deviceId: string, targetTemp?: number, heatThreshold?: number, coolThreshold?: number): Promise<boolean>;
setTargetState(deviceId: string, requestedState: number): 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: number): 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 _cachedDeviceById;
logError(message: string, error: any): boolean;
}
//# sourceMappingURL=daikinapi.d.ts.map