1 """Temperature helpers for Home Assistant."""
3 from __future__
import annotations
5 from numbers
import Number
13 hass: HomeAssistant, temperature: float |
None, unit: str, precision: float
15 """Convert temperature into preferred units/precision for display."""
16 temperature_unit = unit
17 ha_unit = hass.config.units.temperature_unit
19 if temperature
is None:
24 if not isinstance(temperature, Number):
25 raise TypeError(f
"Temperature is not a number: {temperature}")
27 if temperature_unit != ha_unit:
28 temperature = TemperatureConverter.converter_factory(temperature_unit, ha_unit)(
33 if precision == PRECISION_HALVES:
34 return round(temperature * 2) / 2.0
35 if precision == PRECISION_TENTHS:
36 return round(temperature, 1)
38 return round(temperature)
float|None display_temp(HomeAssistant hass, float|None temperature, str unit, float precision)