UNPKG

homebridge-aplvibe

Version:

Homebridge plugin for SleepMe devices using APL as core logic engine

93 lines 2.62 kB
import { PlatformConfig, Service } from 'homebridge'; export interface APLVibeConfig extends PlatformConfig { apiToken: string; unit: 'C' | 'F'; pollingInterval: number; devices?: DeviceConfig[]; } export interface DeviceConfig { deviceId: string; name: string; schedules?: ScheduleConfig[]; } export interface ScheduleConfig { time: string; temperature: number; } export interface SleepMeDevice { id: string; name: string; model: string; status: 'online' | 'offline'; } export interface DeviceState { device_id: string; characteristic: string; value: any; timestamp: number; } export interface QueueRequest { id: string; priority: 'CRITICAL' | 'HIGH' | 'NORMAL' | 'LOW'; timestamp: number; action: string; device_id: string; data?: any; } export interface RateLimitState { count: number; minute_start: number; } export interface APLResult { success: boolean; data?: any; error?: string; } export interface APLEngine { init(config: string): Promise<APLResult>; getDevices(): Promise<APLResult>; restoreAccessory(uuid: string): Promise<APLResult>; getState(deviceId: string, characteristic: string): Promise<APLResult>; setState(deviceId: string, characteristic: string, value: any): Promise<APLResult>; queueRequest(request: QueueRequest): Promise<APLResult>; processQueue(): Promise<APLResult>; convertTemperature(value: number, unit: 'C' | 'F'): Promise<APLResult>; validateTemperature(value: number, unit: 'C' | 'F'): Promise<APLResult>; applySchedule(deviceId: string): Promise<APLResult>; } export interface APLVibeAccessory { UUID: string; displayName: string; deviceId: string; services: { information: Service; thermostat?: Service; switch?: Service; battery?: Service; }; } export declare enum Priority { CRITICAL = 0, HIGH = 1, NORMAL = 2, LOW = 3 } export declare enum Characteristics { CURRENT_TEMPERATURE = "CurrentTemperature", TARGET_TEMPERATURE = "TargetTemperature", HEATING_COOLING_STATE = "CurrentHeatingCoolingState", TARGET_HEATING_COOLING_STATE = "TargetHeatingCoolingState", TEMPERATURE_UNITS = "TemperatureDisplayUnits", POWER_STATE = "On", BATTERY_LEVEL = "BatteryLevel", WATER_LEVEL = "WaterLevel" } export interface APLVibeHomebridgeApi { hap: any; registerPlatform: (name: string, constructor: any) => void; user: { configPath: () => string; storagePath: () => string; }; } //# sourceMappingURL=types.d.ts.map