From 4d5ec32eec58611c11e38ada209916b5d57922c0 Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Wed, 3 Nov 2021 03:05:14 +0300 Subject: notify when voltage drops to 47 and 45 volts --- src/monitor.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/monitor.py') diff --git a/src/monitor.py b/src/monitor.py index e8c24e7..6f6d5a4 100644 --- a/src/monitor.py +++ b/src/monitor.py @@ -41,7 +41,7 @@ class InverterMonitor(Thread): self.allowed_currents = [] self.battery_under_voltage = None self.charging_event_handler = None - self.battery_voltage_handler = None + self.battery_event_handler = None self.currents = [] self.active_current = None @@ -88,6 +88,8 @@ class InverterMonitor(Thread): if not ac: self.low_voltage_program(v) + elif self.battery_state != BatteryState.NORMAL: + self.battery_state = BatteryState.NORMAL except InverterError as e: _logger.exception(e) @@ -180,13 +182,22 @@ class InverterMonitor(Thread): _logger.exception(e) def low_voltage_program(self, v: float): - pass + if v < 45: + state = BatteryState.CRITICAL + elif v < 47: + state = BatteryState.WARNING + else: + state = BatteryState.NORMAL + + if state != self.battery_state: + self.battery_state = state + self.battery_event_handler(state, v=v) def set_charging_event_handler(self, handler: Callable): self.charging_event_handler = handler def set_battery_event_handler(self, handler: Callable): - self.battery_voltage_handler = handler + self.battery_event_handler = handler def stop(self): self.interrupted = True -- cgit v1.2.3