From c603ffbe26c40b621ebe456817020706f0135597 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 29 Sep 2016 18:45:55 -0700 Subject: [PATCH 1/4] Fix voluptuous alexa config (#3596) --- homeassistant/components/alexa.py | 2 +- tests/components/test_alexa.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/alexa.py b/homeassistant/components/alexa.py index e1b860e95c3..94d5b24cbf0 100644 --- a/homeassistant/components/alexa.py +++ b/homeassistant/components/alexa.py @@ -63,7 +63,7 @@ CONFIG_SCHEMA = vol.Schema({ } } } -}) +}, extra=vol.ALLOW_EXTRA) def setup(hass, config): diff --git a/tests/components/test_alexa.py b/tests/components/test_alexa.py index 0c0a30dc718..a40b401c777 100644 --- a/tests/components/test_alexa.py +++ b/tests/components/test_alexa.py @@ -41,6 +41,8 @@ def setUpModule(): # pylint: disable=invalid-name hass.services.register('test', 'alexa', lambda call: calls.append(call)) bootstrap.setup_component(hass, alexa.DOMAIN, { + # Key is here to verify we allow other keys in config too + 'homeassistant': {}, 'alexa': { 'intents': { 'WhereAreWeIntent': { From db56ed400d864b15fc689c9d19aac3e63e20a8ee Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 30 Sep 2016 03:36:20 +0200 Subject: [PATCH 2/4] Bugfix voluptuous acer_projector (#3598) --- homeassistant/components/switch/acer_projector.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/switch/acer_projector.py b/homeassistant/components/switch/acer_projector.py index 5845e611c31..7817a127642 100644 --- a/homeassistant/components/switch/acer_projector.py +++ b/homeassistant/components/switch/acer_projector.py @@ -4,6 +4,7 @@ Use serial protocol of Acer projector to obtain state of the projector. For more details about this component, please refer to the documentation at https://home-assistant.io/components/switch.acer_projector/ """ +import os import logging import re @@ -45,8 +46,18 @@ CMD_DICT = {LAMP: '* 0 Lamp ?\r', STATE_ON: '* 0 IR 001\r', STATE_OFF: '* 0 IR 002\r'} + +def isdevice(dev): + """Check if dev a real device.""" + try: + os.stat(dev) + return str(dev) + except OSError: + raise vol.Invalid("No device found!") + + PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ - vol.Required(CONF_FILENAME): cv.isfile, + vol.Required(CONF_FILENAME): isdevice, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_TIMEOUT, default=DEFAULT_TIMEOUT): cv.positive_int, vol.Optional(CONF_WRITE_TIMEOUT, default=DEFAULT_WRITE_TIMEOUT): From b41c795d34a116e0a9d9b3167d8797b2e5bca1e8 Mon Sep 17 00:00:00 2001 From: Dan Cinnamon Date: Thu, 29 Sep 2016 20:55:43 -0500 Subject: [PATCH 3/4] Passing original config reference to load_platform. (#3602) --- homeassistant/components/envisalink.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/envisalink.py b/homeassistant/components/envisalink.py index 3e947e55a4d..0572de9aba6 100644 --- a/homeassistant/components/envisalink.py +++ b/homeassistant/components/envisalink.py @@ -184,13 +184,13 @@ def setup(hass, base_config): load_platform(hass, 'alarm_control_panel', 'envisalink', {CONF_PARTITIONS: _partitions, CONF_CODE: _code, - CONF_PANIC: _panic_type}, config) + CONF_PANIC: _panic_type}, base_config) load_platform(hass, 'sensor', 'envisalink', {CONF_PARTITIONS: _partitions, - CONF_CODE: _code}, config) + CONF_CODE: _code}, base_config) if _zones: load_platform(hass, 'binary_sensor', 'envisalink', - {CONF_ZONES: _zones}, config) + {CONF_ZONES: _zones}, base_config) return True From 2b59409e529978f320d79ba91423e05d6bd085b5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 29 Sep 2016 18:57:33 -0700 Subject: [PATCH 4/4] Version 0.29.4 --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index aeb97096395..62b91181bb8 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -2,7 +2,7 @@ """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 MINOR_VERSION = 29 -PATCH_VERSION = '3' +PATCH_VERSION = '4' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) REQUIRED_PYTHON_VER = (3, 4, 2)