from ..physical.Dumpload import Dumpload from datetime import datetime class WaterBoiler(Dumpload): def __init__(self, which='localhost'): super().__init__(which) self.energy_state = 10 # kWh self.energy_max = 15 self.time = datetime.now() self.loss = 1 # kW def step_sim(self): time_now = datetime.now() time_delta = (time_now - self.time).total_seconds() power = self.getActivePower().value self.energy_state += (power - self.loss)/3600*time_delta self.time = time_now def getSOC(self): self.step_sim() if self.energy_state > self.energy_max: self.energy_state = self.energy_max elif self.energy_state < 0: self.energy_state = 0.0 return self.energy_state