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.",
severity=alerts.Severity.WARNING
))
elif IS_TESTING or sensor.ups_status == UPSStatus.ON_BATTERY:
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
))
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
))
return alert_list

View file

@ -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 _:
...