From 26c99454a6db67b9e4fd0af5358db755dd0a534d Mon Sep 17 00:00:00 2001 From: Anders Melchiorsen Date: Fri, 16 Aug 2019 00:59:08 +0200 Subject: [PATCH] Add netgear_lte.disconnect_lte service (#25967) --- .../components/netgear_lte/__init__.py | 25 +++++++++++-------- .../components/netgear_lte/manifest.json | 2 +- .../components/netgear_lte/services.yaml | 7 ++++++ requirements_all.txt | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/netgear_lte/__init__.py b/homeassistant/components/netgear_lte/__init__.py index 60909ccaee7..e4909ce68fc 100644 --- a/homeassistant/components/netgear_lte/__init__.py +++ b/homeassistant/components/netgear_lte/__init__.py @@ -43,6 +43,7 @@ EVENT_SMS = "netgear_lte_sms" SERVICE_DELETE_SMS = "delete_sms" SERVICE_SET_OPTION = "set_option" SERVICE_CONNECT_LTE = "connect_lte" +SERVICE_DISCONNECT_LTE = "disconnect_lte" ATTR_HOST = "host" ATTR_SMS_ID = "sms_id" @@ -122,6 +123,8 @@ SET_OPTION_SCHEMA = vol.Schema( CONNECT_LTE_SCHEMA = vol.Schema({vol.Optional(ATTR_HOST): cv.string}) +DISCONNECT_LTE_SCHEMA = vol.Schema({vol.Optional(ATTR_HOST): cv.string}) + @attr.s class ModemData: @@ -199,18 +202,20 @@ async def async_setup(hass, config): await modem_data.modem.set_autoconnect_mode(autoconnect) elif service.service == SERVICE_CONNECT_LTE: await modem_data.modem.connect_lte() + elif service.service == SERVICE_DISCONNECT_LTE: + await modem_data.modem.disconnect_lte() - hass.services.async_register( - DOMAIN, SERVICE_DELETE_SMS, service_handler, schema=DELETE_SMS_SCHEMA - ) + service_schemas = { + SERVICE_DELETE_SMS: DELETE_SMS_SCHEMA, + SERVICE_SET_OPTION: SET_OPTION_SCHEMA, + SERVICE_CONNECT_LTE: CONNECT_LTE_SCHEMA, + SERVICE_DISCONNECT_LTE: DISCONNECT_LTE_SCHEMA, + } - hass.services.async_register( - DOMAIN, SERVICE_SET_OPTION, service_handler, schema=SET_OPTION_SCHEMA - ) - - hass.services.async_register( - DOMAIN, SERVICE_CONNECT_LTE, service_handler, schema=CONNECT_LTE_SCHEMA - ) + for service, schema in service_schemas.items(): + hass.services.async_register( + DOMAIN, service, service_handler, schema=schema + ) netgear_lte_config = config[DOMAIN] diff --git a/homeassistant/components/netgear_lte/manifest.json b/homeassistant/components/netgear_lte/manifest.json index 12cf81f46bf..8f5db991c76 100644 --- a/homeassistant/components/netgear_lte/manifest.json +++ b/homeassistant/components/netgear_lte/manifest.json @@ -3,7 +3,7 @@ "name": "Netgear lte", "documentation": "https://www.home-assistant.io/components/netgear_lte", "requirements": [ - "eternalegypt==0.0.8" + "eternalegypt==0.0.9" ], "dependencies": [], "codeowners": [] diff --git a/homeassistant/components/netgear_lte/services.yaml b/homeassistant/components/netgear_lte/services.yaml index 4ba3afb07b4..564fb914cf9 100644 --- a/homeassistant/components/netgear_lte/services.yaml +++ b/homeassistant/components/netgear_lte/services.yaml @@ -27,3 +27,10 @@ connect_lte: host: description: The modem that should connect. example: 192.168.5.1 + +disconnect_lte: + description: Ask the modem to close the LTE connection. + fields: + host: + description: The modem that should disconnect. + example: 192.168.5.1 diff --git a/requirements_all.txt b/requirements_all.txt index cdf01a607f1..78aab20d0d0 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -455,7 +455,7 @@ epson-projector==0.1.3 epsonprinter==0.0.9 # homeassistant.components.netgear_lte -eternalegypt==0.0.8 +eternalegypt==0.0.9 # homeassistant.components.keyboard_remote # evdev==0.6.1