From df434fc5e22c3c32ea7504241168025931ac04f9 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 18 Sep 2024 11:07:13 +0200 Subject: [PATCH] Move shared rflink constants to separate module (#126173) --- homeassistant/components/rflink/__init__.py | 54 +++++-------------- .../components/rflink/binary_sensor.py | 3 +- homeassistant/components/rflink/const.py | 39 ++++++++++++++ homeassistant/components/rflink/cover.py | 4 +- homeassistant/components/rflink/light.py | 4 +- homeassistant/components/rflink/sensor.py | 4 +- homeassistant/components/rflink/switch.py | 4 +- homeassistant/components/rflink/utils.py | 14 +++++ 8 files changed, 75 insertions(+), 51 deletions(-) create mode 100644 homeassistant/components/rflink/const.py diff --git a/homeassistant/components/rflink/__init__.py b/homeassistant/components/rflink/__init__.py index a7525b7caf5..5f334e33fc1 100644 --- a/homeassistant/components/rflink/__init__.py +++ b/homeassistant/components/rflink/__init__.py @@ -32,38 +32,32 @@ from homeassistant.helpers.event import async_call_later from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.typing import ConfigType -from .utils import brightness_to_rflink +from .const import ( + DATA_DEVICE_REGISTER, + DATA_ENTITY_LOOKUP, + DEFAULT_SIGNAL_REPETITIONS, + EVENT_KEY_COMMAND, + EVENT_KEY_ID, + EVENT_KEY_SENSOR, + SIGNAL_AVAILABILITY, + SIGNAL_HANDLE_EVENT, + TMP_ENTITY, +) +from .utils import brightness_to_rflink, identify_event_type _LOGGER = logging.getLogger(__name__) -ATTR_EVENT = "event" - -CONF_ALIASES = "aliases" -CONF_GROUP_ALIASES = "group_aliases" -CONF_GROUP = "group" -CONF_NOGROUP_ALIASES = "nogroup_aliases" -CONF_DEVICE_DEFAULTS = "device_defaults" -CONF_AUTOMATIC_ADD = "automatic_add" -CONF_FIRE_EVENT = "fire_event" CONF_IGNORE_DEVICES = "ignore_devices" CONF_RECONNECT_INTERVAL = "reconnect_interval" -CONF_SIGNAL_REPETITIONS = "signal_repetitions" CONF_WAIT_FOR_ACK = "wait_for_ack" CONF_KEEPALIVE_IDLE = "tcp_keepalive_idle_timer" -DATA_DEVICE_REGISTER = "rflink_device_register" -DATA_ENTITY_LOOKUP = "rflink_entity_lookup" DATA_ENTITY_GROUP_LOOKUP = "rflink_entity_group_only_lookup" DEFAULT_RECONNECT_INTERVAL = 10 -DEFAULT_SIGNAL_REPETITIONS = 1 DEFAULT_TCP_KEEPALIVE_IDLE_TIMER = 3600 CONNECTION_TIMEOUT = 10 EVENT_BUTTON_PRESSED = "button_pressed" -EVENT_KEY_COMMAND = "command" -EVENT_KEY_ID = "id" -EVENT_KEY_SENSOR = "sensor" -EVENT_KEY_UNIT = "unit" RFLINK_GROUP_COMMANDS = ["allon", "alloff"] @@ -71,20 +65,8 @@ DOMAIN = "rflink" SERVICE_SEND_COMMAND = "send_command" -SIGNAL_AVAILABILITY = "rflink_device_available" -SIGNAL_HANDLE_EVENT = "rflink_handle_event_{}" SIGNAL_EVENT = "rflink_event" -TMP_ENTITY = "tmp.{}" - -DEVICE_DEFAULTS_SCHEMA = vol.Schema( - { - vol.Optional(CONF_FIRE_EVENT, default=False): cv.boolean, - vol.Optional( - CONF_SIGNAL_REPETITIONS, default=DEFAULT_SIGNAL_REPETITIONS - ): vol.Coerce(int), - } -) CONFIG_SCHEMA = vol.Schema( { @@ -113,18 +95,6 @@ SEND_COMMAND_SCHEMA = vol.Schema( ) -def identify_event_type(event): - """Look at event to determine type of device. - - Async friendly. - """ - if EVENT_KEY_COMMAND in event: - return EVENT_KEY_COMMAND - if EVENT_KEY_SENSOR in event: - return EVENT_KEY_SENSOR - return "unknown" - - async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Set up the Rflink component.""" # Allow entities to register themselves by device_id to be looked up when diff --git a/homeassistant/components/rflink/binary_sensor.py b/homeassistant/components/rflink/binary_sensor.py index b731037fbfc..949130b54e6 100644 --- a/homeassistant/components/rflink/binary_sensor.py +++ b/homeassistant/components/rflink/binary_sensor.py @@ -26,7 +26,8 @@ import homeassistant.helpers.event as evt from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from . import CONF_ALIASES, RflinkDevice +from . import RflinkDevice +from .const import CONF_ALIASES CONF_OFF_DELAY = "off_delay" DEFAULT_FORCE_UPDATE = False diff --git a/homeassistant/components/rflink/const.py b/homeassistant/components/rflink/const.py new file mode 100644 index 00000000000..80168a86f94 --- /dev/null +++ b/homeassistant/components/rflink/const.py @@ -0,0 +1,39 @@ +"""Support for Rflink devices.""" + +from __future__ import annotations + +import voluptuous as vol + +import homeassistant.helpers.config_validation as cv + +CONF_ALIASES = "aliases" +CONF_GROUP_ALIASES = "group_aliases" +CONF_GROUP = "group" +CONF_NOGROUP_ALIASES = "nogroup_aliases" +CONF_DEVICE_DEFAULTS = "device_defaults" +CONF_AUTOMATIC_ADD = "automatic_add" +CONF_FIRE_EVENT = "fire_event" +CONF_SIGNAL_REPETITIONS = "signal_repetitions" + +DATA_DEVICE_REGISTER = "rflink_device_register" +DATA_ENTITY_LOOKUP = "rflink_entity_lookup" +DEFAULT_SIGNAL_REPETITIONS = 1 + +EVENT_KEY_COMMAND = "command" +EVENT_KEY_ID = "id" +EVENT_KEY_SENSOR = "sensor" +EVENT_KEY_UNIT = "unit" + +SIGNAL_AVAILABILITY = "rflink_device_available" +SIGNAL_HANDLE_EVENT = "rflink_handle_event_{}" + +TMP_ENTITY = "tmp.{}" + +DEVICE_DEFAULTS_SCHEMA = vol.Schema( + { + vol.Optional(CONF_FIRE_EVENT, default=False): cv.boolean, + vol.Optional( + CONF_SIGNAL_REPETITIONS, default=DEFAULT_SIGNAL_REPETITIONS + ): vol.Coerce(int), + } +) diff --git a/homeassistant/components/rflink/cover.py b/homeassistant/components/rflink/cover.py index 54a84a68a2e..f1298367a4f 100644 --- a/homeassistant/components/rflink/cover.py +++ b/homeassistant/components/rflink/cover.py @@ -18,7 +18,8 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from . import ( +from . import RflinkCommand +from .const import ( CONF_ALIASES, CONF_DEVICE_DEFAULTS, CONF_FIRE_EVENT, @@ -27,7 +28,6 @@ from . import ( CONF_NOGROUP_ALIASES, CONF_SIGNAL_REPETITIONS, DEVICE_DEFAULTS_SCHEMA, - RflinkCommand, ) _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/rflink/light.py b/homeassistant/components/rflink/light.py index b29bb4f1d48..68aa17778da 100644 --- a/homeassistant/components/rflink/light.py +++ b/homeassistant/components/rflink/light.py @@ -20,7 +20,8 @@ import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from . import ( +from . import SwitchableRflinkDevice +from .const import ( CONF_ALIASES, CONF_AUTOMATIC_ADD, CONF_DEVICE_DEFAULTS, @@ -33,7 +34,6 @@ from . import ( DEVICE_DEFAULTS_SCHEMA, EVENT_KEY_COMMAND, EVENT_KEY_ID, - SwitchableRflinkDevice, ) from .utils import brightness_to_rflink, rflink_to_brightness diff --git a/homeassistant/components/rflink/sensor.py b/homeassistant/components/rflink/sensor.py index f3c3df7f46b..d89670f8a1b 100644 --- a/homeassistant/components/rflink/sensor.py +++ b/homeassistant/components/rflink/sensor.py @@ -40,7 +40,8 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from . import ( +from . import RflinkDevice +from .const import ( CONF_ALIASES, CONF_AUTOMATIC_ADD, DATA_DEVICE_REGISTER, @@ -51,7 +52,6 @@ from . import ( SIGNAL_AVAILABILITY, SIGNAL_HANDLE_EVENT, TMP_ENTITY, - RflinkDevice, ) SENSOR_TYPES = ( diff --git a/homeassistant/components/rflink/switch.py b/homeassistant/components/rflink/switch.py index af4bbc43700..9f85a391662 100644 --- a/homeassistant/components/rflink/switch.py +++ b/homeassistant/components/rflink/switch.py @@ -14,7 +14,8 @@ import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from . import ( +from . import SwitchableRflinkDevice +from .const import ( CONF_ALIASES, CONF_DEVICE_DEFAULTS, CONF_FIRE_EVENT, @@ -23,7 +24,6 @@ from . import ( CONF_NOGROUP_ALIASES, CONF_SIGNAL_REPETITIONS, DEVICE_DEFAULTS_SCHEMA, - SwitchableRflinkDevice, ) PARALLEL_UPDATES = 0 diff --git a/homeassistant/components/rflink/utils.py b/homeassistant/components/rflink/utils.py index 9738d9f74fa..7a05c596773 100644 --- a/homeassistant/components/rflink/utils.py +++ b/homeassistant/components/rflink/utils.py @@ -1,5 +1,7 @@ """RFLink integration utils.""" +from .const import EVENT_KEY_COMMAND, EVENT_KEY_SENSOR + def brightness_to_rflink(brightness: int) -> int: """Convert 0-255 brightness to RFLink dim level (0-15).""" @@ -9,3 +11,15 @@ def brightness_to_rflink(brightness: int) -> int: def rflink_to_brightness(dim_level: int) -> int: """Convert RFLink dim level (0-15) to 0-255 brightness.""" return int(dim_level * 17) + + +def identify_event_type(event): + """Look at event to determine type of device. + + Async friendly. + """ + if EVENT_KEY_COMMAND in event: + return EVENT_KEY_COMMAND + if EVENT_KEY_SENSOR in event: + return EVENT_KEY_SENSOR + return "unknown"