UNPKG

@pietrolubini/homebridge-ecoflow

Version:
37 lines 2.8 kB
"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