Fix Heat Index and Chill Index

Fixed computing Heat and Chill index in cases that outside senosor
battery is drained and station stop sending data for outside temp,
humidity and wind.
fix/index_computing
SchiZzA 2025-12-22 11:47:02 +01:00
parent 6edaec73d8
commit 743e62c6dd
No known key found for this signature in database
1 changed files with 19 additions and 6 deletions

View File

@ -218,15 +218,22 @@ def celsius_to_fahrenheit(celsius: float) -> float:
return celsius * 9.0 / 5.0 + 32 return celsius * 9.0 / 5.0 + 32
def heat_index(data: Any, convert: bool = False) -> float: def heat_index(data: Any, convert: bool = False) -> float | None:
"""Calculate heat index from temperature. """Calculate heat index from temperature.
data: dict with temperature and humidity data: dict with temperature and humidity
convert: bool, convert recieved data from Celsius to Fahrenheit convert: bool, convert recieved data from Celsius to Fahrenheit
""" """
temp = float(data[OUTSIDE_TEMP]) temp = data.get(OUTSIDE_TEMP, None)
rh = float(data[OUTSIDE_HUMIDITY]) rh = data.get(OUTSIDE_HUMIDITY, None)
if not temp or not rh:
return None
temp = float(temp)
rh = float(rh)
adjustment = None adjustment = None
if convert: if convert:
@ -256,15 +263,21 @@ def heat_index(data: Any, convert: bool = False) -> float:
return simple return simple
def chill_index(data: Any, convert: bool = False) -> float: def chill_index(data: Any, convert: bool = False) -> float | None:
"""Calculate wind chill index from temperature and wind speed. """Calculate wind chill index from temperature and wind speed.
data: dict with temperature and wind speed data: dict with temperature and wind speed
convert: bool, convert recieved data from Celsius to Fahrenheit convert: bool, convert recieved data from Celsius to Fahrenheit
""" """
temp = float(data[OUTSIDE_TEMP]) temp = data.get(OUTSIDE_TEMP, None)
wind = float(data[WIND_SPEED]) wind = data.get(WIND_SPEED, None)
if not temp or not wind:
return None
temp = float(temp)
wind = float(wind)
if convert: if convert:
temp = celsius_to_fahrenheit(temp) temp = celsius_to_fahrenheit(temp)