mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 18:27:09 +00:00
Improve handling of Z-Wave config entry vs yaml config (#25112)
* Improved handling of config entry vs yaml config * Address review comment
This commit is contained in:
parent
297cd3dc13
commit
0a6d49b293
@ -32,7 +32,7 @@ from .const import (
|
|||||||
CONF_USB_STICK_PATH, CONF_CONFIG_PATH, CONF_NETWORK_KEY,
|
CONF_USB_STICK_PATH, CONF_CONFIG_PATH, CONF_NETWORK_KEY,
|
||||||
DEFAULT_CONF_AUTOHEAL, DEFAULT_CONF_USB_STICK_PATH,
|
DEFAULT_CONF_AUTOHEAL, DEFAULT_CONF_USB_STICK_PATH,
|
||||||
DEFAULT_POLLING_INTERVAL, DEFAULT_DEBUG, DOMAIN,
|
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 .node_entity import ZWaveBaseEntity, ZWaveNodeEntity
|
||||||
from . import workaround
|
from . import workaround
|
||||||
from .discovery_schemas import DISCOVERY_SCHEMAS
|
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_GLOB = 'device_config_glob'
|
||||||
CONF_DEVICE_CONFIG_DOMAIN = 'device_config_domain'
|
CONF_DEVICE_CONFIG_DOMAIN = 'device_config_domain'
|
||||||
|
|
||||||
DATA_ZWAVE_CONFIG = 'zwave_config'
|
|
||||||
|
|
||||||
DEFAULT_CONF_IGNORED = False
|
DEFAULT_CONF_IGNORED = False
|
||||||
DEFAULT_CONF_INVERT_OPENCLOSE_BUTTONS = False
|
DEFAULT_CONF_INVERT_OPENCLOSE_BUTTONS = False
|
||||||
DEFAULT_CONF_INVERT_PERCENT = 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.network import ZWaveNetwork
|
||||||
from openzwave.group import ZWaveGroup
|
from openzwave.group import ZWaveGroup
|
||||||
|
|
||||||
config = {}
|
# Merge config entry and yaml config
|
||||||
|
config = config_entry.data
|
||||||
if DATA_ZWAVE_CONFIG in hass.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
|
# Load configuration
|
||||||
use_debug = config.get(CONF_DEBUG, DEFAULT_DEBUG)
|
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_DOMAIN),
|
||||||
config.get(CONF_DEVICE_CONFIG_GLOB))
|
config.get(CONF_DEVICE_CONFIG_GLOB))
|
||||||
|
|
||||||
usb_path = config.get(
|
usb_path = config[CONF_USB_STICK_PATH]
|
||||||
CONF_USB_STICK_PATH, config_entry.data[CONF_USB_STICK_PATH])
|
|
||||||
|
|
||||||
_LOGGER.info('Z-Wave USB path is %s', usb_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)
|
options.set_console_output(use_debug)
|
||||||
|
|
||||||
if config_entry.data.get(CONF_NETWORK_KEY):
|
if config.get(CONF_NETWORK_KEY):
|
||||||
options.addOption("NetworkKey", config_entry.data[CONF_NETWORK_KEY])
|
options.addOption("NetworkKey", config[CONF_NETWORK_KEY])
|
||||||
|
|
||||||
await hass.async_add_executor_job(options.lock)
|
await hass.async_add_executor_job(options.lock)
|
||||||
network = hass.data[DATA_NETWORK] = ZWaveNetwork(options, autostart=False)
|
network = hass.data[DATA_NETWORK] = ZWaveNetwork(options, autostart=False)
|
||||||
|
@ -19,27 +19,28 @@ ATTR_CONFIG_VALUE = "value"
|
|||||||
ATTR_POLL_INTENSITY = "poll_intensity"
|
ATTR_POLL_INTENSITY = "poll_intensity"
|
||||||
ATTR_VALUE_INDEX = "value_index"
|
ATTR_VALUE_INDEX = "value_index"
|
||||||
ATTR_VALUE_INSTANCE = "value_instance"
|
ATTR_VALUE_INSTANCE = "value_instance"
|
||||||
ATTR_UPDATE_IDS = 'update_ids'
|
ATTR_UPDATE_IDS = "update_ids"
|
||||||
NETWORK_READY_WAIT_SECS = 300
|
NETWORK_READY_WAIT_SECS = 300
|
||||||
NODE_READY_WAIT_SECS = 30
|
NODE_READY_WAIT_SECS = 30
|
||||||
|
|
||||||
CONF_AUTOHEAL = 'autoheal'
|
CONF_AUTOHEAL = "autoheal"
|
||||||
CONF_DEBUG = 'debug'
|
CONF_DEBUG = "debug"
|
||||||
CONF_POLLING_INTERVAL = 'polling_interval'
|
CONF_POLLING_INTERVAL = "polling_interval"
|
||||||
CONF_USB_STICK_PATH = 'usb_path'
|
CONF_USB_STICK_PATH = "usb_path"
|
||||||
CONF_CONFIG_PATH = 'config_path'
|
CONF_CONFIG_PATH = "config_path"
|
||||||
CONF_NETWORK_KEY = 'network_key'
|
CONF_NETWORK_KEY = "network_key"
|
||||||
|
|
||||||
DEFAULT_CONF_AUTOHEAL = False
|
DEFAULT_CONF_AUTOHEAL = False
|
||||||
DEFAULT_CONF_USB_STICK_PATH = '/zwaveusbstick'
|
DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick"
|
||||||
DEFAULT_POLLING_INTERVAL = 60000
|
DEFAULT_POLLING_INTERVAL = 60000
|
||||||
DEFAULT_DEBUG = False
|
DEFAULT_DEBUG = False
|
||||||
|
|
||||||
DISCOVERY_DEVICE = 'device'
|
DISCOVERY_DEVICE = "device"
|
||||||
|
|
||||||
DATA_DEVICES = 'zwave_devices'
|
DATA_DEVICES = "zwave_devices"
|
||||||
DATA_NETWORK = 'zwave_network'
|
DATA_NETWORK = "zwave_network"
|
||||||
DATA_ENTITY_VALUES = 'zwave_entity_values'
|
DATA_ENTITY_VALUES = "zwave_entity_values"
|
||||||
|
DATA_ZWAVE_CONFIG = "zwave_config"
|
||||||
|
|
||||||
SERVICE_CHANGE_ASSOCIATION = "change_association"
|
SERVICE_CHANGE_ASSOCIATION = "change_association"
|
||||||
SERVICE_ADD_NODE = "add_node"
|
SERVICE_ADD_NODE = "add_node"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user