Calculate ah drawn for history and add time since last full
This commit is contained in:
parent
f3a7259d22
commit
3306b57f81
|
@ -96,7 +96,7 @@ class DbusBatteryService:
|
|||
supportedSettings={
|
||||
'AvgDischarge': ['/Settings/Batrium/AvgerageDischarge', 0.0,0,0],
|
||||
'TotalAhDrawn': ['/Settings/Batrium/TotalAhDrawn', 0.0,0,0],
|
||||
'TimeLastFull': ['/Settings/Batrium/TimeLastFull', 0.0 ,0,0],
|
||||
'TimeLastFull': ['/Settings/Batrium/TimeLastFull', 0.0,0,0],
|
||||
'MinCellVoltage': ['/Settings/Batrium/MinCellVoltage', 0.0,0.0,0.0],
|
||||
'MaxCellVoltage': ['/Settings/Batrium/MaxCellVoltage', 0.0,0.0,0.0],
|
||||
'interval': ['/Settings/Batrium/Interval', 200, 200, 200]
|
||||
|
@ -138,9 +138,9 @@ class DbusBatteryService:
|
|||
|
||||
self._dbusservice['/Soh'] = 100
|
||||
self._dbusservice['/Status'] = 0
|
||||
self._dbusservice['/ConsumedAmphours'] = 0
|
||||
|
||||
logging.info("History cell voltage min: %.3f, max: %.3f, totalAhDrawn: %d",
|
||||
self._settings['MinCellVoltage'], self._settings['MaxCellVoltage'], self._settings['TotalAhDrawn'])
|
||||
logging.info("History cell voltage min: %.3f, max: %.3f, totalAhDrawn: %d", self._settings['MinCellVoltage'], self._settings['MaxCellVoltage'], self._settings['TotalAhDrawn'])
|
||||
|
||||
if self._bat.soc <= 99:
|
||||
self._dbusservice['/Soc'] = self._bat.soc
|
||||
|
@ -215,16 +215,21 @@ class DbusBatteryService:
|
|||
|
||||
if self._bat.soc <= 99:
|
||||
self._dbusservice['/Soc'] = self._bat.soc
|
||||
# calculate time since last full charge
|
||||
dt = datetime.now() - datetime.fromtimestamp( float(self._settings['TimeLastFull']) )
|
||||
self._dbusservice['/History/TimeSinceLastFullCharge'] = (dt.seconds + dt.days * 24 * 3600)
|
||||
elif (self._bat.soc > 99) and (self.cell_balanced):
|
||||
self._dbusservice['/Soc'] = 100
|
||||
self._dbusservice['/ConsumedAmphours'] = 0
|
||||
# set timestamp last full charge
|
||||
if datetime.fromtimestamp(time()).day != datetime.fromtimestamp(float(self._settings['TimeLastFull'])).day:
|
||||
self._settings['TimeLastFull'] = time()
|
||||
|
||||
if self._bat.NumberInBypass != 0:
|
||||
self._dbusservice['/Balancing'] = 1
|
||||
else:
|
||||
self._dbusservice['/Balancing'] = 0
|
||||
|
||||
#self._dbusservice['/ConsumedAmphours'] = self._bat.AhToFull --- not working, Batrium not transmitting
|
||||
self._dbusservice['/ConsumedAmphours'] = ((100 - self._dbusservice['/Soc']) / 100) * self._bat.capacity
|
||||
self._dbusservice['/InstalledCapacity'] = self._bat.capacity
|
||||
self._dbusservice['/Capacity'] = self._bat.capacity
|
||||
self._dbusservice['/Dc/0/Current'] = self._bat.current
|
||||
|
@ -283,6 +288,8 @@ class DbusBatteryService:
|
|||
|
||||
if self._bat.current < -1:
|
||||
#discharging
|
||||
self._dbusservice['/ConsumedAmphours'] += abs(self._bat.current * 0.016667) #Ah
|
||||
self._dbusservice['/History/TotalAhDrawn'] += abs(self._bat.current * 0.016667) #Ah
|
||||
if self._bat.TimeToEmpty < 432000:
|
||||
self._dbusservice['/TimeToGo'] = self._bat.TimeToEmpty
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue