@pietrolubini/homebridge-ecoflow
Version:
Homebridge plugin for EcoFlow devices
37 lines • 2.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OutletBatteryServiceBase = void 0;
const config_1 = require("@ecoflow/config");
const outletServiceBase_1 = require("@ecoflow/services/outletServiceBase");
class OutletBatteryServiceBase extends outletServiceBase_1.OutletServiceBase {
batteryStatusProvider;
constructor(ecoFlowAccessory, batteryStatusProvider, serviceSubType, additionalCharacteristics) {
super(ecoFlowAccessory, additionalCharacteristics, serviceSubType);
this.batteryStatusProvider = batteryStatusProvider;
}
updateInputConsumption(watt) {
this.updateCustomCharacteristic(this.platform.Characteristic.PowerConsumption.InputConsumptionWatts, 'Input Consumption, W', () => watt, config_1.AdditionalBatteryOutletCharacteristicType.InputConsumptionInWatts);
}
updateBatteryLevel(batteryLevel, dischargeLimit) {
this.updateCustomCharacteristic(this.platform.Characteristic.BatteryLevel, 'Battery Level, %', () => batteryLevel, config_1.AdditionalBatteryOutletCharacteristicType.BatteryLevel);
this.updateStatusLowBattery(batteryLevel, dischargeLimit);
}
updateChargingState(isCharging) {
this.updateCustomCharacteristic(this.platform.Characteristic.ChargingState, 'ChargingState', () => isCharging, config_1.AdditionalBatteryOutletCharacteristicType.ChargingState);
}
addCharacteristics() {
const characteristics = super.addCharacteristics();
const additionalCharacteristics = [
this.tryAddCustomCharacteristic(this.platform.Characteristic.PowerConsumption.InputConsumptionWatts, config_1.AdditionalBatteryOutletCharacteristicType.InputConsumptionInWatts),
this.tryAddCustomCharacteristic(this.platform.Characteristic.BatteryLevel, config_1.AdditionalBatteryOutletCharacteristicType.BatteryLevel),
this.tryAddCustomCharacteristic(this.platform.Characteristic.ChargingState, config_1.AdditionalBatteryOutletCharacteristicType.ChargingState),
this.tryAddCustomCharacteristic(this.platform.Characteristic.StatusLowBattery, config_1.AdditionalBatteryOutletCharacteristicType.StatusLowBattery),
];
return [...characteristics, ...additionalCharacteristics].filter(characteristic => characteristic !== null);
}
updateStatusLowBattery(batteryLevel, dischargeLimit) {
this.updateCustomCharacteristic(this.platform.Characteristic.StatusLowBattery, 'StatusLowBattery', () => this.batteryStatusProvider.getStatusLowBattery(this.platform.Characteristic, batteryLevel, dischargeLimit), config_1.AdditionalBatteryOutletCharacteristicType.StatusLowBattery);
}
}
exports.OutletBatteryServiceBase = OutletBatteryServiceBase;
//# sourceMappingURL=outletBatteryServiceBase.js.map