@pietrolubini/homebridge-ecoflow
Version:
Homebridge plugin for EcoFlow devices
71 lines (70 loc) • 2.48 kB
TypeScript
import { Simulator } from '@ecoflow/apis/simulations/simulator';
import { AccessoryConfig, PlatformConfig } from 'homebridge';
export interface EcoFlowConfig extends PlatformConfig {
devices: DeviceConfig[];
}
export declare enum DeviceModel {
Delta2Max = "Delta 2 Max",
Delta2 = "Delta 2",
DeltaPro3 = "Delta Pro 3",
PowerStream = "PowerStream",
SmartPlug = "Smart Plug"
}
export declare enum LocationType {
EU = "EU",
US = "US"
}
export type SerialNumber = string;
export interface DeviceInfoConfig {
name: string;
serialNumber: SerialNumber;
}
export interface DeviceAccessConfig extends DeviceInfoConfig {
location: LocationType;
accessKey: string;
secretKey: string;
model: DeviceModel;
reconnectMqttTimeoutMs?: number;
simulate?: boolean;
simulator?: new () => Simulator;
simulateQuotaTimeoutMs?: number;
simulateStatusTimeoutMs?: number;
}
export interface DeviceConfig extends AccessoryConfig, DeviceAccessConfig {
disabled: boolean;
battery?: BatteryDeviceConfig;
powerStream?: PowerStreamDeviceConfig;
powerOcean?: PowerOceanDeviceConfig;
outlet?: OutletDeviceConfig;
setReplyWaitResponseTimeoutMs?: number;
}
export interface BatteryDeviceConfig {
additionalCharacteristics: AdditionalBatteryCharacteristicType[];
}
export type AdditionalBatteryCharacteristicType = AdditionalOutletCharacteristicType | AdditionalBatteryOutletCharacteristicType;
export declare enum AdditionalBatteryOutletCharacteristicType {
BatteryLevel = "Battery Level, %",
InputConsumptionInWatts = "Input Consumption, W",
ChargingState = "Charging State",
StatusLowBattery = "Status Low Battery"
}
export declare enum AdditionalOutletCharacteristicType {
OutputVoltage = "Output Voltage, V",
OutputCurrent = "Output Current, A",
OutputConsumptionInWatts = "Output Consumption, W"
}
export declare enum PowerStreamConsumptionType {
W600 = 600,
W800 = 800
}
export interface PowerStreamDeviceConfig extends PowerOceanDeviceConfig {
type: PowerStreamConsumptionType;
}
export interface PowerOceanDeviceConfig {
batteryAdditionalCharacteristics?: AdditionalBatteryCharacteristicType[];
pvAdditionalCharacteristics?: AdditionalBatteryCharacteristicType[];
inverterAdditionalCharacteristics?: AdditionalBatteryCharacteristicType[];
}
export interface OutletDeviceConfig {
additionalCharacteristics?: AdditionalOutletCharacteristicType[];
}