diff --git a/homeassistant/components/ambiclimate/climate.py b/homeassistant/components/ambiclimate/climate.py index a8ed166903e6b0..cb19d1329caaf4 100644 --- a/homeassistant/components/ambiclimate/climate.py +++ b/homeassistant/components/ambiclimate/climate.py @@ -5,7 +5,7 @@ import ambiclimate import voluptuous as vol -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT, HVAC_MODE_OFF, @@ -130,7 +130,7 @@ async def set_temperature_mode(service): ) -class AmbiclimateEntity(ClimateDevice): +class AmbiclimateEntity(ClimateEntity): """Representation of a Ambiclimate Thermostat device.""" def __init__(self, heater, store): diff --git a/homeassistant/components/climate/__init__.py b/homeassistant/components/climate/__init__.py index f3aff44ff4d1b1..d3241791cf2437 100644 --- a/homeassistant/components/climate/__init__.py +++ b/homeassistant/components/climate/__init__.py @@ -101,7 +101,7 @@ async def async_setup(hass: HomeAssistantType, config: ConfigType) -> bool: - """Set up climate devices.""" + """Set up climate entities.""" component = hass.data[DOMAIN] = EntityComponent( _LOGGER, DOMAIN, hass, SCAN_INTERVAL ) @@ -156,8 +156,8 @@ async def async_unload_entry(hass: HomeAssistantType, entry): return await hass.data[DOMAIN].async_unload_entry(entry) -class ClimateDevice(Entity): - """Representation of a climate device.""" +class ClimateEntity(Entity): + """Representation of a climate entity.""" @property def state(self) -> str: @@ -509,7 +509,7 @@ def max_humidity(self) -> int: async def async_service_aux_heat( - entity: ClimateDevice, service: ServiceDataType + entity: ClimateEntity, service: ServiceDataType ) -> None: """Handle aux heat service.""" if service.data[ATTR_AUX_HEAT]: @@ -519,7 +519,7 @@ async def async_service_aux_heat( async def async_service_temperature_set( - entity: ClimateDevice, service: ServiceDataType + entity: ClimateEntity, service: ServiceDataType ) -> None: """Handle set temperature service.""" hass = entity.hass @@ -534,3 +534,15 @@ async def async_service_temperature_set( kwargs[value] = temp await entity.async_set_temperature(**kwargs) + + +class ClimateDevice(ClimateEntity): + """Representation of a climate entity (for backwards compatibility).""" + + def __init_subclass__(cls, **kwargs): + """Print deprecation warning.""" + super().__init_subclass__(**kwargs) + _LOGGER.warning( + "ClimateDevice is deprecated, modify %s to extend ClimateEntity", + cls.__name__, + ) diff --git a/homeassistant/components/coolmaster/climate.py b/homeassistant/components/coolmaster/climate.py index a52431dd89be22..6e68e858a6d420 100644 --- a/homeassistant/components/coolmaster/climate.py +++ b/homeassistant/components/coolmaster/climate.py @@ -4,7 +4,7 @@ from pycoolmasternet import CoolMasterNet -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_COOL, HVAC_MODE_DRY, @@ -60,7 +60,7 @@ async def async_setup_entry(hass, config_entry, async_add_devices): async_add_devices(all_devices, True) -class CoolmasterClimate(ClimateDevice): +class CoolmasterClimate(ClimateEntity): """Representation of a coolmaster climate device.""" def __init__(self, device, supported_modes): diff --git a/homeassistant/components/daikin/climate.py b/homeassistant/components/daikin/climate.py index 5455bd6f670fb8..ebf909dcbdac85 100644 --- a/homeassistant/components/daikin/climate.py +++ b/homeassistant/components/daikin/climate.py @@ -4,7 +4,7 @@ from pydaikin import appliance import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_FAN_MODE, ATTR_HVAC_MODE, @@ -86,7 +86,7 @@ async def async_setup_entry(hass, entry, async_add_entities): async_add_entities([DaikinClimate(daikin_api)], update_before_add=True) -class DaikinClimate(ClimateDevice): +class DaikinClimate(ClimateEntity): """Representation of a Daikin HVAC.""" def __init__(self, api): diff --git a/homeassistant/components/deconz/climate.py b/homeassistant/components/deconz/climate.py index 7b0f44807ec441..424693505ca47f 100644 --- a/homeassistant/components/deconz/climate.py +++ b/homeassistant/components/deconz/climate.py @@ -1,7 +1,7 @@ """Support for deCONZ climate devices.""" from pydeconz.sensor import Thermostat -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_HEAT, @@ -58,7 +58,7 @@ def async_add_climate(sensors, new=True): async_add_climate(gateway.api.sensors.values()) -class DeconzThermostat(DeconzDevice, ClimateDevice): +class DeconzThermostat(DeconzDevice, ClimateEntity): """Representation of a deCONZ thermostat.""" @property diff --git a/homeassistant/components/demo/climate.py b/homeassistant/components/demo/climate.py index 0edcf618ba6346..9733d0f1147651 100644 --- a/homeassistant/components/demo/climate.py +++ b/homeassistant/components/demo/climate.py @@ -1,7 +1,7 @@ """Demo platform that offers a fake climate device.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -97,7 +97,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): await async_setup_platform(hass, {}, async_add_entities) -class DemoClimate(ClimateDevice): +class DemoClimate(ClimateEntity): """Representation of a demo climate device.""" def __init__( diff --git a/homeassistant/components/dyson/climate.py b/homeassistant/components/dyson/climate.py index f4e23b016226f5..6b2d7cbe74ccfc 100644 --- a/homeassistant/components/dyson/climate.py +++ b/homeassistant/components/dyson/climate.py @@ -5,7 +5,7 @@ from libpurecool.dyson_pure_hotcool_link import DysonPureHotCoolLink from libpurecool.dyson_pure_state import DysonPureHotCoolState -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT, @@ -43,7 +43,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): ) -class DysonPureHotCoolLinkDevice(ClimateDevice): +class DysonPureHotCoolLinkDevice(ClimateEntity): """Representation of a Dyson climate fan.""" def __init__(self, device): diff --git a/homeassistant/components/ecobee/climate.py b/homeassistant/components/ecobee/climate.py index 89f464452f8503..c956308ab8eea8 100644 --- a/homeassistant/components/ecobee/climate.py +++ b/homeassistant/components/ecobee/climate.py @@ -4,7 +4,7 @@ import voluptuous as vol -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -249,7 +249,7 @@ def resume_program_set_service(service): ) -class Thermostat(ClimateDevice): +class Thermostat(ClimateEntity): """A thermostat class for Ecobee.""" def __init__(self, data, thermostat_index): diff --git a/homeassistant/components/elkm1/climate.py b/homeassistant/components/elkm1/climate.py index baaf3d44eb2e37..6d10df45adfd77 100644 --- a/homeassistant/components/elkm1/climate.py +++ b/homeassistant/components/elkm1/climate.py @@ -1,7 +1,7 @@ """Support for control of Elk-M1 connected thermostats.""" from elkm1_lib.const import ThermostatFan, ThermostatMode, ThermostatSetting -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -39,7 +39,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities, True) -class ElkThermostat(ElkEntity, ClimateDevice): +class ElkThermostat(ElkEntity, ClimateEntity): """Representation of an Elk-M1 Thermostat.""" def __init__(self, element, elk, elk_data): diff --git a/homeassistant/components/ephember/climate.py b/homeassistant/components/ephember/climate.py index d743f3e82babd9..787677a66054e2 100644 --- a/homeassistant/components/ephember/climate.py +++ b/homeassistant/components/ephember/climate.py @@ -15,7 +15,7 @@ ) import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -70,7 +70,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): return -class EphEmberThermostat(ClimateDevice): +class EphEmberThermostat(ClimateEntity): """Representation of a EphEmber thermostat.""" def __init__(self, ember, zone): diff --git a/homeassistant/components/eq3btsmart/climate.py b/homeassistant/components/eq3btsmart/climate.py index d0b60c74443da1..402dfc684b38e9 100644 --- a/homeassistant/components/eq3btsmart/climate.py +++ b/homeassistant/components/eq3btsmart/climate.py @@ -6,7 +6,7 @@ import eq3bt as eq3 # pylint: disable=import-error import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_HEAT, @@ -76,7 +76,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class EQ3BTSmartThermostat(ClimateDevice): +class EQ3BTSmartThermostat(ClimateEntity): """Representation of an eQ-3 Bluetooth Smart thermostat.""" def __init__(self, _mac, _name): diff --git a/homeassistant/components/esphome/climate.py b/homeassistant/components/esphome/climate.py index 960366a8332e76..46ed214afba4cb 100644 --- a/homeassistant/components/esphome/climate.py +++ b/homeassistant/components/esphome/climate.py @@ -11,7 +11,7 @@ ClimateSwingMode, ) -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH, @@ -75,7 +75,7 @@ async def async_setup_entry(hass, entry, async_add_entities): async_add_entities, component_key="climate", info_type=ClimateInfo, - entity_type=EsphomeClimateDevice, + entity_type=EsphomeClimateEntity, state_type=ClimateState, ) @@ -129,7 +129,7 @@ def _swing_modes(): } -class EsphomeClimateDevice(EsphomeEntity, ClimateDevice): +class EsphomeClimateEntity(EsphomeEntity, ClimateEntity): """A climate implementation for ESPHome.""" @property diff --git a/homeassistant/components/evohome/climate.py b/homeassistant/components/evohome/climate.py index b7899afdd7bdea..c6edb4aa1dc888 100644 --- a/homeassistant/components/evohome/climate.py +++ b/homeassistant/components/evohome/climate.py @@ -3,7 +3,7 @@ import logging from typing import List, Optional -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -122,7 +122,7 @@ async def async_setup_platform( async_add_entities([controller] + zones, update_before_add=True) -class EvoClimateDevice(EvoDevice, ClimateDevice): +class EvoClimateEntity(EvoDevice, ClimateEntity): """Base for an evohome Climate device.""" def __init__(self, evo_broker, evo_device) -> None: @@ -142,7 +142,7 @@ def preset_modes(self) -> Optional[List[str]]: return self._preset_modes -class EvoZone(EvoChild, EvoClimateDevice): +class EvoZone(EvoChild, EvoClimateEntity): """Base for a Honeywell TCC Zone.""" def __init__(self, evo_broker, evo_device) -> None: @@ -315,7 +315,7 @@ async def async_update(self) -> None: self._device_state_attrs[attr] = getattr(self._evo_device, attr) -class EvoController(EvoClimateDevice): +class EvoController(EvoClimateEntity): """Base for a Honeywell TCC Controller/Location. The Controller (aka TCS, temperature control system) is the parent of all the child diff --git a/homeassistant/components/fibaro/climate.py b/homeassistant/components/fibaro/climate.py index 71be289e27b3c2..191185c4a2a6cd 100644 --- a/homeassistant/components/fibaro/climate.py +++ b/homeassistant/components/fibaro/climate.py @@ -1,7 +1,7 @@ """Support for Fibaro thermostats.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_COOL, @@ -104,7 +104,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class FibaroThermostat(FibaroDevice, ClimateDevice): +class FibaroThermostat(FibaroDevice, ClimateEntity): """Representation of a Fibaro Thermostat.""" def __init__(self, fibaro_device): diff --git a/homeassistant/components/flexit/climate.py b/homeassistant/components/flexit/climate.py index 68e13abf8d1d2f..450d09edeb8af9 100644 --- a/homeassistant/components/flexit/climate.py +++ b/homeassistant/components/flexit/climate.py @@ -5,7 +5,7 @@ from pyflexit.pyflexit import pyflexit import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_COOL, SUPPORT_FAN_MODE, @@ -42,7 +42,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([Flexit(hub, modbus_slave, name)], True) -class Flexit(ClimateDevice): +class Flexit(ClimateEntity): """Representation of a Flexit AC unit.""" def __init__(self, hub, modbus_slave, name): diff --git a/homeassistant/components/fritzbox/climate.py b/homeassistant/components/fritzbox/climate.py index 1c95d918ab86cf..4abe82776a9cca 100644 --- a/homeassistant/components/fritzbox/climate.py +++ b/homeassistant/components/fritzbox/climate.py @@ -1,7 +1,7 @@ """Support for AVM Fritz!Box smarthome thermostate devices.""" import requests -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, HVAC_MODE_HEAT, @@ -61,7 +61,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities) -class FritzboxThermostat(ClimateDevice): +class FritzboxThermostat(ClimateEntity): """The thermostat class for Fritzbox smarthome thermostates.""" def __init__(self, device, fritz): diff --git a/homeassistant/components/generic_thermostat/climate.py b/homeassistant/components/generic_thermostat/climate.py index 9a8d6177214861..396d347c3c9dbb 100644 --- a/homeassistant/components/generic_thermostat/climate.py +++ b/homeassistant/components/generic_thermostat/climate.py @@ -4,7 +4,7 @@ import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_PRESET_MODE, CURRENT_HVAC_COOL, @@ -127,7 +127,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= ) -class GenericThermostat(ClimateDevice, RestoreEntity): +class GenericThermostat(ClimateEntity, RestoreEntity): """Representation of a Generic Thermostat device.""" def __init__( diff --git a/homeassistant/components/geniushub/climate.py b/homeassistant/components/geniushub/climate.py index 2221b8706c855c..70d08dc2d1fa69 100644 --- a/homeassistant/components/geniushub/climate.py +++ b/homeassistant/components/geniushub/climate.py @@ -1,7 +1,7 @@ """Support for Genius Hub climate devices.""" from typing import List, Optional -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -45,7 +45,7 @@ async def async_setup_platform( ) -class GeniusClimateZone(GeniusHeatingZone, ClimateDevice): +class GeniusClimateZone(GeniusHeatingZone, ClimateEntity): """Representation of a Genius Hub climate device.""" def __init__(self, broker, zone) -> None: diff --git a/homeassistant/components/heatmiser/climate.py b/homeassistant/components/heatmiser/climate.py index 553ae8f4bc3b83..b3f3363818c3be 100644 --- a/homeassistant/components/heatmiser/climate.py +++ b/homeassistant/components/heatmiser/climate.py @@ -9,7 +9,7 @@ HVAC_MODE_HEAT, HVAC_MODE_OFF, PLATFORM_SCHEMA, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import SUPPORT_TARGET_TEMPERATURE from homeassistant.const import ( @@ -64,7 +64,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class HeatmiserV3Thermostat(ClimateDevice): +class HeatmiserV3Thermostat(ClimateEntity): """Representation of a HeatmiserV3 thermostat.""" def __init__(self, therm, device, uh1): diff --git a/homeassistant/components/hisense_aehw4a1/climate.py b/homeassistant/components/hisense_aehw4a1/climate.py index da18419c2642f4..23a3a0c1416d40 100644 --- a/homeassistant/components/hisense_aehw4a1/climate.py +++ b/homeassistant/components/hisense_aehw4a1/climate.py @@ -5,7 +5,7 @@ from pyaehw4a1.aehw4a1 import AehW4a1 import pyaehw4a1.exceptions -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( FAN_AUTO, FAN_HIGH, @@ -144,7 +144,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities, True) -class ClimateAehW4a1(ClimateDevice): +class ClimateAehW4a1(ClimateEntity): """Representation of a Hisense AEH-W4A1 module for climate device.""" def __init__(self, device): diff --git a/homeassistant/components/hive/climate.py b/homeassistant/components/hive/climate.py index 202cea7bf8e477..33c8fed4ecad41 100644 --- a/homeassistant/components/hive/climate.py +++ b/homeassistant/components/hive/climate.py @@ -1,5 +1,5 @@ """Support for the Hive climate devices.""" -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -51,7 +51,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devs) -class HiveClimateEntity(HiveEntity, ClimateDevice): +class HiveClimateEntity(HiveEntity, ClimateEntity): """Hive Climate Device.""" def __init__(self, hive_session, hive_device): diff --git a/homeassistant/components/homekit_controller/climate.py b/homeassistant/components/homekit_controller/climate.py index 2262fa54770629..f06063c5fd2467 100644 --- a/homeassistant/components/homekit_controller/climate.py +++ b/homeassistant/components/homekit_controller/climate.py @@ -11,7 +11,7 @@ from homeassistant.components.climate import ( DEFAULT_MAX_HUMIDITY, DEFAULT_MIN_HUMIDITY, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import ( CURRENT_HVAC_COOL, @@ -59,13 +59,13 @@ def async_add_service(aid, service): if service["stype"] != "thermostat": return False info = {"aid": aid, "iid": service["iid"]} - async_add_entities([HomeKitClimateDevice(conn, info)], True) + async_add_entities([HomeKitClimateEntity(conn, info)], True) return True conn.add_listener(async_add_service) -class HomeKitClimateDevice(HomeKitEntity, ClimateDevice): +class HomeKitClimateEntity(HomeKitEntity, ClimateEntity): """Representation of a Homekit climate device.""" def get_characteristic_types(self): diff --git a/homeassistant/components/homematic/climate.py b/homeassistant/components/homematic/climate.py index b4ab277a75be87..243e1782a370af 100644 --- a/homeassistant/components/homematic/climate.py +++ b/homeassistant/components/homematic/climate.py @@ -1,7 +1,7 @@ """Support for Homematic thermostats.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_HEAT, @@ -48,7 +48,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class HMThermostat(HMDevice, ClimateDevice): +class HMThermostat(HMDevice, ClimateEntity): """Representation of a Homematic thermostat.""" @property diff --git a/homeassistant/components/homematicip_cloud/climate.py b/homeassistant/components/homematicip_cloud/climate.py index c5fb978e690f1c..3d01f5d69fd313 100644 --- a/homeassistant/components/homematicip_cloud/climate.py +++ b/homeassistant/components/homematicip_cloud/climate.py @@ -8,7 +8,7 @@ from homematicip.device import Switch from homematicip.functionalHomes import IndoorClimateHome -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -57,7 +57,7 @@ async def async_setup_entry( async_add_entities(entities) -class HomematicipHeatingGroup(HomematicipGenericDevice, ClimateDevice): +class HomematicipHeatingGroup(HomematicipGenericDevice, ClimateEntity): """Representation of a HomematicIP heating group. Heat mode is supported for all heating devices incl. their defined profiles. diff --git a/homeassistant/components/honeywell/climate.py b/homeassistant/components/honeywell/climate.py index ece8257a713184..5969dcdcc2793e 100644 --- a/homeassistant/components/honeywell/climate.py +++ b/homeassistant/components/honeywell/climate.py @@ -7,7 +7,7 @@ import somecomfort import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -145,7 +145,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class HoneywellUSThermostat(ClimateDevice): +class HoneywellUSThermostat(ClimateEntity): """Representation of a Honeywell US Thermostat.""" def __init__( diff --git a/homeassistant/components/iaqualink/climate.py b/homeassistant/components/iaqualink/climate.py index 36f3303774af2a..2c26b2bc363072 100644 --- a/homeassistant/components/iaqualink/climate.py +++ b/homeassistant/components/iaqualink/climate.py @@ -10,7 +10,7 @@ AQUALINK_TEMP_FAHRENHEIT_LOW, ) -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( DOMAIN, HVAC_MODE_HEAT, @@ -39,7 +39,7 @@ async def async_setup_entry( async_add_entities(devs, True) -class HassAqualinkThermostat(AqualinkEntity, ClimateDevice): +class HassAqualinkThermostat(AqualinkEntity, ClimateEntity): """Representation of a thermostat.""" @property diff --git a/homeassistant/components/incomfort/climate.py b/homeassistant/components/incomfort/climate.py index 464ff98994101e..274308efe064c1 100644 --- a/homeassistant/components/incomfort/climate.py +++ b/homeassistant/components/incomfort/climate.py @@ -1,7 +1,7 @@ """Support for an Intergas boiler via an InComfort/InTouch Lan2RF gateway.""" from typing import Any, Dict, List, Optional -from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN, ClimateDevice +from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT, SUPPORT_TARGET_TEMPERATURE, @@ -24,7 +24,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= ) -class InComfortClimate(IncomfortChild, ClimateDevice): +class InComfortClimate(IncomfortChild, ClimateEntity): """Representation of an InComfort/InTouch climate device.""" def __init__(self, client, heater, room) -> None: diff --git a/homeassistant/components/intesishome/climate.py b/homeassistant/components/intesishome/climate.py index a3a06a52c9c94b..ecd00bde986ddd 100644 --- a/homeassistant/components/intesishome/climate.py +++ b/homeassistant/components/intesishome/climate.py @@ -5,7 +5,7 @@ from pyintesishome import IHAuthenticationError, IHConnectionError, IntesisHome import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, HVAC_MODE_COOL, @@ -129,7 +129,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= await controller.stop() -class IntesisAC(ClimateDevice): +class IntesisAC(ClimateEntity): """Represents an Intesishome air conditioning device.""" def __init__(self, ih_device_id, ih_device, controller): diff --git a/homeassistant/components/izone/climate.py b/homeassistant/components/izone/climate.py index b17313925a8f73..69c005b345becd 100644 --- a/homeassistant/components/izone/climate.py +++ b/homeassistant/components/izone/climate.py @@ -4,7 +4,7 @@ from pizone import Controller, Zone -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( FAN_AUTO, FAN_HIGH, @@ -100,7 +100,7 @@ def wrapped_f(*args, **kwargs): return wrap -class ControllerDevice(ClimateDevice): +class ControllerDevice(ClimateEntity): """Representation of iZone Controller.""" def __init__(self, controller: Controller) -> None: @@ -399,7 +399,7 @@ async def async_turn_on(self) -> None: await self.wrap_and_catch(self._controller.set_on(True)) -class ZoneDevice(ClimateDevice): +class ZoneDevice(ClimateEntity): """Representation of iZone Zone.""" def __init__(self, controller: ControllerDevice, zone: Zone) -> None: diff --git a/homeassistant/components/knx/climate.py b/homeassistant/components/knx/climate.py index ab590540543f1a..a3d5ac046a4076 100644 --- a/homeassistant/components/knx/climate.py +++ b/homeassistant/components/knx/climate.py @@ -5,7 +5,7 @@ from xknx.devices import Climate as XknxClimate, ClimateMode as XknxClimateMode from xknx.knx import HVACOperationMode -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_COOL, @@ -192,7 +192,7 @@ def async_add_entities_config(hass, config, async_add_entities): async_add_entities([KNXClimate(climate)]) -class KNXClimate(ClimateDevice): +class KNXClimate(ClimateEntity): """Representation of a KNX climate device.""" def __init__(self, device): diff --git a/homeassistant/components/lcn/climate.py b/homeassistant/components/lcn/climate.py index 12fff2f479b8ae..9634dcf8fb375b 100644 --- a/homeassistant/components/lcn/climate.py +++ b/homeassistant/components/lcn/climate.py @@ -2,7 +2,7 @@ import pypck -from homeassistant.components.climate import ClimateDevice, const +from homeassistant.components.climate import ClimateEntity, const from homeassistant.const import ATTR_TEMPERATURE, CONF_ADDRESS, CONF_UNIT_OF_MEASUREMENT from . import LcnDevice @@ -38,7 +38,7 @@ async def async_setup_platform( async_add_entities(devices) -class LcnClimate(LcnDevice, ClimateDevice): +class LcnClimate(LcnDevice, ClimateEntity): """Representation of a LCN climate device.""" def __init__(self, config, address_connection): diff --git a/homeassistant/components/lightwave/climate.py b/homeassistant/components/lightwave/climate.py index 8e842624b16fd1..0518e91dda992b 100644 --- a/homeassistant/components/lightwave/climate.py +++ b/homeassistant/components/lightwave/climate.py @@ -5,7 +5,7 @@ HVAC_MODE_HEAT, HVAC_MODE_OFF, SUPPORT_TARGET_TEMPERATURE, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import CURRENT_HVAC_HEAT, CURRENT_HVAC_OFF from homeassistant.const import ATTR_TEMPERATURE, CONF_NAME, TEMP_CELSIUS @@ -29,7 +29,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(entities) -class LightwaveTrv(ClimateDevice): +class LightwaveTrv(ClimateEntity): """Representation of a LightWaveRF TRV.""" def __init__(self, name, device_id, lwlink, serial): diff --git a/homeassistant/components/maxcube/climate.py b/homeassistant/components/maxcube/climate.py index 19bbf8bf0006d7..ccfd44af4f70bc 100644 --- a/homeassistant/components/maxcube/climate.py +++ b/homeassistant/components/maxcube/climate.py @@ -9,7 +9,7 @@ MAX_DEVICE_MODE_VACATION, ) -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -72,11 +72,11 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices) -class MaxCubeClimate(ClimateDevice): - """MAX! Cube ClimateDevice.""" +class MaxCubeClimate(ClimateEntity): + """MAX! Cube ClimateEntity.""" def __init__(self, handler, name, rf_address): - """Initialize MAX! Cube ClimateDevice.""" + """Initialize MAX! Cube ClimateEntity.""" self._name = name self._rf_address = rf_address self._cubehandle = handler diff --git a/homeassistant/components/melcloud/climate.py b/homeassistant/components/melcloud/climate.py index e2d1fdd984d814..bc2ac7f10262d2 100644 --- a/homeassistant/components/melcloud/climate.py +++ b/homeassistant/components/melcloud/climate.py @@ -13,7 +13,7 @@ ) import voluptuous as vol -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( DEFAULT_MAX_TEMP, DEFAULT_MIN_TEMP, @@ -100,7 +100,7 @@ async def async_setup_entry( ) -class MelCloudClimate(ClimateDevice): +class MelCloudClimate(ClimateEntity): """Base climate device.""" def __init__(self, device: MelCloudDevice): diff --git a/homeassistant/components/melissa/climate.py b/homeassistant/components/melissa/climate.py index 4b033811f43186..abbc15c936fd8b 100644 --- a/homeassistant/components/melissa/climate.py +++ b/homeassistant/components/melissa/climate.py @@ -1,7 +1,7 @@ """Support for Melissa Climate A/C.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( FAN_AUTO, FAN_HIGH, @@ -49,7 +49,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(all_devices) -class MelissaClimate(ClimateDevice): +class MelissaClimate(ClimateEntity): """Representation of a Melissa Climate device.""" def __init__(self, api, serial_number, init_data): diff --git a/homeassistant/components/mill/climate.py b/homeassistant/components/mill/climate.py index d904538451c149..814694b0f77467 100644 --- a/homeassistant/components/mill/climate.py +++ b/homeassistant/components/mill/climate.py @@ -4,7 +4,7 @@ from mill import Mill import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -85,7 +85,7 @@ async def set_room_temp(service): ) -class MillHeater(ClimateDevice): +class MillHeater(ClimateEntity): """Representation of a Mill Thermostat device.""" def __init__(self, heater, mill_data_connection): diff --git a/homeassistant/components/modbus/climate.py b/homeassistant/components/modbus/climate.py index 5cfd9c36967c56..5498ed617385cf 100644 --- a/homeassistant/components/modbus/climate.py +++ b/homeassistant/components/modbus/climate.py @@ -7,7 +7,7 @@ from pymodbus.pdu import ExceptionResponse import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, SUPPORT_TARGET_TEMPERATURE, @@ -115,7 +115,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class ModbusThermostat(ClimateDevice): +class ModbusThermostat(ClimateEntity): """Representation of a Modbus Thermostat.""" def __init__( diff --git a/homeassistant/components/mqtt/climate.py b/homeassistant/components/mqtt/climate.py index 91e30c7b1b1733..8cc6a3ffbdbe70 100644 --- a/homeassistant/components/mqtt/climate.py +++ b/homeassistant/components/mqtt/climate.py @@ -6,7 +6,7 @@ from homeassistant.components import climate, mqtt from homeassistant.components.climate import ( PLATFORM_SCHEMA as CLIMATE_PLATFORM_SCHEMA, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, @@ -273,7 +273,7 @@ class MqttClimate( MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, - ClimateDevice, + ClimateEntity, ): """Representation of an MQTT climate device.""" diff --git a/homeassistant/components/mysensors/climate.py b/homeassistant/components/mysensors/climate.py index b00a0d0d9d54df..c318ccf7ec614f 100644 --- a/homeassistant/components/mysensors/climate.py +++ b/homeassistant/components/mysensors/climate.py @@ -1,6 +1,6 @@ """MySensors platform that offers a Climate (MySensors-HVAC) component.""" from homeassistant.components import mysensors -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -43,7 +43,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= ) -class MySensorsHVAC(mysensors.device.MySensorsEntity, ClimateDevice): +class MySensorsHVAC(mysensors.device.MySensorsEntity, ClimateEntity): """Representation of a MySensors HVAC.""" @property diff --git a/homeassistant/components/nest/climate.py b/homeassistant/components/nest/climate.py index 92442479091d81..9a84010a3bc8ec 100644 --- a/homeassistant/components/nest/climate.py +++ b/homeassistant/components/nest/climate.py @@ -4,7 +4,7 @@ from nest.nest import APIError import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -88,7 +88,7 @@ async def async_setup_entry(hass, entry, async_add_entities): async_add_entities(all_devices, True) -class NestThermostat(ClimateDevice): +class NestThermostat(ClimateEntity): """Representation of a Nest thermostat.""" def __init__(self, structure, device, temp_unit): diff --git a/homeassistant/components/netatmo/climate.py b/homeassistant/components/netatmo/climate.py index eb4ec52c0f9229..8de2694095e825 100644 --- a/homeassistant/components/netatmo/climate.py +++ b/homeassistant/components/netatmo/climate.py @@ -7,7 +7,7 @@ import requests import voluptuous as vol -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -156,7 +156,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= return -class NetatmoThermostat(ClimateDevice): +class NetatmoThermostat(ClimateEntity): """Representation a Netatmo thermostat.""" def __init__(self, data, room_id): diff --git a/homeassistant/components/nexia/climate.py b/homeassistant/components/nexia/climate.py index fafa267c91418a..b22b185a44cf47 100644 --- a/homeassistant/components/nexia/climate.py +++ b/homeassistant/components/nexia/climate.py @@ -13,7 +13,7 @@ ) import voluptuous as vol -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_HUMIDITY, ATTR_MAX_HUMIDITY, @@ -133,7 +133,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities, True) -class NexiaZone(NexiaThermostatZoneEntity, ClimateDevice): +class NexiaZone(NexiaThermostatZoneEntity, ClimateEntity): """Provides Nexia Climate support.""" def __init__(self, coordinator, zone): diff --git a/homeassistant/components/nuheat/climate.py b/homeassistant/components/nuheat/climate.py index c1d591c03eb439..417beecee9a2df 100644 --- a/homeassistant/components/nuheat/climate.py +++ b/homeassistant/components/nuheat/climate.py @@ -11,7 +11,7 @@ nuheat_to_fahrenheit, ) -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, CURRENT_HVAC_HEAT, @@ -77,7 +77,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities([entity], True) -class NuHeatThermostat(ClimateDevice): +class NuHeatThermostat(ClimateEntity): """Representation of a NuHeat Thermostat.""" def __init__(self, thermostat, temperature_unit): diff --git a/homeassistant/components/oem/climate.py b/homeassistant/components/oem/climate.py index b2ecf5a7997770..734fe12d0f5449 100644 --- a/homeassistant/components/oem/climate.py +++ b/homeassistant/components/oem/climate.py @@ -5,7 +5,7 @@ import requests import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -59,7 +59,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities((ThermostatDevice(therm, name),), True) -class ThermostatDevice(ClimateDevice): +class ThermostatDevice(ClimateEntity): """Interface class for the oemthermostat module.""" def __init__(self, thermostat, name): diff --git a/homeassistant/components/opentherm_gw/climate.py b/homeassistant/components/opentherm_gw/climate.py index a7e7eedef34d06..64625541352723 100644 --- a/homeassistant/components/opentherm_gw/climate.py +++ b/homeassistant/components/opentherm_gw/climate.py @@ -3,7 +3,7 @@ from pyotgw import vars as gw_vars -from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateDevice +from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT, @@ -51,7 +51,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(ents) -class OpenThermClimate(ClimateDevice): +class OpenThermClimate(ClimateEntity): """Representation of a climate device.""" def __init__(self, gw_dev, options): diff --git a/homeassistant/components/plugwise/climate.py b/homeassistant/components/plugwise/climate.py index aef1dd78197ac2..8e2e525217a8c9 100644 --- a/homeassistant/components/plugwise/climate.py +++ b/homeassistant/components/plugwise/climate.py @@ -5,7 +5,7 @@ import haanna import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT, @@ -88,7 +88,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class ThermostatDevice(ClimateDevice): +class ThermostatDevice(ClimateEntity): """Representation of the Plugwise thermostat.""" def __init__(self, api, name, min_temp, max_temp): diff --git a/homeassistant/components/proliphix/climate.py b/homeassistant/components/proliphix/climate.py index 44e31e24fb0556..fc44dfba75ba4e 100644 --- a/homeassistant/components/proliphix/climate.py +++ b/homeassistant/components/proliphix/climate.py @@ -2,7 +2,7 @@ import proliphix import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_COOL, HVAC_MODE_HEAT, @@ -41,7 +41,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([ProliphixThermostat(pdp)], True) -class ProliphixThermostat(ClimateDevice): +class ProliphixThermostat(ClimateEntity): """Representation a Proliphix thermostat.""" def __init__(self, pdp): diff --git a/homeassistant/components/radiotherm/climate.py b/homeassistant/components/radiotherm/climate.py index acbd6fe7e5ee5d..c5e7f2f956eb40 100644 --- a/homeassistant/components/radiotherm/climate.py +++ b/homeassistant/components/radiotherm/climate.py @@ -4,7 +4,7 @@ import radiotherm import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT, @@ -125,7 +125,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(tstats, True) -class RadioThermostat(ClimateDevice): +class RadioThermostat(ClimateEntity): """Representation of a Radio Thermostat.""" def __init__(self, device, hold_temp): diff --git a/homeassistant/components/schluter/climate.py b/homeassistant/components/schluter/climate.py index d91020c7c2bd3e..88630cb99dbffc 100644 --- a/homeassistant/components/schluter/climate.py +++ b/homeassistant/components/schluter/climate.py @@ -8,7 +8,7 @@ PLATFORM_SCHEMA, SCAN_INTERVAL, TEMP_CELSIUS, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, @@ -63,7 +63,7 @@ async def async_update_data(): ) -class SchluterThermostat(ClimateDevice): +class SchluterThermostat(ClimateEntity): """Representation of a Schluter thermostat.""" def __init__(self, coordinator, serial_number, api, session_id): diff --git a/homeassistant/components/sensibo/climate.py b/homeassistant/components/sensibo/climate.py index 08e2212e2a2168..93d992d1d894c1 100644 --- a/homeassistant/components/sensibo/climate.py +++ b/homeassistant/components/sensibo/climate.py @@ -8,7 +8,7 @@ import pysensibo import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_COOL, HVAC_MODE_DRY, @@ -135,7 +135,7 @@ async def async_assume_state(service): ) -class SensiboClimate(ClimateDevice): +class SensiboClimate(ClimateEntity): """Representation of a Sensibo device.""" def __init__(self, client, data, units): diff --git a/homeassistant/components/smartthings/climate.py b/homeassistant/components/smartthings/climate.py index 83a1af981db826..e9c0e749ca8848 100644 --- a/homeassistant/components/smartthings/climate.py +++ b/homeassistant/components/smartthings/climate.py @@ -5,7 +5,7 @@ from pysmartthings import Attribute, Capability -from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN, ClimateDevice +from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN, ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH, @@ -144,7 +144,7 @@ def get_capabilities(capabilities: Sequence[str]) -> Optional[Sequence[str]]: return None -class SmartThingsThermostat(SmartThingsEntity, ClimateDevice): +class SmartThingsThermostat(SmartThingsEntity, ClimateEntity): """Define a SmartThings climate entities.""" def __init__(self, device): @@ -323,7 +323,7 @@ def temperature_unit(self): return UNIT_MAP.get(self._device.status.attributes[Attribute.temperature].unit) -class SmartThingsAirConditioner(SmartThingsEntity, ClimateDevice): +class SmartThingsAirConditioner(SmartThingsEntity, ClimateEntity): """Define a SmartThings Air Conditioner.""" def __init__(self, device): diff --git a/homeassistant/components/spider/climate.py b/homeassistant/components/spider/climate.py index 846ed6a1ac668f..78c77f3679a0d7 100644 --- a/homeassistant/components/spider/climate.py +++ b/homeassistant/components/spider/climate.py @@ -2,7 +2,7 @@ import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_COOL, HVAC_MODE_HEAT, @@ -41,7 +41,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class SpiderThermostat(ClimateDevice): +class SpiderThermostat(ClimateEntity): """Representation of a thermostat.""" def __init__(self, api, thermostat): diff --git a/homeassistant/components/stiebel_eltron/climate.py b/homeassistant/components/stiebel_eltron/climate.py index ce16b10f548856..d8c32575b1703a 100644 --- a/homeassistant/components/stiebel_eltron/climate.py +++ b/homeassistant/components/stiebel_eltron/climate.py @@ -1,7 +1,7 @@ """Support for stiebel_eltron climate platform.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_AUTO, HVAC_MODE_HEAT, @@ -61,7 +61,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([StiebelEltron(name, ste_data)], True) -class StiebelEltron(ClimateDevice): +class StiebelEltron(ClimateEntity): """Representation of a STIEBEL ELTRON heat pump.""" def __init__(self, name, ste_data): diff --git a/homeassistant/components/tado/climate.py b/homeassistant/components/tado/climate.py index 5e1bfa94dec81f..cdcc32f7ac2283 100644 --- a/homeassistant/components/tado/climate.py +++ b/homeassistant/components/tado/climate.py @@ -1,7 +1,7 @@ """Support for Tado thermostats.""" import logging -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_OFF, FAN_AUTO, @@ -163,7 +163,7 @@ def create_climate_entity(tado, name: str, zone_id: int, zone: dict): return entity -class TadoClimate(TadoZoneEntity, ClimateDevice): +class TadoClimate(TadoZoneEntity, ClimateEntity): """Representation of a Tado climate entity.""" def __init__( diff --git a/homeassistant/components/tesla/climate.py b/homeassistant/components/tesla/climate.py index 5ba6f182c0a934..31269155d91492 100644 --- a/homeassistant/components/tesla/climate.py +++ b/homeassistant/components/tesla/climate.py @@ -4,7 +4,7 @@ from teslajsonpy.exceptions import UnknownPresetMode -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT_COOL, HVAC_MODE_OFF, @@ -37,7 +37,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) -class TeslaThermostat(TeslaDevice, ClimateDevice): +class TeslaThermostat(TeslaDevice, ClimateEntity): """Representation of a Tesla climate.""" def __init__(self, tesla_device, controller, config_entry): diff --git a/homeassistant/components/tfiac/climate.py b/homeassistant/components/tfiac/climate.py index 6d23018e89750b..1e9bb86d8fd5e1 100644 --- a/homeassistant/components/tfiac/climate.py +++ b/homeassistant/components/tfiac/climate.py @@ -6,7 +6,7 @@ from pytfiac import Tfiac import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( FAN_AUTO, FAN_HIGH, @@ -73,7 +73,7 @@ async def async_setup_platform(hass, config, async_add_devices, discovery_info=N async_add_devices([TfiacClimate(hass, tfiac_client)]) -class TfiacClimate(ClimateDevice): +class TfiacClimate(ClimateEntity): """TFIAC class.""" def __init__(self, hass, client): diff --git a/homeassistant/components/toon/climate.py b/homeassistant/components/toon/climate.py index fac9cf4ffc2108..f3c3d9a69bf951 100644 --- a/homeassistant/components/toon/climate.py +++ b/homeassistant/components/toon/climate.py @@ -3,7 +3,7 @@ import logging from typing import Any, Dict, List, Optional -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -43,7 +43,7 @@ async def async_setup_entry( async_add_entities([ToonThermostatDevice(toon_client, toon_data)], True) -class ToonThermostatDevice(ToonDisplayDeviceEntity, ClimateDevice): +class ToonThermostatDevice(ToonDisplayDeviceEntity, ClimateEntity): """Representation of a Toon climate device.""" def __init__(self, toon_client, toon_data: ToonData) -> None: diff --git a/homeassistant/components/touchline/climate.py b/homeassistant/components/touchline/climate.py index 984e454ae02b13..218a6a420ffbf8 100644 --- a/homeassistant/components/touchline/climate.py +++ b/homeassistant/components/touchline/climate.py @@ -5,7 +5,7 @@ from pytouchline import PyTouchline import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT, SUPPORT_TARGET_TEMPERATURE, @@ -32,7 +32,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class Touchline(ClimateDevice): +class Touchline(ClimateEntity): """Representation of a Touchline device.""" def __init__(self, touchline_thermostat): diff --git a/homeassistant/components/tuya/climate.py b/homeassistant/components/tuya/climate.py index 8537e61a3ae7bf..fdcd4f0debd144 100644 --- a/homeassistant/components/tuya/climate.py +++ b/homeassistant/components/tuya/climate.py @@ -1,5 +1,5 @@ """Support for the Tuya climate devices.""" -from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateDevice +from homeassistant.components.climate import ENTITY_ID_FORMAT, ClimateEntity from homeassistant.components.climate.const import ( FAN_HIGH, FAN_LOW, @@ -46,11 +46,11 @@ def setup_platform(hass, config, add_entities, discovery_info=None): device = tuya.get_device_by_id(dev_id) if device is None: continue - devices.append(TuyaClimateDevice(device)) + devices.append(TuyaClimateEntity(device)) add_entities(devices) -class TuyaClimateDevice(TuyaDevice, ClimateDevice): +class TuyaClimateEntity(TuyaDevice, ClimateEntity): """Tuya climate devices,include air conditioner,heater.""" def __init__(self, tuya): diff --git a/homeassistant/components/velbus/climate.py b/homeassistant/components/velbus/climate.py index 8810f945ba984f..6ef91d65c91e8b 100644 --- a/homeassistant/components/velbus/climate.py +++ b/homeassistant/components/velbus/climate.py @@ -3,7 +3,7 @@ from velbus.util import VelbusException -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT, SUPPORT_TARGET_TEMPERATURE, @@ -27,7 +27,7 @@ async def async_setup_entry(hass, entry, async_add_entities): async_add_entities(entities) -class VelbusClimate(VelbusEntity, ClimateDevice): +class VelbusClimate(VelbusEntity, ClimateEntity): """Representation of a Velbus thermostat.""" @property diff --git a/homeassistant/components/venstar/climate.py b/homeassistant/components/venstar/climate.py index 7de6427b5d8506..261339f70dd43c 100644 --- a/homeassistant/components/venstar/climate.py +++ b/homeassistant/components/venstar/climate.py @@ -4,7 +4,7 @@ from venstarcolortouch import VenstarColorTouch import voluptuous as vol -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, ATTR_TARGET_TEMP_HIGH, @@ -96,7 +96,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([VenstarThermostat(client, humidifier)], True) -class VenstarThermostat(ClimateDevice): +class VenstarThermostat(ClimateEntity): """Representation of a Venstar thermostat.""" def __init__(self, client, humidifier): diff --git a/homeassistant/components/vera/climate.py b/homeassistant/components/vera/climate.py index 520c3b516df34f..9b8601e45d193b 100644 --- a/homeassistant/components/vera/climate.py +++ b/homeassistant/components/vera/climate.py @@ -5,7 +5,7 @@ from homeassistant.components.climate import ( DOMAIN as PLATFORM_DOMAIN, ENTITY_ID_FORMAT, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import ( FAN_AUTO, @@ -49,7 +49,7 @@ async def async_setup_entry( ) -class VeraThermostat(VeraDevice, ClimateDevice): +class VeraThermostat(VeraDevice, ClimateEntity): """Representation of a Vera Thermostat.""" def __init__(self, vera_device, controller): diff --git a/homeassistant/components/vicare/climate.py b/homeassistant/components/vicare/climate.py index 1b101cc7612527..ce88ea8e3e7053 100644 --- a/homeassistant/components/vicare/climate.py +++ b/homeassistant/components/vicare/climate.py @@ -3,7 +3,7 @@ import requests -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, CURRENT_HVAC_IDLE, @@ -97,7 +97,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class ViCareClimate(ClimateDevice): +class ViCareClimate(ClimateEntity): """Representation of the ViCare heating climate device.""" def __init__(self, name, api, heating_type): diff --git a/homeassistant/components/wink/climate.py b/homeassistant/components/wink/climate.py index 85d477313f164a..28be557c65e4e8 100644 --- a/homeassistant/components/wink/climate.py +++ b/homeassistant/components/wink/climate.py @@ -3,7 +3,7 @@ import pywink -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -80,7 +80,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([WinkAC(climate, hass)]) -class WinkThermostat(WinkDevice, ClimateDevice): +class WinkThermostat(WinkDevice, ClimateEntity): """Representation of a Wink thermostat.""" @property @@ -381,7 +381,7 @@ def max_temp(self): return return_value -class WinkAC(WinkDevice, ClimateDevice): +class WinkAC(WinkDevice, ClimateEntity): """Representation of a Wink air conditioner.""" @property diff --git a/homeassistant/components/xs1/climate.py b/homeassistant/components/xs1/climate.py index 19d5ae1e904e96..c57c0857817752 100644 --- a/homeassistant/components/xs1/climate.py +++ b/homeassistant/components/xs1/climate.py @@ -3,7 +3,7 @@ from xs1_api_client.api_constants import ActuatorType -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( HVAC_MODE_HEAT, SUPPORT_TARGET_TEMPERATURE, @@ -42,7 +42,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(thermostat_entities) -class XS1ThermostatEntity(XS1DeviceEntity, ClimateDevice): +class XS1ThermostatEntity(XS1DeviceEntity, ClimateEntity): """Representation of a XS1 thermostat.""" def __init__(self, device, sensor): diff --git a/homeassistant/components/zhong_hong/climate.py b/homeassistant/components/zhong_hong/climate.py index 62f5b9acbaff32..fc5a56880278be 100644 --- a/homeassistant/components/zhong_hong/climate.py +++ b/homeassistant/components/zhong_hong/climate.py @@ -5,7 +5,7 @@ from zhong_hong_hvac.hub import ZhongHongGateway from zhong_hong_hvac.hvac import HVAC as ZhongHongHVAC -from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateDevice +from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, HVAC_MODE_COOL, @@ -113,7 +113,7 @@ def stop_listen(event): hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_listen) -class ZhongHongClimate(ClimateDevice): +class ZhongHongClimate(ClimateEntity): """Representation of a ZhongHong controller support HVAC.""" def __init__(self, hub, addr_out, addr_in): diff --git a/homeassistant/components/zwave/climate.py b/homeassistant/components/zwave/climate.py index 4ee9b8b9cc9e1e..9c9c1ed6128296 100644 --- a/homeassistant/components/zwave/climate.py +++ b/homeassistant/components/zwave/climate.py @@ -3,7 +3,7 @@ import logging from typing import Optional, Tuple -from homeassistant.components.climate import ClimateDevice +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, @@ -149,7 +149,7 @@ def get_device(hass, values, **kwargs): return None -class ZWaveClimateBase(ZWaveDeviceEntity, ClimateDevice): +class ZWaveClimateBase(ZWaveDeviceEntity, ClimateEntity): """Representation of a Z-Wave Climate device.""" def __init__(self, values, temp_unit): diff --git a/tests/components/climate/test_init.py b/tests/components/climate/test_init.py index 4345ecedcf7691..b5ec45d3aa056f 100644 --- a/tests/components/climate/test_init.py +++ b/tests/components/climate/test_init.py @@ -10,6 +10,7 @@ HVAC_MODE_OFF, SET_TEMPERATURE_SCHEMA, ClimateDevice, + ClimateEntity, ) from tests.common import async_mock_service @@ -45,7 +46,7 @@ async def test_set_temp_schema(hass, caplog): assert calls[-1].data == data -class MockClimateDevice(ClimateDevice): +class MockClimateEntity(ClimateEntity): """Mock Climate device to use in tests.""" @property @@ -67,7 +68,7 @@ def hvac_modes(self) -> List[str]: async def test_sync_turn_on(hass): """Test if async turn_on calls sync turn_on.""" - climate = MockClimateDevice() + climate = MockClimateEntity() climate.hass = hass climate.turn_on = MagicMock() @@ -78,10 +79,24 @@ async def test_sync_turn_on(hass): async def test_sync_turn_off(hass): """Test if async turn_off calls sync turn_off.""" - climate = MockClimateDevice() + climate = MockClimateEntity() climate.hass = hass climate.turn_off = MagicMock() await climate.async_turn_off() assert climate.turn_off.called + + +def test_deprecated_base_class(caplog): + """Test deprecated base class.""" + + class CustomClimate(ClimateDevice): + def hvac_mode(self): + pass + + def hvac_modes(self): + pass + + CustomClimate() + assert "ClimateDevice is deprecated, modify CustomClimate" in caplog.text