Remove deprecated temperature conversion of non sensors (#73222)

This commit is contained in:
Erik Montnemery 2022-06-08 20:47:47 +02:00 committed by GitHub
parent f7bd88c952
commit 921245a490
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 124 deletions

View file

@ -32,17 +32,8 @@ from homeassistant.const import (
STATE_ON,
STATE_UNAVAILABLE,
STATE_UNKNOWN,
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
)
from homeassistant.core import (
CALLBACK_TYPE,
Context,
Event,
HomeAssistant,
callback,
split_entity_id,
)
from homeassistant.core import CALLBACK_TYPE, Context, Event, HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError, NoEntitySpecifiedError
from homeassistant.loader import bind_hass
from homeassistant.util import dt as dt_util, ensure_unique_string, slugify
@ -259,9 +250,6 @@ class Entity(ABC):
# If we reported this entity is updated while disabled
_disabled_reported = False
# If we reported this entity is relying on deprecated temperature conversion
_temperature_reported = False
# Protect for multiple updates
_update_staged = False
@ -618,58 +606,6 @@ class Entity(ABC):
if DATA_CUSTOMIZE in self.hass.data:
attr.update(self.hass.data[DATA_CUSTOMIZE].get(self.entity_id))
def _convert_temperature(state: str, attr: dict[str, Any]) -> str:
# Convert temperature if we detect one
# pylint: disable-next=import-outside-toplevel
from homeassistant.components.sensor import SensorEntity
unit_of_measure = attr.get(ATTR_UNIT_OF_MEASUREMENT)
units = self.hass.config.units
if unit_of_measure == units.temperature_unit or unit_of_measure not in (
TEMP_CELSIUS,
TEMP_FAHRENHEIT,
):
return state
domain = split_entity_id(self.entity_id)[0]
if domain != "sensor":
if not self._temperature_reported:
self._temperature_reported = True
report_issue = self._suggest_report_issue()
_LOGGER.warning(
"Entity %s (%s) relies on automatic temperature conversion, this will "
"be unsupported in Home Assistant Core 2022.7. Please %s",
self.entity_id,
type(self),
report_issue,
)
elif not isinstance(self, SensorEntity):
if not self._temperature_reported:
self._temperature_reported = True
report_issue = self._suggest_report_issue()
_LOGGER.warning(
"Temperature sensor %s (%s) does not inherit SensorEntity, "
"this will be unsupported in Home Assistant Core 2022.7."
"Please %s",
self.entity_id,
type(self),
report_issue,
)
else:
return state
try:
prec = len(state) - state.index(".") - 1 if "." in state else 0
temp = units.temperature(float(state), unit_of_measure)
state = str(round(temp) if prec == 0 else round(temp, prec))
attr[ATTR_UNIT_OF_MEASUREMENT] = units.temperature_unit
except ValueError:
# Could not convert state to float
pass
return state
state = _convert_temperature(state, attr)
if (
self._context_set is not None
and dt_util.utcnow() - self._context_set > self.context_recent_time