bugfix, first run was not properly calculated

This commit is contained in:
Ivan Pavlina 2022-01-03 13:22:15 +00:00
parent 311f3715d9
commit 926803589d

View file

@ -2076,11 +2076,7 @@ class MikrotikControllerData:
"local_accounting": False, "local_accounting": False,
} }
_LOGGER.debug(f"Working with {len(self.data['client_traffic'])} client-traffic hosts") _LOGGER.debug(f"Working with {len(self.data['client_traffic'])} kid control devices")
time_diff = self.api.take_client_traffic_snapshot(False)
if not time_diff:
return
kid_control_devices_data = parse_api( kid_control_devices_data = parse_api(
data={}, data={},
@ -2099,9 +2095,11 @@ class MikrotikControllerData:
] ]
) )
time_diff = self.api.take_client_traffic_snapshot(False)
if not kid_control_devices_data: if not kid_control_devices_data:
if "kid-control-devices" not in self.notified_flags: if "kid-control-devices" not in self.notified_flags:
_LOGGER.error("No kid-control-devices found on Mikrotik, make sure kid-control feature is configured") _LOGGER.error("No kid control devices found, make sure kid-control feature is configured")
self.notified_flags.append("kid-control-devices") self.notified_flags.append("kid-control-devices")
return return
elif "kid-control-devices" in self.notified_flags: elif "kid-control-devices" in self.notified_flags:
@ -2116,12 +2114,14 @@ class MikrotikControllerData:
current_tx = vals['bytes-up'] current_tx = vals['bytes-up']
previous_tx = self.data["client_traffic"][uid]['previous-bytes-up'] previous_tx = self.data["client_traffic"][uid]['previous-bytes-up']
if time_diff:
delta_tx = max(0, current_tx - previous_tx) * 8 delta_tx = max(0, current_tx - previous_tx) * 8
self.data["client_traffic"][uid]['wan-tx'] = round(delta_tx / time_diff * uom_div, 2) self.data["client_traffic"][uid]['wan-tx'] = round(delta_tx / time_diff * uom_div, 2)
self.data["client_traffic"][uid]['previous-bytes-up'] = current_tx self.data["client_traffic"][uid]['previous-bytes-up'] = current_tx
current_rx = vals['bytes-down'] current_rx = vals['bytes-down']
previous_rx = self.data["client_traffic"][uid]['previous-bytes-down'] previous_rx = self.data["client_traffic"][uid]['previous-bytes-down']
if time_diff:
delta_rx = max(0, current_rx - previous_rx) * 8 delta_rx = max(0, current_rx - previous_rx) * 8
self.data["client_traffic"][uid]['wan-rx'] = round(delta_rx / time_diff * uom_div, 2) self.data["client_traffic"][uid]['wan-rx'] = round(delta_rx / time_diff * uom_div, 2)
self.data["client_traffic"][uid]['previous-bytes-down'] = current_rx self.data["client_traffic"][uid]['previous-bytes-down'] = current_rx