From 2d2efeb9bb507dd2e8bc4225042d9babff96cb7d Mon Sep 17 00:00:00 2001 From: Tomasz Date: Wed, 2 Sep 2020 21:28:18 +0200 Subject: [PATCH] Add the ability to reload rpi_gpio platforms from yaml (#39548) * add reload service * test for reload service * missing file * Revert "missing file" This reverts commit 24391fe3b9d9a5c03da8249422b394634a633bb2. * Revert "test for reload service" This reverts commit 5bda48d07000e533298766b5c3acb90e0f91fb50. --- homeassistant/components/rpi_gpio/__init__.py | 1 + homeassistant/components/rpi_gpio/binary_sensor.py | 6 ++++++ homeassistant/components/rpi_gpio/cover.py | 6 ++++++ homeassistant/components/rpi_gpio/services.yaml | 2 ++ homeassistant/components/rpi_gpio/switch.py | 6 ++++++ 5 files changed, 21 insertions(+) create mode 100644 homeassistant/components/rpi_gpio/services.yaml diff --git a/homeassistant/components/rpi_gpio/__init__.py b/homeassistant/components/rpi_gpio/__init__.py index b2c3cf6b7bb..b3a83646f0e 100644 --- a/homeassistant/components/rpi_gpio/__init__.py +++ b/homeassistant/components/rpi_gpio/__init__.py @@ -8,6 +8,7 @@ from homeassistant.const import EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_S _LOGGER = logging.getLogger(__name__) DOMAIN = "rpi_gpio" +PLATFORMS = ["binary_sensor", "cover", "switch"] def setup(hass, config): diff --git a/homeassistant/components/rpi_gpio/binary_sensor.py b/homeassistant/components/rpi_gpio/binary_sensor.py index a7ecaa3d36c..527da2a7096 100644 --- a/homeassistant/components/rpi_gpio/binary_sensor.py +++ b/homeassistant/components/rpi_gpio/binary_sensor.py @@ -7,6 +7,9 @@ from homeassistant.components import rpi_gpio from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity from homeassistant.const import DEVICE_DEFAULT_NAME import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.reload import setup_reload_service + +from . import DOMAIN, PLATFORMS _LOGGER = logging.getLogger(__name__) @@ -33,6 +36,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the Raspberry PI GPIO devices.""" + + setup_reload_service(hass, DOMAIN, PLATFORMS) + pull_mode = config.get(CONF_PULL_MODE) bouncetime = config.get(CONF_BOUNCETIME) invert_logic = config.get(CONF_INVERT_LOGIC) diff --git a/homeassistant/components/rpi_gpio/cover.py b/homeassistant/components/rpi_gpio/cover.py index 56e76959ecc..fab35da31fb 100644 --- a/homeassistant/components/rpi_gpio/cover.py +++ b/homeassistant/components/rpi_gpio/cover.py @@ -8,6 +8,9 @@ from homeassistant.components import rpi_gpio from homeassistant.components.cover import PLATFORM_SCHEMA, CoverEntity from homeassistant.const import CONF_NAME import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.reload import setup_reload_service + +from . import DOMAIN, PLATFORMS _LOGGER = logging.getLogger(__name__) @@ -49,6 +52,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the RPi cover platform.""" + + setup_reload_service(hass, DOMAIN, PLATFORMS) + relay_time = config.get(CONF_RELAY_TIME) state_pull_mode = config.get(CONF_STATE_PULL_MODE) invert_state = config.get(CONF_INVERT_STATE) diff --git a/homeassistant/components/rpi_gpio/services.yaml b/homeassistant/components/rpi_gpio/services.yaml new file mode 100644 index 00000000000..d0564941cdb --- /dev/null +++ b/homeassistant/components/rpi_gpio/services.yaml @@ -0,0 +1,2 @@ +reload: + description: Reload all rpi_gpio entities. diff --git a/homeassistant/components/rpi_gpio/switch.py b/homeassistant/components/rpi_gpio/switch.py index 03cb9f083ce..047bff39c95 100644 --- a/homeassistant/components/rpi_gpio/switch.py +++ b/homeassistant/components/rpi_gpio/switch.py @@ -8,6 +8,9 @@ from homeassistant.components.switch import PLATFORM_SCHEMA from homeassistant.const import DEVICE_DEFAULT_NAME import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import ToggleEntity +from homeassistant.helpers.reload import setup_reload_service + +from . import DOMAIN, PLATFORMS _LOGGER = logging.getLogger(__name__) @@ -29,6 +32,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the Raspberry PI GPIO devices.""" + + setup_reload_service(hass, DOMAIN, PLATFORMS) + invert_logic = config.get(CONF_INVERT_LOGIC) switches = []