UNPKG

@homebridge-plugins/homebridge-aladdin-connect

Version:
74 lines 2.63 kB
import { Logger } from 'homebridge'; import Token = PubSubJS.Token; export interface AladdinDoor { deviceId: number; id: string; index: number; serialNumber: string; name: string; hasBatteryLevel: boolean; ownership: string; status: AladdinDoorStatus; batteryPercent: number | null; fault: boolean; } export declare enum AladdinDoorStatus { UNKNOWN = 0, OPEN = 1, OPENING = 2, TIMEOUT_OPENING = 3, CLOSED = 4, CLOSING = 5, TIMEOUT_CLOSING = 6, NOT_CONFIGURED = 7 } export declare enum AladdinDesiredDoorStatus { CLOSED = 0, OPEN = 1, NONE = 99 } export interface AladdinConnectConfig { username: string; password: string; batteryLowLevel?: number; doorStatusStationaryCacheTtl?: number; doorStatusTransitioningCacheTtl?: number; doorStatusPollInterval?: number; logApiResponses?: boolean; showShared?: boolean; } export declare class AladdinConnect { readonly log: Logger; private readonly config; private static readonly PUB_SUB_DOOR_STATUS_TOPIC; private static readonly DOOR_STATUS_STATIONARY_CACHE_TTL_S_DEFAULT; private static readonly DOOR_STATUS_STATIONARY_CACHE_TTL_S_MIN; private static readonly DOOR_STATUS_STATIONARY_CACHE_TTL_S_MAX; private static readonly DOOR_STATUS_TRANSITIONING_CACHE_TTL_S_DEFAULT; private static readonly DOOR_STATUS_TRANSITIONING_CACHE_TTL_S_MIN; private static readonly DOOR_STATUS_TRANSITIONING_CACHE_TTL_S_MAX; private static readonly DOOR_STATUS_POLL_INTERVAL_MS_DEFAULT; private static readonly DOOR_STATUS_POLL_INTERVAL_MS_MIN; private static readonly DOOR_STATUS_POLL_INTERVAL_MS_MAX; private static readonly API_HOST; private static readonly API_TIMEOUT; private static readonly AUTH_HOST; private static readonly AUTH_CLIENT_ID; private static readonly AUTH_CLIENT_SECRET; private static readonly DOOR_STATUS_LOCK; private readonly lock; private readonly cache; private readonly session; constructor(log: Logger, config: AladdinConnectConfig); subscribe(door: AladdinDoor, func: (info: AladdinDoor) => void): Token; unsubscribe(token: Token): void; getAllDoors(): Promise<AladdinDoor[]>; setDoorStatus(door: AladdinDoor, desiredStatus: AladdinDesiredDoorStatus): Promise<void>; private getAccessToken; private get doorStatusStationaryCacheTtl(); private get doorStatusTransitioningCacheTtl(); private get pollIntervalMs(); private static doorStatusTopic; private static doorStatusCacheKey; } //# sourceMappingURL=aladdinConnect.d.ts.map