fix status is not actually a single word

This commit is contained in:
saqriphnix 2024-08-17 11:58:13 +03:00
parent 3a02adde56
commit 66bc90da5c
2 changed files with 33 additions and 32 deletions

View file

@ -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.", message=f"Battery is under {sensor.battery_warning_percentage}%\n{sensor.battery_charge_percentage}% ({timedelta(seconds=sensor.battery_runtime)} remaining.",
severity=alerts.Severity.WARNING 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: for status in sensor.ups_status:
alert_list.append(alerts.Alert( if IS_TESTING or status == UPSStatus.BATTERY_REPLACE:
alert_type=alerts.AlertType.UPS, alert_list.append(alerts.Alert(
message=f"UPS battery needs to be replaced ASAP!", alert_type=alerts.AlertType.UPS,
severity=alerts.Severity.CRITICAL 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( elif IS_TESTING or status == UPSStatus.UPS_OVERLOAD:
alert_type=alerts.AlertType.UPS, alert_list.append(alerts.Alert(
message=f"UPS is overloaded!", alert_type=alerts.AlertType.UPS,
severity=alerts.Severity.CRITICAL message=f"UPS is overloaded!",
)) severity=alerts.Severity.CRITICAL
elif IS_TESTING or sensor.ups_status == UPSStatus.UPS_BYPASS: ))
alert_list.append(alerts.Alert( elif IS_TESTING or status == UPSStatus.UPS_BYPASS:
alert_type=alerts.AlertType.UPS, alert_list.append(alerts.Alert(
message=f"BYPASS MODE: Battery and connected devices are not protected from power outage!", alert_type=alerts.AlertType.UPS,
severity=alerts.Severity.WARNING 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( elif IS_TESTING or status == UPSStatus.UPS_CALIBRATION:
alert_type=alerts.AlertType.UPS, alert_list.append(alerts.Alert(
message=f"UPS is currently performing runtime calibration.", alert_type=alerts.AlertType.UPS,
severity=alerts.Severity.INFO 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 return alert_list

View file

@ -32,7 +32,7 @@ class RamSensor:
@dataclass @dataclass
class UPSSensor: class UPSSensor:
ups_status: UPSStatus = None ups_status: list[UPSStatus] = None
battery_charge_percentage: int = None battery_charge_percentage: int = None
battery_warning_percentage: int = 20 battery_warning_percentage: int = 20
battery_critical_percentage: int = 10 battery_critical_percentage: int = 10
@ -132,7 +132,7 @@ class Sensors:
case "battery.runtime": case "battery.runtime":
sensor_data.battery_runtime = int(value) sensor_data.battery_runtime = int(value)
case "ups.status": case "ups.status":
sensor_data.ups_status = UPSStatus(value) sensor_data.ups_status = [UPSStatus(status) for status in value.split()]
case _: case _:
... ...