UNPKG

@pietrolubini/homebridge-ecoflow

Version:
45 lines (44 loc) 2.19 kB
import { DeviceInfo } from '@ecoflow/apis/containers/deviceInfo'; import { EcoFlowHttpApiManager } from '@ecoflow/apis/ecoFlowHttpApiManager'; import { EcoFlowMqttApiManager } from '@ecoflow/apis/ecoFlowMqttApiManager'; import { MqttQuotaMessage, MqttSetMessage, MqttSetReplyMessage, MqttStatusMessage } from '@ecoflow/apis/interfaces/mqttApiContracts'; import { DeviceConfig } from '@ecoflow/config'; import { EcoFlowHomebridgePlatform } from '@ecoflow/platform'; import { ServiceBase } from '@ecoflow/services/serviceBase'; import { Logging, PlatformAccessory } from 'homebridge'; import { Subscription } from 'rxjs'; export declare abstract class EcoFlowAccessoryBase { readonly platform: EcoFlowHomebridgePlatform; readonly accessory: PlatformAccessory; readonly config: DeviceConfig; readonly log: Logging; protected readonly httpApiManager: EcoFlowHttpApiManager; protected readonly mqttApiManager: EcoFlowMqttApiManager; private _services; private reconnectMqttTimeoutId; private isMqttConnected; private subscriptions; protected readonly deviceInfo: DeviceInfo; readonly setReplies: Record<string, { requestMessage: MqttSetMessage; revert: () => void; timeoutId: NodeJS.Timeout; }>; constructor(platform: EcoFlowHomebridgePlatform, accessory: PlatformAccessory, config: DeviceConfig, log: Logging, httpApiManager: EcoFlowHttpApiManager, mqttApiManager: EcoFlowMqttApiManager); get services(): ServiceBase[]; initialize(): Promise<void>; abstract initializeDefaultValues(): Promise<void>; cleanupServices(): void; destroy(): void; sendSetCommand(message: MqttSetMessage, revert: () => void): Promise<void>; protected abstract getServices(): ServiceBase[]; protected subscribeOnParameterUpdates(): Subscription[]; protected abstract processQuotaMessage(message: MqttQuotaMessage): void; protected processStatusMessage(message: MqttStatusMessage): void; protected processSetReplyMessage(message: MqttSetReplyMessage): void; private getMqttSetMessageKey; private initializeServices; private connectMqtt; private initMqtt; private setStatus; }