From c868353459d848ba87377105a4d3b947a7388812 Mon Sep 17 00:00:00 2001 From: Andre Lengwenus Date: Tue, 25 May 2021 14:17:36 +0200 Subject: [PATCH] Code cleanup in LCN (#48074) --- homeassistant/components/lcn/__init__.py | 4 +- homeassistant/components/lcn/config_flow.py | 5 +-- homeassistant/components/lcn/const.py | 2 + homeassistant/components/lcn/helpers.py | 44 +++------------------ homeassistant/components/lcn/services.py | 15 ++----- homeassistant/components/lcn/services.yaml | 2 +- 6 files changed, 15 insertions(+), 57 deletions(-) diff --git a/homeassistant/components/lcn/__init__.py b/homeassistant/components/lcn/__init__.py index faf524f6585..75fd91c28f5 100644 --- a/homeassistant/components/lcn/__init__.py +++ b/homeassistant/components/lcn/__init__.py @@ -15,13 +15,11 @@ from homeassistant.const import ( from homeassistant.helpers import entity_registry as er from homeassistant.helpers.entity import Entity -from .const import CONF_DIM_MODE, CONF_SK_NUM_TRIES, CONNECTION, DOMAIN +from .const import CONF_DIM_MODE, CONF_SK_NUM_TRIES, CONNECTION, DOMAIN, PLATFORMS from .helpers import generate_unique_id, import_lcn_config from .schemas import CONFIG_SCHEMA # noqa: F401 from .services import SERVICES -PLATFORMS = ["binary_sensor", "climate", "cover", "light", "scene", "sensor", "switch"] - _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/lcn/config_flow.py b/homeassistant/components/lcn/config_flow.py index 0d6216bf1e1..698a4dcedfe 100644 --- a/homeassistant/components/lcn/config_flow.py +++ b/homeassistant/components/lcn/config_flow.py @@ -89,7 +89,4 @@ class LcnFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): self.hass.config_entries.async_update_entry(entry, data=data) return self.async_abort(reason="existing_configuration_updated") - return self.async_create_entry( - title=f"{host_name}", - data=data, - ) + return self.async_create_entry(title=f"{host_name}", data=data) diff --git a/homeassistant/components/lcn/const.py b/homeassistant/components/lcn/const.py index 4e3e765ace0..3458c78f853 100644 --- a/homeassistant/components/lcn/const.py +++ b/homeassistant/components/lcn/const.py @@ -10,6 +10,8 @@ from homeassistant.const import ( VOLT, ) +PLATFORMS = ["binary_sensor", "climate", "cover", "light", "scene", "sensor", "switch"] + DOMAIN = "lcn" DATA_LCN = "lcn" DEFAULT_NAME = "pchk" diff --git a/homeassistant/components/lcn/helpers.py b/homeassistant/components/lcn/helpers.py index 3f93ec95a69..0687491b052 100644 --- a/homeassistant/components/lcn/helpers.py +++ b/homeassistant/components/lcn/helpers.py @@ -224,44 +224,12 @@ def is_address(value): addr = (int(matcher.group("seg_id")), int(matcher.group("id")), is_group) conn_id = matcher.group("conn_id") return addr, conn_id - raise vol.error.Invalid("Not a valid address string.") + raise ValueError(f"{value} is not a valid address string") -def is_relays_states_string(states_string): +def is_states_string(states_string): """Validate the given states string and return states list.""" - if len(states_string) == 8: - states = [] - for state_string in states_string: - if state_string == "1": - state = "ON" - elif state_string == "0": - state = "OFF" - elif state_string == "T": - state = "TOGGLE" - elif state_string == "-": - state = "NOCHANGE" - else: - raise vol.error.Invalid("Not a valid relay state string.") - states.append(state) - return states - raise vol.error.Invalid("Wrong length of relay state string.") - - -def is_key_lock_states_string(states_string): - """Validate the given states string and returns states list.""" - if len(states_string) == 8: - states = [] - for state_string in states_string: - if state_string == "1": - state = "ON" - elif state_string == "0": - state = "OFF" - elif state_string == "T": - state = "TOGGLE" - elif state_string == "-": - state = "NOCHANGE" - else: - raise vol.error.Invalid("Not a valid key lock state string.") - states.append(state) - return states - raise vol.error.Invalid("Wrong length of key lock state string.") + if len(states_string) != 8: + raise ValueError("Invalid length of states string") + states = {"1": "ON", "0": "OFF", "T": "TOGGLE", "-": "NOCHANGE"} + return [states[state_string] for state_string in states_string] diff --git a/homeassistant/components/lcn/services.py b/homeassistant/components/lcn/services.py index c6c33270264..fa74f556593 100644 --- a/homeassistant/components/lcn/services.py +++ b/homeassistant/components/lcn/services.py @@ -40,12 +40,7 @@ from .const import ( VAR_UNITS, VARIABLES, ) -from .helpers import ( - get_device_connection, - is_address, - is_key_lock_states_string, - is_relays_states_string, -) +from .helpers import get_device_connection, is_address, is_states_string class LcnServiceCall: @@ -150,9 +145,7 @@ class OutputToggle(LcnServiceCall): class Relays(LcnServiceCall): """Set the relays status.""" - schema = LcnServiceCall.schema.extend( - {vol.Required(CONF_STATE): is_relays_states_string} - ) + schema = LcnServiceCall.schema.extend({vol.Required(CONF_STATE): is_states_string}) async def async_call_service(self, service): """Execute service call.""" @@ -330,7 +323,7 @@ class LockKeys(LcnServiceCall): vol.Optional(CONF_TABLE, default="a"): vol.All( vol.Upper, cv.matches_regex(r"^[A-D]$") ), - vol.Required(CONF_STATE): is_key_lock_states_string, + vol.Required(CONF_STATE): is_states_string, vol.Optional(CONF_TIME, default=0): cv.positive_int, vol.Optional(CONF_TIME_UNIT, default=TIME_SECONDS): vol.All( vol.Upper, vol.In(TIME_UNITS) @@ -361,7 +354,7 @@ class LockKeys(LcnServiceCall): else: await device_connection.lock_keys(table_id, states) - handler = device_connection.status_request_handler + handler = device_connection.status_requests_handler await handler.request_status_locked_keys_timeout() diff --git a/homeassistant/components/lcn/services.yaml b/homeassistant/components/lcn/services.yaml index 8ca4a6f3d4e..299e1df5777 100644 --- a/homeassistant/components/lcn/services.yaml +++ b/homeassistant/components/lcn/services.yaml @@ -521,7 +521,7 @@ lock_keys: table: name: Table description: "Table with keys to lock (must be A for interval)." - example: "a5" + example: "a" default: a selector: text: