diff --git a/homeassistant/components/ambiclimate/climate.py b/homeassistant/components/ambiclimate/climate.py index a8ed166903e..cb19d1329ca 100644 --- a/homeassistant/components/ambiclimate/climate.py +++ b/homeassistant/components/ambiclimate/climate.py @@ -5,7 +5,7 @@ import logging 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 async_setup_entry(hass, entry, async_add_entities): ) -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 f3aff44ff4d..d3241791cf2 100644 --- a/homeassistant/components/climate/__init__.py +++ b/homeassistant/components/climate/__init__.py @@ -101,7 +101,7 @@ SET_TEMPERATURE_SCHEMA = vol.All( 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 @@ class ClimateDevice(Entity): 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 a52431dd89b..6e68e858a6d 100644 --- a/homeassistant/components/coolmaster/climate.py +++ b/homeassistant/components/coolmaster/climate.py @@ -4,7 +4,7 @@ import logging 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 5455bd6f670..ebf909dcbda 100644 --- a/homeassistant/components/daikin/climate.py +++ b/homeassistant/components/daikin/climate.py @@ -4,7 +4,7 @@ import logging 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 7b0f44807ec..424693505ca 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 @@ async def async_setup_entry(hass, config_entry, async_add_entities): 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 0edcf618ba6..9733d0f1147 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 f4e23b01622..6b2d7cbe74c 100644 --- a/homeassistant/components/dyson/climate.py +++ b/homeassistant/components/dyson/climate.py @@ -5,7 +5,7 @@ from libpurecool.const import FocusMode, HeatMode, HeatState, HeatTarget 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 89f464452f8..c956308ab8e 100644 --- a/homeassistant/components/ecobee/climate.py +++ b/homeassistant/components/ecobee/climate.py @@ -4,7 +4,7 @@ from typing import Optional 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 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) -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 baaf3d44eb2..6d10df45adf 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 d743f3e82ba..787677a6605 100644 --- a/homeassistant/components/ephember/climate.py +++ b/homeassistant/components/ephember/climate.py @@ -15,7 +15,7 @@ from pyephember.pyephember import ( ) 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 d0b60c74443..402dfc684b3 100644 --- a/homeassistant/components/eq3btsmart/climate.py +++ b/homeassistant/components/eq3btsmart/climate.py @@ -6,7 +6,7 @@ from bluepy.btle import BTLEException 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 960366a8332..46ed214afba 100644 --- a/homeassistant/components/esphome/climate.py +++ b/homeassistant/components/esphome/climate.py @@ -11,7 +11,7 @@ from aioesphomeapi import ( 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 b7899afdd7b..c6edb4aa1dc 100644 --- a/homeassistant/components/evohome/climate.py +++ b/homeassistant/components/evohome/climate.py @@ -3,7 +3,7 @@ from datetime import datetime as dt 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 @@ class EvoClimateDevice(EvoDevice, ClimateDevice): 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 @@ class EvoZone(EvoChild, EvoClimateDevice): 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 71be289e27b..191185c4a2a 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 68e13abf8d1..450d09edeb8 100644 --- a/homeassistant/components/flexit/climate.py +++ b/homeassistant/components/flexit/climate.py @@ -5,7 +5,7 @@ from typing import List 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 1c95d918ab8..4abe82776a9 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 9a8d6177214..396d347c3c9 100644 --- a/homeassistant/components/generic_thermostat/climate.py +++ b/homeassistant/components/generic_thermostat/climate.py @@ -4,7 +4,7 @@ import logging 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 2221b8706c8..70d08dc2d1f 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 553ae8f4bc3..b3f3363818c 100644 --- a/homeassistant/components/heatmiser/climate.py +++ b/homeassistant/components/heatmiser/climate.py @@ -9,7 +9,7 @@ from homeassistant.components.climate import ( 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 da18419c264..23a3a0c1416 100644 --- a/homeassistant/components/hisense_aehw4a1/climate.py +++ b/homeassistant/components/hisense_aehw4a1/climate.py @@ -5,7 +5,7 @@ import logging 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 202cea7bf8e..33c8fed4eca 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 2262fa54770..f06063c5fd2 100644 --- a/homeassistant/components/homekit_controller/climate.py +++ b/homeassistant/components/homekit_controller/climate.py @@ -11,7 +11,7 @@ from aiohomekit.utils import clamp_enum_to_char 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 @@ async def async_setup_entry(hass, config_entry, async_add_entities): 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 b4ab277a75b..243e1782a37 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 c5fb978e690..3d01f5d69fd 100644 --- a/homeassistant/components/homematicip_cloud/climate.py +++ b/homeassistant/components/homematicip_cloud/climate.py @@ -8,7 +8,7 @@ from homematicip.base.enums import AbsenceType 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 ece8257a713..5969dcdcc27 100644 --- a/homeassistant/components/honeywell/climate.py +++ b/homeassistant/components/honeywell/climate.py @@ -7,7 +7,7 @@ import requests 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 36f3303774a..2c26b2bc363 100644 --- a/homeassistant/components/iaqualink/climate.py +++ b/homeassistant/components/iaqualink/climate.py @@ -10,7 +10,7 @@ from iaqualink.const import ( 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 464ff989941..274308efe06 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 a3a06a52c9c..ecd00bde986 100644 --- a/homeassistant/components/intesishome/climate.py +++ b/homeassistant/components/intesishome/climate.py @@ -5,7 +5,7 @@ from random import randrange 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 b17313925a8..69c005b345b 100644 --- a/homeassistant/components/izone/climate.py +++ b/homeassistant/components/izone/climate.py @@ -4,7 +4,7 @@ from typing import List, Optional 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 _return_on_connection_error(ret=None): return wrap -class ControllerDevice(ClimateDevice): +class ControllerDevice(ClimateEntity): """Representation of iZone Controller.""" def __init__(self, controller: Controller) -> None: @@ -399,7 +399,7 @@ class ControllerDevice(ClimateDevice): 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 ab590540543..a3d5ac046a4 100644 --- a/homeassistant/components/knx/climate.py +++ b/homeassistant/components/knx/climate.py @@ -5,7 +5,7 @@ import voluptuous as vol 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 12fff2f479b..9634dcf8fb3 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 8e842624b16..0518e91dda9 100644 --- a/homeassistant/components/lightwave/climate.py +++ b/homeassistant/components/lightwave/climate.py @@ -5,7 +5,7 @@ from homeassistant.components.climate import ( 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 19bbf8bf000..ccfd44af4f7 100644 --- a/homeassistant/components/maxcube/climate.py +++ b/homeassistant/components/maxcube/climate.py @@ -9,7 +9,7 @@ from maxcube.device import ( 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 e2d1fdd984d..bc2ac7f1026 100644 --- a/homeassistant/components/melcloud/climate.py +++ b/homeassistant/components/melcloud/climate.py @@ -13,7 +13,7 @@ from pymelcloud.atw_device import ( ) 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 4b033811f43..abbc15c936f 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 d904538451c..814694b0f77 100644 --- a/homeassistant/components/mill/climate.py +++ b/homeassistant/components/mill/climate.py @@ -4,7 +4,7 @@ import logging 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 async_setup_platform(hass, config, async_add_entities, discovery_info= ) -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 5cfd9c36967..5498ed61738 100644 --- a/homeassistant/components/modbus/climate.py +++ b/homeassistant/components/modbus/climate.py @@ -7,7 +7,7 @@ from pymodbus.exceptions import ConnectionException, ModbusException 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 91e30c7b1b1..8cc6a3ffbdb 100644 --- a/homeassistant/components/mqtt/climate.py +++ b/homeassistant/components/mqtt/climate.py @@ -6,7 +6,7 @@ import voluptuous as vol 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 b00a0d0d9d5..c318ccf7ec6 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 92442479091..9a84010a3bc 100644 --- a/homeassistant/components/nest/climate.py +++ b/homeassistant/components/nest/climate.py @@ -4,7 +4,7 @@ import logging 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 eb4ec52c0f9..8de2694095e 100644 --- a/homeassistant/components/netatmo/climate.py +++ b/homeassistant/components/netatmo/climate.py @@ -7,7 +7,7 @@ import pyatmo 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 fafa267c914..b22b185a44c 100644 --- a/homeassistant/components/nexia/climate.py +++ b/homeassistant/components/nexia/climate.py @@ -13,7 +13,7 @@ from nexia.const import ( ) 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 c1d591c03eb..417beecee9a 100644 --- a/homeassistant/components/nuheat/climate.py +++ b/homeassistant/components/nuheat/climate.py @@ -11,7 +11,7 @@ from nuheat.util import ( 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 b2ecf5a7997..734fe12d0f5 100644 --- a/homeassistant/components/oem/climate.py +++ b/homeassistant/components/oem/climate.py @@ -5,7 +5,7 @@ from oemthermostat import Thermostat 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 a7e7eedef34..64625541352 100644 --- a/homeassistant/components/opentherm_gw/climate.py +++ b/homeassistant/components/opentherm_gw/climate.py @@ -3,7 +3,7 @@ import logging 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 aef1dd78197..8e2e525217a 100644 --- a/homeassistant/components/plugwise/climate.py +++ b/homeassistant/components/plugwise/climate.py @@ -5,7 +5,7 @@ import logging 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 44e31e24fb0..fc44dfba75b 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 acbd6fe7e5e..c5e7f2f956e 100644 --- a/homeassistant/components/radiotherm/climate.py +++ b/homeassistant/components/radiotherm/climate.py @@ -4,7 +4,7 @@ import logging 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 d91020c7c2b..88630cb99db 100644 --- a/homeassistant/components/schluter/climate.py +++ b/homeassistant/components/schluter/climate.py @@ -8,7 +8,7 @@ from homeassistant.components.climate import ( PLATFORM_SCHEMA, SCAN_INTERVAL, TEMP_CELSIUS, - ClimateDevice, + ClimateEntity, ) from homeassistant.components.climate.const import ( CURRENT_HVAC_HEAT, @@ -63,7 +63,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= ) -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 08e2212e2a2..93d992d1d89 100644 --- a/homeassistant/components/sensibo/climate.py +++ b/homeassistant/components/sensibo/climate.py @@ -8,7 +8,7 @@ import async_timeout 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_setup_platform(hass, config, async_add_entities, discovery_info= ) -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 83a1af981db..e9c0e749ca8 100644 --- a/homeassistant/components/smartthings/climate.py +++ b/homeassistant/components/smartthings/climate.py @@ -5,7 +5,7 @@ from typing import Iterable, Optional, Sequence 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 @@ class SmartThingsThermostat(SmartThingsEntity, ClimateDevice): 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 846ed6a1ac6..78c77f3679a 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 ce16b10f548..d8c32575b17 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 5e1bfa94dec..cdcc32f7ac2 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 5ba6f182c0a..31269155d91 100644 --- a/homeassistant/components/tesla/climate.py +++ b/homeassistant/components/tesla/climate.py @@ -4,7 +4,7 @@ from typing import List, Optional 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 6d23018e897..1e9bb86d8fd 100644 --- a/homeassistant/components/tfiac/climate.py +++ b/homeassistant/components/tfiac/climate.py @@ -6,7 +6,7 @@ import logging 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 fac9cf4ffc2..f3c3d9a69bf 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 984e454ae02..218a6a420ff 100644 --- a/homeassistant/components/touchline/climate.py +++ b/homeassistant/components/touchline/climate.py @@ -5,7 +5,7 @@ from typing import List 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 fe1fcc802ff..d2f7dba4c33 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, @@ -48,11 +48,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 8810f945ba9..6ef91d65c91 100644 --- a/homeassistant/components/velbus/climate.py +++ b/homeassistant/components/velbus/climate.py @@ -3,7 +3,7 @@ import logging 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 7de6427b5d8..261339f70dd 100644 --- a/homeassistant/components/venstar/climate.py +++ b/homeassistant/components/venstar/climate.py @@ -4,7 +4,7 @@ import logging 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 520c3b516df..9b8601e45d1 100644 --- a/homeassistant/components/vera/climate.py +++ b/homeassistant/components/vera/climate.py @@ -5,7 +5,7 @@ from typing import Callable, List 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 1b101cc7612..ce88ea8e3e7 100644 --- a/homeassistant/components/vicare/climate.py +++ b/homeassistant/components/vicare/climate.py @@ -3,7 +3,7 @@ import logging 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 85d477313f1..28be557c65e 100644 --- a/homeassistant/components/wink/climate.py +++ b/homeassistant/components/wink/climate.py @@ -3,7 +3,7 @@ import logging 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 @@ class WinkThermostat(WinkDevice, ClimateDevice): 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 19d5ae1e904..c57c0857817 100644 --- a/homeassistant/components/xs1/climate.py +++ b/homeassistant/components/xs1/climate.py @@ -3,7 +3,7 @@ import logging 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 62f5b9acbaf..fc5a5688027 100644 --- a/homeassistant/components/zhong_hong/climate.py +++ b/homeassistant/components/zhong_hong/climate.py @@ -5,7 +5,7 @@ import voluptuous as vol 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 setup_platform(hass, config, add_entities, discovery_info=None): 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 4ee9b8b9cc9..9c9c1ed6128 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 4345ecedcf7..b5ec45d3aa0 100644 --- a/tests/components/climate/test_init.py +++ b/tests/components/climate/test_init.py @@ -10,6 +10,7 @@ from homeassistant.components.climate import ( 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 @@ class MockClimateDevice(ClimateDevice): 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