UNPKG

@pietrolubini/homebridge-ecoflow

Version:
99 lines 5.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeltaPro3Accessory = void 0; const deltaPro3HttpApiContracts_1 = require("@ecoflow/accessories/batteries/deltapro3/interfaces/deltaPro3HttpApiContracts"); const outletAcHvService_1 = require("@ecoflow/accessories/batteries/deltapro3/services/outletAcHvService"); const outletAcLvService_1 = require("@ecoflow/accessories/batteries/deltapro3/services/outletAcLvService"); const outletDc12vService_1 = require("@ecoflow/accessories/batteries/deltapro3/services/outletDc12vService"); const ecoFlowAccessoryWithQuotaBase_1 = require("@ecoflow/accessories/ecoFlowAccessoryWithQuotaBase"); const batteryStatusService_1 = require("@ecoflow/services/batteryStatusService"); class DeltaPro3Accessory extends ecoFlowAccessoryWithQuotaBase_1.EcoFlowAccessoryWithQuotaBase { batteryStatusService; outletAcHvService; outletAcLvService; outletDc12vService; // private readonly switchXboostService: SwitchXboostService; constructor(platform, accessory, config, log, httpApiManager, mqttApiManager, batteryStatusProvider) { super(platform, accessory, config, log, httpApiManager, mqttApiManager); this.batteryStatusService = new batteryStatusService_1.BatteryStatusService(this, batteryStatusProvider); this.outletAcHvService = new outletAcHvService_1.OutletAcHvService(this, batteryStatusProvider); this.outletAcLvService = new outletAcLvService_1.OutletAcLvService(this, batteryStatusProvider); this.outletDc12vService = new outletDc12vService_1.OutletDc12vService(this, batteryStatusProvider); // this.switchXboostService = new SwitchXboostService(this); } getServices() { return [ this.batteryStatusService, this.outletAcHvService, this.outletAcLvService, this.outletDc12vService, // X-boost status: // - Set ON/OFF - WORKS // - Read initial value - WORKS // - Receive updates about changes inside Ecoflow App - DOES NOT WORK (no mqtt quota messages about X-Boost changes) // this.switchXboostService, ]; } processQuotaMessage(message) { const data = message; Object.assign(this.quota, data); this.updateSocValues(data); this.updateInputWattsValues(data); this.updateOutputWattsValues(data); this.updateSwitchStateValues(data); } initializeQuota(quota) { const result = quota ?? {}; return result; } updateInitialValues(data) { this.processQuotaMessage(data); } updateSocValues(params) { if (params.cmsBattSoc !== undefined && params.cmsMinDsgSoc !== undefined) { this.batteryStatusService.updateBatteryLevel(params.cmsBattSoc, params.cmsMinDsgSoc); this.outletAcHvService.updateBatteryLevel(params.cmsBattSoc, params.cmsMinDsgSoc); this.outletAcLvService.updateBatteryLevel(params.cmsBattSoc, params.cmsMinDsgSoc); this.outletDc12vService.updateBatteryLevel(params.cmsBattSoc, params.cmsMinDsgSoc); } } updateInputWattsValues(params) { if (params.inputWatts !== undefined) { const isCharging = params.inputWatts > 0 && (params.outputWatts === undefined || params.inputWatts !== params.outputWatts); this.batteryStatusService.updateChargingState(isCharging); this.outletAcHvService.updateChargingState(isCharging); this.outletAcLvService.updateChargingState(isCharging); this.outletDc12vService.updateChargingState(isCharging); this.outletAcHvService.updateInputConsumption(params.inputWatts); this.outletAcLvService.updateInputConsumption(params.inputWatts); this.outletDc12vService.updateInputConsumption(params.inputWatts); } } updateOutputWattsValues(params) { if (params.powGetAcHvOut !== undefined) { this.outletAcHvService.updateOutputConsumption(Math.abs(params.powGetAcHvOut)); } if (params.powGetAcLvOut !== undefined) { this.outletAcLvService.updateOutputConsumption(Math.abs(params.powGetAcLvOut)); } if (params.powGet12v !== undefined) { this.outletDc12vService.updateOutputConsumption(Math.abs(params.powGet12v)); } } updateSwitchStateValues(params) { if (params.flowInfoAcHvOut !== undefined && params.flowInfoAcHvOut !== deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.Ignore) { this.outletAcHvService.updateState(params.flowInfoAcHvOut === deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.On); } if (params.flowInfoAcLvOut !== undefined && params.flowInfoAcLvOut !== deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.Ignore) { this.outletAcLvService.updateState(params.flowInfoAcLvOut === deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.On); } if (params.flowInfo12v !== undefined && params.flowInfo12v !== deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.Ignore) { this.outletDc12vService.updateState(params.flowInfo12v === deltaPro3HttpApiContracts_1.DeltaPro3AcEnableType.On); } // if (params.xboostEn !== undefined && params.xboostEn !== AcXBoostType.Ignore) { // this.switchXboostService.updateState(params.xboostEn === AcXBoostType.On); // } } } exports.DeltaPro3Accessory = DeltaPro3Accessory; //# sourceMappingURL=deltaPro3Accessory.js.map