UNPKG

homebridge-rabbitair

Version:
142 lines (141 loc) 3.39 kB
import { Logger } from 'homebridge'; export declare enum RabbitAirMode { Auto = 0, Pollen = 1, Manual = 2 } export declare enum RabbitAirSpeed { SuperSilent = 0, Silent = 1, Low = 2, Medium = 3, High = 4, Turbo = 5 } export declare enum RabbitAirQuality { Lowest = 0, Low = 1, Medium = 2, High = 3, Highest = 4 } export declare enum RabbitAirSensitivity { High = 0, Medium = 1, Low = 2 } export interface RabbitAirState { power?: boolean; mode?: RabbitAirMode; speed?: RabbitAirSpeed; quality?: RabbitAirQuality; sensitivity?: RabbitAirSensitivity; ionizer?: boolean; filterLife?: number; filterCleaning?: boolean; filterReplacement?: boolean; error?: number; rssi?: number; } export interface RabbitAirInfo { name: string; mac: string; model?: string; firmware?: string; uptime?: number; } export interface RabbitAirConfig { host: string; token: string; port?: number; } export interface RabbitAirStateResponse { id: number; cmd?: number; data: { model: number; firmware: number[]; power: boolean; mode: RabbitAirMode; speed: RabbitAirSpeed; quality: RabbitAirQuality; sensitivity: RabbitAirSensitivity; ionizer: boolean; idle: number; moodlight: number; filter_cleaning: boolean; filter_replacement: boolean; filter_life: number; light_sensor: boolean; filter_timer: number; all_light_off: number; error: number; tag_state: number; tag_uid: number[]; filter_type: number; pm_sensor: number[]; color: number[]; lsens_ctl: boolean; filter_ctl: boolean; buzzer: boolean; gas: number; lock: boolean; open: boolean; light_state: number; timer_mode: number; timer: number; schedule: string; tz: string | null; s2: string | null; rssi: number; v: string; }; error?: number; } export interface RabbitAirInfoResponse { id: number; cmd: number; data: { name: string; mac: string; model?: string; fv?: string; uptime?: number; }; error?: number; } export declare class RabbitAirClient { private socket; private host; private port; private token; private commandId; private tsDiff; private isConnected; private logger; private readonly TIMEOUT_MS; private readonly MAX_RETRIES; private connectionAttempts; private readonly MAX_CONNECTION_ATTEMPTS; constructor(config: RabbitAirConfig, logger: Logger); private nextId; private getClock; private getTimestamp; private encrypt; private decrypt; private sendCommand; private fallbackUnencryptedCommand; private testConnection; private sendCommandWithRetry; connect(): Promise<void>; disconnect(): Promise<void>; getState(): Promise<RabbitAirState>; setState(state: Partial<RabbitAirState>): Promise<void>; getInfo(): Promise<RabbitAirInfo>; checkDeviceCapabilities(): Promise<{ supportsEncryption: boolean; responsive: boolean; }>; maintainConnection(): Promise<void>; shutdown(): Promise<void>; }