diff --git a/homeassistant/components/abode/alarm_control_panel.py b/homeassistant/components/abode/alarm_control_panel.py index 40040d90d0d..c508d0f0240 100644 --- a/homeassistant/components/abode/alarm_control_panel.py +++ b/homeassistant/components/abode/alarm_control_panel.py @@ -25,7 +25,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) -class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanel): +class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanelEntity): """An alarm_control_panel implementation for Abode.""" @property diff --git a/homeassistant/components/alarm_control_panel/__init__.py b/homeassistant/components/alarm_control_panel/__init__.py index 67b0309e513..50b8adb4c03 100644 --- a/homeassistant/components/alarm_control_panel/__init__.py +++ b/homeassistant/components/alarm_control_panel/__init__.py @@ -32,6 +32,8 @@ from .const import ( SUPPORT_ALARM_TRIGGER, ) +_LOGGER = logging.getLogger(__name__) + DOMAIN = "alarm_control_panel" SCAN_INTERVAL = timedelta(seconds=30) ATTR_CHANGED_BY = "changed_by" @@ -99,8 +101,8 @@ async def async_unload_entry(hass, entry): return await hass.data[DOMAIN].async_unload_entry(entry) -class AlarmControlPanel(Entity): - """An abstract class for alarm control devices.""" +class AlarmControlPanelEntity(Entity): + """An abstract class for alarm control entities.""" @property def code_format(self): @@ -179,3 +181,15 @@ class AlarmControlPanel(Entity): ATTR_CODE_ARM_REQUIRED: self.code_arm_required, } return state_attr + + +class AlarmControlPanel(AlarmControlPanelEntity): + """An abstract class for alarm control entities (for backwards compatibility).""" + + def __init_subclass__(cls, **kwargs): + """Print deprecation warning.""" + super().__init_subclass__(**kwargs) + _LOGGER.warning( + "AlarmControlPanel is deprecated, modify %s to extend AlarmControlPanelEntity", + cls.__name__, + ) diff --git a/homeassistant/components/alarmdecoder/alarm_control_panel.py b/homeassistant/components/alarmdecoder/alarm_control_panel.py index 5625204c762..ac90ea1796f 100644 --- a/homeassistant/components/alarmdecoder/alarm_control_panel.py +++ b/homeassistant/components/alarmdecoder/alarm_control_panel.py @@ -5,7 +5,7 @@ import voluptuous as vol from homeassistant.components.alarm_control_panel import ( FORMAT_NUMBER, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -74,7 +74,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class AlarmDecoderAlarmPanel(AlarmControlPanel): +class AlarmDecoderAlarmPanel(AlarmControlPanelEntity): """Representation of an AlarmDecoder-based alarm panel.""" def __init__(self, auto_bypass, code_arm_required): diff --git a/homeassistant/components/arlo/alarm_control_panel.py b/homeassistant/components/arlo/alarm_control_panel.py index 7440db0495e..47328d5cbc2 100644 --- a/homeassistant/components/arlo/alarm_control_panel.py +++ b/homeassistant/components/arlo/alarm_control_panel.py @@ -5,7 +5,7 @@ import voluptuous as vol from homeassistant.components.alarm_control_panel import ( PLATFORM_SCHEMA, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -66,7 +66,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(base_stations, True) -class ArloBaseStation(AlarmControlPanel): +class ArloBaseStation(AlarmControlPanelEntity): """Representation of an Arlo Alarm Control Panel.""" def __init__(self, data, home_mode_name, away_mode_name, night_mode_name): diff --git a/homeassistant/components/blink/alarm_control_panel.py b/homeassistant/components/blink/alarm_control_panel.py index 9b23c1606d4..e6af3780aaf 100644 --- a/homeassistant/components/blink/alarm_control_panel.py +++ b/homeassistant/components/blink/alarm_control_panel.py @@ -1,7 +1,7 @@ """Support for Blink Alarm Control Panel.""" import logging -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import SUPPORT_ALARM_ARM_AWAY from homeassistant.const import ( ATTR_ATTRIBUTION, @@ -28,7 +28,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(sync_modules, True) -class BlinkSyncModule(AlarmControlPanel): +class BlinkSyncModule(AlarmControlPanelEntity): """Representation of a Blink Alarm Control Panel.""" def __init__(self, data, name, sync): diff --git a/homeassistant/components/canary/alarm_control_panel.py b/homeassistant/components/canary/alarm_control_panel.py index 35fff8accbd..a5930e658fb 100644 --- a/homeassistant/components/canary/alarm_control_panel.py +++ b/homeassistant/components/canary/alarm_control_panel.py @@ -3,7 +3,7 @@ import logging from canary.api import LOCATION_MODE_AWAY, LOCATION_MODE_HOME, LOCATION_MODE_NIGHT -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, SUPPORT_ALARM_ARM_HOME, @@ -32,7 +32,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class CanaryAlarm(AlarmControlPanel): +class CanaryAlarm(AlarmControlPanelEntity): """Representation of a Canary alarm control panel.""" def __init__(self, data, location_id): diff --git a/homeassistant/components/concord232/alarm_control_panel.py b/homeassistant/components/concord232/alarm_control_panel.py index afb7e23e8fc..94880dcccf7 100644 --- a/homeassistant/components/concord232/alarm_control_panel.py +++ b/homeassistant/components/concord232/alarm_control_panel.py @@ -60,7 +60,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): _LOGGER.error("Unable to connect to Concord232: %s", str(ex)) -class Concord232Alarm(alarm.AlarmControlPanel): +class Concord232Alarm(alarm.AlarmControlPanelEntity): """Representation of the Concord232-based alarm panel.""" def __init__(self, url, name, code, mode): diff --git a/homeassistant/components/egardia/alarm_control_panel.py b/homeassistant/components/egardia/alarm_control_panel.py index 7e5f88cff3e..b133a96b820 100644 --- a/homeassistant/components/egardia/alarm_control_panel.py +++ b/homeassistant/components/egardia/alarm_control_panel.py @@ -53,7 +53,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([device], True) -class EgardiaAlarm(alarm.AlarmControlPanel): +class EgardiaAlarm(alarm.AlarmControlPanelEntity): """Representation of a Egardia alarm.""" def __init__( diff --git a/homeassistant/components/elkm1/alarm_control_panel.py b/homeassistant/components/elkm1/alarm_control_panel.py index b217988f8d8..3e9ab114837 100644 --- a/homeassistant/components/elkm1/alarm_control_panel.py +++ b/homeassistant/components/elkm1/alarm_control_panel.py @@ -8,7 +8,7 @@ import voluptuous as vol from homeassistant.components.alarm_control_panel import ( ATTR_CHANGED_BY, FORMAT_NUMBER, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -109,7 +109,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) -class ElkArea(ElkAttachedEntity, AlarmControlPanel, RestoreEntity): +class ElkArea(ElkAttachedEntity, AlarmControlPanelEntity, RestoreEntity): """Representation of an Area / Partition within the ElkM1 alarm panel.""" def __init__(self, element, elk, elk_data): diff --git a/homeassistant/components/envisalink/alarm_control_panel.py b/homeassistant/components/envisalink/alarm_control_panel.py index 62c57daf19d..670dc78392f 100644 --- a/homeassistant/components/envisalink/alarm_control_panel.py +++ b/homeassistant/components/envisalink/alarm_control_panel.py @@ -5,7 +5,7 @@ import voluptuous as vol from homeassistant.components.alarm_control_panel import ( FORMAT_NUMBER, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -96,7 +96,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= return True -class EnvisalinkAlarm(EnvisalinkDevice, AlarmControlPanel): +class EnvisalinkAlarm(EnvisalinkDevice, AlarmControlPanelEntity): """Representation of an Envisalink-based alarm panel.""" def __init__( diff --git a/homeassistant/components/homekit_controller/alarm_control_panel.py b/homeassistant/components/homekit_controller/alarm_control_panel.py index 9e712b4127f..0b8f0b3b2f8 100644 --- a/homeassistant/components/homekit_controller/alarm_control_panel.py +++ b/homeassistant/components/homekit_controller/alarm_control_panel.py @@ -3,7 +3,7 @@ import logging from aiohomekit.model.characteristics import CharacteristicsTypes -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, SUPPORT_ALARM_ARM_HOME, @@ -51,13 +51,13 @@ async def async_setup_entry(hass, config_entry, async_add_entities): if service["stype"] != "security-system": return False info = {"aid": aid, "iid": service["iid"]} - async_add_entities([HomeKitAlarmControlPanel(conn, info)], True) + async_add_entities([HomeKitAlarmControlPanelEntity(conn, info)], True) return True conn.add_listener(async_add_service) -class HomeKitAlarmControlPanel(HomeKitEntity, AlarmControlPanel): +class HomeKitAlarmControlPanelEntity(HomeKitEntity, AlarmControlPanelEntity): """Representation of a Homekit Alarm Control Panel.""" def get_characteristic_types(self): diff --git a/homeassistant/components/homematicip_cloud/alarm_control_panel.py b/homeassistant/components/homematicip_cloud/alarm_control_panel.py index fd3958344f5..7e06cd60536 100644 --- a/homeassistant/components/homematicip_cloud/alarm_control_panel.py +++ b/homeassistant/components/homematicip_cloud/alarm_control_panel.py @@ -4,7 +4,7 @@ from typing import Any, Dict from homematicip.functionalHomes import SecurityAndAlarmHome -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, SUPPORT_ALARM_ARM_HOME, @@ -32,10 +32,10 @@ async def async_setup_entry( ) -> None: """Set up the HomematicIP alrm control panel from a config entry.""" hap = hass.data[HMIPC_DOMAIN][config_entry.unique_id] - async_add_entities([HomematicipAlarmControlPanel(hap)]) + async_add_entities([HomematicipAlarmControlPanelEntity(hap)]) -class HomematicipAlarmControlPanel(AlarmControlPanel): +class HomematicipAlarmControlPanelEntity(AlarmControlPanelEntity): """Representation of an alarm control panel.""" def __init__(self, hap: HomematicipHAP) -> None: diff --git a/homeassistant/components/ialarm/alarm_control_panel.py b/homeassistant/components/ialarm/alarm_control_panel.py index 24ab2bc7a80..67c9ec891a6 100644 --- a/homeassistant/components/ialarm/alarm_control_panel.py +++ b/homeassistant/components/ialarm/alarm_control_panel.py @@ -62,7 +62,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([ialarm], True) -class IAlarmPanel(alarm.AlarmControlPanel): +class IAlarmPanel(alarm.AlarmControlPanelEntity): """Representation of an iAlarm status.""" def __init__(self, name, code, username, password, url): diff --git a/homeassistant/components/ifttt/alarm_control_panel.py b/homeassistant/components/ifttt/alarm_control_panel.py index 2c281e58c48..783cd16fefe 100644 --- a/homeassistant/components/ifttt/alarm_control_panel.py +++ b/homeassistant/components/ifttt/alarm_control_panel.py @@ -8,7 +8,7 @@ from homeassistant.components.alarm_control_panel import ( FORMAT_NUMBER, FORMAT_TEXT, PLATFORM_SCHEMA, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -108,7 +108,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class IFTTTAlarmPanel(AlarmControlPanel): +class IFTTTAlarmPanel(AlarmControlPanelEntity): """Representation of an alarm control panel controlled through IFTTT.""" def __init__( diff --git a/homeassistant/components/lupusec/alarm_control_panel.py b/homeassistant/components/lupusec/alarm_control_panel.py index c6ad817bfbf..78f476be751 100644 --- a/homeassistant/components/lupusec/alarm_control_panel.py +++ b/homeassistant/components/lupusec/alarm_control_panel.py @@ -1,7 +1,7 @@ """Support for Lupusec System alarm control panels.""" from datetime import timedelta -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, SUPPORT_ALARM_ARM_HOME, @@ -32,7 +32,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(alarm_devices) -class LupusecAlarm(LupusecDevice, AlarmControlPanel): +class LupusecAlarm(LupusecDevice, AlarmControlPanelEntity): """An alarm_control_panel implementation for Lupusec.""" @property diff --git a/homeassistant/components/manual/alarm_control_panel.py b/homeassistant/components/manual/alarm_control_panel.py index 89f5e34213b..4e361b5086c 100644 --- a/homeassistant/components/manual/alarm_control_panel.py +++ b/homeassistant/components/manual/alarm_control_panel.py @@ -164,7 +164,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class ManualAlarm(alarm.AlarmControlPanel, RestoreEntity): +class ManualAlarm(alarm.AlarmControlPanelEntity, RestoreEntity): """ Representation of an alarm status. diff --git a/homeassistant/components/manual_mqtt/alarm_control_panel.py b/homeassistant/components/manual_mqtt/alarm_control_panel.py index 00a82118ec4..548227173f4 100644 --- a/homeassistant/components/manual_mqtt/alarm_control_panel.py +++ b/homeassistant/components/manual_mqtt/alarm_control_panel.py @@ -184,7 +184,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class ManualMQTTAlarm(alarm.AlarmControlPanel): +class ManualMQTTAlarm(alarm.AlarmControlPanelEntity): """ Representation of an alarm status. diff --git a/homeassistant/components/mqtt/alarm_control_panel.py b/homeassistant/components/mqtt/alarm_control_panel.py index ad39eecdcca..dae94b5a781 100644 --- a/homeassistant/components/mqtt/alarm_control_panel.py +++ b/homeassistant/components/mqtt/alarm_control_panel.py @@ -135,7 +135,7 @@ class MqttAlarm( MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, - alarm.AlarmControlPanel, + alarm.AlarmControlPanelEntity, ): """Representation of a MQTT alarm status.""" diff --git a/homeassistant/components/ness_alarm/alarm_control_panel.py b/homeassistant/components/ness_alarm/alarm_control_panel.py index 8181e54640d..d92e944c10f 100644 --- a/homeassistant/components/ness_alarm/alarm_control_panel.py +++ b/homeassistant/components/ness_alarm/alarm_control_panel.py @@ -34,7 +34,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities([device]) -class NessAlarmPanel(alarm.AlarmControlPanel): +class NessAlarmPanel(alarm.AlarmControlPanelEntity): """Representation of a Ness alarm panel.""" def __init__(self, client, name): diff --git a/homeassistant/components/nx584/alarm_control_panel.py b/homeassistant/components/nx584/alarm_control_panel.py index 7a064ef0d00..bc2c5034ed1 100644 --- a/homeassistant/components/nx584/alarm_control_panel.py +++ b/homeassistant/components/nx584/alarm_control_panel.py @@ -52,7 +52,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): return -class NX584Alarm(alarm.AlarmControlPanel): +class NX584Alarm(alarm.AlarmControlPanelEntity): """Representation of a NX584-based alarm panel.""" def __init__(self, hass, url, name): diff --git a/homeassistant/components/point/alarm_control_panel.py b/homeassistant/components/point/alarm_control_panel.py index d84c408e43a..25e135f59cb 100644 --- a/homeassistant/components/point/alarm_control_panel.py +++ b/homeassistant/components/point/alarm_control_panel.py @@ -1,7 +1,7 @@ """Support for Minut Point.""" import logging -from homeassistant.components.alarm_control_panel import DOMAIN, AlarmControlPanel +from homeassistant.components.alarm_control_panel import DOMAIN, AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import SUPPORT_ALARM_ARM_AWAY from homeassistant.const import ( STATE_ALARM_ARMED_AWAY, @@ -36,7 +36,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) -class MinutPointAlarmControl(AlarmControlPanel): +class MinutPointAlarmControl(AlarmControlPanelEntity): """The platform class required by Home Assistant.""" def __init__(self, point_client, home_id): diff --git a/homeassistant/components/satel_integra/alarm_control_panel.py b/homeassistant/components/satel_integra/alarm_control_panel.py index 8a240794580..6f1532e1013 100644 --- a/homeassistant/components/satel_integra/alarm_control_panel.py +++ b/homeassistant/components/satel_integra/alarm_control_panel.py @@ -52,7 +52,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(devices) -class SatelIntegraAlarmPanel(alarm.AlarmControlPanel): +class SatelIntegraAlarmPanel(alarm.AlarmControlPanelEntity): """Representation of an AlarmDecoder-based alarm panel.""" def __init__(self, controller, name, arm_home_mode, partition_id): diff --git a/homeassistant/components/simplisafe/alarm_control_panel.py b/homeassistant/components/simplisafe/alarm_control_panel.py index 867a1044856..7998de463f6 100644 --- a/homeassistant/components/simplisafe/alarm_control_panel.py +++ b/homeassistant/components/simplisafe/alarm_control_panel.py @@ -21,7 +21,7 @@ from simplipy.websocket import ( from homeassistant.components.alarm_control_panel import ( FORMAT_NUMBER, FORMAT_TEXT, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -72,7 +72,7 @@ async def async_setup_entry(hass, entry, async_add_entities): ) -class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanel): +class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity): """Representation of a SimpliSafe alarm.""" def __init__(self, simplisafe, system): diff --git a/homeassistant/components/spc/alarm_control_panel.py b/homeassistant/components/spc/alarm_control_panel.py index 982c0fe2bab..86adc588038 100644 --- a/homeassistant/components/spc/alarm_control_panel.py +++ b/homeassistant/components/spc/alarm_control_panel.py @@ -47,7 +47,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities([SpcAlarm(area=area, api=api) for area in api.areas.values()]) -class SpcAlarm(alarm.AlarmControlPanel): +class SpcAlarm(alarm.AlarmControlPanelEntity): """Representation of the SPC alarm panel.""" def __init__(self, area, api): diff --git a/homeassistant/components/template/alarm_control_panel.py b/homeassistant/components/template/alarm_control_panel.py index 937119ff6d4..3d6ac1dbe0e 100644 --- a/homeassistant/components/template/alarm_control_panel.py +++ b/homeassistant/components/template/alarm_control_panel.py @@ -7,7 +7,7 @@ from homeassistant.components.alarm_control_panel import ( ENTITY_ID_FORMAT, FORMAT_NUMBER, PLATFORM_SCHEMA, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -117,7 +117,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(alarm_control_panels) -class AlarmControlPanelTemplate(AlarmControlPanel): +class AlarmControlPanelTemplate(AlarmControlPanelEntity): """Representation of a templated Alarm Control Panel.""" def __init__( diff --git a/homeassistant/components/totalconnect/alarm_control_panel.py b/homeassistant/components/totalconnect/alarm_control_panel.py index 2a32ae89b4a..632673233ec 100644 --- a/homeassistant/components/totalconnect/alarm_control_panel.py +++ b/homeassistant/components/totalconnect/alarm_control_panel.py @@ -36,7 +36,7 @@ async def async_setup_entry(hass, entry, async_add_entities) -> None: async_add_entities(alarms, True) -class TotalConnectAlarm(alarm.AlarmControlPanel): +class TotalConnectAlarm(alarm.AlarmControlPanelEntity): """Represent an TotalConnect status.""" def __init__(self, name, location_id, client): diff --git a/homeassistant/components/verisure/alarm_control_panel.py b/homeassistant/components/verisure/alarm_control_panel.py index 78a09e439d7..1ef3eb442cd 100644 --- a/homeassistant/components/verisure/alarm_control_panel.py +++ b/homeassistant/components/verisure/alarm_control_panel.py @@ -40,7 +40,7 @@ def set_arm_state(state, code=None): hub.update_overview(no_throttle=True) -class VerisureAlarm(alarm.AlarmControlPanel): +class VerisureAlarm(alarm.AlarmControlPanelEntity): """Representation of a Verisure alarm status.""" def __init__(self): diff --git a/homeassistant/components/wink/alarm_control_panel.py b/homeassistant/components/wink/alarm_control_panel.py index 733022e91b1..89dc6a46815 100644 --- a/homeassistant/components/wink/alarm_control_panel.py +++ b/homeassistant/components/wink/alarm_control_panel.py @@ -35,7 +35,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([WinkCameraDevice(camera, hass)]) -class WinkCameraDevice(WinkDevice, alarm.AlarmControlPanel): +class WinkCameraDevice(WinkDevice, alarm.AlarmControlPanelEntity): """Representation a Wink camera alarm.""" async def async_added_to_hass(self): diff --git a/homeassistant/components/yale_smart_alarm/alarm_control_panel.py b/homeassistant/components/yale_smart_alarm/alarm_control_panel.py index 05823a511dd..d3504bcc6da 100644 --- a/homeassistant/components/yale_smart_alarm/alarm_control_panel.py +++ b/homeassistant/components/yale_smart_alarm/alarm_control_panel.py @@ -12,7 +12,7 @@ from yalesmartalarmclient.client import ( from homeassistant.components.alarm_control_panel import ( PLATFORM_SCHEMA, - AlarmControlPanel, + AlarmControlPanelEntity, ) from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, @@ -62,7 +62,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([YaleAlarmDevice(name, client)], True) -class YaleAlarmDevice(AlarmControlPanel): +class YaleAlarmDevice(AlarmControlPanelEntity): """Represent a Yale Smart Alarm.""" def __init__(self, name, client): diff --git a/tests/components/alarm_control_panel/test_init.py b/tests/components/alarm_control_panel/test_init.py new file mode 100644 index 00000000000..257d764468a --- /dev/null +++ b/tests/components/alarm_control_panel/test_init.py @@ -0,0 +1,13 @@ +"""Tests for Alarm control panel.""" +from homeassistant.components import alarm_control_panel + + +def test_deprecated_base_class(caplog): + """Test deprecated base class.""" + + class CustomAlarm(alarm_control_panel.AlarmControlPanel): + def supported_features(self): + pass + + CustomAlarm() + assert "AlarmControlPanel is deprecated, modify CustomAlarm" in caplog.text diff --git a/tests/testing_config/custom_components/test/alarm_control_panel.py b/tests/testing_config/custom_components/test/alarm_control_panel.py index 065ea3e3980..5edb1ca2f70 100644 --- a/tests/testing_config/custom_components/test/alarm_control_panel.py +++ b/tests/testing_config/custom_components/test/alarm_control_panel.py @@ -3,7 +3,7 @@ Provide a mock alarm_control_panel platform. Call init before using it in your tests to ensure clean test data. """ -from homeassistant.components.alarm_control_panel import AlarmControlPanel +from homeassistant.components.alarm_control_panel import AlarmControlPanelEntity from homeassistant.components.alarm_control_panel.const import ( SUPPORT_ALARM_ARM_AWAY, SUPPORT_ALARM_ARM_HOME, @@ -52,7 +52,7 @@ async def async_setup_platform( async_add_entities_callback(list(ENTITIES.values())) -class MockAlarm(MockEntity, AlarmControlPanel): +class MockAlarm(MockEntity, AlarmControlPanelEntity): """Mock Alarm control panel class.""" def __init__(self, **values):