homebridge-freeathome-local-api
Version:
Control your free@home setup using the local API provided by your System Access Point
49 lines • 2.15 kB
TypeScript
import { SystemAccessPoint } from "freeathome-local-api-client";
import { API, Characteristic, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service } from "homebridge";
import { FreeAtHomeContext } from "./freeAtHomeContext.js";
/** The free@home Homebridge platform. */
export declare class FreeAtHomeHomebridgePlatform implements DynamicPlatformPlugin {
readonly log: Logger;
readonly config: PlatformConfig;
readonly api: API;
/** The service reference */
readonly Service: typeof Service;
/** The characteristic reference */
readonly Characteristic: typeof Characteristic;
/** The list of restored cached accessories */
readonly accessories: Array<PlatformAccessory<FreeAtHomeContext>>;
private readonly removedAccessories;
/** The system access point */
readonly sysap: SystemAccessPoint;
private readonly fahAccessories;
private readonly fahLogger;
private readonly webSocketSubscription;
private wsConnectionAttempt;
private readonly maxWsRetryCount;
private get experimentalMode();
/**
* Constructs a new free@home Homebridge platform instance.
* @param log {Logger} The logger instance.
* @param config {PlatformConfig} The platform configuration.
* @param api {API} The API instance.
*/
constructor(log: Logger, config: PlatformConfig, api: API);
/**
* Configures the specified accessory.
* @param accessory The accessory to be configured.
* @description
* This function is invoked when homebridge restores cached accessories from disk at startup.
* It should be used to setup event handlers for characteristics and update respective values.
*/
configureAccessory(accessory: PlatformAccessory): void;
/** Discovers the supported free@home devices from the System Access Point. */
private discoverDevices;
private processChannel;
private isViableChannel;
private createAccessory;
private isAllowedChannel;
private isIgnoredChannel;
private processWebSocketMesage;
private resolveAccessoryType;
}
//# sourceMappingURL=platform.d.ts.map