homebridge-daikin-oneplus
Version:
Control a Daikin One+ thermostat.
92 lines • 4.33 kB
TypeScript
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