@homebridge-plugins/homebridge-aladdin-connect
Version:
Aladdin Connect plugin for Homebridge.
74 lines • 2.63 kB
TypeScript
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