From fb2fb5ea73ad191943dd99f41a6e629784f98ec1 Mon Sep 17 00:00:00 2001 From: Alex Harvey Date: Tue, 7 Jun 2016 09:29:15 -0700 Subject: [PATCH] zwave auto heal at midnight (#2213) * zwave auto heal at midnight * fix debug to info, running heal, any heal will send a logger event --- homeassistant/components/zwave.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index d76956de5bd..ddabdee9def 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -14,6 +14,7 @@ from homeassistant.const import ( ATTR_BATTERY_LEVEL, ATTR_DISCOVERED, ATTR_ENTITY_ID, ATTR_LOCATION, ATTR_SERVICE, CONF_CUSTOMIZE, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, EVENT_PLATFORM_DISCOVERED) +from homeassistant.helpers.event import track_time_change from homeassistant.util import convert, slugify DOMAIN = "zwave" @@ -24,6 +25,8 @@ DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick" CONF_DEBUG = "debug" CONF_POLLING_INTERVAL = "polling_interval" CONF_POLLING_INTENSITY = "polling_intensity" +CONF_AUTOHEAL = "autoheal" +DEFAULT_CONF_AUTOHEAL = True # How long to wait for the zwave network to be ready. NETWORK_READY_WAIT_SECS = 30 @@ -202,6 +205,7 @@ def setup(hass, config): # Load configuration use_debug = str(config[DOMAIN].get(CONF_DEBUG)) == '1' customize = config[DOMAIN].get(CONF_CUSTOMIZE, {}) + autoheal = config[DOMAIN].get(CONF_AUTOHEAL, DEFAULT_CONF_AUTOHEAL) # Setup options options = ZWaveOption( @@ -210,6 +214,12 @@ def setup(hass, config): config_path=config[DOMAIN].get('config_path', default_zwave_config_path),) + # Setup autoheal + if autoheal: + _LOGGER.info("ZWave network autoheal is enabled.") + track_time_change(hass, lambda: heal_network(None), + hour=0, minute=0, second=0) + options.set_console_output(use_debug) options.lock() @@ -291,6 +301,7 @@ def setup(hass, config): def heal_network(event): """Heal the network.""" + _LOGGER.info("ZWave heal running.") NETWORK.heal() def soft_reset(event):