Skip to content

Commit

Permalink
Only recalculate MaxAmpsToDivideFromGrid every 30 seconds
Browse files Browse the repository at this point in the history
  • Loading branch information
RichieB2B committed Jan 1, 2024
1 parent ed2ec7a commit 9f072c0
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions lib/TWCManager/TWCMaster.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ class TWCMaster:
consumptionAmpsValues = {}
debugOutputToFile = False
generationValues = {}
lastMaxAmpsToDivideFromGridTime = 0
lastMaxAmpsToDivideFromGridValue = 0
lastkWhMessage = time.time()
lastkWhPoll = 0
lastSaveFailed = 0
Expand Down Expand Up @@ -665,10 +667,12 @@ def getMaxAmpsToDivideGreenEnergy(self):
return round(amps, 2)

def getMaxAmpsToDivideFromGrid(self):
currentOffer = min(
self.getTotalAmpsInUse(),
self.getMaxAmpsToDivideAmongSlaves(),
) if self.getTotalAmpsInUse() > 0 else self.getMaxAmpsToDivideAmongSlaves()
# Only recalculate once every 30 seconds to allow things to settle
now = time.time()
if now - self.lastMaxAmpsToDivideFromGridTime < 30:
return round(self.lastMaxAmpsToDivideFromGridValue, 2)

currentOffer = self.getTotalAmpsInUse() if self.getTotalAmpsInUse() > 0 else self.getMaxAmpsToDivideAmongSlaves()

# Get consumptions in Amps, if the EMS source supports it
consumptionA = float(self.getConsumptionAmps())
Expand All @@ -688,6 +692,10 @@ def getMaxAmpsToDivideFromGrid(self):
amps = amps / self.getRealPowerFactor(amps)
logger.debug("MaxAmpsToDivideFromGrid: +++++++++++++++: " + str(amps))

# Update for next call
self.lastMaxAmpsToDivideFromGridTime = now
self.lastMaxAmpsToDivideFromGridValue = amps

return round(amps, 2)


Expand Down

0 comments on commit 9f072c0

Please sign in to comment.