From b4be508741045fdf981dfa933d7f0ee68daf0dcf Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 26 Apr 2016 05:41:20 -0400 Subject: [PATCH] Make zwave component user sane defaults. (#1891) Change the zwave config default path to be valid in all but rare edge cases. This will let that config value be truely optional. Also check that libopenzwave is installed and print a warrning if it cannot be found pointing at the site. --- homeassistant/components/zwave.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index 24f269847dd..94e8b85df6b 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -6,7 +6,6 @@ https://home-assistant.io/components/zwave/ """ import logging import os.path -import sys import time from pprint import pprint @@ -25,8 +24,6 @@ DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick" CONF_DEBUG = "debug" CONF_POLLING_INTERVAL = "polling_interval" CONF_POLLING_INTENSITY = "polling_intensity" -DEFAULT_ZWAVE_CONFIG_PATH = os.path.join(sys.prefix, 'share', - 'python-openzwave', 'config') # How long to wait for the zwave network to be ready. NETWORK_READY_WAIT_SECS = 30 @@ -175,10 +172,20 @@ def setup(hass, config): # pylint: disable=global-statement, import-error global NETWORK + try: + import libopenzwave + except ImportError: + _LOGGER.error("You are missing required dependency Python Open " + "Z-Wave. Please follow instructions at: " + "https://home-assistant.io/components/zwave/") + return False from pydispatch import dispatcher from openzwave.option import ZWaveOption from openzwave.network import ZWaveNetwork + default_zwave_config_path = os.path.join(os.path.dirname( + libopenzwave.__file__), 'config') + # Load configuration use_debug = str(config[DOMAIN].get(CONF_DEBUG)) == '1' customize = config[DOMAIN].get(CONF_CUSTOMIZE, {}) @@ -188,7 +195,7 @@ def setup(hass, config): config[DOMAIN].get(CONF_USB_STICK_PATH, DEFAULT_CONF_USB_STICK_PATH), user_path=hass.config.config_dir, config_path=config[DOMAIN].get('config_path', - DEFAULT_ZWAVE_CONFIG_PATH),) + default_zwave_config_path),) options.set_console_output(use_debug) options.lock()