UNPKG

@fabienjuif/node-tado-client

Version:
84 lines (83 loc) 4.78 kB
import { Method } from 'axios'; import { Device, Temperature, Home, Me, MobileDevice, MobileDeviceSettings, State, User, Weather, Zone, ZoneState, ZoneCapabilities, AwayConfiguration, TimeTable, Country, Power, Termination, StatePresence, IQUnit, ZoneOverlay, TimeTables, AirComfort, EnergyIQ, EnergyIQMeterReadings, EnergySavingReport, AirComfortDetailed, AddEnergiIQMeterReadingResponse, ZoneDayReport, FanSpeed, ACMode } from './types'; export * from './types'; export declare class Tado { private _httpsAgent; private _accessToken?; private _username?; private _password?; constructor(username?: string, password?: string); private _login; private _refreshToken; login(username: string, password: string): Promise<void>; apiCall<R, T = any>(url: string, method?: Method, data?: T): Promise<R>; getMe(): Promise<Me>; getHome(home_id: number): Promise<Home>; getWeather(home_id: number): Promise<Weather>; getDevices(home_id: number): Promise<Device[]>; getDeviceTemperatureOffset(serial_no: string): Promise<Temperature>; getInstallations(home_id: number): Promise<any[]>; getUsers(home_id: number): Promise<User>; getState(home_id: number): Promise<State>; getMobileDevices(home_id: number): Promise<MobileDevice[]>; getMobileDevice(home_id: number, mobile_device_id: number): Promise<MobileDevice>; getMobileDeviceSettings(home_id: number, mobile_device_id: number): Promise<MobileDeviceSettings>; setGeoTracking(home_id: number, mobile_device_id: number, geoTrackingEnabled: boolean): Promise<MobileDeviceSettings>; getZones(home_id: number): Promise<Zone[]>; getZoneState(home_id: number, zone_id: number): Promise<ZoneState>; getZoneCapabilities(home_id: number, zone_id: number): Promise<ZoneCapabilities>; /** * @returns an empty object if overlay does not exist */ getZoneOverlay(home_id: number, zone_id: number): Promise<ZoneOverlay | {}>; /** * @param reportDate date with YYYY-MM-DD format (ex: `2022-11-12`) */ getZoneDayReport(home_id: number, zone_id: number, reportDate: string): Promise<ZoneDayReport>; getTimeTables(home_id: number, zone_id: number): Promise<TimeTables>; getAwayConfiguration(home_id: number, zone_id: number): Promise<AwayConfiguration>; getTimeTable(home_id: number, zone_id: number, timetable_id: string): Promise<TimeTable>; clearZoneOverlay(home_id: number, zone_id: number): Promise<void>; /** * @param temperature in celcius * @param termination if number then duration in seconds */ setZoneOverlay(home_id: number, zone_id: number, power: Power, temperature: number, termination?: Termination | undefined | number, fan_speed?: FanSpeed, ac_mode?: ACMode): Promise<ZoneOverlay>; clearZoneOverlays(home_id: number, zone_ids: number[]): Promise<void>; /** * @param termination if number then duration in seconds */ setZoneOverlays(home_id: number, overlays: { zone_id: number; power?: Power; mode?: any; temperature?: Temperature; fanLevel?: any; verticalSwing?: any; horizontalSwing?: any; light?: any; }[], termination: Termination | undefined | number): Promise<void>; /** * @param temperatureOffset in celcius */ setDeviceTemperatureOffset(serial_no: number, temperatureOffset: number): Promise<Temperature>; identifyDevice(serial_no: string): Promise<void>; setPresence(home_id: number, presence: StatePresence): Promise<void>; isAnyoneAtHome(home_id: number): Promise<boolean>; updatePresence(home_id: number): Promise<void | 'already up to date'>; setWindowDetection(home_id: number, zone_id: number, enabled: true, timeout: number): Promise<void>; setWindowDetection(home_id: number, zone_id: number, enabled: false): Promise<void>; setOpenWindowMode(home_id: number, zone_id: number, activate: boolean): Promise<void>; getAirComfort(home_id: number): Promise<AirComfort>; getAirComfortDetailed(home_id: number): Promise<AirComfortDetailed>; getEnergyIQ(home_id: number): Promise<EnergyIQ>; getEnergyIQTariff(home_id: number): Promise<unknown>; updateEnergyIQTariff(home_id: number, unit: IQUnit, tariffInCents: number): Promise<unknown>; getEnergyIQMeterReadings(home_id: number): Promise<EnergyIQMeterReadings>; /** * @param date format `YYYY-MM-DD` */ addEnergyIQMeterReading(home_id: number, date: string, reading: number): Promise<AddEnergiIQMeterReadingResponse>; deleteEnergyIQMeterReading(home_id: number, reading_id: number): Promise<void>; getEnergySavingsReport(home_id: number, year: string, month: string, countryCode: Country): Promise<EnergySavingReport>; }