Improve handling of Z-Wave config entry vs yaml config (#25112)

* Improved handling of config entry vs yaml config

* Address review comment
pull/25501/head
Charles Garwood 2019-07-26 23:27:17 -04:00 committed by Paulus Schoutsen
parent 297cd3dc13
commit 0a6d49b293
2 changed files with 23 additions and 21 deletions

View File

@ -32,7 +32,7 @@ from .const import (
CONF_USB_STICK_PATH, CONF_CONFIG_PATH, CONF_NETWORK_KEY,
DEFAULT_CONF_AUTOHEAL, DEFAULT_CONF_USB_STICK_PATH,
DEFAULT_POLLING_INTERVAL, DEFAULT_DEBUG, DOMAIN,
DATA_DEVICES, DATA_NETWORK, DATA_ENTITY_VALUES)
DATA_DEVICES, DATA_NETWORK, DATA_ENTITY_VALUES, DATA_ZWAVE_CONFIG)
from .node_entity import ZWaveBaseEntity, ZWaveNodeEntity
from . import workaround
from .discovery_schemas import DISCOVERY_SCHEMAS
@ -56,8 +56,6 @@ CONF_DEVICE_CONFIG = 'device_config'
CONF_DEVICE_CONFIG_GLOB = 'device_config_glob'
CONF_DEVICE_CONFIG_DOMAIN = 'device_config_domain'
DATA_ZWAVE_CONFIG = 'zwave_config'
DEFAULT_CONF_IGNORED = False
DEFAULT_CONF_INVERT_OPENCLOSE_BUTTONS = False
DEFAULT_CONF_INVERT_PERCENT = False
@ -266,9 +264,13 @@ async def async_setup_entry(hass, config_entry):
from openzwave.network import ZWaveNetwork
from openzwave.group import ZWaveGroup
config = {}
# Merge config entry and yaml config
config = config_entry.data
if DATA_ZWAVE_CONFIG in hass.data:
config = hass.data[DATA_ZWAVE_CONFIG]
config = {**config, **hass.data[DATA_ZWAVE_CONFIG]}
# Update hass.data with merged config so we can access it elsewhere
hass.data[DATA_ZWAVE_CONFIG] = config
# Load configuration
use_debug = config.get(CONF_DEBUG, DEFAULT_DEBUG)
@ -279,8 +281,7 @@ async def async_setup_entry(hass, config_entry):
config.get(CONF_DEVICE_CONFIG_DOMAIN),
config.get(CONF_DEVICE_CONFIG_GLOB))
usb_path = config.get(
CONF_USB_STICK_PATH, config_entry.data[CONF_USB_STICK_PATH])
usb_path = config[CONF_USB_STICK_PATH]
_LOGGER.info('Z-Wave USB path is %s', usb_path)
@ -292,8 +293,8 @@ async def async_setup_entry(hass, config_entry):
options.set_console_output(use_debug)
if config_entry.data.get(CONF_NETWORK_KEY):
options.addOption("NetworkKey", config_entry.data[CONF_NETWORK_KEY])
if config.get(CONF_NETWORK_KEY):
options.addOption("NetworkKey", config[CONF_NETWORK_KEY])
await hass.async_add_executor_job(options.lock)
network = hass.data[DATA_NETWORK] = ZWaveNetwork(options, autostart=False)

View File

@ -19,27 +19,28 @@ ATTR_CONFIG_VALUE = "value"
ATTR_POLL_INTENSITY = "poll_intensity"
ATTR_VALUE_INDEX = "value_index"
ATTR_VALUE_INSTANCE = "value_instance"
ATTR_UPDATE_IDS = 'update_ids'
ATTR_UPDATE_IDS = "update_ids"
NETWORK_READY_WAIT_SECS = 300
NODE_READY_WAIT_SECS = 30
CONF_AUTOHEAL = 'autoheal'
CONF_DEBUG = 'debug'
CONF_POLLING_INTERVAL = 'polling_interval'
CONF_USB_STICK_PATH = 'usb_path'
CONF_CONFIG_PATH = 'config_path'
CONF_NETWORK_KEY = 'network_key'
CONF_AUTOHEAL = "autoheal"
CONF_DEBUG = "debug"
CONF_POLLING_INTERVAL = "polling_interval"
CONF_USB_STICK_PATH = "usb_path"
CONF_CONFIG_PATH = "config_path"
CONF_NETWORK_KEY = "network_key"
DEFAULT_CONF_AUTOHEAL = False
DEFAULT_CONF_USB_STICK_PATH = '/zwaveusbstick'
DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick"
DEFAULT_POLLING_INTERVAL = 60000
DEFAULT_DEBUG = False
DISCOVERY_DEVICE = 'device'
DISCOVERY_DEVICE = "device"
DATA_DEVICES = 'zwave_devices'
DATA_NETWORK = 'zwave_network'
DATA_ENTITY_VALUES = 'zwave_entity_values'
DATA_DEVICES = "zwave_devices"
DATA_NETWORK = "zwave_network"
DATA_ENTITY_VALUES = "zwave_entity_values"
DATA_ZWAVE_CONFIG = "zwave_config"
SERVICE_CHANGE_ASSOCIATION = "change_association"
SERVICE_ADD_NODE = "add_node"