From 66bc90da5c51b32882f15f53991664632dd64c24 Mon Sep 17 00:00:00 2001 From: saqriphnix Date: Sat, 17 Aug 2024 11:58:13 +0300 Subject: [PATCH] fix status is not actually a single word --- misc/checks.py | 61 +++++++++++++++++++++++++------------------------ misc/sensors.py | 4 ++-- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/misc/checks.py b/misc/checks.py index baee3bd..d4bad14 100644 --- a/misc/checks.py +++ b/misc/checks.py @@ -113,36 +113,37 @@ async def ups_check() -> list[alerts.Alert]: message=f"Battery is under {sensor.battery_warning_percentage}%\n{sensor.battery_charge_percentage}% ({timedelta(seconds=sensor.battery_runtime)} remaining.", severity=alerts.Severity.WARNING )) - elif IS_TESTING or sensor.ups_status == UPSStatus.ON_BATTERY: - alert_list.append(alerts.Alert( - alert_type=alerts.AlertType.UPS, - message=f"UPS is on battery.\n{sensor.battery_charge_percentage}% ({timedelta(seconds=sensor.battery_runtime)}) remaining.", - severity=alerts.Severity.INFO - )) - elif IS_TESTING or sensor.ups_status == UPSStatus.BATTERY_REPLACE: - alert_list.append(alerts.Alert( - alert_type=alerts.AlertType.UPS, - message=f"UPS battery needs to be replaced ASAP!", - severity=alerts.Severity.CRITICAL - )) - elif IS_TESTING or sensor.ups_status == UPSStatus.UPS_OVERLOAD: - alert_list.append(alerts.Alert( - alert_type=alerts.AlertType.UPS, - message=f"UPS is overloaded!", - severity=alerts.Severity.CRITICAL - )) - elif IS_TESTING or sensor.ups_status == UPSStatus.UPS_BYPASS: - alert_list.append(alerts.Alert( - alert_type=alerts.AlertType.UPS, - message=f"BYPASS MODE: Battery and connected devices are not protected from power outage!", - severity=alerts.Severity.WARNING - )) - elif IS_TESTING or sensor.ups_status == UPSStatus.UPS_CALIBRATION: - alert_list.append(alerts.Alert( - alert_type=alerts.AlertType.UPS, - message=f"UPS is currently performing runtime calibration.", - severity=alerts.Severity.INFO - )) + for status in sensor.ups_status: + if IS_TESTING or status == UPSStatus.BATTERY_REPLACE: + alert_list.append(alerts.Alert( + alert_type=alerts.AlertType.UPS, + message=f"UPS battery needs to be replaced ASAP!", + severity=alerts.Severity.CRITICAL + )) + elif IS_TESTING or status == UPSStatus.UPS_OVERLOAD: + alert_list.append(alerts.Alert( + alert_type=alerts.AlertType.UPS, + message=f"UPS is overloaded!", + severity=alerts.Severity.CRITICAL + )) + elif IS_TESTING or status == UPSStatus.UPS_BYPASS: + alert_list.append(alerts.Alert( + alert_type=alerts.AlertType.UPS, + message=f"BYPASS MODE: Battery and connected devices are not protected from power outage!", + severity=alerts.Severity.WARNING + )) + elif IS_TESTING or status == UPSStatus.UPS_CALIBRATION: + alert_list.append(alerts.Alert( + alert_type=alerts.AlertType.UPS, + message=f"UPS is currently performing runtime calibration.", + severity=alerts.Severity.INFO + )) + elif IS_TESTING or status == UPSStatus.ON_BATTERY: + alert_list.append(alerts.Alert( + alert_type=alerts.AlertType.UPS, + message=f"UPS is on battery.\n{sensor.battery_charge_percentage}% ({timedelta(seconds=sensor.battery_runtime)}) remaining.", + severity=alerts.Severity.INFO + )) return alert_list diff --git a/misc/sensors.py b/misc/sensors.py index 6169d44..16e25e4 100644 --- a/misc/sensors.py +++ b/misc/sensors.py @@ -32,7 +32,7 @@ class RamSensor: @dataclass class UPSSensor: - ups_status: UPSStatus = None + ups_status: list[UPSStatus] = None battery_charge_percentage: int = None battery_warning_percentage: int = 20 battery_critical_percentage: int = 10 @@ -132,7 +132,7 @@ class Sensors: case "battery.runtime": sensor_data.battery_runtime = int(value) case "ups.status": - sensor_data.ups_status = UPSStatus(value) + sensor_data.ups_status = [UPSStatus(status) for status in value.split()] case _: ...