From b0e46f425f9147d8117cd50a0c8c31ca0dafd39d Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Wed, 6 Sep 2023 21:50:48 +0200 Subject: [PATCH] Remove deprecated entities from OpenTherm Gateway (#99712) --- .../components/opentherm_gw/binary_sensor.py | 58 ---------- .../components/opentherm_gw/const.py | 103 ------------------ .../components/opentherm_gw/sensor.py | 67 +----------- 3 files changed, 1 insertion(+), 227 deletions(-) diff --git a/homeassistant/components/opentherm_gw/binary_sensor.py b/homeassistant/components/opentherm_gw/binary_sensor.py index 2501d00c2eb..7f2a05ddf03 100644 --- a/homeassistant/components/opentherm_gw/binary_sensor.py +++ b/homeassistant/components/opentherm_gw/binary_sensor.py @@ -1,12 +1,10 @@ """Support for OpenTherm Gateway binary sensors.""" import logging -from pprint import pformat from homeassistant.components.binary_sensor import ENTITY_ID_FORMAT, BinarySensorEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_ID from homeassistant.core import HomeAssistant, callback -from homeassistant.helpers import entity_registry as er from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity import async_generate_entity_id @@ -17,7 +15,6 @@ from .const import ( BINARY_SENSOR_INFO, DATA_GATEWAYS, DATA_OPENTHERM_GW, - DEPRECATED_BINARY_SENSOR_SOURCE_LOOKUP, TRANSLATE_SOURCE, ) @@ -31,9 +28,7 @@ async def async_setup_entry( ) -> None: """Set up the OpenTherm Gateway binary sensors.""" sensors = [] - deprecated_sensors = [] gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][config_entry.data[CONF_ID]] - ent_reg = er.async_get(hass) for var, info in BINARY_SENSOR_INFO.items(): device_class = info[0] friendly_name_format = info[1] @@ -50,36 +45,6 @@ async def async_setup_entry( ) ) - old_style_entity_id = async_generate_entity_id( - ENTITY_ID_FORMAT, f"{var}_{gw_dev.gw_id}", hass=gw_dev.hass - ) - old_ent = ent_reg.async_get(old_style_entity_id) - if old_ent and old_ent.config_entry_id == config_entry.entry_id: - if old_ent.disabled: - ent_reg.async_remove(old_style_entity_id) - else: - deprecated_sensors.append( - DeprecatedOpenThermBinarySensor( - gw_dev, - var, - device_class, - friendly_name_format, - ) - ) - - sensors.extend(deprecated_sensors) - - if deprecated_sensors: - _LOGGER.warning( - ( - "The following binary_sensor entities are deprecated and may " - "no longer behave as expected. They will be removed in a " - "future version. You can force removal of these entities by " - "disabling them and restarting Home Assistant.\n%s" - ), - pformat([s.entity_id for s in deprecated_sensors]), - ) - async_add_entities(sensors) @@ -166,26 +131,3 @@ class OpenThermBinarySensor(BinarySensorEntity): def device_class(self): """Return the class of this device.""" return self._device_class - - -class DeprecatedOpenThermBinarySensor(OpenThermBinarySensor): - """Represent a deprecated OpenTherm Gateway Binary Sensor.""" - - # pylint: disable=super-init-not-called - def __init__(self, gw_dev, var, device_class, friendly_name_format): - """Initialize the binary sensor.""" - self.entity_id = async_generate_entity_id( - ENTITY_ID_FORMAT, f"{var}_{gw_dev.gw_id}", hass=gw_dev.hass - ) - self._gateway = gw_dev - self._var = var - self._source = DEPRECATED_BINARY_SENSOR_SOURCE_LOOKUP[var] - self._state = None - self._device_class = device_class - self._friendly_name = friendly_name_format.format(gw_dev.name) - self._unsub_updates = None - - @property - def unique_id(self): - """Return a unique ID.""" - return f"{self._gateway.gw_id}-{self._var}" diff --git a/homeassistant/components/opentherm_gw/const.py b/homeassistant/components/opentherm_gw/const.py index 1532b787740..a6c75c17113 100644 --- a/homeassistant/components/opentherm_gw/const.py +++ b/homeassistant/components/opentherm_gw/const.py @@ -535,106 +535,3 @@ SENSOR_INFO: dict[str, list] = { [gw_vars.OTGW], ], } - -DEPRECATED_BINARY_SENSOR_SOURCE_LOOKUP = { - gw_vars.DATA_MASTER_CH_ENABLED: gw_vars.THERMOSTAT, - gw_vars.DATA_MASTER_DHW_ENABLED: gw_vars.THERMOSTAT, - gw_vars.DATA_MASTER_OTC_ENABLED: gw_vars.THERMOSTAT, - gw_vars.DATA_MASTER_CH2_ENABLED: gw_vars.THERMOSTAT, - gw_vars.DATA_SLAVE_FAULT_IND: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CH_ACTIVE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DHW_ACTIVE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_FLAME_ON: gw_vars.BOILER, - gw_vars.DATA_SLAVE_COOLING_ACTIVE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CH2_ACTIVE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DIAG_IND: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DHW_PRESENT: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CONTROL_TYPE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_COOLING_SUPPORTED: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DHW_CONFIG: gw_vars.BOILER, - gw_vars.DATA_SLAVE_MASTER_LOW_OFF_PUMP: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CH2_PRESENT: gw_vars.BOILER, - gw_vars.DATA_SLAVE_SERVICE_REQ: gw_vars.BOILER, - gw_vars.DATA_SLAVE_REMOTE_RESET: gw_vars.BOILER, - gw_vars.DATA_SLAVE_LOW_WATER_PRESS: gw_vars.BOILER, - gw_vars.DATA_SLAVE_GAS_FAULT: gw_vars.BOILER, - gw_vars.DATA_SLAVE_AIR_PRESS_FAULT: gw_vars.BOILER, - gw_vars.DATA_SLAVE_WATER_OVERTEMP: gw_vars.BOILER, - gw_vars.DATA_REMOTE_TRANSFER_DHW: gw_vars.BOILER, - gw_vars.DATA_REMOTE_TRANSFER_MAX_CH: gw_vars.BOILER, - gw_vars.DATA_REMOTE_RW_DHW: gw_vars.BOILER, - gw_vars.DATA_REMOTE_RW_MAX_CH: gw_vars.BOILER, - gw_vars.DATA_ROVRD_MAN_PRIO: gw_vars.THERMOSTAT, - gw_vars.DATA_ROVRD_AUTO_PRIO: gw_vars.THERMOSTAT, - gw_vars.OTGW_GPIO_A_STATE: gw_vars.OTGW, - gw_vars.OTGW_GPIO_B_STATE: gw_vars.OTGW, - gw_vars.OTGW_IGNORE_TRANSITIONS: gw_vars.OTGW, - gw_vars.OTGW_OVRD_HB: gw_vars.OTGW, -} - -DEPRECATED_SENSOR_SOURCE_LOOKUP = { - gw_vars.DATA_CONTROL_SETPOINT: gw_vars.BOILER, - gw_vars.DATA_MASTER_MEMBERID: gw_vars.THERMOSTAT, - gw_vars.DATA_SLAVE_MEMBERID: gw_vars.BOILER, - gw_vars.DATA_SLAVE_OEM_FAULT: gw_vars.BOILER, - gw_vars.DATA_COOLING_CONTROL: gw_vars.BOILER, - gw_vars.DATA_CONTROL_SETPOINT_2: gw_vars.BOILER, - gw_vars.DATA_ROOM_SETPOINT_OVRD: gw_vars.THERMOSTAT, - gw_vars.DATA_SLAVE_MAX_RELATIVE_MOD: gw_vars.BOILER, - gw_vars.DATA_SLAVE_MAX_CAPACITY: gw_vars.BOILER, - gw_vars.DATA_SLAVE_MIN_MOD_LEVEL: gw_vars.BOILER, - gw_vars.DATA_ROOM_SETPOINT: gw_vars.THERMOSTAT, - gw_vars.DATA_REL_MOD_LEVEL: gw_vars.BOILER, - gw_vars.DATA_CH_WATER_PRESS: gw_vars.BOILER, - gw_vars.DATA_DHW_FLOW_RATE: gw_vars.BOILER, - gw_vars.DATA_ROOM_SETPOINT_2: gw_vars.THERMOSTAT, - gw_vars.DATA_ROOM_TEMP: gw_vars.THERMOSTAT, - gw_vars.DATA_CH_WATER_TEMP: gw_vars.BOILER, - gw_vars.DATA_DHW_TEMP: gw_vars.BOILER, - gw_vars.DATA_OUTSIDE_TEMP: gw_vars.THERMOSTAT, - gw_vars.DATA_RETURN_WATER_TEMP: gw_vars.BOILER, - gw_vars.DATA_SOLAR_STORAGE_TEMP: gw_vars.BOILER, - gw_vars.DATA_SOLAR_COLL_TEMP: gw_vars.BOILER, - gw_vars.DATA_CH_WATER_TEMP_2: gw_vars.BOILER, - gw_vars.DATA_DHW_TEMP_2: gw_vars.BOILER, - gw_vars.DATA_EXHAUST_TEMP: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DHW_MAX_SETP: gw_vars.BOILER, - gw_vars.DATA_SLAVE_DHW_MIN_SETP: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CH_MAX_SETP: gw_vars.BOILER, - gw_vars.DATA_SLAVE_CH_MIN_SETP: gw_vars.BOILER, - gw_vars.DATA_DHW_SETPOINT: gw_vars.BOILER, - gw_vars.DATA_MAX_CH_SETPOINT: gw_vars.BOILER, - gw_vars.DATA_OEM_DIAG: gw_vars.BOILER, - gw_vars.DATA_TOTAL_BURNER_STARTS: gw_vars.BOILER, - gw_vars.DATA_CH_PUMP_STARTS: gw_vars.BOILER, - gw_vars.DATA_DHW_PUMP_STARTS: gw_vars.BOILER, - gw_vars.DATA_DHW_BURNER_STARTS: gw_vars.BOILER, - gw_vars.DATA_TOTAL_BURNER_HOURS: gw_vars.BOILER, - gw_vars.DATA_CH_PUMP_HOURS: gw_vars.BOILER, - gw_vars.DATA_DHW_PUMP_HOURS: gw_vars.BOILER, - gw_vars.DATA_DHW_BURNER_HOURS: gw_vars.BOILER, - gw_vars.DATA_MASTER_OT_VERSION: gw_vars.THERMOSTAT, - gw_vars.DATA_SLAVE_OT_VERSION: gw_vars.BOILER, - gw_vars.DATA_MASTER_PRODUCT_TYPE: gw_vars.THERMOSTAT, - gw_vars.DATA_MASTER_PRODUCT_VERSION: gw_vars.THERMOSTAT, - gw_vars.DATA_SLAVE_PRODUCT_TYPE: gw_vars.BOILER, - gw_vars.DATA_SLAVE_PRODUCT_VERSION: gw_vars.BOILER, - gw_vars.OTGW_MODE: gw_vars.OTGW, - gw_vars.OTGW_DHW_OVRD: gw_vars.OTGW, - gw_vars.OTGW_ABOUT: gw_vars.OTGW, - gw_vars.OTGW_BUILD: gw_vars.OTGW, - gw_vars.OTGW_CLOCKMHZ: gw_vars.OTGW, - gw_vars.OTGW_LED_A: gw_vars.OTGW, - gw_vars.OTGW_LED_B: gw_vars.OTGW, - gw_vars.OTGW_LED_C: gw_vars.OTGW, - gw_vars.OTGW_LED_D: gw_vars.OTGW, - gw_vars.OTGW_LED_E: gw_vars.OTGW, - gw_vars.OTGW_LED_F: gw_vars.OTGW, - gw_vars.OTGW_GPIO_A: gw_vars.OTGW, - gw_vars.OTGW_GPIO_B: gw_vars.OTGW, - gw_vars.OTGW_SB_TEMP: gw_vars.OTGW, - gw_vars.OTGW_SETP_OVRD_MODE: gw_vars.OTGW, - gw_vars.OTGW_SMART_PWR: gw_vars.OTGW, - gw_vars.OTGW_THRM_DETECT: gw_vars.OTGW, - gw_vars.OTGW_VREF: gw_vars.OTGW, -} diff --git a/homeassistant/components/opentherm_gw/sensor.py b/homeassistant/components/opentherm_gw/sensor.py index b219969e71a..df9260d7d19 100644 --- a/homeassistant/components/opentherm_gw/sensor.py +++ b/homeassistant/components/opentherm_gw/sensor.py @@ -1,25 +1,17 @@ """Support for OpenTherm Gateway sensors.""" import logging -from pprint import pformat from homeassistant.components.sensor import ENTITY_ID_FORMAT, SensorEntity from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_ID from homeassistant.core import HomeAssistant, callback -from homeassistant.helpers import entity_registry as er from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity import async_generate_entity_id from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import DOMAIN -from .const import ( - DATA_GATEWAYS, - DATA_OPENTHERM_GW, - DEPRECATED_SENSOR_SOURCE_LOOKUP, - SENSOR_INFO, - TRANSLATE_SOURCE, -) +from .const import DATA_GATEWAYS, DATA_OPENTHERM_GW, SENSOR_INFO, TRANSLATE_SOURCE _LOGGER = logging.getLogger(__name__) @@ -31,9 +23,7 @@ async def async_setup_entry( ) -> None: """Set up the OpenTherm Gateway sensors.""" sensors = [] - deprecated_sensors = [] gw_dev = hass.data[DATA_OPENTHERM_GW][DATA_GATEWAYS][config_entry.data[CONF_ID]] - ent_reg = er.async_get(hass) for var, info in SENSOR_INFO.items(): device_class = info[0] unit = info[1] @@ -52,37 +42,6 @@ async def async_setup_entry( ) ) - old_style_entity_id = async_generate_entity_id( - ENTITY_ID_FORMAT, f"{var}_{gw_dev.gw_id}", hass=gw_dev.hass - ) - old_ent = ent_reg.async_get(old_style_entity_id) - if old_ent and old_ent.config_entry_id == config_entry.entry_id: - if old_ent.disabled: - ent_reg.async_remove(old_style_entity_id) - else: - deprecated_sensors.append( - DeprecatedOpenThermSensor( - gw_dev, - var, - device_class, - unit, - friendly_name_format, - ) - ) - - sensors.extend(deprecated_sensors) - - if deprecated_sensors: - _LOGGER.warning( - ( - "The following sensor entities are deprecated and may no " - "longer behave as expected. They will be removed in a future " - "version. You can force removal of these entities by disabling " - "them and restarting Home Assistant.\n%s" - ), - pformat([s.entity_id for s in deprecated_sensors]), - ) - async_add_entities(sensors) @@ -175,27 +134,3 @@ class OpenThermSensor(SensorEntity): def native_unit_of_measurement(self): """Return the unit of measurement.""" return self._unit - - -class DeprecatedOpenThermSensor(OpenThermSensor): - """Represent a deprecated OpenTherm Gateway Sensor.""" - - # pylint: disable=super-init-not-called - def __init__(self, gw_dev, var, device_class, unit, friendly_name_format): - """Initialize the OpenTherm Gateway sensor.""" - self.entity_id = async_generate_entity_id( - ENTITY_ID_FORMAT, f"{var}_{gw_dev.gw_id}", hass=gw_dev.hass - ) - self._gateway = gw_dev - self._var = var - self._source = DEPRECATED_SENSOR_SOURCE_LOOKUP[var] - self._value = None - self._device_class = device_class - self._unit = unit - self._friendly_name = friendly_name_format.format(gw_dev.name) - self._unsub_updates = None - - @property - def unique_id(self): - """Return a unique ID.""" - return f"{self._gateway.gw_id}-{self._var}"