UNPKG

homebridge-z2m

Version:

Expose your Zigbee devices to HomeKit with ease, by integrating Zigbee2MQTT with Homebridge.

55 lines 2.26 kB
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig } from 'homebridge'; import mqtt from 'mqtt'; import { PluginConfiguration } from './configModels'; import { ConfigurableLogger } from './configurableLogger'; export declare class Zigbee2mqttPlatform implements DynamicPlatformPlugin { readonly api: API; private static readonly MIN_Z2M_VERSION; private static readonly TOPIC_BRIDGE; private static readonly TOPIC_SUFFIX_AVAILABILITY; readonly config?: PluginConfiguration; readonly log: ConfigurableLogger; private readonly mqttClient?; private baseDeviceConfig; private readonly accessories; private didReceiveDevices; private lastReceivedZigbee2MqttVersion; private lastZigbee2MqttOnline; private lastReceivedDevices; private lastReceivedGroups; private groupUpdatePending; private deviceUpdatePending; private zigbee2MqttHasBeenOffline; private connectionPreviouslyClosed; private availabilityIsEnabledGlobally; private availabilityEnabledDevices; private availabilityDisabledDevices; constructor(logger: Logger, config: PlatformConfig, api: API); private initializeMqttClient; isExperimentalFeatureEnabled(feature: string): boolean; private static createMqttOptions; private updateServerAvailabilityForAllDevices; private onMqttConnected; private onMqttClose; private onMessage; private checkZigbee2MqttVersionAndConfig; private processAvailabilityConfig; private isAvailabilityEnabledForAddress; private handleDeviceAvailability; private handleDeviceUpdate; private removeStaleDevices; private handleReceivedDevices; configureAccessory(accessory: PlatformAccessory): void; private static getIdentifiersFromDevice; private getAdditionalConfigForDevice; private mergeDeviceConfig; private isDeviceExcluded; private addAccessory; private createOrUpdateAccessory; isConnected(): boolean; publishMessage(topic: string, payload: string, options: mqtt.IClientPublishOptions): Promise<void>; private createGroupAccessories; private createDeviceListEntryFromGroup; private determineExposesForGroup; } //# sourceMappingURL=platform.d.ts.map