UNPKG

millheat-js

Version:

Javascript client to ease the use of the Mill Open API V2

143 lines (131 loc) 3.49 kB
import { Agent } from 'https'; declare class Authenticator { private credentials; private apiURL; private agent?; private status; constructor(credentials: MillCredential, apiURL: string, agent?: Agent | undefined); authenticate(): Promise<string[][]>; private retrieveAccessToken; private refresh; } type House = { id: string; name: string; postalCode: string; timezone: string; ownerId: string; mode: string; vacationStartDate: number; vacationEndDate: number; vacationTemperature: number; vacationModeType: string; isVacationModeActive: boolean; overrideModeType: string; overrideEndDate: number; createdAt: string; }; type Permissions = { maxTemperature: number; changeTemperature: boolean; renameDevices: boolean; renameHouse: boolean; updateHousePostalCode: boolean; updateHouseTimezone: boolean; renameRooms: boolean; managePrograms: boolean; manageVacationMode: boolean; overrideWeeklyProgram: boolean; deleteHouse: boolean; deleteRoom: boolean; createRoom: boolean; addDevices: boolean; deleteDevices: boolean; moveDevices: boolean; }; type SharedHouse = { house: House; permissions: Permissions; } type HouseResponse = { ownHouses: House[]; sharedHouses: SharedHouse[]; } type Metric = { deviceId: string; time: number; temperature: number; humidity: number; temperatureAmbient: number; currentPower: number; controlSignal: number; currentOperationMode: number; energyUsage: number; timeSinceHeaterStartup: number; openWindowsStatus: number; currentTemperatureTypeInWeeklyProgram: number; heaterFlag: number; powerStatus: number; } type Device = { deviceId: string; macAddress: string; deviceType: { childType: { id: string; name: string; }, parentType: { id: string; name: string; } }; isConnected: boolean; customName: string; houseId: string; roomId: string; isArchived: boolean; isEnabled: boolean; controlSource: string; createdAt: string; deviceSettings: unknown; lastMetrics: Metric, energyUsageForCurrentDay: number; sensorRooms: unknown[]; houseName: string; permissions: { maxTemperature: number; changeTemperature: boolean; }, nearestTimer: unknown; airPurifierDefaultSettings: unknown; airSensorAdditionalItems: unknown; socketTemperatureSensor: boolean; } type IndependentDevicesForHouseResponse = { items: Device[]; } type DevicesForHouseResponse = { roomId: string; roomName: string; devices: Device[]; } declare type MillCredential = { username: string; password: string; }; declare type Options = { timeout: number; }; declare class MillheatAPI { authenticator: Authenticator; credential: MillCredential; options: Options; agent: Agent; constructor(credential: MillCredential, options?: Partial<Options>); private api; getHouses(): Promise<HouseResponse>; getDevicesForHouse(houseId: string): Promise<DevicesForHouseResponse[]>; getIndependentDevicesForHouse(houseId: string): Promise<IndependentDevicesForHouseResponse>; } export { MillheatAPI as Client, House, Metric };