UNPKG

@pietrolubini/homebridge-ecoflow

Version:
76 lines 3.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GlacierSimulator = void 0; const glacierHttpApiContracts_1 = require("@ecoflow/accessories/glacier/interfaces/glacierHttpApiContracts"); const glacierMqttApiContracts_1 = require("@ecoflow/accessories/glacier/interfaces/glacierMqttApiContracts"); const simulator_1 = require("@ecoflow/apis/simulations/simulator"); const characteristicContracts_1 = require("@ecoflow/characteristics/characteristicContracts"); class GlacierSimulator extends simulator_1.SimulatorTyped { generateQuota() { const quotaType = this.getRandomNumber(0, 100); if (quotaType >= 0 && quotaType < 25) { const quotaEmsStatus = { typeCode: glacierMqttApiContracts_1.GlacierMqttMessageType.EMS, params: { lcdSoc: this.getRandomNumber(0, 100), minDsgSoc: this.getRandomNumber(0, 20), }, }; return quotaEmsStatus; } else if (quotaType >= 25 && quotaType < 50) { const quotaBmsStatus = { typeCode: glacierMqttApiContracts_1.GlacierMqttMessageType.BMS, params: { amp: this.getRandomNumber(0, 1000), inWatts: this.getRandomNumber(0, 1000), outWatts: this.getRandomNumber(0, 1000), vol: this.getRandomNumber(1800, 2400), }, }; return quotaBmsStatus; } else { const quotaPdStatus = { typeCode: glacierMqttApiContracts_1.GlacierMqttMessageType.PD, params: { coolMode: this.getRandomBoolean() ? glacierHttpApiContracts_1.CoolModeType.Normal : glacierHttpApiContracts_1.CoolModeType.Eco, doorStat: this.getRandomBoolean() ? glacierHttpApiContracts_1.ContactSensorType.Closed : glacierHttpApiContracts_1.ContactSensorType.Opened, flagTwoZone: this.getRandomBoolean() ? glacierHttpApiContracts_1.CoolingZoneType.Single : glacierHttpApiContracts_1.CoolingZoneType.Dual, pwrState: this.getRandomBoolean() ? characteristicContracts_1.EnableType.Off : characteristicContracts_1.EnableType.On, tmpAver: this.getRandomNumber(-25, 10), tmpL: this.getRandomNumber(-25, 10), tmpR: this.getRandomNumber(-25, 10), tmpLSet: this.getRandomNumber(-25, 10), tmpRSet: this.getRandomNumber(-25, 10), tmpMSet: this.getRandomNumber(-25, 10), tmpUnit: this.getRandomBoolean() ? glacierHttpApiContracts_1.TemperatureType.Celsius : glacierHttpApiContracts_1.TemperatureType.Fahrenheit, }, }; if (this.getRandomBoolean()) { quotaPdStatus.params.icePercent = this.getRandomNumber(0, 100); quotaPdStatus.params.iceMkMode = this.getRandomBoolean() ? glacierHttpApiContracts_1.MakeIceStatusType.SmallInProgress : glacierHttpApiContracts_1.MakeIceStatusType.LargeInProgress; } else { quotaPdStatus.params.fsmState = this.getRandomInt(2, 5); } return quotaPdStatus; } } generateSetReplyTyped(message) { const reply = { id: message.id, version: message.version, moduleType: message.moduleType, operateType: message.operateType, data: { ack: false, }, }; return reply; } } exports.GlacierSimulator = GlacierSimulator; //# sourceMappingURL=glacierSimulator.js.map