mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
Migrate to voluptuous (#3679)
This commit is contained in:
parent
3e40b24293
commit
0c68f381b0
@ -8,29 +8,36 @@ import logging
|
|||||||
import os.path
|
import os.path
|
||||||
import time
|
import time
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_BATTERY_LEVEL, ATTR_LOCATION, ATTR_ENTITY_ID,
|
ATTR_BATTERY_LEVEL, ATTR_LOCATION, ATTR_ENTITY_ID, CONF_CUSTOMIZE,
|
||||||
CONF_CUSTOMIZE, EVENT_HOMEASSISTANT_START,
|
EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP)
|
||||||
EVENT_HOMEASSISTANT_STOP)
|
|
||||||
from homeassistant.helpers.event import track_time_change
|
from homeassistant.helpers.event import track_time_change
|
||||||
from homeassistant.util import convert, slugify
|
from homeassistant.util import convert, slugify
|
||||||
import homeassistant.config as conf_util
|
import homeassistant.config as conf_util
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
from . import const
|
from . import const
|
||||||
|
|
||||||
DOMAIN = "zwave"
|
|
||||||
REQUIREMENTS = ['pydispatcher==2.0.5']
|
REQUIREMENTS = ['pydispatcher==2.0.5']
|
||||||
|
|
||||||
CONF_USB_STICK_PATH = "usb_path"
|
_LOGGER = logging.getLogger(__name__)
|
||||||
DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick"
|
|
||||||
CONF_DEBUG = "debug"
|
CONF_AUTOHEAL = 'autoheal'
|
||||||
CONF_POLLING_INTERVAL = "polling_interval"
|
CONF_DEBUG = 'debug'
|
||||||
CONF_POLLING_INTENSITY = "polling_intensity"
|
CONF_POLLING_INTENSITY = 'polling_intensity'
|
||||||
CONF_AUTOHEAL = "autoheal"
|
CONF_POLLING_INTERVAL = 'polling_interval'
|
||||||
|
CONF_USB_STICK_PATH = 'usb_path'
|
||||||
|
CONF_CONFIG_PATH = 'config_path'
|
||||||
|
|
||||||
DEFAULT_CONF_AUTOHEAL = True
|
DEFAULT_CONF_AUTOHEAL = True
|
||||||
|
DEFAULT_CONF_USB_STICK_PATH = '/zwaveusbstick'
|
||||||
|
DEFAULT_POLLING_INTERVAL = 60000
|
||||||
|
DEFAULT_DEBUG = True
|
||||||
|
DOMAIN = 'zwave'
|
||||||
|
|
||||||
NETWORK = None
|
NETWORK = None
|
||||||
|
|
||||||
# List of tuple (DOMAIN, discovered service, supported command classes,
|
# List of tuple (DOMAIN, discovered service, supported command classes,
|
||||||
@ -124,7 +131,24 @@ SET_CONFIG_PARAMETER_SCHEMA = vol.Schema({
|
|||||||
vol.Optional(const.ATTR_CONFIG_SIZE): vol.Coerce(int)
|
vol.Optional(const.ATTR_CONFIG_SIZE): vol.Coerce(int)
|
||||||
})
|
})
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
CUSTOMIZE_SCHEMA = vol.Schema({
|
||||||
|
vol.Optional(CONF_POLLING_INTENSITY):
|
||||||
|
vol.All(cv.positive_int, vol.In([0, 1, 2])),
|
||||||
|
})
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = vol.Schema({
|
||||||
|
DOMAIN: vol.Schema({
|
||||||
|
vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean,
|
||||||
|
vol.Optional(CONF_CONFIG_PATH): cv.string,
|
||||||
|
vol.Optional(CONF_CUSTOMIZE, default={}):
|
||||||
|
vol.Schema({cv.string: CUSTOMIZE_SCHEMA}),
|
||||||
|
vol.Optional(CONF_DEBUG, default=False): cv.boolean,
|
||||||
|
vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL):
|
||||||
|
cv.positive_int,
|
||||||
|
vol.Optional(CONF_USB_STICK_PATH, default=DEFAULT_CONF_USB_STICK_PATH):
|
||||||
|
cv.string,
|
||||||
|
}),
|
||||||
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
|
|
||||||
def _obj_to_dict(obj):
|
def _obj_to_dict(obj):
|
||||||
@ -136,20 +160,18 @@ def _obj_to_dict(obj):
|
|||||||
|
|
||||||
def _node_name(node):
|
def _node_name(node):
|
||||||
"""Return the name of the node."""
|
"""Return the name of the node."""
|
||||||
return node.name or "{} {}".format(
|
return node.name or '{} {}'.format(
|
||||||
node.manufacturer_name, node.product_name)
|
node.manufacturer_name, node.product_name)
|
||||||
|
|
||||||
|
|
||||||
def _value_name(value):
|
def _value_name(value):
|
||||||
"""Return the name of the value."""
|
"""Return the name of the value."""
|
||||||
return "{} {}".format(_node_name(value.node), value.label)
|
return '{} {}'.format(_node_name(value.node), value.label)
|
||||||
|
|
||||||
|
|
||||||
def _node_object_id(node):
|
def _node_object_id(node):
|
||||||
"""Return the object_id of the node."""
|
"""Return the object_id of the node."""
|
||||||
node_object_id = "{}_{}".format(slugify(_node_name(node)),
|
node_object_id = '{}_{}'.format(slugify(_node_name(node)), node.node_id)
|
||||||
node.node_id)
|
|
||||||
|
|
||||||
return node_object_id
|
return node_object_id
|
||||||
|
|
||||||
|
|
||||||
@ -159,13 +181,11 @@ def _object_id(value):
|
|||||||
The object_id contains node_id and value instance id
|
The object_id contains node_id and value instance id
|
||||||
to not collide with other entity_ids.
|
to not collide with other entity_ids.
|
||||||
"""
|
"""
|
||||||
object_id = "{}_{}".format(slugify(_value_name(value)),
|
object_id = "{}_{}".format(slugify(_value_name(value)), value.node.node_id)
|
||||||
value.node.node_id)
|
|
||||||
|
|
||||||
# Add the instance id if there is more than one instance for the value
|
# Add the instance id if there is more than one instance for the value
|
||||||
if value.instance > 1:
|
if value.instance > 1:
|
||||||
return "{}_{}".format(object_id, value.instance)
|
return '{}_{}'.format(object_id, value.instance)
|
||||||
|
|
||||||
return object_id
|
return object_id
|
||||||
|
|
||||||
|
|
||||||
@ -204,7 +224,7 @@ def setup(hass, config):
|
|||||||
global NETWORK
|
global NETWORK
|
||||||
|
|
||||||
descriptions = conf_util.load_yaml_config_file(
|
descriptions = conf_util.load_yaml_config_file(
|
||||||
os.path.join(os.path.dirname(__file__), "services.yaml"))
|
os.path.join(os.path.dirname(__file__), 'services.yaml'))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import libopenzwave
|
import libopenzwave
|
||||||
@ -221,16 +241,16 @@ def setup(hass, config):
|
|||||||
libopenzwave.__file__), 'config')
|
libopenzwave.__file__), 'config')
|
||||||
|
|
||||||
# Load configuration
|
# Load configuration
|
||||||
use_debug = str(config[DOMAIN].get(CONF_DEBUG)) == '1'
|
use_debug = config[DOMAIN].get(CONF_DEBUG)
|
||||||
customize = config[DOMAIN].get(CONF_CUSTOMIZE, {})
|
customize = config[DOMAIN].get(CONF_CUSTOMIZE)
|
||||||
autoheal = config[DOMAIN].get(CONF_AUTOHEAL, DEFAULT_CONF_AUTOHEAL)
|
autoheal = config[DOMAIN].get(CONF_AUTOHEAL)
|
||||||
|
|
||||||
# Setup options
|
# Setup options
|
||||||
options = ZWaveOption(
|
options = ZWaveOption(
|
||||||
config[DOMAIN].get(CONF_USB_STICK_PATH, DEFAULT_CONF_USB_STICK_PATH),
|
config[DOMAIN].get(CONF_USB_STICK_PATH),
|
||||||
user_path=hass.config.config_dir,
|
user_path=hass.config.config_dir,
|
||||||
config_path=config[DOMAIN].get('config_path',
|
config_path=config[DOMAIN].get(
|
||||||
default_zwave_config_path),)
|
CONF_CONFIG_PATH, default_zwave_config_path))
|
||||||
|
|
||||||
options.set_console_output(use_debug)
|
options.set_console_output(use_debug)
|
||||||
options.lock()
|
options.lock()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user