From 6b4b625bc8807e7ea0f8883a7e26dbc609218b00 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 18 Mar 2022 05:03:25 +0000 Subject: [PATCH 01/17] Add support to specify baud speed --- homeassistant/components/sms/__init__.py | 17 +++++++++++---- homeassistant/components/sms/config_flow.py | 24 ++++++++++++++++----- homeassistant/components/sms/const.py | 2 ++ homeassistant/components/sms/strings.json | 5 ++++- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 9b091942556ed..366e26b8d4017 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -1,5 +1,7 @@ """The sms component.""" -import voluptuous as vol +import logging + +import voluptuous as vol # pylint: disable=import-error from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.const import CONF_DEVICE, Platform @@ -7,9 +9,11 @@ from homeassistant.helpers import config_validation as cv from homeassistant.helpers.typing import ConfigType -from .const import DOMAIN, SMS_GATEWAY +from .const import CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED, DOMAIN, SMS_GATEWAY from .gateway import create_sms_gateway +_LOGGER = logging.getLogger(__name__) + PLATFORMS = [Platform.SENSOR] CONFIG_SCHEMA = vol.Schema( @@ -21,7 +25,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Configure Gammu state machine.""" hass.data.setdefault(DOMAIN, {}) - if not (sms_config := config.get(DOMAIN, {})): + if not (sms_config := config.get(DOMAIN, {})): # pylint: disable=superfluous-parens return True hass.async_create_task( @@ -39,7 +43,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Configure Gammu state machine.""" device = entry.data[CONF_DEVICE] - config = {"Device": device, "Connection": "at"} + baud_speed = entry.data[CONF_BAUD_SPEED] + connection_mode = "at" + if baud_speed is not DEFAULT_BAUD_SPEED: + connection_mode += str(baud_speed) + config = {"Device": device, "Connection": connection_mode} + _LOGGER.debug("Connecting mode:%s", connection_mode) gateway = await create_sms_gateway(config, hass) if not gateway: return False diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 37b78ee3ea390..6413a1278af9c 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -2,17 +2,27 @@ import logging import gammu # pylint: disable=import-error -import voluptuous as vol +import voluptuous as vol # pylint: disable=import-error from homeassistant import config_entries, core, exceptions from homeassistant.const import CONF_DEVICE +import homeassistant.helpers.config_validation as cv -from .const import DOMAIN +from .const import ( # pylint: disable=unused-import + CONF_BAUD_SPEED, + DEFAULT_BAUD_SPEED, + DOMAIN, +) from .gateway import create_sms_gateway _LOGGER = logging.getLogger(__name__) -DATA_SCHEMA = vol.Schema({vol.Required(CONF_DEVICE): str}) +DATA_SCHEMA = vol.Schema( + { + vol.Required(CONF_DEVICE): str, + vol.Optional(CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED): cv.positive_int, + } +) async def get_imei_from_config(hass: core.HomeAssistant, data): @@ -21,13 +31,17 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): Data has the keys from DATA_SCHEMA with values provided by the user. """ device = data[CONF_DEVICE] - config = {"Device": device, "Connection": "at"} + baud_speed = data[CONF_BAUD_SPEED] + connection_mode = "at" + if baud_speed is not DEFAULT_BAUD_SPEED: + connection_mode += str(baud_speed) + config = {"Device": device, "Connection": connection_mode} gateway = await create_sms_gateway(config, hass) if not gateway: raise CannotConnect try: imei = await gateway.get_imei_async() - except gammu.GSMError as err: + except gammu.GSMError as err: # pylint: disable=no-member raise CannotConnect from err finally: await gateway.terminate_async() diff --git a/homeassistant/components/sms/const.py b/homeassistant/components/sms/const.py index ab2c15a0c49d1..c082652dce371 100644 --- a/homeassistant/components/sms/const.py +++ b/homeassistant/components/sms/const.py @@ -3,3 +3,5 @@ DOMAIN = "sms" SMS_GATEWAY = "SMS_GATEWAY" SMS_STATE_UNREAD = "UnRead" +CONF_BAUD_SPEED = "baud_speed" +DEFAULT_BAUD_SPEED = 0 diff --git a/homeassistant/components/sms/strings.json b/homeassistant/components/sms/strings.json index 872cb17cbea20..10dd2e1bc7fff 100644 --- a/homeassistant/components/sms/strings.json +++ b/homeassistant/components/sms/strings.json @@ -3,7 +3,10 @@ "step": { "user": { "title": "Connect to the modem", - "data": { "device": "Device" } + "data": { + "device": "Device", + "baud_speed": "Baud Speed (0 for auto)" + } } }, "error": { From 4f8e626d49d73178f8373f0f850f322c52d4b7e1 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 18 Mar 2022 13:49:59 -0700 Subject: [PATCH 02/17] Apply PR feedback --- homeassistant/components/sms/config_flow.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 6413a1278af9c..10a311c036388 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -2,11 +2,11 @@ import logging import gammu # pylint: disable=import-error -import voluptuous as vol # pylint: disable=import-error +import voluptuous as vol # pylint: disable=wrong-import-order, import-error from homeassistant import config_entries, core, exceptions from homeassistant.const import CONF_DEVICE -import homeassistant.helpers.config_validation as cv +from homeassistant.helpers import selector from .const import ( # pylint: disable=unused-import CONF_BAUD_SPEED, @@ -20,7 +20,16 @@ DATA_SCHEMA = vol.Schema( { vol.Required(CONF_DEVICE): str, - vol.Optional(CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED): cv.positive_int, + vol.Optional(CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED): selector.selector( + { + "select": { + "options": [ + {"value": DEFAULT_BAUD_SPEED, "label": "Auto"}, + {"value": 50, "label": "50"}, + ] + } + } + ), } ) From 9bf5b64bc35326325a7325878aab391f67f1df8a Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 18 Mar 2022 14:17:56 -0700 Subject: [PATCH 03/17] Apply PR feedback --- homeassistant/components/sms/config_flow.py | 10 ++------- homeassistant/components/sms/const.py | 24 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 10a311c036388..44c608390ddfd 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -11,6 +11,7 @@ from .const import ( # pylint: disable=unused-import CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED, + DEFAULT_BAUD_SPEEDS, DOMAIN, ) from .gateway import create_sms_gateway @@ -21,14 +22,7 @@ { vol.Required(CONF_DEVICE): str, vol.Optional(CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED): selector.selector( - { - "select": { - "options": [ - {"value": DEFAULT_BAUD_SPEED, "label": "Auto"}, - {"value": 50, "label": "50"}, - ] - } - } + {"select": {"options": DEFAULT_BAUD_SPEEDS}} ), } ) diff --git a/homeassistant/components/sms/const.py b/homeassistant/components/sms/const.py index c082652dce371..fd059acf282e6 100644 --- a/homeassistant/components/sms/const.py +++ b/homeassistant/components/sms/const.py @@ -4,4 +4,26 @@ SMS_GATEWAY = "SMS_GATEWAY" SMS_STATE_UNREAD = "UnRead" CONF_BAUD_SPEED = "baud_speed" -DEFAULT_BAUD_SPEED = 0 +DEFAULT_BAUD_SPEED = "0" +DEFAULT_BAUD_SPEEDS = [ + {"value": "0", "label": "Auto"}, + {"value": "50", "label": "50"}, + {"value": "75", "label": "75"}, + {"value": "110", "label": "110"}, + {"value": "134", "label": "134"}, + {"value": "150", "label": "150"}, + {"value": "200", "label": "200"}, + {"value": "300", "label": "300"}, + {"value": "600", "label": "600"}, + {"value": "1200", "label": "1200"}, + {"value": "1800", "label": "1800"}, + {"value": "2400", "label": "2400"}, + {"value": "4800", "label": "4800"}, + {"value": "9600", "label": "9600"}, + {"value": "19200", "label": "19200"}, + {"value": "28800", "label": "28800"}, + {"value": "38400", "label": "38400"}, + {"value": "57600", "label": "57600"}, + {"value": "76800", "label": "76800"}, + {"value": "115200", "label": "115200"}, +] From ca3716d6a542509a875f33cd8d3381598cabed33 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 18 Mar 2022 16:04:56 -0700 Subject: [PATCH 04/17] Support config via yaml --- homeassistant/components/sms/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 366e26b8d4017..b5214c478539f 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -17,7 +17,16 @@ PLATFORMS = [Platform.SENSOR] CONFIG_SCHEMA = vol.Schema( - {DOMAIN: vol.Schema({vol.Required(CONF_DEVICE): cv.isdevice})}, + { + DOMAIN: vol.Schema( + { + vol.Required(CONF_DEVICE): cv.isdevice, + vol.Optional( + CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED + ): cv.positive_int, + } + ) + }, extra=vol.ALLOW_EXTRA, ) From e5125fe83246a5983e4154feeaa83743e965ef59 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 18 Mar 2022 16:37:58 -0700 Subject: [PATCH 05/17] Fix comparasion bug --- homeassistant/components/sms/__init__.py | 6 +++--- homeassistant/components/sms/config_flow.py | 6 +++--- homeassistant/components/sms/gateway.py | 1 + 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index b5214c478539f..da7dd767c3c11 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -52,10 +52,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Configure Gammu state machine.""" device = entry.data[CONF_DEVICE] - baud_speed = entry.data[CONF_BAUD_SPEED] + baud_speed = str(entry.data[CONF_BAUD_SPEED]) connection_mode = "at" - if baud_speed is not DEFAULT_BAUD_SPEED: - connection_mode += str(baud_speed) + if baud_speed != str(DEFAULT_BAUD_SPEED): + connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} _LOGGER.debug("Connecting mode:%s", connection_mode) gateway = await create_sms_gateway(config, hass) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 44c608390ddfd..c14950441de7e 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -34,10 +34,10 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): Data has the keys from DATA_SCHEMA with values provided by the user. """ device = data[CONF_DEVICE] - baud_speed = data[CONF_BAUD_SPEED] + baud_speed = str(data[CONF_BAUD_SPEED]) connection_mode = "at" - if baud_speed is not DEFAULT_BAUD_SPEED: - connection_mode += str(baud_speed) + if baud_speed != str(DEFAULT_BAUD_SPEED): + connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} gateway = await create_sms_gateway(config, hass) if not gateway: diff --git a/homeassistant/components/sms/gateway.py b/homeassistant/components/sms/gateway.py index b88b81d1fb44d..2f0179d8c2a2b 100644 --- a/homeassistant/components/sms/gateway.py +++ b/homeassistant/components/sms/gateway.py @@ -16,6 +16,7 @@ class Gateway: def __init__(self, config, hass): """Initialize the sms gateway.""" + _LOGGER.debug("Init with connection mode:%s", config["Connection"]) self._worker = GammuAsyncWorker(self.sms_pull) self._worker.configure(config) self._hass = hass From 40b1da67e0dd234d5e057bbea7eb277bd894716f Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Sat, 19 Mar 2022 12:07:35 -0700 Subject: [PATCH 06/17] Remove deprecated yaml config --- homeassistant/components/sms/__init__.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index da7dd767c3c11..6f0cbd4c0e92e 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -17,16 +17,7 @@ PLATFORMS = [Platform.SENSOR] CONFIG_SCHEMA = vol.Schema( - { - DOMAIN: vol.Schema( - { - vol.Required(CONF_DEVICE): cv.isdevice, - vol.Optional( - CONF_BAUD_SPEED, default=DEFAULT_BAUD_SPEED - ): cv.positive_int, - } - ) - }, + {DOMAIN: vol.Schema({vol.Required(CONF_DEVICE): cv.isdevice})}, extra=vol.ALLOW_EXTRA, ) From 08b2036d02440cc3de8f6f9afcc981c2cdd1dc8c Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Sat, 19 Mar 2022 12:21:33 -0700 Subject: [PATCH 07/17] Deprecate yaml configuration --- homeassistant/components/sms/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 6f0cbd4c0e92e..ef91e0ab54e33 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -16,8 +16,17 @@ PLATFORMS = [Platform.SENSOR] +SMS_CONFIG_SCHEMA = {vol.Required(CONF_DEVICE): cv.isdevice} + CONFIG_SCHEMA = vol.Schema( - {DOMAIN: vol.Schema({vol.Required(CONF_DEVICE): cv.isdevice})}, + { + DOMAIN: vol.Schema( + vol.All( + cv.deprecated(CONF_DEVICE), + SMS_CONFIG_SCHEMA, + ), + ) + }, extra=vol.ALLOW_EXTRA, ) From 0276563b2d8bed65cad0e64f4a152fadc755584e Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Sat, 19 Mar 2022 21:31:54 -0700 Subject: [PATCH 08/17] Fix a bug where a bad AT connection is formed --- homeassistant/components/sms/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index ef91e0ab54e33..a9976cda80acf 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -52,9 +52,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Configure Gammu state machine.""" device = entry.data[CONF_DEVICE] - baud_speed = str(entry.data[CONF_BAUD_SPEED]) + baud_speed = str(entry.data.get(CONF_BAUD_SPEED)) connection_mode = "at" - if baud_speed != str(DEFAULT_BAUD_SPEED): + if baud_speed != "None" and baud_speed != str(DEFAULT_BAUD_SPEED): connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} _LOGGER.debug("Connecting mode:%s", connection_mode) From 90a669f4605e31d2ada29d2703b17ed8f69f70e0 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Sat, 19 Mar 2022 21:40:04 -0700 Subject: [PATCH 09/17] Minor refactoring --- homeassistant/components/sms/__init__.py | 6 +++--- homeassistant/components/sms/config_flow.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index a9976cda80acf..8f4351c56beb0 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -52,10 +52,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Configure Gammu state machine.""" device = entry.data[CONF_DEVICE] - baud_speed = str(entry.data.get(CONF_BAUD_SPEED)) connection_mode = "at" - if baud_speed != "None" and baud_speed != str(DEFAULT_BAUD_SPEED): - connection_mode += baud_speed + baud_speed = entry.data.get(CONF_BAUD_SPEED) + if baud_speed is not None and str(baud_speed) != str(DEFAULT_BAUD_SPEED): + connection_mode += str(baud_speed) config = {"Device": device, "Connection": connection_mode} _LOGGER.debug("Connecting mode:%s", connection_mode) gateway = await create_sms_gateway(config, hass) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index c14950441de7e..365967cfad64d 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -34,8 +34,8 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): Data has the keys from DATA_SCHEMA with values provided by the user. """ device = data[CONF_DEVICE] - baud_speed = str(data[CONF_BAUD_SPEED]) connection_mode = "at" + baud_speed = str(data[CONF_BAUD_SPEED]) if baud_speed != str(DEFAULT_BAUD_SPEED): connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} From e319f0618bd983097194a1d59cbc0fe649cef5b7 Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Sat, 19 Mar 2022 21:49:58 -0700 Subject: [PATCH 10/17] Use default value for dict.get --- homeassistant/components/sms/__init__.py | 4 ++-- homeassistant/components/sms/config_flow.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 8f4351c56beb0..5ea1dab820153 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -53,8 +53,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: device = entry.data[CONF_DEVICE] connection_mode = "at" - baud_speed = entry.data.get(CONF_BAUD_SPEED) - if baud_speed is not None and str(baud_speed) != str(DEFAULT_BAUD_SPEED): + baud_speed = str(entry.data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED)) + if baud_speed != str(DEFAULT_BAUD_SPEED): connection_mode += str(baud_speed) config = {"Device": device, "Connection": connection_mode} _LOGGER.debug("Connecting mode:%s", connection_mode) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 365967cfad64d..6edfeb67d038a 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -35,7 +35,7 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): """ device = data[CONF_DEVICE] connection_mode = "at" - baud_speed = str(data[CONF_BAUD_SPEED]) + baud_speed = str(data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED)) if baud_speed != str(DEFAULT_BAUD_SPEED): connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} From c03d18d69f23b63c8e3efcba37bf802013f1e42c Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:44:49 -0700 Subject: [PATCH 11/17] Update homeassistant/components/sms/__init__.py Co-authored-by: Franck Nijhof --- homeassistant/components/sms/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 5ea1dab820153..d91b93589037f 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -34,7 +34,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Configure Gammu state machine.""" hass.data.setdefault(DOMAIN, {}) - if not (sms_config := config.get(DOMAIN, {})): # pylint: disable=superfluous-parens + if not (sms_config := config.get(DOMAIN)): # pylint: disable=superfluous-parens return True hass.async_create_task( From 46b40a8915953951c1c3c89feeacd391eb6ed5ed Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:45:01 -0700 Subject: [PATCH 12/17] Update homeassistant/components/sms/strings.json Co-authored-by: Franck Nijhof --- homeassistant/components/sms/strings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sms/strings.json b/homeassistant/components/sms/strings.json index 10dd2e1bc7fff..b4a9279845d13 100644 --- a/homeassistant/components/sms/strings.json +++ b/homeassistant/components/sms/strings.json @@ -5,7 +5,7 @@ "title": "Connect to the modem", "data": { "device": "Device", - "baud_speed": "Baud Speed (0 for auto)" + "baud_speed": "Baud Speed" } } }, From 01a453b17468d80188e61f6c409f3bc5c4d36d8b Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:45:32 -0700 Subject: [PATCH 13/17] Update homeassistant/components/sms/config_flow.py Co-authored-by: Franck Nijhof --- homeassistant/components/sms/config_flow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 6edfeb67d038a..fff052f440f8d 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -36,7 +36,7 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): device = data[CONF_DEVICE] connection_mode = "at" baud_speed = str(data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED)) - if baud_speed != str(DEFAULT_BAUD_SPEED): + if baud_speed != DEFAULT_BAUD_SPEED: connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} gateway = await create_sms_gateway(config, hass) From b81d18a7d6f68b9d2c2e710119b71876cd3a513f Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Thu, 31 Mar 2022 11:54:50 -0700 Subject: [PATCH 14/17] Update homeassistant/components/sms/config_flow.py Co-authored-by: Franck Nijhof --- homeassistant/components/sms/config_flow.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index fff052f440f8d..85e172c8a3542 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -35,7 +35,7 @@ async def get_imei_from_config(hass: core.HomeAssistant, data): """ device = data[CONF_DEVICE] connection_mode = "at" - baud_speed = str(data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED)) + baud_speed = data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED) if baud_speed != DEFAULT_BAUD_SPEED: connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} From 25f93c689145e88a3c2f137edcd6f6b138423a4c Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Thu, 31 Mar 2022 11:59:21 -0700 Subject: [PATCH 15/17] Update __init__.py --- homeassistant/components/sms/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index d91b93589037f..9202cf66010b0 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -53,9 +53,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: device = entry.data[CONF_DEVICE] connection_mode = "at" - baud_speed = str(entry.data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED)) - if baud_speed != str(DEFAULT_BAUD_SPEED): - connection_mode += str(baud_speed) + baud_speed = entry.data.get(CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED) + if baud_speed != DEFAULT_BAUD_SPEED: + connection_mode += baud_speed config = {"Device": device, "Connection": connection_mode} _LOGGER.debug("Connecting mode:%s", connection_mode) gateway = await create_sms_gateway(config, hass) From a91a743166f4340599a2787d80e239a75fe31cc5 Mon Sep 17 00:00:00 2001 From: Oscar Calvo <2091582+ocalvo@users.noreply.github.com> Date: Thu, 31 Mar 2022 11:59:53 -0700 Subject: [PATCH 16/17] Update const.py --- homeassistant/components/sms/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/sms/const.py b/homeassistant/components/sms/const.py index fd059acf282e6..7c40a04073cc0 100644 --- a/homeassistant/components/sms/const.py +++ b/homeassistant/components/sms/const.py @@ -6,7 +6,7 @@ CONF_BAUD_SPEED = "baud_speed" DEFAULT_BAUD_SPEED = "0" DEFAULT_BAUD_SPEEDS = [ - {"value": "0", "label": "Auto"}, + {"value": DEFAULT_BAUD_SPEED, "label": "Auto"}, {"value": "50", "label": "50"}, {"value": "75", "label": "75"}, {"value": "110", "label": "110"}, From f73bab2cd3f3dda08e04bd0f65145769635cc6ba Mon Sep 17 00:00:00 2001 From: Oscar Calvo Date: Fri, 29 Apr 2022 16:47:04 +0000 Subject: [PATCH 17/17] Apply PR feedback --- homeassistant/components/sms/__init__.py | 4 ++-- homeassistant/components/sms/config_flow.py | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/sms/__init__.py b/homeassistant/components/sms/__init__.py index 366e26b8d4017..8f4d40b50f218 100644 --- a/homeassistant/components/sms/__init__.py +++ b/homeassistant/components/sms/__init__.py @@ -1,7 +1,7 @@ """The sms component.""" import logging -import voluptuous as vol # pylint: disable=import-error +import voluptuous as vol from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.const import CONF_DEVICE, Platform @@ -25,7 +25,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: """Configure Gammu state machine.""" hass.data.setdefault(DOMAIN, {}) - if not (sms_config := config.get(DOMAIN, {})): # pylint: disable=superfluous-parens + if not (sms_config := config.get(DOMAIN, {})): return True hass.async_create_task( diff --git a/homeassistant/components/sms/config_flow.py b/homeassistant/components/sms/config_flow.py index 6413a1278af9c..e408878985d77 100644 --- a/homeassistant/components/sms/config_flow.py +++ b/homeassistant/components/sms/config_flow.py @@ -2,17 +2,13 @@ import logging import gammu # pylint: disable=import-error -import voluptuous as vol # pylint: disable=import-error +import voluptuous as vol from homeassistant import config_entries, core, exceptions from homeassistant.const import CONF_DEVICE import homeassistant.helpers.config_validation as cv -from .const import ( # pylint: disable=unused-import - CONF_BAUD_SPEED, - DEFAULT_BAUD_SPEED, - DOMAIN, -) +from .const import CONF_BAUD_SPEED, DEFAULT_BAUD_SPEED, DOMAIN from .gateway import create_sms_gateway _LOGGER = logging.getLogger(__name__)