UNPKG

nature-remo

Version:
181 lines (177 loc) 5.32 kB
declare type ApplianceType = 'AC' | 'TV' | 'LIGHT'; interface User { id: string; nickname: string; } interface DetectedAirconModel { model: Model; params: AirconSettings; } interface SensorValue { temperature: number; humidity: number | undefined; illumination: number | undefined; } interface Device { id: string; name: string; temperature_offset: number; humidity_offset: number; created_at: Date; updated_at: Date; firmware_version: string; mac_address: string; serial_number: string; } declare type DeviceEventType = 'te' | 'hu' | 'il'; interface DeviceWithEvents extends Device { newest_events: { [key in DeviceEventType]: EventValue; }; } interface EventValue { val: number; created_at: Date; } interface Model { id: string; manufacturer: string; remote_name: string; name: string; image: string; } declare type TemperatureUnit = 'c' | 'f'; interface AirconSettings { temp: string; temp_unit: TemperatureUnit; mode: AirconModeType; vol: string; dir: string; dirh: string; button: string; } interface UpdateAirconSettingsOptions { temperature: string; operation_mode: string; air_volume: string; air_direction: string; button: string; } interface AirconSettingsWithTimestamp extends AirconSettings { updated_at: Date; } declare type AirconModeType = 'cool' | 'warm' | 'dry' | 'blow' | 'auto'; interface AirconModeValue { temp: string[]; dir: string[]; vol: string[]; } interface AirconRange { modes: { [key in AirconModeType]: AirconModeValue; }; fixedButtons: string[]; } interface Aircon { range: AirconRange; tempUnit: 'c' | 'f'; } interface Button { name: string; image: string; label: string; } interface LightState { brightness: string; power: 'on' | 'off'; last_button: string; } interface Light { state: LightState; buttons: Button[]; } interface TVState { input: 't' | 'bs' | 'cs'; } interface TV { state: TVState; buttons: Button[]; } interface Appliance { id: string; device: Device; nickname: string; image: string; type: string; signals: Signal[]; aircon?: Aircon; settings?: AirconSettingsWithTimestamp; model?: Model; tv?: TV; light?: Light; smart_meter?: SmartMeter; } interface SmartMeter { echonetlite_properties: EchonetliteProperties[]; } interface EchonetliteProperties { name: string; epc: number; val: string; updated_at: Date; } interface Signal { id: string; name: string; image: string; } interface Signal { id: string; name: string; image: string; } interface SignalMessage { freq: number; data: number[]; format: 'us'; } declare class Cloud { private readonly token; private readonly instance; constructor(token: string); getUser(): Promise<User>; updateUser(nickname: string): Promise<User>; getDevices(): Promise<DeviceWithEvents[]>; detectAppliance(message: SignalMessage): Promise<DetectedAirconModel>; getSensorValue(): Promise<SensorValue>; getAppliances(type?: ApplianceType): Promise<Appliance[]>; createAppliance(nickname: string, device: string, image: string, model?: string): Promise<Appliance[]>; updateAppliancesOrder(appliances: string[]): Promise<unknown>; deleteAppliance(applianceId: string): Promise<unknown>; updateAppliance(applianceId: string, nickname: string, imageId: string): Promise<Appliance>; listAircon(): Promise<Appliance[]>; updateAirconSettings(applianceId: string, settings: Partial<UpdateAirconSettingsOptions>): Promise<AirconSettingsWithTimestamp>; listTV(): Promise<Appliance[]>; updateTV(applianceId: string, button: string): Promise<TVState>; listLight(): Promise<Appliance[]>; updateLight(applianceId: string, button: string): Promise<LightState>; getApplianceSignals(applianceId: string): Promise<Signal[]>; createApplianceSignal(applianceId: string, name: string, message: SignalMessage, imageId: string): Promise<Signal>; updateSignalOrders(applianceId: string, signalIds: string[]): Promise<unknown>; updateSignal(signalId: string, name: string, imageId: string): Promise<unknown>; deleteSignal(signalId: string): Promise<unknown>; sendSignal(signalId: string): Promise<unknown>; updateDevice(deviceId: string, name: string): Promise<unknown>; deleteDevice(deviceId: string): Promise<unknown>; updateTemperatureOffset(deviceId: string, offset: number): Promise<unknown>; updateHumidityOffset(deviceId: string, offset: number): Promise<unknown>; private _post; private _get; } declare class Local { private readonly instance; constructor(address: string); fetchReceivedSignal(): Promise<SignalMessage>; sendSignal(signal: SignalMessage): Promise<any>; } export { Aircon, AirconModeType, AirconModeValue, AirconRange, AirconSettings, AirconSettingsWithTimestamp, Appliance, ApplianceType, Button, Cloud, DetectedAirconModel, Device, DeviceEventType, DeviceWithEvents, EchonetliteProperties, EventValue, Light, LightState, Local, Model, SensorValue, Signal, SignalMessage, SmartMeter, TV, TVState, TemperatureUnit, UpdateAirconSettingsOptions, User };