From fce04e7ad027b55b40e099e607ca745efd9d5013 Mon Sep 17 00:00:00 2001 From: xifle Date: Sun, 10 Jan 2016 14:44:46 +0100 Subject: [PATCH 1/2] Added inclusion / exclusion events Events may be used to start inclusion / exclusion of zwave devices. This is especially useful in the case of a Z-Wave stick without "hardware" inclusion button. --- homeassistant/components/zwave.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index b52e430600a..51a6993decf 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -26,6 +26,9 @@ CONF_POLLING_INTERVAL = "polling_interval" DEFAULT_ZWAVE_CONFIG_PATH = os.path.join(sys.prefix, 'share', 'python-openzwave', 'config') +EVENT_ZWAVE_ADD_NODE = "zwave_add_node" +EVENT_ZWAVE_REMOVE_NODE = "zwave_remove_node" + DISCOVER_SENSORS = "zwave.sensors" DISCOVER_SWITCHES = "zwave.switch" DISCOVER_LIGHTS = "zwave.light" @@ -176,6 +179,14 @@ def setup(hass, config): dispatcher.connect( value_added, ZWaveNetwork.SIGNAL_VALUE_ADDED, weak=False) + def add_node(event): + """ Switch into inclusion mode """ + NETWORK.controller.begin_command_add_device() + + def remove_node(event): + """ Switch into exclusion mode""" + NETWORK.controller.begin_command_remove_device() + def stop_zwave(event): """ Stop Z-wave. """ NETWORK.stop() @@ -190,6 +201,11 @@ def setup(hass, config): hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_zwave) + # listen for add/remove events, for zwave sticks without + # hardware inclusion button + hass.bus.listen(EVENT_ZWAVE_ADD_NODE, add_node) + hass.bus.listen(EVENT_ZWAVE_REMOVE_NODE, remove_node) + hass.bus.listen_once(EVENT_HOMEASSISTANT_START, start_zwave) return True From cd669239ae9b3e7d21056b2c251d4277b251dbc2 Mon Sep 17 00:00:00 2001 From: xifle Date: Mon, 11 Jan 2016 22:39:28 +0100 Subject: [PATCH 2/2] Changed zwave node add/remove events to services --- homeassistant/components/zwave.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index 51a6993decf..fa400a07a05 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -26,8 +26,8 @@ CONF_POLLING_INTERVAL = "polling_interval" DEFAULT_ZWAVE_CONFIG_PATH = os.path.join(sys.prefix, 'share', 'python-openzwave', 'config') -EVENT_ZWAVE_ADD_NODE = "zwave_add_node" -EVENT_ZWAVE_REMOVE_NODE = "zwave_remove_node" +SERVICE_ADD_NODE = "add_node" +SERVICE_REMOVE_NODE = "remove_node" DISCOVER_SENSORS = "zwave.sensors" DISCOVER_SWITCHES = "zwave.switch" @@ -201,10 +201,10 @@ def setup(hass, config): hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, stop_zwave) - # listen for add/remove events, for zwave sticks without + # register add / remove node services for zwave sticks without # hardware inclusion button - hass.bus.listen(EVENT_ZWAVE_ADD_NODE, add_node) - hass.bus.listen(EVENT_ZWAVE_REMOVE_NODE, remove_node) + hass.services.register(DOMAIN, SERVICE_ADD_NODE, add_node) + hass.services.register(DOMAIN, SERVICE_REMOVE_NODE, remove_node) hass.bus.listen_once(EVENT_HOMEASSISTANT_START, start_zwave)