@pietrolubini/homebridge-ecoflow
Version:
Homebridge plugin for EcoFlow devices
45 lines (44 loc) • 2.19 kB
TypeScript
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;
}