homebridge-freeathome-local-kdljns
Version:
Platform Plugin to manage free@home accessories via HomeBridge using local API
74 lines (73 loc) • 2.23 kB
TypeScript
import { ClientConfiguration } from "freeathome-api/dist/lib/Configuration";
import { Subscriber } from "freeathome-api/dist/lib/Subscriber";
import { Logger } from "freeathome-api/dist/lib/Logger";
export declare class SystemAccessPoint {
private configuration;
private readonly subscriber;
private client;
private messageBuilder;
private crypto;
private online;
private settings;
private connectedAs;
private user;
private keepAliveMessageId;
private pingTimeoutSeconds;
private keepAliveTimer;
private pingTimeout;
private deviceData;
private subscribed;
private axios;
private logger;
/**
* protocols, we need some smarter way in the future (enableTLS: true in config)
*/
private readonly _protocol1;
private readonly _protocol2;
/**
* ports will be set automagically (hopefully)
*/
private _port;
/**
* the API entry path
*/
private readonly _path2api;
/**
* default UUID - we will read the "real" uuid from config.json
*/
private _uuid;
/**
* minimal version to use the local API
*/
private readonly _minversionAP;
constructor(configuration: ClientConfiguration, subscriber: Subscriber, logger: Logger | null);
private createClient;
private getSettings;
private getDeviceConfiguration;
/**
*
* onopen: (event: WebSocket.OpenEvent) => void;
* onerror: (event: WebSocket.ErrorEvent) => void;
* onclose: (event: WebSocket.CloseEvent) => void;
* onmessage: (event: WebSocket.MessageEvent) => void;
*/
private registerHandlers;
/**
* heartbeat to detect if WS still send messages od my be death
*/
private heartBeat;
private handleEvent;
private unwrapEventData;
private sendMessage;
/**
* create and connect WS client
*/
connect(): Promise<void>;
disconnect(): Promise<void>;
private sendKeepAliveMessage;
private sendKeepAliveMessages;
private disableKeepAliveMessages;
private applyIncrementalUpdate;
setDatapoint(serialNo: string, channel: string, datapoint: string, value: string): Promise<void>;
getDeviceData(): any;
}