Compare commits

..

2 Commits

Author SHA1 Message Date
FerronN 2b3788834c
Merge 68da7aad98 into 99d25bfd56 2025-08-17 16:34:19 +00:00
schizza 68da7aad98 Improves battery level representation
Refactors battery level representation by using enum instead of string.

Improves battery level display by adding an icon representation.

Changes const BATLEVEL to BATTERY_LEVEL.
2025-08-17 18:34:14 +02:00
1 changed files with 31 additions and 14 deletions

View File

@ -20,7 +20,7 @@ from homeassistant.helpers.translation import async_get_translations
from .const import ( from .const import (
AZIMUT, AZIMUT,
BATLEVEL, BATTERY_LEVEL,
DATABASE_PATH, DATABASE_PATH,
DEV_DBG, DEV_DBG,
OUTSIDE_HUMIDITY, OUTSIDE_HUMIDITY,
@ -30,6 +30,7 @@ from .const import (
SENSORS_TO_LOAD, SENSORS_TO_LOAD,
WIND_SPEED, WIND_SPEED,
UnitOfDir, UnitOfDir,
UnitOfBat,
) )
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -181,18 +182,32 @@ def wind_dir_to_text(deg: float) -> UnitOfDir | None:
return None return None
def battery_level_to_text(battery: int) -> str:
def battery_level_to_text(battery: int) -> UnitOfBat:
"""Return battery level in text representation. """Return battery level in text representation.
Returns UnitOfBat or None Returns UnitOfBat
""" """
if battery is None:
return "unknown"
if battery is 0: return {
return BATLEVEL[battery] 0: UnitOfBat.LOW,
elif battery is 1: 1: UnitOfBat.NORMAL,
return BATLEVEL[battery] }.get(battery, UnitOfBat.UNKNOWN)
def battery_level_to_icon(battery: UnitOfBat) -> str:
"""Return battery level in icon representation.
Returns str
"""
icons = {
UnitOfBat.LOW: "mdi:battery-alert",
UnitOfBat.NORMAL: "mdi:battery",
}
return icons.get(battery, "mdi:battery-unknown")
def fahrenheit_to_celsius(fahrenheit: float) -> float: def fahrenheit_to_celsius(fahrenheit: float) -> float:
"""Convert Fahrenheit to Celsius.""" """Convert Fahrenheit to Celsius."""
@ -280,10 +295,12 @@ def long_term_units_in_statistics_meta():
db = conn.cursor() db = conn.cursor()
try: try:
db.execute(""" db.execute(
"""
SELECT statistic_id, unit_of_measurement from statistics_meta SELECT statistic_id, unit_of_measurement from statistics_meta
WHERE statistic_id LIKE 'sensor.weather_station_sws%' WHERE statistic_id LIKE 'sensor.weather_station_sws%'
""") """
)
rows = db.fetchall() rows = db.fetchall()
sensor_units = { sensor_units = {
statistic_id: f"{statistic_id} ({unit})" for statistic_id, unit in rows statistic_id: f"{statistic_id} ({unit})" for statistic_id, unit in rows