From f3b9fa2f4144a62fe53efe613f33fbff7eb88d56 Mon Sep 17 00:00:00 2001 From: Erik Eriksson Date: Thu, 9 Feb 2017 18:00:18 +0100 Subject: [PATCH 001/196] Don't thow exception if connection to server is lost (#5775) --- homeassistant/components/sensor/tellduslive.py | 4 +++- homeassistant/components/tellduslive.py | 2 +- requirements_all.txt | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sensor/tellduslive.py b/homeassistant/components/sensor/tellduslive.py index b7f3cf60892..9bebbe6e3dc 100644 --- a/homeassistant/components/sensor/tellduslive.py +++ b/homeassistant/components/sensor/tellduslive.py @@ -85,7 +85,9 @@ class TelldusLiveSensor(TelldusLiveEntity): @property def state(self): """Return the state of the sensor.""" - if self._type == SENSOR_TYPE_TEMP: + if not self.available: + return None + elif self._type == SENSOR_TYPE_TEMP: return self._value_as_temperature elif self._type == SENSOR_TYPE_HUMIDITY: return self._value_as_humidity diff --git a/homeassistant/components/tellduslive.py b/homeassistant/components/tellduslive.py index 259d4e1becb..84ab96841d9 100644 --- a/homeassistant/components/tellduslive.py +++ b/homeassistant/components/tellduslive.py @@ -17,7 +17,7 @@ import voluptuous as vol DOMAIN = 'tellduslive' -REQUIREMENTS = ['tellduslive==0.3.0'] +REQUIREMENTS = ['tellduslive==0.3.2'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 12aaaab9666..21c5538c76b 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -645,7 +645,7 @@ steamodd==4.21 tellcore-py==1.1.2 # homeassistant.components.tellduslive -tellduslive==0.3.0 +tellduslive==0.3.2 # homeassistant.components.sensor.temper temperusb==1.5.1 From c54517de909974b355f64840ed06d528b629c4d4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 9 Feb 2017 10:21:57 -0800 Subject: [PATCH 002/196] Convert config.components to a set (#5824) --- homeassistant/bootstrap.py | 2 +- homeassistant/components/configurator.py | 17 ++++++++-------- homeassistant/components/homematic.py | 1 - homeassistant/components/notify/ios.py | 2 +- homeassistant/core.py | 2 +- homeassistant/helpers/entity_component.py | 2 +- homeassistant/remote.py | 10 +++++++++- tests/common.py | 2 +- .../alarm_control_panel/test_mqtt.py | 20 +++++++++---------- tests/components/automation/test_event.py | 2 +- tests/components/automation/test_init.py | 2 +- tests/components/automation/test_mqtt.py | 2 +- .../automation/test_numeric_state.py | 2 +- tests/components/automation/test_state.py | 2 +- tests/components/automation/test_sun.py | 4 ++-- tests/components/automation/test_template.py | 2 +- tests/components/automation/test_time.py | 2 +- tests/components/automation/test_zone.py | 2 +- tests/components/binary_sensor/test_mqtt.py | 6 +++--- tests/components/camera/test_uvc.py | 2 +- tests/components/cover/test_mqtt.py | 14 ++++++------- tests/components/cover/test_rfxtrx.py | 2 +- .../components/device_tracker/test_asuswrt.py | 2 +- tests/components/device_tracker/test_ddwrt.py | 2 +- tests/components/device_tracker/test_mqtt.py | 4 ++-- .../device_tracker/test_upc_connect.py | 2 +- tests/components/light/test_mqtt.py | 16 +++++++-------- tests/components/light/test_mqtt_json.py | 14 ++++++------- tests/components/light/test_mqtt_template.py | 14 ++++++------- tests/components/light/test_rfxtrx.py | 2 +- tests/components/lock/test_mqtt.py | 6 +++--- tests/components/mqtt/test_init.py | 10 +++++----- tests/components/mqtt/test_server.py | 4 ++-- tests/components/sensor/test_mqtt.py | 4 ++-- tests/components/sensor/test_pilight.py | 2 +- tests/components/sensor/test_rfxtrx.py | 2 +- tests/components/switch/test_mqtt.py | 6 +++--- tests/components/switch/test_rfxtrx.py | 2 +- tests/components/test_api.py | 8 ++++++-- tests/components/test_logbook.py | 2 +- tests/components/test_script.py | 2 +- tests/components/test_websocket_api.py | 4 ++++ tests/test_bootstrap.py | 10 +++++----- tests/test_core.py | 2 +- 44 files changed, 118 insertions(+), 104 deletions(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 87fd9f7d9e5..72780707f66 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -166,7 +166,7 @@ def _async_setup_component(hass: core.HomeAssistant, loader.set_component(domain, None) return False - hass.config.components.append(component.DOMAIN) + hass.config.components.add(component.DOMAIN) hass.bus.async_fire( EVENT_COMPONENT_LOADED, {ATTR_COMPONENT: component.DOMAIN} diff --git a/homeassistant/components/configurator.py b/homeassistant/components/configurator.py index 5e99e02d371..d912f9914b5 100644 --- a/homeassistant/components/configurator.py +++ b/homeassistant/components/configurator.py @@ -6,15 +6,16 @@ This will return a request id that has to be used for future calls. A callback has to be provided to `request_config` which will be called when the user has submitted configuration information. """ +import asyncio import logging from homeassistant.const import EVENT_TIME_CHANGED, ATTR_FRIENDLY_NAME, \ ATTR_ENTITY_PICTURE from homeassistant.helpers.entity import generate_entity_id -_INSTANCES = {} _LOGGER = logging.getLogger(__name__) _REQUESTS = {} +_KEY_INSTANCE = 'configurator' ATTR_CONFIGURE_ID = 'configure_id' ATTR_DESCRIPTION = 'description' @@ -72,22 +73,20 @@ def request_done(request_id): pass -def setup(hass, config): +@asyncio.coroutine +def async_setup(hass, config): """Setup the configurator component.""" return True def _get_instance(hass): """Get an instance per hass object.""" - try: - return _INSTANCES[hass] - except KeyError: - _INSTANCES[hass] = Configurator(hass) + instance = hass.data.get(_KEY_INSTANCE) - if DOMAIN not in hass.config.components: - hass.config.components.append(DOMAIN) + if instance is None: + instance = hass.data[_KEY_INSTANCE] = Configurator(hass) - return _INSTANCES[hass] + return instance class Configurator(object): diff --git a/homeassistant/components/homematic.py b/homeassistant/components/homematic.py index ce1df98d727..365c843f854 100644 --- a/homeassistant/components/homematic.py +++ b/homeassistant/components/homematic.py @@ -276,7 +276,6 @@ def setup(hass, config): # Stops server when Homeassistant is shutting down hass.bus.listen_once( EVENT_HOMEASSISTANT_STOP, hass.data[DATA_HOMEMATIC].stop) - hass.config.components.append(DOMAIN) # init homematic hubs entity_hubs = [] diff --git a/homeassistant/components/notify/ios.py b/homeassistant/components/notify/ios.py index 0db05b261b3..e788beda0c4 100644 --- a/homeassistant/components/notify/ios.py +++ b/homeassistant/components/notify/ios.py @@ -43,7 +43,7 @@ def get_service(hass, config, discovery_info=None): """Get the iOS notification service.""" if "notify.ios" not in hass.config.components: # Need this to enable requirements checking in the app. - hass.config.components.append("notify.ios") + hass.config.components.add("notify.ios") if not ios.devices_with_push(): _LOGGER.error(("The notify.ios platform was loaded but no " diff --git a/homeassistant/core.py b/homeassistant/core.py index 5bede3da7a6..85b65ebc477 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -1047,7 +1047,7 @@ class Config(object): self.skip_pip = False # type: bool # List of loaded components - self.components = [] + self.components = set() # Remote.API object pointing at local API self.api = None diff --git a/homeassistant/helpers/entity_component.py b/homeassistant/helpers/entity_component.py index 4b773d50bb9..e453d609858 100644 --- a/homeassistant/helpers/entity_component.py +++ b/homeassistant/helpers/entity_component.py @@ -151,7 +151,7 @@ class EntityComponent(object): entity_platform.add_entities, discovery_info ) - self.hass.config.components.append( + self.hass.config.components.add( '{}.{}'.format(self.domain, platform_type)) except Exception: # pylint: disable=broad-except self.logger.exception( diff --git a/homeassistant/remote.py b/homeassistant/remote.py index c124d509f9c..15421ebfc11 100644 --- a/homeassistant/remote.py +++ b/homeassistant/remote.py @@ -312,6 +312,8 @@ class JSONEncoder(json.JSONEncoder): """ if isinstance(obj, datetime): return obj.isoformat() + elif isinstance(obj, set): + return list(obj) elif hasattr(obj, 'as_dict'): return obj.as_dict() @@ -548,7 +550,13 @@ def get_config(api): try: req = api(METHOD_GET, URL_API_CONFIG) - return req.json() if req.status_code == 200 else {} + if req.status_code != 200: + return {} + + result = req.json() + if 'components' in result: + result['components'] = set(result['components']) + return result except (HomeAssistantError, ValueError): # ValueError if req.json() can't parse the JSON diff --git a/tests/common.py b/tests/common.py index e384a4f1b37..70afae75155 100644 --- a/tests/common.py +++ b/tests/common.py @@ -213,7 +213,7 @@ def mock_state_change_event(hass, new_state, old_state=None): def mock_http_component(hass): """Mock the HTTP component.""" hass.http = MagicMock() - hass.config.components.append('http') + hass.config.components.add('http') hass.http.views = {} def mock_register_view(view): diff --git a/tests/components/alarm_control_panel/test_mqtt.py b/tests/components/alarm_control_panel/test_mqtt.py index 871bc6afd76..c253c4a49fb 100644 --- a/tests/components/alarm_control_panel/test_mqtt.py +++ b/tests/components/alarm_control_panel/test_mqtt.py @@ -30,7 +30,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_fail_setup_without_state_topic(self): """Test for failing with no state topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(0) as config: assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { @@ -42,7 +42,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_fail_setup_without_command_topic(self): """Test failing with no command topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(0): assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { @@ -53,7 +53,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_update_state_via_state_topic(self): """Test updating with via state topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -77,7 +77,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_ignore_update_state_if_unknown_via_state_topic(self): """Test ignoring updates via state topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -98,7 +98,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_arm_home_publishes_mqtt(self): """Test publishing of MQTT messages while armed.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -115,7 +115,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_arm_home_not_publishes_mqtt_with_invalid_code(self): """Test not publishing of MQTT messages with invalid code.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -133,7 +133,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_arm_away_publishes_mqtt(self): """Test publishing of MQTT messages while armed.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -150,7 +150,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_arm_away_not_publishes_mqtt_with_invalid_code(self): """Test not publishing of MQTT messages with invalid code.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -168,7 +168,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_disarm_publishes_mqtt(self): """Test publishing of MQTT messages while disarmed.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', @@ -185,7 +185,7 @@ class TestAlarmControlPanelMQTT(unittest.TestCase): def test_disarm_not_publishes_mqtt_with_invalid_code(self): """Test not publishing of MQTT messages with invalid code.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, alarm_control_panel.DOMAIN, { alarm_control_panel.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/automation/test_event.py b/tests/components/automation/test_event.py index a81e4200f48..18e112fc498 100644 --- a/tests/components/automation/test_event.py +++ b/tests/components/automation/test_event.py @@ -15,7 +15,7 @@ class TestAutomationEvent(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.calls = [] @callback diff --git a/tests/components/automation/test_init.py b/tests/components/automation/test_init.py index 39df4af719d..ca8eef4fc0d 100644 --- a/tests/components/automation/test_init.py +++ b/tests/components/automation/test_init.py @@ -21,7 +21,7 @@ class TestAutomation(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.calls = [] @callback diff --git a/tests/components/automation/test_mqtt.py b/tests/components/automation/test_mqtt.py index 7ee2aadeaf6..a2746728fe3 100644 --- a/tests/components/automation/test_mqtt.py +++ b/tests/components/automation/test_mqtt.py @@ -15,7 +15,7 @@ class TestAutomationMQTT(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') mock_mqtt_component(self.hass) self.calls = [] diff --git a/tests/components/automation/test_numeric_state.py b/tests/components/automation/test_numeric_state.py index c7db55726eb..85842ccf5eb 100644 --- a/tests/components/automation/test_numeric_state.py +++ b/tests/components/automation/test_numeric_state.py @@ -15,7 +15,7 @@ class TestAutomationNumericState(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.calls = [] @callback diff --git a/tests/components/automation/test_state.py b/tests/components/automation/test_state.py index 3f54c876c5f..00048f1f577 100644 --- a/tests/components/automation/test_state.py +++ b/tests/components/automation/test_state.py @@ -20,7 +20,7 @@ class TestAutomationState(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.hass.states.set('test.entity', 'hello') self.calls = [] diff --git a/tests/components/automation/test_sun.py b/tests/components/automation/test_sun.py index 582533d8476..bad592a740a 100644 --- a/tests/components/automation/test_sun.py +++ b/tests/components/automation/test_sun.py @@ -20,8 +20,8 @@ class TestAutomationSun(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') - self.hass.config.components.append('sun') + self.hass.config.components.add('group') + self.hass.config.components.add('sun') self.calls = [] diff --git a/tests/components/automation/test_template.py b/tests/components/automation/test_template.py index 7de2954a270..1971fb26d31 100644 --- a/tests/components/automation/test_template.py +++ b/tests/components/automation/test_template.py @@ -15,7 +15,7 @@ class TestAutomationTemplate(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.hass.states.set('test.entity', 'hello') self.calls = [] diff --git a/tests/components/automation/test_time.py b/tests/components/automation/test_time.py index 10e7910adcb..8f323dd4b37 100644 --- a/tests/components/automation/test_time.py +++ b/tests/components/automation/test_time.py @@ -19,7 +19,7 @@ class TestAutomationTime(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') self.calls = [] @callback diff --git a/tests/components/automation/test_zone.py b/tests/components/automation/test_zone.py index 72a79faa828..f2b304070b4 100644 --- a/tests/components/automation/test_zone.py +++ b/tests/components/automation/test_zone.py @@ -15,7 +15,7 @@ class TestAutomationZone(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') assert setup_component(self.hass, zone.DOMAIN, { 'zone': { 'name': 'test', diff --git a/tests/components/binary_sensor/test_mqtt.py b/tests/components/binary_sensor/test_mqtt.py index 3bff4420a66..5e4a2640a34 100644 --- a/tests/components/binary_sensor/test_mqtt.py +++ b/tests/components/binary_sensor/test_mqtt.py @@ -23,7 +23,7 @@ class TestSensorMQTT(unittest.TestCase): def test_setting_sensor_value_via_mqtt_message(self): """Test the setting of the value via MQTT.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, binary_sensor.DOMAIN, { binary_sensor.DOMAIN: { 'platform': 'mqtt', @@ -49,7 +49,7 @@ class TestSensorMQTT(unittest.TestCase): def test_valid_sensor_class(self): """Test the setting of a valid sensor class.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, binary_sensor.DOMAIN, { binary_sensor.DOMAIN: { 'platform': 'mqtt', @@ -64,7 +64,7 @@ class TestSensorMQTT(unittest.TestCase): def test_invalid_sensor_class(self): """Test the setting of an invalid sensor class.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, binary_sensor.DOMAIN, { binary_sensor.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/camera/test_uvc.py b/tests/components/camera/test_uvc.py index f5cb0992ec0..c5b8b6a9f78 100644 --- a/tests/components/camera/test_uvc.py +++ b/tests/components/camera/test_uvc.py @@ -19,7 +19,7 @@ class TestUVCSetup(unittest.TestCase): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() self.hass.http = mock.MagicMock() - self.hass.config.components = ['http'] + self.hass.config.components = set(['http']) def tearDown(self): """Stop everything that was started.""" diff --git a/tests/components/cover/test_mqtt.py b/tests/components/cover/test_mqtt.py index 3986fc2466e..05fa29263a9 100644 --- a/tests/components/cover/test_mqtt.py +++ b/tests/components/cover/test_mqtt.py @@ -23,7 +23,7 @@ class TestCoverMQTT(unittest.TestCase): def test_state_via_state_topic(self): """Test the controlling state via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -72,7 +72,7 @@ class TestCoverMQTT(unittest.TestCase): def test_state_via_template(self): """Test the controlling state via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -101,7 +101,7 @@ class TestCoverMQTT(unittest.TestCase): def test_optimistic_state_change(self): """Test changing state optimistically.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -132,7 +132,7 @@ class TestCoverMQTT(unittest.TestCase): def test_send_open_cover_command(self): """Test the sending of open_cover.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -156,7 +156,7 @@ class TestCoverMQTT(unittest.TestCase): def test_send_close_cover_command(self): """Test the sending of close_cover.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -180,7 +180,7 @@ class TestCoverMQTT(unittest.TestCase): def test_send_stop__cover_command(self): """Test the sending of stop_cover.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', @@ -204,7 +204,7 @@ class TestCoverMQTT(unittest.TestCase): def test_current_cover_position(self): """Test the current cover position.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) self.assertTrue(setup_component(self.hass, cover.DOMAIN, { cover.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/cover/test_rfxtrx.py b/tests/components/cover/test_rfxtrx.py index 5f6ecd01e4e..18e2051afd6 100644 --- a/tests/components/cover/test_rfxtrx.py +++ b/tests/components/cover/test_rfxtrx.py @@ -16,7 +16,7 @@ class TestCoverRfxtrx(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['rfxtrx'] + self.hass.config.components = set(['rfxtrx']) def tearDown(self): """Stop everything that was started.""" diff --git a/tests/components/device_tracker/test_asuswrt.py b/tests/components/device_tracker/test_asuswrt.py index 9dfa010edb3..e2a97fd4c76 100644 --- a/tests/components/device_tracker/test_asuswrt.py +++ b/tests/components/device_tracker/test_asuswrt.py @@ -43,7 +43,7 @@ class TestComponentsDeviceTrackerASUSWRT(unittest.TestCase): def setup_method(self, _): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['zone'] + self.hass.config.components = set(['zone']) def teardown_method(self, _): """Stop everything that was started.""" diff --git a/tests/components/device_tracker/test_ddwrt.py b/tests/components/device_tracker/test_ddwrt.py index f7a1c011d10..340bac254b1 100644 --- a/tests/components/device_tracker/test_ddwrt.py +++ b/tests/components/device_tracker/test_ddwrt.py @@ -39,7 +39,7 @@ class TestDdwrt(unittest.TestCase): def setup_method(self, _): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['zone'] + self.hass.config.components = set(['zone']) def teardown_method(self, _): """Stop everything that was started.""" diff --git a/tests/components/device_tracker/test_mqtt.py b/tests/components/device_tracker/test_mqtt.py index 9405c944552..3ce3a358b87 100644 --- a/tests/components/device_tracker/test_mqtt.py +++ b/tests/components/device_tracker/test_mqtt.py @@ -43,7 +43,7 @@ class TestComponentsDeviceTrackerMQTT(unittest.TestCase): dev_id = 'paulus' topic = '/location/paulus' - self.hass.config.components = ['mqtt', 'zone'] + self.hass.config.components = set(['mqtt', 'zone']) assert setup_component(self.hass, device_tracker.DOMAIN, { device_tracker.DOMAIN: { CONF_PLATFORM: 'mqtt', @@ -59,7 +59,7 @@ class TestComponentsDeviceTrackerMQTT(unittest.TestCase): topic = '/location/paulus' location = 'work' - self.hass.config.components = ['mqtt', 'zone'] + self.hass.config.components = set(['mqtt', 'zone']) assert setup_component(self.hass, device_tracker.DOMAIN, { device_tracker.DOMAIN: { CONF_PLATFORM: 'mqtt', diff --git a/tests/components/device_tracker/test_upc_connect.py b/tests/components/device_tracker/test_upc_connect.py index 1bcbc841d3a..010c597cc31 100644 --- a/tests/components/device_tracker/test_upc_connect.py +++ b/tests/components/device_tracker/test_upc_connect.py @@ -30,7 +30,7 @@ class TestUPCConnect(object): def setup_method(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['zone'] + self.hass.config.components = set(['zone']) self.host = "127.0.0.1" diff --git a/tests/components/light/test_mqtt.py b/tests/components/light/test_mqtt.py index 667f2342603..fb6f98f37b4 100644 --- a/tests/components/light/test_mqtt.py +++ b/tests/components/light/test_mqtt.py @@ -99,7 +99,7 @@ class TestLightMQTT(unittest.TestCase): def test_fail_setup_if_no_command_topic(self): """Test if command fails with command topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(0): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -112,7 +112,7 @@ class TestLightMQTT(unittest.TestCase): def test_no_color_or_brightness_or_color_temp_if_no_topics(self): \ # pylint: disable=invalid-name """Test if there is no color and brightness if no topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -157,7 +157,7 @@ class TestLightMQTT(unittest.TestCase): 'payload_off': 0 }} - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, config) @@ -213,7 +213,7 @@ class TestLightMQTT(unittest.TestCase): def test_controlling_scale(self): """Test the controlling scale.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -276,7 +276,7 @@ class TestLightMQTT(unittest.TestCase): 'rgb_value_template': '{{ value_json.hello | join(",") }}', }} - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, config) @@ -316,7 +316,7 @@ class TestLightMQTT(unittest.TestCase): 'payload_off': 'off' }} - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, config) @@ -373,7 +373,7 @@ class TestLightMQTT(unittest.TestCase): 'state_topic': 'test_light_rgb/status', }} - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, config) @@ -398,7 +398,7 @@ class TestLightMQTT(unittest.TestCase): 'state_topic': 'test_light_rgb/status' }} - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, config) diff --git a/tests/components/light/test_mqtt_json.py b/tests/components/light/test_mqtt_json.py index fc9ade7d6ac..cbfa0470fed 100755 --- a/tests/components/light/test_mqtt_json.py +++ b/tests/components/light/test_mqtt_json.py @@ -53,7 +53,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_fail_setup_if_no_command_topic(self): \ # pylint: disable=invalid-name """Test if setup fails with no command topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(0): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -66,7 +66,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_no_color_or_brightness_if_no_config(self): \ # pylint: disable=invalid-name """Test if there is no color and brightness if they aren't defined.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', @@ -92,7 +92,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_controlling_state_via_topic(self): \ # pylint: disable=invalid-name """Test the controlling of the state via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', @@ -152,7 +152,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_sending_mqtt_commands_and_optimistic(self): \ # pylint: disable=invalid-name """Test the sending of command in optimistic mode.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', @@ -208,7 +208,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_flash_short_and_long(self): \ # pylint: disable=invalid-name """Test for flash length being sent when included.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', @@ -250,7 +250,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_transition(self): """Test for transition time being sent when included.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', @@ -292,7 +292,7 @@ class TestLightMQTTJSON(unittest.TestCase): def test_invalid_color_and_brightness_values(self): \ # pylint: disable=invalid-name """Test that invalid color/brightness values are ignored.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { 'platform': 'mqtt_json', diff --git a/tests/components/light/test_mqtt_template.py b/tests/components/light/test_mqtt_template.py index 954f3087646..b2a37c97001 100755 --- a/tests/components/light/test_mqtt_template.py +++ b/tests/components/light/test_mqtt_template.py @@ -45,7 +45,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_setup_fails(self): \ # pylint: disable=invalid-name """Test that setup fails with missing required configuration items.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(0): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -58,7 +58,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_state_change_via_topic(self): \ # pylint: disable=invalid-name """Test state change via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -93,7 +93,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_state_brightness_color_effect_change_via_topic(self): \ # pylint: disable=invalid-name """Test state, brightness, color and effect change via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -170,7 +170,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_optimistic(self): \ # pylint: disable=invalid-name """Test optimistic mode.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -232,7 +232,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_flash(self): \ # pylint: disable=invalid-name """Test flash.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -276,7 +276,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_transition(self): """Test for transition time being sent when included.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { @@ -320,7 +320,7 @@ class TestLightMQTTTemplate(unittest.TestCase): def test_invalid_values(self): \ # pylint: disable=invalid-name """Test that invalid values are ignored.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) with assert_setup_component(1): assert setup_component(self.hass, light.DOMAIN, { light.DOMAIN: { diff --git a/tests/components/light/test_rfxtrx.py b/tests/components/light/test_rfxtrx.py index 6a9311b7892..ca50a9cc925 100644 --- a/tests/components/light/test_rfxtrx.py +++ b/tests/components/light/test_rfxtrx.py @@ -16,7 +16,7 @@ class TestLightRfxtrx(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['rfxtrx'] + self.hass.config.components = set(['rfxtrx']) def tearDown(self): """Stop everything that was started.""" diff --git a/tests/components/lock/test_mqtt.py b/tests/components/lock/test_mqtt.py index 0c85360fc00..f22729a1e5b 100644 --- a/tests/components/lock/test_mqtt.py +++ b/tests/components/lock/test_mqtt.py @@ -23,7 +23,7 @@ class TestLockMQTT(unittest.TestCase): def test_controlling_state_via_topic(self): """Test the controlling state via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, lock.DOMAIN, { lock.DOMAIN: { 'platform': 'mqtt', @@ -53,7 +53,7 @@ class TestLockMQTT(unittest.TestCase): def test_sending_mqtt_commands_and_optimistic(self): """Test the sending MQTT commands in optimistic mode.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, lock.DOMAIN, { lock.DOMAIN: { 'platform': 'mqtt', @@ -87,7 +87,7 @@ class TestLockMQTT(unittest.TestCase): def test_controlling_state_via_topic_and_json_message(self): """Test the controlling state via topic and JSON message.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, lock.DOMAIN, { lock.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/mqtt/test_init.py b/tests/components/mqtt/test_init.py index 54566a09f59..204f1fe15b4 100644 --- a/tests/components/mqtt/test_init.py +++ b/tests/components/mqtt/test_init.py @@ -57,11 +57,11 @@ class TestMQTT(unittest.TestCase): with mock.patch('homeassistant.components.mqtt.MQTT', side_effect=socket.error()): - self.hass.config.components = [] + self.hass.config.components = set() assert not setup_component(self.hass, mqtt.DOMAIN, test_broker_cfg) # Ensure if we dont raise it sets up correctly - self.hass.config.components = [] + self.hass.config.components = set() assert setup_component(self.hass, mqtt.DOMAIN, test_broker_cfg) @mock.patch('paho.mqtt.client.Client') @@ -71,13 +71,13 @@ class TestMQTT(unittest.TestCase): with mock.patch('homeassistant.components.mqtt.server.start', return_value=(True, client_config)) as _start: - self.hass.config.components = [] + self.hass.config.components = set() assert setup_component(self.hass, mqtt.DOMAIN, {mqtt.DOMAIN: {}}) assert _start.call_count == 1 # Test with `embedded: None` - self.hass.config.components = [] + self.hass.config.components = set() assert setup_component(self.hass, mqtt.DOMAIN, {mqtt.DOMAIN: {'embedded': None}}) assert _start.call_count == 2 # Another call @@ -234,7 +234,7 @@ class TestMQTTCallbacks(unittest.TestCase): # mock_mqtt_component(self.hass) with mock.patch('paho.mqtt.client.Client'): - self.hass.config.components = [] + self.hass.config.components = set() assert setup_component(self.hass, mqtt.DOMAIN, { mqtt.DOMAIN: { mqtt.CONF_BROKER: 'mock-broker', diff --git a/tests/components/mqtt/test_server.py b/tests/components/mqtt/test_server.py index 03caf8cc4c0..ceb648c6ef5 100644 --- a/tests/components/mqtt/test_server.py +++ b/tests/components/mqtt/test_server.py @@ -13,7 +13,7 @@ class TestMQTT: def setup_method(self, method): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('http') + self.hass.config.components.add('http') def teardown_method(self, method): """Stop everything that was started.""" @@ -38,7 +38,7 @@ class TestMQTT: mock_mqtt.reset_mock() - self.hass.config.components = ['http'] + self.hass.config.components = set(['http']) self.hass.config.api = MagicMock(api_password=None) assert setup_component(self.hass, mqtt.DOMAIN, {}) assert mock_mqtt.called diff --git a/tests/components/sensor/test_mqtt.py b/tests/components/sensor/test_mqtt.py index cac02d6bcd2..771aa999210 100644 --- a/tests/components/sensor/test_mqtt.py +++ b/tests/components/sensor/test_mqtt.py @@ -22,7 +22,7 @@ class TestSensorMQTT(unittest.TestCase): def test_setting_sensor_value_via_mqtt_message(self): """Test the setting of the value via MQTT.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, sensor.DOMAIN, { sensor.DOMAIN: { 'platform': 'mqtt', @@ -42,7 +42,7 @@ class TestSensorMQTT(unittest.TestCase): def test_setting_sensor_value_via_mqtt_json_message(self): """Test the setting of the value via MQTT with JSON playload.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, sensor.DOMAIN, { sensor.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/sensor/test_pilight.py b/tests/components/sensor/test_pilight.py index 943369f209c..2bade2af1a3 100644 --- a/tests/components/sensor/test_pilight.py +++ b/tests/components/sensor/test_pilight.py @@ -23,7 +23,7 @@ def setup_function(): global HASS HASS = get_test_home_assistant() - HASS.config.components = ['pilight'] + HASS.config.components = set(['pilight']) # pylint: disable=invalid-name diff --git a/tests/components/sensor/test_rfxtrx.py b/tests/components/sensor/test_rfxtrx.py index e70f8b5641d..092a9b60f85 100644 --- a/tests/components/sensor/test_rfxtrx.py +++ b/tests/components/sensor/test_rfxtrx.py @@ -17,7 +17,7 @@ class TestSensorRfxtrx(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['rfxtrx'] + self.hass.config.components = set(['rfxtrx']) def tearDown(self): """Stop everything that was started.""" diff --git a/tests/components/switch/test_mqtt.py b/tests/components/switch/test_mqtt.py index f39f4d11ec5..f6f9ffa0f86 100644 --- a/tests/components/switch/test_mqtt.py +++ b/tests/components/switch/test_mqtt.py @@ -22,7 +22,7 @@ class TestSensorMQTT(unittest.TestCase): def test_controlling_state_via_topic(self): """Test the controlling state via topic.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, switch.DOMAIN, { switch.DOMAIN: { 'platform': 'mqtt', @@ -52,7 +52,7 @@ class TestSensorMQTT(unittest.TestCase): def test_sending_mqtt_commands_and_optimistic(self): """Test the sending MQTT commands in optimistic mode.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, switch.DOMAIN, { switch.DOMAIN: { 'platform': 'mqtt', @@ -86,7 +86,7 @@ class TestSensorMQTT(unittest.TestCase): def test_controlling_state_via_topic_and_json_message(self): """Test the controlling state via topic and JSON message.""" - self.hass.config.components = ['mqtt'] + self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, switch.DOMAIN, { switch.DOMAIN: { 'platform': 'mqtt', diff --git a/tests/components/switch/test_rfxtrx.py b/tests/components/switch/test_rfxtrx.py index ddee7cccaf7..26af42be4a9 100644 --- a/tests/components/switch/test_rfxtrx.py +++ b/tests/components/switch/test_rfxtrx.py @@ -16,7 +16,7 @@ class TestSwitchRfxtrx(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components = ['rfxtrx'] + self.hass.config.components = set(['rfxtrx']) def tearDown(self): """Stop everything that was started.""" diff --git a/tests/components/test_api.py b/tests/components/test_api.py index 28ffa7405e7..38222ff8f00 100644 --- a/tests/components/test_api.py +++ b/tests/components/test_api.py @@ -235,13 +235,17 @@ class TestAPI(unittest.TestCase): """Test the return of the configuration.""" req = requests.get(_url(const.URL_API_CONFIG), headers=HA_HEADERS) - self.assertEqual(hass.config.as_dict(), req.json()) + result = req.json() + if 'components' in result: + result['components'] = set(result['components']) + + self.assertEqual(hass.config.as_dict(), result) def test_api_get_components(self): """Test the return of the components.""" req = requests.get(_url(const.URL_API_COMPONENTS), headers=HA_HEADERS) - self.assertEqual(hass.config.components, req.json()) + self.assertEqual(hass.config.components, set(req.json())) def test_api_get_error_log(self): """Test the return of the error log.""" diff --git a/tests/components/test_logbook.py b/tests/components/test_logbook.py index 047ca480f6f..1e755a5155b 100644 --- a/tests/components/test_logbook.py +++ b/tests/components/test_logbook.py @@ -25,7 +25,7 @@ class TestComponentLogbook(unittest.TestCase): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() mock_http_component(self.hass) - self.hass.config.components += ['frontend', 'recorder', 'api'] + self.hass.config.components &= set(['frontend', 'recorder', 'api']) with patch('homeassistant.components.logbook.' 'register_built_in_panel'): assert setup_component(self.hass, logbook.DOMAIN, diff --git a/tests/components/test_script.py b/tests/components/test_script.py index 438ae75e9c6..4e8d94ade21 100644 --- a/tests/components/test_script.py +++ b/tests/components/test_script.py @@ -19,7 +19,7 @@ class TestScriptComponent(unittest.TestCase): def setUp(self): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() - self.hass.config.components.append('group') + self.hass.config.components.add('group') # pylint: disable=invalid-name def tearDown(self): diff --git a/tests/components/test_websocket_api.py b/tests/components/test_websocket_api.py index a6748e7fc16..3cdc77414ee 100644 --- a/tests/components/test_websocket_api.py +++ b/tests/components/test_websocket_api.py @@ -265,6 +265,10 @@ def test_get_config(hass, websocket_client): assert msg['id'] == 5 assert msg['type'] == wapi.TYPE_RESULT assert msg['success'] + + if 'components' in msg['result']: + msg['result']['components'] = set(msg['result']['components']) + assert msg['result'] == hass.config.as_dict() diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py index 0a1e3633916..b2c644a68b9 100644 --- a/tests/test_bootstrap.py +++ b/tests/test_bootstrap.py @@ -61,7 +61,7 @@ class TestBootstrap: @mock.patch('homeassistant.helpers.signal.async_register_signal_handling') def test_from_config_file(self, mock_upgrade, mock_detect, mock_signal): """Test with configuration file.""" - components = ['browser', 'conversation', 'script'] + components = set(['browser', 'conversation', 'script']) files = { 'config.yaml': ''.join( '{}:\n'.format(comp) @@ -76,8 +76,8 @@ class TestBootstrap: patch_yaml_files(files, True): self.hass = bootstrap.from_config_file('config.yaml') - components.append('group') - assert sorted(components) == sorted(self.hass.config.components) + components.add('group') + assert components == self.hass.config.components def test_handle_setup_circular_dependency(self): """Test the setup of circular dependencies.""" @@ -91,7 +91,7 @@ class TestBootstrap: loader.set_component('comp_a', MockModule('comp_a', setup=setup_a)) bootstrap.setup_component(self.hass, 'comp_a') - assert ['comp_a'] == self.hass.config.components + assert set(['comp_a']) == self.hass.config.components def test_validate_component_config(self): """Test validating component configuration.""" @@ -251,7 +251,7 @@ class TestBootstrap: thread = threading.Thread(target=setup_component) thread.start() - self.hass.config.components.append('comp') + self.hass.config.components.add('comp') thread.join() diff --git a/tests/test_core.py b/tests/test_core.py index 14276584ae2..98909ff8616 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -728,7 +728,7 @@ class TestConfig(unittest.TestCase): CONF_UNIT_SYSTEM: METRIC_SYSTEM.as_dict(), 'location_name': None, 'time_zone': 'UTC', - 'components': [], + 'components': set(), 'config_dir': '/tmp/ha-config', 'version': __version__, } From ecbbb06b2f9d251cba883d7deadf15a4edc322ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20St=C3=A5hl?= Date: Thu, 9 Feb 2017 22:25:06 +0100 Subject: [PATCH 003/196] Handle connection errors when connecting to Apple TVs (#5829) * Handle connection errors when connecting to Apple TVs Also bump pyatv to 0.1.2 which fixes a request leak. * Fix pylint error * Fix import order --- homeassistant/components/media_player/apple_tv.py | 5 ++++- requirements_all.txt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/apple_tv.py b/homeassistant/components/media_player/apple_tv.py index 19700e2f8d7..a4632c5a12d 100644 --- a/homeassistant/components/media_player/apple_tv.py +++ b/homeassistant/components/media_player/apple_tv.py @@ -8,6 +8,7 @@ import asyncio import logging import hashlib +import aiohttp import voluptuous as vol from homeassistant.components.media_player import ( @@ -21,7 +22,7 @@ import homeassistant.helpers.config_validation as cv import homeassistant.util.dt as dt_util -REQUIREMENTS = ['pyatv==0.1.1'] +REQUIREMENTS = ['pyatv==0.1.2'] _LOGGER = logging.getLogger(__name__) @@ -128,6 +129,8 @@ class AppleTvDevice(MediaPlayerDevice): self._playing = playing except exceptions.AuthenticationError as ex: _LOGGER.warning('%s (bad login id?)', str(ex)) + except aiohttp.errors.ClientOSError as ex: + _LOGGER.error('failed to connect to Apple TV (%s)', str(ex)) except asyncio.TimeoutError: _LOGGER.warning('timed out while connecting to Apple TV') diff --git a/requirements_all.txt b/requirements_all.txt index 21c5538c76b..e67826fa1f6 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -418,7 +418,7 @@ pyasn1-modules==0.0.8 pyasn1==0.2.2 # homeassistant.components.media_player.apple_tv -pyatv==0.1.1 +pyatv==0.1.2 # homeassistant.components.device_tracker.bbox # homeassistant.components.sensor.bbox From ebfff6a907ba5d43a8bfa342d12b300980d861cf Mon Sep 17 00:00:00 2001 From: Stefano Scipioni Date: Thu, 9 Feb 2017 23:05:28 +0100 Subject: [PATCH 004/196] Telegram webhooks (#5793) * new component telegram_webhooks * keyboard support in telegram notify * telegram_webhooks has no tests * requirement like notify/telegram * ops, requirements_all.txt needed for travis * ops, requirements_all.txt is generated by script/gen_requirements_all.py * check telegram trusted networks in web handler * raise an event now * use of hass.config.api.base_url * more readable * small cleanups * Small style change for HA guideline * fix lint * revert return to origin --- .coveragerc | 1 + homeassistant/components/notify/telegram.py | 21 ++- homeassistant/components/telegram_webhooks.py | 130 ++++++++++++++++++ requirements_all.txt | 1 + 4 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 homeassistant/components/telegram_webhooks.py diff --git a/.coveragerc b/.coveragerc index 9de3b6f8cf6..14f9a8b29f6 100644 --- a/.coveragerc +++ b/.coveragerc @@ -386,6 +386,7 @@ omit = homeassistant/components/switch/tplink.py homeassistant/components/switch/transmission.py homeassistant/components/switch/wake_on_lan.py + homeassistant/components/telegram_webhooks.py homeassistant/components/thingspeak.py homeassistant/components/tts/amazon_polly.py homeassistant/components/tts/picotts.py diff --git a/homeassistant/components/notify/telegram.py b/homeassistant/components/notify/telegram.py index fd901016fc5..0020c67eefb 100644 --- a/homeassistant/components/notify/telegram.py +++ b/homeassistant/components/notify/telegram.py @@ -22,6 +22,7 @@ _LOGGER = logging.getLogger(__name__) REQUIREMENTS = ['python-telegram-bot==5.3.0'] ATTR_PHOTO = 'photo' +ATTR_KEYBOARD = 'keyboard' ATTR_DOCUMENT = 'document' ATTR_CAPTION = 'caption' ATTR_URL = 'url' @@ -107,6 +108,10 @@ class TelegramNotificationService(BaseNotificationService): return self.send_location(data.get(ATTR_LOCATION)) elif data is not None and ATTR_DOCUMENT in data: return self.send_document(data.get(ATTR_DOCUMENT)) + elif data is not None and ATTR_KEYBOARD in data: + keys = data.get(ATTR_KEYBOARD) + keys = keys if isinstance(keys, list) else [keys] + return self.send_keyboard(message, keys) if title: text = '{} {}'.format(title, message) @@ -122,7 +127,18 @@ class TelegramNotificationService(BaseNotificationService): parse_mode=parse_mode) except telegram.error.TelegramError: _LOGGER.exception("Error sending message") - return + + def send_keyboard(self, message, keys): + """Display keyboard.""" + import telegram + + keyboard = telegram.ReplyKeyboardMarkup([ + [key.strip() for key in row.split(",")] for row in keys]) + try: + self.bot.sendMessage(chat_id=self._chat_id, text=message, + reply_markup=keyboard) + except telegram.error.TelegramError: + _LOGGER.exception("Error sending message") def send_photo(self, data): """Send a photo.""" @@ -141,7 +157,6 @@ class TelegramNotificationService(BaseNotificationService): photo=photo, caption=caption) except telegram.error.TelegramError: _LOGGER.exception("Error sending photo") - return def send_document(self, data): """Send a document.""" @@ -160,7 +175,6 @@ class TelegramNotificationService(BaseNotificationService): document=document, caption=caption) except telegram.error.TelegramError: _LOGGER.exception("Error sending document") - return def send_location(self, gps): """Send a location.""" @@ -174,4 +188,3 @@ class TelegramNotificationService(BaseNotificationService): latitude=latitude, longitude=longitude) except telegram.error.TelegramError: _LOGGER.exception("Error sending location") - return diff --git a/homeassistant/components/telegram_webhooks.py b/homeassistant/components/telegram_webhooks.py new file mode 100644 index 00000000000..541b81a9567 --- /dev/null +++ b/homeassistant/components/telegram_webhooks.py @@ -0,0 +1,130 @@ +""" +Allows utilizing telegram webhooks. + +See https://core.telegram.org/bots/webhooks for details + about webhooks. + +""" +import asyncio +import logging +from ipaddress import ip_network + +import voluptuous as vol + +from homeassistant.const import ( + HTTP_BAD_REQUEST, HTTP_UNAUTHORIZED) +import homeassistant.helpers.config_validation as cv +from homeassistant.components.http import HomeAssistantView +from homeassistant.const import CONF_API_KEY +from homeassistant.components.http.util import get_real_ip + +DOMAIN = 'telegram_webhooks' +DEPENDENCIES = ['http'] +REQUIREMENTS = ['python-telegram-bot==5.3.0'] + +_LOGGER = logging.getLogger(__name__) + +EVENT_TELEGRAM_COMMAND = 'telegram.command' + +TELEGRAM_HANDLER_URL = '/api/telegram_webhooks' + +CONF_USER_ID = 'user_id' +CONF_TRUSTED_NETWORKS = 'trusted_networks' +DEFAULT_TRUSTED_NETWORKS = [ + ip_network('149.154.167.197/32'), + ip_network('149.154.167.198/31'), + ip_network('149.154.167.200/29'), + ip_network('149.154.167.208/28'), + ip_network('149.154.167.224/29'), + ip_network('149.154.167.232/31') +] + +ATTR_COMMAND = 'command' +ATTR_USER_ID = 'user_id' +ATTR_ARGS = 'args' + +CONFIG_SCHEMA = vol.Schema({ + DOMAIN: vol.Schema({ + vol.Optional(CONF_API_KEY): cv.string, + vol.Optional(CONF_TRUSTED_NETWORKS, default=DEFAULT_TRUSTED_NETWORKS): + vol.All(cv.ensure_list, [ip_network]), + vol.Required(CONF_USER_ID): {cv.string: cv.positive_int}, + }), +}, extra=vol.ALLOW_EXTRA) + + +def setup(hass, config): + """Setup the telegram_webhooks component. + + register webhook if API_KEY is specified + register /api/telegram_webhooks as web service for telegram bot + """ + import telegram + + conf = config[DOMAIN] + + if CONF_API_KEY in conf: + bot = telegram.Bot(conf[CONF_API_KEY]) + current_status = bot.getWebhookInfo() + _LOGGER.debug("telegram webhook status: %s", current_status) + handler_url = "{0}{1}".format(hass.config.api.base_url, + TELEGRAM_HANDLER_URL) + if current_status and current_status['url'] != handler_url: + if bot.setWebhook(handler_url): + _LOGGER.info("set new telegram webhook %s", handler_url) + else: + _LOGGER.error("set telegram webhook failed %s", handler_url) + + hass.http.register_view(BotPushReceiver(conf[CONF_USER_ID], + conf[CONF_TRUSTED_NETWORKS])) + return True + + +class BotPushReceiver(HomeAssistantView): + """Handle pushes from telegram.""" + + requires_auth = False + url = TELEGRAM_HANDLER_URL + name = "telegram_webhooks" + + def __init__(self, user_id_array, trusted_networks): + """Initialize users allowed to send messages to bot.""" + self.trusted_networks = trusted_networks + self.users = {user_id: dev_id for dev_id, user_id in + user_id_array.items()} + _LOGGER.debug("users allowed: %s", self.users) + + @asyncio.coroutine + def post(self, request): + """Accept the POST from telegram.""" + real_ip = get_real_ip(request) + if not any(real_ip in net for net in self.trusted_networks): + _LOGGER.warning("Access denied from %s", real_ip) + return self.json_message('Access denied', HTTP_UNAUTHORIZED) + + try: + data = yield from request.json() + data = data['message'] + + if data['text'][0] != '/': + _LOGGER.warning('no command') + return self.json({}) + except (ValueError, IndexError): + return self.json_message('Invalid JSON', HTTP_BAD_REQUEST) + + try: + if data['from']['id'] not in self.users: + raise ValueError() + except (ValueError, IndexError): + _LOGGER.warning("User not allowed") + return self.json_message('Invalid user', HTTP_BAD_REQUEST) + + _LOGGER.debug("Received telegram data: %s", data) + + pieces = data['text'].split(' ') + request.app['hass'].bus.async_fire(EVENT_TELEGRAM_COMMAND, { + ATTR_COMMAND: pieces[0], + ATTR_ARGS: " ".join(pieces[1:]), + ATTR_USER_ID: data['from']['id'], + }) + return self.json({}) diff --git a/requirements_all.txt b/requirements_all.txt index e67826fa1f6..7a8c30b0635 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -546,6 +546,7 @@ python-pushover==0.2 # homeassistant.components.sensor.synologydsm python-synology==0.1.0 +# homeassistant.components.telegram_webhooks # homeassistant.components.notify.telegram python-telegram-bot==5.3.0 From 841321f1543769b40a06970c43f99e015b5c88f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20St=C3=A5hl?= Date: Thu, 9 Feb 2017 23:07:46 +0100 Subject: [PATCH 005/196] Reuse default aiohttp session (#5836) --- homeassistant/components/media_player/apple_tv.py | 6 ++++-- requirements_all.txt | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/media_player/apple_tv.py b/homeassistant/components/media_player/apple_tv.py index a4632c5a12d..2f47b1ba0a8 100644 --- a/homeassistant/components/media_player/apple_tv.py +++ b/homeassistant/components/media_player/apple_tv.py @@ -18,11 +18,12 @@ from homeassistant.components.media_player import ( from homeassistant.const import ( STATE_IDLE, STATE_PAUSED, STATE_PLAYING, STATE_STANDBY, CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP) +from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv import homeassistant.util.dt as dt_util -REQUIREMENTS = ['pyatv==0.1.2'] +REQUIREMENTS = ['pyatv==0.1.3'] _LOGGER = logging.getLogger(__name__) @@ -62,7 +63,8 @@ def async_setup_platform(hass, config, async_add_entities, hass.data[DATA_APPLE_TV].append(host) details = pyatv.AppleTVDevice(name, host, login_id) - atv = pyatv.connect_to_apple_tv(details, hass.loop) + session = async_get_clientsession(hass) + atv = pyatv.connect_to_apple_tv(details, hass.loop, session=session) entity = AppleTvDevice(atv, name) @asyncio.coroutine diff --git a/requirements_all.txt b/requirements_all.txt index 7a8c30b0635..6596aa76b3c 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -418,7 +418,7 @@ pyasn1-modules==0.0.8 pyasn1==0.2.2 # homeassistant.components.media_player.apple_tv -pyatv==0.1.2 +pyatv==0.1.3 # homeassistant.components.device_tracker.bbox # homeassistant.components.sensor.bbox From 2e8e5a35b534b5cd508c6471642893e2ab600a2b Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 10 Feb 2017 02:31:20 +0100 Subject: [PATCH 006/196] Update aiohttp 1.3.1 (#5838) --- requirements_all.txt | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements_all.txt b/requirements_all.txt index 6596aa76b3c..75aaaf92138 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -6,7 +6,7 @@ pip>=7.0.0 jinja2>=2.8 voluptuous==0.9.3 typing>=3,<4 -aiohttp==1.3 +aiohttp==1.3.1 async_timeout==1.1.0 # homeassistant.components.nuimo_controller diff --git a/setup.py b/setup.py index b9d5d3460fb..b6b679315e1 100755 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ REQUIRES = [ 'jinja2>=2.8', 'voluptuous==0.9.3', 'typing>=3,<4', - 'aiohttp==1.3', + 'aiohttp==1.3.1', 'async_timeout==1.1.0', ] From 4c5e6399e9163c564992e20fec837cacb506533f Mon Sep 17 00:00:00 2001 From: Philipp Schmitt Date: Fri, 10 Feb 2017 02:57:19 +0100 Subject: [PATCH 007/196] Refactoring and JSON decode error handling (#5826) * Refactoring and JSON decode error handling * Catch ValueError instead of simplejson.scanner.JSONDecodeError --- homeassistant/components/zoneminder.py | 43 ++++++++++++-------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/homeassistant/components/zoneminder.py b/homeassistant/components/zoneminder.py index 4920a5a6ce2..0fbe807fb2a 100644 --- a/homeassistant/components/zoneminder.py +++ b/homeassistant/components/zoneminder.py @@ -5,7 +5,6 @@ For more details about this component, please refer to the documentation at https://home-assistant.io/components/zoneminder/ """ import logging -import json from urllib.parse import urljoin import requests @@ -79,46 +78,44 @@ def login(): ZM['url'] + 'api/host/getVersion.json', cookies=ZM['cookies'], timeout=DEFAULT_TIMEOUT) - if req.status_code != requests.codes.ok: + if not req.ok: _LOGGER.error("Connection error logging into ZoneMinder") return False return True -# pylint: disable=no-member -def get_state(api_url): - """Get a state from the ZoneMinder API service.""" +def _zm_request(method, api_url, data=None): + """Perform a Zoneminder request.""" # Since the API uses sessions that expire, sometimes we need to re-auth # if the call fails. for _ in range(LOGIN_RETRIES): - req = requests.get(urljoin(ZM['url'], api_url), cookies=ZM['cookies'], - timeout=DEFAULT_TIMEOUT) + req = requests.request( + method, urljoin(ZM['url'], api_url), data=data, + cookies=ZM['cookies'], timeout=DEFAULT_TIMEOUT) - if req.status_code != requests.codes.ok: + if not req.ok: login() else: break + else: _LOGGER.exception("Unable to get API response from ZoneMinder") - return json.loads(req.text) + try: + return req.json() + except ValueError: + _LOGGER.exception('JSON decode exception caught while attempting to ' + 'decode "%s"', req.text) + + +# pylint: disable=no-member +def get_state(api_url): + """Get a state from the ZoneMinder API service.""" + return _zm_request('get', api_url) # pylint: disable=no-member def change_state(api_url, post_data): """Update a state using the Zoneminder API.""" - for _ in range(LOGIN_RETRIES): - req = requests.post( - urljoin(ZM['url'], api_url), data=post_data, cookies=ZM['cookies'], - timeout=DEFAULT_TIMEOUT) - - if req.status_code != requests.codes.ok: - login() - else: - break - - else: - _LOGGER.exception("Unable to get API response from ZoneMinder") - - return json.loads(req.text) + return _zm_request('post', api_url, data=post_data) From be08bf0ef70fbdf98e47a13cf3eef62a2cd462cd Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Thu, 9 Feb 2017 21:17:17 -0500 Subject: [PATCH 008/196] [recorder] Add tests for full schema migration (#5831) * [recorder] Add tests for full schema migration * Remove leftover code * Fix duplicate creation of sqlalchemy Index object * It's that kind of day... * Improve models_original docstring --- homeassistant/components/recorder/__init__.py | 7 +- tests/components/recorder/models_original.py | 163 ++++++++++++++++++ tests/components/recorder/test_init.py | 58 ++++++- 3 files changed, 216 insertions(+), 12 deletions(-) create mode 100644 tests/components/recorder/models_original.py diff --git a/homeassistant/components/recorder/__init__.py b/homeassistant/components/recorder/__init__.py index 14b9fe11574..8d3213a4805 100644 --- a/homeassistant/components/recorder/__init__.py +++ b/homeassistant/components/recorder/__init__.py @@ -345,15 +345,16 @@ class Recorder(threading.Thread): def _apply_update(self, new_version): """Perform operations to bring schema up to date.""" - from sqlalchemy import Index, Table + from sqlalchemy import Table import homeassistant.components.recorder.models as models if new_version == 1: def create_index(table_name, column_name): """Create an index for the specified table and column.""" table = Table(table_name, models.Base.metadata) - index_name = "_".join(("ix", table_name, column_name)) - index = Index(index_name, getattr(table.c, column_name)) + name = "_".join(("ix", table_name, column_name)) + # Look up the index object that was created from the models + index = next(idx for idx in table.indexes if idx.name == name) _LOGGER.debug("Creating index for table %s column %s", table_name, column_name) index.create(self.engine) diff --git a/tests/components/recorder/models_original.py b/tests/components/recorder/models_original.py new file mode 100644 index 00000000000..31ec5ee7ed7 --- /dev/null +++ b/tests/components/recorder/models_original.py @@ -0,0 +1,163 @@ +"""Models for SQLAlchemy. + +This file contains the original models definitions before schema tracking was +implemented. It is used to test the schema migration logic. +""" + +import json +from datetime import datetime +import logging + +from sqlalchemy import (Boolean, Column, DateTime, ForeignKey, Index, Integer, + String, Text, distinct) +from sqlalchemy.ext.declarative import declarative_base + +import homeassistant.util.dt as dt_util +from homeassistant.core import Event, EventOrigin, State, split_entity_id +from homeassistant.remote import JSONEncoder + +# SQLAlchemy Schema +# pylint: disable=invalid-name +Base = declarative_base() + +_LOGGER = logging.getLogger(__name__) + + +class Events(Base): # type: ignore + """Event history data.""" + + __tablename__ = 'events' + event_id = Column(Integer, primary_key=True) + event_type = Column(String(32), index=True) + event_data = Column(Text) + origin = Column(String(32)) + time_fired = Column(DateTime(timezone=True)) + created = Column(DateTime(timezone=True), default=datetime.utcnow) + + @staticmethod + def from_event(event): + """Create an event database object from a native event.""" + return Events(event_type=event.event_type, + event_data=json.dumps(event.data, cls=JSONEncoder), + origin=str(event.origin), + time_fired=event.time_fired) + + def to_native(self): + """Convert to a natve HA Event.""" + try: + return Event( + self.event_type, + json.loads(self.event_data), + EventOrigin(self.origin), + _process_timestamp(self.time_fired) + ) + except ValueError: + # When json.loads fails + _LOGGER.exception("Error converting to event: %s", self) + return None + + +class States(Base): # type: ignore + """State change history.""" + + __tablename__ = 'states' + state_id = Column(Integer, primary_key=True) + domain = Column(String(64)) + entity_id = Column(String(255)) + state = Column(String(255)) + attributes = Column(Text) + event_id = Column(Integer, ForeignKey('events.event_id')) + last_changed = Column(DateTime(timezone=True), default=datetime.utcnow) + last_updated = Column(DateTime(timezone=True), default=datetime.utcnow) + created = Column(DateTime(timezone=True), default=datetime.utcnow) + + __table_args__ = (Index('states__state_changes', + 'last_changed', 'last_updated', 'entity_id'), + Index('states__significant_changes', + 'domain', 'last_updated', 'entity_id'), ) + + @staticmethod + def from_event(event): + """Create object from a state_changed event.""" + entity_id = event.data['entity_id'] + state = event.data.get('new_state') + + dbstate = States(entity_id=entity_id) + + # State got deleted + if state is None: + dbstate.state = '' + dbstate.domain = split_entity_id(entity_id)[0] + dbstate.attributes = '{}' + dbstate.last_changed = event.time_fired + dbstate.last_updated = event.time_fired + else: + dbstate.domain = state.domain + dbstate.state = state.state + dbstate.attributes = json.dumps(dict(state.attributes), + cls=JSONEncoder) + dbstate.last_changed = state.last_changed + dbstate.last_updated = state.last_updated + + return dbstate + + def to_native(self): + """Convert to an HA state object.""" + try: + return State( + self.entity_id, self.state, + json.loads(self.attributes), + _process_timestamp(self.last_changed), + _process_timestamp(self.last_updated) + ) + except ValueError: + # When json.loads fails + _LOGGER.exception("Error converting row to state: %s", self) + return None + + +class RecorderRuns(Base): # type: ignore + """Representation of recorder run.""" + + __tablename__ = 'recorder_runs' + run_id = Column(Integer, primary_key=True) + start = Column(DateTime(timezone=True), default=datetime.utcnow) + end = Column(DateTime(timezone=True)) + closed_incorrect = Column(Boolean, default=False) + created = Column(DateTime(timezone=True), default=datetime.utcnow) + + def entity_ids(self, point_in_time=None): + """Return the entity ids that existed in this run. + + Specify point_in_time if you want to know which existed at that point + in time inside the run. + """ + from sqlalchemy.orm.session import Session + + session = Session.object_session(self) + + assert session is not None, 'RecorderRuns need to be persisted' + + query = session.query(distinct(States.entity_id)).filter( + States.last_updated >= self.start) + + if point_in_time is not None: + query = query.filter(States.last_updated < point_in_time) + elif self.end is not None: + query = query.filter(States.last_updated < self.end) + + return [row[0] for row in query] + + def to_native(self): + """Return self, native format is this model.""" + return self + + +def _process_timestamp(ts): + """Process a timestamp into datetime object.""" + if ts is None: + return None + elif ts.tzinfo is None: + return dt_util.UTC.localize(ts) + else: + return dt_util.as_utc(ts) diff --git a/tests/components/recorder/test_init.py b/tests/components/recorder/test_init.py index ce395044d11..0bfa3a20997 100644 --- a/tests/components/recorder/test_init.py +++ b/tests/components/recorder/test_init.py @@ -6,15 +6,18 @@ import unittest from unittest.mock import patch, call, MagicMock import pytest +from sqlalchemy import create_engine + from homeassistant.core import callback from homeassistant.const import MATCH_ALL from homeassistant.components import recorder from homeassistant.bootstrap import setup_component from tests.common import get_test_home_assistant +from tests.components.recorder import models_original -class TestRecorder(unittest.TestCase): - """Test the recorder module.""" +class BaseTestRecorder(unittest.TestCase): + """Base class for common recorder tests.""" def setUp(self): # pylint: disable=invalid-name """Setup things to be run when tests are started.""" @@ -87,6 +90,10 @@ class TestRecorder(unittest.TestCase): time_fired=timestamp, )) + +class TestRecorder(BaseTestRecorder): + """Test the recorder module.""" + def test_saving_state(self): """Test saving and restoring a state.""" entity_id = 'test.recorder' @@ -205,15 +212,48 @@ class TestRecorder(unittest.TestCase): with self.assertRaises(ValueError): recorder._INSTANCE._apply_update(-1) + +def create_engine_test(*args, **kwargs): + """Test version of create_engine that initializes with old schema. + + This simulates an existing db with the old schema. + """ + engine = create_engine(*args, **kwargs) + models_original.Base.metadata.create_all(engine) + return engine + + +class TestMigrateRecorder(BaseTestRecorder): + """Test recorder class that starts with an original schema db.""" + + @patch('sqlalchemy.create_engine', new=create_engine_test) + @patch('homeassistant.components.recorder.Recorder._migrate_schema') + def setUp(self, migrate): # pylint: disable=invalid-name + """Setup things to be run when tests are started. + + create_engine is patched to create a db that starts with the old + schema. + + _migrate_schema is mocked to ensure it isn't run, so we can test it + below. + """ + super().setUp() + def test_schema_update_calls(self): # pylint: disable=no-self-use """Test that schema migrations occurr in correct order.""" - test_version = recorder.models.SchemaChanges(schema_version=0) - with recorder.session_scope() as session: - session.add(test_version) - with patch.object(recorder._INSTANCE, '_apply_update') as update: - recorder._INSTANCE._migrate_schema() - update.assert_has_calls([call(version+1) for version in range( - 0, recorder.models.SCHEMA_VERSION)]) + with patch.object(recorder._INSTANCE, '_apply_update') as update: + recorder._INSTANCE._migrate_schema() + update.assert_has_calls([call(version+1) for version in range( + 0, recorder.models.SCHEMA_VERSION)]) + + def test_schema_migrate(self): # pylint: disable=no-self-use + """Test the full schema migration logic. + + We're just testing that the logic can execute successfully here without + throwing exceptions. Maintaining a set of assertions based on schema + inspection could quickly become quite cumbersome. + """ + recorder._INSTANCE._migrate_schema() @pytest.fixture From 5ecef6aaac47413e72512a079c934a7162984f38 Mon Sep 17 00:00:00 2001 From: Boris K Date: Fri, 10 Feb 2017 03:47:12 +0100 Subject: [PATCH 009/196] Add history_stats sensor (#5610) * Add new sensor/history_stats component * Add real unit tests * Code style changes requested for pull request * Remove time aliases & allow datetime values * Reformat unit tests * Remove all async behavior in history_stats * Change duration format --- .../components/sensor/history_stats.py | 278 ++++++++++++++++++ tests/components/sensor/test_history_stats.py | 215 ++++++++++++++ 2 files changed, 493 insertions(+) create mode 100644 homeassistant/components/sensor/history_stats.py create mode 100644 tests/components/sensor/test_history_stats.py diff --git a/homeassistant/components/sensor/history_stats.py b/homeassistant/components/sensor/history_stats.py new file mode 100644 index 00000000000..8d03f4754e0 --- /dev/null +++ b/homeassistant/components/sensor/history_stats.py @@ -0,0 +1,278 @@ +""" +Component to make instant statistics about your history. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/sensor.history_stats/ +""" + +import datetime +import logging +import math + +import voluptuous as vol + +import homeassistant.components.history as history +import homeassistant.helpers.config_validation as cv +import homeassistant.util.dt as dt_util +from homeassistant.components.sensor import PLATFORM_SCHEMA +from homeassistant.const import ( + CONF_NAME, CONF_ENTITY_ID, CONF_STATE, EVENT_HOMEASSISTANT_START) +from homeassistant.exceptions import TemplateError +from homeassistant.helpers.entity import Entity +from homeassistant.helpers.event import track_state_change + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = 'history_stats' +DEPENDENCIES = ['history'] + +CONF_START = 'start' +CONF_END = 'end' +CONF_DURATION = 'duration' +CONF_PERIOD_KEYS = [CONF_START, CONF_END, CONF_DURATION] + +DEFAULT_NAME = 'unnamed statistics' +UNIT = 'h' +UNIT_RATIO = '%' +ICON = 'mdi:chart-line' + +ATTR_START = 'from' +ATTR_END = 'to' +ATTR_VALUE = 'value' +ATTR_RATIO = 'ratio' + + +def exactly_two_period_keys(conf): + """Ensure exactly 2 of CONF_PERIOD_KEYS are provided.""" + provided = 0 + + for param in CONF_PERIOD_KEYS: + if param in conf and conf[param] is not None: + provided += 1 + + if provided != 2: + raise vol.Invalid('You must provide exactly 2 of the following:' + ' start, end, duration') + return conf + + +PLATFORM_SCHEMA = vol.All(PLATFORM_SCHEMA.extend({ + vol.Required(CONF_ENTITY_ID): cv.entity_id, + vol.Required(CONF_STATE): cv.slug, + vol.Optional(CONF_START, default=None): cv.template, + vol.Optional(CONF_END, default=None): cv.template, + vol.Optional(CONF_DURATION, default=None): cv.time_period, + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, +}), exactly_two_period_keys) + + +# noinspection PyUnusedLocal +def setup_platform(hass, config, add_devices, discovery_info=None): + """Set up the History Stats sensor.""" + entity_id = config.get(CONF_ENTITY_ID) + entity_state = config.get(CONF_STATE) + start = config.get(CONF_START) + end = config.get(CONF_END) + duration = config.get(CONF_DURATION) + name = config.get(CONF_NAME) + + for template in [start, end]: + if template is not None: + template.hass = hass + + add_devices([HistoryStatsSensor( + hass, entity_id, entity_state, start, end, duration, name)]) + + return True + + +class HistoryStatsSensor(Entity): + """Representation of a HistoryStats sensor.""" + + def __init__( + self, hass, entity_id, entity_state, start, end, duration, name): + """Initialize the HistoryStats sensor.""" + self._hass = hass + + self._entity_id = entity_id + self._entity_state = entity_state + self._duration = duration + self._start = start + self._end = end + self._name = name + self._unit_of_measurement = UNIT + + self._period = (datetime.datetime.now(), datetime.datetime.now()) + self.value = 0 + + def force_refresh(*args): + """Force the component to refresh.""" + self.schedule_update_ha_state(True) + + # Update value when home assistant starts + hass.bus.listen_once(EVENT_HOMEASSISTANT_START, force_refresh) + + # Update value when tracked entity changes its state + track_state_change(hass, entity_id, force_refresh) + + @property + def name(self): + """Return the name of the sensor.""" + return self._name + + @property + def state(self): + """Return the state of the sensor.""" + return round(self.value, 2) + + @property + def unit_of_measurement(self): + """Return the unit the value is expressed in.""" + return self._unit_of_measurement + + @property + def should_poll(self): + """Polling required.""" + return True + + @property + def device_state_attributes(self): + """Return the state attributes of the sensor.""" + start, end = self._period + hsh = HistoryStatsHelper + return { + ATTR_VALUE: hsh.pretty_duration(self.value), + ATTR_RATIO: hsh.pretty_ratio(self.value, self._period), + ATTR_START: start.strftime('%Y-%m-%d %H:%M:%S'), + ATTR_END: end.strftime('%Y-%m-%d %H:%M:%S'), + } + + @property + def icon(self): + """Return the icon to use in the frontend, if any.""" + return ICON + + def update(self): + """Get the latest data and updates the states.""" + # Parse templates + self.update_period() + start, end = self._period + + # Convert to UTC + start = dt_util.as_utc(start) + end = dt_util.as_utc(end) + + # Get history between start and end + history_list = history.state_changes_during_period( + start, end, str(self._entity_id)) + + if self._entity_id not in history_list.keys(): + return + + # Get the first state + last_state = history.get_state(start, self._entity_id) + last_state = (last_state is not None and + last_state == self._entity_state) + last_time = dt_util.as_timestamp(start) + elapsed = 0 + + # Make calculations + for item in history_list.get(self._entity_id): + current_state = item.state == self._entity_state + current_time = item.last_changed.timestamp() + + if last_state: + elapsed += current_time - last_time + + last_state = current_state + last_time = current_time + + # Save value in hours + self.value = elapsed / 3600 + + def update_period(self): + """Parse the templates and store a datetime tuple in _period.""" + start = None + end = None + + # Parse start + if self._start is not None: + try: + start_rendered = self._start.render() + except TemplateError as ex: + HistoryStatsHelper.handle_template_exception(ex, 'start') + return + start = dt_util.parse_datetime(start_rendered) + if start is None: + try: + start = dt_util.as_local(dt_util.utc_from_timestamp( + math.floor(float(start_rendered)))) + except ValueError: + _LOGGER.error('PARSING ERROR: start must be a datetime' + ' or a timestamp.') + return + + # Parse end + if self._end is not None: + try: + end_rendered = self._end.render() + except TemplateError as ex: + HistoryStatsHelper.handle_template_exception(ex, 'end') + return + end = dt_util.parse_datetime(end_rendered) + if end is None: + try: + end = dt_util.as_local(dt_util.utc_from_timestamp( + math.floor(float(end_rendered)))) + except ValueError: + _LOGGER.error('PARSING ERROR: end must be a datetime' + ' or a timestamp.') + return + + # Calculate start or end using the duration + if start is None: + start = end - self._duration + if end is None: + end = start + self._duration + + self._period = start, end + + +class HistoryStatsHelper: + """Static methods to make the HistoryStatsSensor code lighter.""" + + @staticmethod + def pretty_duration(hours): + """Format a duration in days, hours, minutes, seconds.""" + seconds = int(3600 * hours) + days, seconds = divmod(seconds, 86400) + hours, seconds = divmod(seconds, 3600) + minutes, seconds = divmod(seconds, 60) + if days > 0: + return '%dd %dh %dm %ds' % (days, hours, minutes, seconds) + elif hours > 0: + return '%dh %dm %ds' % (hours, minutes, seconds) + elif minutes > 0: + return '%dm %ds' % (minutes, seconds) + else: + return '%ds' % (seconds,) + + @staticmethod + def pretty_ratio(value, period): + """Format the ratio of value / period duration.""" + if len(period) != 2 or period[0] == period[1]: + return '0,0' + UNIT_RATIO + + ratio = 100 * 3600 * value / (period[1] - period[0]).total_seconds() + return str(round(ratio, 1)) + UNIT_RATIO + + @staticmethod + def handle_template_exception(ex, field): + """Log an error nicely if the template cannot be interpreted.""" + if ex.args and ex.args[0].startswith( + "UndefinedError: 'None' has no attribute"): + # Common during HA startup - so just a warning + _LOGGER.warning(ex) + return + _LOGGER.error('Error parsing template for [' + field + ']') + _LOGGER.error(ex) diff --git a/tests/components/sensor/test_history_stats.py b/tests/components/sensor/test_history_stats.py new file mode 100644 index 00000000000..d7d8b516525 --- /dev/null +++ b/tests/components/sensor/test_history_stats.py @@ -0,0 +1,215 @@ +"""The test for the History Statistics sensor platform.""" +# pylint: disable=protected-access +import unittest +from datetime import timedelta +from unittest.mock import patch + +import homeassistant.components.recorder as recorder +import homeassistant.core as ha +import homeassistant.util.dt as dt_util +from homeassistant.bootstrap import setup_component +from homeassistant.components.sensor.history_stats import HistoryStatsSensor +from homeassistant.helpers.template import Template +from tests.common import get_test_home_assistant + + +class TestHistoryStatsSensor(unittest.TestCase): + """Test the History Statistics sensor.""" + + def setUp(self): + """Set up things to be run when tests are started.""" + self.hass = get_test_home_assistant() + + def tearDown(self): + """Stop everything that was started.""" + self.hass.stop() + + def test_setup(self): + """Test the history statistics sensor setup.""" + self.init_recorder() + config = { + 'history': { + }, + 'sensor': { + 'platform': 'history_stats', + 'entity_id': 'binary_sensor.test_id', + 'state': 'on', + 'start': '{{ now().replace(hour=0)' + '.replace(minute=0).replace(second=0) }}', + 'duration': '02:00', + 'name': 'Test', + } + } + + self.assertTrue(setup_component(self.hass, 'sensor', config)) + + state = self.hass.states.get('sensor.test').as_dict() + self.assertEqual(state['state'], '0') + + def test_period_parsing(self): + """Test the conversion from templates to period.""" + today = Template('{{ now().replace(hour=0).replace(minute=0)' + '.replace(second=0) }}', self.hass) + duration = timedelta(hours=2, minutes=1) + + sensor1 = HistoryStatsSensor( + self.hass, 'test', 'on', today, None, duration, 'test') + sensor2 = HistoryStatsSensor( + self.hass, 'test', 'on', None, today, duration, 'test') + + sensor1.update_period() + sensor2.update_period() + + self.assertEqual( + sensor1.device_state_attributes['from'][-8:], '00:00:00') + self.assertEqual( + sensor1.device_state_attributes['to'][-8:], '02:01:00') + self.assertEqual( + sensor2.device_state_attributes['from'][-8:], '21:59:00') + self.assertEqual( + sensor2.device_state_attributes['to'][-8:], '00:00:00') + + def test_measure(self): + """Test the history statistics sensor measure.""" + later = dt_util.utcnow() - timedelta(seconds=15) + earlier = later - timedelta(minutes=30) + + fake_states = { + 'binary_sensor.test_id': [ + ha.State('binary_sensor.test_id', 'on', last_changed=earlier), + ha.State('binary_sensor.test_id', 'off', last_changed=later), + ] + } + + start = Template('{{ as_timestamp(now()) - 3600 }}', self.hass) + end = Template('{{ now() }}', self.hass) + + sensor1 = HistoryStatsSensor( + self.hass, 'binary_sensor.test_id', 'on', start, end, None, 'Test') + + sensor2 = HistoryStatsSensor( + self.hass, 'unknown.id', 'on', start, end, None, 'Test') + + with patch('homeassistant.components.history.' + 'state_changes_during_period', return_value=fake_states): + with patch('homeassistant.components.history.get_state', + return_value=None): + sensor1.update() + sensor2.update() + + self.assertEqual(sensor1.value, 0.5) + self.assertEqual(sensor2.value, 0) + self.assertEqual(sensor1.device_state_attributes['ratio'], '50.0%') + + def test_wrong_date(self): + """Test when start or end value is not a timestamp or a date.""" + good = Template('{{ now() }}', self.hass) + bad = Template('{{ TEST }}', self.hass) + + sensor1 = HistoryStatsSensor( + self.hass, 'test', 'on', good, bad, None, 'Test') + sensor2 = HistoryStatsSensor( + self.hass, 'test', 'on', bad, good, None, 'Test') + + before_update1 = sensor1._period + before_update2 = sensor2._period + + sensor1.update_period() + sensor2.update_period() + + self.assertEqual(before_update1, sensor1._period) + self.assertEqual(before_update2, sensor2._period) + + def test_wrong_duration(self): + """Test when duration value is not a timedelta.""" + self.init_recorder() + config = { + 'history': { + }, + 'sensor': { + 'platform': 'history_stats', + 'entity_id': 'binary_sensor.test_id', + 'name': 'Test', + 'state': 'on', + 'start': '{{ now() }}', + 'duration': 'TEST', + } + } + + setup_component(self.hass, 'sensor', config) + self.assertEqual(self.hass.states.get('sensor.test'), None) + self.assertRaises(TypeError, + setup_component(self.hass, 'sensor', config)) + + def test_bad_template(self): + """Test Exception when the template cannot be parsed.""" + bad = Template('{{ x - 12 }}', self.hass) # x is undefined + duration = '01:00' + + sensor1 = HistoryStatsSensor( + self.hass, 'test', 'on', bad, None, duration, 'Test') + sensor2 = HistoryStatsSensor( + self.hass, 'test', 'on', None, bad, duration, 'Test') + + before_update1 = sensor1._period + before_update2 = sensor2._period + + sensor1.update_period() + sensor2.update_period() + + self.assertEqual(before_update1, sensor1._period) + self.assertEqual(before_update2, sensor2._period) + + def test_not_enough_arguments(self): + """Test config when not enough arguments provided.""" + self.init_recorder() + config = { + 'history': { + }, + 'sensor': { + 'platform': 'history_stats', + 'entity_id': 'binary_sensor.test_id', + 'name': 'Test', + 'state': 'on', + 'start': '{{ now() }}', + } + } + + setup_component(self.hass, 'sensor', config) + self.assertEqual(self.hass.states.get('sensor.test'), None) + self.assertRaises(TypeError, + setup_component(self.hass, 'sensor', config)) + + def test_too_many_arguments(self): + """Test config when too many arguments provided.""" + self.init_recorder() + config = { + 'history': { + }, + 'sensor': { + 'platform': 'history_stats', + 'entity_id': 'binary_sensor.test_id', + 'name': 'Test', + 'state': 'on', + 'start': '{{ as_timestamp(now()) - 3600 }}', + 'end': '{{ now() }}', + 'duration': '01:00', + } + } + + setup_component(self.hass, 'sensor', config) + self.assertEqual(self.hass.states.get('sensor.test'), None) + self.assertRaises(TypeError, + setup_component(self.hass, 'sensor', config)) + + def init_recorder(self): + """Initialize the recorder.""" + db_uri = 'sqlite://' + with patch('homeassistant.core.Config.path', return_value=db_uri): + setup_component(self.hass, recorder.DOMAIN, { + "recorder": { + "db_url": db_uri}}) + self.hass.start() + recorder._INSTANCE.block_till_db_ready() + self.hass.block_till_done() + recorder._INSTANCE.block_till_done() From 0d76d72b9f0e7b93a2a9292a1888fc74a612f4e5 Mon Sep 17 00:00:00 2001 From: Mark Oude Veldhuis Date: Fri, 10 Feb 2017 03:50:14 +0100 Subject: [PATCH 010/196] Add support for multiple devices to Tado device tracker (#5810) * Add support for multiple devices to Tado device tracker * Hound did not agree with my usage of spaces * Two blank lines were expected * Keep CONF_HOME_ID in the Tado file * Make home_id optional * Work with different API URLs depending on home_id being present * Remove CONF_HOME_ID from HA's const.py file * Missed removing CONF_HOME_ID from the import --- .../components/device_tracker/tado.py | 77 +++++++++++++------ 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/homeassistant/components/device_tracker/tado.py b/homeassistant/components/device_tracker/tado.py index 9127ef4fad2..ca6e5d5ef7c 100644 --- a/homeassistant/components/device_tracker/tado.py +++ b/homeassistant/components/device_tracker/tado.py @@ -13,28 +13,31 @@ import aiohttp import async_timeout import voluptuous as vol +import homeassistant.helpers.config_validation as cv from homeassistant.const import CONF_USERNAME, CONF_PASSWORD -import homeassistant.helpers.config_validation as cv from homeassistant.util import Throttle from homeassistant.components.device_tracker import ( DOMAIN, PLATFORM_SCHEMA, DeviceScanner) from homeassistant.helpers.aiohttp_client import async_create_clientsession +# Configuration constant specific for tado +CONF_HOME_ID = 'home_id' + _LOGGER = logging.getLogger(__name__) MIN_TIME_BETWEEN_SCANS = timedelta(seconds=30) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string, - vol.Required(CONF_USERNAME): cv.string + vol.Optional(CONF_HOME_ID): cv.string }) def get_scanner(hass, config): """Return a Tado scanner.""" scanner = TadoDeviceScanner(hass, config[DOMAIN]) - return scanner if scanner.success_init else None @@ -50,8 +53,19 @@ class TadoDeviceScanner(DeviceScanner): self.username = config[CONF_USERNAME] self.password = config[CONF_PASSWORD] - self.tadoapiurl = 'https://my.tado.com/api/v2/me' \ - '?username={}&password={}' + + # The Tado device tracker can work with or without a home_id + self.home_id = config[CONF_HOME_ID] if CONF_HOME_ID in config else None + + # If there's a home_id, we need a different API URL + if self.home_id is None: + self.tadoapiurl = 'https://my.tado.com/api/v2/me' + else: + self.tadoapiurl = 'https://my.tado.com/api/v2' \ + '/homes/{home_id}/mobileDevices' + + # The API URL always needs a username and password + self.tadoapiurl += '?username={username}&password={password}' self.websession = async_create_clientsession( hass, cookie_jar=aiohttp.CookieJar(unsafe=True, loop=hass.loop)) @@ -62,7 +76,11 @@ class TadoDeviceScanner(DeviceScanner): @asyncio.coroutine def async_scan_devices(self): """Scan for devices and return a list containing found device ids.""" - yield from self._update_info() + info = self._update_info() + + # Don't yield if we got None + if info is not None: + yield from info return [device.mac for device in self.last_results] @@ -87,43 +105,54 @@ class TadoDeviceScanner(DeviceScanner): _LOGGER.debug("Requesting Tado") last_results = [] - response = None - tadojson = None + tado_json = None + try: - # get first token with async_timeout.timeout(10, loop=self.hass.loop): - url = self.tadoapiurl.format(self.username, self.password) - response = yield from self.websession.get( - url - ) + # Format the URL here, so we can log the template URL if + # anything goes wrong without exposing username and password. + url = self.tadoapiurl.format(home_id=self.home_id, + username=self.username, + password=self.password) + + # Go get 'em! + response = yield from self.websession.get(url) # error on Tado webservice if response.status != 200: _LOGGER.warning( "Error %d on %s.", response.status, self.tadoapiurl) - self.token = None return - tadojson = yield from response.json() + tado_json = yield from response.json() except (asyncio.TimeoutError, aiohttp.errors.ClientError): - _LOGGER.error("Can not load Tado data") + _LOGGER.error("Cannot load Tado data") return False finally: if response is not None: yield from response.release() - # Find devices that have geofencing enabled, and are currently at home - for mobiledevice in tadojson['mobileDevices']: - if 'location' in mobiledevice: - if mobiledevice['location']['atHome']: - deviceid = mobiledevice['id'] - devicename = mobiledevice['name'] - last_results.append(Device(deviceid, devicename)) + # Without a home_id, we fetched an URL where the mobile devices can be + # found under the mobileDevices key. + if 'mobileDevices' in tado_json: + tado_json = tado_json['mobileDevices'] + + # Find devices that have geofencing enabled, and are currently at home. + for mobile_device in tado_json: + if 'location' in mobile_device: + if mobile_device['location']['atHome']: + device_id = mobile_device['id'] + device_name = mobile_device['name'] + last_results.append(Device(device_id, device_name)) self.last_results = last_results - _LOGGER.info("Tado presence query successful") + _LOGGER.info( + "Tado presence query successful, %d device(s) at home", + len(self.last_results) + ) + return True From 5bd54f69ccfdc387ce1aafe1a8fb1204a020b50e Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 10 Feb 2017 12:30:44 +0200 Subject: [PATCH 011/196] Fix zwave helper getter not to fail on some None results. (#5845) --- homeassistant/components/zwave/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index 8fcfd3897a7..867a0f96062 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -646,6 +646,7 @@ class ZWaveDeviceEntity(Entity): method, class_id, index, label, data, member, kwargs) values = self._value.node.get_values(**kwargs).values() _LOGGER.debug('values=%s', values) + results = None if not values: return None for value in values: From a150a69cca9f8d843e30e4fbcb5d245def578014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Br=C3=A6dstrup?= Date: Fri, 10 Feb 2017 12:00:28 +0100 Subject: [PATCH 012/196] D-Link switch version bump of external library (#5843) --- homeassistant/components/switch/dlink.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/switch/dlink.py b/homeassistant/components/switch/dlink.py index 3e1f7db3ddb..11aff81a0d5 100644 --- a/homeassistant/components/switch/dlink.py +++ b/homeassistant/components/switch/dlink.py @@ -15,7 +15,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.const import TEMP_CELSIUS, STATE_UNKNOWN REQUIREMENTS = ['https://github.com/LinuxChristian/pyW215/archive/' - 'v0.3.7.zip#pyW215==0.3.7'] + 'v0.4.zip#pyW215==0.4'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 75aaaf92138..44aa2651f5d 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -198,7 +198,7 @@ hikvision==0.4 # http://github.com/adafruit/Adafruit_Python_DHT/archive/310c59b0293354d07d94375f1365f7b9b9110c7d.zip#Adafruit_DHT==1.3.0 # homeassistant.components.switch.dlink -https://github.com/LinuxChristian/pyW215/archive/v0.3.7.zip#pyW215==0.3.7 +https://github.com/LinuxChristian/pyW215/archive/v0.4.zip#pyW215==0.4 # homeassistant.components.media_player.webostv # homeassistant.components.notify.webostv From 1da6181491104d3bdeaf19af5c92a829dfea2988 Mon Sep 17 00:00:00 2001 From: Teemu R Date: Fri, 10 Feb 2017 14:45:31 +0100 Subject: [PATCH 013/196] bump python-yeelight version (#5850) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- homeassistant/components/light/yeelight.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/light/yeelight.py b/homeassistant/components/light/yeelight.py index 616bae94a91..5eae4c66bb6 100644 --- a/homeassistant/components/light/yeelight.py +++ b/homeassistant/components/light/yeelight.py @@ -22,7 +22,7 @@ from homeassistant.components.light import ( Light, PLATFORM_SCHEMA) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['yeelight==0.2.1'] +REQUIREMENTS = ['yeelight==0.2.2'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 44aa2651f5d..c0735dc7f9a 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -712,7 +712,7 @@ yahoo-finance==1.4.0 yahooweather==0.8 # homeassistant.components.light.yeelight -yeelight==0.2.1 +yeelight==0.2.2 # homeassistant.components.light.zengge zengge==0.2 From 8785e5826e31f2d5d8ee70e2b10a5301c5ada5dd Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 10 Feb 2017 16:39:02 +0100 Subject: [PATCH 014/196] telegram small cleanup/style (#5852) --- homeassistant/components/telegram_webhooks.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/telegram_webhooks.py b/homeassistant/components/telegram_webhooks.py index 541b81a9567..30f7935d40b 100644 --- a/homeassistant/components/telegram_webhooks.py +++ b/homeassistant/components/telegram_webhooks.py @@ -106,19 +106,16 @@ class BotPushReceiver(HomeAssistantView): data = yield from request.json() data = data['message'] + if data['from']['id'] not in self.users: + _LOGGER.warning("User not allowed") + return self.json_message('Invalid user', HTTP_BAD_REQUEST) + if data['text'][0] != '/': _LOGGER.warning('no command') return self.json({}) - except (ValueError, IndexError): + except (KeyError, IndexError): return self.json_message('Invalid JSON', HTTP_BAD_REQUEST) - try: - if data['from']['id'] not in self.users: - raise ValueError() - except (ValueError, IndexError): - _LOGGER.warning("User not allowed") - return self.json_message('Invalid user', HTTP_BAD_REQUEST) - _LOGGER.debug("Received telegram data: %s", data) pieces = data['text'].split(' ') From 4e8d20328a137f30325e8ed668c56498cd20ac91 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Fri, 10 Feb 2017 17:51:08 +0100 Subject: [PATCH 015/196] Fix check_config script. (#5853) --- homeassistant/scripts/check_config.py | 1 + tests/test_bootstrap.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/homeassistant/scripts/check_config.py b/homeassistant/scripts/check_config.py index b1ecaaa57ba..154754c667a 100644 --- a/homeassistant/scripts/check_config.py +++ b/homeassistant/scripts/check_config.py @@ -33,6 +33,7 @@ MOCKS = { } SILENCE = ( 'homeassistant.bootstrap.clear_secret_cache', + 'homeassistant.bootstrap.async_register_signal_handling', 'homeassistant.core._LOGGER.info', 'homeassistant.loader._LOGGER.info', 'homeassistant.bootstrap._LOGGER.info', diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py index b2c644a68b9..10f23346ca3 100644 --- a/tests/test_bootstrap.py +++ b/tests/test_bootstrap.py @@ -58,7 +58,7 @@ class TestBootstrap: autospec=True) @mock.patch('homeassistant.util.location.detect_location_info', autospec=True, return_value=None) - @mock.patch('homeassistant.helpers.signal.async_register_signal_handling') + @mock.patch('homeassistant.bootstrap.async_register_signal_handling') def test_from_config_file(self, mock_upgrade, mock_detect, mock_signal): """Test with configuration file.""" components = set(['browser', 'conversation', 'script']) @@ -290,7 +290,7 @@ class TestBootstrap: assert 'comp' not in self.hass.config.components @mock.patch('homeassistant.bootstrap.enable_logging') - @mock.patch('homeassistant.helpers.signal.async_register_signal_handling') + @mock.patch('homeassistant.bootstrap.async_register_signal_handling') def test_home_assistant_core_config_validation(self, log_mock, sig_mock): """Test if we pass in wrong information for HA conf.""" # Extensive HA conf validation testing is done in test_config.py From 0b5191a24700549d1003a2a1e455022c04c2f747 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 10 Feb 2017 18:54:48 +0200 Subject: [PATCH 016/196] Add support for zwave wakeup setting. (#5849) * Add support for zwave wakeup setting. * rename wakeup --- homeassistant/components/zwave/__init__.py | 41 +++++++++++++++++++- homeassistant/components/zwave/const.py | 1 + homeassistant/components/zwave/services.yaml | 8 ++++ homeassistant/const.py | 1 + 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index 867a0f96062..2abc79754ae 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -13,8 +13,9 @@ import voluptuous as vol from homeassistant.helpers import discovery, customize from homeassistant.const import ( - ATTR_BATTERY_LEVEL, ATTR_LOCATION, ATTR_ENTITY_ID, CONF_CUSTOMIZE, - EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, CONF_ENTITY_ID) + ATTR_BATTERY_LEVEL, ATTR_LOCATION, ATTR_ENTITY_ID, ATTR_WAKEUP, + CONF_CUSTOMIZE, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, + CONF_ENTITY_ID) from homeassistant.helpers.entity import Entity from homeassistant.helpers.event import track_time_change from homeassistant.util import convert, slugify @@ -152,6 +153,12 @@ CHANGE_ASSOCIATION_SCHEMA = vol.Schema({ vol.Optional(const.ATTR_INSTANCE, default=0x00): vol.Coerce(int) }) +SET_WAKEUP_SCHEMA = vol.Schema({ + vol.Required(const.ATTR_NODE_ID): vol.Coerce(int), + vol.Required(const.ATTR_CONFIG_VALUE): + vol.All(vol.Coerce(int), cv.positive_int), +}) + _ZWAVE_CUSTOMIZE_SCHEMA_ENTRY = vol.Schema({ vol.Required(CONF_ENTITY_ID): cv.match_all, vol.Optional(CONF_POLLING_INTENSITY): cv.positive_int, @@ -242,6 +249,14 @@ def get_config_value(node, value_index): return get_config_value(node, value_index) +def _get_wakeup(node): + """Return wakeup interval of the node or None if node is not wakable.""" + if node.can_wake_up(): + for value_id in node.get_values(class_id=const.COMMAND_CLASS_WAKE_UP): + return node.values[value_id].data + return None + + # pylint: disable=R0914 def setup(hass, config): """Setup Z-Wave. @@ -503,6 +518,19 @@ def setup(hass, config): _LOGGER.info("Config parameter %s on Node %s : %s", param, node_id, get_config_value(node, param)) + def set_wakeup(service): + """Set wake-up interval of a node.""" + node_id = service.data.get(const.ATTR_NODE_ID) + node = NETWORK.nodes[node_id] + value = service.data.get(const.ATTR_CONFIG_VALUE) + if node.can_wake_up(): + for value_id in node.get_values( + class_id=const.COMMAND_CLASS_WAKE_UP): + node.values[value_id].data = value + _LOGGER.info("Node %s wake-up set to %d", node_id, value) + else: + _LOGGER.info("Node %s is not wakeable", node_id) + def change_association(service): """Change an association in the zwave network.""" association_type = service.data.get(const.ATTR_ASSOCIATION) @@ -598,6 +626,11 @@ def setup(hass, config): descriptions[ const.SERVICE_CHANGE_ASSOCIATION], schema=CHANGE_ASSOCIATION_SCHEMA) + hass.services.register(DOMAIN, const.SERVICE_SET_WAKEUP, + set_wakeup, + descriptions[ + const.SERVICE_SET_WAKEUP], + schema=SET_WAKEUP_SCHEMA) # Setup autoheal if autoheal: @@ -727,4 +760,8 @@ class ZWaveDeviceEntity(Entity): if location: attrs[ATTR_LOCATION] = location + wakeup = _get_wakeup(self._value.node) + if wakeup: + attrs[ATTR_WAKEUP] = wakeup + return attrs diff --git a/homeassistant/components/zwave/const.py b/homeassistant/components/zwave/const.py index 2350b4bee75..8e28d924cfa 100644 --- a/homeassistant/components/zwave/const.py +++ b/homeassistant/components/zwave/const.py @@ -25,6 +25,7 @@ SERVICE_SOFT_RESET = "soft_reset" SERVICE_TEST_NETWORK = "test_network" SERVICE_SET_CONFIG_PARAMETER = "set_config_parameter" SERVICE_PRINT_CONFIG_PARAMETER = "print_config_parameter" +SERVICE_SET_WAKEUP = "set_wakeup" SERVICE_STOP_NETWORK = "stop_network" SERVICE_START_NETWORK = "start_network" SERVICE_RENAME_NODE = "rename_node" diff --git a/homeassistant/components/zwave/services.yaml b/homeassistant/components/zwave/services.yaml index 2a44096ce0e..c1105eaec18 100644 --- a/homeassistant/components/zwave/services.yaml +++ b/homeassistant/components/zwave/services.yaml @@ -47,6 +47,14 @@ print_config_parameter: parameter: description: Parameter number to print (integer). +set_wakeup: + description: Sets wake-up interval of a node. + fields: + node_id: + description: Node id of the device to set the wake-up interval for. (integer) + value: + description: Value of the interval to set. (integer) + start_network: description: Start the Z-Wave network. This might take a while, depending on how big your Z-Wave network is. diff --git a/homeassistant/const.py b/homeassistant/const.py index eda303a552e..5df9bfe15f1 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -253,6 +253,7 @@ ATTR_DISCOVERED = 'discovered' ATTR_LOCATION = 'location' ATTR_BATTERY_LEVEL = 'battery_level' +ATTR_WAKEUP = 'wake_up_interval' # For devices which support a code attribute ATTR_CODE = 'code' From c7c3b30e0af18b33b38b0c23e5ea2985e42c17a6 Mon Sep 17 00:00:00 2001 From: Erik Eriksson Date: Fri, 10 Feb 2017 17:59:58 +0100 Subject: [PATCH 017/196] Do not call state if device isn't available (#5835) --- homeassistant/helpers/entity.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/homeassistant/helpers/entity.py b/homeassistant/helpers/entity.py index 854d1bc169d..a80f2f5edae 100644 --- a/homeassistant/helpers/entity.py +++ b/homeassistant/helpers/entity.py @@ -210,26 +210,24 @@ class Entity(object): start = timer() - state = self.state - - if state is None: - state = STATE_UNKNOWN - else: - state = str(state) - - attr = self.state_attributes or {} - - device_attr = self.device_state_attributes - - if device_attr is not None: - attr.update(device_attr) - - self._attr_setter('unit_of_measurement', str, ATTR_UNIT_OF_MEASUREMENT, - attr) - if not self.available: state = STATE_UNAVAILABLE attr = {} + else: + state = self.state + + if state is None: + state = STATE_UNKNOWN + else: + state = str(state) + + attr = self.state_attributes or {} + device_attr = self.device_state_attributes + if device_attr is not None: + attr.update(device_attr) + + self._attr_setter('unit_of_measurement', str, ATTR_UNIT_OF_MEASUREMENT, + attr) self._attr_setter('name', str, ATTR_FRIENDLY_NAME, attr) self._attr_setter('icon', str, ATTR_ICON, attr) From 6ffab533779c5c60c8f67de0416a64ea9c1a5b5d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 10 Feb 2017 09:00:17 -0800 Subject: [PATCH 018/196] Core: cleanup timer (#5825) * Minor core cleanup * Cleanup timer * Lint * timeout with correct loop * Improve timer thanks to pvizeli * Update core.py * More tests --- homeassistant/core.py | 160 +++++++++++++++------------------------- homeassistant/remote.py | 2 +- tests/test_core.py | 97 +++++++++++++++++------- 3 files changed, 130 insertions(+), 129 deletions(-) diff --git a/homeassistant/core.py b/homeassistant/core.py index 85b65ebc477..d7b33a75f6a 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -13,6 +13,7 @@ import os import re import sys import threading +from time import monotonic from types import MappingProxyType from typing import Optional, Any, Callable, List # NOQA @@ -43,9 +44,6 @@ except ImportError: DOMAIN = 'homeassistant' -# How often time_changed event should fire -TIMER_INTERVAL = 1 # seconds - # How long we wait for the result of a service call SERVICE_CALL_LIMIT = 10 # seconds @@ -83,6 +81,22 @@ def is_callback(func: Callable[..., Any]) -> bool: return '_hass_callback' in func.__dict__ +@callback +def async_loop_exception_handler(loop, context): + """Handle all exception inside the core loop.""" + kwargs = {} + exception = context.get('exception') + if exception: + # Do not report on shutting down exceptions. + if isinstance(exception, ShuttingDown): + return + + kwargs['exc_info'] = (type(exception), exception, + exception.__traceback__) + + _LOGGER.error("Error doing job: %s", context['message'], **kwargs) + + class CoreState(enum.Enum): """Represent the current state of Home Assistant.""" @@ -108,7 +122,7 @@ class HomeAssistant(object): self.executor = ThreadPoolExecutor(max_workers=EXECUTOR_POOL_SIZE) self.loop.set_default_executor(self.executor) - self.loop.set_exception_handler(self._async_exception_handler) + self.loop.set_exception_handler(async_loop_exception_handler) self._pending_tasks = [] self.bus = EventBus(self) self.services = ServiceRegistry(self) @@ -286,22 +300,6 @@ class HomeAssistant(object): self.exit_code = exit_code self.loop.stop() - # pylint: disable=no-self-use - @callback - def _async_exception_handler(self, loop, context): - """Handle all exception inside the core loop.""" - kwargs = {} - exception = context.get('exception') - if exception: - # Do not report on shutting down exceptions. - if isinstance(exception, ShuttingDown): - return - - kwargs['exc_info'] = (type(exception), exception, - exception.__traceback__) - - _LOGGER.error("Error doing job: %s", context['message'], **kwargs) - class EventOrigin(enum.Enum): """Represent the origin of an event.""" @@ -494,7 +492,6 @@ class EventBus(object): # This will make sure the second time it does nothing. setattr(onetime_listener, 'run', True) self._async_remove_listener(event_type, onetime_listener) - self._hass.async_run_job(listener, event) return self.async_listen(event_type, onetime_listener) @@ -542,7 +539,6 @@ class State(object): self.state = str(state) self.attributes = MappingProxyType(attributes or {}) self.last_updated = last_updated or dt_util.utcnow() - self.last_changed = last_changed or self.last_updated @property @@ -673,7 +669,6 @@ class StateMachine(object): Async friendly. """ state_obj = self.get(entity_id) - return state_obj and state_obj.state == state def is_state_attr(self, entity_id, name, value): @@ -682,7 +677,6 @@ class StateMachine(object): Async friendly. """ state_obj = self.get(entity_id) - return state_obj and state_obj.attributes.get(name, None) == value def remove(self, entity_id): @@ -702,20 +696,16 @@ class StateMachine(object): This method must be run in the event loop. """ entity_id = entity_id.lower() - old_state = self._states.pop(entity_id, None) if old_state is None: return False - event_data = { + self._bus.async_fire(EVENT_STATE_CHANGED, { 'entity_id': entity_id, 'old_state': old_state, 'new_state': None, - } - - self._bus.async_fire(EVENT_STATE_CHANGED, event_data) - + }) return True def set(self, entity_id, new_state, attributes=None, force_update=False): @@ -746,9 +736,7 @@ class StateMachine(object): entity_id = entity_id.lower() new_state = str(new_state) attributes = attributes or {} - old_state = self._states.get(entity_id) - is_existing = old_state is not None same_state = (is_existing and old_state.state == new_state and not force_update) @@ -757,19 +745,14 @@ class StateMachine(object): if same_state and same_attr: return - # If state did not exist or is different, set it last_changed = old_state.last_changed if same_state else None - state = State(entity_id, new_state, attributes, last_changed) self._states[entity_id] = state - - event_data = { + self._bus.async_fire(EVENT_STATE_CHANGED, { 'entity_id': entity_id, 'old_state': old_state, 'new_state': state, - } - - self._bus.async_fire(EVENT_STATE_CHANGED, event_data) + }) class Service(object): @@ -823,9 +806,17 @@ class ServiceRegistry(object): """Initialize a service registry.""" self._services = {} self._hass = hass - self._cur_id = 0 self._async_unsub_call_event = None + def _gen_unique_id(): + cur_id = 1 + while True: + yield '{}-{}'.format(id(self), cur_id) + cur_id += 1 + + gen = _gen_unique_id() + self._generate_unique_id = lambda: next(gen) + @property def services(self): """Dict with per domain a list of available services.""" @@ -1025,11 +1016,6 @@ class ServiceRegistry(object): self._hass.async_add_job(execute_service) - def _generate_unique_id(self): - """Generate a unique service call id.""" - self._cur_id += 1 - return '{}-{}'.format(id(self), self._cur_id) - class Config(object): """Configuration settings for Home Assistant.""" @@ -1092,66 +1078,38 @@ class Config(object): } -def _async_create_timer(hass, interval=TIMER_INTERVAL): +def _async_create_timer(hass): """Create a timer that will start on HOMEASSISTANT_START.""" - stop_event = asyncio.Event(loop=hass.loop) + handle = None + + @callback + def fire_time_event(nxt): + """Fire next time event.""" + nonlocal handle + + hass.bus.async_fire(EVENT_TIME_CHANGED, + {ATTR_NOW: dt_util.utcnow()}) + nxt += 1 + slp_seconds = nxt - monotonic() + + if slp_seconds < 0: + _LOGGER.error('Timer got out of sync. Resetting') + nxt = monotonic() + 1 + slp_seconds = 1 + + handle = hass.loop.call_later(slp_seconds, fire_time_event, nxt) + + @callback + def start_timer(event): + """Create an async timer.""" + _LOGGER.info("Timer:starting") + hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, stop_timer) + fire_time_event(monotonic()) - # Setting the Event inside the loop by marking it as a coroutine @callback def stop_timer(event): """Stop the timer.""" - stop_event.set() - - hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, stop_timer) - - @asyncio.coroutine - def timer(interval, stop_event): - """Create an async timer.""" - _LOGGER.info("Timer:starting") - - last_fired_on_second = -1 - - calc_now = dt_util.utcnow - - while not stop_event.is_set(): - now = calc_now() - - # First check checks if we are not on a second matching the - # timer interval. Second check checks if we did not already fire - # this interval. - if now.second % interval or \ - now.second == last_fired_on_second: - - # Sleep till it is the next time that we have to fire an event. - # Aim for halfway through the second that fits TIMER_INTERVAL. - # If TIMER_INTERVAL is 10 fire at .5, 10.5, 20.5, etc seconds. - # This will yield the best results because time.sleep() is not - # 100% accurate because of non-realtime OS's - slp_seconds = interval - now.second % interval + \ - .5 - now.microsecond/1000000.0 - - yield from asyncio.sleep(slp_seconds, loop=hass.loop) - - now = calc_now() - - last_fired_on_second = now.second - - # Event might have been set while sleeping - if not stop_event.is_set(): - try: - # Schedule the bus event - hass.loop.call_soon( - hass.bus.async_fire, - EVENT_TIME_CHANGED, - {ATTR_NOW: now} - ) - except ShuttingDown: - # HA raises error if firing event after it has shut down - break - - @asyncio.coroutine - def start_timer(event): - """Start our async timer.""" - hass.loop.create_task(timer(interval, stop_event)) + if handle is not None: + handle.cancel() hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, start_timer) diff --git a/homeassistant/remote.py b/homeassistant/remote.py index 15421ebfc11..65ff61888ea 100644 --- a/homeassistant/remote.py +++ b/homeassistant/remote.py @@ -133,7 +133,7 @@ class HomeAssistant(ha.HomeAssistant): self.loop = loop or asyncio.get_event_loop() self.executor = ThreadPoolExecutor(max_workers=5) self.loop.set_default_executor(self.executor) - self.loop.set_exception_handler(self._async_exception_handler) + self.loop.set_exception_handler(ha.async_loop_exception_handler) self._pending_tasks = [] self._pending_sheduler = None diff --git a/tests/test_core.py b/tests/test_core.py index 98909ff8616..d027814e109 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -2,7 +2,7 @@ # pylint: disable=protected-access import asyncio import unittest -from unittest.mock import patch, MagicMock +from unittest.mock import patch, MagicMock, sentinel from datetime import datetime, timedelta import pytz @@ -14,7 +14,9 @@ from homeassistant.util.async import run_coroutine_threadsafe import homeassistant.util.dt as dt_util from homeassistant.util.unit_system import (METRIC_SYSTEM) from homeassistant.const import ( - __version__, EVENT_STATE_CHANGED, ATTR_FRIENDLY_NAME, CONF_UNIT_SYSTEM) + __version__, EVENT_STATE_CHANGED, ATTR_FRIENDLY_NAME, CONF_UNIT_SYSTEM, + ATTR_NOW, EVENT_TIME_CHANGED, EVENT_HOMEASSISTANT_STOP, + EVENT_HOMEASSISTANT_START) from tests.common import get_test_home_assistant @@ -736,37 +738,78 @@ class TestConfig(unittest.TestCase): self.assertEqual(expected, self.config.as_dict()) -class TestAsyncCreateTimer(object): +@patch('homeassistant.core.monotonic') +def test_create_timer(mock_monotonic, loop): """Test create timer.""" + hass = MagicMock() + funcs = [] + orig_callback = ha.callback - @patch('homeassistant.core.asyncio.Event') - @patch('homeassistant.core.dt_util.utcnow') - def test_create_timer(self, mock_utcnow, mock_event, event_loop): - """Test create timer fires correctly.""" - hass = MagicMock() - now = mock_utcnow() - event = mock_event() - now.second = 1 - mock_utcnow.reset_mock() + def mock_callback(func): + funcs.append(func) + return orig_callback(func) + with patch.object(ha, 'callback', mock_callback): ha._async_create_timer(hass) - assert len(hass.bus.async_listen_once.mock_calls) == 2 - start_timer = hass.bus.async_listen_once.mock_calls[1][1][1] - event_loop.run_until_complete(start_timer(None)) - assert hass.loop.create_task.called + assert len(funcs) == 3 + fire_time_event, start_timer, stop_timer = funcs - timer = hass.loop.create_task.mock_calls[0][1][0] - event.is_set.side_effect = False, False, True - event_loop.run_until_complete(timer) - assert len(mock_utcnow.mock_calls) == 1 + assert len(hass.bus.async_listen_once.mock_calls) == 1 + event_type, callback = hass.bus.async_listen_once.mock_calls[0][1] + assert event_type == EVENT_HOMEASSISTANT_START + assert callback is start_timer - assert hass.loop.call_soon.called - event_type, event_data = hass.loop.call_soon.mock_calls[0][1][1:] + mock_monotonic.side_effect = 10.2, 10.3 - assert ha.EVENT_TIME_CHANGED == event_type - assert {ha.ATTR_NOW: now} == event_data + with patch('homeassistant.core.dt_util.utcnow', + return_value=sentinel.mock_date): + start_timer(None) - stop_timer = hass.bus.async_listen_once.mock_calls[0][1][1] - stop_timer(None) - assert event.set.called + assert len(hass.bus.async_listen_once.mock_calls) == 2 + assert len(hass.bus.async_fire.mock_calls) == 1 + assert len(hass.loop.call_later.mock_calls) == 1 + + event_type, callback = hass.bus.async_listen_once.mock_calls[1][1] + assert event_type == EVENT_HOMEASSISTANT_STOP + assert callback is stop_timer + + slp_seconds, callback, nxt = hass.loop.call_later.mock_calls[0][1] + assert abs(slp_seconds - 0.9) < 0.001 + assert callback is fire_time_event + assert abs(nxt - 11.2) < 0.001 + + event_type, event_data = hass.bus.async_fire.mock_calls[0][1] + assert event_type == EVENT_TIME_CHANGED + assert event_data[ATTR_NOW] is sentinel.mock_date + + +@patch('homeassistant.core.monotonic') +def test_timer_out_of_sync(mock_monotonic, loop): + """Test create timer.""" + hass = MagicMock() + funcs = [] + orig_callback = ha.callback + + def mock_callback(func): + funcs.append(func) + return orig_callback(func) + + with patch.object(ha, 'callback', mock_callback): + ha._async_create_timer(hass) + + assert len(funcs) == 3 + fire_time_event, start_timer, stop_timer = funcs + + mock_monotonic.side_effect = 10.2, 11.3, 11.3 + + with patch('homeassistant.core.dt_util.utcnow', + return_value=sentinel.mock_date): + start_timer(None) + + assert len(hass.loop.call_later.mock_calls) == 1 + + slp_seconds, callback, nxt = hass.loop.call_later.mock_calls[0][1] + assert slp_seconds == 1 + assert callback is fire_time_event + assert abs(nxt - 12.3) < 0.001 From 23ff2eb79cfa663d8fe1971f563d563dae9a7c3c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 10 Feb 2017 09:30:13 -0800 Subject: [PATCH 019/196] Update frontend (#5855) --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 138154 -> 138153 bytes .../www_static/home-assistant-polymer | 2 +- .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2338 -> 2337 bytes 6 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 4f8b6aed2d0..40cda09ae24 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -2,7 +2,7 @@ FINGERPRINTS = { "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "ae96f5256a562f35a652f31560a3b550", + "frontend.html": "43340b2369646b779e04a9925c225ab4", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 70a7063556b..31f8a0789dd 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -600,4 +600,4 @@ this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,th this.hass.callService('media_player', service, serviceData); }, }); -}()); \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 2e368d5b7f80e50e9f04a54b610ee75669fe1a4e..2790cc1ddf447ff91abfdf445239ca8e335103ea 100644 GIT binary patch delta 10641 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 delta 10642 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

MwGAF$n!IN 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 Z Date: Fri, 10 Feb 2017 22:22:15 +0200 Subject: [PATCH 020/196] [recorder] Run end model changed in session scope (#5858) --- homeassistant/components/recorder/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/recorder/__init__.py b/homeassistant/components/recorder/__init__.py index 8d3213a4805..66eb06f4d27 100644 --- a/homeassistant/components/recorder/__init__.py +++ b/homeassistant/components/recorder/__init__.py @@ -421,8 +421,8 @@ class Recorder(threading.Thread): def _close_run(self): """Save end time for current run.""" - self._run.end = dt_util.utcnow() with session_scope() as session: + self._run.end = dt_util.utcnow() self._commit(session, self._run) self._run = None From b10d20bcab5035416335e774d89e0b63c01247aa Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 10 Feb 2017 12:55:59 -0800 Subject: [PATCH 021/196] Recorder run can be None (#5854) --- homeassistant/components/recorder/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/recorder/__init__.py b/homeassistant/components/recorder/__init__.py index 66eb06f4d27..b227a8ce76a 100644 --- a/homeassistant/components/recorder/__init__.py +++ b/homeassistant/components/recorder/__init__.py @@ -124,7 +124,8 @@ def run_information(point_in_time: Optional[datetime]=None): res = query(recorder_runs).filter( (recorder_runs.start < point_in_time) & (recorder_runs.end > point_in_time)).first() - session.expunge(res) + if res: + session.expunge(res) return res From 67957cbfa87086205cadea44b330cfb2411b5cf1 Mon Sep 17 00:00:00 2001 From: Johan Bloemberg Date: Sat, 11 Feb 2017 00:24:07 +0100 Subject: [PATCH 022/196] Rflink update and small refactor. (#5789) * Use same pattern for device defaults in both platforms. * Update Rflink that passes loop downstream. * Update requirements. --- homeassistant/components/rflink.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/rflink.py b/homeassistant/components/rflink.py index 13696318e01..9a9e6d1145f 100644 --- a/homeassistant/components/rflink.py +++ b/homeassistant/components/rflink.py @@ -36,7 +36,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import Entity import voluptuous as vol -REQUIREMENTS = ['rflink==0.0.24'] +REQUIREMENTS = ['rflink==0.0.28'] DOMAIN = 'rflink' diff --git a/requirements_all.txt b/requirements_all.txt index c0735dc7f9a..6cab08068a9 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -587,7 +587,7 @@ qnapstats==0.2.1 radiotherm==1.2 # homeassistant.components.rflink -rflink==0.0.24 +rflink==0.0.28 # homeassistant.components.switch.rpi_rf # rpi-rf==0.9.6 From e877d572f54258c21be2ebdd0aa08ca7d3608f53 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Fri, 10 Feb 2017 23:46:15 -0500 Subject: [PATCH 023/196] binary_sensor sensor_class to entity device_class (#5860) * binary_sensor sensor_class to entity device_class * Linter fixes * Should be it --- .../components/binary_sensor/__init__.py | 21 ++----- .../components/binary_sensor/arest.py | 20 ++++--- .../components/binary_sensor/bloomsky.py | 4 +- .../components/binary_sensor/command_line.py | 20 ++++--- .../components/binary_sensor/concord232.py | 8 +-- .../components/binary_sensor/demo.py | 6 +- .../components/binary_sensor/digital_ocean.py | 2 +- .../components/binary_sensor/ecobee.py | 8 +-- .../components/binary_sensor/enocean.py | 21 ++++--- .../components/binary_sensor/envisalink.py | 4 +- .../components/binary_sensor/ffmpeg_motion.py | 4 +- .../components/binary_sensor/ffmpeg_noise.py | 4 +- .../components/binary_sensor/flic.py | 7 +-- .../components/binary_sensor/hikvision.py | 8 +-- .../components/binary_sensor/homematic.py | 4 +- homeassistant/components/binary_sensor/iss.py | 6 +- .../components/binary_sensor/mqtt.py | 19 ++++--- .../components/binary_sensor/mysensors.py | 8 +-- .../components/binary_sensor/netatmo.py | 4 +- .../components/binary_sensor/nx584.py | 8 +-- .../components/binary_sensor/octoprint.py | 4 +- .../components/binary_sensor/rest.py | 20 ++++--- .../components/binary_sensor/sleepiq.py | 2 +- .../components/binary_sensor/template.py | 21 ++++--- .../components/binary_sensor/threshold.py | 20 ++++--- .../components/binary_sensor/trend.py | 21 ++++--- .../components/binary_sensor/wink.py | 8 +-- .../components/binary_sensor/zwave.py | 12 ++-- .../components/media_player/__init__.py | 34 +---------- homeassistant/const.py | 4 ++ homeassistant/helpers/deprecation.py | 56 +++++++++++++++++++ homeassistant/helpers/entity.py | 8 ++- .../binary_sensor/test_binary_sensor.py | 10 ---- tests/components/binary_sensor/test_mqtt.py | 12 ++-- .../components/binary_sensor/test_template.py | 10 ++-- tests/helpers/test_entity.py | 13 ++++- 36 files changed, 242 insertions(+), 199 deletions(-) create mode 100644 homeassistant/helpers/deprecation.py diff --git a/homeassistant/components/binary_sensor/__init__.py b/homeassistant/components/binary_sensor/__init__.py index 26a19ce3f59..ab49c13770a 100644 --- a/homeassistant/components/binary_sensor/__init__.py +++ b/homeassistant/components/binary_sensor/__init__.py @@ -14,13 +14,13 @@ from homeassistant.helpers.entity_component import EntityComponent from homeassistant.helpers.entity import Entity from homeassistant.const import (STATE_ON, STATE_OFF) from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa +from homeassistant.helpers.deprecation import deprecated_substitute DOMAIN = 'binary_sensor' SCAN_INTERVAL = timedelta(seconds=30) ENTITY_ID_FORMAT = DOMAIN + '.{}' -SENSOR_CLASSES = [ - None, # Generic on/off +DEVICE_CLASSES = [ 'cold', # On means cold (or too cold) 'connectivity', # On means connection present, Off = no connection 'gas', # CO, CO2, etc. @@ -38,7 +38,7 @@ SENSOR_CLASSES = [ 'vibration', # On means vibration detected, Off means no vibration ] -SENSOR_CLASSES_SCHEMA = vol.All(vol.Lower, vol.In(SENSOR_CLASSES)) +DEVICE_CLASSES_SCHEMA = vol.All(vol.Lower, vol.In(DEVICE_CLASSES)) @asyncio.coroutine @@ -66,16 +66,7 @@ class BinarySensorDevice(Entity): return STATE_ON if self.is_on else STATE_OFF @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + @deprecated_substitute('sensor_class') + def device_class(self): + """Return the class of this device, from component DEVICE_CLASSES.""" return None - - @property - def state_attributes(self): - """Return device specific state attributes.""" - attr = {} - - if self.sensor_class is not None: - attr['sensor_class'] = self.sensor_class - - return attr diff --git a/homeassistant/components/binary_sensor/arest.py b/homeassistant/components/binary_sensor/arest.py index 834fb490049..efa6043a035 100644 --- a/homeassistant/components/binary_sensor/arest.py +++ b/homeassistant/components/binary_sensor/arest.py @@ -11,11 +11,12 @@ import requests import voluptuous as vol from homeassistant.components.binary_sensor import ( - BinarySensorDevice, PLATFORM_SCHEMA, SENSOR_CLASSES_SCHEMA) + BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( - CONF_RESOURCE, CONF_PIN, CONF_NAME, CONF_SENSOR_CLASS) + CONF_RESOURCE, CONF_PIN, CONF_NAME, CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -25,7 +26,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_RESOURCE): cv.url, vol.Optional(CONF_NAME): cv.string, vol.Required(CONF_PIN): cv.string, - vol.Optional(CONF_SENSOR_CLASS): SENSOR_CLASSES_SCHEMA, + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -33,7 +35,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the aREST binary sensor.""" resource = config.get(CONF_RESOURCE) pin = config.get(CONF_PIN) - sensor_class = config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) try: response = requests.get(resource, timeout=10).json() @@ -49,18 +51,18 @@ def setup_platform(hass, config, add_devices, discovery_info=None): add_devices([ArestBinarySensor( arest, resource, config.get(CONF_NAME, response[CONF_NAME]), - sensor_class, pin)]) + device_class, pin)]) class ArestBinarySensor(BinarySensorDevice): """Implement an aREST binary sensor for a pin.""" - def __init__(self, arest, resource, name, sensor_class, pin): + def __init__(self, arest, resource, name, device_class, pin): """Initialize the aREST device.""" self.arest = arest self._resource = resource self._name = name - self._sensor_class = sensor_class + self._device_class = device_class self._pin = pin self.update() @@ -81,9 +83,9 @@ class ArestBinarySensor(BinarySensorDevice): return bool(self.arest.data.get('state')) @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" - return self._sensor_class + return self._device_class def update(self): """Get the latest data from aREST API.""" diff --git a/homeassistant/components/binary_sensor/bloomsky.py b/homeassistant/components/binary_sensor/bloomsky.py index 2419d6f766e..845a58ee918 100644 --- a/homeassistant/components/binary_sensor/bloomsky.py +++ b/homeassistant/components/binary_sensor/bloomsky.py @@ -64,8 +64,8 @@ class BloomSkySensor(BinarySensorDevice): return self._unique_id @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return SENSOR_TYPES.get(self._sensor_name) @property diff --git a/homeassistant/components/binary_sensor/command_line.py b/homeassistant/components/binary_sensor/command_line.py index f051120d680..e08ebbe18f8 100644 --- a/homeassistant/components/binary_sensor/command_line.py +++ b/homeassistant/components/binary_sensor/command_line.py @@ -10,12 +10,13 @@ import logging import voluptuous as vol from homeassistant.components.binary_sensor import ( - BinarySensorDevice, SENSOR_CLASSES_SCHEMA, PLATFORM_SCHEMA) + BinarySensorDevice, DEVICE_CLASSES_SCHEMA, PLATFORM_SCHEMA) from homeassistant.components.sensor.command_line import CommandSensorData from homeassistant.const import ( CONF_PAYLOAD_OFF, CONF_PAYLOAD_ON, CONF_NAME, CONF_VALUE_TEMPLATE, - CONF_SENSOR_CLASS, CONF_COMMAND) + CONF_SENSOR_CLASS, CONF_COMMAND, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -30,7 +31,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, - vol.Optional(CONF_SENSOR_CLASS): SENSOR_CLASSES_SCHEMA, + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_VALUE_TEMPLATE): cv.template, }) @@ -42,27 +44,27 @@ def setup_platform(hass, config, add_devices, discovery_info=None): command = config.get(CONF_COMMAND) payload_off = config.get(CONF_PAYLOAD_OFF) payload_on = config.get(CONF_PAYLOAD_ON) - sensor_class = config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) value_template = config.get(CONF_VALUE_TEMPLATE) if value_template is not None: value_template.hass = hass data = CommandSensorData(command) add_devices([CommandBinarySensor( - hass, data, name, sensor_class, payload_on, payload_off, + hass, data, name, device_class, payload_on, payload_off, value_template)]) class CommandBinarySensor(BinarySensorDevice): """Represent a command line binary sensor.""" - def __init__(self, hass, data, name, sensor_class, payload_on, + def __init__(self, hass, data, name, device_class, payload_on, payload_off, value_template): """Initialize the Command line binary sensor.""" self._hass = hass self.data = data self._name = name - self._sensor_class = sensor_class + self._device_class = device_class self._state = False self._payload_on = payload_on self._payload_off = payload_off @@ -80,9 +82,9 @@ class CommandBinarySensor(BinarySensorDevice): return self._state @ property - def sensor_class(self): + def device_class(self): """Return the class of the binary sensor.""" - return self._sensor_class + return self._device_class def update(self): """Get the latest data and updates the state.""" diff --git a/homeassistant/components/binary_sensor/concord232.py b/homeassistant/components/binary_sensor/concord232.py index 109eed1fdc2..38ec0a74f97 100755 --- a/homeassistant/components/binary_sensor/concord232.py +++ b/homeassistant/components/binary_sensor/concord232.py @@ -11,7 +11,7 @@ import requests import voluptuous as vol from homeassistant.components.binary_sensor import ( - BinarySensorDevice, PLATFORM_SCHEMA, SENSOR_CLASSES) + BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES) from homeassistant.const import (CONF_HOST, CONF_PORT) import homeassistant.helpers.config_validation as cv @@ -30,7 +30,7 @@ DEFAULT_SSL = False SCAN_INTERVAL = datetime.timedelta(seconds=1) ZONE_TYPES_SCHEMA = vol.Schema({ - cv.positive_int: vol.In(SENSOR_CLASSES), + cv.positive_int: vol.In(DEVICE_CLASSES), }) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -102,8 +102,8 @@ class Concord232ZoneSensor(BinarySensorDevice): self.update() @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return self._zone_type @property diff --git a/homeassistant/components/binary_sensor/demo.py b/homeassistant/components/binary_sensor/demo.py index 6f7d59c65fd..9dbae2fdb49 100644 --- a/homeassistant/components/binary_sensor/demo.py +++ b/homeassistant/components/binary_sensor/demo.py @@ -18,14 +18,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class DemoBinarySensor(BinarySensorDevice): """A Demo binary sensor.""" - def __init__(self, name, state, sensor_class): + def __init__(self, name, state, device_class): """Initialize the demo sensor.""" self._name = name self._state = state - self._sensor_type = sensor_class + self._sensor_type = device_class @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" return self._sensor_type diff --git a/homeassistant/components/binary_sensor/digital_ocean.py b/homeassistant/components/binary_sensor/digital_ocean.py index 4c5783cc220..31f29597f06 100644 --- a/homeassistant/components/binary_sensor/digital_ocean.py +++ b/homeassistant/components/binary_sensor/digital_ocean.py @@ -63,7 +63,7 @@ class DigitalOceanBinarySensor(BinarySensorDevice): return self.data.status == 'active' @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" return DEFAULT_SENSOR_CLASS diff --git a/homeassistant/components/binary_sensor/ecobee.py b/homeassistant/components/binary_sensor/ecobee.py index 93583ff08b1..b2a5d21386b 100644 --- a/homeassistant/components/binary_sensor/ecobee.py +++ b/homeassistant/components/binary_sensor/ecobee.py @@ -38,7 +38,7 @@ class EcobeeBinarySensor(BinarySensorDevice): self.sensor_name = sensor_name self.index = sensor_index self._state = None - self._sensor_class = 'occupancy' + self._device_class = 'occupancy' self.update() @property @@ -57,9 +57,9 @@ class EcobeeBinarySensor(BinarySensorDevice): return "binary_sensor_ecobee_{}_{}".format(self._name, self.index) @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" - return self._sensor_class + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" + return self._device_class def update(self): """Get the latest state of the sensor.""" diff --git a/homeassistant/components/binary_sensor/enocean.py b/homeassistant/components/binary_sensor/enocean.py index bd68a232f22..c89148ebc15 100644 --- a/homeassistant/components/binary_sensor/enocean.py +++ b/homeassistant/components/binary_sensor/enocean.py @@ -9,10 +9,12 @@ import logging import voluptuous as vol from homeassistant.components.binary_sensor import ( - BinarySensorDevice, PLATFORM_SCHEMA, SENSOR_CLASSES_SCHEMA) + BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.components import enocean -from homeassistant.const import (CONF_NAME, CONF_ID, CONF_SENSOR_CLASS) +from homeassistant.const import ( + CONF_NAME, CONF_ID, CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -22,7 +24,8 @@ DEFAULT_NAME = 'EnOcean binary sensor' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_ID): vol.All(cv.ensure_list, [vol.Coerce(int)]), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Optional(CONF_SENSOR_CLASS, default=None): SENSOR_CLASSES_SCHEMA, + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -30,15 +33,15 @@ def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the Binary Sensor platform fo EnOcean.""" dev_id = config.get(CONF_ID) devname = config.get(CONF_NAME) - sensor_class = config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) - add_devices([EnOceanBinarySensor(dev_id, devname, sensor_class)]) + add_devices([EnOceanBinarySensor(dev_id, devname, device_class)]) class EnOceanBinarySensor(enocean.EnOceanDevice, BinarySensorDevice): """Representation of EnOcean binary sensors such as wall switches.""" - def __init__(self, dev_id, devname, sensor_class): + def __init__(self, dev_id, devname, device_class): """Initialize the EnOcean binary sensor.""" enocean.EnOceanDevice.__init__(self) self.stype = "listener" @@ -46,7 +49,7 @@ class EnOceanBinarySensor(enocean.EnOceanDevice, BinarySensorDevice): self.which = -1 self.onoff = -1 self.devname = devname - self._sensor_class = sensor_class + self._device_class = device_class @property def name(self): @@ -54,9 +57,9 @@ class EnOceanBinarySensor(enocean.EnOceanDevice, BinarySensorDevice): return self.devname @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" - return self._sensor_class + return self._device_class def value_changed(self, value, value2): """Fire an event with the data that have changed. diff --git a/homeassistant/components/binary_sensor/envisalink.py b/homeassistant/components/binary_sensor/envisalink.py index 5bbc15aefcf..3e669333d69 100644 --- a/homeassistant/components/binary_sensor/envisalink.py +++ b/homeassistant/components/binary_sensor/envisalink.py @@ -60,8 +60,8 @@ class EnvisalinkBinarySensor(EnvisalinkDevice, BinarySensorDevice): return self._info['status']['open'] @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return self._zone_type def _update_callback(self, zone): diff --git a/homeassistant/components/binary_sensor/ffmpeg_motion.py b/homeassistant/components/binary_sensor/ffmpeg_motion.py index 70e13722b85..8c822c56361 100644 --- a/homeassistant/components/binary_sensor/ffmpeg_motion.py +++ b/homeassistant/components/binary_sensor/ffmpeg_motion.py @@ -122,6 +122,6 @@ class FFmpegMotion(FFmpegBinarySensor): ) @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return "motion" diff --git a/homeassistant/components/binary_sensor/ffmpeg_noise.py b/homeassistant/components/binary_sensor/ffmpeg_noise.py index b4592fceefd..8db4691d743 100644 --- a/homeassistant/components/binary_sensor/ffmpeg_noise.py +++ b/homeassistant/components/binary_sensor/ffmpeg_noise.py @@ -91,6 +91,6 @@ class FFmpegNoise(FFmpegBinarySensor): ) @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return "sound" diff --git a/homeassistant/components/binary_sensor/flic.py b/homeassistant/components/binary_sensor/flic.py index 94a75fcda4b..eedcfb6060e 100644 --- a/homeassistant/components/binary_sensor/flic.py +++ b/homeassistant/components/binary_sensor/flic.py @@ -179,12 +179,9 @@ class FlicButton(BinarySensorDevice): return False @property - def state_attributes(self): + def device_state_attributes(self): """Return device specific state attributes.""" - attr = super(FlicButton, self).state_attributes - attr["address"] = self.address - - return attr + return {"address": self.address} def _queued_event_check(self, click_type, time_diff): """Generate a log message and returns true if timeout exceeded.""" diff --git a/homeassistant/components/binary_sensor/hikvision.py b/homeassistant/components/binary_sensor/hikvision.py index 1cc98372cee..e14d4149ffe 100644 --- a/homeassistant/components/binary_sensor/hikvision.py +++ b/homeassistant/components/binary_sensor/hikvision.py @@ -29,7 +29,7 @@ DEFAULT_DELAY = 0 ATTR_DELAY = 'delay' -SENSOR_CLASS_MAP = { +DEVICE_CLASS_MAP = { 'Motion': 'motion', 'Line Crossing': 'motion', 'IO Trigger': None, @@ -201,10 +201,10 @@ class HikvisionBinarySensor(BinarySensorDevice): return self._sensor_state() @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" try: - return SENSOR_CLASS_MAP[self._sensor] + return DEVICE_CLASS_MAP[self._sensor] except KeyError: # Sensor must be unknown to us, add as generic return None diff --git a/homeassistant/components/binary_sensor/homematic.py b/homeassistant/components/binary_sensor/homematic.py index 82b77eb11d4..5379ccfe5d6 100644 --- a/homeassistant/components/binary_sensor/homematic.py +++ b/homeassistant/components/binary_sensor/homematic.py @@ -54,8 +54,8 @@ class HMBinarySensor(HMDevice, BinarySensorDevice): return bool(self._hm_get_state()) @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" if not self.available: return None diff --git a/homeassistant/components/binary_sensor/iss.py b/homeassistant/components/binary_sensor/iss.py index b4182557878..44d2b16fcc9 100644 --- a/homeassistant/components/binary_sensor/iss.py +++ b/homeassistant/components/binary_sensor/iss.py @@ -26,7 +26,7 @@ ATTR_ISS_NUMBER_PEOPLE_SPACE = 'number_of_people_in_space' CONF_SHOW_ON_MAP = 'show_on_map' DEFAULT_NAME = 'ISS' -DEFAULT_SENSOR_CLASS = 'visible' +DEFAULT_DEVICE_CLASS = 'visible' MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60) @@ -77,9 +77,9 @@ class IssBinarySensor(BinarySensorDevice): return self.iss_data.is_above if self.iss_data else False @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" - return DEFAULT_SENSOR_CLASS + return DEFAULT_DEVICE_CLASS @property def device_state_attributes(self): diff --git a/homeassistant/components/binary_sensor/mqtt.py b/homeassistant/components/binary_sensor/mqtt.py index 8c8beaddb6e..3dbfffa75b6 100644 --- a/homeassistant/components/binary_sensor/mqtt.py +++ b/homeassistant/components/binary_sensor/mqtt.py @@ -11,12 +11,13 @@ import voluptuous as vol from homeassistant.core import callback import homeassistant.components.mqtt as mqtt from homeassistant.components.binary_sensor import ( - BinarySensorDevice, SENSOR_CLASSES) + BinarySensorDevice, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( CONF_NAME, CONF_VALUE_TEMPLATE, CONF_PAYLOAD_ON, CONF_PAYLOAD_OFF, - CONF_SENSOR_CLASS) + CONF_SENSOR_CLASS, CONF_DEVICE_CLASS) from homeassistant.components.mqtt import (CONF_STATE_TOPIC, CONF_QOS) import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -29,8 +30,8 @@ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PAYLOAD_OFF, default=DEFAULT_PAYLOAD_OFF): cv.string, vol.Optional(CONF_PAYLOAD_ON, default=DEFAULT_PAYLOAD_ON): cv.string, - vol.Optional(CONF_SENSOR_CLASS, default=None): - vol.Any(vol.In(SENSOR_CLASSES), vol.SetTo(None)), + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -47,7 +48,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): hass, config.get(CONF_NAME), config.get(CONF_STATE_TOPIC), - config.get(CONF_SENSOR_CLASS), + get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS), config.get(CONF_QOS), config.get(CONF_PAYLOAD_ON), config.get(CONF_PAYLOAD_OFF), @@ -58,14 +59,14 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class MqttBinarySensor(BinarySensorDevice): """Representation a binary sensor that is updated by MQTT.""" - def __init__(self, hass, name, state_topic, sensor_class, qos, payload_on, + def __init__(self, hass, name, state_topic, device_class, qos, payload_on, payload_off, value_template): """Initialize the MQTT binary sensor.""" self._hass = hass self._name = name self._state = False self._state_topic = state_topic - self._sensor_class = sensor_class + self._device_class = device_class self._payload_on = payload_on self._payload_off = payload_off self._qos = qos @@ -101,6 +102,6 @@ class MqttBinarySensor(BinarySensorDevice): return self._state @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" - return self._sensor_class + return self._device_class diff --git a/homeassistant/components/binary_sensor/mysensors.py b/homeassistant/components/binary_sensor/mysensors.py index 6406dabd26f..3a0b09c0074 100644 --- a/homeassistant/components/binary_sensor/mysensors.py +++ b/homeassistant/components/binary_sensor/mysensors.py @@ -7,7 +7,7 @@ https://home-assistant.io/components/binary_sensor.mysensors/ import logging from homeassistant.components import mysensors -from homeassistant.components.binary_sensor import (SENSOR_CLASSES, +from homeassistant.components.binary_sensor import (DEVICE_CLASSES, BinarySensorDevice) from homeassistant.const import STATE_ON @@ -62,8 +62,8 @@ class MySensorsBinarySensor( return False @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" pres = self.gateway.const.Presentation class_map = { pres.S_DOOR: 'opening', @@ -78,5 +78,5 @@ class MySensorsBinarySensor( pres.S_VIBRATION: 'vibration', pres.S_MOISTURE: 'moisture', }) - if class_map.get(self.child_type) in SENSOR_CLASSES: + if class_map.get(self.child_type) in DEVICE_CLASSES: return class_map.get(self.child_type) diff --git a/homeassistant/components/binary_sensor/netatmo.py b/homeassistant/components/binary_sensor/netatmo.py index 661d1128086..ee7bc53c4cb 100644 --- a/homeassistant/components/binary_sensor/netatmo.py +++ b/homeassistant/components/binary_sensor/netatmo.py @@ -154,8 +154,8 @@ class NetatmoBinarySensor(BinarySensorDevice): return self._unique_id @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" if self._cameratype == "NACamera": return WELCOME_SENSOR_TYPES.get(self._sensor_name) elif self._cameratype == "NOC": diff --git a/homeassistant/components/binary_sensor/nx584.py b/homeassistant/components/binary_sensor/nx584.py index ad7612d11a6..6ffcb7b0cf3 100644 --- a/homeassistant/components/binary_sensor/nx584.py +++ b/homeassistant/components/binary_sensor/nx584.py @@ -12,7 +12,7 @@ import requests import voluptuous as vol from homeassistant.components.binary_sensor import ( - SENSOR_CLASSES, BinarySensorDevice, PLATFORM_SCHEMA) + DEVICE_CLASSES, BinarySensorDevice, PLATFORM_SCHEMA) from homeassistant.const import (CONF_HOST, CONF_PORT) import homeassistant.helpers.config_validation as cv @@ -28,7 +28,7 @@ DEFAULT_PORT = '5007' DEFAULT_SSL = False ZONE_TYPES_SCHEMA = vol.Schema({ - cv.positive_int: vol.In(SENSOR_CLASSES), + cv.positive_int: vol.In(DEVICE_CLASSES), }) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -85,8 +85,8 @@ class NX584ZoneSensor(BinarySensorDevice): self._zone_type = zone_type @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return self._zone_type @property diff --git a/homeassistant/components/binary_sensor/octoprint.py b/homeassistant/components/binary_sensor/octoprint.py index 4284d2844bd..3fd92d1ceb1 100644 --- a/homeassistant/components/binary_sensor/octoprint.py +++ b/homeassistant/components/binary_sensor/octoprint.py @@ -99,8 +99,8 @@ class OctoPrintBinarySensor(BinarySensorDevice): return STATE_OFF @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return None def update(self): diff --git a/homeassistant/components/binary_sensor/rest.py b/homeassistant/components/binary_sensor/rest.py index 72f506eaefc..2e5de7e2f27 100644 --- a/homeassistant/components/binary_sensor/rest.py +++ b/homeassistant/components/binary_sensor/rest.py @@ -10,14 +10,15 @@ import voluptuous as vol from requests.auth import HTTPBasicAuth, HTTPDigestAuth from homeassistant.components.binary_sensor import ( - BinarySensorDevice, SENSOR_CLASSES_SCHEMA, PLATFORM_SCHEMA) + BinarySensorDevice, DEVICE_CLASSES_SCHEMA, PLATFORM_SCHEMA) from homeassistant.components.sensor.rest import RestData from homeassistant.const import ( CONF_PAYLOAD, CONF_NAME, CONF_VALUE_TEMPLATE, CONF_METHOD, CONF_RESOURCE, CONF_SENSOR_CLASS, CONF_VERIFY_SSL, CONF_USERNAME, CONF_PASSWORD, CONF_HEADERS, CONF_AUTHENTICATION, HTTP_BASIC_AUTHENTICATION, - HTTP_DIGEST_AUTHENTICATION) + HTTP_DIGEST_AUTHENTICATION, CONF_DEVICE_CLASS) import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -34,7 +35,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PASSWORD): cv.string, vol.Optional(CONF_PAYLOAD): cv.string, - vol.Optional(CONF_SENSOR_CLASS): SENSOR_CLASSES_SCHEMA, + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, vol.Optional(CONF_USERNAME): cv.string, vol.Optional(CONF_VALUE_TEMPLATE): cv.template, vol.Optional(CONF_VERIFY_SSL, default=DEFAULT_VERIFY_SSL): cv.boolean, @@ -51,7 +53,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): username = config.get(CONF_USERNAME) password = config.get(CONF_PASSWORD) headers = config.get(CONF_HEADERS) - sensor_class = config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) value_template = config.get(CONF_VALUE_TEMPLATE) if value_template is not None: value_template.hass = hass @@ -72,18 +74,18 @@ def setup_platform(hass, config, add_devices, discovery_info=None): return False add_devices([RestBinarySensor( - hass, rest, name, sensor_class, value_template)]) + hass, rest, name, device_class, value_template)]) class RestBinarySensor(BinarySensorDevice): """Representation of a REST binary sensor.""" - def __init__(self, hass, rest, name, sensor_class, value_template): + def __init__(self, hass, rest, name, device_class, value_template): """Initialize a REST binary sensor.""" self._hass = hass self.rest = rest self._name = name - self._sensor_class = sensor_class + self._device_class = device_class self._state = False self._previous_data = None self._value_template = value_template @@ -95,9 +97,9 @@ class RestBinarySensor(BinarySensorDevice): return self._name @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" - return self._sensor_class + return self._device_class @property def is_on(self): diff --git a/homeassistant/components/binary_sensor/sleepiq.py b/homeassistant/components/binary_sensor/sleepiq.py index 0409d04f9a5..f55eba82dbe 100644 --- a/homeassistant/components/binary_sensor/sleepiq.py +++ b/homeassistant/components/binary_sensor/sleepiq.py @@ -42,7 +42,7 @@ class IsInBedBinarySensor(sleepiq.SleepIQSensor, BinarySensorDevice): return self._state is True @property - def sensor_class(self): + def device_class(self): """Return the class of this sensor.""" return "occupancy" diff --git a/homeassistant/components/binary_sensor/template.py b/homeassistant/components/binary_sensor/template.py index fa60412c77f..8f11424f54c 100644 --- a/homeassistant/components/binary_sensor/template.py +++ b/homeassistant/components/binary_sensor/template.py @@ -12,14 +12,15 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.components.binary_sensor import ( BinarySensorDevice, ENTITY_ID_FORMAT, PLATFORM_SCHEMA, - SENSOR_CLASSES_SCHEMA) + DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( ATTR_FRIENDLY_NAME, ATTR_ENTITY_ID, CONF_VALUE_TEMPLATE, - CONF_SENSOR_CLASS, CONF_SENSORS) + CONF_SENSOR_CLASS, CONF_SENSORS, CONF_DEVICE_CLASS) from homeassistant.exceptions import TemplateError from homeassistant.helpers.entity import async_generate_entity_id from homeassistant.helpers.event import async_track_state_change import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.deprecation import get_deprecated _LOGGER = logging.getLogger(__name__) @@ -27,7 +28,8 @@ SENSOR_SCHEMA = vol.Schema({ vol.Required(CONF_VALUE_TEMPLATE): cv.template, vol.Optional(ATTR_FRIENDLY_NAME): cv.string, vol.Optional(ATTR_ENTITY_ID): cv.entity_ids, - vol.Optional(CONF_SENSOR_CLASS, default=None): SENSOR_CLASSES_SCHEMA + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -45,7 +47,8 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): entity_ids = (device_config.get(ATTR_ENTITY_ID) or value_template.extract_entities()) friendly_name = device_config.get(ATTR_FRIENDLY_NAME, device) - sensor_class = device_config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated( + device_config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) if value_template is not None: value_template.hass = hass @@ -55,7 +58,7 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): hass, device, friendly_name, - sensor_class, + device_class, value_template, entity_ids) ) @@ -70,14 +73,14 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): class BinarySensorTemplate(BinarySensorDevice): """A virtual binary sensor that triggers from another sensor.""" - def __init__(self, hass, device, friendly_name, sensor_class, + def __init__(self, hass, device, friendly_name, device_class, value_template, entity_ids): """Initialize the Template binary sensor.""" self.hass = hass self.entity_id = async_generate_entity_id(ENTITY_ID_FORMAT, device, hass=hass) self._name = friendly_name - self._sensor_class = sensor_class + self._device_class = device_class self._template = value_template self._state = None @@ -100,9 +103,9 @@ class BinarySensorTemplate(BinarySensorDevice): return self._state @property - def sensor_class(self): + def device_class(self): """Return the sensor class of the sensor.""" - return self._sensor_class + return self._device_class @property def should_poll(self): diff --git a/homeassistant/components/binary_sensor/threshold.py b/homeassistant/components/binary_sensor/threshold.py index 78338de64f7..be41fd96556 100644 --- a/homeassistant/components/binary_sensor/threshold.py +++ b/homeassistant/components/binary_sensor/threshold.py @@ -11,11 +11,12 @@ import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.components.binary_sensor import ( - BinarySensorDevice, PLATFORM_SCHEMA, SENSOR_CLASSES_SCHEMA) + BinarySensorDevice, PLATFORM_SCHEMA, DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( CONF_NAME, CONF_ENTITY_ID, CONF_TYPE, STATE_UNKNOWN, CONF_SENSOR_CLASS, - ATTR_ENTITY_ID) + ATTR_ENTITY_ID, CONF_DEVICE_CLASS) from homeassistant.core import callback +from homeassistant.helpers.deprecation import get_deprecated from homeassistant.helpers.event import async_track_state_change _LOGGER = logging.getLogger(__name__) @@ -37,7 +38,8 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_THRESHOLD): vol.Coerce(float), vol.Required(CONF_TYPE): vol.In(SENSOR_TYPES), vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, - vol.Optional(CONF_SENSOR_CLASS, default=None): SENSOR_CLASSES_SCHEMA, + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) @@ -48,11 +50,11 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): name = config.get(CONF_NAME) threshold = config.get(CONF_THRESHOLD) limit_type = config.get(CONF_TYPE) - sensor_class = config.get(CONF_SENSOR_CLASS) + device_class = get_deprecated(config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) yield from async_add_devices( [ThresholdSensor(hass, entity_id, name, threshold, limit_type, - sensor_class)], True) + device_class)], True) return True @@ -60,14 +62,14 @@ class ThresholdSensor(BinarySensorDevice): """Representation of a Threshold sensor.""" def __init__(self, hass, entity_id, name, threshold, limit_type, - sensor_class): + device_class): """Initialize the Threshold sensor.""" self._hass = hass self._entity_id = entity_id self.is_upper = limit_type == 'upper' self._name = name self._threshold = threshold - self._sensor_class = sensor_class + self._device_class = device_class self._deviation = False self.sensor_value = 0 @@ -105,9 +107,9 @@ class ThresholdSensor(BinarySensorDevice): return False @property - def sensor_class(self): + def device_class(self): """Return the sensor class of the sensor.""" - return self._sensor_class + return self._device_class @property def device_state_attributes(self): diff --git a/homeassistant/components/binary_sensor/trend.py b/homeassistant/components/binary_sensor/trend.py index 7c38d4505ae..2c2a0563452 100644 --- a/homeassistant/components/binary_sensor/trend.py +++ b/homeassistant/components/binary_sensor/trend.py @@ -15,12 +15,14 @@ from homeassistant.components.binary_sensor import ( BinarySensorDevice, ENTITY_ID_FORMAT, PLATFORM_SCHEMA, - SENSOR_CLASSES_SCHEMA) + DEVICE_CLASSES_SCHEMA) from homeassistant.const import ( ATTR_FRIENDLY_NAME, ATTR_ENTITY_ID, CONF_SENSOR_CLASS, + CONF_DEVICE_CLASS, STATE_UNKNOWN,) +from homeassistant.helpers.deprecation import get_deprecated from homeassistant.helpers.entity import generate_entity_id from homeassistant.helpers.event import track_state_change @@ -34,8 +36,8 @@ SENSOR_SCHEMA = vol.Schema({ vol.Optional(CONF_ATTRIBUTE): cv.string, vol.Optional(ATTR_FRIENDLY_NAME): cv.string, vol.Optional(CONF_INVERT, default=False): cv.boolean, - vol.Optional(CONF_SENSOR_CLASS, default=None): SENSOR_CLASSES_SCHEMA - + vol.Optional(CONF_SENSOR_CLASS): DEVICE_CLASSES_SCHEMA, + vol.Optional(CONF_DEVICE_CLASS): DEVICE_CLASSES_SCHEMA, }) PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -52,7 +54,8 @@ def setup_platform(hass, config, add_devices, discovery_info=None): entity_id = device_config[ATTR_ENTITY_ID] attribute = device_config.get(CONF_ATTRIBUTE) friendly_name = device_config.get(ATTR_FRIENDLY_NAME, device) - sensor_class = device_config[CONF_SENSOR_CLASS] + device_class = get_deprecated( + device_config, CONF_DEVICE_CLASS, CONF_SENSOR_CLASS) invert = device_config[CONF_INVERT] sensors.append( @@ -62,7 +65,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): friendly_name, entity_id, attribute, - sensor_class, + device_class, invert) ) if not sensors: @@ -76,7 +79,7 @@ class SensorTrend(BinarySensorDevice): """Representation of a trend Sensor.""" def __init__(self, hass, device_id, friendly_name, - target_entity, attribute, sensor_class, invert): + target_entity, attribute, device_class, invert): """Initialize the sensor.""" self._hass = hass self.entity_id = generate_entity_id(ENTITY_ID_FORMAT, device_id, @@ -84,7 +87,7 @@ class SensorTrend(BinarySensorDevice): self._name = friendly_name self._target_entity = target_entity self._attribute = attribute - self._sensor_class = sensor_class + self._device_class = device_class self._invert = invert self._state = None self.from_state = None @@ -111,9 +114,9 @@ class SensorTrend(BinarySensorDevice): return self._state @property - def sensor_class(self): + def device_class(self): """Return the sensor class of the sensor.""" - return self._sensor_class + return self._device_class @property def should_poll(self): diff --git a/homeassistant/components/binary_sensor/wink.py b/homeassistant/components/binary_sensor/wink.py index 4e1969de858..da60c54a0fd 100644 --- a/homeassistant/components/binary_sensor/wink.py +++ b/homeassistant/components/binary_sensor/wink.py @@ -107,8 +107,8 @@ class WinkBinarySensorDevice(WinkDevice, BinarySensorDevice, Entity): return self.wink.state() @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return SENSOR_TYPES.get(self.capability) @@ -161,8 +161,8 @@ class WinkRemote(WinkBinarySensorDevice): } @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return None diff --git a/homeassistant/components/binary_sensor/zwave.py b/homeassistant/components/binary_sensor/zwave.py index 8dd02cc4b43..f9bd417768b 100644 --- a/homeassistant/components/binary_sensor/zwave.py +++ b/homeassistant/components/binary_sensor/zwave.py @@ -48,9 +48,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class ZWaveBinarySensor(BinarySensorDevice, zwave.ZWaveDeviceEntity): """Representation of a binary sensor within Z-Wave.""" - def __init__(self, value, sensor_class): + def __init__(self, value, device_class): """Initialize the sensor.""" - self._sensor_type = sensor_class + self._sensor_type = device_class zwave.ZWaveDeviceEntity.__init__(self, value, DOMAIN) @property @@ -59,8 +59,8 @@ class ZWaveBinarySensor(BinarySensorDevice, zwave.ZWaveDeviceEntity): return self._value.data @property - def sensor_class(self): - """Return the class of this sensor, from SENSOR_CLASSES.""" + def device_class(self): + """Return the class of this sensor, from DEVICE_CLASSES.""" return self._sensor_type @property @@ -72,9 +72,9 @@ class ZWaveBinarySensor(BinarySensorDevice, zwave.ZWaveDeviceEntity): class ZWaveTriggerSensor(ZWaveBinarySensor): """Representation of a stateless sensor within Z-Wave.""" - def __init__(self, value, sensor_class, hass, re_arm_sec=60): + def __init__(self, value, device_class, hass, re_arm_sec=60): """Initialize the sensor.""" - super(ZWaveTriggerSensor, self).__init__(value, sensor_class) + super(ZWaveTriggerSensor, self).__init__(value, device_class) self._hass = hass self.re_arm_sec = re_arm_sec self.invalidate_after = dt_util.utcnow() + datetime.timedelta( diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index a1077b1f132..e3c3170f6f1 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -20,6 +20,7 @@ from homeassistant.config import load_yaml_config_file from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity_component import EntityComponent from homeassistant.helpers.config_validation import PLATFORM_SCHEMA # noqa +from homeassistant.helpers.deprecation import deprecated_substitute from homeassistant.components.http import HomeAssistantView, KEY_AUTHENTICATED from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv @@ -520,40 +521,9 @@ class MediaPlayerDevice(Entity): return None @property - def supported_media_commands(self): - """Flag media commands that are supported. - - DEPRECATED: Included for temporary custom platform compatibility. - """ - return None - - @property + @deprecated_substitute('supported_media_commands') def supported_features(self): """Flag media player features that are supported.""" - # Begin temporary transition logic - - if self.supported_media_commands is not None: - # If this platform is still using supported_media_commands, issue - # a logger warning once with instructions on how to fix it. - if not getattr(self, '_supported_features_warned', False): - def show_warning(): - """Show a deprecation warning in the log for this class.""" - import inspect - _LOGGER.warning( - "supported_media_commands is deprecated. Please " - "rename supported_media_commands to " - "supported_features in '%s' to ensure future support.", - inspect.getfile(self.__class__)) - # This is a temporary attribute. We don't want to pollute - # __init__ so it can be easily removed. - # pylint: disable=attribute-defined-outside-init - self._supported_features_warned = True - self.hass.add_job(show_warning) - - # Return the old property - return self.supported_media_commands - - # End temporary transition logic return 0 def turn_on(self): diff --git a/homeassistant/const.py b/homeassistant/const.py index 5df9bfe15f1..be33e12798f 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -78,6 +78,7 @@ CONF_CONDITION = 'condition' CONF_COVERS = 'covers' CONF_CUSTOMIZE = 'customize' CONF_DEVICE = 'device' +CONF_DEVICE_CLASS = 'device_class' CONF_DEVICES = 'devices' CONF_DISARM_AFTER_TRIGGER = 'disarm_after_trigger' CONF_DISCOVERY = 'discovery' @@ -291,6 +292,9 @@ ATTR_OPTION = 'option' # Bitfield of supported component features for the entity ATTR_SUPPORTED_FEATURES = 'supported_features' +# Class of device within its domain +ATTR_DEVICE_CLASS = 'device_class' + # #### SERVICES #### SERVICE_HOMEASSISTANT_STOP = 'stop' SERVICE_HOMEASSISTANT_RESTART = 'restart' diff --git a/homeassistant/helpers/deprecation.py b/homeassistant/helpers/deprecation.py new file mode 100644 index 00000000000..a2396b9d30f --- /dev/null +++ b/homeassistant/helpers/deprecation.py @@ -0,0 +1,56 @@ +"""Deprecation helpers for Home Assistant.""" + +import inspect +import logging + + +def deprecated_substitute(substitute_name): + """Help migrate properties to new names. + + When a property is added to replace an older property, this decorator can + be added to the new property, listing the old property as the substitute. + If the old property is defined, it's value will be used instead, and a log + warning will be issued alerting the user of the impending change. + """ + def decorator(func): + """Decorator function.""" + def func_wrapper(self): + """Wrapper for original function.""" + if hasattr(self, substitute_name): + # If this platform is still using the old property, issue + # a logger warning once with instructions on how to fix it. + warnings = getattr(func, '_deprecated_substitute_warnings', {}) + module_name = self.__module__ + if not warnings.get(module_name): + logger = logging.getLogger(module_name) + logger.warning( + "%s is deprecated. Please rename %s to " + "%s in '%s' to ensure future support.", + substitute_name, substitute_name, func.__name__, + inspect.getfile(self.__class__)) + warnings[module_name] = True + # pylint: disable=protected-access + func._deprecated_substitute_warnings = warnings + + # Return the old property + return getattr(self, substitute_name) + else: + return func(self) + return func_wrapper + return decorator + + +def get_deprecated(config, new_name, old_name, default=None): + """Allow an old config name to be deprecated with a replacement. + + If the new config isn't found, but the old one is, the old value is used + and a warning is issued to the user. + """ + if old_name in config: + module_name = inspect.getmodule(inspect.stack()[1][0]).__name__ + logger = logging.getLogger(module_name) + logger.warning( + "%s is deprecated. Please rename %s to %s in your " + "configuration file.", old_name, old_name, new_name) + return config.get(old_name) + return config.get(new_name, default) diff --git a/homeassistant/helpers/entity.py b/homeassistant/helpers/entity.py index a80f2f5edae..e66f49cc6dc 100644 --- a/homeassistant/helpers/entity.py +++ b/homeassistant/helpers/entity.py @@ -10,7 +10,7 @@ from homeassistant.const import ( ATTR_ASSUMED_STATE, ATTR_FRIENDLY_NAME, ATTR_HIDDEN, ATTR_ICON, ATTR_UNIT_OF_MEASUREMENT, DEVICE_DEFAULT_NAME, STATE_OFF, STATE_ON, STATE_UNAVAILABLE, STATE_UNKNOWN, TEMP_CELSIUS, TEMP_FAHRENHEIT, - ATTR_ENTITY_PICTURE, ATTR_SUPPORTED_FEATURES) + ATTR_ENTITY_PICTURE, ATTR_SUPPORTED_FEATURES, ATTR_DEVICE_CLASS) from homeassistant.core import HomeAssistant, DOMAIN as CORE_DOMAIN from homeassistant.exceptions import NoEntitySpecifiedError from homeassistant.util import ensure_unique_string, slugify @@ -109,6 +109,11 @@ class Entity(object): """ return None + @property + def device_class(self) -> str: + """Return the class of this device, from component DEVICE_CLASSES.""" + return None + @property def unit_of_measurement(self): """Return the unit of measurement of this entity, if any.""" @@ -236,6 +241,7 @@ class Entity(object): self._attr_setter('assumed_state', bool, ATTR_ASSUMED_STATE, attr) self._attr_setter('supported_features', int, ATTR_SUPPORTED_FEATURES, attr) + self._attr_setter('device_class', str, ATTR_DEVICE_CLASS, attr) end = timer() diff --git a/tests/components/binary_sensor/test_binary_sensor.py b/tests/components/binary_sensor/test_binary_sensor.py index 96dda5ab3bb..89b6226c016 100644 --- a/tests/components/binary_sensor/test_binary_sensor.py +++ b/tests/components/binary_sensor/test_binary_sensor.py @@ -23,13 +23,3 @@ class TestBinarySensor(unittest.TestCase): new=True): self.assertEqual(STATE_ON, binary_sensor.BinarySensorDevice().state) - - def test_attributes(self): - """Test binary sensor attributes.""" - sensor = binary_sensor.BinarySensorDevice() - self.assertEqual({}, sensor.state_attributes) - with mock.patch('homeassistant.components.binary_sensor.' - 'BinarySensorDevice.sensor_class', - new='motion'): - self.assertEqual({'sensor_class': 'motion'}, - sensor.state_attributes) diff --git a/tests/components/binary_sensor/test_mqtt.py b/tests/components/binary_sensor/test_mqtt.py index 5e4a2640a34..f9630ae4b25 100644 --- a/tests/components/binary_sensor/test_mqtt.py +++ b/tests/components/binary_sensor/test_mqtt.py @@ -47,32 +47,32 @@ class TestSensorMQTT(unittest.TestCase): state = self.hass.states.get('binary_sensor.test') self.assertEqual(STATE_OFF, state.state) - def test_valid_sensor_class(self): + def test_valid_device_class(self): """Test the setting of a valid sensor class.""" self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, binary_sensor.DOMAIN, { binary_sensor.DOMAIN: { 'platform': 'mqtt', 'name': 'test', - 'sensor_class': 'motion', + 'device_class': 'motion', 'state_topic': 'test-topic', } }) state = self.hass.states.get('binary_sensor.test') - self.assertEqual('motion', state.attributes.get('sensor_class')) + self.assertEqual('motion', state.attributes.get('device_class')) - def test_invalid_sensor_class(self): + def test_invalid_device_class(self): """Test the setting of an invalid sensor class.""" self.hass.config.components = set(['mqtt']) assert setup_component(self.hass, binary_sensor.DOMAIN, { binary_sensor.DOMAIN: { 'platform': 'mqtt', 'name': 'test', - 'sensor_class': 'abc123', + 'device_class': 'abc123', 'state_topic': 'test-topic', } }) state = self.hass.states.get('binary_sensor.test') - self.assertIsNone(state.attributes.get('sensor_class')) + self.assertIsNone(state) diff --git a/tests/components/binary_sensor/test_template.py b/tests/components/binary_sensor/test_template.py index 98462083e6f..cb526851710 100644 --- a/tests/components/binary_sensor/test_template.py +++ b/tests/components/binary_sensor/test_template.py @@ -36,7 +36,7 @@ class TestBinarySensorTemplate(unittest.TestCase): 'test': { 'friendly_name': 'virtual thingy', 'value_template': '{{ foo }}', - 'sensor_class': 'motion', + 'device_class': 'motion', }, }, }, @@ -66,7 +66,7 @@ class TestBinarySensorTemplate(unittest.TestCase): } }) - def test_setup_invalid_sensor_class(self): + def test_setup_invalid_device_class(self): """"Test setup with invalid sensor class.""" with assert_setup_component(0): assert bootstrap.setup_component(self.hass, 'binary_sensor', { @@ -75,7 +75,7 @@ class TestBinarySensorTemplate(unittest.TestCase): 'sensors': { 'test': { 'value_template': '{{ foo }}', - 'sensor_class': 'foobarnotreal', + 'device_class': 'foobarnotreal', }, }, } @@ -89,7 +89,7 @@ class TestBinarySensorTemplate(unittest.TestCase): 'platform': 'template', 'sensors': { 'test': { - 'sensor_class': 'motion', + 'device_class': 'motion', }, } } @@ -103,7 +103,7 @@ class TestBinarySensorTemplate(unittest.TestCase): template_hlpr.Template('{{ 1 > 1 }}', self.hass), MATCH_ALL ).result() self.assertFalse(vs.should_poll) - self.assertEqual('motion', vs.sensor_class) + self.assertEqual('motion', vs.device_class) self.assertEqual('Parent', vs.name) vs.update() diff --git a/tests/helpers/test_entity.py b/tests/helpers/test_entity.py index 061c206c116..c114478319f 100644 --- a/tests/helpers/test_entity.py +++ b/tests/helpers/test_entity.py @@ -2,12 +2,13 @@ # pylint: disable=protected-access import asyncio from unittest.mock import MagicMock +from unittest.mock import patch import pytest import homeassistant.helpers.entity as entity from homeassistant.helpers.customize import set_customize -from homeassistant.const import ATTR_HIDDEN +from homeassistant.const import ATTR_HIDDEN, ATTR_DEVICE_CLASS from tests.common import get_test_home_assistant @@ -119,3 +120,13 @@ class TestHelpersEntity(object): ent = AsyncEntity() ent.update() assert len(async_update) == 1 + + def test_device_class(self): + """Test device class attribute.""" + state = self.hass.states.get(self.entity.entity_id) + assert state.attributes.get(ATTR_DEVICE_CLASS) is None + with patch('homeassistant.helpers.entity.Entity.device_class', + new='test_class'): + self.entity.update_ha_state() + state = self.hass.states.get(self.entity.entity_id) + assert state.attributes.get(ATTR_DEVICE_CLASS) == 'test_class' From 75887e6069e6d6af4a6448def6dd5e938a6a0a6d Mon Sep 17 00:00:00 2001 From: Marcelo Moreira de Mello Date: Fri, 10 Feb 2017 23:51:19 -0500 Subject: [PATCH 024/196] Avoid traceback for Amcrest cameras/firmware that does not have the software_information API call (#5865) * Avoid traceback for Amcrest cameras/firmware that does not have the software_information API call * Make lint happy --- homeassistant/components/sensor/amcrest.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/amcrest.py b/homeassistant/components/sensor/amcrest.py index 08d551b8fde..f250905e952 100644 --- a/homeassistant/components/sensor/amcrest.py +++ b/homeassistant/components/sensor/amcrest.py @@ -122,10 +122,18 @@ class AmcrestSensor(Entity): def update(self): """Get the latest data and updates the state.""" - version, build_date = self._camera.software_information - self._attrs['Build Date'] = build_date.split('=')[-1] - self._attrs['Serial Number'] = self._camera.serial_number - self._attrs['Version'] = version.split('=')[-1] + try: + version, build_date = self._camera.software_information + self._attrs['Build Date'] = build_date.split('=')[-1] + self._attrs['Version'] = version.split('=')[-1] + except ValueError: + self._attrs['Build Date'] = 'Not Available' + self._attrs['Version'] = 'Not Available' + + try: + self._attrs['Serial Number'] = self._camera.serial_number + except ValueError: + self._attrs['Serial Number'] = 'Not Available' if self._sensor_type == 'motion_detector': self._state = self._camera.is_motion_detected From 3a7309ab62231c05fc86f1ec76dc7bbc3f049727 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 10 Feb 2017 21:06:42 -0800 Subject: [PATCH 025/196] Update frontend (#5866) --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 138153 -> 138152 bytes .../www_static/home-assistant-polymer | 2 +- .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2337 -> 2338 bytes 6 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 40cda09ae24..a186e440f50 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -2,7 +2,7 @@ FINGERPRINTS = { "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "43340b2369646b779e04a9925c225ab4", + "frontend.html": "cfd75c944ab14912cfbb4fdd9027579c", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 31f8a0789dd..45c229c8d01 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -320,7 +320,7 @@ window.hassUtil.domainIcon = function (domain, state) { window.hassUtil.binarySensorIcon = function (state) { var activated = state.state && state.state === 'off'; - switch (state.attributes.sensor_class) { + switch (state.attributes.device_class) { case 'connectivity': return activated ? 'mdi:server-network-off' : 'mdi:server-network'; case 'light': diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 2790cc1ddf447ff91abfdf445239ca8e335103ea..765e7b749f2793c79598663c8bea7704d33a13c7 100644 GIT binary patch delta 64453 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 Bzq|kd delta 64454 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 z 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 E0KE;`Z~y=R diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index f3808ff4d44..518d0b38da4 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit f3808ff4d44733f5810e21131e0daa1425bf5f22 +Subproject commit 518d0b38da47fa5923c84a963d11e9ed59424c2f diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index 334d21443f1..61b5d020825 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","daf22d03eb15bd061f46647363d5ec9b"],["/frontend/panels/dev-event-5c82300b3cf543a92cf4297506e450e7.html","1bb68c3df5c14307a2550a0cca39b435"],["/frontend/panels/dev-info-0469024d94d6270a8680df2be44ba916.html","35995794b5a909d517be812ad4f46ea8"],["/frontend/panels/dev-service-9f749635e518a4ca7991975bdefdb10a.html","1bc71eb7620c7b7198fd4b7976d6bc13"],["/frontend/panels/dev-state-7d069ba8fd5379fa8f59858b8c0a7473.html","18694d76e03e1194c734e9819923b70b"],["/frontend/panels/dev-template-2b618508510afa5281c9ecae0c3a3dbd.html","554e7f893ab24c8548813382142207d4"],["/frontend/panels/map-9c8c7924ba8f731560c9f4093835cc26.html","8ae4874622d23d995ddf2a8b0ffa8d80"],["/static/core-adfeb513cf650acf763e284d76a48d6b.js","f5fdf5f1f754e801f9f54ad31a3cc922"],["/static/frontend-43340b2369646b779e04a9925c225ab4.html","dc237eec8c13029a9d2ba6ccf51d2820"],["/static/mdi-c1dde43ccf5667f687c418fc8daf9668.html","6a3c9317736ca26e3390316335be9ba5"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v2--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var a=new URL(e);return"/"===a.pathname.slice(-1)&&(a.pathname+=t),a.toString()},createCacheKey=function(e,t,a,n){var c=new URL(e);return n&&c.toString().match(n)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(a)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var a=new URL(t).pathname;return e.some(function(e){return a.match(e)})},stripIgnoredUrlParameters=function(e,t){var a=new URL(e);return a.search=a.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),a.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],a=e[1],n=new URL(t,self.location),c=createCacheKey(n,hashParamName,a,!1);return[n.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!t.has(a))return e.add(new Request(a,{credentials:"same-origin",redirect:"follow"}))}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(a){return Promise.all(a.map(function(a){if(!t.has(a.url))return e.delete(a)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,a=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(a);var n="index.html";!t&&n&&(a=addDirectoryIndex(a,n),t=urlsToCacheKeys.has(a));var c="/";!t&&c&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(a=new URL(c,self.location).toString(),t=urlsToCacheKeys.has(a)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(a)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url,t&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var a,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 U7w-71_Me&K*EE?;%S9L%08Si(j{pDw delta 2327 zcmZ1^v`~m$zMF$1=*QfN?5gz)^TJGL=9pbxcGlEV&3?x{o<8&K@Y;TZ>W{L_G9T*;cO#c9U}1joKCNBeZ~5i&N75db7hm81sYz(n%$fY{ul-YF z6IH@4T{&BJxL}9+x$6l}?vx&@iR`idysl|y?e!M)NdA8+Mp0zKU%MQ*yxQQ{-nBDY6l9{b_@v*-58tXJe6`38A z79MJOq2ak`ifX;jQHA1%bAJC=m}j;5O2tWSjoTZWx&?2{=ues%DAv~GDeK!Z5t`Lz z$Q%j+X<-F&nz{8Jh`Y+oE8J<5Jb5uoig5aspmO94seXBF;7w*(h=_#7)R(U9? z!}FN($;&qCFZu%(OjS_aU+l4r#bwrofMrUmmCHg^F4_2oD5)g&XBgc%py9fq_+Vl9 znM*N`o#&(%su@Xs5@FtOb+YP>In8{naVGLulIBY@8_9MJ@5L;^eMYSdgCtz$bp|LiXmMBbiY;*JOTBxb zLz`DgZAKjDv+gUIhZ@qv1msdXNf2v?uVRaeU1q{DBLOOFLL(9zN_4! zJt~1*N@@E&CWWX+YAH|3oSC@wspq6z7WIs{a~@q!)hvA*Hrk}9Bm)Pt?8ucJ zTTdAIZrGR7_H@-@0Sz^q#Z!c&{`y>#4mg^%QEXYGL5GJ_Qm4nN)H#U?oJ%shR9iRI ztG!`96Q-Jf?b41EDea)6P6aLY{wBwd9d%u%&@C}>_a&~|+mFwRztJvu@+JQtX`R)Q zr#kC5)H$gcwQ%r0(tH-uA*b|4QBkG0{}ks3`8)D%BF#%Gx}py5YW*9`wZJLKD3SZl z?fnmoGbVCKeJyRg@L_$#wD1cxqMNsx&T);H(&f?gbVm1JLK`1f)ETbc;8rM9d0u)-#)L!n3Z6JF znfLPMkMC0>Yh>sDj#+ts!UWygxV@`H{>->{R$|(8UCWOvmmWMXAEzAe`)ecfOU|3q z*uC?fiF)xzr8pJ1*B_DQySw}8 z{HA=X9tOPgIMjJ^Qq|MDcXk+MOw4@xCuLV{%`+ZZ?!%lRo5DW)JiJ$T+0>(akf=DcA}-=nKGx&Cd&^=sS} z8A~2#-{1A}!1l|BK81?=Y!yFiFQz%=nzGSdn>ERjF0>7gw(}NWulb7H`aM<#2kM>DmtAw1|CrzM`|8~%e#TCmT5A6yvCijv z@QtuV2M*xX0iI*R3|;+7jI!`3Lsevl;K~cY7gH75ib6ZE4h&`j*F^)*QGf8DCQS z;>yL+$ZOO2oUZ=0wD|p|qQha^{qCpYM^^ar?>=bHw88dfOu~b2g71>|Te`}YR(`5? zd354qzkP>&Jx@%v)E&kh_D>&}*RyCuicOpPVY+zte21&`vNOIFI%&_@zyHsZlC$ex zDocH7UuN17VeMW$wR$^yY(>xPJ)JY}^*havi1l8(EJDL0`0o_6%BJ+ar-IIXX*dyc zTJ4`<;$9O=SEbi2Cmvo{SNY7ox8mI&fyE zWXz{B2K#9e8a1I?n0@|;$#T!JYfeo+$ZUJ+TxDtI>J2OJEZ2V(x^h*$y=gsjx7nSS z7fk1Eug{#@_%>lL>+*IN3G@HeL?7p^`o_ww6*T&kYw+Q+@p3X#`zcd(zf&EnU&^ox`#j(M9rb!L9rx=j Date: Sat, 11 Feb 2017 10:07:31 +0100 Subject: [PATCH 026/196] Adds play URL support to mpd (makes it work with tts). (#5863) * Adds play URL support to mpd (makes it work with tts). * Removed extra line at the end of the file. --- homeassistant/components/media_player/mpd.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/mpd.py b/homeassistant/components/media_player/mpd.py index 48d22dab021..9d3a0928866 100644 --- a/homeassistant/components/media_player/mpd.py +++ b/homeassistant/components/media_player/mpd.py @@ -266,5 +266,6 @@ class MpdDevice(MediaPlayerDevice): self.client.load(media_id) self.client.play() else: - _LOGGER.error(str.format("Invalid media type. Expected: {0}", - MEDIA_TYPE_PLAYLIST)) + self.client.clear() + self.client.add(media_id) + self.client.play() From d32949b099f66477969a657d7efd054b03893d6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Sat, 11 Feb 2017 10:55:38 +0100 Subject: [PATCH 027/196] rfxtrx 0.17 (#5870) --- homeassistant/components/rfxtrx.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/rfxtrx.py b/homeassistant/components/rfxtrx.py index caa44d5a8f2..c035836594c 100644 --- a/homeassistant/components/rfxtrx.py +++ b/homeassistant/components/rfxtrx.py @@ -14,7 +14,7 @@ from homeassistant.const import EVENT_HOMEASSISTANT_STOP from homeassistant.helpers.entity import Entity from homeassistant.const import (ATTR_ENTITY_ID, TEMP_CELSIUS) -REQUIREMENTS = ['pyRFXtrx==0.16.1'] +REQUIREMENTS = ['pyRFXtrx==0.17.0'] DOMAIN = "rfxtrx" diff --git a/requirements_all.txt b/requirements_all.txt index 6cab08068a9..fb5d6477c23 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -409,7 +409,7 @@ pyCEC==0.4.12 pyHS100==0.2.3 # homeassistant.components.rfxtrx -pyRFXtrx==0.16.1 +pyRFXtrx==0.17.0 # homeassistant.components.notify.xmpp pyasn1-modules==0.0.8 From 0aad6c72d260b9387c7ce8668644d2ee6deda382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Vran=C3=ADk?= Date: Sat, 11 Feb 2017 13:53:45 +0100 Subject: [PATCH 028/196] version bump (#5871) --- homeassistant/components/hdmi_cec.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/hdmi_cec.py b/homeassistant/components/hdmi_cec.py index 11a3f0f2d02..a154bdf609e 100644 --- a/homeassistant/components/hdmi_cec.py +++ b/homeassistant/components/hdmi_cec.py @@ -26,7 +26,7 @@ from homeassistant.const import (EVENT_HOMEASSISTANT_START, STATE_UNKNOWN, from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['pyCEC==0.4.12'] +REQUIREMENTS = ['pyCEC==0.4.13'] DOMAIN = 'hdmi_cec' diff --git a/requirements_all.txt b/requirements_all.txt index fb5d6477c23..e3c8e853987 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -403,7 +403,7 @@ pwaqi==1.4 py-cpuinfo==0.2.3 # homeassistant.components.hdmi_cec -pyCEC==0.4.12 +pyCEC==0.4.13 # homeassistant.components.switch.tplink pyHS100==0.2.3 From 2711c129281423761bda7e65d11f2509ed1c59e7 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 11 Feb 2017 14:48:54 +0100 Subject: [PATCH 029/196] Upgrade psutil to 5.1.3 (#5873) --- homeassistant/components/sensor/systemmonitor.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/systemmonitor.py b/homeassistant/components/sensor/systemmonitor.py index da9c9457aa0..333f572a27c 100755 --- a/homeassistant/components/sensor/systemmonitor.py +++ b/homeassistant/components/sensor/systemmonitor.py @@ -16,7 +16,7 @@ from homeassistant.helpers.entity import Entity import homeassistant.helpers.config_validation as cv import homeassistant.util.dt as dt_util -REQUIREMENTS = ['psutil==5.1.2'] +REQUIREMENTS = ['psutil==5.1.3'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index e3c8e853987..df814a8b55c 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -385,7 +385,7 @@ pmsensor==0.3 proliphix==0.4.1 # homeassistant.components.sensor.systemmonitor -psutil==5.1.2 +psutil==5.1.3 # homeassistant.components.wink pubnubsub-handler==1.0.0 From b981bfba7e11075ddc5aff9e9ef83556d0d5dbdb Mon Sep 17 00:00:00 2001 From: Andrey Date: Sat, 11 Feb 2017 20:33:41 +0200 Subject: [PATCH 030/196] Stop using entity_picture that is known to be bad. (#5856) * Stop using entity_picture that is known to be bad. * Only abandon image on 400 or 404 response * Return is_permanent_failure as a third part of response * Add debug printout * Fix lint * Fix lint --- .../components/media_player/__init__.py | 32 +++++++--- tests/components/media_player/test_demo.py | 62 ++++++++++++++++++- 2 files changed, 83 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index e3c3170f6f1..545ccd1c9d0 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -391,6 +391,7 @@ class MediaPlayerDevice(Entity): """ABC for media player devices.""" _access_token = None + _last_bad_image_url = None # pylint: disable=no-self-use # Implement these for your media player @@ -809,8 +810,7 @@ class MediaPlayerDevice(Entity): return None url = self.media_image_url - - if url is None: + if url in (None, self._last_bad_image_url): return None return ENTITY_IMAGE_URL.format( @@ -836,6 +836,14 @@ class MediaPlayerDevice(Entity): _async_fetch_image(self.hass, url), self.hass.loop ).result() + def set_last_bad_image_url(self, url): + """Save last bad image url.""" + should_update = self._last_bad_image_url != url + self._last_bad_image_url = url + if should_update: + _LOGGER.debug('%s marked as inaccessible', url) + self.schedule_update_ha_state() + @asyncio.coroutine def _async_fetch_image(hass, url): @@ -846,11 +854,10 @@ def _async_fetch_image(hass, url): cache_images = ENTITY_IMAGE_CACHE[ATTR_CACHE_IMAGES] cache_urls = ENTITY_IMAGE_CACHE[ATTR_CACHE_URLS] cache_maxsize = ENTITY_IMAGE_CACHE[ATTR_CACHE_MAXSIZE] - if url in cache_images: return cache_images[url] - content, content_type = (None, None) + content, content_type, is_permanent_failure = (None, None, False) websession = async_get_clientsession(hass) response = None try: @@ -859,6 +866,8 @@ def _async_fetch_image(hass, url): if response.status == 200: content = yield from response.read() content_type = response.headers.get(CONTENT_TYPE_HEADER) + elif response.status in (400, 404): + is_permanent_failure = True except asyncio.TimeoutError: pass @@ -868,9 +877,9 @@ def _async_fetch_image(hass, url): yield from response.release() if not content: - return (None, None) + return (None, None, is_permanent_failure) - cache_images[url] = (content, content_type) + cache_images[url] = (content, content_type, is_permanent_failure) cache_urls.append(url) while len(cache_urls) > cache_maxsize: @@ -881,7 +890,7 @@ def _async_fetch_image(hass, url): cache_urls = cache_urls[1:] - return content, content_type + return content, content_type, is_permanent_failure class MediaPlayerImageView(HomeAssistantView): @@ -907,12 +916,15 @@ class MediaPlayerImageView(HomeAssistantView): request.GET.get('token') == player.access_token) if not authenticated: - return web.Response(status=401) + return web.Response(status=401), - data, content_type = yield from _async_fetch_image( - request.app['hass'], player.media_image_url) + url = player.media_image_url + data, content_type, is_permanent_failure = \ + yield from _async_fetch_image(request.app['hass'], url) if data is None: + if is_permanent_failure: + player.set_last_bad_image_url(url) return web.Response(status=500) return web.Response(body=data, content_type=content_type) diff --git a/tests/components/media_player/test_demo.py b/tests/components/media_player/test_demo.py index 1e53245d8a5..ca53e9b66ca 100644 --- a/tests/components/media_player/test_demo.py +++ b/tests/components/media_player/test_demo.py @@ -254,7 +254,7 @@ class TestMediaPlayerWeb(unittest.TestCase): assert setup_component( self.hass, mp.DOMAIN, {'media_player': {'platform': 'demo'}}) - + mp.ENTITY_IMAGE_CACHE[mp.ATTR_CACHE_IMAGES].clear() self.hass.start() def tearDown(self): @@ -295,3 +295,63 @@ class TestMediaPlayerWeb(unittest.TestCase): state.attributes.get('entity_picture')) assert req.status_code == 200 assert req.text == fake_picture_data + + def test_media_image_proxy_500(self): + """Test the media server image proxy server .""" + class MockResponse(): + def __init__(self): + self.status = 500 + + @asyncio.coroutine + def release(self): + pass + + class MockWebsession(): + + @asyncio.coroutine + def get(self, url): + return MockResponse() + + def detach(self): + pass + + self.hass.data[DATA_CLIENTSESSION] = MockWebsession() + + assert self.hass.states.is_state(entity_id, 'playing') + state = self.hass.states.get(entity_id) + req = requests.get(HTTP_BASE_URL + + state.attributes.get('entity_picture')) + assert req.status_code == 500 + self.hass.block_till_done() + assert self.hass.states.get(entity_id).attributes.get( + 'entity_picture') is not None + + def test_media_image_proxy_404(self): + """Test the media server image proxy server .""" + class MockResponse(): + def __init__(self): + self.status = 404 + + @asyncio.coroutine + def release(self): + pass + + class MockWebsession(): + + @asyncio.coroutine + def get(self, url): + return MockResponse() + + def detach(self): + pass + + self.hass.data[DATA_CLIENTSESSION] = MockWebsession() + + assert self.hass.states.is_state(entity_id, 'playing') + state = self.hass.states.get(entity_id) + req = requests.get(HTTP_BASE_URL + + state.attributes.get('entity_picture')) + assert req.status_code == 500 + self.hass.block_till_done() + assert self.hass.states.get(entity_id).attributes.get( + 'entity_picture') is None From 88653e66c8a45658070034c878ddf2c90f16bd52 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 11 Feb 2017 20:29:37 +0100 Subject: [PATCH 031/196] Style updates (#5878) * Use consts, update quoting, and update comments * Update log message * Update docstrings * Update log messages * Update log messages * Update style * Fix typo * Add newline * Fix indent * Fix line too long --- homeassistant/components/alert.py | 38 ++--- homeassistant/components/apiai.py | 12 +- homeassistant/components/light/qwikswitch.py | 2 +- homeassistant/components/light/rflink.py | 39 +++-- homeassistant/components/notify/mailgun.py | 37 +++-- homeassistant/components/rflink.py | 144 ++++++++----------- homeassistant/components/sensor/openevse.py | 10 +- homeassistant/components/sensor/rflink.py | 30 ++-- homeassistant/components/switch/rflink.py | 15 +- 9 files changed, 142 insertions(+), 185 deletions(-) diff --git a/homeassistant/components/alert.py b/homeassistant/components/alert.py index dc0774edef2..8cee05f29cc 100644 --- a/homeassistant/components/alert.py +++ b/homeassistant/components/alert.py @@ -13,10 +13,9 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.config import load_yaml_config_file -from homeassistant.const import (CONF_ENTITY_ID, STATE_IDLE, CONF_NAME, - CONF_STATE, STATE_ON, STATE_OFF, - SERVICE_TURN_ON, SERVICE_TURN_OFF, - SERVICE_TOGGLE, ATTR_ENTITY_ID) +from homeassistant.const import ( + CONF_ENTITY_ID, STATE_IDLE, CONF_NAME, CONF_STATE, STATE_ON, STATE_OFF, + SERVICE_TURN_ON, SERVICE_TURN_OFF, SERVICE_TOGGLE, ATTR_ENTITY_ID) from homeassistant.helpers.entity import ToggleEntity from homeassistant.helpers import service, event from homeassistant.util.async import run_callback_threadsafe @@ -32,13 +31,16 @@ CONF_NOTIFIERS = 'notifiers' CONF_REPEAT = 'repeat' CONF_SKIP_FIRST = 'skip_first' +DEFAULT_CAN_ACK = True +DEFAULT_SKIP_FIRST = False + ALERT_SCHEMA = vol.Schema({ vol.Required(CONF_NAME): cv.string, vol.Required(CONF_ENTITY_ID): cv.entity_id, vol.Required(CONF_STATE, default=STATE_ON): cv.string, vol.Required(CONF_REPEAT): vol.All(cv.ensure_list, [vol.Coerce(float)]), - vol.Required(CONF_CAN_ACK, default=True): cv.boolean, - vol.Required(CONF_SKIP_FIRST, default=False): cv.boolean, + vol.Required(CONF_CAN_ACK, default=DEFAULT_CAN_ACK): cv.boolean, + vol.Required(CONF_SKIP_FIRST, default=DEFAULT_SKIP_FIRST): cv.boolean, vol.Required(CONF_NOTIFIERS): cv.ensure_list}) CONFIG_SCHEMA = vol.Schema({ @@ -99,7 +101,7 @@ def async_toggle(hass, entity_id): @asyncio.coroutine def async_setup(hass, config): - """Setup alert component.""" + """Set up the Alert component.""" alerts = config.get(DOMAIN) all_alerts = {} @@ -117,7 +119,7 @@ def async_setup(hass, config): else: yield from alert.async_turn_off() - # setup alerts + # Setup alerts for entity_id, alert in alerts.items(): entity = Alert(hass, entity_id, alert[CONF_NAME], alert[CONF_ENTITY_ID], @@ -126,13 +128,13 @@ def async_setup(hass, config): alert[CONF_CAN_ACK]) all_alerts[entity.entity_id] = entity - # read descriptions + # Read descriptions descriptions = yield from hass.loop.run_in_executor( None, load_yaml_config_file, os.path.join( os.path.dirname(__file__), 'services.yaml')) descriptions = descriptions.get(DOMAIN, {}) - # setup service calls + # Setup service calls hass.services.async_register( DOMAIN, SERVICE_TURN_OFF, async_handle_alert_service, descriptions.get(SERVICE_TURN_OFF), schema=ALERT_SERVICE_SCHEMA) @@ -171,8 +173,8 @@ class Alert(ToggleEntity): self._cancel = None self.entity_id = ENTITY_ID_FORMAT.format(entity_id) - event.async_track_state_change(hass, watched_entity_id, - self.watched_entity_change) + event.async_track_state_change( + hass, watched_entity_id, self.watched_entity_change) @property def name(self): @@ -201,7 +203,7 @@ class Alert(ToggleEntity): @asyncio.coroutine def watched_entity_change(self, entity, from_state, to_state): """Determine if the alert should start or stop.""" - _LOGGER.debug('Watched entity (%s) has changed.', entity) + _LOGGER.debug("Watched entity (%s) has changed", entity) if to_state.state == self._alert_state and not self._firing: yield from self.begin_alerting() if to_state.state != self._alert_state and self._firing: @@ -210,7 +212,7 @@ class Alert(ToggleEntity): @asyncio.coroutine def begin_alerting(self): """Begin the alert procedures.""" - _LOGGER.debug('Beginning Alert: %s', self._name) + _LOGGER.debug("Beginning Alert: %s", self._name) self._ack = False self._firing = True self._next_delay = 0 @@ -225,7 +227,7 @@ class Alert(ToggleEntity): @asyncio.coroutine def end_alerting(self): """End the alert procedures.""" - _LOGGER.debug('Ending Alert: %s', self._name) + _LOGGER.debug("Ending Alert: %s", self._name) self._cancel() self._ack = False self._firing = False @@ -247,7 +249,7 @@ class Alert(ToggleEntity): return if not self._ack: - _LOGGER.info('Alerting: %s', self._name) + _LOGGER.info("Alerting: %s", self._name) for target in self._notifiers: yield from self.hass.services.async_call( 'notify', target, {'message': self._name}) @@ -256,14 +258,14 @@ class Alert(ToggleEntity): @asyncio.coroutine def async_turn_on(self): """Async Unacknowledge alert.""" - _LOGGER.debug('Reset Alert: %s', self._name) + _LOGGER.debug("Reset Alert: %s", self._name) self._ack = False yield from self.async_update_ha_state() @asyncio.coroutine def async_turn_off(self): """Async Acknowledge alert.""" - _LOGGER.debug('Acknowledged Alert: %s', self._name) + _LOGGER.debug("Acknowledged Alert: %s", self._name) self._ack = True yield from self.async_update_ha_state() diff --git a/homeassistant/components/apiai.py b/homeassistant/components/apiai.py index 769283fa5d9..989c1a596f3 100644 --- a/homeassistant/components/apiai.py +++ b/homeassistant/components/apiai.py @@ -77,14 +77,14 @@ class ApiaiIntentsView(HomeAssistantView): """Handle API.AI.""" data = yield from request.json() - _LOGGER.debug('Received Apiai request: %s', data) + _LOGGER.debug("Received api.ai request: %s", data) req = data.get('result') if req is None: - _LOGGER.error('Received invalid data from Apiai: %s', data) - return self.json_message('Expected result value not received', - HTTP_BAD_REQUEST) + _LOGGER.error("Received invalid data from api.ai: %s", data) + return self.json_message( + "Expected result value not received", HTTP_BAD_REQUEST) action_incomplete = req['actionIncomplete'] @@ -106,7 +106,7 @@ class ApiaiIntentsView(HomeAssistantView): # return self.json(response) if intent == "": - _LOGGER.warning('Received intent with empty action') + _LOGGER.warning("Received intent with empty action") response.add_speech( "You have not defined an action in your api.ai intent.") return self.json(response) @@ -114,7 +114,7 @@ class ApiaiIntentsView(HomeAssistantView): config = self.intents.get(intent) if config is None: - _LOGGER.warning('Received unknown intent %s', intent) + _LOGGER.warning("Received unknown intent %s", intent) response.add_speech( "Intent '%s' is not yet configured within Home Assistant." % intent) diff --git a/homeassistant/components/light/qwikswitch.py b/homeassistant/components/light/qwikswitch.py index b963f14cfb4..b5b4378d526 100644 --- a/homeassistant/components/light/qwikswitch.py +++ b/homeassistant/components/light/qwikswitch.py @@ -17,7 +17,7 @@ DEPENDENCIES = ['qwikswitch'] def setup_platform(hass, config, add_devices, discovery_info=None): """Add lights from the main Qwikswitch component.""" if discovery_info is None: - _LOGGER.error("Configure Qwikswitch component") + _LOGGER.error("Configure Qwikswitch component failed") return False add_devices(qwikswitch.QSUSB['light']) diff --git a/homeassistant/components/light/rflink.py b/homeassistant/components/light/rflink.py index ab532e2368a..82b7b46b1f8 100644 --- a/homeassistant/components/light/rflink.py +++ b/homeassistant/components/light/rflink.py @@ -1,8 +1,8 @@ -"""Support for Rflink lights. - -For more details about this platform, please refer to the documentation -at https://home-assistant.io/components/light.rflink/ +""" +Support for Rflink lights. +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/light.rflink/ """ import asyncio import logging @@ -46,10 +46,9 @@ PLATFORM_SCHEMA = vol.Schema({ def entity_type_for_device_id(device_id): - """Return entity class for procotol of a given device_id. + """Return entity class for protocol of a given device_id. Async friendly. - """ entity_type_mapping = { # KlikAanKlikUit support both dimmers and on/off switches on the same @@ -64,7 +63,6 @@ def entity_class_for_type(entity_type): """Translate entity type to entity class. Async friendly. - """ entity_device_mapping = { # sends only 'dim' commands not compatible with on/off switches @@ -81,12 +79,12 @@ def entity_class_for_type(entity_type): def devices_from_config(domain_config, hass=None): - """Parse config and add rflink switch devices.""" + """Parse configuration and add Rflink light devices.""" devices = [] for device_id, config in domain_config[CONF_DEVICES].items(): - # determine which kind of entity to create + # Determine which kind of entity to create if CONF_TYPE in config: - # remove type from config to not pass it as and argument to entity + # Remove type from config to not pass it as and argument to entity # instantiation entity_type = config.pop(CONF_TYPE) else: @@ -97,19 +95,18 @@ def devices_from_config(domain_config, hass=None): is_hybrid = entity_class is HybridRflinkLight - # make user aware this can cause problems + # Make user aware this can cause problems repetitions_enabled = device_config[CONF_SIGNAL_REPETITIONS] != 1 if is_hybrid and repetitions_enabled: _LOGGER.warning( "Hybrid type for %s not compatible with signal " "repetitions. Please set 'dimmable' or 'switchable' " - "type explicity in configuration.", - device_id) + "type explicity in configuration", device_id) device = entity_class(device_id, hass, **device_config) devices.append(device) - # register entity (and aliasses) to listen to incoming rflink events + # Register entity (and aliasses) to listen to incoming rflink events for _id in [device_id] + config[CONF_ALIASSES]: hass.data[DATA_ENTITY_LOOKUP][ EVENT_KEY_COMMAND][_id].append(device) @@ -119,11 +116,10 @@ def devices_from_config(domain_config, hass=None): @asyncio.coroutine def async_setup_platform(hass, config, async_add_devices, discovery_info=None): - """Setup the Rflink platform.""" - # add devices from config + """Set up the Rflink light platform.""" yield from async_add_devices(devices_from_config(config, hass)) - # add new (unconfigured) devices to user desired group + # Add new (unconfigured) devices to user desired group if config[CONF_NEW_DEVICES_GROUP]: new_devices_group = yield from group.Group.async_create_group( hass, config[CONF_NEW_DEVICES_GROUP], [], True) @@ -142,14 +138,14 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): device = entity_class(device_id, hass, **device_config) yield from async_add_devices([device]) - # register entity to listen to incoming rflink events + # Register entity to listen to incoming Rflink events hass.data[DATA_ENTITY_LOOKUP][ EVENT_KEY_COMMAND][device_id].append(device) - # make sure the event is processed by the new entity + # Make sure the event is processed by the new entity device.handle_event(event) - # maybe add to new devices group + # Maybe add to new devices group if new_devices_group: yield from new_devices_group.async_update_tracked_entity_ids( list(new_devices_group.tracking) + [device.entity_id]) @@ -202,7 +198,6 @@ class HybridRflinkLight(SwitchableRflinkDevice, Light): command are send sequential and multiple 'on' commands to a dimmable device can cause the dimmer to switch into a pulsating brightness mode. Which results in a nice house disco :) - """ _brightness = 255 @@ -221,7 +216,7 @@ class HybridRflinkLight(SwitchableRflinkDevice, Light): # if the receiving device does not support dimlevel this # will ensure it is turned on when full brightness is set if self._brightness == 255: - yield from self._async_handle_command("turn_on") + yield from self._async_handle_command('turn_on') @property def brightness(self): diff --git a/homeassistant/components/notify/mailgun.py b/homeassistant/components/notify/mailgun.py index 4765bd6893a..4a5a46f7e96 100644 --- a/homeassistant/components/notify/mailgun.py +++ b/homeassistant/components/notify/mailgun.py @@ -9,13 +9,14 @@ import logging import voluptuous as vol from homeassistant.components.notify import ( - PLATFORM_SCHEMA, BaseNotificationService, - ATTR_TITLE, ATTR_TITLE_DEFAULT, ATTR_DATA) -from homeassistant.const import (CONF_TOKEN, CONF_DOMAIN, - CONF_RECIPIENT, CONF_SENDER) + PLATFORM_SCHEMA, BaseNotificationService, ATTR_TITLE, ATTR_TITLE_DEFAULT, + ATTR_DATA) +from homeassistant.const import ( + CONF_TOKEN, CONF_DOMAIN, CONF_RECIPIENT, CONF_SENDER) import homeassistant.helpers.config_validation as cv _LOGGER = logging.getLogger(__name__) + REQUIREMENTS = ['https://github.com/pschmitt/pymailgun/' 'archive/1.3.zip#' 'pymailgun==1.3'] @@ -23,12 +24,9 @@ REQUIREMENTS = ['https://github.com/pschmitt/pymailgun/' # Images to attach to notification ATTR_IMAGES = 'images' -# Configuration item for the domain to use. CONF_SANDBOX = 'sandbox' -# Default sender name DEFAULT_SENDER = 'hass@{domain}' -# Default sandbox value DEFAULT_SANDBOX = False # pylint: disable=no-value-for-parameter @@ -43,11 +41,10 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ def get_service(hass, config, discovery_info=None): """Get the Mailgun notification service.""" - mailgun_service = MailgunNotificationService(config.get(CONF_DOMAIN), - config.get(CONF_SANDBOX), - config.get(CONF_TOKEN), - config.get(CONF_SENDER), - config.get(CONF_RECIPIENT)) + mailgun_service = MailgunNotificationService( + config.get(CONF_DOMAIN), config.get(CONF_SANDBOX), + config.get(CONF_TOKEN), config.get(CONF_SENDER), + config.get(CONF_RECIPIENT)) if mailgun_service.connection_is_valid(): return mailgun_service else: @@ -70,7 +67,7 @@ class MailgunNotificationService(BaseNotificationService): """Initialize the connection to Mailgun.""" from pymailgun import Client self._client = Client(self._token, self._domain, self._sandbox) - _LOGGER.debug('Mailgun domain: %s', self._client.domain) + _LOGGER.debug("Mailgun domain: %s", self._client.domain) self._domain = self._client.domain if not self._sender: self._sender = DEFAULT_SENDER.format(domain=self._domain) @@ -81,7 +78,7 @@ class MailgunNotificationService(BaseNotificationService): try: self.initialize_client() except MailgunCredentialsError: - _LOGGER.exception('Invalid credentials') + _LOGGER.exception("Invalid credentials") return False except MailgunDomainError as mailgun_error: _LOGGER.exception(mailgun_error) @@ -99,11 +96,9 @@ class MailgunNotificationService(BaseNotificationService): # Initialize the client in case it was not. if self._client is None: self.initialize_client() - resp = self._client.send_mail(sender=self._sender, - to=self._recipient, - subject=subject, - text=message, - files=files) - _LOGGER.debug('Message sent: %s', resp) + resp = self._client.send_mail( + sender=self._sender, to=self._recipient, subject=subject, + text=message, files=files) + _LOGGER.debug("Message sent: %s", resp) except MailgunError as mailgun_error: - _LOGGER.exception('Failed to send message: %s', mailgun_error) + _LOGGER.exception("Failed to send message: %s", mailgun_error) diff --git a/homeassistant/components/rflink.py b/homeassistant/components/rflink.py index 9a9e6d1145f..e809430d210 100644 --- a/homeassistant/components/rflink.py +++ b/homeassistant/components/rflink.py @@ -1,48 +1,33 @@ -"""Support for Rflink components. +""" +Support for Rflink components. For more details about this component, please refer to the documentation at https://home-assistant.io/components/rflink/ - -Technical overview: - -The Rflink gateway is a USB serial device (Arduino with Rflink firwmare) -connected to a 433Mhz transceiver module. - -The the `rflink` Python module a asyncio transport/protocol is setup that -fires an callback for every (valid/supported) packet received by the Rflink -gateway. - -This component uses this callback to distribute 'rflink packet events' over -the HASS bus which can be subscribed to by entities/platform implementations. - -The platform implementions take care of creating new devices (if enabled) for -unsees incoming packet id's. - -Device Entities take care of matching to the packet id, interpreting and -performing actions based on the packet contents. Common entitiy logic is -maintained in this file. - """ import asyncio from collections import defaultdict import functools as ft import logging +import voluptuous as vol + from homeassistant.const import ( ATTR_ENTITY_ID, CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP, STATE_UNKNOWN) from homeassistant.core import CoreState, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import Entity -import voluptuous as vol REQUIREMENTS = ['rflink==0.0.28'] -DOMAIN = 'rflink' +_LOGGER = logging.getLogger(__name__) + +ATTR_EVENT = 'event' +ATTR_STATE = 'state' CONF_ALIASSES = 'aliasses' -CONF_DEVICES = 'devices' CONF_DEVICE_DEFAULTS = 'device_defaults' +CONF_DEVICES = 'devices' CONF_FIRE_EVENT = 'fire_event' CONF_IGNORE_DEVICES = 'ignore_devices' CONF_NEW_DEVICES_GROUP = 'new_devices_group' @@ -50,8 +35,18 @@ CONF_RECONNECT_INTERVAL = 'reconnect_interval' CONF_SIGNAL_REPETITIONS = 'signal_repetitions' CONF_WAIT_FOR_ACK = 'wait_for_ack' -DEFAULT_SIGNAL_REPETITIONS = 1 +DATA_DEVICE_REGISTER = 'rflink_device_register' +DATA_ENTITY_LOOKUP = 'rflink_entity_lookup' DEFAULT_RECONNECT_INTERVAL = 10 +DEFAULT_SIGNAL_REPETITIONS = 1 + +EVENT_BUTTON_PRESSED = 'button_pressed' +EVENT_KEY_COMMAND = 'command' +EVENT_KEY_ID = 'id' +EVENT_KEY_SENSOR = 'sensor' +EVENT_KEY_UNIT = 'unit' + +DOMAIN = 'rflink' DEVICE_DEFAULTS_SCHEMA = vol.Schema({ vol.Optional(CONF_FIRE_EVENT, default=False): cv.boolean, @@ -71,27 +66,11 @@ CONFIG_SCHEMA = vol.Schema({ }), }, extra=vol.ALLOW_EXTRA) -ATTR_EVENT = 'event' -ATTR_STATE = 'state' - -DATA_DEVICE_REGISTER = 'rflink_device_register' -DATA_ENTITY_LOOKUP = 'rflink_entity_lookup' - -EVENT_BUTTON_PRESSED = 'button_pressed' - -EVENT_KEY_COMMAND = 'command' -EVENT_KEY_ID = 'id' -EVENT_KEY_SENSOR = 'sensor' -EVENT_KEY_UNIT = 'unit' - -_LOGGER = logging.getLogger(__name__) - def identify_event_type(event): """Look at event to determine type of device. Async friendly. - """ if EVENT_KEY_COMMAND in event: return EVENT_KEY_COMMAND @@ -103,79 +82,78 @@ def identify_event_type(event): @asyncio.coroutine def async_setup(hass, config): - """Setup the Rflink component.""" + """Set up the Rflink component.""" from rflink.protocol import create_rflink_connection import serial - # allow entities to register themselves by device_id to be looked up when + # Allow entities to register themselves by device_id to be looked up when # new rflink events arrive to be handled hass.data[DATA_ENTITY_LOOKUP] = { EVENT_KEY_COMMAND: defaultdict(list), EVENT_KEY_SENSOR: defaultdict(list), } - # allow platform to specify function to register new unknown devices + # Allow platform to specify function to register new unknown devices hass.data[DATA_DEVICE_REGISTER] = {} @callback def event_callback(event): - """Handle incoming rflink events. + """Handle incoming Rflink events. Rflink events arrive as dictionaries of varying content depending on their type. Identify the events and distribute accordingly. - """ event_type = identify_event_type(event) _LOGGER.debug('event of type %s: %s', event_type, event) - # don't propagate non entity events (eg: version string, ack response) + # Don't propagate non entity events (eg: version string, ack response) if event_type not in hass.data[DATA_ENTITY_LOOKUP]: _LOGGER.debug('unhandled event of type: %s', event_type) return - # lookup entities who registered this device id as device id or alias + # Lookup entities who registered this device id as device id or alias event_id = event.get('id', None) entities = hass.data[DATA_ENTITY_LOOKUP][event_type][event_id] if entities: - # propagate event to every entity matching the device id + # Propagate event to every entity matching the device id for entity in entities: _LOGGER.debug('passing event to %s', entities) entity.handle_event(event) else: _LOGGER.debug('device_id not known, adding new device') - # if device is not yet known, register with platform (if loaded) + # If device is not yet known, register with platform (if loaded) if event_type in hass.data[DATA_DEVICE_REGISTER]: hass.async_run_job( hass.data[DATA_DEVICE_REGISTER][event_type], event) - # when connecting to tcp host instead of serial port (optional) + # When connecting to tcp host instead of serial port (optional) host = config[DOMAIN][CONF_HOST] - # tcp port when host configured, otherwise serial port + # TCP port when host configured, otherwise serial port port = config[DOMAIN][CONF_PORT] @callback def reconnect(exc=None): """Schedule reconnect after connection has been unexpectedly lost.""" - # reset protocol binding before starting reconnect + # Reset protocol binding before starting reconnect RflinkCommand.set_rflink_protocol(None) - # if HA is not stopping, initiate new connection + # If HA is not stopping, initiate new connection if hass.state != CoreState.stopping: _LOGGER.warning('disconnected from Rflink, reconnecting') hass.async_add_job(connect) @asyncio.coroutine def connect(): - """Setup connection and hook it into HA for reconnect/shutdown.""" - _LOGGER.info('initiating Rflink connection') + """Set up connection and hook it into HA for reconnect/shutdown.""" + _LOGGER.info("Initiating Rflink connection") - # rflink create_rflink_connection decides based on the value of host + # Rflink create_rflink_connection decides based on the value of host # (string or None) if serial or tcp mode should be used - # initiate serial/tcp connection to Rflink gateway + # Initiate serial/tcp connection to Rflink gateway connection = create_rflink_connection( port=port, host=host, @@ -191,38 +169,32 @@ def async_setup(hass, config): TimeoutError) as exc: reconnect_interval = config[DOMAIN][CONF_RECONNECT_INTERVAL] _LOGGER.exception( - 'error connecting to Rflink, reconnecting in %s', + "Error connecting to Rflink, reconnecting in %s", reconnect_interval) hass.loop.call_later(reconnect_interval, reconnect, exc) return - # bind protocol to command class to allow entities to send commands + # Bind protocol to command class to allow entities to send commands RflinkCommand.set_rflink_protocol( protocol, config[DOMAIN][CONF_WAIT_FOR_ACK]) - # handle shutdown of rflink asyncio transport + # handle shutdown of Rflink asyncio transport hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, lambda x: transport.close()) - _LOGGER.info('connected to Rflink') + _LOGGER.info("Connected to Rflink") - # make initial connection yield from connect() - - # whoo return True class RflinkDevice(Entity): - """Represents a Rflink device. + """Representation of a Rflink device. Contains the common logic for Rflink entities. - """ - # should be set by component implementation platform = None - # default state _state = STATE_UNKNOWN def __init__(self, device_id, hass, name=None, @@ -231,14 +203,14 @@ class RflinkDevice(Entity): """Initialize the device.""" self.hass = hass - # rflink specific attributes for every component type + # Rflink specific attributes for every component type self._device_id = device_id if name: self._name = name else: self._name = device_id - # generate list of device_ids to match against + # Generate list of device_ids to match against if aliasses: self._aliasses = aliasses else: @@ -249,23 +221,21 @@ class RflinkDevice(Entity): def handle_event(self, event): """Handle incoming event for device type.""" - # call platform specific event handler + # Call platform specific event handler self._handle_event(event) - # propagate changes through ha + # Propagate changes through ha self.hass.async_add_job(self.async_update_ha_state()) - # put command onto bus for user to subscribe to + # Put command onto bus for user to subscribe to if self._should_fire_event and identify_event_type( event) == EVENT_KEY_COMMAND: self.hass.bus.fire(EVENT_BUTTON_PRESSED, { ATTR_ENTITY_ID: self.entity_id, ATTR_STATE: event[EVENT_KEY_COMMAND], }) - _LOGGER.debug( - 'fired bus event for %s: %s', - self.entity_id, - event[EVENT_KEY_COMMAND]) + _LOGGER.debug("Fired bus event for %s: %s", + self.entity_id, event[EVENT_KEY_COMMAND]) def _handle_event(self, event): """Platform specific event handler.""" @@ -303,10 +273,9 @@ class RflinkCommand(RflinkDevice): The Rflink interface is managed as a class level and set during setup (and reset on reconnect). - """ - # keep repetition tasks to cancel if state is changed before repetitions + # Keep repetition tasks to cancel if state is changed before repetitions # are sent _repetition_task = None @@ -322,7 +291,7 @@ class RflinkCommand(RflinkDevice): """Do bookkeeping for command, send it to rflink and update state.""" self.cancel_queued_send_commands() - if command == "turn_on": + if command == 'turn_on': cmd = 'on' self._state = True @@ -335,8 +304,8 @@ class RflinkCommand(RflinkDevice): cmd = str(int(args[0] / 17)) self._state = True - # send initial command and queue repetitions - # this allows the entity state to be updated quickly and not having to + # Send initial command and queue repetitions. + # This allows the entity state to be updated quickly and not having to # wait for all repetitions to be sent yield from self._async_send_command(cmd, self._signal_repetitions) @@ -349,7 +318,6 @@ class RflinkCommand(RflinkDevice): For example when user changed state while repetitions are still queued for broadcast. Or when a incoming Rflink command (remote switch) changes the state. - """ # cancel any outstanding tasks from the previous state change if self._repetition_task: @@ -358,8 +326,8 @@ class RflinkCommand(RflinkDevice): @asyncio.coroutine def _async_send_command(self, cmd, repetitions): """Send a command for device to Rflink gateway.""" - _LOGGER.debug('sending command: %s to rflink device: %s', - cmd, self._device_id) + _LOGGER.debug( + "Sending command: %s to Rflink device: %s", cmd, self._device_id) if self._wait_ack: # Puts command on outgoing buffer then waits for Rflink to confirm @@ -394,9 +362,9 @@ class SwitchableRflinkDevice(RflinkCommand): @asyncio.coroutine def async_turn_on(self, **kwargs): """Turn the device on.""" - yield from self._async_handle_command("turn_on") + yield from self._async_handle_command('turn_on') @asyncio.coroutine def async_turn_off(self, **kwargs): """Turn the device off.""" - yield from self._async_handle_command("turn_off") + yield from self._async_handle_command('turn_off') diff --git a/homeassistant/components/sensor/openevse.py b/homeassistant/components/sensor/openevse.py index 4d1fad49fb0..d3ac52f58bd 100644 --- a/homeassistant/components/sensor/openevse.py +++ b/homeassistant/components/sensor/openevse.py @@ -37,7 +37,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ def setup_platform(hass, config, add_devices, discovery_info=None): - """Setup the OpenEVSE sensor.""" + """Set up the OpenEVSE sensor.""" import openevsewifi host = config.get(CONF_HOST) @@ -85,7 +85,7 @@ class OpenEVSESensor(Entity): if self.type == 'status': self._state = self.charger.getStatus() elif self.type == 'charge_time': - self._state = self.charger.getChargeTimeElapsed()/60 + self._state = self.charger.getChargeTimeElapsed() / 60 elif self.type == 'ambient_temp': self._state = self.charger.getAmbientTemperature() elif self.type == 'ir_temp': @@ -93,10 +93,10 @@ class OpenEVSESensor(Entity): elif self.type == 'rtc_temp': self._state = self.charger.getRTCTemperature() elif self.type == 'usage_session': - self._state = float(self.charger.getUsageSession())/1000 + self._state = float(self.charger.getUsageSession()) / 1000 elif self.type == 'usage_total': - self._state = float(self.charger.getUsageTotal())/1000 + self._state = float(self.charger.getUsageTotal()) / 1000 else: self._state = 'Unknown' except (RequestException, ValueError, KeyError): - _LOGGER.warning('Could not update status for %s', self.name) + _LOGGER.warning("Could not update status for %s", self.name) diff --git a/homeassistant/components/sensor/rflink.py b/homeassistant/components/sensor/rflink.py index 9f6496149b3..eec21e161c1 100644 --- a/homeassistant/components/sensor/rflink.py +++ b/homeassistant/components/sensor/rflink.py @@ -1,8 +1,8 @@ -"""Support for Rflink sensors. - -For more details about this platform, please refer to the documentation -at https://home-assistant.io/components/light.rflink/ +""" +Support for Rflink sensors. +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/light.rflink/ """ import asyncio from functools import partial @@ -48,7 +48,6 @@ def lookup_unit_for_sensor_type(sensor_type): """Get unit for sensor type. Async friendly. - """ from rflink.parser import UNITS, PACKET_FIELDS field_abbrev = {v: k for k, v in PACKET_FIELDS.items()} @@ -57,7 +56,7 @@ def lookup_unit_for_sensor_type(sensor_type): def devices_from_config(domain_config, hass=None): - """Parse config and add rflink sensor devices.""" + """Parse configuration and add Rflink sensor devices.""" devices = [] for device_id, config in domain_config[CONF_DEVICES].items(): if not config[ATTR_UNIT_OF_MEASUREMENT]: @@ -66,7 +65,7 @@ def devices_from_config(domain_config, hass=None): device = RflinkSensor(device_id, hass, **config) devices.append(device) - # register entity to listen to incoming rflink events + # Register entity to listen to incoming rflink events hass.data[DATA_ENTITY_LOOKUP][ EVENT_KEY_SENSOR][device_id].append(device) return devices @@ -74,11 +73,10 @@ def devices_from_config(domain_config, hass=None): @asyncio.coroutine def async_setup_platform(hass, config, async_add_devices, discovery_info=None): - """Setup the Rflink platform.""" - # add devices from config + """Set up the Rflink platform.""" yield from async_add_devices(devices_from_config(config, hass)) - # add new (unconfigured) devices to user desired group + # Add new (unconfigured) devices to user desired group if config[CONF_NEW_DEVICES_GROUP]: new_devices_group = yield from group.Group.async_create_group( hass, config[CONF_NEW_DEVICES_GROUP], [], True) @@ -92,17 +90,17 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): rflinksensor = partial(RflinkSensor, device_id, hass) device = rflinksensor(event[EVENT_KEY_SENSOR], event[EVENT_KEY_UNIT]) - # add device entity + # Add device entity yield from async_add_devices([device]) - # register entity to listen to incoming rflink events + # Register entity to listen to incoming rflink events hass.data[DATA_ENTITY_LOOKUP][ EVENT_KEY_SENSOR][device_id].append(device) - # make sure the event is processed by the new entity + # Make sure the event is processed by the new entity device.handle_event(event) - # maybe add to new devices group + # Maybe add to new devices group if new_devices_group: yield from new_devices_group.async_update_tracked_entity_ids( list(new_devices_group.tracking) + [device.entity_id]) @@ -113,8 +111,8 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): class RflinkSensor(RflinkDevice): """Representation of a Rflink sensor.""" - def __init__(self, device_id, hass, sensor_type, - unit_of_measurement, **kwargs): + def __init__(self, device_id, hass, sensor_type, unit_of_measurement, + **kwargs): """Handle sensor specific args and super init.""" self._sensor_type = sensor_type self._unit_of_measurement = unit_of_measurement diff --git a/homeassistant/components/switch/rflink.py b/homeassistant/components/switch/rflink.py index aa61987c3dd..737554154c2 100644 --- a/homeassistant/components/switch/rflink.py +++ b/homeassistant/components/switch/rflink.py @@ -1,8 +1,8 @@ -"""Support for Rflink switches. - -For more details about this platform, please refer to the documentation -at https://home-assistant.io/components/switch.rflink/ +""" +Support for Rflink switches. +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/switch.rflink/ """ import asyncio import logging @@ -18,7 +18,6 @@ DEPENDENCIES = ['rflink'] _LOGGER = logging.getLogger(__name__) - PLATFORM_SCHEMA = vol.Schema({ vol.Required(CONF_PLATFORM): DOMAIN, vol.Optional(CONF_DEVICE_DEFAULTS, default=DEVICE_DEFAULTS_SCHEMA({})): @@ -36,14 +35,14 @@ PLATFORM_SCHEMA = vol.Schema({ def devices_from_config(domain_config, hass=None): - """Parse config and add rflink switch devices.""" + """Parse configuration and add Rflink switch devices.""" devices = [] for device_id, config in domain_config[CONF_DEVICES].items(): device_config = dict(domain_config[CONF_DEVICE_DEFAULTS], **config) device = RflinkSwitch(device_id, hass, **device_config) devices.append(device) - # register entity (and aliasses) to listen to incoming rflink events + # Register entity (and aliasses) to listen to incoming rflink events for _id in config[CONF_ALIASSES] + [device_id]: hass.data[DATA_ENTITY_LOOKUP][ EVENT_KEY_COMMAND][_id].append(device) @@ -52,7 +51,7 @@ def devices_from_config(domain_config, hass=None): @asyncio.coroutine def async_setup_platform(hass, config, async_add_devices, discovery_info=None): - """Setup the Rflink platform.""" + """Set up the Rflink platform.""" yield from async_add_devices(devices_from_config(config, hass)) From 5ad934907adb1c4f0faa6fd222af55dd6debaa26 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 11 Feb 2017 13:10:28 -0800 Subject: [PATCH 032/196] Revert "Stop using entity_picture that is known to be bad." (#5882) --- .../components/media_player/__init__.py | 32 +++------- tests/components/media_player/test_demo.py | 62 +------------------ 2 files changed, 11 insertions(+), 83 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index 545ccd1c9d0..e3c3170f6f1 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -391,7 +391,6 @@ class MediaPlayerDevice(Entity): """ABC for media player devices.""" _access_token = None - _last_bad_image_url = None # pylint: disable=no-self-use # Implement these for your media player @@ -810,7 +809,8 @@ class MediaPlayerDevice(Entity): return None url = self.media_image_url - if url in (None, self._last_bad_image_url): + + if url is None: return None return ENTITY_IMAGE_URL.format( @@ -836,14 +836,6 @@ class MediaPlayerDevice(Entity): _async_fetch_image(self.hass, url), self.hass.loop ).result() - def set_last_bad_image_url(self, url): - """Save last bad image url.""" - should_update = self._last_bad_image_url != url - self._last_bad_image_url = url - if should_update: - _LOGGER.debug('%s marked as inaccessible', url) - self.schedule_update_ha_state() - @asyncio.coroutine def _async_fetch_image(hass, url): @@ -854,10 +846,11 @@ def _async_fetch_image(hass, url): cache_images = ENTITY_IMAGE_CACHE[ATTR_CACHE_IMAGES] cache_urls = ENTITY_IMAGE_CACHE[ATTR_CACHE_URLS] cache_maxsize = ENTITY_IMAGE_CACHE[ATTR_CACHE_MAXSIZE] + if url in cache_images: return cache_images[url] - content, content_type, is_permanent_failure = (None, None, False) + content, content_type = (None, None) websession = async_get_clientsession(hass) response = None try: @@ -866,8 +859,6 @@ def _async_fetch_image(hass, url): if response.status == 200: content = yield from response.read() content_type = response.headers.get(CONTENT_TYPE_HEADER) - elif response.status in (400, 404): - is_permanent_failure = True except asyncio.TimeoutError: pass @@ -877,9 +868,9 @@ def _async_fetch_image(hass, url): yield from response.release() if not content: - return (None, None, is_permanent_failure) + return (None, None) - cache_images[url] = (content, content_type, is_permanent_failure) + cache_images[url] = (content, content_type) cache_urls.append(url) while len(cache_urls) > cache_maxsize: @@ -890,7 +881,7 @@ def _async_fetch_image(hass, url): cache_urls = cache_urls[1:] - return content, content_type, is_permanent_failure + return content, content_type class MediaPlayerImageView(HomeAssistantView): @@ -916,15 +907,12 @@ class MediaPlayerImageView(HomeAssistantView): request.GET.get('token') == player.access_token) if not authenticated: - return web.Response(status=401), + return web.Response(status=401) - url = player.media_image_url - data, content_type, is_permanent_failure = \ - yield from _async_fetch_image(request.app['hass'], url) + data, content_type = yield from _async_fetch_image( + request.app['hass'], player.media_image_url) if data is None: - if is_permanent_failure: - player.set_last_bad_image_url(url) return web.Response(status=500) return web.Response(body=data, content_type=content_type) diff --git a/tests/components/media_player/test_demo.py b/tests/components/media_player/test_demo.py index ca53e9b66ca..1e53245d8a5 100644 --- a/tests/components/media_player/test_demo.py +++ b/tests/components/media_player/test_demo.py @@ -254,7 +254,7 @@ class TestMediaPlayerWeb(unittest.TestCase): assert setup_component( self.hass, mp.DOMAIN, {'media_player': {'platform': 'demo'}}) - mp.ENTITY_IMAGE_CACHE[mp.ATTR_CACHE_IMAGES].clear() + self.hass.start() def tearDown(self): @@ -295,63 +295,3 @@ class TestMediaPlayerWeb(unittest.TestCase): state.attributes.get('entity_picture')) assert req.status_code == 200 assert req.text == fake_picture_data - - def test_media_image_proxy_500(self): - """Test the media server image proxy server .""" - class MockResponse(): - def __init__(self): - self.status = 500 - - @asyncio.coroutine - def release(self): - pass - - class MockWebsession(): - - @asyncio.coroutine - def get(self, url): - return MockResponse() - - def detach(self): - pass - - self.hass.data[DATA_CLIENTSESSION] = MockWebsession() - - assert self.hass.states.is_state(entity_id, 'playing') - state = self.hass.states.get(entity_id) - req = requests.get(HTTP_BASE_URL + - state.attributes.get('entity_picture')) - assert req.status_code == 500 - self.hass.block_till_done() - assert self.hass.states.get(entity_id).attributes.get( - 'entity_picture') is not None - - def test_media_image_proxy_404(self): - """Test the media server image proxy server .""" - class MockResponse(): - def __init__(self): - self.status = 404 - - @asyncio.coroutine - def release(self): - pass - - class MockWebsession(): - - @asyncio.coroutine - def get(self, url): - return MockResponse() - - def detach(self): - pass - - self.hass.data[DATA_CLIENTSESSION] = MockWebsession() - - assert self.hass.states.is_state(entity_id, 'playing') - state = self.hass.states.get(entity_id) - req = requests.get(HTTP_BASE_URL + - state.attributes.get('entity_picture')) - assert req.status_code == 500 - self.hass.block_till_done() - assert self.hass.states.get(entity_id).attributes.get( - 'entity_picture') is None From abaf9e53c24d3c36abc0e6789ae76279f5ce8078 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Sat, 11 Feb 2017 23:27:06 +0200 Subject: [PATCH 033/196] Component set add unsing OR (#5880) --- tests/components/test_logbook.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/test_logbook.py b/tests/components/test_logbook.py index 1e755a5155b..b6583ba3536 100644 --- a/tests/components/test_logbook.py +++ b/tests/components/test_logbook.py @@ -25,7 +25,7 @@ class TestComponentLogbook(unittest.TestCase): """Setup things to be run when tests are started.""" self.hass = get_test_home_assistant() mock_http_component(self.hass) - self.hass.config.components &= set(['frontend', 'recorder', 'api']) + self.hass.config.components |= set(['frontend', 'recorder', 'api']) with patch('homeassistant.components.logbook.' 'register_built_in_panel'): assert setup_component(self.hass, logbook.DOMAIN, From 2b2c1562a5be05ffa5bdc9108ba233d94e73e7fa Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sat, 11 Feb 2017 14:39:35 -0800 Subject: [PATCH 034/196] Version bump to 0.39.0.dev0 --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index be33e12798f..afc4c029e40 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -1,7 +1,7 @@ # coding: utf-8 """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 -MINOR_VERSION = 38 +MINOR_VERSION = 39 PATCH_VERSION = '0.dev0' __short_version__ = '{}.{}'.format(MAJOR_VERSION, MINOR_VERSION) __version__ = '{}.{}'.format(__short_version__, PATCH_VERSION) From 44311193ef4d9b746e0b53ad27c357ea24bf1016 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 11 Feb 2017 17:29:05 -0800 Subject: [PATCH 035/196] Add config component and hassbian example panel (#5868) * Add hassbian panel * Rename to generic config panel * Allow loading hassbian as test * Add tests * Update frontend * Lint * Lint --- homeassistant/components/config/__init__.py | 28 +++++ homeassistant/components/config/hassbian.py | 118 ++++++++++++++++++ homeassistant/components/frontend/__init__.py | 15 ++- homeassistant/components/frontend/version.py | 1 + .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 22 ++++ .../www_static/panels/ha-panel-config.html.gz | Bin 0 -> 3470 bytes tests/common.py | 7 +- tests/components/config/__init__.py | 1 + tests/components/config/test_hassbian.py | 70 +++++++++++ tests/components/config/test_init.py | 18 +++ 11 files changed, 273 insertions(+), 9 deletions(-) create mode 100644 homeassistant/components/config/__init__.py create mode 100644 homeassistant/components/config/hassbian.py create mode 100644 homeassistant/components/frontend/www_static/panels/ha-panel-config.html create mode 100644 homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz create mode 100644 tests/components/config/__init__.py create mode 100644 tests/components/config/test_hassbian.py create mode 100644 tests/components/config/test_init.py diff --git a/homeassistant/components/config/__init__.py b/homeassistant/components/config/__init__.py new file mode 100644 index 00000000000..dc8946776f5 --- /dev/null +++ b/homeassistant/components/config/__init__.py @@ -0,0 +1,28 @@ +"""Component to interact with Hassbian tools.""" +import asyncio + +from homeassistant.bootstrap import async_prepare_setup_platform +from homeassistant.components.frontend import register_built_in_panel + +DOMAIN = 'config' +DEPENDENCIES = ['http'] + + +@asyncio.coroutine +def async_setup(hass, config): + """Setup the hassbian component.""" + register_built_in_panel(hass, 'config', 'Configuration', 'mdi:settings') + + for panel_name in ('hassbian',): + panel = yield from async_prepare_setup_platform(hass, config, DOMAIN, + panel_name) + + if not panel: + continue + + success = yield from panel.async_setup(hass) + + if success: + hass.config.components.add('{}.{}'.format(DOMAIN, panel_name)) + + return True diff --git a/homeassistant/components/config/hassbian.py b/homeassistant/components/config/hassbian.py new file mode 100644 index 00000000000..c90583c5278 --- /dev/null +++ b/homeassistant/components/config/hassbian.py @@ -0,0 +1,118 @@ +"""Component to interact with Hassbian tools.""" +import asyncio +import json +import os + +from homeassistant.components.http import HomeAssistantView + + +_TEST_OUTPUT = """ +{ + "suites": [ + { + "openzwave": [ + { + "state": "installed" + }, + { + "description": "This is the description of the Open Z-Wave suite." + } + ] + }, + { + "openelec": [ + { + "state": "not_installed" + }, + { + "description": + "OpenElec is amazing. It allows you to control the TV." + } + ] + }, + { + "mosquitto": [ + { + "state": "installing" + }, + { + "description": + "Mosquitto is an MQTT broker." + } + ] + } + ] +} +""" + + +@asyncio.coroutine +def async_setup(hass): + """Setup the hassbian config.""" + # Test if is hassbian + test_mode = 'FORCE_HASSBIAN' in os.environ + is_hassbian = test_mode + + if not is_hassbian: + return False + + hass.http.register_view(HassbianSuitesView(test_mode)) + hass.http.register_view(HassbianSuiteInstallView(test_mode)) + + return True + + +@asyncio.coroutine +def hassbian_status(hass, test_mode=False): + """Query for the Hassbian status.""" + # fetch real output when not in test mode + if test_mode: + return json.loads(_TEST_OUTPUT) + + raise Exception('Real mode not implemented yet.') + + +class HassbianSuitesView(HomeAssistantView): + """Hassbian packages endpoint.""" + + url = '/api/config/hassbian/suites' + name = 'api:config:hassbian:suites' + + def __init__(self, test_mode): + """Initialize suites view.""" + self._test_mode = test_mode + + @asyncio.coroutine + def get(self, request): + """Request suite status.""" + inp = yield from hassbian_status(request.app['hass'], self._test_mode) + + # Flatten the structure a bit + suites = {} + + for suite in inp['suites']: + key = next(iter(suite)) + info = suites[key] = {} + + for item in suite[key]: + item_key = next(iter(item)) + info[item_key] = item[item_key] + + return self.json(suites) + + +class HassbianSuiteInstallView(HomeAssistantView): + """Hassbian packages endpoint.""" + + url = '/api/config/hassbian/suites/{suite}/install' + name = 'api:config:hassbian:suite' + + def __init__(self, test_mode): + """Initialize suite view.""" + self._test_mode = test_mode + + @asyncio.coroutine + def post(self, request, suite): + """Request suite status.""" + # do real install if not in test mode + return self.json({"status": "ok"}) diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py index 4d9fb8624d8..1b4602d35b4 100644 --- a/homeassistant/components/frontend/__init__.py +++ b/homeassistant/components/frontend/__init__.py @@ -19,7 +19,7 @@ DOMAIN = 'frontend' DEPENDENCIES = ['api', 'websocket_api'] URL_PANEL_COMPONENT = '/frontend/panels/{}.html' URL_PANEL_COMPONENT_FP = '/frontend/panels/{}-{}.html' -STATIC_PATH = os.path.join(os.path.dirname(__file__), 'www_static') +STATIC_PATH = os.path.join(os.path.dirname(__file__), 'www_static/') MANIFEST_JSON = { "background_color": "#FFFFFF", "description": "Open-source home automation platform running on Python 3.", @@ -51,17 +51,22 @@ _LOGGER = logging.getLogger(__name__) def register_built_in_panel(hass, component_name, sidebar_title=None, sidebar_icon=None, url_path=None, config=None): """Register a built-in panel.""" - path = 'panels/ha-panel-{}.html'.format(component_name) + nondev_path = 'panels/ha-panel-{}.html'.format(component_name) if hass.http.development: url = ('/static/home-assistant-polymer/panels/' '{0}/ha-panel-{0}.html'.format(component_name)) + path = os.path.join( + STATIC_PATH, 'home-assistant-polymer/panels/', + '{0}/ha-panel-{0}.html'.format(component_name)) else: url = None # use default url generate mechanism + path = os.path.join(STATIC_PATH, nondev_path) - register_panel(hass, component_name, os.path.join(STATIC_PATH, path), - FINGERPRINTS[path], sidebar_title, sidebar_icon, url_path, - url, config) + # Fingerprint doesn't exist when adding new built-in panel + register_panel(hass, component_name, path, + FINGERPRINTS.get(nondev_path, 'dev'), sidebar_title, + sidebar_icon, url_path, url, config) def register_panel(hass, component_name, path, md5=None, sidebar_title=None, diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index a186e440f50..1832564b98f 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -5,6 +5,7 @@ FINGERPRINTS = { "frontend.html": "cfd75c944ab14912cfbb4fdd9027579c", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", + "panels/ha-panel-config.html": "fb50a25da4b4cfbb0d9a74bb22a31db9", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", "panels/ha-panel-dev-info.html": "0469024d94d6270a8680df2be44ba916", "panels/ha-panel-dev-service.html": "9f749635e518a4ca7991975bdefdb10a", diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 518d0b38da4..ba48e40a2bb 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 518d0b38da47fa5923c84a963d11e9ed59424c2f +Subproject commit ba48e40a2bba273b1cdcdf637ecbef4f4db14284 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html new file mode 100644 index 00000000000..aa49194bfbc --- /dev/null +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -0,0 +1,22 @@ +

\ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz new file mode 100644 index 0000000000000000000000000000000000000000..0680d628cc006a71aa2214448149a94c7f0013d5 GIT binary patch literal 3470 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 Date: Sat, 11 Feb 2017 19:25:20 -0800 Subject: [PATCH 036/196] Upgrade AppleTV dep to 0.1.4 --- homeassistant/components/media_player/apple_tv.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/apple_tv.py b/homeassistant/components/media_player/apple_tv.py index 2f47b1ba0a8..982ca6af894 100644 --- a/homeassistant/components/media_player/apple_tv.py +++ b/homeassistant/components/media_player/apple_tv.py @@ -23,7 +23,7 @@ import homeassistant.helpers.config_validation as cv import homeassistant.util.dt as dt_util -REQUIREMENTS = ['pyatv==0.1.3'] +REQUIREMENTS = ['pyatv==0.1.4'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index df814a8b55c..777ccc2d0c4 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -418,7 +418,7 @@ pyasn1-modules==0.0.8 pyasn1==0.2.2 # homeassistant.components.media_player.apple_tv -pyatv==0.1.3 +pyatv==0.1.4 # homeassistant.components.device_tracker.bbox # homeassistant.components.sensor.bbox From 533d28ce4062089da122a58b86cca37063ea6aac Mon Sep 17 00:00:00 2001 From: Philipp Schmitt Date: Sun, 12 Feb 2017 11:22:55 +0100 Subject: [PATCH 037/196] [lock.nuki] Fix Nuki lock for Python 3.4 and 3.5 (#5899) --- homeassistant/components/lock/nuki.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/lock/nuki.py b/homeassistant/components/lock/nuki.py index b167c00b9bc..33058c86239 100644 --- a/homeassistant/components/lock/nuki.py +++ b/homeassistant/components/lock/nuki.py @@ -14,7 +14,7 @@ from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['pynuki==1.2'] +REQUIREMENTS = ['pynuki==1.2.1'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 777ccc2d0c4..cff59176145 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -487,7 +487,7 @@ pynetgear==0.3.3 pynetio==0.1.6 # homeassistant.components.lock.nuki -pynuki==1.2 +pynuki==1.2.1 # homeassistant.components.sensor.nut pynut2==2.1.2 From 4af9d0f9eac791113821f63d8171cf2a04585b6c Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Sun, 12 Feb 2017 12:49:02 -0500 Subject: [PATCH 038/196] bump myusps version (#5911) --- homeassistant/components/sensor/usps.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/usps.py b/homeassistant/components/sensor/usps.py index 680b4e4142d..5c2bb84daa1 100644 --- a/homeassistant/components/sensor/usps.py +++ b/homeassistant/components/sensor/usps.py @@ -19,7 +19,7 @@ from homeassistant.util import Throttle from homeassistant.util.dt import now, parse_datetime import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['myusps==1.0.2'] +REQUIREMENTS = ['myusps==1.0.3'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index cff59176145..09de26131f3 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -332,7 +332,7 @@ miflora==0.1.15 mutagen==1.36.2 # homeassistant.components.sensor.usps -myusps==1.0.2 +myusps==1.0.3 # homeassistant.components.discovery netdisco==0.8.2 From f8be731891b45f25adc112cfb2e3e73ed6d26d79 Mon Sep 17 00:00:00 2001 From: Pascal Bach Date: Sun, 12 Feb 2017 18:55:17 +0100 Subject: [PATCH 039/196] [google] Update google component dependencies (#5904) --- homeassistant/components/google.py | 4 ++-- requirements_all.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/google.py b/homeassistant/components/google.py index 3dbc2c1a1ec..c23113a962e 100644 --- a/homeassistant/components/google.py +++ b/homeassistant/components/google.py @@ -25,8 +25,8 @@ from homeassistant.helpers.event import track_time_change from homeassistant.util import convert, dt REQUIREMENTS = [ - 'google-api-python-client==1.5.5', - 'oauth2client==3.0.0', + 'google-api-python-client==1.6.2', + 'oauth2client==4.0.0', ] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 09de26131f3..a3ebe67dcb0 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -171,7 +171,7 @@ gTTS-token==1.1.1 gntp==1.0.3 # homeassistant.components.google -google-api-python-client==1.5.5 +google-api-python-client==1.6.2 # homeassistant.components.sensor.google_travel_time googlemaps==2.4.4 @@ -341,7 +341,7 @@ netdisco==0.8.2 neurio==0.3.1 # homeassistant.components.google -oauth2client==3.0.0 +oauth2client==4.0.0 # homeassistant.components.sensor.openevse openevsewifi==0.4 From 2103bfc8244f5de113060500f167315e6e89644d Mon Sep 17 00:00:00 2001 From: Jose Juan Montes Date: Sun, 12 Feb 2017 20:03:53 +0100 Subject: [PATCH 040/196] Fixed proximity zone incorrectly using name instead of zone setting. (#5862) * Fixed proximity zone incorrectly using name instead of zone setting. * Fixed proximity tests to suit change. --- homeassistant/components/proximity.py | 2 +- tests/components/test_proximity.py | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/proximity.py b/homeassistant/components/proximity.py index 73e72149b37..18548dc203b 100644 --- a/homeassistant/components/proximity.py +++ b/homeassistant/components/proximity.py @@ -63,7 +63,7 @@ def setup_proximity_component(hass, name, config): proximity_zone = name unit_of_measurement = config.get( CONF_UNIT_OF_MEASUREMENT, hass.config.units.length_unit) - zone_id = 'zone.{}'.format(proximity_zone) + zone_id = 'zone.{}'.format(config.get(CONF_ZONE)) proximity = Proximity(hass, proximity_zone, DEFAULT_DIST_TO_ZONE, DEFAULT_DIR_OF_TRAVEL, DEFAULT_NEAREST, diff --git a/tests/components/test_proximity.py b/tests/components/test_proximity.py index 1a1033ab31d..532a5e10ab4 100644 --- a/tests/components/test_proximity.py +++ b/tests/components/test_proximity.py @@ -394,6 +394,7 @@ class TestProximity(unittest.TestCase): 'device_tracker.test2' ], 'tolerance': '1', + 'zone': 'home' } } }) @@ -445,7 +446,9 @@ class TestProximity(unittest.TestCase): 'devices': [ 'device_tracker.test1', 'device_tracker.test2' - ] + ], + 'zone': 'home' + } } }) @@ -497,7 +500,8 @@ class TestProximity(unittest.TestCase): 'devices': [ 'device_tracker.test1', 'device_tracker.test2' - ] + ], + 'zone': 'home' } } }) @@ -538,7 +542,8 @@ class TestProximity(unittest.TestCase): 'devices': [ 'device_tracker.test1', 'device_tracker.test2' - ] + ], + 'zone': 'home' } } }) @@ -601,7 +606,8 @@ class TestProximity(unittest.TestCase): 'devices': [ 'device_tracker.test1' ], - 'tolerance': 1000 + 'tolerance': 1000, + 'zone': 'home' } } }) @@ -654,7 +660,8 @@ class TestProximity(unittest.TestCase): 'devices': [ 'device_tracker.test1', 'device_tracker.test2' - ] + ], + 'zone': 'home' } } }) From e4bbe37112488368e98f5475118cfafceabc47e9 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Sun, 12 Feb 2017 14:08:06 -0500 Subject: [PATCH 041/196] Add device_class support to cover component (#5881) --- homeassistant/components/cover/__init__.py | 5 +++ homeassistant/components/cover/demo.py | 37 ++++++++++++++++------ homeassistant/components/cover/garadget.py | 5 +++ homeassistant/components/cover/zwave.py | 5 +++ 4 files changed, 42 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/cover/__init__.py b/homeassistant/components/cover/__init__.py index 1dc6101f1e9..d27a1665635 100644 --- a/homeassistant/components/cover/__init__.py +++ b/homeassistant/components/cover/__init__.py @@ -33,6 +33,11 @@ ENTITY_ID_ALL_COVERS = group.ENTITY_ID_FORMAT.format('all_covers') ENTITY_ID_FORMAT = DOMAIN + '.{}' +DEVICE_CLASSES = [ + 'window', # Window control + 'garage', # Garage door control +] + _LOGGER = logging.getLogger(__name__) ATTR_CURRENT_POSITION = 'current_position' diff --git a/homeassistant/components/cover/demo.py b/homeassistant/components/cover/demo.py index 070c37a0e3c..484ff94f4f5 100644 --- a/homeassistant/components/cover/demo.py +++ b/homeassistant/components/cover/demo.py @@ -14,6 +14,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): DemoCover(hass, 'Kitchen Window'), DemoCover(hass, 'Hall Window', 10), DemoCover(hass, 'Living Room Window', 70, 50), + DemoCover(hass, 'Garage Door', device_class='garage'), ]) @@ -21,11 +22,13 @@ class DemoCover(CoverDevice): """Representation of a demo cover.""" # pylint: disable=no-self-use - def __init__(self, hass, name, position=None, tilt_position=None): + def __init__(self, hass, name, position=None, tilt_position=None, + device_class=None): """Initialize the cover.""" self.hass = hass self._name = name self._position = position + self._device_class = device_class self._set_position = None self._set_tilt_position = None self._tilt_position = tilt_position @@ -33,6 +36,10 @@ class DemoCover(CoverDevice): self._closing_tilt = True self._unsub_listener_cover = None self._unsub_listener_cover_tilt = None + if position is None: + self._closed = True + else: + self._closed = self.current_cover_position <= 0 @property def name(self): @@ -57,17 +64,20 @@ class DemoCover(CoverDevice): @property def is_closed(self): """Return if the cover is closed.""" - if self._position is not None: - if self.current_cover_position > 0: - return False - else: - return True - else: - return None + return self._closed + + @property + def device_class(self): + """Return the class of this device, from component DEVICE_CLASSES.""" + return self._device_class def close_cover(self, **kwargs): """Close the cover.""" - if self._position in (0, None): + if self._position == 0: + return + elif self._position is None: + self._closed = True + self.schedule_update_ha_state() return self._listen_cover() @@ -83,7 +93,11 @@ class DemoCover(CoverDevice): def open_cover(self, **kwargs): """Open the cover.""" - if self._position in (100, None): + if self._position == 100: + return + elif self._position is None: + self._closed = False + self.schedule_update_ha_state() return self._listen_cover() @@ -149,6 +163,9 @@ class DemoCover(CoverDevice): if self._position in (100, 0, self._set_position): self.stop_cover() + + self._closed = self.current_cover_position <= 0 + self.schedule_update_ha_state() def _listen_cover_tilt(self): diff --git a/homeassistant/components/cover/garadget.py b/homeassistant/components/cover/garadget.py index 1847e58c4a5..04df954aac6 100644 --- a/homeassistant/components/cover/garadget.py +++ b/homeassistant/components/cover/garadget.py @@ -168,6 +168,11 @@ class GaradgetCover(CoverDevice): else: return self._state == STATE_CLOSED + @property + def device_class(self): + """Return the class of this device, from component DEVICE_CLASSES.""" + return 'garage' + def get_token(self): """Get new token for usage during this session.""" args = { diff --git a/homeassistant/components/cover/zwave.py b/homeassistant/components/cover/zwave.py index 0e40b46a3f9..2d61af4d00e 100644 --- a/homeassistant/components/cover/zwave.py +++ b/homeassistant/components/cover/zwave.py @@ -140,3 +140,8 @@ class ZwaveGarageDoor(zwave.ZWaveDeviceEntity, CoverDevice): def open_cover(self): """Open the garage door.""" self._value.data = True + + @property + def device_class(self): + """Return the class of this device, from component DEVICE_CLASSES.""" + return 'garage' From 9c400de64bfe05c7886681671ce4d707839511db Mon Sep 17 00:00:00 2001 From: Greg Dowling Date: Sun, 12 Feb 2017 19:14:23 +0000 Subject: [PATCH 042/196] Bump pywemo - fix for latest bridge firmware. (#5921) --- homeassistant/components/wemo.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/wemo.py b/homeassistant/components/wemo.py index 3fea17ccee5..caa9d777571 100644 --- a/homeassistant/components/wemo.py +++ b/homeassistant/components/wemo.py @@ -14,7 +14,7 @@ from homeassistant.helpers import config_validation as cv from homeassistant.const import EVENT_HOMEASSISTANT_STOP -REQUIREMENTS = ['pywemo==0.4.11'] +REQUIREMENTS = ['pywemo==0.4.12'] DOMAIN = 'wemo' diff --git a/requirements_all.txt b/requirements_all.txt index a3ebe67dcb0..8ccd9097cb4 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -575,7 +575,7 @@ pyvera==0.2.23 pywebpush==0.6.1 # homeassistant.components.wemo -pywemo==0.4.11 +pywemo==0.4.12 # homeassistant.components.zabbix pyzabbix==0.7.4 From b2fae212cb27598de03a00f42f3321e9fc9deca5 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 12 Feb 2017 20:16:06 +0100 Subject: [PATCH 043/196] Fix name (#5912) --- homeassistant/components/mqtt/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index e880be177e8..79c154ef223 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -237,7 +237,7 @@ def _setup_discovery(hass, config): _LOGGER.error("Unable to load MQTT discovery") return None - success = discovery.start(hass, conf[CONF_DISCOVERY_PREFIX], config) + success = discovery.async_start(hass, conf[CONF_DISCOVERY_PREFIX], config) return success From dc6a28a8b257e5ebb8571e21b5790abe9e49574d Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 12 Feb 2017 21:19:15 +0200 Subject: [PATCH 044/196] Make hdmi_cec work with the new customize (#5916) --- homeassistant/components/hdmi_cec.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/hdmi_cec.py b/homeassistant/components/hdmi_cec.py index a154bdf609e..5ed3b688672 100644 --- a/homeassistant/components/hdmi_cec.py +++ b/homeassistant/components/hdmi_cec.py @@ -21,10 +21,11 @@ from homeassistant.config import load_yaml_config_file from homeassistant.const import (EVENT_HOMEASSISTANT_START, STATE_UNKNOWN, EVENT_HOMEASSISTANT_STOP, STATE_ON, STATE_OFF, CONF_DEVICES, CONF_PLATFORM, - CONF_CUSTOMIZE, STATE_PLAYING, STATE_IDLE, + STATE_PLAYING, STATE_IDLE, STATE_PAUSED, CONF_HOST) from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity import Entity +from homeassistant.helpers import customize REQUIREMENTS = ['pyCEC==0.4.13'] @@ -299,10 +300,12 @@ def setup(hass: HomeAssistant, base_config): """Called when new device is detected by HDMI network.""" key = DOMAIN + '.' + device.name hass.data[key] = device - discovery.load_platform(hass, base_config.get(core.DOMAIN).get( - CONF_CUSTOMIZE, {}).get(key, {}).get(CONF_PLATFORM, platform), - DOMAIN, discovered={ATTR_NEW: [key]}, - hass_config=base_config) + discovery.load_platform( + hass, + customize.get_overrides(hass, core.DOMAIN, key).get( + CONF_PLATFORM, platform), + DOMAIN, discovered={ATTR_NEW: [key]}, + hass_config=base_config) def _shutdown(call): hdmi_network.stop() From dab6d011ca7542111348ff2e840aab1fa563bb04 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 12 Feb 2017 11:31:46 -0800 Subject: [PATCH 045/196] Add check_config API (#5898) * Add check_config API * Add config panel to default config * Add tests * Lint * lint --- homeassistant/components/__init__.py | 10 +++++- homeassistant/components/config/__init__.py | 3 +- homeassistant/components/config/core.py | 31 ++++++++++++++++ homeassistant/config.py | 28 +++++++-------- tests/components/config/test_core.py | 39 +++++++++++++++++++++ tests/components/config/test_hassbian.py | 13 ++++--- tests/test_config.py | 11 +++--- 7 files changed, 107 insertions(+), 28 deletions(-) create mode 100644 homeassistant/components/config/core.py create mode 100644 tests/components/config/test_core.py diff --git a/homeassistant/components/__init__.py b/homeassistant/components/__init__.py index 0e9d554a579..2bb7af23662 100644 --- a/homeassistant/components/__init__.py +++ b/homeassistant/components/__init__.py @@ -156,10 +156,18 @@ def async_setup(hass, config): return try: - yield from conf_util.async_check_ha_config_file(hass) + errors = yield from conf_util.async_check_ha_config_file(hass) except HomeAssistantError: return + if errors: + notif = get_component('persistent_notification') + _LOGGER.error(errors) + notif.async_create( + hass, "Config error. See dev-info panel for details.", + "Config validating", "{0}.check_config".format(ha.DOMAIN)) + return + if call.service == SERVICE_HOMEASSISTANT_RESTART: hass.async_add_job(hass.async_stop(RESTART_EXIT_CODE)) diff --git a/homeassistant/components/config/__init__.py b/homeassistant/components/config/__init__.py index dc8946776f5..bf05ba9d99f 100644 --- a/homeassistant/components/config/__init__.py +++ b/homeassistant/components/config/__init__.py @@ -6,6 +6,7 @@ from homeassistant.components.frontend import register_built_in_panel DOMAIN = 'config' DEPENDENCIES = ['http'] +SECTIONS = ('core', 'hassbian') @asyncio.coroutine @@ -13,7 +14,7 @@ def async_setup(hass, config): """Setup the hassbian component.""" register_built_in_panel(hass, 'config', 'Configuration', 'mdi:settings') - for panel_name in ('hassbian',): + for panel_name in SECTIONS: panel = yield from async_prepare_setup_platform(hass, config, DOMAIN, panel_name) diff --git a/homeassistant/components/config/core.py b/homeassistant/components/config/core.py new file mode 100644 index 00000000000..15456ee74ad --- /dev/null +++ b/homeassistant/components/config/core.py @@ -0,0 +1,31 @@ +"""Component to interact with Hassbian tools.""" +import asyncio + +from homeassistant.components.http import HomeAssistantView +from homeassistant.config import async_check_ha_config_file + + +@asyncio.coroutine +def async_setup(hass): + """Setup the hassbian config.""" + hass.http.register_view(CheckConfigView) + return True + + +class CheckConfigView(HomeAssistantView): + """Hassbian packages endpoint.""" + + url = '/api/config/core/check_config' + name = 'api:config:core:check_config' + + @asyncio.coroutine + def post(self, request): + """Validate config and return results.""" + errors = yield from async_check_ha_config_file(request.app['hass']) + + state = 'invalid' if errors else 'valid' + + return self.json({ + "result": state, + "errors": errors, + }) diff --git a/homeassistant/config.py b/homeassistant/config.py index 101c1a1dc87..6c89c84b37b 100644 --- a/homeassistant/config.py +++ b/homeassistant/config.py @@ -53,6 +53,9 @@ introduction: # Enables the frontend frontend: +# Enables configuration UI +config: + http: # Uncomment this to add a password (recommended!) # api_password: PASSWORD @@ -463,22 +466,15 @@ def async_check_ha_config_file(hass): This method is a coroutine. """ - import homeassistant.components.persistent_notification as pn - proc = yield from asyncio.create_subprocess_exec( - sys.argv[0], - '--script', - 'check_config', - stdout=asyncio.subprocess.PIPE) + sys.executable, '-m', 'homeassistant', '--script', + 'check_config', '--config', hass.config.config_dir, + stdout=asyncio.subprocess.PIPE, loop=hass.loop) # Wait for the subprocess exit - (stdout_data, dummy) = yield from proc.communicate() + stdout_data, dummy = yield from proc.communicate() result = yield from proc.wait() - if result: - content = re.sub(r'\033\[[^m]*m', '', str(stdout_data, 'utf-8')) - # Put error cleaned from color codes in the error log so it - # will be visible at the UI. - _LOGGER.error(content) - pn.async_create( - hass, "Config error. See dev-info panel for details.", - "Config validating", "{0}.check_config".format(CONF_CORE)) - raise HomeAssistantError("Invalid config") + + if not result: + return None + + return re.sub(r'\033\[[^m]*m', '', str(stdout_data, 'utf-8')) diff --git a/tests/components/config/test_core.py b/tests/components/config/test_core.py new file mode 100644 index 00000000000..6492f2fabe6 --- /dev/null +++ b/tests/components/config/test_core.py @@ -0,0 +1,39 @@ +"""Test hassbian config.""" +import asyncio +from unittest.mock import patch + +from homeassistant.bootstrap import async_setup_component +from homeassistant.components import config +from homeassistant.components.config.core import CheckConfigView +from tests.common import mock_http_component_app, mock_coro + + +@asyncio.coroutine +def test_validate_config_ok(hass, test_client): + """Test getting suites.""" + app = mock_http_component_app(hass) + with patch.object(config, 'SECTIONS', ['core']): + yield from async_setup_component(hass, 'config', {}) + + hass.http.views[CheckConfigView.name].register(app.router) + client = yield from test_client(app) + + with patch( + 'homeassistant.components.config.core.async_check_ha_config_file', + return_value=mock_coro(None)()): + resp = yield from client.post('/api/config/core/check_config') + + assert resp.status == 200 + result = yield from resp.json() + assert result['result'] == 'valid' + assert result['errors'] is None + + with patch( + 'homeassistant.components.config.core.async_check_ha_config_file', + return_value=mock_coro('beer')()): + resp = yield from client.post('/api/config/core/check_config') + + assert resp.status == 200 + result = yield from resp.json() + assert result['result'] == 'invalid' + assert result['errors'] == 'beer' diff --git a/tests/components/config/test_hassbian.py b/tests/components/config/test_hassbian.py index 5ed48fa7794..811a8add3e2 100644 --- a/tests/components/config/test_hassbian.py +++ b/tests/components/config/test_hassbian.py @@ -4,6 +4,7 @@ import os from unittest.mock import patch from homeassistant.bootstrap import async_setup_component +from homeassistant.components import config from homeassistant.components.config.hassbian import ( HassbianSuitesView, HassbianSuiteInstallView) from tests.common import ( @@ -13,7 +14,8 @@ from tests.common import ( def test_setup_check_env_prevents_load(hass, loop): """Test it does not set up hassbian if environment var not present.""" mock_http_component(hass) - with patch.dict(os.environ, clear=True): + with patch.dict(os.environ, clear=True), \ + patch.object(config, 'SECTIONS', ['hassbian']): loop.run_until_complete(async_setup_component(hass, 'config', {})) assert 'config' in hass.config.components assert HassbianSuitesView.name not in hass.http.views @@ -23,7 +25,8 @@ def test_setup_check_env_prevents_load(hass, loop): def test_setup_check_env_works(hass, loop): """Test it sets up hassbian if environment var present.""" mock_http_component(hass) - with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}): + with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}), \ + patch.object(config, 'SECTIONS', ['hassbian']): loop.run_until_complete(async_setup_component(hass, 'config', {})) assert 'config' in hass.config.components assert HassbianSuitesView.name in hass.http.views @@ -35,7 +38,8 @@ def test_get_suites(hass, test_client): """Test getting suites.""" app = mock_http_component_app(hass) - with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}): + with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}), \ + patch.object(config, 'SECTIONS', ['hassbian']): yield from async_setup_component(hass, 'config', {}) hass.http.views[HassbianSuitesView.name].register(app.router) @@ -56,7 +60,8 @@ def test_install_suite(hass, test_client): """Test getting suites.""" app = mock_http_component_app(hass) - with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}): + with patch.dict(os.environ, {'FORCE_HASSBIAN': '1'}), \ + patch.object(config, 'SECTIONS', ['hassbian']): yield from async_setup_component(hass, 'config', {}) hass.http.views[HassbianSuiteInstallView.name].register(app.router) diff --git a/tests/test_config.py b/tests/test_config.py index 2ad25dece11..a796cc615ef 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -396,16 +396,15 @@ class TestConfig(unittest.TestCase): process_mock = mock.MagicMock() attrs = { 'communicate.return_value': - mock_generator((r'\033[hellom'.encode('utf-8'), 'error')), + mock_generator(('\033[34mhello'.encode('utf-8'), 'error')), 'wait.return_value': mock_generator(1)} process_mock.configure_mock(**attrs) mock_create.return_value = mock_generator(process_mock) - with self.assertRaises(HomeAssistantError): - run_coroutine_threadsafe( - config_util.async_check_ha_config_file(self.hass), - self.hass.loop - ).result() + assert run_coroutine_threadsafe( + config_util.async_check_ha_config_file(self.hass), + self.hass.loop + ).result() == 'hello' # pylint: disable=redefined-outer-name From 780173befb54c252e57d5dafd7c57fd058f092d1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 12 Feb 2017 11:35:36 -0800 Subject: [PATCH 046/196] Update frontend (#5923) --- homeassistant/components/frontend/version.py | 8 ++++---- .../frontend/www_static/frontend.html | 14 +++++++++++++- .../frontend/www_static/frontend.html.gz | Bin 138152 -> 138229 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 3470 -> 4566 bytes .../www_static/panels/ha-panel-dev-info.html | 2 +- .../panels/ha-panel-dev-info.html.gz | Bin 1229 -> 1227 bytes .../www_static/panels/ha-panel-logbook.html | 2 +- .../panels/ha-panel-logbook.html.gz | Bin 8001 -> 8006 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2338 -> 2335 bytes 12 files changed, 22 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 1832564b98f..5f039e387c1 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -2,18 +2,18 @@ FINGERPRINTS = { "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "cfd75c944ab14912cfbb4fdd9027579c", + "frontend.html": "addef1d5c8990c9443e97adefd19cc63", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "fb50a25da4b4cfbb0d9a74bb22a31db9", + "panels/ha-panel-config.html": "e669c4c0b00eeddd8e05afcac11525fe", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", - "panels/ha-panel-dev-info.html": "0469024d94d6270a8680df2be44ba916", + "panels/ha-panel-dev-info.html": "1e305a9af8fd6e7be77f3ddf215c336f", "panels/ha-panel-dev-service.html": "9f749635e518a4ca7991975bdefdb10a", "panels/ha-panel-dev-state.html": "7d069ba8fd5379fa8f59858b8c0a7473", "panels/ha-panel-dev-template.html": "2b618508510afa5281c9ecae0c3a3dbd", "panels/ha-panel-history.html": "8955c1d093a2c417c89ed90dd627c7d3", "panels/ha-panel-iframe.html": "d920f0aa3c903680f2f8795e2255daab", - "panels/ha-panel-logbook.html": "f36297a894524518fa70883f264492b0", + "panels/ha-panel-logbook.html": "7eb06cf9fdeab6683bcd755276f571aa", "panels/ha-panel-map.html": "9c8c7924ba8f731560c9f4093835cc26", "websocket_test.html": "575de64b431fe11c3785bf96d7813450" } diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 45c229c8d01..d19dadd50a0 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -347,6 +347,16 @@ window.hassUtil.binarySensorIcon = function (state) { } }; +window.hassUtil.coverIcon = function (state) { + var open = state.state && state.state === 'open'; + switch (state.attributes.device_class) { + case 'garage': + return open ? 'mdi:garage-open' : 'mdi:garage'; + default: + return open ? 'mdi:window-open' : 'mdi:window-closed'; + } +}; + window.hassUtil.stateIcon = function (state) { if (!state) { return window.hassUtil.DEFAULT_ICON; @@ -365,6 +375,8 @@ window.hassUtil.stateIcon = function (state) { } } else if (domain === 'binary_sensor') { return window.hassUtil.binarySensorIcon(state); + } else if (domain === 'cover') { + return window.hassUtil.coverIcon(state); } return window.hassUtil.domainIcon(domain, state.state); @@ -600,4 +612,4 @@ this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,th this.hass.callService('media_player', service, serviceData); }, }); -}()); \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 765e7b749f2793c79598663c8bea7704d33a13c7..f684d31fba3ab83ebb519e77ec7e170194207cba 100644 GIT binary patch delta 111344 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
*1Jo2_yo&iB|6P{RPNa| zs?S!h4fdJAE9h9(J;|^n>VnVu>Q%12D^1^@i}|2rlh+!$PV}jZm@4~;voZC`d$+9K zc5IRJo-KN>B9*;;>yxL)ZF4pKc>Xh=qxU1(^xE0M^XhAkrn_&qiM&&CX7LG)(~Nsh zxovAP;rMf|sU%P788li_T%_Mme{L*6H%G~(Nf8k4d z>+!8ckM8~W{q%T7GPgwLj@_a&rN6T!=e+cnu=^b~)mmS(=Hu1S$N-jm8BWT=ab=4; zKXIO!*6i)^xUr$KULpEY?G8`pUBX5B+a`M?a_#;7?UQzmomTKsp`-&Bdn@d~@kv+$rJo5#Bq$2G!{I&5m=(hpCscAb}z4whWIpK(_G&X3h8k17sd z{FI!3fqQ$RLy+9Qz59f>E&6-U@kp%Qf6l*e%z9USjD6`6ej`(DgT;I%Yn?5E9#*qF z)?a&gI4?Y|NTS8-;YXYGmsUm2aj~7{@s9V;`B^*uAHTDEgL!WX=i&OJf&S@h`*Pl} zWZZIlvUKO3v*s5*I8~LEeSUIMYulvyjKZA$B@8c*{Qqk`eOI{Ww#J(`)0cIIem}i3 zc=1^scebrLyem|Idx7D>we{DIYE0OwyCq-oXo#?w))i%jC;z*8Uqc9tUq;TKi0LNBaijJ@z{e-QcJym}By9mRHr;Cx7of6zM5i9%PR-{oDANLu{qt;RD`APCP1G6|(=AROQ-B z{NZTVxv=uYg$>`WtWT#i=18h6kU7=7vg@PJya@(X_bxt|basRAqMD1drf`JLme5X;Uov%`Dtq)bgY)~9H>O=u zaKHAxd+SVQc0ZMyd6Vxa@jm^0QKoa#=9l(A)=gh|Jw1axfBVuh^X2R1w)oDP9)CHB zpT|dkZuWWcjMvKBzLfpFBoSD0grRqe#kaGKd(;D;Ja?5%V*abz+t7Kg^yVQ{?edxzf7UGCHN+>Gx;ts!dgnuSJ7|?B?r=rGCG-w|V}niaCFG z^b4()|6X3cd9Uq49uL0!6_X#YnCK`tcgf6!&PNZvSs8THXqA9Uf6esRnU5LFZhNb4 zU)$`(spMH1OkMS7KvO}|*BRu#}RflG05`84wfvu?>GHDBKzB^k74 z0%QGxt7f0eXWQmJ-~4Ct%iVz*5v`^(e3lEZ^OoWC)=z2P=RRkN@?1*}$KXquiTBkf z-qD$PtYgL0$MSaH&RF+;5$tE1C}QS+bLRy6y8n0hj&F-BnaAgo&)f7?>lxe5@9ti= zjV%&NqUOj+e5%}ArW4EIbAS5o4VjkfeN}Y-R3BO#P`|IUy*aEiaY2zoQO3rLs@EoJ z_IdpNxWU(B+r5r`wilX(2i^H;i8;2-1aO_e;(-wvj1lF##9$D~xQ zb@AnU`zG~IUn31)&V5=hR`BuLd-die`}-ID-I&FpdF0~Sb;nf}p9|+$vfVy5ik1CD z)58C3b3Z-ON&fw@eu@1adG%(#J5h7l>+ab-lXb9q_I<;qnS15gtL;8i9TR)E{mY*f zOP@Cfod15<_Wt*(ee(0BzpAvzcu^J4Bl-Tb@2=vv2y}eD;_8uMK8LrnU1+yF1K%-~INhdxL2GF~K|c>kC-^eF}d5 z`=IB&>9I0AM|}PYt`L1=dn1SAx7~-p_w4;no0lm5X)^d0aA3cEiy|Xu?veA2h7$c# zCM59X2QO$$x0oZ8;iVOwtFdhI)a~EqD@w|Ja$J5*y|?Y6XU%H4r;0VA>{)NOU*9Fa zuJl6O>%<+`{(g((pT$K9`Y9gopzKB{ynQq$>A=keKGyjx1%GtTMxHd4VRMRuB{I}fy>Wln= z{jXEc_%XK4sIXT2R5(-AAz=QO+(%-eCl>BLKdIc7qx{HkH#utz0`7g*i&|Uzl`}g0&5r`! z#(VrGSDznU?*3cj!!hYCHcy*R?3|&$KKpR|nY4&mS-CZ9yNvx>7I7E&{pWfhVOcMI z{KgbZ7CtAAZKB)1K1lH0Zg*h4v+{`@N_yg(Piry=y!!a`X|6zHs<)kDt;MR!&fuM* zLA+wWc1>x&a^-Dc;P);o{Vew#t!GOjJaUg4Zh!8%mTTHZ?OWMm;U7aaYIgTrPci2R zJ9%B)%jS5mWcD|YwR2qBt8{<6F4aF?b8BOG{dsx8#`e#W0-LHuA8OSncwU(+lg_p) zLI1qg7UP0rIzKwjRY+U@f7jLVD$CyY+y5W+H`i=$eg4qxgHHOo$J=K+UNL7~ap3H& z!uB`)d9y;N|18<_F|T(1MyVC6&hJp4?SJ>tKc@4a^lep`YKp=a&ACxBrF?4b%a`Xv z`gdZX~b>1C}mC{yP9R*xlF|+k(W)@oR5s1AN%ZPiLT404K+FB$`J3W2nU~hHJdlz3v*Y5b6$iI+ zJlmfey3c*{o|t1ZGg!>5+!8Z_BYSV>+&dk=_3}fuG~QJb(SbIzbC)eJd-G6o`**X= zTw%9M^m4z~p8ln*`g^PQ`zuc;)@iMJv}T54u5Rt3yq421@2AD=)00l#_(+zG|K9nQ z`prh?XPrJR#OSKF)Y`7BMWFuGMx%^_L7X(t>jqMmTKw`--dk+?7lBiWaX4(e2(@(WyTBnu>SC=4Wr!lqYZ9C}%Go z`un(d#V+x9zr5}9?XG{x6kjx};O*MFRj)sMoDay{Rq zbqjsN`I{xVrSu&7Z>kbiMjJMW$a`@v&1r@CiqwY;f7ie<|g4VY7x7+OI4QgS_@3|={&PAzEbYDs&a^R0-qzdCxz6XN z|MOtef|U->zMXvIfA8t!8T*eI9GPz6Q1~Rfpi)>MmD%<1>tF3P>K_+bofg|2on!w= zY5iLhu4mhOAG|F2RhIWQr$FFU%;8&UZc{zZ$F51dvg*aPMQf8kdET}4&9N@wt?G?y zh?$V17g2xx>1o%W+mC(tw!+}@;`=Wm+4V{UH`?Uq1Z8>LlX??AahX$%X-MeC6F%u) z*-Y;Xo*X@T=hK5NpU%Z>KCGhkqw!l|AlvnZOj+L}6)8a~d$sq@Ev}fhR;gci$E2rm zo?F`=?%I~i_qruoxn)Ccafs#>Img~D$#*veZeI5|;uMFuNd3iY-ZP>Ew9?#;^TCs*6^+i#(+#9IIxo8H@Ah0~-uc3c)Hz*ySC|Lp$*$OD(QCe`Wt~nd zi-goa-)(P{ufNRrsI&W2x`^(*?3f?XsS;D#zQ+~cV!vv??(-+NL#qsYwm&exvcTA5 z@idJB9p(48K3h$k7j!S`N)q`S(s%C5;8w>!VV_`0>48`JJIv|8=oCA)aW^Szn(SYjUkynC0S zjN_k6@uhFBZ$Hjr(p@B+axHAxzZ2R!Dnq{1&U(jjH{3os<5j8ficp8U5{D&DPIz1F zs>2a~=gY>TWzW_$yte4&pBw0KroN{@OTWIw`S0f28}teq?yOXQw&Bv;pIQv7m=x}; zR(o(Y*hKh%P0^!HXARSb;e}~;MEUfWMxK(I%C%$m6Nw^o(`t)z{>Ogai?b1*`@v@R zJ?CZlY8kqklX}b_TJ^4J&uW~{#Lp_-YkHp!Q8s! z)`XnP^&Y>zaoIPAtnsT0ULF|gyw!7xNc)v}bzbg^Z43gw{_A~Iv1LL;-s5{ugzdV* zA35#2rk%aNV@>K*uNM<1>1jT0|C#uXPo`HsWszx0m+<{Bzc|Y?j2ZWByB@md+;@JS z&IKXA?-ydCf6{uQMt{uS2u`Q|(pVoXtMd-L3z*RTj;T za-MP5_3C4X3O(y9Gs1o@xaXfVdB2Z+`p>LA3zuC8JD+&3+3l{Pd`-;t!;eCD-Sc1n z)a*LDwDFv$+Id@Nd$(k-{$inU)aT>F56h;XeePiEXLjKs=arj6JFZNdCm#RlWrdOU zw8cWq${W+(AJ}NCl6SM7M?l2TE8&afCWpR$|BrvGi!NpCO>dL!ZaAbAdVzBR_jTJZ z!Iu43ZoR(nD8jnKnbYq4bnXVbn%frznq32KcAs4-RqGMy-267>`*R28_4-FHZW4a# z{x-*OFQ+YYM%$uoA7u`dxvu&sq*gv-&Z>5s=^NUOeHX7do31;3=K4tw6Y3XqPFcRt z?D?Uyw#TN4^S$4=Nx}Gu!LBehr>ac{Z%vTD`mE^E`lsp{=E*jb{t1_@IC(sl<5g0= zHg9^<>)%bSFZ0qCrZeoTP&%~B$^WW{ouu@hHQY+Vq27mX@E!E{@P$Wjj@Q3XWY!fZBU)2w~X*{1r>>%RpWANGts%CmmP4cCo3*8O|-?SWjl#;K|E z&vjf@I8!rwM}^qsj@IyrHOpLIG|cJwr15tBBV{MKW31P-oLj!B%(iFGnRRutx7D%y zkCRI(cWJS_(>!%`ZO}>+fh(S!^Hnr*wcn}==sxe(UmtfQI%(Ab#z!1$dWApmN=y5* zua&Q=KX6B~uQ>Hb$GjPz1@zgq;-_0i|M~XhOT<}YuQRG`Vqq)J7Z%UH?S0wx`pG}5 z_gWt47yfhPb%f9*(<)b9y{u;5ZF45%USAov;omFQgF)Cf<+{w%>8q!)0`iuR(?mXbR`JuW@>kqMdU)CqqbyJpq?_=K^|I729 z^-lHaOD9Gz|G>Du?ZKPMj6~ z+G^rtm^wN77*m<+BSn^r6U=8b-106jV~Q4d^e2PQWr3t*kXFxW9gh_Asf(1)Hb^{g zyI*GaalJ@8gY(x18|#HNT?)?XTXlav=aLpS_vfN_6T;%{-k#oSQl`-`@o}hffr@V_ zQ>s(&vx;x7U-{U)wudW3{9J5u_9EY7$qCiv<@+Pz4>P|m{-6HXSo6}t*sA)3+I#g0 z^>$lk@2kK6b6fZ7`Tl(0%FC}_fBf6oINw5M*383ye;X+{ZeM0R;d^0zy+LvL_JmbF zaUSd3pQ^3cbhAuKP@+&R=ZdoidxBt`X1K$C$9jt=p0VeSoX-h6tp9Z5&cxSjhZK$D zum1g9RQT2B%+l4%Rb%GNp3U=Fai5aSL&FA}PaIG7%zOU)=GQgvveN&*Zis0tYj-NL z{NVd(@q@^$9gKgb-ZE_RWJwAU=<%)>|NQlyoa>4cm3g}k6xIrzPHPilVO#xV@^RTM zZjU#}`#u*tH2Hx2I!1oK@^a;^Kd;AlTb$ z^D{L!KF<3yPF~qE{h#-(3{U(1yqAXU9ebX-+D6BSe3pA<5yhVwc6B8af9m~$xZA3i z80rJ|wr{=uWVfVcm;V*vn>BgA|0RUm>m*9d7k~Pt(k^n!4)(rAUTG<ucZk zJ+)TjAkTDnt$2;N&X`B1{_Nr3`Pa!Mce0t*;lJz?{xsj=UF>;f^D#N!wLxHkFbG>+6y=PCma*MAZX7oWRo&XS9^&$ivuR_m@T zeJ{gM(4@9{|C{>8|G&H=UiWb<5Os9=vgEVH>lh}{>2CHL@=m83hRPYXtPt3)zS&Lf z`jHQ%E(;D#IAmk?C_iL+_j&mU`(6{{$o-zB=k9pyLJLfK& zrnu$%tyvB^yQTVD(o6Vey4frjI>4R3?)nb#i<7@U`n>V+sz|eg3hT@J&%Rrv9ZB*vB|QXchvjOzgb$)$G2`{!iN3zaVaYn{93l_ zg_w}`;$=J27XSR8cTmoB!~Czm_Pd1b6D?3`^qup(rS$&6y|E!Xr>@_c*%NN#y>s49 z(XZL}Se7hH-(&gq*aOKl#iO$>NLlR&Pg0fMTG8{jvnVNG-pjCEyY2%W5tLam|E?l&AO)HC4(YuM$oD2`Ogn9bU%xqYkWcR>P(H9S=_bdh5;g=|Atp z)Ge^sbd!C@>V!HCrTsQhHD{i`l!-t7_W13n-%O=eJXWPTAr>Y9D{jQRK0d`-wB2*v zG-KB(iQnFc&tsP8So-_z%l-8)_E-G>_vPm0`}OtJCH24FynVlae??iz4C~*&j?1jP z>$mqs$3@r00ov>9{@=cQef_-oc7GqgFkjF6^G`temlN-wDqm=DSd;vUBTjwCDcvCd z=AYG5{kzw=Ps)>?7<@_kiQQA*kGgAjOl}KO3C&Hq5VXwg$@A-*(|7}~6<2-!zeIiA z?Xa_US&>!uHifdS|5va0Iw<3S7^7bI8P>aV+*SzbtH?e(use4lzke!=Q5gT%&+Gpw ziuSMj*SN;V{pIO-CfgphNAa2*X}xvZDEfK=&o;-78BfgW5fwZ9cK7b?T~Am( zRTLDJv*+9WIO1`&Fy)K7!apv?SG2Gd&wD>c9M#{LpoW z?VsrOlm9;Yo_Zy_LiXX-sFiCTPd?&N$)+D_^42jedxPc<@MQ0hw;NXQJmi?_908o$yAj+V#z;iVBgXV$YWI z^=^N#DrAuf^IaoLtr?Hj1>9ED_;8B-+GbUbX>AFU?USwFh(xW)vS&V``FN^U#GxHZ zDfNspoBzsW>hi#iZ>W8;G6?2A&0zfAr+$t-=Dt+K!FcmT_{Pi7(eruy%{Sg^I| z?`kexyXw!o`3xpp4teMwF1GTFjgmtAsmo8+a#scL)^o@oHDy!(m1@{*ZpYM~X`@7rMBb9VO~>0|a)&2jb&d*iNTU0zh$9Gbi(S4;gTdxd=bA;yNOE){>0 zUryfrMx)+yUdA1Ljbk3d7tiKK96T-^&3RXgFIL#jbm3$lxkv#7XH=Y>(tJ>lG&ytv6;o`ONbE-KPf* z234h%xE+bFnE0n#=-I;c`xuUiHr3A;vN-qK_$T9g&f+k|BfZC^R$O!bV|{6}CEtRb zHfFa!7fk88`1%shBK1c5#+dM+^Gh6dE^mC;-#xkTppkzv!v%?auO3GZmts~){2@yli>fvR~6DE>DzMEVIy!{WnjT zOH1lSbH$L4YTeu|b-x=GW8(9Y==Y`+M@R-kbY}MTx!e8C0@BT7)RCG~; zsjIdA*h$^ID;=i!bIO|9BIJ3_T;i2;yVP&6V%G)6LMP+sB~$vN%+y$C>(x8Pf9cK5 zOkHBL({{HV^ObnT{Jf@L3yiCtzu`$tJabz6h{wfWY&$o6^5S|d(34%YM3{Tp!ku2+ z&2t-Gaf|NR8p~|Jd@y_?>#;>FCjUZsR$CueH7Eq* zmF?`yRMS=AC)e)OXb!zI-)Qka+0Ac5>%T-b{{CG0{;BzoXW!+|)-B;q;xj1>{5pGT z*G~Vdb3zxsnVxt!xT^Vi@{hvjwl{b9AJkm=p>P}H7T?sFHcHmQH^Qt2=ui-{drUKjquov@MVPK12!K z6k;|HSZ;ULVx5%28;h8SECKSGf7`-S&e~>c?X(n@V6QK`yQ{BI-tBIi&Hshr}oJC6H}&L>rZU2%s7(K_vVnqH8%yVG^OgFrbSbQrMF$1biMNTPP1~0 z@I95$e=ZbA-aMG}=TFLE?zbt-iAkzCsnWgfQn&0Qm6ufZ|64ih=B4F6dMkp=j$cmT zw0_F-SYV%A_s^rB>-Wrh@;UR`o2^I7gq%K$l?m8>TYPo#u`bTaTkE!1Pxv0wwToTr zqR!^5wAx8lk|C#;XWf}9EuWYLWo$GqwLjaoBcJ!Z)JBy_`{SM+ z(>lC+{f-&?i~DBzPu*$kYM1wzsaj%}M|4`&$*(;6@&^yKP0-&cSyQRRICncA|B5*F z)`FrdFa4OhB_8eM@tALS#Y@@Wrlq8w?`7r@g`a!@F=Yq;{hE1nfewTH6H~3F2j;B$ z!(6#^$|vUZ%RTSEDWBKASh1sBJNMYlp5sirJGsohK2`j0DL1F*$?KvRj*0od^-k&P z%N*A`c&H>%JZbmQH1XN_WkFw>9r8R&_9Qd^W&NhDW_;*EX|it6zTLldPq^NVIkxrb z+!OT-a-0rw(${Y8FwNAo?YVAcFk{-y^dFngJo}mB%+HoKb?sq8OTWFf>Gy)XW$O_E7Lj- z=B94_c0z8K`P)gW>;vN>=F2?(esXQ0LReDt8K*gqM4V-cw*D0AUi|#G?!?3xHnjs? zF6n>zbxxFg{eRZ)xakj(8_vSTs9U$OnUrX$n*s`jvP2&{1+p2)Jmv2tkpS2C-k+fduH~&wGcJhzF z68p(o8y5AbFF&en`K}7S1_NPazR*XOVGY4 zN)L0iZhF1*Z10*quh(<`^sX|`&rj;hr3~2atZTTny37CPe&vk^{`J1!sVta0x%k}z zA7S3!D{adH8TYcqq-y`Wwn${%CfDQ3e>r(r3C&2b*`awpbL*tOhEkajcdv;z?lVVC zc)72?|7reH9XnJ?`JpH^klM*JItvNR> z)1-c;?y5Prdk=|a-igeZ64QJ9riIGgmiJ9j3I8T=XU(2>>sa+gzO%2` z@u%rndC?U4BCF8(0KzTHD~vwAqgo&OSKy=g$Yh+@8j$S!+c_P1=?( z`Pwu4%M?kUz8u#64dwMF|LwX`YK=m&i);Vo-!znppI@NUU}dcw79jQ2U`tWcy$iQL z-4ql~eVLH^aFG_nTej4t%HPg98dBD6T!&Q16hCMNsvLFgsD^cPACg5DUft*g8A#5ktkXQrUh?6X;(mS<;G-TTz) zc+7f_I@6)qUGM6b9y-j#u|x4$jn~qJ{e|U=b3(;8OcbrYy+~m9gfBvj$2M1(nr>I> zw-!+?npOX@xNGt8r7K#duI0+_`4DeVueMM1t>Df85rJ=3Tv1E@RH*DY|NO31D9;Oy zlV3P;OMYDvw$<`{_s*>)=&#Jdyz(1Mk8PduE4Ot2kzlo%maQtIyVDt8^0_ zpE_1t=bHXxMb_2c<451+EzDWMyZp3XYOd95-AP6>7hg_Y>2Pyz=oj~yF4wYErLKCW z*!^Erf6=D1r##o>)=cRaNg*qujiV*w7VuV?D#Ufpcf(3TxbU8afbF?gZr zbgA=coY&$evt2u`w_j9{5;ZiNzF=|Undj=VVir9qX>+EymA{gFqOta5>!GT^aCY9; zF4d;9d|#<`oT}ok5S;ej{E-#QY^U4%qULb~-;8^;+o*nrlE;xl-O+k~GZ*=bygbEQ zH+_e@kg1})Up{%t%K*;!Ameq{IxoNcS`b^6}&L#nl>&Ru0tbT{9?elsWSca`wRlUEat zDqDEvvD#+zxOg06s`r0<;K`kzuWNs(Bo(pb?Vpgk?lMn*>~)bJFZKVfuK(ieofmY+ zFl@m|v#HC~woW+X&TbiKoWGU9*7wCNSBD$MPQv>N?;TwDEzPxEVQWEjePJD+wda)e zTU6s}CYdiSY!yy_`*cywyz{T#yg!sYby*vK^_ybFF9n%rI(b7Em-n>RyL7Nm`DW_p zte~TsZJfP&2mdi0fwY%)#vU5nMMvZ~=4c)Lu9vy+a$$;lclIa$PU{u!NqY6-N2l%6 z-V*ZqZDn$x`jr`WS09!$PVR_~J-i}GhfS^~^ntLPTuGl)vTAF(^^yQ}&h%Q3ZkM&?Wb z_fqBauImL%Z?CGT{;ARLJ}2^wrt$liZvxj%`}^K;dq>eZIR@YT8lwIueU5lt2`&q( zUwF3mblhj1V~TS&-eUWFwB-D$?DA$wk!L*fc#bhX2+TNLskijkzOM#RkK}ngEcEzv z-JWV(%Afnf#io73go!qrvgVXLWtn-YZKeFm(u`}HeL8PVisLeEe_>#xV(en5xBtk6 zrCzo(PCZ#--0)wxa+&(;`Cg_*#nbmp)OzGL`6Fljr6=co*|Hy$mGLr#)=J(Nyqd%N z*eKN^X`s@U1!<0o;>^cN+;{ngcTnyzlw2l*SfzFl1JQn_o<;h>O3hBoe(kEyrBB!rxaVvM}~!plx1n#ta$K>0T+3< zR$IJiS4`pKQuLL)?#H-yYN^@!aOq=AnOD-ES>~Sk>wn91ZSKPZQSD-ff+rr8oNQdj z&OCXI;pEezS_ygOYKJdQ+-%a{npk~0a`)30cEy`zk54)){jSaOS-pT#-H+tcJC_UU zyS2V9I}{Utu)A_v|9Qrn+??yBeBRFyG1RC#`(&4kt*zibHiPGnlHW~zo)XyXWWasY zXuHBvwcp<#N=q-=n9O?c?OQF!$HhuKo3T%LV%^RNhN}m^YaZ7O z6g9lCWK-Gn?(z)XS+CmcmmWXa`QW<8Z2jcUsi%z@G}rQ-`ML7ktNC~TnC^dBb#<<< z^%n09A7{O?+t_|?KFjKLewNuE)qZ(6CEG6W*YK)evypM)7tWovwy9!UA6`<;lAoen z|KqMq!Q)p-Mz1*hEB-9%4w$a`$!O~K6!qzH5-J^+{MlE9`UP=L^JG?-$(V1Vu=S3Q z;_f>&b$4@mw3Tc(zt%i#b;2WjUc%ml3zt@|-LU2OA$M2X;sWhCJNfnJ?W_NG`{i%( zf;ayCaeFI2eyi_aeA!&y?eHIk!sOFayCqjK9axbl+PWuCgm;mGld81V+vkhDx0Q6f z4zkrYhpnc4y-rOGqIAm8@JivL%*uYQk8~o zODn&nQ})aXIMkixbU&~(a?bT?gL@MtIKF>ooZP?3_*2;JXL&2n)H5FF&q%!>v-9>N z`xhY}S~4H`Pdqo#qv`DAd0Cf^>uWV$J-uLhp3S!&_o=>eH;>=mv&y5ZMp<^NJA0$( zI%PA{{lYm{3Irs|@{@G~4R`PPpUeZ_AI>B4el#5Hj?SaUrXti>!H@nY# zQBJFLGFrFHf=xrJZ}st?a(}pgXL^-ZF5X>Qzh3Ejn)+j3v+Bf;%3O~W_WtD&KUuwF z!o(?4MVgcHf6Y$1`)tGVH%H?xh-F4`d{b-nSa@>Byet3O#nRUQir=mCwy%o8ndQR# zPo673#NBK75^~Za^7+++A3G%W6h1MFdNRp6ZI9sWJmy`@ljbmeGMOfsAb9qq7t@l? zT7M5WGrM}CF;6OrQNZ0E~-^eVQ6U9$f+hyRyv2YvS+Ht?3&r^lhqc79Lo$*4JZ z&F}5uo4T=X!eLQs!w-w@aknk0N73)_bm7&};BI;^ZTyBheLS_t{5^+`IC}V20*j50Uysft-uDY?%s-euo9z zVvM@JE8Sy}Hs1mF$vq#B?8#Yu=1NuYYMZ9DQ7J|C0?D4|ch#Hi*4wT13fgH}tYvC(ZJ@svO{ckbng|Rx>0{3ca|7q_N-~FD{V9G{hIc+du!U{t*36WZHmvGw17e5_(d+x#EXdp@U` z-duMu{&0PRK=Jicr~gd8d7x|RPBUXO1@^jj-F>s__b8sy(|P&zX$~W!?3rb%OLq3f zJ1lIiJ%0Ix`_(6RVt(Yib}@0hpITIIe&5sk>8ni(6J=s zKVvbxTu|M4E{o||%J1*toOf2|bM+Km5t@*D`h{Id<9;EbdG)J2R~!oxlQfvAq8{2T}FEz-6>zB74c|0-&J z#J#ogT+J6p1ICNJi67ZA)~-{ocMqyw!k~Sz@nrZ~8|KS%H|W+bG3Wi=^hmOvQ~i+G zhu=wTg<>s-7`lC>O0LVOZe0FhLRVk+OHUEL#3}OEYft#T7G?h#x$6skzs)$FQhTRVICPmAe+3mEJb%Y5!!+7@~8&KHZQq%XNT&bJa)^hTR-B-Q`F z(5v^l%5qov`_IqM|2@zC*R>KfwJdR`UU`Ys!~KPuJiOUY)@yw_zh7^kf~O3x6|6S*%WZ_&o7N(H^IHVcrZ2zW;d8_VwqdWi$S<|GB>N z)aP0C(JE`~S863)2!HYHw1Cm{jpvPYC-_H2WSrT%uXC_1UoK|N`=t`sRv3J{e_hmS zB{S1??MB7z)gJQ4b@|mIX4Tdh-;_Ii$K5aD=b42I&x;o?xv_rT1eUX_?tE5d;a+s2 zpz89m?XT9V$@6{qDkxXa+vYC1;;Qhh-evhqC;XrJ{|(#Dkq?`D61M2r z;mgdh^EYj>}(GWZ-NyKmax58`fqfw}<>q9%1ox@}dZwpp3$%Wbd!TfBDbdlqTw zzD#NR&rbhsBsvUUHpoodZ1Z8pVYh_yLO*LKFFxz0-)!5p_N?)j`k2kPr)}l5TiUbX zg4^W4h~HOvf86;KbLjA$B~0Cu5-JR99i*MQ6Au}-zb&cK-n-nC%YKT$y4ib`S>}i? z*xml%H}CPBn;W=gMZ-*g$ojo;uep=C`^59BVf| zkXJBWxa?Bxg0ek*D}8otUTpua{@s!3H}~gPgk}fx#{_v_aum7V{rU48m5C+HPTn6r zbw~K=H?Now5WM4+PifB7LcO1hSNE2-p3VOFJD%(8_Qn)V#r@rUI<`9P-=8kG*w4?# z%)d4N;P0#_^G&DyiObQIUl__%`|;*~C!1wPtgGIr?8|k#WSeqnT7mf5x&vnOJo)Qe zxBu(SxTkw$!W%(%p=aNBo|$&fD6jRd_GR-$Qk~U{FP;mqE~sUiq;yX#uV?nNI`dMG z@0~Ye_bcsAeA2->N9fn)yj48@tE2oi4ZS}eUE00vt>2!=-`ihQ_!!?aTb&YPZh!Zb zs|@eMj|Wa`FldHTKcy}zpbAZDB$B{xBJtM!tG7+e@;ALf1L06 zLO@i_cJ0FMLs$8=b{$wBc_MOk2J7pc|CFc3dtSf3xVSLf_9}Zr@XE?P_k8X0sy^}j z`R=!(g#Vk&ayKPDx1`5kXY$UAYxaw7Za*+9E=NCee#T9?^>=lxpNMdK?#>rKw_j)T z&o9@$L>9(Qs+TCaB5!B#_r$kXOb@;;QeVF&aK@&RTka9Mn?3JdIK235wZi;qzppeG z`o(A~um1kS%%h~zLFdQSsz&!~#rhAn_x%+yIC><{-fyGE?`jXLUmw(DEpoy>cHOz^ zc>B8dr}OF0{%%|%v!o_Sv&8hX=gV!$JJ}aapKmPx*6!RcnH%qA>Z4{lJ+^V#Y<=nD z*VU6QThz1mm6+)_Sf(F{Satozr=96}{soD>H4g;}80{zXIeuNwa=eI9SKM_=T)?Go zK`JZLuDjm%S6pBI<-OQ}gZbaiE@(bgm;XT_@I&~)y~lS7O}P?va>5R#S-wea z%G)+ubWM-mcXn3txjB{-`{`;!UDYstC_P)Jbyj^g=*`mN&3CVn( zhWx{s)4Y8xf{H{>nO@46v$vvj&2d39ss1}I$xrl3FW#8W&&8-z@72bbLU9rTjsQrUpItC zmb|TuU;N``)+95{Tj3pP>(Y1T-D=!orW3o~`NBH;hA@@60_QRgU0i1nA?3*GZuYOP zoSS=NrP8u+R>5;CES)6fp4ESN78xw)IQ{ashbFTn&8~Lrzy0^rbJzF}|1vKwnN{@T zN#oS?pve}YoH{%7A6JzY?0Y1+-N&zQ;nP(rX4dm!JF9*!`{6LpOtr`~)`oRm=D{CE zH3d6ad7g*VT-mUvc#n$y-6z*Mk9+Rky?2lO+`65+C)Z6jN?Q9lVmIr`_qR{2+gks$ z>9Diff0x&xo#%T5e;wvpukeZQ+oh@;4xw4xT~jZVRCg)9Z+$k&bJg;lO_M&jY46SW z9&44g<5QnlL{x0eq-jSdtT|!WeB9x>{=13Oe)%S4c;?%&Xze>HvEt7y#~bCmv6V<|&;Ze^DyFB-_#ZH@?SyT7ATggcyI#Lb zU9__G`jp+Dt511u+cove(R1k`t?qXJZO<=v_~$ia)tSj}rg6OxsXy#`J-YpK_wnY# zTg5#LUx^j;uG!l)`O!&-d(~^-9`!l2aw(_%!M5gu{$FkP`1be~WWLza=52HGvdsSv zPF(rZj-{Q7_WAwe^Bwko66GF8n&*GDeIaFQ)!sL4!D1P`;s(tNT(>kPJm0#~q(#20 z_LD%<{Q@8U; zuUvBbl+V#(tL4@ow-$BjXLN3iIJW9vfL2y)T4?`6QP;rKI>(7ubsdAUPk!LAF?>GD ztxg~}%=jJy;-b=@qvt1no?zE$y+^Cie{N-mV1W>v`Oy54DJ;mms7 z9D^Iv%+h~OuXwus!nVunx*eE2;xc6KdFa;}2u!~H(0oPAPxpt~$^48uH4}b+ou`l( zeRh@DJoEoS4{gr`PHx=$>6`q<^efkh7WuE$3*6~3 zTR&v+ZM9zgcXHLAWV$7`DxY3HTS4+ZXUFAtx%G2;*uLA? zRNgh=dM5KZKQaAn0R&A;0o3+gMrkDt(aIamhSI?1KdWEgo{?8%39Zxr2)eqkL z!v4DKfhM8wwy&q+f4vKQ#C77io5}9oyPM@srWv1T|E^rsCFs&`|NHQ}J?D2Rxp${( zu^GJQjurB$cm9@l-79cuiEB#fYTqdWiSOp^4__!N+NU?;SrVJ)zLmY3`krfuxW!%PoV_Fe;q14~8`(~AUH^1GZQUf*71>?)uWq~{ zm&UGrzH!yWl`-B@ne(_$c0Jnne_HLSss4}VItpbSSJ6lpntY&s_idT}Pk{&b^;vp* zZb(TH-ySC8m$uH&=4}ZMqS^98i{)0D58`U#3%1zKy+w>vnQOY*Cyg+Ze+tcRNCS@ctN6*fRun?J+ z_2StN`+Jv`8hz6G656kE+WgpoIosY_b?jd+c_h0pb8g5tFOPdqcj=|{uDhSQNwT3$ zTy1S~w$B!$X#Q1xf8PGM<@k`JB1F!)dfVR}Y4^=~mgK%n+sJ!kivN=%g}c% z>i*p*QNzxDXeYzv$othMcd{NAxO{7vv%T8ZG`2C#S+-*Fbq!+%k^i?Z&c4po%Mv)B zS+UFg<>Oe-yJwh!rOzIFvEoelSplvl&*a6Y@^5Yv4L4$ne_SI{eb4!IwjQ&5-oou} z;+Fo?y_Zc4(trByU6{3E;L1<0l9GG0V#DhfEEF}gyHr-IsWx}jP5nuclhl_oO+LDJ zi%->0|L*y_y6@HPG3PezoWmT^GRbb4~Tz4WIoeo2Xatw&SgJcFjqZ%3T7R zPVe3wSs%2F>6=P#*Tlr5zgcg_&Y8*atRcZ6n`efZ5+>HK+lY&M?L?Ao{c z)$jYk^W@(pxiy|z63$-h{wCFzcRh5OG<(Y{-N~OzF75WKUw5hbphD%^Z>u&7^go=XY-MYKw#OPd`y}+~5E3Kv%bgoakN7O}lw_75tHs)7haR z_mCYDl-4@$m+N9R?(qvs#8MPGJO3$hkVXG z93+3HSmax?NY!H1Ytp^-=L?@&7z(cZkY=l|XI8cA?jvsBU-JtsLLUA&617lxf_L1) zl+BLsL!Qb{J$jTiNo+Z@?5i6kpYI;w-+XUk(XvOJns$@>wldvIzVt+CLhh2kZ5pe# z@Ay(__g$PzJ;tN+$$CqvNY>LQChpxoZ~vTP8<&|!;$7}DY>3q@_6(lU&lz67*lF_3 zwO0M6a|EVzac^+C*YqLFfs=9JrJBF2L7Nv}+gaGV=luCZ<;GPHf4i`r{^?xRTN50+ zz}Um-+w*6SCrZCPH(5rX`RU|GGNv;B9oPk)SABG9%KGyBg28o_MH4J{?|!j&$+Sde zE8aYvj8DmtOK;!JP-Mx}WIs{(wt4g6Lx%NTysKDuy+41d^0Stw`kh;23hgcb z8C6~SZ;!_7*=ma}FPOiu%TOx)vga1Hbq_0dojIjdZyB9pdQ|_^DXBiLJAE7Y%i`?j z2b~j8efiwhfqP|XhS-u=BlYRGUj9^Ea6bFA;t9)_3**l7y7#j6lz+ZwvyWZ7KyE#Y z$DKH>#MzGRf`#8;M!@^U45r(B*%YIl<(Hpi zD{f?Y5*GLSuC&yIH12~lE0Y_I&+4v;x@o;+QIbpRoLj$o>-EfJe+RJ~`WAcgWU#q# z*Uqaqtv|h6y{<=frItXq_)@9-`wUuJ;w-OC>@QiU(fO~t=AgjNwRc~4H59A)ZMY>o zPp9&atnZF$-LKZ?yEEAhT-mRQub*CZG4Xkoth?W7?mNQOMgISmn*E;s_3D~piM3(s zukS~k6J9D^+xArVykTE`eo?j}!^yWh&NS$W{!)H5EA$cb@3c~jTfLWFtrre9KfS!x za;fgdyp4G-?20op1#eB>cs$zIxm0uNX{VbPHLTY=Z%WHGKi%fGm;JQN?u}ruPG(OySvAY$KSoTyssm?P-4@W&UKj?kBg) zF5iF*a9~d=%dK5iUz@k3Hi)RU-8Me^$vHYB zB5d;WR!%;JJFjyy+IxOIj}Wp}zt6C+UNEa7^0G+4(xq9M%%P0(D}49zzCCRGG05s6 zYo6|MH4%+vQyu$O@0wAw$1+p5|Gs^lF5{QZw>FFJAGz6K zu6JV_OLSOySlZ-UzTDel@0z~e;g~G6T;j!g&48y>Q-zGJf3f|Yv>?e-xLV<+(`T1O zD^}GXHT%~6UF`bK7riR8O|OfU9}L^mbT-8A%883F{&4TVX@0HAF*xkt7Jt9x`&Z8A zsnm~XSZ06p@}6fQ5&OAI{`c*-m)2tZGU0}#+VZ1&R@i4a%BU-dbIkJ#pJH%Y%l_aR zC;s}1uYcTbzxNi%JoRX%rRh=Oq_}GS83}(B(giy1HPy#lX|OuC#MG=XC}GK><2yO7 z8tPei1lGmO(U?9b^MI3x#!RsT5)xutdD0)Ti=nJ$(wub_tsqKUVEvq^XW6q zxoQ{Xj;Wqp>T$Qeeg}_`tiwO8-IdLMPTpvndga}x3o;4k&lRV{DDR%zXj~z*q3u@L ztYi)T0;3Ryz5~rYOity}nQafuaoNoG$;G7KPx3t zvp_jO_=4*ccenTL-Fr_5@|sk4a(`FZn&5CfM5D62{P=;OuIA)W?^P8lPGy_s&D>Wo zpWECp(`3i0C9gJ1bmc_7yYuedAHxe3CuYy?yt;A2+sVxb9ppsCBM+;kM$J8X=$6;5 z4AW`nGJb8~+R%`7k@;$MDUa;^yY*-1^RR!+W#bQDQ5v!IX-2#KwrEG`^W3keU;grG z-mJ}~3p+S=^q$VjE8hM}_fhro4cj*ae2in^_G6mvx3sY&Mq-9v&!Y`>Miw$mb}Qc9 zygh66hfc9Sl8ecjJIYvQX-?5E-FdC>yta33{{+s&^rO+M>r*cMGO2KUu|iOER(J2Y6&sb# zJlS=oes4g38^h#pKF?Pib8-MfWqj{2w#LXG@#4xy~)S60Ofw z@{*n7nORBqmrHjxlxw{%Ss%Y@_BVgiN6RK0oA$b9{lO)U56%0eBlli?zQ}F9{KvN{ zt3Q1>;Vw4mL*nAs^=l5^$n<)DP)s*bb^F5HSF2s}SSqtbDnhnyJm%2W1F&cj7PuWJcIC#Nmq8C+vg%w^G&m5=dDu#UK^CQJ+YfZ_^>6daC6Bci@`kgeT_eW`GW6Zoen^c*9 z$}Nfg$TLqz>{8XUi7fkl9lsg9PBhsOprXSZ!5qLD5nLs(bpKJFo4cDz_g?$^=;{`U zK%3ITi|2i~?c5i^Q(pC%=Wd$H+*kEQA0>Z?{fl5xvwyeT+w-YVhXtDCu$ME2}C5@09G#((SWTu-y~SifR>{Z5X@U(#Qk`1Ly{J0WVF zX`;Av;AO8E>b;r{>mSQfalxFr<>u=fJ65@6$*f2?``S zn-;cv#lALizs@P2+o}_Cw;M~=Kb{+W>!t8SRZh_**>k@BWwop1yjoc=kZjMf<6XYQ zqMh}{Gg8ci4|1J9a%hqqE6Kch0f*zJD^O7h# z$h1xF<=ej1`gmTkylQDD##tsESMSXtd*i9eb8hCjQgb4fZr`)!?A#4`nfoR)*A@Pp z^=*+^)Xpne#oG+4%q3LxvV&a@w;E10e&ld#f>2kvdmEQdNOjSFgGFK14bqMG7T=$k z<#MRoRd11KQ`tVt{kvyJKK-ATT@w98RYY9)b4X_K(~O=nhYeFqZ&kEzz4XUmmtK1P zn?O~yUt8uT&3G2xy_S=$?nj&9+ZXMbWZ!K>mX&JjpWF5OH@oNa=k1=)86Hc| zeR%iYmQ&5m@#j9Vul~ncv~sq$ZM~JngCKL?)-&}xcq7(*XIQLlnj5ctZ0Xg-<_dEK z7qcik&(*)U;e=XE_7fo)>6<@tpKwP6{#^g@_KEEW+^1Hp3ogBx->xg4a%;Z+2L;u> z>0g&zT+wC38H>D8rfUbDw)Zo!*%!8>Xmu9B1N@qISy)VH~vG3V{i z85%L{DtWThuBYmv$DeDPzdYKz=;W=hHovEczA1_{7nohUx$elWrS%flIv=KKx*lR) zX_|E8w(ydD)z2ea`?3~P+1Z}8OE-_(S=kon7drFw(a?8O4<5Ov&NJWU__eH+2j7aG zNh?@UHF?n-h5JY6KAZAP{m}PQS0(G8uImmh{k^~~^+f`&WYWe>#tY{9vwprVQ+qq$ zvEbRaJ#yZkW&EBuRx`K=oIP@+t=@6g()pV9e?IZ(cXPgD*lix-D{$xz-yxSglY8$D z>^!X_HCsPRUSggS%gM_I|Fmu#*`n65XLoj!lUE*#txu~@NTJ61J$pBb{jG|-vb_8A zW$lWs2Ujh=;In2=RMlfKuD6MYH%*$r(wtL%v3pCUdqs`%LjGp+@~g4Obr)$bdF8vQ zz9=i$YQlpHwV%S5H%w>U7V_-0&FY8S+~!XbDUoXry|`3rm-t0p(W!^`SNH~VR`n<@ zj=Og>&i1$4y>~@s&$nOPsv|sqT58$mtZ3V1)7A;Zi`>jP{Gn!3MMJ?Gk z-e%j7($5vT!=p*d_{7K(=Z&S9s_RZwb=OgvAy$r7Dtu?O9&iovyC({_cZE0@S zG6{ZHp9JrxSIR!jJJ6}Qx%a^CQvOA}dljTM8MRMsNxU*=!FGw#b39kmHbt_n-Y4<9 za-M&Ft!q_MUsY^^u9NO|-HpXF)iXU5METG2zE?Y%y+~ehs&f0DV_V+DtjbBAJRd~^#Oy2lILUkJI9Yrk3Mcg*v7FlpHunYS6ed!`puGR-)f_4wjKLGy*;2TZN_rc3eU zN`A_`rS+3zhXwnSYB`DTll5l)C@XlgVN28R6!{P96aLLuuKDwE{oT*Y-Sz$A|JHqZ z^!NU}eR8~?e@iPy{K%;K#gSkCY@Xumqks55)>qt0e0eWns>uT7#tO5-haT_s=6n@= zwch78)4gk#{2PlZ1@_Hb>sj{oGWYhXr3p>KgNnkwq& zZB38~)=3@?%yr?59;skzpr&OdG=$!`VT9jgk7)S>6KGh zcv?p8Qn2!zcl^vf^Iy9y&s`_>`sL=P@CZk)x6P`K8m+IGJ%pHkHmd#6DcrTmT&|?8 zAn)R>iiDYx_C3+b?`LUG-l7++;qm_2R^QYy#CUh|CJ@FM!*Eaork zmoj#(eY&Cj_q&?jS3Gy>VltPWzIW7Hbt98cb!GG#_3z(JU%xnT{<_Z6hI!Mj=1AP* zPY?ccKjQYA(^5zOBnxLr+?&3mv3}aK$sw*gig^8p0DT_a#TROn7O~&|w5Zbk@v-39o2-gOHm!S*YkgYP z@#v~GXN%L8N#A>`;n}{oYkyYzj+wk=%VyL&eV_B1ueR8K5hJ(g#nm;n?$Pq$SEtv; zn7_^w?wBk)Lm+*t+@;xtju(=7Wc(tn_HEbdu{yDATSs7oK$l;oUv8MO;e#*IkIY*< zu1#3@*IMU$Pyg}_J{PZjd6;oz(^ih9J`58-B&f9guWUQVBP_W>+V=j;CA-eDIta3{ zGB1ngjbX4n@!irS;!*U6U9Tojzo)_|&Ryu@wP@J`r^u_mcGFZDCF`FB3pq->W&3lq z>xI1%+r$><%g27-t4rFVRTdl(`^h~iJiY1!r?=|K#U8yU%tTG5zwF-d``@Ij%OW!dL0v9sp(|qwR)Mpe~;a}x2rjK7WUo> zcXboG#Qm5xwyTNR`LX4uuT}B&40|X3zLu}LG&_5{gR;}VoVmeye)G=nyXqNUDU_mZ z)Ybo{&9`l{L;s;JCw29$+)Pd~b6lh@CvChc<|cL~O=!mRY|%QVeeE^TQm?r_ymy^E zOI&IJzt(<9u`ORU;euQQ;C+GNJ2Ute1XvxBI1& zU15Gr*zZMi460{TADVQHjYVJY+iKl>*Pgb`i(@{@a&7yW^NsOYpwB10Ur%nFoSMCF z`=yzSL)nsVN(u8tw9nR_cSvl9^LJMHuwE0>U+>wt-u%e?v~1JvX=e|3U3~c2s!UD) z)ZF>o#bvVUkD9e~Hhezj_cr?5p4y+Ez8t=Id9k>B35V}O73Sb~3-36TKgv%FQu(|j zYVrKk(@n<&_r01Rv6^ppLEKAj*;_K7&Igv*E|)hvWZ|$$@6`MlvEDNa-lS|}C^DBz zG}AhGfP;&tB%nLVB7cEtpm19qquEi9wbv#HNmieX3!HOj?WB4>Q}5niUsLVOTayy! z-wUh#7I?d)#V7M-U0s4|PC^iS#~jfK=KH_ZW;6NshMuhSO>SHtq_gy3WQTE&s`M20 z*KUPVucfYzp5EF1(f8B^=}&qr`!g0i{q_C*|C$e{yBQWoewxe{q?0nUwUu|Z&r`-V zJ2qYWac%itnb*>*e|$7qUB6jQ`_s~Cbq_hyHx^w^;`6_BtjbvCwAjtR)$=igNH=i$@O&-?l0TAm$u<=yMheoLgrt$TZNR`2U?98-QQD15|pZmT2Lq+8qM zHm;1-6Ifii&Z?@Uej|sMug2ZYyY9dHFjHawzZaEKJQXYEJxr45I&IVGdv0lQy{v}i z?kv-aNYmAIa%H^Vo!71H*dUU*(oeC%Fk)+oNBe2bDBL9c6~7GJy|cbd?jy}Yx?5{ZQ72H{J$i=X;5q8Sa$1L zfRstuReVv_jpyOl$T83k4W_Z#ueu)`<^_ja%%e0y>C(<$4b^Yy35QD&zPdwy5S#V z=gQi$p2n;B=M9~hEc@cV7P?GZ-_M@1+3x(hPrg?)u751C+0-0m*LH51t66l+oI6o% zuS1v=7f+AX+4gq-sf)VZ+PQ{L*>)_*l9XDX6l4^3RHr`8{_Xs!O_w{Zvh2Y7wq%xzls#k3BT=p)X8sX9J(@Cr?lwO#A~k)EsJHSS8YFM#Uya( zkwfFH8;cHR#N~8vnNWXh{^r>eZ+mB?Ec%qW);ct{RIXd@?D_&@#@F*VbpE@ZB>b8s zDnhkK_F9r?tL+|F{tZftGi0iA4O}kVntSeoykGJ=)rNnHn@nbBzjvJ*cU*D#U9|;0 z!AcuGDDUR9HRMs7XO^0GrDV>N*-G`^T&Zn!apF(+b0iye@pR0Ws##d^&R6X8#l~yF zmOmm-*4((1eC4(M56k_(t}oIlp0v!e-M4jz50mDbfS|t87LONaq?bKgzQpC+Keu&y zM=Ty(@kpL>c6I&IJxe)1?c-i{L*$YD)2I8VSY#|QIvA~bc?^8xk&eJ zSlW>$#j|$B?FX`d^ETf|;82+|E2=r*!Rx|$o1K$I>WeS>_#Hj2)}-;qwduOp-3uAp z-@40m>+U+(yfsvR_QLdod4I(fGa9?1=jFey(9FJHXt(`oy`<9inTqEt?V0{e$ae}Z zn!W$E@IjdmVnsZw)SNB0eb^Bh`{t_5t3T7uKSe_AavdbMEEuCLnb9F$9M z*l{ZK9(`W(i!UHMZdcyL7l-|vTE)~eCD(L+JkY%u78zsIF%Y^7agPg zf6vBWHIBdC6tkqcQ#YT#>Fb&rCoL_gQ4y>EudREDt=7+0yTZoS?D~@Sse)eVm9iyD z;tQEr#Fd4OmNVD!B@EtOxA9)IX%>u%?OOP(uV)x1m5*$}I+D+Nq8@2$Tx?*ECJa9(OnV652luW@td_A1Qfh+p-EadQ7A#3gQa`{2=M0vit&Jl!C1^=8hi>@NciKKj(wVSDY{$wMN)S|9wrezWxD(XNwQL)qFAYL1;-(xLLQ z`f5+W^PMGgrYGq$iq@xo=KUPP?$8jmW5btwPaXSP@>#Y=_gJaFb#uBpX@&WeTmK_V zjpvszv#B5K+RDZBfbVN&|G`X0fREUCY* zs0KCtSg>#R>Ch=w(!Fb^U+Gq`@XHZ3+p=gwq4g=o1z{Hp*R40{vT%y*P5S>*QAuWj z)9$UczalT!pM5B<^8H?1Q|=P3pgD4q?|05Rv{TgokL?*Btl;bDzcg1y-$RP6f?~am$Tz1KUu!&XlV z_o=$m@_dcN7XS9cv-dwUuWPvVVfTxa-hNItd6mBpr`Dal#x89+YeCo9Q*w@?f!A(7 zSYB5jVBS=#S($eEpTg9Q%L>Be%qz9GD~rnecN^)xmYiZ<;$gD5d1>?VW8NHj_Rd^8 zw)Ss5@X1Wd_0qkItg?LiZ+NslZtzXml$w*e_tQ)fgUxl%ca$%wmSa z-Ur8aZ~U+{cS+CNXLA^~ys{KYlsQy%8&41JEw`as3sj0qcxZ^naVdEO-x}<_S|H@5yN?N<#bswoYHd)Ig zF3Hw2dg6`COZIw1)<+dA(+K|Arl6;GHCaw=_L}(;7cb3}Yr2y-PMpR>~VKiB4~?7ZS1%=^Xa5}GpFFHPIUdh*KRlAnr=?wbyX zyg9)V*-$X;)KdL6xq}adHkEyBjqEz<8u_Ywlgg}TIzLsjPJUXnMCb6mq|ZwOzMY>w zqd`Z{>wvsTWvx*K;}>&%Cgbf#ls?q6@0_f^YL?JP_R`Qlns2xsv`48OeSC>~>7*}F zLe-}uyndCf(GxA?vDTOuyQlk+^R~7egR3HSA51y~)zTdIue2#Vw8P}@5>=5o2665m z1??VR{kpUKSagY^kKTsNwcal#7#&^cn);q&{beD|beq3rSC4<+Gi&y&Gg8-go3l(# zsH#u;{xC&SBvN2$z3D}c&pS6B3%N+V7*$Nbqo|5MR4-B`KRQ(i~i)!Mg6Y>%z#%(=?(g8QKbTi z;oJToB3kfz?UO{AdPa`}9tP|G|9QLF9F?$Lr`P@Y_w6V56UW1+IpvvO9B6WP zc=P#>`R_XtIz5*cRn>o)_4oVqOIcl0x!+h_>b2L4YgwcGZ|gD>^PNVK8~je1-Lvi0 z?R~IQMl)D%##Q6QY5sPvj-K*edRe+|*UbzS-X)%4o(0`PNADS)tJhtl@4e{K*XD)n zHxj#ZjSfu6t(NI8sq(S763uVPsJTz!{|;5DO($85;#H>^@-$wt=a_$EjrPGdu@i1g z$*+4REi&DoA16BLzRoTG{F#i-OBpwxd~rJG0NeZ@Z~Q%!4|^QXKNV1A=eEq}Fq2MD zOQuvU!@=|iR>e7s7$Y018u;sl?OVHxIkoDy{rJ>)%4Ax&YDGiQ4jt|(<;UNoi6}O> zE@5VUT_Ca0XwJ+N`#$g~|C8QmJHyVdjC)5?dyU%J6sv~zM>1U%89S0p#1=k36u^6w z+xBY9RLQqGQ6^I~K7X3TE1qyD@8a~#lLZ3z@A7Wwi3r&}A!CmBLXBB__6vlp5Ns-) zKbg_+^fRyBnvsw8UW`zh{@0XIzMePjL&hbC;Lg~47P3|MRx-ZTnz$f8_Gx@?owk0g zdEnaDAFdzcoY1b-SQv9@W#-(1n}@kwqi3^8M_b>#zUt~J&$}6G@4a59ZEm?I=po;I zbN|NcS+1|xEB{_{d)1cU)%WS$yE0R|_$jexv>$ZdS@~P9sayKPxx&Ipzm_Uq&E4>! z{??_d+`E_co|3FpFkYT1_ie=qS=qU37a2-7^jA;RUh=qi<$T_?UWze0u5P)o!dzuf z;R^vr{)l`I&-NM9S4vGT6!%DJ|5&6sDzED|v1N%kpjr|_Qzh3E3>nWkIE3!Cnj`1WJL`_ACG9lw`~ zx%`!Tc-pp8=HbKCFZ!GYjrL6?*^lxAH+gVP*%JP8=^N?)Dx1Fqm9YI+Tl($h^v^e{ zih8cjlc<@KlBOxx=fY<;^X|(*90vt1RUjKy?)8;!lN@fs}eW8GAw=g zR4M0NmCK$0xtCR3lT18{t=#>xTyhGY9b=5KT=!co^Xl~}SMSD_|CQX@FJ8sACCd2a znzOerw_Ds361~9FeeJXDI#GpKuBwnZ@;-HZ`n{E{+Hoqq+LHw)*3a~qWYk&lIrG=1 zx95GN@~>^#>BBjBe&+(S$sGw3*4gitbT;T%Za#DI<(`CkEBRYD76`^1@s{>sFwN%De|AUs;FPr9BBy!q+{KxJ$ee2mJT0zn3Im@?w zi`#jJYyN~|hcjglJTp$8vznLh)G_hd=K5_5D!rIri?-Z)V3feokYC7r=eE3c@r=*^ z3aY;yO6cyM@|?j}K&#b^bJv5}`trM7XT5V$2(_{M=h75cb1ChqfW?Jb6J7cBKGsV} zbu6D(@gO^F;hueGc|O)@@8wyicrT%@_v(tgTRMij)1NXu=C;-Se8%!-k^hyaHXbj| zb$;&=DNQW@X%`eN$~-mc>Jd-t(3wgvy0ZQ9IzQ=or*7W7%DTT^XlAumZe!-8%*;R| zU5-~ju00Di4lCPvn`!Q&xQ}1`f18T`Iem6ky}*ha+0D!6c>ArtJ!6l2RJ%%8j9mY> zho;*ydN(ZetlpxY?0Hz*(5XiIzD1~&!lVA9O%Ca2k6pbdr*CtsWySG;w*G~uAHP!3 z>)$+Cr2gRjkE!*Qv9V>RD_VDLDcPpq-~J_;e}#eJy3>zqXO=tISEb$iD{Oag`f>iB z;@48lFHWyN&L8sZ{GZk8#^J7~=15ztII3v3&8^`6t1YuGXPLHg@3_ro;A$IfdAWGj z`G~u`%YHb=@nn50D?k4>n(6m(m-O`o93S7hR@vD#2mdN;mDRmGH}9co1CO$UMWfjS zP0`hVjoVAhw;wsC|L)zn$)EqZEM{h&F72_Xn$JD!;P!(iTkEyH=$+Ajv&OpCX2)*l zhNs2UD~s!Wt`jP_Wk%eRh4|{ zA9hPtPkHl_-Dq8({I!Y7ysgbbEbX_8xw|VIj7}Uo@I_Ns$olVJEr}bBnrB&ePm(Hr zae{e8*Nh89!zL(Xd z!fw+ouIYmP^0p4){NLZ5yS(LEYw|coH4AmaSM&4Sc@oasYriakp z%~fB6yDoA2?$Wqqpie+yC`iEHT=JLT21Vt&);8$%vG)Up6-28F#gQ^RBs*TlpjwPTlTtWukv5M#QA@e z!puCEs_6PSVSU4^B@6c$XXLuxTD9}-AJhGgx5bt(4c(N+$oN3~D^p?msfSLdv$qsV ztX=80sW4qs)?2ZB;?wFY(KV)#ZW}jkZIgC7IN*u`+sJ{c>$*ll*u-riUBic*VpvpKCqkkQui0fz_@Hw|WDw^;!l$ z^}pnpBj0??xBaPN`EFTB#k5Z!!x^tMExoegd}HjpgF-uRAFZBHxtoQ*N_qbAy=)Fe z3<8~rZ)?va$O|{fOkSPRpDiO7{;)TDYevg7o4|$DSE52rOYVB3F}ZP*NJ;%Q0oPpL zfQ@KU&DPrv9JAoh>;8W;WsWA_-1?Brh@UdDEA|Sm zemlGMW%s3I`*{bZ%{74Gp~vwgB}URxs=wN6TX@oevByNcP56z!f< za!};YWWM>lzil0bc9^QH-Q8U5c5L>E?e&jhUe9Lj>=l_;)!$rgz3%(B7?be%U+kqX z9}-pC*BP#3mM36&%2z>QPlX}dNsiRk=cWuIvh#!+IUMdv<3pI`>faplbr_!_a_9Rq>MAu~s6hZX`RbzIcaG%*^ikiW8c8 z6Vw>%gM;1&-Y_scAO5+#pzqCU4b}^`*M70^81Lj%vq)s=yR5CY{YbUjI+bS|3zs`K zn&~bs7nnM6pXrfxu1Aifu=R)iTw?XI4rzl*(eJu_g!#@i-0b2qPj!@Rd< z+X*kV#rGGu7RDtq-dLxxUM;XDgYTuQspF;xtE1O!Hr`S{-FUXmsdEcF=cIhd;+4{U z|KyP1q3A2RO8xVG6<>9`vi!yW8s3lZY&S_+n)I-!_=WhhZrR=XyD_bEBnjQ}u#Q46}ImdWlSZW&h;e&NO{C27#202^`w}OPba4ByEZ(@mU}B zw&D&7Qa6}VdPm~8V983O&5utT+1qMS^3Hp1@1)ulE3*jdN*CW{_*-fs_$0y(_FP*H1yzAhFj0QZmHE@KbN|bW!Ggr z%UN>_@7(2m!q@qG!8DDz>$Y9kXO+$qxF(46zM$4a{kZ)BT@N(od|jqu@ZnrQz_Xo; z4*i{3=6yx=)I6SJl6%+-cw2p1UY%=H>O1moLBygrlQ;4GVzf62ER=k#WuvdPktdif zsCV890b8s0?-qPu`I*`vclGP0hS&9}j#Wk_dv%r+EY7lK{`~kTr(83Ws=(Aey4(>_ zTcsT3wMufk)^^_bG2v#?{0%{d+OKBcja|wY?Jb+XYwGOvA5yxPaU73YZfX&*QHrCX z|NGUwT4hr`?t8|a+4Xhr--z6e%`6GqzHmvXdX{??KAhUC%Q&<5Y05l-o|E@KdDhMhT_0G%q`TMER8m2QZNt_N{xuO?S)2Xs+#2*` zI;X@e)o|&k`ZRgXvVSLkcHCWK?2s(`k+ZQTa-N6L1*xPT+YF3T;xz)aA}>slP4hn$ z_*11>y{^G=Bw!On#lU)f-_glax6Z+{l$&do-wV%za7`9@H1ar9eq}2zP|8Bne!6g_E!i`+PUCytj`_6O|#7=t$ZKk z6Ld|eZ(b#rc*6viGy0cgPkM`|=zhMha>;1Z`R+}t;%6P6{3(NnJt;lo<-wPknV!NA zZZoKEH`r`ucVJ5A>(6I}EKX(#r5hw1A$qk-Z4-E^jdi7MxhOyZN0=WROn?N{%kwEI#gqW6xj;v~BQT7j`Cc_2mR&2>hKF_Fe^$i=FQ31PA%J!Q8a&Wuz@ zG#9*2h{NfGBxs>XE(gz(IidvI>;8}}8a`J1lzJ3XFs#Q)vtGFQ=$tg>u* zdFz8`bMH|88^kVeZ#3mWRe!N>My0|wr8)Z3Z{PN@Z843wZ^fg+9z`S3iwjcJ9yQ$9GxFHqR3Y;E6KP`^tTiJ4i__C*t&hgLA~MrY@M_nD+Kv+tSWU z^TO}{ytTx8*_ZQa*Hg{&cHLaE*)XPmQ>kLbf@evkrK;D^1RM(v}4iQEXCWt@3hsf8La%a(R16L!wuJJR2@(5Jbta{ zL%N*VweOj>E7UgT1tc|^_Z=y|cQNnGgu@w2%Z@M0@lo16VGFPKns+Fp(^h4)@W@}x(3a7iTisG!NGG?iL zQn$Uu8n`C@Y~5xN$`jAL_LW(D`NTePO-=Lrch4Sm-5#}|n(x5Ag7shLcs~0uai!Dj z@6*q?GJ4f-@C|zNO>C|^^UBkgulTZEI(qI~;Nx@eu5}i~++FliG;+axyOaqRIT`Ze zh5C9YIlcJyZdU&jwb%Bq()4EhSl@m4gxbsy*9D6&yMC7TKBgHYepl><&9Y@xhefX3 zdT?N})?!J)YgNLVcdgZRd~xB~jsr&*@*lK#BP*G6mL+G&$6MC*+Ci^``g^Po@)@r4 z+2Xh$(`wFDnLx>@90rB+=kDZ_d|5JC?b+)!IyY>-sQGTp(t7rD&Y=a7PL2nJuWpUu za=wz8HuI3*!%nT;r)Kxvs_NTpwDCfp-mQ0=&q}JSb2-WvC0YAQdFGt}0S>LiZ&IGi zPi5DfE${v9-OsVhfPKmL%-;I+FunEnSG}F0d~&gqtwX{K=Jgz(J&k?2mQ7{YQatga zZury|y@$SW_Q#nt;tb_o&irdqI(2wOf|kj76`czX}{JnJPynPS*k34y0<^4QjPs$R>e`jXzlQ;Sk{OD+$+Rq!Nt)6zh zu`e%fUgfoZqWAIrj*|E8IZ010l5$Jc2yI*>GPQA%knf(Lb;}P$JJ|@llK<;#eO$Kp z{=H4T%8w2&zV>Nng{_v_4^!FD#|vH+Z)gnsSfBE-YUKjn`_ZYoFKceJtkOF5Kuyp$ zCHvKM`!h*jp02P>6BjuA^U!qjmAO|feeG<2ik zC|P$tKVRQ>XvLzB5m$8WKPa1BIKlthE@5ryuKn{jFWs;C#qfCQ5jP3umeWT>^x~TM z7mMqivHFmF)n-E7JxQthw?7yD3p;lt`FwPmkrdO}z`m0qZ@B8cSD#CNV{<32n&WD4 zX-cN!iKR9PW=o#T+&cH#=bYmC&4KH7onE+`>4Ve#2;tO)PL(;eA}Zxu7alwDbNK`( zxlHrDQh`&XO>%zA99*#ToxJ*+4sOpc{G~TPws;y&-DGCTy4peFtg+AcHzkK#?iViG zG4D&mPOifjcBC%fz3{p2mJfw>okcriWe(muvy)M>t)Z`>?m*YSoYGn6>#LUE zd|w&H+Wc?(MDvFK@8wmnzkE@3QT#i5mJ_$KRO}L_O}+i< zVqv-V)hQ-csTFx`Er(_PpZp+y?0N4u6L$87mq(^g|6IXe=O~pYm8vDWYNy7Ar*Cvp z@=jd%IwM4S`dcj%Mh=C&er%t9*8Dr<;SgcuazwpyvSCNc#cH;)qPZRH^^ChV@!Vrv zA@-3^Pq#kQYlrmFyntH2k|PbaA3uKc*Eas@Za4AC(pkYvSB4yT`bR0+>2StM=^uBl z?>@d@@=ovdj0$~hhu>EeDShIldfp^jLxv>kc=gsNJT&1Qpr_Q%7*xfkE zVY1cDQpuDC0c}Uah0k&o!))32M1Q+!b!leLseLh$&n7UOP^{m#f0BgLsvUK6_qCl) z(_#L@H2Kg5*0{;}cH)m-EZCi6CYSoY_ljlQuiyWcw|(#8;~ze12b7=ZS>-h)Eanc0!1L@x-2~x2(K`7x$zLz7x%hrVj=+~{@KPIa|*wq4By8;-WUHc$T7KV#>Y zPkCfs^Yn+l)w`ARRG1Gkd#K)h_A+6P+Ra4a_lye9SFGe{sVn5rsr$8HQI`MYg%`Z1 zUj3wgxNt5DYr~Pm35WN8oZzsa(ny6p-_gyI_m8yO;pShC0SC`-b!gK*V7EENBFc7V zZ;Nw(La6~afBz!aph?a%jg?+3k)O3{J4gL|p3V1^8AQ^oqcJ!7}? z^bm=?o7cy58r0T1FWcc`<$a;>3#TySE?!RUs*ZOmpLk|5-#?wre{B zS?=(?`nnf8CW$>-_4tR}-q|05^nY%+_hs{Hp0Mf0EH>p=)BCg|mN=}-vgY|c{iRVt z*TaP$O1=i>D~R)+so1D6pQllG$I6dM-Rl>fuCa?x`M8;5F3+A=|4%0`PT9=v`boOz zXt6)ymMs##^jf30fQK8=gM-+qLg<>NjRv_pRpQ z>f({L3I++skL29{%=x5t*DwAH-jjEHd%DeLqTk#K!vpegpS$^0l579G<1+e>lo<4F*9*>i@ND5~!Ma0lI+PY&vOo4H;)~X_Pfl0Z zGm66Ux4e4qT6$?_5VKAFMfMZx-gsTN&O4UD^Fc=c9rF(Msy!sb*IFK|W0)8!`J{e!Te&6BPuCoQF}$4)(;CGz-9Ph}TRVd`0| z<+$KfXOGhVc$r@>6pR`CR|VY8Rb%n>6Y%*NxG?I~h6Cp^=ewL)6!xn!VB4iwQ`glm z^uL;H;99~Ua#8DN%U0`xYQ_*wdcN4$$cR~zp&#CZ}S^7 zY^G&bYkz;SZEtkd)ajk4uivc-d2vrZVD-o8Jcf(bU6^m&m-uM@4|d57RZVj0M&75y zZlwQj3A`m@n|eu0chkf^K{4awtDMS%7vAKV9L^!G&3RM(Y}kwX7c(b5&bg4~?J0UB zx~N{8IbOg&{AbcX?S0C6>lO-nnqR6`dKLeg^LDk2XP@p)`H;3Dw!*4x-uevZb5~}lA1i8dTia=+rYdR4>X=kuCh)Pu zj!9S6;uW>?p&N!YG!WYHkBD|l^G%^xKPq3|~AYYEc>d$@`st|I4C_{#|ND?w_u-+l{C~S0N6*_WYnk!dy*}SV>yw^!edSgj z9>!U%E<=C=6^Un61CEE?m&ioLNb988ieI9*_4uEmm7CEuHTVz%>QbzS?l+V=>e-2Mz~BrqbM0}XsZ4uINQ^8BDXke0af|kIB8sXEis327KMQW6MK(r`k80 zCiplddH!MhB(*e(RWDzyb{kjNhW=w~8acCr>d%~FyL$RZf2l<3E{QWN-V48J%JWD* zjPsdwui#X)!!*bLZhVU?t?t|xPi1%W{5h59%AxdvKgD}BHt-+lwas*!T6I-VZR!az znkjNVJwtpTrWSa!L20lkkI*Z=Zf0-_y`|sQq`+ z-}i53$p}}haeZ60)a}*2^CFx93XyiQ_cl(vyyoYe)B~B-nTGY>+iK$znCCQGu_j5? zSQOnNxiM1Rxy{^+c}{!wFx|6gZ6p8S3PzS`fTyxK6PN*w6xhV74jZXDn%iP)3gjc&(*86(Lq>4yiy)S(C_GYns@gh07 zwldaVi)}s>E;G4kB>012X8o&cp-jJpeg`Cnu!=l$o|pG+OM~IcCkut_cNQ+tI%u^( z=-Oo;iKp35=6+{8!1KN7;X{U<_YY<)EnyCO^yKV=Cu?u1=et=OR|n1)*qGm zys+p!@0-V-Mn^dB-(w2u?lPSmabM&A{*On(<=5*m${7T-_y``8bbD02#o(Ioz0}h> zxjiarwymGylq2m5RxNqnU6ZM{z&)v6YNLgug~PAH7`;fpB|;}2H_bcXWZA*ebulGu zk;-N%)tRD^GCG^pyp30HGTE%hrfHO&)KwqJ9~_};=zDF_oHeT-zGIxB?G}Ic^s@+& z>m^rBTz1b;njLCsB_ksNxvr=m+e*FCW{NMBTzniS=W&VAwUte##XIF-v_yr-`DA&y_ ztxT?O_ziU~rLsLJll;wJ*|X&4@f-Cng3;#~j^B!wJg=0ko!ZsJI8)^Ti_np}qvrpv zhOTdWUG(tyzw+kwi4m`U|91c2E5GsokM;4ZFD|UEu#Z}>JoAUeqpL5ZSMkbkWSLsj z^7Q&driLGFv6nXff16O>u+c!g_yu3xI_28Q2}@pRz546Q<)U(}(f8O3-FZLyXXrgM zl3tbMvgF*NwU4q>dQUSk^T|wiaZYl`ImXM)!DKD;5;a{JwLIozgiJ>j;R{gWO7#8oy@c2vmq(g@`8}b}7-C$R}e9qA*=~KZ!{1Q)@ zi$rtemy@;B=QR0c z4E5bx$tyi)2&C6@lzI7a?hT= zocn!px7hWHS*5=d_Xk;hp7mj=QtP3B%w5k8OyD-`{M0gA%Rf~!#^mKe11HA-UGbkh z`&8@&btgrZOq|opkPyW6?)Xl@A8z8Bt66L}FF)|AzEiGG;VYB8?&8ErXFL|Bu)1=s zQ#`lkM8oYqalyZKdXKw19?WoGbN%=vMoqn-a4`vvm$7fAykx!7GvSU-t5=F>;EcZ1 zoe5cv8L=lf#l3v#C>mJXw65bcdBo)TFLa4Vby*9SviXQuX*=G{1dU77`|XH+^DY3jAW$(Y^1hQ?%@~hZ@4C)B+X1Gu27mb_wIUGv}y-Ugi$%D97TrH<>E3 zKlSz1olm=XXWGwgfphN!=!J6dRXf_-*!0i&-S_ZXUF;!|dCN_Y)i22K%vtzXO10Tk z^DkrDA^A5cJ__|&84g{HlB-@oztmxg5 z{`%M7lD&IQaP2yEG_IoKc*)gsio-J$EJKQHoc_g}M$stKuUC8yH1%I(|9v z^8P&ehdumc)+E2JRtzR9^bgffn))SoS_p^V7#RIW`u-8?Bvaw z3Z*8AyC%r%Y?>Fs82je^>HFeq9;s?u&tdC+(c~4ssi$(%S6-WgiPPuh>dCqXhC5~* z6XjYsyHN7{#eXGh19socU@&34;H-C%^UB(53kCYueEe|c`6+?d>I?RZMNXZfysUmj zd9tT=QoMTD;%$FeR@`21tFk4U$9&ZZ;l@KZ70kV*H%lCpowGrCdf<~DhEMpHz*156Zr4QlK+ISB1 z-mN=x34^7osNHXM-gmg zOf&;Z64shEermI_GYGFgcxT%F566#AOD;QjH2STv*_rRAkEiUJf8H}txIW=ULS~`& zuPlaXYCOfZ*|U_n6rRl%6^fAdRA%c2_*MeHXG>b^Ae+L)gUt#XVL4uAW9()BZU|JL6zK2e|0 zecp3HknzsoH}Wa3kEzTOVs01BO>XpR%$-pDmGcqv90>snixTaiGe+MuxPz0d?`nAz zW=Tvbj<1-dqJFYML7Ib^tw>IW!=33?6z5_y%`2B;H%;>J@ja9KbK2rUR^2V1k~Polt&dr9 zYWGr;PgkoFH0QKjOS)sYHgx0U3+(R8m-%TsPip)S!R5X20^360&$(`a%TBIdwe3RN zE`!hY1uRnzEZ=6WTKmYK?e}lyhoXV6llPnsxcDJ`dQsWq#O#ez{p;^d2>5aJdR&#S zsk!Fm4U3JO!#-A>SS=vnCO?0*;E`*k8>epxi=3I3&7f8jYV@>g)||9=r6ReEH!m~B zhd$oa{j@E+S}ktzzAlwMMs9N+q>>r(5u-u;`a9mvdej780?ztN z7@EYcv^E~gd7G@BHbL+AjdL3tcAJId9Z38)>F4BX4_xi5^k@kFMVTCa82dMfkQifbKUA(Bf~J+_iGm2VE)W?OIC~Y&z$A%T=cz5u5CsA*}$344*K7=zw5ecU$c{$i=O$6j73`)1};`I zj(q&^V-JsBwvD0P@{cJ}eGPvOEISpt`1h+bbG5jY{G`&iC|9-jvgOS&eX#13U(K#Q0L>svSrn4Q>}6?7Zi$r%f8&TdqRCn;**s4s3+T*xVMNt6mgxH z`uUdxv;V9qjY}jRDD8e&USZSoqgRIi`lS1p#l^#?l^uVoeZI#*Yo(}`{@zHA^2k+; zF1z1`B%BRgb!s1vEE`fB_nz^)cz@4Qf2-QUY1yt!S$_Z=8A&Wpfc5_ajDPUSzyucy$&Xvasq8Fe1a9otbI`_$yoh4H*CR%W4dOl*fbc?aA zN<}9orCq`}WU6#(8_V*Ju8n&b9#7rFRml3$yk24c;-CAbPHMY&^xwa*_h&C$5fZ$) zq%Z8UY4!DcPkvf1THKh$INNKdoHJiNpUHGlr@0CB^`at)CXcT88U>lPp^CWqwG=YI!Uhhc)vFmmpn;4OD;oc;f z`li?Hi7IjyvD2OPCaA@qw7Q@&&B~L-`1H=za|~L1WkvJedN-L0>z?Lzy2~ea?^+(0 z)9#wY=Nzv}to$;%PfwJJDSEUcXv=Gr!F*U2-b8hW<*DO=I ztZlFEWuClAbAFyqnbZ1AM#Au|N7a;rb6pHPT-{Sc47(%Q?yg|zx)&JqLh6I*2jvS@ zTc+Q;w`jVWkEzzCrq|crF1IY{E@jx1)55nO>5^m7V)^S0A{rR6AnFtAi_o1nVD}28UgGxITRP z&BCeiaf`exS6zC>Q{=_QrOL$hJyBisgn^(~N2AbG2jj37fp^cm=dC^TDNiiY&dN84 zF|=f9`^yzV?LF&uZdNyrea>skJ-=4>)FGXR-XSwKN$MQgVX3-tLF2VY%&}!_j~u@k zlCj6{(u%$}x;Zxwy}G?+R!UD${hR+`&weev+#}7fZAXMZZ+p(f?EV*yGc(k;w952k zEoF-2?mwry&368kV6y|EP5YbMd^W1TJjl3)@&0^K>sODMm&bPT&oP^~+g7&xQrx%%R@9xgY`f}z{g~2fX%DA)eXyn{2H9d{>+w#j0X_?{M4v92T91_{Zl$S8Ti* z$M)8>U1t8mWhS>QR?j}`>|Fo1YwGbJwxjEQ-dB&($ud?ywYH@|B<l zpVzN=dgrcDJ$J2xK*K2u)|<)i-=@~IPujb8&fhB=`dlnC);jA*|2|mIZ!2-gQRZU7 zf;vW)h(P20&lZ_1P%zE;V{wQfPyp$U^`uk6`|6VC|Es8bQ(bR&{lm%<-uZtNR;sBk zT6Iu_*_?sg=O>IwyJdI& zOR(?b4mDr0e{bx{nGtSZw{K4kSoo2>mvQ~=uH|A{p?4M;SGLacR2Ed0oa6r(F zy7~sKBMynPS+>2~7*@6VjFM=c+$Y~)_N1*H3G=`3Eqnan@SlV2brx>rZeN?%TRgqZ zA%8%wyyjwy?x)Fz)q4}O0;a~y>dT*WDPQx#t{?M`&$+rI(>?3d!c5P}im^Wy)N{1m z@M)QJY30-J*B6GjT@&4td&QwtW6o1YMbUH1V)Jq{6S71~j_U^)bLZ!(8-z@pQJ}JB zTeambw->d~)NY<&|E9OYv1G?m*_>AGSm)4&6{*K&XX`aY?$;3i+}pcE(D>`Sx!TeB z3_eER?uD#BR=4`8YnR@>8i}f(JMTp#vWeE$z27)vXGq_f{X3RLs(Ok%V|TS!WaVmF zlU6^)uS#_t~R-N?a7q?Tn;Y}KRxt$my3sl*6oXZF0mnmu>!+{mqqbS|!LF@N(| zR#K-RygqY|me$23Gv*ZU@t7U*?A!AXrdl(r@^;5DPPugW<-?1M-IaU4yH7t`5Pf03 z@}J-r>dPZ@=6J%8y@aMWV?7j|>& zc7)zI=-={Z=b^imabgvTEdMUnT-FVC*|mS_y)y+nFDA3;lxf|Xbt5xHKT+N6X^`4k zpXFRebMv-VnrZ)hZQ;HA^19%AowFBS)VmV%NvX%mi|hA?UfCM>2~}`A^gQ z()EWip&?jd_Vn<&{cJPp=f$#QcDz!blcabl*~R?9lluq191P$7-_4t&?(N*RhrHW# zpGM92u4rL%{D#*Xj|7kIiE(PBv604H{O-F#_y1x)8+CHev(Eq843W3ipB6PR=SVE* z*{b(8TGG1yt+toLcby-%>}R7Hav0n_i?E6+sXLFpFVFc-}d9TvqQZ6f;%Qw?T5?%J@J{4^6=)9np3W+4=pY% z?U*6_Gd?k)Y=y|N=j`lD?)+;q*rJjYsCaxf=QYFMQ}mjGpZg?=>i_V$o2_{5;X#JQ zhZbtM{(5;T)uH+3lO(S2o*PTP-YQXASMMsj;Jb?Q8`rdoY_+f!v#F7nxJ`d4g>)7O zd;TmGTqHD8OGP#|T(>?|soO?^@51Rhu^tB{tuhi?qmBso8>gDCUwNND)JOe6)QN|) zlHM$0yw!I*!kC+1Ys=H;LCW{7KTN5vzIfyE!yCton^%Y&v_5CSW$XPQ;$GVH?KiK! zee8YK5A#+amfWU^ex4V^?pFK8+bmU1t z9rEu;MWdYm-RsX(lh0k*+G*JR@!TtoddA1IBFbN-AD%hM_1tUmwNsDjMQID_M@@9O z@~SHjTcJ)oyzOyU6~wT5O9Y7;)ES5kDCA9ojENsdzwk}sV{x1pKkcP@tM=L zSuAbKs)F@i5sm*AJj`C7mNx0q`QZ0gzWl!O_~_5@)E^y(>OL^ntqg7CuMS-@J2=m3 zm6agp9`TQnGvyXm*l%cik;DIxZ=Z|gvB?`5Ii)n!nM3|8>N?c5W%?pX&AfVkoyl{o zJ_<`)%EuNi4)&|6zCCIGqLnWf9xToFXK53#oWT)UoUmA3{RpgfBTuc%T{S>6rSnr&)-uHFpn+Z-*54%k+N^Q1MpKO)j_=EW+ z+rhot{8B?aJw;>9?5BjQtXy#GL*u=*yCQxxrLboF*vIUWS7jG6al)<)ah^|wX6Mv? z9y}+=GqhwJ zT%T~PYg5~>Bp{=5laXU2-#;FAi*~_tQ}ugyPH5L#JUPX5rgEuWv;B<+MwXKIZMtuV zsD5;pj9>S$^}~7RCmbtJ?(5^7>06?+Pd7yPZ%*18_2>1=nx|$K2pu!etPvFbD0yo8 z?23(U%N%~~h&mN%w5r1MjGg+#{8<*g&pt~2dJ?cY+IO|FWZkFL;#Hb40ZdBai#bmAxfw51xo~sE zr}Wi(T)2N5*3?P)*Q-@Cv^QK`mS?ZZvg5PGV*7@vGtx7ozA{!F7n9d0HHmZGs=n`k z`Bbxz{7(g5p&#*l+X~s)+KWWJD zCm#s@)N|%T&lZ6<$0TNTpEWcQf2AvZ_3n#TJ3V5oSlCpLG-=J$%$UV!BBiG~{nDoX z_Tr!o$2+=>%#Di$MGJYgemrkEUjI>yd;9biuIl=~trpq(->8&x{9D{$ll53;e!|AN zoiB`YqPCx0z zlcd3Jc*OC9_(APE-_n1akN)%A{KnM#^J2PVfBL>TwR;Kc^XrrEFH8PBccE|j!O)+2 z2PR!i|Di4udvHJJIfbfYb&Tt(w96ReD}LUKIoVrZxvVTzY;UVjN%_XWy?)O&D0xTp zTz@23E~h*9#EpdulmpgGU7QlEKAA^0VdAIGkOvnhEVl{?5!yPh?fygM-HU9e?331? zwBj(kaB?QQ-G%v<7v~4vd)yv0&3Vf+rHA>u#7~~Ju|6I@{UmR;_PihKU)D1)q+gWW z%iF#G%~Z#l$Fu9rtyt5PCw#r~zvj$(FO!;vJL&s=>@eE5u6O$(phPKbiHh$h@>a(s}EN5k(wBVic4WrE z*$MW&PWvxwZIZF>SF5P`W9(O8d+SHujTI8tANs9tn7JWimdWJ{YftxzM=yUL{>koe zQh|@~rszjq4zB~{G7fj%3f!Umf77+3qQ{$l^vX6>UlMJe-6dVb68L59v>RG!+kbDH zdURflX}Xo(aaY!pJ<{*uQh9UgFVD-|udVsz?8We@ukUQ=|J`uw+npC|>-WjNad1jo zcscBR_RaP+H;-Nmjr%?!X{Y}$r+o=GzLb4p{T%;)_ndp%66bN1qQO-rZjo_9iFN@mcfs}h~^zsi=bO8jWx`;32&b`Zb&>*-DvyoOd= z>v<$1mzgA_%%9C8(e2CDv(q5q%uYt-<|R^UDYKXL-SRx?cWsqS$Aybait7%AEx&ec z{+HApEDPUQuZdW?a+rn(g+Xlr4ioPwa|E+)3Gw>~$#h~lt9Z^cP$CaV^$}BFKaC+ynb%-l9=-sV#Ust)lL)NpmyE-NqvuQg2SZ7 zy-qjmY7Q2!$!_`kzW3M>=gVm#(@#Flp8qP-q9Ne(te>U#Z|B9#e0{BEXX@GM$pUT* zR<7Ea_{8&IO-XgVtlQ5%Z-#X@a*u?x#5_!%Jn_~$u^guW(HFZsc4e!k#jJPZbts*A zU9wNkSAEglQ%aXEojI{YG~x9517e?j*9pDN@;0w|ZKAgAP|~*YC8;})@ov5_VS92} z)$f^I*W&&w=j*x5T%w(vyhHik(w#kT6Swa*&ADY#Ju}+)oy^2fn>N)?H}SK#(VFO% zHB0_fanfxOqfgFzuUPl87oV;8Ab)e^tlO{OtV-PWqT$o`|4k$05cmHCw z;;SQ4e15my1^o+~x_YTsz~l=y3(n|$I{GJ4I(6Oy)wW+ORf#V?t+klPX}xJ;LGNYR zdhgrs;wEuS?8`C{x%zVU1)ZBuxg6zFr$nyX>m$OLbN|n*?d$>@kH1-T^UQ-q^4`bo zD@^WXwmyCERjlP}g3exlO)m+)vYkJs%*=hkT59h6RxP(&d3WDW_sumIF7`?7bh&V2 zis6^AV7G_Mo*J)BW@F=-S^YR7=;5LxSyOC^OC4kCuct0k=m}8nPh~0ja&I2%!o`#R zL~f~>=W*Ql%^FTKzg?b=+*;eUm-;=p{^(-;vhw#{_65%-@+!YGQGa|+a0`D|bAvCl z_OXkrU%m|g`6#HDY4P0JvNZ}9Hu0GstbKZpQU3AvDQ&#`X8rGN-E;KIXYnd-uJ&!s z%A4J&B_dVM@VuV8^|pk=#FtNt9IvozK2p@^Vdp)f>HI)12ok zJ+r*J!}UOz()m5?F?y_Lg&Y=sxGC_1Ezz9mndkYBMGeJO6|^7 zaUGYrruyp}X0Y;IZ%ml=tx95g{t8z^xm5ozS7&_e>@c7I=7B=VQ~ymX9qV_z&((S= zr5!ZmB4?J2>D8=jHs-5yZ$%Ubk+`zg(sriIPQ?vB>L&@jV6a_ne>z`6+-*ij@|`W`_rH62^`V$fUdUJ5 z-FuncS?9Rk|D?WSBh&Yvs%2N6Ep+`QHhp1{`LSD?zq zi<0gf%!ppM>q59!dgRjstD7G=opYQJq}N}Nx9YS&IR|^9G>6^Z8ZnEcyap52{X zubXyfbMOQI8IuF9^j%0aGJ0WqI`Lgv(8grJLly?kwpwytI!oGl^5RnO{hwOrb^rXT znwuRq{z;}^GPIncAKVjW-I@E?*XXnVt--;iTW5|{*&?o&-zHYhnf6rrIk%hfyH)dMoV!?m#8`SSF+{j; z_KY_Tul~rKT+HsX;nM%7H|_oZ{d@B~KHiJN?zsChua9SXVix|k*r2>u;(DHbeEH>T z(sK{3KA2y^zyEgqpR1~W)6d5#v-52`TRVAr#pj^=Z}jV!kEF()dvy1$_o7|NeHPA} z|3q!d^V_HWI*xI>{oB5^TU@Jj4YxeKa{uKG-`HqrFKa!$o&O7N*ZO^awztV)?wUfq znQ8OVbDCtf?~IXFSa!H|d-cH>M~fwMwrEf5*tTMh>W<5t3&hLfigWAp?<^>ei&BM?pV`W9Dn^FL-aV#i^iuAh z82`OLtmRLx^>TbVA~T_mJAGGBVyvAHTnwT-HJ*mwSQQ`tB>lze&{ygnf&#~M?nry|d*4|(NmuTQs?VJ(}6j z=Kg89l+N`HMNc%YGrdso5KDNkth%r8cq)HO!O zmia&JT6Ft^#;%z4zwW);a^hD){g%(SYr5|Q>@mOn==N=^YooJu(zCDmfeH^RnpH8r_7CuAgFW7FwwAzHV6e zR{vAb*%~9+n?}6J0*^A+u5VqO{Ulgp&1D78ut~`U*$+Z5^_MC;B&mty<)*&AsCKn} z_lfP@)+XEQrqUdp7&8!WyZ9N{hGVxPp}{YhayrQ)t}-2dyR zMWr&j$KHMzS$~|HJ5!ZYkjXIiyQm_=&3Km&{F9|c6t}v{h@?0?*7oo?ZYfpbnlve~ z=l&z@Q@6Zi0wlu{Y-dSEC0{(#WbU&eq~LTjvr6m|r#CuUO*5~oS37@h$?mroB13z( zzZDT-)?86Nag(uJAbVu^QOgZSUD;PL%-Jd)vFs^RH0vU7F82EP6Dh89jNQ2470|Pf&(G-o#K~vMAFG_~O*A*|ycs>y^WA@qi@#rUPuBc7C1I&LAD>=~b*tsE zt55b>EPdlG{P9i5TBDF9pMOby;mTOib$65O8vVXZvq$gRmdL-}dyqqLUqW=nqkxyU zZ%v9*T`6z6I6yb${>F|z(fTdZ^_@H(?Ct-j5w4bKY<6^$mH$H5*M%K>q$X|o(0st+ zt#E^-w^AXXO*ecs}b$Mf{r(L3IaI?rZ5I{5$k%|~bYU1zHDY+5bAe_y%%i1QbY zvo;$qJ2pS8l34xX!ml4MubwVHf6w;+%XszoasTe`-&eCfyW!6i=D2lf;@98bSXzH_ zilfqws8?TXx{IGWA2k$Nr=Z7L){}N{-Uj>t%wI!Zg>)ZApJE4<(pOMY8)9|88|CBoRfA&R6 zk-YpxZCw+~8ru{PXDpr>9Nt{uEK$J~VUVtK?%;`?NA<4r^0F;mkkJ~Y!`zU1R5X+O zJL|G%Id9L;2w!xTJ@`ea%<`?iuJ)NP8Qt$lEXonS+-Wpp!39e;<%zFPWd-fL{XuKm zMun8h=h^ikHVRMs?p*leAb;G^_1}7{#qv@ilxyCc|<4fUx-*b2F zV0&b~d$$XP| z&#!yUte2rX{oTT&@mFWEN7v6hFBSizD4NOi)AiAgKu3!Bmuj(WXx`NXb6H@i#!>i68KdgK!-Zgha(yE=5U+{UkK z)~-#^+C0Nq;-y}uisCsZb&mYfLoRQX*3LgX^Zc_l@`jv8c*{EDyIVuq3a&HN_ug%o zkTxs3+Ua)V9?5h4t91@5@M_+9=5ocYd*iJAIi0hn@3Yyl&F5mQic@XupS58pBILgd zY5$k;pUjwWr!nRHo!N>zn9roj?$r{wdCuo3@9s?!$=7YBIwmrQess6bR|NN>d!lfns3N28VJ?(<;TH*50piFPr( zSHD&tP+sxyU(QC3nl;_?wmQqb%~5>uskwR56+5oQy{v4u&I=!O%Upb>xld#d+nMfw z^Gv;BtLhuQ3MZT^j!)PTSbJs`&w_1=O}|fON*>9STg>8fRs3m|;q!S5B{Bl%%$jiM z?&c@rXKF?6-tcj%idmQ7oF$lW#mnvcp@y^%c^+bK@{jEMe{}!oQLmLzt4GAC;cGj)w}8ochC6U zeqeW{&^l;+>!($lp3HlE;_seU1^s) zzC1$UUGpTtC(835>cxCo#h)ENSNGKU18$Q!u6yyUTDSf60vFaRb7vp=z^mg>zqKoP z<$B?G|HnnFzb5KUy?wh?Otp6j&&y0%od$;~^1VBZZp-y)e@c@%yQBMcWKfT|KilI~ z=h^CG^yc#=y?x#J<8Sb>q?#}3-7;kjwa0qHzCVAn=Azc)7cs$b=(*W*8pZ$nbRo1Do%*k|(F8@mjtAeyDW+>3=_5?`!{X)vtbJZg>92 z^oG@}Kc5EAQB&x+mueZmFz&w1$KnLB>f&>{zv7~d~O{`mXv;b5M<2VN{@%Dm&e z_{+loUpyz*GajC8CRwndf@j__@zlF_IMQEzl-%_!{(q}*k|{{2Mj8k=DmD;o2iTA&%PM}{wcP#MH*Gr zMI60{_TO^ZzTs8diNi5*)Aum%EL~#7_-*EQaofi?3o8EJzgb$Z`$WO*nRG;(Yt`LT z#wr@`!&qa|y!tjxiK~1(yL;2AdiSRCk37y-kG#3qa{OS*En}Mo|EY5yM#)Y;FXb0` zyt=tm#p!NI`0@!BvRe}svgY`lIdnTgC`RbR^_$O>(hFLzzv0_j)D>iWCLz*(%2Oq8 zZaa%5PcO3`xHvmB_<6BkWqpZQ>h=G#A64#ZX-=K?Z{lI6=;tRMZ1UQ?$xU|grTOcHvxmAiTD2oz)K$F7>wDc^SX6>enus zcK9ZLHG@W%$8)~lPL(S?^Ale!o8-x`w(@hE_qltvzYP=neKRi$c;C(1danL>daabe z^G{z?^33~Q`Idz}lChmF!sd3uswyRB={oiOGbgOQt+JK%SmKt@iW}RHS|8&1&vL%d ztiG->&gxck>duf^shdC^k9A7?nA!jC$x7w`t_`=EW>Y$?+fm|Iwx?3QadeB7uhFIM*Y&KJjW%}F1e&VPKj z^ZuC^w|><-1ux$A&cNL4&AFYH>-(?Gylas0ZtrH>yt-Q@?CS5gT;*%&h&i9s%zNX& znd+-@LBIcKva6}>yLbP&&8$}c8UGgV_Pf#g+kEH$)Z9SP*x#W(Ta=bg5zBKbbmUI8 zd}_Kif%WH61+_JK8_zB3s?EM%d|N9~v2oJYeNT$Z%IC1&TwbqJ6m@QWXw?n5GwaqS zC8lpSi7LyIJ-zqwu6G;yI=9MQ)H^-n#^@9YLQj;2XPPn^!5!DmYzcQAJ%A2@|a&*KixFR^wFaaFAl`VJ+$f+`BvLLwaaWB&rywk{kl9~ z>!z13l}%HV4$(&yz8-KJ~4S?eyvo^E%E=>d%%g-jy}0 zXm`(^(8bYycIUH;TBeGN?EE7lU+f-K5tqu%Rc-&M@#N#Iv{qMeeVQ<{( z!v(%)*@YGJX11Ac4h@|y>UqV{xggf_GjsJr)KF;fHqm^IP_5@f3ZG8Lqo`CQN@qaHeW?e1ac5b$8 z*4a->?p=7rwL9+r(#FMA^Fo=-rlt02vAlgQ5_j%>uXlZ?0Fp%}z?+$MP>F>Ex>A!S^>`cCnq^)e zSRx%>uTl}*ep6hyT6*rvq-9%VxJ6Uft0+}>{&YR5@lG}E;Tw~Wc89M=oH{rmp)$#3 zj%bVy*ZUZ5U+2HtJ4MCn73M8Co?D^#-{sAr;%%`JZ7q5p7ZzPvdOX5W=eF3fgv@h| z-y=?2c*#gldv19oVvnZBE9cb#UpORgXvKb?ae(dn|0hdyOw^uQp8p`}Gs(oOvG-ff z_v80}^1Rq{dAEG{#oBMbuIiufi{D#W`{~bh`8ZqqpAVn@|NQFd?i=&h`Z0c~_uG8G zc*p18{EPp^%e(${zi9A9xx{MaD%t(No<2RP|Ne14dvmEus9RJD)BfIF^F++|$-H{s z`)sm;b(w5_f?#sO#cgpm<`284=;^n4|FZwHYQ_A_V!2-zZfHLJdFH@WbGv}eA!F6g2GB0J7qncbA5a$!mRp4E4@9lyG6`l*w=n>&gP-u3i#<)7Fk zwr-}Q%Ho%@jBA)GkFCl}tur$*sWIu;wB^{FHSg`b?#gcUeCF%?@8895^On7qm0MUI z<>jrVz`o4)j^#!@x6H$5-tBCeTjQR+X2b18?DGGV=KRQ6`|iV>cRPgdq_Rt_JiBN1 zndx;l*GrY_H!{c=ypVY2#-@9qV@c?|Z+e%iBK00hTegZ;9lt*RHs|Z*e|$EkmpLs` zQcY65;k)S5&B&+ozWwz5)GBvSvh(W4Syo|}JU^~$lGF%Rxw$OXTi|U>+mESxI8#m4 zzU1s@KH0R#xN2o!aK5y`3lE^k?-vZ@(>duI3J#q7cPx zd#Yu1YWk$24EGn3v&c|TH{ zBC~3_*{^huWy)Cry#_>_QEcgb0u2ECY7gW#r=JG$9c`P8`7;WcuySo zQ+~qgm)HtB4bCYkWnuQUMSfe7q8|Qj6sF@VGO!#=B`TuL%U$UBR zXBzFFTZm*mnlQ_H%kfK!UIuQhIr*$-%nf6{_AO#v+-k2Aqp)wj#UhE7n*#gmS!Lbb z)|WGeA8cC3d@OQuPiwX6jh!;-^NY7|zwLa^{ZIDxuA0T?#VeWD95b4mS{S(Kt+Mn& zo$0z_KR2DrPDo#WV{6Cu`_~s={FcL;U$wdYbcX%Z!)zA%HcP^U=6^1p!QR=?u%>nqXN=dD9g~kFyWcz+ zcCf?wo@2c?O9;2ptNqeBK><_jl?(oNY>*B5T~oa>vv5b5U=RmqW5Pq5t!>$V3N>HmFlY3joIEcau|@oaWZd-(-eMDqQ*kJKBj^s>_L zW{u)0U#A>+YQ~AQxo6`UOD@SJ=rz35asK~5vNd&!|CzJ(7p{8tS6dyd@%qtPYpi(T z`IlX3GrAIWx9QCAiq^3<+9-9~pOrJhDJ=ej)h*F?5ADxA7QTIbbNKpm=RRpi2>rb` zmD|@_Tg9s0MdgZB^Y?I;^2B+1H+iiemJ`YdhD=maTJrTxm2qjUC}FXztFp3r({M||?^nU_+lKg;rQ)zn{6 zxoPoQm}%GE)OkUyK5TZXzZKISEInJF%5y?LK1n4b-c3LMU!S{s<=0JVp6)R$s&5x8 zj=A>h=8o^Ve`ee~Eg0s$be`VoI@NDCAFo;^664p=c;xv%yYkhJ%WEe)?JpD9q0lwg zcuJvO)|Sbo^Ms0|qNQJZ95>y~6ft ztgjbbbo0+Mo=J_YYUf`6Zv1T;C-QFN<_$Y*T`$}%u}St;>-?l_etpZ*=`-Y>=iN$b zI9tUUl6|~$gWjVrJQ8_Fg_xQmNw@i|H&UyKjvd_ohzCAYQ zx!m_m|1mq?ZO+Q~6CbQp`&ae)LAA-6wbhQ*ioA9G=Ua7%Riidiko*qEMgx+T5rUiJH|^*28*yX84y zvO$o*x!tP|7p_#erVYfmP=xjcGaKZ{%4oUAld8l)b&17M7!67r@Z^4l=7jsXD?-) zI})hwq_FZWvv%-$y^mpc{!MU>C_G!QHFw$P&u`kEwNiLsn?dnP=R~bY7vS)#sy| z*TQ=jd^;vZY3e`m5sFP-fAO0ikLr?*E3EefTl$o(GCw|f&9x(D6_#c!zq|6L22Z)* zAJ4D{z;!V%c-{2<6kU zPH}rqTz0Lzrx_$vyzSM@*=b$rm`cTrv37iEl+#-ba&m@ z=KXW6_ZrTWn_*jbp8j$wlx^y)EkUJ|b>|-a;)n_u#_@KVSLw~x{pUaC)GBj*bZvM#8y&UjI*?YIcw42ADwXRvc z^W?K$7o)6WZ)|&nWOajf|JnU?ib3SE(76*ANFEKYmN}A8_h?2zXxOXHj=2gMTPjy@ zElcEBVk6nN`EbGtQA>fZkKQ!;Ozku{=l>>G>G$rnF3YQVu1*i}T6N}K{Y`0!$-cVJ zLd+8778~B!Jx`|CRD4yVdPG#oHrqCd#oQ)|at9q46n;7A+IwGS<7m(04&M6Y-}>?; z=UqO^cCwyZD#IJ__r9ZfblsG)l%Rh~ZXaVbif`~t)mU)FR%V$@UzyUOV-BoL84t<| z4t6&`oovf7jo-p9X95e)p_LV1rq^3F3!eF^QqHfJRR8^B=?VW^s}*i8`n<^|KE?LL zzIV1VJS|L~^F`8&N>&S0t-ZP9)E2c0<*!8*h6;x)^!E4l+L+9i+Ud12#yvWS^NMA# z`@t3V6*29L^)Iv}oA{V+RquOyO>FI_6-Q@DCjU0#-F2<^OUd?g65g)N*?ZrGl}=Bt zfAB0X`oTr*mxZksJpCWj7x&IwEA~iAAo<(*1cAPo%=w>>E;3i<@@|aHW{T#Q=)U*B zA~y13b<6S78<}q3nqqqAEZ^0YSDz@|o7=9(sxr5DM_O>fm(uT^C-0e^J?G%r@TWKK zcCbm|BVToai^aw2B9c27@vf8+k*;MpA6a?s=gj(}Y1fTsOgy6GUixC;9FDUI+$GMJ zQx@CrZLii_yd$b5;pF$-{_4?N&P_Glyj@qfDk6WwpZUA@#c!Ma^}o>NNgHGLUaPyu zvv1$aBmRdkOlCXspXWnKz3e*qw{gtpPJi!z7qDwD|Jv2ZO(d+VWWMgV?)t^QzyDXg zY+JU>!?SE9*}V06zqvYPZ|?B<`(8ehyYvf(*sF(kU*D-@+-KXxwt*$^f8maQuVa5D zJKxz8_s;6||E;WZ%Gej*J&W#{S(6N7p?lh&R}A`rG?mZ*`eph$%l< zz2}L^aC=_=n0+hI$~tBQn`9ZNUYTM<}>-W`FWxoQT07(*QJ*${@=Kj zdF@AQRvitC%jsJ~xtfjK|DJk%Vftm0&octAXzvw!we(~3S3j=us?F0B`|`P4pM3M4 zYdCxL7oA4IuC6=l_bk#qpkPpPz2}xz(3%UyA~}nB0_WFG;hZeXoe;pH@-X(@>@=fL zLr(5}Yc?N#ARp3R;KTRlf_!I2z3Zk{mn8-~RXUdqMV_e6;k;EeJx-K=cRIgn0sm~K z2RFI%c&t|$p7XdS#*-@Xbn(=vRvU-4-XW6{IUK^>R1X zx*Jzo3-9PdR>;Z`--gYmN{>>9CY6_)i^TLe^cLb z29v$-**)&$B`%BYy(P2q>O1H3-G1+GUfnhO?6-Os%|})H@7_7eSNtMn{ao3T4eiC7 zMca2=KGC^Hc}m%=D8V51q`%@}5uE9_o8o;dTg%&$IpvsAs@UhK-nQ9gU~;d2<*yGH z-(BV3t9;XGsawHywW!HYfA!v7eewJ=%gl*)U+6z`*PU)TW6Qh4x@(tg&r-a6c~=a> zI^}fROCtFSKJ}klZ0G65zkj^=Meyptt##$GcB+4pjduL|Q22Hs!=%zH>94l_t(-b< zzO~i0Rg*Ip#dRJL{hJ!sa`$j;&HlB&7$ejd&T_qNd*NW=Vq^7t8qxxC+PvMCe(O}r z%1u+fpOrgu9Q%03=ws>pdgg*!maI+8EfR0)SL?2LedF=U<-Pk)*K_#Hc*A=!aoXje zvc-Nu(Y42CMMf{!b7I{ar6bl$K_%y1?_pmuvsKEh5X_Z*aG6l9pF(pRk`N zz)UOc!$u8%+3Hi*=Ong^&3hww9r>UM1{@Sd=^zHQ-RSNCm(6XN;~2LA9pAhSHvyO)D=Tjv~3DecUZ zH%v}frmJRzUl9toU@iE@Q1@wP`FXLD18Tc2)?T=~(%M$sO*gmT+M#FZM`E*1nmg_} zVrF|{qixRppj%e9r8$M|PxK|e$#0EYrV$u(E&A5o%I})DX1%_3tMYp!cg^V~UVG~+ zqb(O$i*c>p%_Dkklkll)J1*T8bNRMR@w48h&P+L`4YPjyUFh`Tz9x_V{^){to&VYT zmLFf`vUlZz?{61ZmdRD+5V)-_Yo^W3_%uk%#V<1MjSmzKR{ zIaS^!EW1dyq2uqS zbqmFcWjl^`?@`^SETAh>`SWS2+4)vJrTXLqcB4-$g))_0aqTgBk2!L~RoV3Qzg}U@ z*8baFlWHvy_?h9`-S0Ct+RokH!dYGz62bW|;pgcuUHdL+|8bgH@4w7+zAkUM>a!~= zR*1~$bTr(qHf_a>-))YfKabcqMizcQ=$g-Jo2WBm&CmQBYR@+9U@}m?ZgBj^>FH75 z7IA-Eb?wsc^XC&@rJFF_;jT9IWh+!a%otae?7i>v)bm~j3%k!=&3UtUhJC#1pM9r| zKAQNIryQNLy-??JoLKR5lPjF{&#V7VE#ACV{cLWuLPM1K1_gO5kz*qDKkv--bM)`a z-Eo^`@iU%^;*6o8-RLX+Gfi8XSE$S| zxzx{K`+P#aqtrM0XdNu3D${$M&@1%!Ljgy}Ix~SGV zcDJs!z-@~)+BbZU_vk47Z{g~=UgnmPylLkrrTacho7U*>yV4l-HEjOf_g@~dcxJz8 ze0!>GN&J(;a*uT{_jiAqwCDJ_&5^F`9DI^J?e#Cs)=di$_{X4kG^ldnRHsyqe>XQd zUGR~*`P=55Lo2Pl=IRm$qS=X-jB)Mce2R*v5 z?Uae1@X>flZ=oAyKA(i6Coqa!+;h_GaN(>65fzFeT}E9=kF<0vCQKFMIH}10XZ=oX z`Hjzi|K206lGibFhgV4DI)_g)+2;tp(Kc{z=J>z<>Q$bw ztz_uy^OeTCIb_@#CU!WU@0HC@%bfeuMAm+qme%I}_lBwt|F|anJuWzP5zpc)_G^V& zu5YPXz<=?b!KGUz42PZ{iI7b&_;u#=6Z;7#pGV)_dqe$K+MF2Icd?I_R_N*64ZT#H zx+Hwjp>+3sj5c8k;fxx;Dl6&_UjFejsryhRHKm(Q7uF=K+jMJv;A@VnI@c!umg!7o zjd*P!moxvz#bswj81u~EKM!#2d1?_X!CtoL&x(szUe21PH1~t-v2~(v^Mq<uS#H;?eD?kHxFybIJHr+xFoZjb4mcVFZeK9M-{G{;ZVsxoNf_2gN;`#$tf7Ee!IUM(Y$mGAd2WQKMA zvuM}vvzxEB%1q|XU0gHCTc$pLhB4ol-ehm{=@GXl*mJq7Sp~l?uX;Ms$lYw#?-{d7 za(~Z%TaEcl2KGd_iQtxx2V^4I?mgy(TZt)cys?U`x zu!!K`x45!MzR=xx)nxnof_~=rlny;$+4!iQC*SZgbJx8?Q(4;nx@T|W@{@1d{OOa> ztklBbJM*sio&NdtLdZS2s9EeP>teoNT-AQ(+uKW1KSsPN`0Tm=>gA6*u}p?rPSl^@ zQm5woEAUK7me23#FB!|8M1Pl>8W~-2`ftBdef{63Jd@8JH`%GTZ@Dgyt?OIE4NE?& zEi2_w-N?=L;ehc^zYRKP4+QKAxjOyGnyjs_D^}h9npE-o^XB@!Re!fn{(k&?U;Ms) zb-S{rp3*1!!Ar{iWTwQ*9lQB^v&{69J7-Pj`mSuIe*E)~*K0Mz6P{00uRWUi?sSUe z-4NeG*AuRV_3CN+A6$v}IKAb_iU)lbE9a#;%=@d}sUc@{qT}x2j`GSkKRd6-PPUUW zNPW@nb@%1N@28$LyKYxYe6?~`p)xY z*ZI$EZ)fk8&3$#;;`VpD6Il;#pSbfb_)Od9s6lsHZ&JRkD=%j-KAs?aV^ox6Y{&4=wvP zwQ79j+cd(7TMo@6ZG?BVpaYFq2Iq!1?I_yd$mmcl~mWf z*1$RT#1!v2-=D1JJy%#izuYmfO{QsrN6ulj@4MHEis-HWZ&DNxenzRY=fct?nZAtr z@aLt=E_%lOk6BjieeUSI>Cc|_JQDprGb7q%OV*O^Ya+=^SADn6GEHUe{&D%EzWwK* zCk{`3nH)Yg|FZ3e>~}AkPA)kr!8HHI$$OvE-^YFV!+c}jr|YU~u6`Cd9M-yc%KkRP z^-Jv!7IOY^J|On;(S*CE>Z|_*L>FZ|I`BT;WIDHf{iP?d*?*bS8MN;#&nRyEFZ92H zTY}GE^S$d^%fqHlzqib9-?~bE-k(<$mNL}-{2IR3bHn}xkB51vbi-|M5?eavxg3fs&lD^#{Bta;1v%An`<5j+2okCs=g*C!fFXYlBl7R9o4#yC!@(Cp4Vq!=qvvd&%kh}^P+Mq^$*zrJE_(HbTUvK7otPb; zdG2@rXEzI1C+SJ5!pmD?*k_-pF%vrQ{`8qkA?k}Jy*sizt@(`@i%Q0}oz1NWTz~$| zk9a=g+1mcj#}}W{vGqtd>wCSJ0YpFkG5n89chm=*7dI~}n_!ZB-)?o? z8)KJ-S)ZhIw(OQV>0Y%o`lxUJtA^Q{1{}|1%-uroEaY?hbv5gaY3+?qIUDz%m$_M= zeY?2&bx5PjSH@LF&+0WpQtu}Qq z&(D~`)H57Iqc$uQe8Um`Ta>&5*v(J|U+`s*&|NOLYO;?rO$`zfZ z8~E2>ceY!;{gmOpOLulu)}2~)#{1!ZDeJYHcEyBlUh{3%rNbWEm)x3p_P2jn_ub{6 zQYLc8i9cACIjyv&qC@%h$%S7(e-gOmp1WG^J+s5SGI`zSe5~Jc<5}(P+M{9Z z0-U;`M;rG1TkLzdGLkWrUt{r+k{7RT_>P+ibWs|8NKUt-Tt3FNpx?f@DwS7+8CS|>4E$nt>%bu>`wrWL{T>G)(Yf>W#rlK$H^uH~|2J*n=BEsnQ#cGYtR_4; zTVE`CyRwXJ`i1Csx#};Z^5w6s)htw0dQ`5Ib@=ao={K6s?pD5@(AK6L%=}Aj{rx#} zYlSPnRaMTDf?2)4QuD$vxd!Xk>I(=3)}}X z@70`peWtn~!V-n{Da#Xh3u4>EeEaiWTy&rRb`f>8nt@P$u70WFTH%V@tokZ^iM^qP2Nl1Ta_gwG|lGR2eT58r*!yCR|FYVF^>6d%`o?(UI`@iP* z8n*}6-hAv=n|68+n_BSukk{Xy^6mX3=C)`g`xEYlZp1adS=NqoP*z~sQbz*|?FaSeaA?aZ)oDC|}+nZ7~GUbxpUO7ft20K-km zea@~oD?Y9Ibu4NRZ}Q%hlIOkYCz+G@|8FsyC;GFr@_wp?jf$p16jRz+SIhL3Rc~kg z?X`KJ8zlVubG^=kz@Qy02J$m^&fYp>&9wD$TcWPFo{@YhoRK-PZgF(R0j`sUnR{29 zG<>qnZSNf4_ik0Q%P-y*h?079^o5YA&!>`yxgm0?nN5+-*&^wGo|L`dd74_9uv6JC z%Uby;gHWqAi~H%Xs#b-fx@J!&#jX9aY^zR?*7Z*==7;*%S+bw47v3zE;b_zMu=(oZ z_xrBd@?=NG{V&vwVxK0__UmNHZB6wwx0zSG7-Y-m9bKIzc!9az&U(p|UjpV|T<(9K zeEIXgO%~=ctBiG9C3dClx4OG_Hh*K%iJEt|do-(6mI`GrIWI51#MC?d;PL*eN%n6y zAHDJ7Pxw)$iH1(^wjW(=z1Fh+pgOPr{p&?D&jmE`R$D#V|9Ih?^0@C0!UQ%8{bbJF z^-^ed;cK3aHq*7AoGaa6zRAkocjs=Ex2@qfSA0}#_1gM!b$+2E61xyLT>+U^y~*^A%FpHxqob@jk+F-2bsjlCE7-s#m} zoOMa^P|F3D+fouw_3i)tcpUXY`U+plR>#7q+uaj+)ElDju->&P7j9VnH)!#vs9W+i zf&2c3Mc#YxzI68jhP3ua4GgQwbf3Pz92##G@-ELIBAzS#D#MCuA6ZjfDZ?b~QuQ}x zS@9B4PuOdnw>efnpRx7i`wG8kZlQJRl^-?N*B6)Eta7&h#JWytx75`ovSE_DX5Hs6 z+1GMdJafy7i@X8S$GNlcomTo!0D~%{AlvljL`iS8hJ)X}=jPx5QL^SC)gx z>a)yi?Vp{V_dwxo;LB;(^(+nfykuB6`meFrSi7r8E1EHIck-6Eji-8*6~6pD@U&{L z>CJcHo3G7^6u!0d-rZ%XX4^l%S(B@A;!o{sF^|ZfbC3U=#dCjdeY5o)F3r!IR#wjs z&}6Jo-u=}4^qL>694Eq8$X3WZ?A_fueRBIP&*NXuZ|J*zXY+|;Q;MghO5dySe=mK- zr0Dw<-i1+J#em+M9Cm(zm8V_rBkYs#TNz^y`IZ#Ez;> z(~m4%ecOVybB=TTGvg`S`!^YGuXkVM-M_mysQjDuldVGXH}(H39KNydqu$fMD+2ou z-MQLRb8E?Dw|83BMnYeBI}P}Ju+hdZ#FKvNcw|KWW%$lM*z1w7I;mvh= zZ*M%^HEmb*^Hrr52ArN5!3^yUIxAD>ZI0h8zb(ES zbpoKw!!GcixIamS`Zx5^Y| z9-g3g=*+zxvoEqL%sy7U{&J$tB7LD2mC2K@Eak87ufE6Evo2D5#@Q>K?~C6&eqnJ$ zugCoK#8{^Aj%gCIyE5ytd-`U53Nkldq^59`FDPJQ)xQazEBl}dPriA~yQ6}^) zyX(y~@9f*(((7##I^LOlEWa(+>&`ac^>N>^)lM^5p6-};^ zkDwu!`uAN&HYCXJeExjd8lJRI4ELsme0rbIy;$jj#p6i!BVB)EBP>}e+Uw(VTMn<% zQWOte-sJS!>&ULNtN9HM$?^v-i|Tl=`o+bQfliHzraXJR#Jl_5>bJZNopkt^RZmO) z3*TK@izb+>Kfmz6=B%MZ=8QEBYdAQg=3L#b*QFHd?^2w-s&huM^<%kBMm>7YZ>4#* zoP6$a`}99HRA@TVb$t?f|jzT(A~K7XD0 z=0m~x*-AqJ^P091h)PE_rCb}eLw%Smt1Py;p4Yont!jR?t5TzWYvtrirqrTWqq$bJ;C>q^V>-a z^#tE{}YRYCo;Evocpn1&&yX$ z7otlgru<*YZ`Cfkdh>#b3D-N{Txbl-&|XUl#tmP(NeIspBzi@8&l1&&T`P5B{|$ zxd}I$ukDTeY1O)o#X?U0MI-zEP=joXreqz8!fu%5ukf!oKeSR`O5}RJ_tH4=oz2W|Ua?!h8XCut`S@$d# z&$n{Aw|1M>vDqybO!kM||LQLOHgMU(V`dlKrSt9I)Y$U+&h?nl@_e;Tv-7LIHT7Q} zn7>MTX#Zk?x$gPpFZip^F1qQQSysAN;q^c7p6HxEB5(CCZ}~OFZ)frLKf3#-h2K0L zYPbKy7O7P|*Ne_(FAO-I|ET|Ok=eGdhi;{r1%LXvb^nIYu$TTl8GGNT9tkMvTGsog zpzql?^|fhB%Gb6BT-ENa;Z!bL{6^s1i>FHLFYC29A76Yq^U_I++2_|kS;^naBD(8v z=j7E+nLb9Ue#a-DTw)&c_(20>@%?hXRIt zwcllSGG5wyr~cTY*9-0{|Bo)Ly|37xZ}I5KoC3oKPmR*evuqaE^v3kp#d}EppS`u< zefrCoukGiN+n*G8mVUUETBa`I;XR_&-uH{`PZaPMyE+p(@MGi%$F!o!}2N6xw6zgS#SjO{|&`sV8PCk7{fROH<5kg009 zYJQ-r%O@jh%c9O@ozEYAcwWC}*Rc;lXZ-)_hAcAeexfQN=DK9fUh7BO1GD94#>pCW zKB$>`Z^OBO->UUHcOEfwY;`GY;y>@e{QZEu(V2T%zAK%syieX@exvKOQ290e1C82O z$|tpU)+9cXjNp*hZ+!RQTLW83^>5C|EVVm%8ZOZr3=$s|{9yifR`>O{Z;7qz>JyJA z1Z)e`cqX{+_>>jzL}$q#4ph7*<#$Q=4}Y7*6}!(Or#=J-*aL-B!tFLg)4sEI!0{ueS7H|lwpp7h!wz`&a*%cB@#^eV+S)vllNcXsJ)^IIST*F;vy`ka?eSvdk67 zu$gC;PhPNX_lYoxppqc7ecBo>i_ZB?T=(_EGyiw$vI-6Lt`A?E=ii^R=iqP2qwUo) z@67hN=k@(MwcS0xEOOe^xo?>EE7a$Tbo?mK3}v=3@4oWnQvDCRsmBYKf0$#x|4r-e z%=%-Gt7m<*EO+L*BdPXsna7+X67|-+mnyqveO#qj-uLwE!r7m)84u0Kwc7r+{dIZi zdY{en-~W%>?`&{e_sPu)zbvhlwIQCK|NHN){lf5*-Dm2A1eZf4$t@2*{C9eP&M~D_ z`u^sdGd}Rm`X#rfR`%})=K8WHO#gaHGUHMuj{eN%b$01KJuxjlFCugLH=_sQ6S)8B zK8ms5R<9k^sK2JZ?AFHK7mX+6y<@X)tvj8?HTlNnwQ<%N9Gn_$zr0rbzv2JesUwv! z@Y{yPp9G^%*nKQ9shXl96p8dsOc(nrrUGVgP(=9XKyW0p&# z_vtkom+tTq)n9e^UO|XVNc-W5W}*V?3>U7R>h)DCcH5J{wGT4dg1(>Zh@QOU$=d#@ zTn#d+-4$p15-d_5n0UGS3*Rj(`J$3J;Xu7xbIbi#?*5Juv+k@`NP3!e<+ikm*&E*P zJ7e#1S*={xebHcM`U|}ie@Yfs=zEI4e3fIhKH=~U$&ck$yU2=&6YJsE&sMkn#}&YZu0rcvd4dy z@OK(#bl1N)SI|?qb9KjIbtQqr^=oIUHuCukWe6;YS^YKjnT*~fF5mc7?)^po9M*g? z%I@vScy*@5Q@U^am19%1m~w0k-+eTZm$EWjS9r2u0q1PBB^>FJ_gA0DI(4MT!D{MF z73uSFIxTrA+je`aiF9ASd9(ZP54+iCBAR}iPSr`+yioT^eTvxnpZ^Xoy35(H^xJ#W z_DQYz{->T;&Fp0t*%<4R+Tr&cenGL6Lq`ju76#@zUN19wygT~-IHb7 z`rHFoPJNrymh~g#(?q_ulR1;zt`{nKv-QiJJsQYToYZ?$E<(-ehIFe^K#@kr4ihDL z@%ViVx=h+1o$e(v%&DKYYx&g!eM!eArkyNWlyvc&`gaY+1%hnWTilnY7hPV+S7-R} z)<(%SFW$Jid21Yhp0#eXMdSv1_K!QR2u^VOU8v0WMWbb*`Jsf1?uvqiyAI#Ha9+Q^ zfBE|Rd#d-RZIhWU{PW@Z<8Qt`I&R&?9iymiH~-H1$=ZLe%l^rJb8=Db&HeRy9G?p= zmQ2+3H(V<XJ z?&;X%A``ae;na&Cq%NNl=5X8UEw*N7R{c$vUs5qCU+1f+GPk;4h_*SlFLX|NEu+!v zH&^eqI&dBA`M`5+x84S?Q?oUsa_cHqJzaKmne>)W?;eTCdN$&EYP+^spN}rrK5Hze z;#4R6c>1b)p;wt5bFU`fjCNnKQ6~A;bpOh?KMO+t9oCFJyy|;JP9fXe*XciYoB#g7 zAKrMi{^jvgXH*;f7CX&vi?95@Lgm+tSL@c6vCYrkbL^ahNbqzyb{Uao!{YFr5f^&3 zcRRfPHzECk;LU|0n-#3>+YdSx?Q{J3OvYJj@lKlK?O`RY$>PxHTtKV@b(<~-Hq!S(VF+eOZ9z2;N@A-&Q$@Mz28$Y1t0S&m!> zR8%`OHyxRx|9Z;>2Upt!A!EU5ck2}kUOVnIG-P3Y=dsy;M)92u%nA|~so9#h3V4~@ zib57AYftQ(@lO5B)JOUkX5?8bRD4gctX|b;FsH%R=Ujx#i8q@IP93^-d{3iY!Gf(% zJ-0;m0NV;Kbn4h`fSSJsMc|QM(zC2rh*?j*TnYn*%e|hm$L&b90`OSTPoh6f}=l}op>3-kxd+gnKF{^6%$V}vfs?UEz0u6`6Dnq$_;xfp@LJQ7 z84;`I$1wh?n54eYX7kTfy{xDUkjt9u_bM>CeX?htm(1EC!LyUK zB2`m$);vl5JO9FN)m_)>UvkWUbJ4w_x@h;LrPrrRXX-!S*~YN)l*jc6(U0}xXIRTz zuU+}~lwHr}xhI!gxVvM<^puHp=kyJN!;AWB7>fl;Pr5JFo6){-<}GCzO=ivCd$yT0 zUW)39=@Q%;zmMmE|1z1*{R_iawg1k$IQ`(3t?%w^Ug*8N@~hXLv*hc^Q?~*D~$qp{8zrONn%=HZO!^mD|Lf=f5QR&&&4%|&ha?>nEBA|_~Cti zr&L<+X0EVT(RdOSR?IKBpF=p{n&&-*eeQc>x=yW4GLjJ2Ke9AG=FPifKbKhP2C!?r zn*Z#B_kO1h){m#_2Xf6RsE7`pPdnllV5Zx&6pg^*_hd+2lE$FY6rq|E8{CnauaF6w~-yYcIZM zt3E$}zuY5tw@K%|tLxYQc=>Y2^@x275)!Umm!H4q=Kq(XHL72GzkZza&)m#;?!s-) z+n+Z#noX)VUnPe|2=oj@0wBORNy64|E35+saUFUjJvub|Vr{w56hViA#I9}b$ zm?<88<=c^M+4&2u`Q|@fsK0!vtVsWHv&++kZWk~Y2;8gs-CTe0MfvA`|M_-5<7$6! zgtL8n`tsiAzn_=CI(<~@G}pJxf`5l={_p%%GF|sVM$5jr_J4m&nP}k1zV_V%<|)g6 z^vCh-wLL0!eqQaLA3n8;9P^AgF8wXudg>{cYtXlse{BBNy}ud3mY=+NN}&Aj!+Q&z z6U=}7c=B_Hrj>Hd-FmBU>^JM1^Uv>}zI$(?&&P|hA$4DPf9*Z&n$mK5Uz+U8S?Yz- z%D&Nhlds$AcrLucr83Lv%f9FY`@5??uN2%-w6;`iM%4Yg!An2d8izcomf-tX^n!Kz zs>v$5XI(ba?tayOO7R=*t*prA?4dK`OZez*y;}Y+&v)g0sy^e(5kXw5Go$tOHjw&XukM%7f zj2Cy@*j0Z|uTX?R$e~R2^-ArTzjc`}P0G{w$h__<*Q&K!*3flyRUo9&cApuW$l*-^Hv!w5pej?am3o$um1msb9tX<{rcqerX)(} zfzFmMQ+&TSn=STmNxf!o_+wGU;+d=b6ffP$x8AqzR_W6>-`)vU&wT%z!+76@IL70y zk?vN^&A*xNl~C%e@ojvu3w_#T(oARHSoezE%J#hJTCIG()M-k*FWuE81w-RSf6hF8 zZQ_^N9anbj-gw^TUCY}Ei#PLMWptO@#P?6U``ohG(JKsc|4dsw%RKJkCZ^`#&Tp?( z)=KllawKP*X<{=8T+vq~7<=*6s)KS(?Q>KQ_y|kKz2G@BZ;8gEN|CH;-6!UPygg?mu}9{d|AR1ZPCWW z__g8W9q||kfz@40FAI3Ne}5@DEu|uPp1+ZKz%7fX7tltzVnB%jxCY|(m-fJ1z`!Q;DRq|T%qcX2Wge9%B zE@quN(IZ-{Ge!4A2$|e^Nn(A6=DUZ7XV|wKtlREkm5^7nkx%>K zo|%5H3V$g{FK77BwUckzrE{676+gS5GjK6|zP!lC(1v0CuF2v1m+U_vWm7dJyke^( z&(Zcf^J|rykq9ws3#t1q(Sv>F+g5-~U|Cf9u=Nr@BIC8N`}>@=li?{#JNsck6jJ ztr@rNj+LLwn_h6Y$#nnoGV#Ti1twG#2L0QwdTNPc>|Kw-+Mv1<4bD!It3PB%wWOb1 zt`jXMYX8W!Pr)x=lc|YIVNT4_?KkSL2O7S594&l&x8LTD>2}WE@d>Gi)MtOo+;!sQ z%*~31SGMRczjl14?>xR9qhk$f4~u&ume(_c_8wlm$% zJnYxrDK#pFeOZvD^2z_>B>TNAN{f~EKK#9CPo%m>edzRkGuk)bHF)rh*)g}p{tW-( zV`6LS_c}HtwCFZh%wkAU`V7fA?87HzhZn{ZyS!k7eBZ!=JN5-p`%K zCuE`f(9gIfnrDsjXO`Ofa~DDaFGT*B_G^Em!mP`#XXR&nlXB=b-&-GEp~n^7V*F*V z>zdzpDgtlLxo@q=_SM|&ro)~4Y(^Ira2W4!4f&k;e8V$cx0#psT=KOmO%AHgJ1e%( zaTi12gf$N}&T$+z+&S&{8rNLiy4iuNSmST|w1`K1eU=q@-&KZ7Bvr%XoxWjhsSrPE_=APY5C2=u|b_-XLr>d zUMqfi!&Y}*KastrRg1K*e4I7Wuu5n};tB2Df>+~yUv=-Fpq=i*Fvrwc{JzPgH?dvWkXnn7DvYvPjN`f$;E7fk0ypUXZVyCbu0*7D?5 z;q<;M>l61}6+I?m?l3#p(3|rP+uitvI!>Ky{j&XgQWL(^m$kL(ZK&xkj9<5oDQDBs z6Z-j=tnZ(Q*!T3rjU$~0_kI0b{#)+HEgQKFc3oeqvj*gR*Vu)zGlU1zv9wHk0SKI`UoSy>;ZBX>=9)*ZP? zy2rm<{C31#HuCPmy!_G~${)qQY}uuqHnDcv<_O`EqP0dP9Q}geu+;Kc2 zccVqxxz@lF72M6NEW9xx-`1^{Pu&!JZr<*a&i~6DBC)A=%IF#+lAq z+8->sH1W~|ivy>u5*m{>Chtl7UjO>^ngTIjX8v{2X$EuhlrET_(D#vgqw}+7ZL>z? zMcc@GT#L7;-#^S7amw>_^Y+Y8_M+yV3!Xs|pD%9J6p%`@m7R93+JjrkdcwX*Zt5CW zx6He#zQ$JIywLg!>hgX6zAQJFpR@RTV*9#7zYZJCJ@Mz0)r5H;{P-#}nYrayzUZB- zFS_Ee?seajBTl{fj$S_1i&V8MygKb8?QIt<>V7k?R&jfbr|QqEtvoB&U*%=?IlAU) z#NvGSADo{XCU1{eFlo<|sU0n6l?{zpxk`_gs{6D)o%G>t5R~u&HOC}3bp1n2|UQZW;>z%BF}tIIir~C9%^oj z`xbi6F`Fl#F*otb?Vy&Vv^_gF9(CWbd%JSlU+ZhHYz2P4D*ab!H6iN79*0e{lEcO?`1Pme3t58bWLtv1Pfd-~=yUF+?8)#Zh=(nH_= z{n^Z$n~*$P{q_<6TUy6vPhVUgyuIw~xxZ#cOZ0eE>KpG?|NpAJVs7AV-3R~opZxtl zX1Dtr3x4>Pw%t;%Io)9NGH%J|h+S+6LWevpo_>uxtS`DecFH6>ajx}S zH`#Ai@+w>6bzfXPLcvb7r#<~>%xj+Riyv+=e&V?AwpH@d!E^poZG8l*KRkMTs;9mq zIjLd(%u~}(S$W=8yJKX&SlaNg7)QZ^`#eowuCX_kms(0qSCy>&rXil zw{kcV7A{uz-S^|*`w2B_o3>esNA_%9`6}n+6p5Qc(eY2e%wzt)F#e_PU$6X+;`QuS zwoC2rZFD+%|3MVXBt`D#bI~7GY6&`47nd*pQSX01CMdD|%+pr!;>yMu+6-O(B1`^1 z)JO@H>r+ji&bN1W$&33-&n@=dJbO{$=`TMWk~7-)BRnh3Uu&^mn>1~s;y=ryGxj@c zKMF1DGwk#Cl8kPOJCPa3pUczzu=}&!iwj13zq)nEmt<&*{cLpZ&i(e_<3y#sz1Dqy zt?cdpdwr;1$^Bo%s$`;G-lg4K$hh@2iF&K~zOv-MxTN~_a`K{2 zd{Fbu|&vpB{_Si)-`ggRpw}zQLtUq~Z$Kz+^_gxq6vTNHI z_rYscUEqa`7xu@#AL#ths~Xn4Z||$_yQ*_oePdspt&u&(QzT}hIJ@3qi_1rg=#ZOx zKd@hU_BCmS?Zm)a4{uBSa$f!A)2?gxgD)6Qu!;)a=lDiZkC%E+kdma&28J}Ic-0=(^onO2u_Ll zFsV!Yj_YPDej_G%|5Ehl*&SKW1s>;Ha2J_>toKp< z=5)E?@_n{;Hut(OD_B=XE4(vz2+>~gPAWNo(ev;&`$)T)(>G^-(o46?zauN-99Qf1 zuUXDEN_c=0qdD2zH;vp z7J7Qkz3UR=Zn3iyE#=Sl1~B%2KQ^mfZu`Ibr9NUae!H+JUarLKCsx>q zZ9dcO;a5MsoFi4~rEgXDzq@&7uY^xN7VmQ@PI0o0j9%Q1AGSSP^i-|7Vz;aP+UH!} zxn8^|+Piw5+sBN;2a_5(t}UOQ_=%I@n5+t{2%-zaNtexcj`d{*BziPsSPk-#4Te3s+UM zXmWILO?)P{@G$FB=g4z5VST!#JrlHVgm2rZJojkGHMZ%|)~Dh*p49%FB!6P2(eqlH zBSJfmE{<9qEnS+uc-@rb>{o8bQ{MOlSUb;s+$D9wV#>EQcazhlH6z4>g%keN_wc-W z;W?{H$9#v@?YHm$UzDr&$#{Eap7HARz0=oLEnAsk+dunwy1LNLU$5AwZg*ds=T^#i zcbU+Y1-D+QtxummQQb^crp#up(B|0P$8**xzHD=ro9UD3mp)%(1M8O)PEma;jaG8j zPJQ^yecMmB+zH!iOYe(_yw@poH&#muO;D~dd-1lQYfsaEi3k0$mY097t*ie#>(S(g zg>!X9P3s+={D}&iI9*@$mq7nd{-`?1R|{C~dK)%5SIyZJsRmb&d{{N$Sw z^It6`$MKw=16R?yO=U;&p9>hix9|KJ_TXH^^?cc1jRKn&@0P7?yf){G4Ck`MiYsfZ zH%NcqahUIKuhg+aiM|cq8r;CPvx6)tv>cBXT9!bzt3xD zG0BM3zhPeXA!{PDgZ!pQ-<@L0o`1L7mi;-_pMCIs!}E7x^QG?-IMSlkeYJ;?uZ~kLO*NxpVW+V?n>uS0yd|^uG0C zoq1N`UBf%q-rhX$hjp{m&UhAMg|iDe*@6{6@2Rrdm84qFp1nCs%EVCM!Mu4=A{(QE z?Y#{xrv<6L>hYLn#I_@{{de-KjzhOzUb-;v%7^+Z>|Q13?rm_t6P9&MZrY;F7Ui2F z(qvYD5zF_kxOFozwxP!%V~O_R=ncD8UZ|b-ce(rhNA}ltzu_-QIDR0=Ph$BRyK5Dp zPYU!8UfA@@v|gig$?1Boe~<3#n#!!++;a4Wq{-d<=}9Z6IXx)ca6hg!R{F!t_G1-M;`LI0#UmDqTc&Kw^AUL29V5Ui75Zf3mC2m3 zSH-62IZV@1a9=f5_v_>enC4ktNEc-UpDi%S?`_tYL!@~%+$!(2gh!A zx<7H>JT2y}ZX(YExhKb_Ud($KDlGNg^V*{$HE+sp&6w14wZp!`+$`z-TDLDR?%rV8 z|B3BUMX|QG`^%U;+hsOgC{_Mc%ynG)Xm$*b(cOt>=0uxMe8c(t(lh0x-+CsKkF4{} z$&FcF|7(`pxmD+1_?gej*jseSP4MK544yL6)_ZiO;d;Q;c z9g}Cmv-E#)<)_R2@HE@@`>vW)J9StLweKGXW%w$0gDFC?cv*Oi<* zy@0j*ed9Kb6fXCH|KE1k)X#qpOy01e*L_zBYo#xYLm25Lu0+)8eh)6 z=GGTgrTRbTMAXaudRDjg*W4LQ_cLV$g%#3T`cwHeJ_c`FCH0~=clvUErD<;$97xh z@Be`3_2ClSp?BuHzj;y2XOO#M${N-{J~-k!$b;$$}SxA4)s^E2Q4o!P&i z{n7vCjou8ah0e}fbno)t$}&OroR{o{4yGR-ao8Wb9s0fg!OXeoy%ia$B|#U8xAp&e z^1LxN>QYwjvQO)kMd#j#-K4^C!|ffL^YKubSEr5s)K$*@^5MSp^vx?{#SfXOitzLb zPZYAaH|@ZDPp0}!>4H0?AMCpA6;NQXjbp#Hz5VlxhYaKdt+{9KNdBDnVRHTVuPHaO zo}6;q|L)P&E0dU1U4!bM7OwqPIO$rfFV~llz}<`&-cOYFsmWdb;7j5xsom4VR=V&1 z&T%pO=T~WY^Pt}e9em%8roB#H9=)A6`*(`m*ZueXKm2!2_w4QG(*3`*FKOMHGmTR= z{mxhLFmufdxE1*<%kSKSA1izBfuHr)VWKS>`{Sc~2;C{sJ!PmV~GadRwnJw>;kQWqQZ= zvzI$_MEMUMF@L{q;+tp=(a(1$iz_B{{dJuG;_&h}ee0QdKdiqg%l$fFifvc%J?rBl z^myf0?TH=aCSuT~@g&Jw$9 zchM-OuFX8#Gi1~hjZZw_KEPV6WA;&JU-Z6h5fgil3QB9%%UCBLdl=cIZ+R(J?Ag|) zoBd83;}f1n#-+@#dUHpd@( z^PH>sFN|*q1$D6Mu~sZ<7T=un(dsvc({G;IC!yOHrnPERDYL8Au5{a_U%z)vUCIKL zPgW})_`h*Xkvr;o&Fu+yzHrlZ_W3tGGA0_Ae&6#j;lP^Zp6ho?|C@I^q{CF)tXSp8 zg}aT>Nw3?ko3H8J^WuFiye3x$_@jWkdAH}Q2 zb=R|Ax$9T8kN@S`jDp8M^91-gyCqDSoIP9?Du~qD?|GJ5Q*XFrr-p#dDnRpJ@rj4 z5=%BFyIRjal6!V@sn6{%cDLRxN)|Lu6=JwpE&u&_glWl@ee9+75qrHRGl$uAX7w|R z-QPNO+f-5AO5WSOm*Y6NitD%}+XIr6RVvLK{5N!()z5e)mvVD={uZ9;r!TUeJ$Lnn zi-rGBO^3@THwZdu_I93b(w)F~S^Q43&;FTDs!u7e|4<;cq^Nt*p6MU2DtPA4k-H*N zu;`jb?3ad@g&xQHgRC|^@GGAmJgo%I1LcYirsuQSU)Z@Htu-O~#)+89mliZ8Y2+nti7XZob)-OYviOPUw#$k{kY z$!E5jekj}dYwP{HiVb~d@3GjF_d}oS{o>RA<}o*(e|&m+2VdwC(TxikwziusKDeU6 zhDYpuSkO|(eHNSQ%roU9Q@&)%M&8E2vUv)WI057wC#xWv}yC%x5me{?WW z)9Vs@&?B=+qL)8<*{<1bZk}P&w{BYZK0^^zsfRcJPtx4jp7ZX+4-V7&-y#EJ*HUbWyRWWKU)ms7 zyJpAf-1p9}{w7V+OVm%Au%v0?+F=SJ))??kMouI^~p6Ib(GxlhcF;tZ@@owlSD}IM48!;|BBl znhk9;JRi)Jy=L%Sbjulu?A1HjcqI-*RRz7{)p+RH8vBEJ(P9}pll4ve``8x$(es(` z?L&Pg=lrT>M}r6XPQ?jE8a`hep2ohGtlaT#>W{X#d+ybL5B$)YKhdnEN`EHT^$j_1 z1SZUnn|tH3ZQxn^;y2x)(?n}NL`Le#neBM>bm8Y`A-5}CZhlK--gS=md-T&O9}{;+ zTQTsj+Vym5Vfvr_>g#*5E_3$~nTkDta)=b-fIXGdZdZ=;g)NhZT zrP?pNxsb_-^H1h=k^7GCw2xmXnpZTz&*Pb8HuD>lsA{q$JU(!KOiljw z!|6Y-t$U_aFY)31lyw>ycFDX^DYo6ckuHN%~YlnzJw8o#dAD@!EPCkr&_)227 ztw^-Vv+Iw%8UOhoo3ZC!Wb}+T3R_j`zcBiH=Wh5Bp}oPwiw`!HRyvmD=;*%z zZ5&DZd86=y@UI_TqER~D|MLvB7N6&<_PA5B|E$US{O0)!H}`GcvoCkRo-l1p{rIw_AUSCu(+Pg-#< z{V}~|R!y;3@~PR|R+#u|361}TE@xXk6$Mk@4Q~u z`)Vt{$9Jw5ttIuxm}2K;Fl^3Y{^u`ITXD%ucJ{VQ>$Xn3^5b)cInNB`-d9K7y#rpr#DmJq& zYj;rZ+s4kMzWw9gACnuOO?Hj>a7n|y3v5u2LxZ43U-9eMM6BgLPkh)Ec4e!6@8oT*7irPG)2{rh%vMU{c@ z*XHwwGE=xG*CupsXkY&G4wLJ&)8UECEgDnIncl33k56k=u8(NSNfD7+)bUg5&L4&t zvFATot(vBy-0KqGtD5R6Vno%R7pLyX$}c@JzMqvjfjfSe+P_8TasO zm}Sz;YUT9!I$i;1|Wd2t3>aBx?4wIO7oqjrv@XfHm{l+saaA zpPKu0`uUsrdOJF1uiKL9m*P2BKg5vJIA+0zmQ~Kon!A@DxV$~?{0sXVHgEXrR;Fg( z=H%A+*P$)LC6z1A_D5AL#qy_3RlR?=%B`%bP>b_(%tPNwd@{NHA?Vf2#zxJLV!Wvb zFPV#Pkq~Yd`^Wplfu;@+`B^u}G!T`kRK>ka*_rm z_U-c5q(XJ6sO%3n8W+o&Y?*rXp=H~BGn~t++sWZsL6YC8pammrwuM?!|Co=f1zM{V%5(-;1x<$`&&-G9*oKC8pxR&g(R`!Bk3Z;FJTTU~BCoKmy5?Cs@*PkrIJ z#_tm1#ic&&dcborY138RW3v-Cv-7Tym5T0ZcdtMH?QrR&R}~8H{fh3U-U`l^xG-by zr^olddRtgW^mOq*y~VVNFML~Gu&sah{kWQ`-^4%HOg+1UW%ZfTX_02?va62AJ8t9n zb9X|1!yAQ+_tS3vsrSAdXL_P+ncIywieYXy-mPBSqjKhdiuU47vz~JIB*ev-L{8Z! z9(rmK>tFuO*Xspq%T2tsL^X2TtmkFLXD(4$d3#PvXw8SHKko{f6AtprGDeksoMuI>iykxVHt5S}{97%mwdykCn*3C!);*tZb6?2n&o_x& zv})GFQ0Aj$+uawX>^~#5Y@vQ|%Ehvhpx>1|+ow&OJj>+DdO-~7XNa1JSRV0 z_t{{g8?P2XiT^N;U*Dt$maHf65b0$z(# zGZV5t9Oql4DJ`b2o7K9TM>o5^UqdM*qt~zI?R;aKB-TiHLKOqjFZ<9GL(9V_&Y|9q$Sc*0Ya09z2Hp}un`kggtF5kHa z+Wh+%GfwDty^ymqv*=*kIP2Jn+$Fw7ahn;GjvleIw7eEKJzU|3n|4po-mV}AmtRf? z%={Py8S?l(EKT=hjM=|;x(%CLL-CRsL9f5Qy0FfEzxJioHQ%}}YMl-|Sr`N|Zo!#f9&2xA`-iy^O91%tz zN^QDMb#ibsS}zuzV4?Z@gmc`(YqeiiJZWruk-nrhtA6h;pU4RTXM&zSi@tnmO=X2_ z_mYHXNe|y`H9C9A_(_$@w&<8XrMc5jm$aF+ompKzZ=Idz^|*hU^>NzoD|cB0t4-QC z?as@U`{kcTs#m|d{j=`f*Bh^^{iSnqII2uoXRh2{k(4Q9R5!U%`g2d@$vqW1`+qXM z-(@(_cYR>KPUO!`A7Sn30FEdH@xzT8#BbGYZy@;4W+UjN)b!{1DZaehNR zdw|%9?J@^6R4gXge(W%eS{=dnz*GBt#jR;`S8Dz|uynoj0aX_Xz+ZV@g}W^t9LAJ2yo;Px)yr zCsF=P@y^Vvr~V2z{0|e@U283Vu}CRt%Ave`F0Xp?w%6)^|Gd}t;_~?Zv|Gn=#)d_A zH~H_5to>!af~S32SVQSTmQ|a4&)wxZbtuN_UU7fvoDi9A90Rns>fslV5BXX3giE(RQF zGZRu%ntNIr7A&x7G41;H?Yp60nv9j`ufyq8qCd8;zckr4Eb~Il)0f48tkqd7zPwo( zcar;jF{@wj+=a%P%#P20COL8|3SECKpK;wdCv{_ov*`6J_ye7@>l_i^`2N}>ne3m?lo z@lflcv|8;c-m{Bpwo9FTd2(CG-Ua*58)Y4Qa&6j%^t-(kkBm;af0@wu?TW*fD=X8) zC5%;P+gjc}FvGI$a+>^%6$jQ!Sv9HMu{pk5=qlT)S(~mTeY>;u)f9=}(l%SOHspP+ zKlH2ZmhFSisk}e7=C6^u@qdbYm@Bv9OqChodm8S)QhV6HYTh@oQAL_$-njL z>RDsK``hL;ZY#XC{6qK}i4Qq?Ton&?N4{ScbJozZetEfMo}D?f?!HpSTer4f>D62N z@#>GMmJTOof0Rp_5I?7J=|{yc^LEWT%u;Y}%_TYRx7ic&7ZvL9F6=zF`NsXuC(b9| z%Kko_p7vSv{q8p|zrX44k?Owrlko?o`CQHi zWtLkimzdspam-TZs(zr@;je@@?ctNFe-^PsJb%%w{*N~?gvCxt zIpOt{Kj#@1ZF?)xBl^0xG2?Z7!1IQ<`*YjRUfF4Bb@sRR4ukju|Lx~(bg!>`QyqVm z^NIh@Pg7Tw|JZqEr?SP?XEWx!;dxXaxa4)43rmGWTuSz)=c1k_YHRns)?v$eBsnEp zSXUxYKc!LglYp;*zf;}Rsn@q2?*6*Ya`q211M3I8vU2yYGVP3ih0*A{BRIZem>V`Q=4C+!BF{nCqbX8kR8f28Uo zR=+ewefz?PpR{?nBCoXDi(6P03150XB|P6d?^5M~RX6mu>(=i3`ejA=k879bitLwH zP|iN_BkkD}7u)@f4XeX$zBcS(6T5b(;!bT_qF%)B@Ch|!{wh>w;Z0%rQwztWF?cm46r!^x!^EK^RdQJ%d( zL^b%%yZd)yO()cE{2)GK|KY2*1sQB-C3s)SJs$C0gjw}sVOiRfe2?@DmUGRG>wnKb zee`SSv#9vq{Xsk3f9YNOSu(NqoLHljSJ@vC)7VcR_s37YzB=+){1)%OV$Zl{}k=Iof%lqTq#rj39=M@|5{&_UJT=5qA@Y}VNN$KS8L%(Y4_MLoJ9bA== zc)B$5-XE?P2V5TC;aV;vz!18}x$4=|jdeeM-c5OU;C&(ebYAWd(R}3VoD^9=exxRCT)M=62 zlqKg@m;X>YdD1~@+6;p|VmJ3qHLUMk-^8q1^zZd*c7|WipE@7-^Ldl#3H#pyoh`dM z(`S6S*sE7|rq%x3tK91`ug`e9h791; z`mg8W^4jL6giqt=`v)xNHSKRMnKb|Tl4alWJkn$feV(t{EB`g0$MMuY{~7Ny**E!F z)^`i_KRZ7oc}A!8tgrLmPxYEzknrv114WNgxkpMKy!&stPpJB-z9-&PWtxR$-zzDX zHzo7VUaflA>CCP#tM9AC{q&fb{^AoM3-&AXKA!x6#jksTUNhH+k0(_;OA}ke-fvpv zrGKRQ^zt`-hO$4L>;mnlt~M88JyS2AYjH=wO|+n%tM1^G-8)v>zL=Hn@&8z2WLK>I4(>YtuGeJ2uP5?|s!HcroJSu6j9>tI_KA`)%g!tN#4!#nUf8o;*D{`|-uh9VsmGY7d1p6Zz_6#OHH~ ztUYITWa9M_;fCX$9gh}X@>2ODd_Pdwa#HNkrg@oaIUZYYJo9<(m~U)Ty>YLmhT$&3 z>gfGJ+y^q0XK%dnIqOt*+(Y+uHcLe}HLVMl{J-w~l9LP!-EIAw>c6qCx{;%`T|E2W z7ss=Oc5D8A*1at)J@Nd5o6~Afyghl#{^spXwzs#`eAxS(KaNe9bss;L_8n-Jt}omkXd`TM@Q3d^wb!$^%gejmTv*#KXIbue`05oK zH=lW@g}JZ9@5?BZvz?_}Z*0Ok;jGQ8Da(8gPwJN6CDVVlkB{HZup{-?!nJ!~JH{&!^Ng@0QP zvew3xM?Gd-@HH_gV)?oSC#MKbe#6#3O)odFJiR%AD46NAtHjHzgxtXa7sS zcW&dUWAC0nx%o`8;c9V2NC@Yphs&J*rp|n)=?4bAdf z&)(ELvEhk&$nScWv@rf6Qws^1YyFOSa=gcSyJJ%&zWUf(x{EFq*=Qns?7?C6lB~K@ z@8VX5u*5J5PTb1*_vIQXrLskP-GZLPB=QG-O+51?s-oZdd1%Pd4a#9J%v$sADtPt3 z7QcRI?e4U^yVsY0o%!U+!!1plJMOAHFf%^bf2TJ(F89v#fG4{g>Lq1)ve*6Ko%8f| zP?hYyPpeXdiq`La|H~=!ioJgN^-z)gn%irC+|K*@VS8+F^khcc^6JN_qW^ZT-@Uey z^UH(K%(>qdynN;NqG0KxZ67xZuF$Zlm>pL7A*jE2>FY-`*OoemF=SY#CZ1mU``h)^ zmn3gl?3$oS+S_?2tF#Z3~M#jFPF+SwU9C*KU+7B`E1I+(U(Wq|T; z&Zp5nKX?mXePR4Er?c$rgIwq1*Ik$I_@DLHcj>yt3jZ8Ldr$n5+MAP6b0+K6+NBBS z>aD)bR2IAG>u@@6hWz9kClB;(?PlZMkg8w9v`YGx@U)-1cg&DYXbEEDV(2!`Wi2OTT>9o7oIJhW{?C^y2HBPs6HhU-XLW@bO)uTM z#;spIe%b+113uqYHp9PrYHAKHyT5q*gPeae9GaSr=aor{ajRKqt*R>ZJ+U&vZsz(M z=}gSAd_0~XH(b4}^?T`>zXzA_I>l~0b(tx<{^utJABparhJ_q^E$fOGJI=7Jyt0c? zEaT(vJ5Mr&Ce_c)x*;bzM`dH-Ue`DCbCdsE@#~Q{-q7#lF!#yT_yqr?QxoPgvi(^( zr@{Wkp4F`1I=95v-mGG}-g{$vh_%$QBl8_~eQ!*zDcbMXb@JuRFE=cD0v5&Y^-P~W zG5OQHHOESFUoC#tzcc#F`HzzxC)!?jjq^YK`K9QE2Vb?6BbCiHMe3itzM7KW&g7R_ z@;YvmZsJFa_G(PFPwATA-gNF#2s^`5$$Cm#O`-Sx$xqW|#$sRxC; zwpY^|4m^?Lo#(EwnK^s0J$HmySVh$`FaL!`yEodMp2wxrl#|b1ohY_vLr>|>U9TT{ zNN;QZxGo|zYFDz+H&>?3i{5Ui=l>w(%Ygb=$W5jhy>FPs7DqH)efleC4p&bZY$q zl|mIUty>FkaHsu~67*os-ozmLCo0QS_EzLKAaEsH?&$WPnq~BdBKA{bJ~+j?t7K1KU6&YG9)(l@ZCAC<;Eq< z1+!~+o>~0CKi}_=%GTho8Aib_+)p)j3g&!yTCcFR#O9j!`=go*pB?s)Onx9}Xk^9oxk|gRz-u2i^R(L!XEyU z@!Kl*DQBARgjTtVPd>(`%c_=_6weIavFD@?tJ}1BAA4F}md390%`@B0lDKf!^h%K< zbF=>R%e~C4cRRe%YvBpDVrHkPwwn@Vxj9a||A}9!V%Z?&7HJ3viPdZRc8OZ7`L1*5&;oIr=Elbx=iI8Sn|*ew>DP!O&txVueoNT1 z>FkL_L+^+r)%mX)F6`>My65EU({iisUF7Qu+OM;@>1Osutr?H%8F_oQY`vJfsG`96 za?bCf^~rbq-uWlBzH6C0t@+fM;=P47g*{@?FJEoi^K)ikSB=2Ib>Wg<%C;`)Ydzgv z?PVok`0bJ~C-d^IgW2&*A1+)ScsS~Y;mv~&!}+9>%+^?g>)Yzr#PKiA>U*%W>V?X+WR?!L*)F-S)JtA;yqU|%e5_bX z+u5!<<@M=i;ph!>KW)fvwO^-Q^W<38+mF|_hJNl%3+fd0w*9F4;@Oe*yxAG^79J}9 z7qy95F8-R#Jn4HktMe{**zfjTB0E2y-+YEnrNG-vnM#HylOJ{|9{oIvEr@&BtNK-{ z#RXS0x=eE?tZ02YSM&7R*-4XXuZOeTPZ!u5d10=rP1;7M%GPwA+tro!Is6IS;`0J- z%5ykb!E^dD|)19P^*->$@Jbi7WZA z-=d|}tRV_VOm}}h}KimG*yszWDLvZ+rdZ^FD81 z=s&J#;tzQHi*@I;FDGt%Dp;}NdatiU{}lgCarqLjt&hw$eZ3*qqq_LVBBj2v7S;(f zmQ^GsZ?o^1JMYQ4OO1ar&iS~y)Yz1-c)0AsVT0$A9gGL8MD4ab3s-*; z<8EpY+8wzvDeRN@L7#Fi#2VsNlbwa7yH0XN|MB*BX=ETjs3h+#PPY(s1sK z)BAMJ{wtftzvK4mnbU99E?=3;Z*oH~e}d8qOWUZs%>66YiJR8vtx!t+ar9Gzowv)4 zkmi2-MT-A5?jLOW|JDBAa(S@{+kO8}mz7;G-PPfV)D&YcL-Y6S^?Du|YfeA-Q`PwK z--7o4JJ=TP&9~FFjoFla>*Z{gJ?lkzEk3P@JL{VFQ7u8R=JqR&GiI|p4sSfR%kmJb zjeokdaiaWgUnSmYDh3bDS?i;=uU!^=zFTIi^HbM}v-$mvDmMNxJJ`Nq_M6Ac_t-5v zyL_wnn^S)`C7dhG^GoI2)^jY&Nx!*-!{-#!zOu>Hw~Q3nRBN~cjxeY*t>NUG_+v?G z-QO?DGZ)`z<~REmbLRGP%P;=L2G1gQY~5*?ci{2S2x;4oiI)$};d{NqGTUrbMt$%+ z`zh}BZN@T@tjo3~O0Bh8`Per&UBIv8=pv8wK?>yW^d2> z;v8-y`_#$Dgyr_yxTP*`laiQ>{3jl~v}R}9boD4jR-2ySFZR!Go>fUMpJ}0aZPRR@ z`YQ9;sqGIR7i_EW6PKgEQLx;9V34XbxTvD}u?mj*>-{`Q`T^kpy4P~43 zPG|BH*4Z-x1Dn?8eGxk$ce;MovG?KENm0exA{78O=0JbC7FME-9J6js@!gp;k;lCHQCeF_Q9MsEcH@l zd(#wKx178zq4VkAKjS@d)eMWhHqPGOd${GD^}gyP5;t4hMQNc zoc~Hcm({jhf40@6{+p^7B0JB2JM`&E_?lvt`1&XJ&wWw8v*X@QE18r%wwt(5NL~%M zIhniM#dhDG-M{Wmy|JsHXR*4h?n~|ZfQ?B$1@-^MGEU5JS)u;v=)bs0Ru22`-j1x? zzWcUWazgW)1wA?sj$BmFx+}O>Ou{L1vq`qF3 zN{*UZYN`G3Q{%>wW(;>F{Lnec$(<|H1sk>a#O^+Y)b98}rp)oUoKxHm-pq zeltT>)m%G;`j1-diM+!0dQrYH*QEV4WzYWFXz=XL_83lkwr965E_Y|>Z)7VyD%c+; zcl^MkPP+_;?T+`v{rd{s&-~_cojiALRjw5Ola!YqSMzB{Rv$46o2QiTTy%czl@*87 zCpi4}SX;6uOmMp1y6$aOFJ9gIa`hW;C4*UU>2t#gTI{{=)-S9V&-;1Ioaw=#<`glN zh#lO1A|f{qp5|V1eOFDly3*z=!T;1M_~uXFo>+51TJBW*;)1fBO|zXiw9{sF{Q31y zBG=_c*_-%l;oY?*&n|T&gs97hKjr1=Ss1MwQMj^1NJ2tHA-(BY*_}{U+37##bG_=m zc~xX?$%B^j&+o)OGx#%gO})cKm;Y6g2X-{_r8dmrU0eBk;ZDKk&@x7*^Id-}{EHuK z`YZ5mtt)GEPv*{xLYn3&Vzuh(-w&;2lg&KC$yeBvoAOOsXwqiu+9k^K3*Stw`}^$e z?8)Y{uie^wXzRYU1s5)^ckr&9x-e}~OwBo)h8rb}8O$D8r%f)$Or9_$JVVE`{xRzf zxs(%m+M@qlxMej0E}oEi(Y%YZCwXoE$p-ViFGGIX{GO3FaoPICx4E>1^Q9%$Ghg!=XR< zmzVG=shr?=%CunL^~6f94JD2LlRM9`8{MowEA-ey_kr1;-8l{a*MweCwKhDLkn7p< zz0bf_NK$y`{3lg!PV7?7ocf;q#^l<|Z(LkfN=Z(%d4999YVV4tHIW|Y4YfE7*s~1Z ze@xu`{71h`_~hkoqoZp!23UArGvo9mABjcItr~_s;W(U?xqCBP0{+H z?#jLNNWEKuq(l3q>VIq;EDs!o*74Tcuq@)+!+q5H(&QyZ=Np!Je*MYH%l7@cfMx>g zlAGy^zIe6S%d(ueUY;}6Tr2nRhS#EY7rtwlYD-O!*w9F??PT>+V~0 ziOhJ}E5|bVE+XAiPl0bY9fayaVDftuizGQ*BpB@lS0kILtilNz{*L zw%Zb3JxcI65L%{jM9=t_U&ZgQ>%+S>lWSEIA1nQYj^$Gm#s2kYi{SA$QdI}``93Usdwb_gk&_YKKEdlH zHmrEaa^{MX#jMK7lKx!$0a-je8v|Pd^Y^q_FIyTC+;-b>Hfyrdr5~F&9&bKY(XRXX z`g7%qjEWCZv0no{1?DJBFL~|7c1!BRrn$Ehqi$IlXY&1is$_a1i#tL8PyNLWT+HXf zLmT^>w)a2k4!pK-e)lP6&X*OIGChHw8b8kGGc%{9>o6`9NxRji^xH?#gp=!%v$n>O z^ZCrIOTX{h8?{4$Bj{1UoDcK41lB&eeW2+)-;3LvU+yyha>`d1*QuJFpdfp3zKqnj z#nuY^rD50f#AdH?dog9tkp$&wmFukP?UuIrTKH`YzMpsCoLbzkqOD%w@z7l#h0IW=Na<9zOJ3ogg|R_js%}jCUHAA&M}5#DA?3p!JIkK*|8&c0zPV_P zkr2BR7l-n1gS4sh-HrB6Q$BSmUGYl70m+X)*7Bse9_!OkvThGop=3TFlSa;QS&oqfu{AC%@Rs6TFF1-5MDdJA18|S=Vx58JwGTu?Vw@zc9 zRY*$M?mhDH!Ft`B>d(mjFPyvf9n-JxDp%HoH$T6>_-ED$J4U@MAM^fCqL0`6Y}jNS zWVk8VVv6KTqv&8QjzCG)4;%DM>{ra+@Izdy_r`IR8NvUiCYJ>rx$~Q&!nt*#eZ{s@ zjWsT>Ld`8d>z&drG}z-k{g!dC{_OZIA<6rEa<()yc7NK*6na-}ulBL}*+ozEE_bh4 z)U8|gXs6Ayf?NxKaqc~@J|~@0^wM};xb)GfJrTFcy*~P?@(8`PH~wqYIjLaRGVV|R zSIsaNoPN;ijE;k{a*{+uhE7LC(dDY}=9!Zp=-+;}XW!EoY4@9SGC8+6Jnd52E)s4N zlh}RSVZX&9{iQDtJn~Rozh%|B`;+VMO?>9DSUG$0)K}SiH%+L!cCtx2<-i>YZr9BP zWmO#;Zf2;totkpQGQnkPc*K(Hipo~Url%}T*7?mXda|Ku(}^>euN+@7eLvH;%iST{ zFCX4eJn83G-`D#+*rp3JSgW%}FLi$S#repkfBt60iPz;xLvm&i%G`q2t$+8SBEWe5-Fu-pICo*}Bpp>Z)vR&Wd&C%Uf+@X7uwc zyWY0?+*RJ-6_4k|s{Xt?+4hgRocY!VSI@Qo@L#k0h(Z1RX>+1?^?aN6I6ro>^n}IV zj(-xH@3|qs&hf*g(<0NVO*p~q$u_rHgzQ!f~?*4_tY`yij z_We9FGob6x>-?zHkF)Bh*}gh|DV5bl^nNtQ!RhL8Ph}1y@SAIMF zU0$kevGxApg>1h)r1T}(brU|VSmAv?^0dX2GCjZ3kJQ6r=XQDB{w5T!RKK@x@t2Mb zelA-MKkLfz{J3Us+W9y8L8xCHsJaOJQ?2OyYbC;M7E}wj{t44Q1g@M4c zS9=)p79Bp`ET-$NRi)D9U6NE~DRXbH4%e=bMN=6oo%a5j^UUGpPo{1C8y1`U2@6aJ z*QsYx+F`>Vu}0-tD&zF48~1!$9H!i@*|kyZjY$u`?Tg=sPo|0$B<fL&6s`&3M5#4ub@mBZ${0c=67%aRedHcQI?Ai8k(zchf)y$VpJil;1VjTyk zi$hM{mh^2Vua7Jgv5sDLq2hzUxfxpXHmZp2i9OKN_@FhLaWSh}vhVrNO6&FPC+t04 z{YxQ5=dtkGH*+3s_KU3UFKFi0HxcWS3o%K!lc0ZcdHuCjN=_eVn50a2m)J7-uHfb~ zEL}ok?<_Vxezkngy_RS`ZpUt(P@ZM)nHU$dH9lipGflL_TUv(3EI~$F-}&K{lT%qAK@RSYDzIh z%-tow;IOc^mfpYX|9{Ls^>w;T#=|YAE@_{xp2olDEbp!EcfPCYbAOzzFEmdHUAgDG z(gw>pE!A$>ZM#;)AKg&P&AN2<_ZzK8g(Ddb8!YIXUC{SD>GH;7?j{~wrNeLv&2WA)PgZigFq%a63(nt0Ea&EbU9EG`a- z=obtv(Jy{|sky#<>g64Lm!~Z5T`}QQ{YCAz)#gj}9P<{R)19fX&_2C?kKu!kODO^t zjPl!heeRmn+vHsikUqnCe@FPuN`Co4TV8%$8WLAZ8E@u$jYCI+M$mymt>e_KqDZH_@N?8k|9!A`-Jhg6%=E-*@ zi@ob3C-2o>ap&WiABPt!mOW21xF}Zg*5qOL(^X4mZ`gaw_~gsPnI{88L%*+@61_f& zLHE+8Qvy+L^HK!oUdVJ`IcarE+`P&~j&k#&52nl$e0#jr|DegnbyHeD1vfCyx1aU5 zqTIy&ZUq0`^6IP0b0%KhVDsfv*o^ntd&;@?Nr`SqjNVeeC$UL9|ECap%=|R1Kh|3& zpLX>9{B}y*yBA;(a$f?`{P-s;)Tn;rud8h5U=LEepx5;OV*bO8s0@^{toT=6K0jW%uqce zcI0=n{pT5#OJ&a5l-0j!eSKp6vm{rUgzdUw8=j^=*b?Zm@WH2>k5^aT<1P>Ve0Rc| z3x}6@%z5|sZ0cVnwY%&0J`&@)nCN!LSLfw1L6bDzHtXMGp;>@iH$@&C{g9&a*#LL)c7^O+gb&pzD2aVYjJ z^O~LW_*N}__;cra)porJavyge_{^A9^!dc^Z8}bW&Iw<KBl|pO`8^i@)^m1A~abT)va-GOsaOQ-?>>Z2Nc<;%cdP{ZZ_0IBK zmpc;Ta?jI?iZ~gU7#==(y~q5G!9APxDcu4qX1jitEzbG-=hOP*r!>2_amb`kJl5E? zuAs9vyZ%thd$AXM(@M@BnDO&qh3oErjt(4c8wEQgnI1l`+~wBE&Fz~#!z5(G#CahH z64ECcg%tXIpU5X;@X9Ho+OS`H5EvJ~dVeh(7wUY~k^oe`gOLOHT7`xVJ3H#^&Cc`UzY@LaU_J72A9=vYal8 zrgWbdiFQg{AQpV#9oK!1#%B-J6c0Qq&DpH?N54O2!G>3R3&lSD%eJcB`MgPD;_nGZ zXSs%EMunUW+;)!XlcC)+0nc+bX^#YhKYA+3MDH(MBy)ZB?&{api^HBNvj<0rdnvx{ xzptrk>ab%SYgyYAK~tGMvkg9(Z_;}rfBL8Fy(bRetbY7w2yW7v5jBH@0RRnls4f5i delta 111266 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 i|G%5Co+FF+yfdGw-D<$5B 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�%8x$ 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 diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index ba48e40a2bb..a6b2c369829 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit ba48e40a2bba273b1cdcdf637ecbef4f4db14284 +Subproject commit a6b2c369829abce33e64399418ae9d645ec5d9c6 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index aa49194bfbc..5de51d98e34 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ - \ No newline at end of file + clear: both;white-space:pre-wrap}
About
\ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz index 2a297bf2c7e2e5badbd10dd219a9ecd66642fad2..89c8a73c1ad07084598a650a3c6cbe2e56a36570 100644 GIT binary patch delta 448 zcmX@hd76`5zMF%iXvcz$>=MlN??Znty37_SzUYY@>)pKVowpNxH*eYZ==Jx*#=q@u z>F;BbKRkKG4SUaM_T7s^?)57yI>z$2G>E@!h5$dmi;(lAQWb@yeWwYF^tPT|Tt>#m}{C zA643Il25Pm&(6F2q~t`RQLnQ^>l?pwavX+h@5VlUd3ULQdDX+MhYwezSIce^j%Vb4 z#FpA7<+QE;)`Yi(&lP^__V>ILU##Zet?%LCxUIXs*F-ku{=Bc<&1UtYA0`9~zhSO= z^`~W)kj;sR{T5g1xXx7G*H>Aj;~~6h5{pXL?VNr6m%Ze^)|$N+@1OS0Ct+W^y1&B0 z(|OLf{tJ2Cl$>)`ym`4ZpZ33NUZviXPxR`~|Nl@qV@gownd0T?f4;8f-Y2pAhoN8L zya^FoH~(go-=*K?KmW)2Z!_xU=6vPQdRRN@b=cWOH*4;FFW%LEe4*aukIMS8c3l5i N7c5RSmF8k#000L~=MlN{E5rD;!AERymp#$ckzMSZ_Ns=*JRGS7GCqWt|INe zyL|Wh1II-?BHqkjvcCClpw)YKfs4sa{|k?=eDTxwNv_PTlLAw>PHkK$%f;0B>B#5D z7VFuc1Z>Q?x^a7XiF9Sq|LM)M6|+jJ-@MR1@WN73%2Musw3hv))P4IDl%_6;E0eC5 zw#{J|+RD2@W*pqy+%flaG(G{mJKjIb&o>2cbN!geE=Jxczj~1MdXSI29h2?j{ zJS+Q!%UJk>uIck_ozGN!?>l#=2KS}bH7bIgOy;xSKi)FQy>|ZD-$xfOwHBW7{^3bs zj~9n-Px!aLC8&%o{qxZWFDD%C+P^jE?j@C?$ETmy|KN~%8Y1=i&P&Pqzpt9~k7?HR z1kX`diFo^_?to$Yx`&t5|E;!tHlID+w#lnv{*zsyn={PjfB!q@-IKx \ No newline at end of file + */.pika-single{z-index:9999;display:block;position:relative;color:#333;background:#fff;border:1px solid #ccc;border-bottom-color:#bbb;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.pika-single:after,.pika-single:before{content:" ";display:table}.pika-single:after{clear:both}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,.5)}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-label{display:inline-block;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:700;background-color:#fff}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;filter:alpha(opacity=0);opacity:0}.pika-next,.pika-prev{display:block;cursor:pointer;position:relative;outline:0;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5}.pika-next:hover,.pika-prev:hover{opacity:1}.is-rtl .pika-next,.pika-prev{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==)}.is-rtl .pika-prev,.pika-next{float:right;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=)}.pika-next.is-disabled,.pika-prev.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table td,.pika-table th{width:14.285714285714286%;padding:0}.pika-table th{color:#999;font-size:12px;line-height:25px;font-weight:700;text-align:center}.pika-button{cursor:pointer;display:block;box-sizing:border-box;-moz-box-sizing:border-box;outline:0;border:0;margin:0;width:100%;padding:5px;color:#666;font-size:12px;line-height:15px;text-align:right;background:#f5f5f5}.pika-week{font-size:11px;color:#999}.is-today .pika-button{color:#3af;font-weight:700}.is-selected .pika-button{color:#fff;font-weight:700;background:#3af;box-shadow:inset 0 1px 3px #178fe5;border-radius:3px}.is-inrange .pika-button{background:#D5E9F7}.is-startrange .pika-button{color:#fff;background:#6CB31D;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#3af;box-shadow:none;border-radius:3px}.is-disabled .pika-button,.is-outside-current-month .pika-button{pointer-events:none;cursor:default;color:#999;opacity:.3}.pika-button:hover{color:#fff;background:#ff8000;box-shadow:none;border-radius:3px}.pika-table abbr{border-bottom:none;cursor:help}} \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-logbook.html.gz index c81ae0bc4545bec3ebb536adf50165d822f0ac1d..63ac3760dba05e6c3cad46776236b2dadd10a73c 100644 GIT binary patch delta 571 zcmX?Tcg&7mzMF%iXvcz$?2@wemu7VN3sr2`5*8EuK;p~Y*&2&vLN%HX>B%^!7duB6 zzDkg;n4&}1Pbpq&uGa1v5U$9a^DQOl_Ah=~_7X|QnTKaDo<3z=a@V>gW%h5^pFaJ&Ixbr4L00|6 zN!u5!=;&vvpVG2DYxbs+hb#V8{!`ul)c<~E&BqnS(UKWDdz@~c5}u;l#-)4rtElbt zbur@e{^9(^`>8?qdPvvtEsXqjGujW|Jto{ zwr3RCKUlUt>P5{-rj_URhn>9P>c3~|k<%C6pWC`n&*x=y^J(v&TE~@lf7;Hgu_@Z@ m%D-3rMQX>z(|?)v1x?tdxIcNf2!OkO~6hq+0ScRlmASR z?{}49TM$#D?fmCadn0b#TAjGJ>PXZ|gN`2MdD)_3d(YK> zJ+brJ?1_h!Caj*oSXO1U^6_>thN++O9Rg$Ty*&KmfqHw%!Nl1M41U<|D_pO|x@M=I zcjlyIIsdQjUP-5pI=p%!d`|fN3=WRfFQ1lIoXa$>@-BD3=U@Bt(7Qd;mt_Brld4{< zu>OhWMaL+wb*byu-gLHE^L(c)LyE_pMVrqb*vC*G)F|)PG4YlWPy0Ff3ntEyPnU>a zayTdNbv8nb-O6oO>I4t9mX>uA6QtRAXD!Hal9ZiRBRffE{WW11_0W&;mmbgN)e&l3 zd+KV$N(ryT>)fj@Oi_(JD|)GC)|rQAFM4}jH*^gT+CBf<#ivjI+WPB?7HsX$I62!t zG?aGeHB+4*YfCz#VyQz%6Ur6xpmsR?_Kk}udm_u zuQR_~V&%Oz!$~VG@Va;3uLrZwaje?M;B~4yeC97*-6KErCkr)QSbyr-{mW73LQQtc z7hJa2E$K^X40#^2n&r(R^?NRlSYMPszZEcj$(P!LPnZ6Ad@<%{wJMv)SzYO@`mgO4 hlOJ~*|9$1AX>fbO{dIR29 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 T6>qoB|72f&vg-bF5e5bTSj2SD literal 2338 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 Date: Sun, 12 Feb 2017 20:42:56 +0100 Subject: [PATCH 047/196] Add media_image to media_player component (#5754) --- .../components/media_player/__init__.py | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index e3c3170f6f1..f4b828a0289 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -450,6 +450,25 @@ class MediaPlayerDevice(Entity): """Image url of current playing media.""" return None + @property + def media_image_hash(self): + """Hash value for media image.""" + url = self.media_image_url + + if url is not None: + return hashlib.md5(url.encode('utf-8')).hexdigest()[:5] + + return None + + @asyncio.coroutine + def async_get_media_image(self): + """Fetch media image of current playing image.""" + url = self.media_image_url + if url is None: + return None, None + + return (yield from _async_fetch_image(self.hass, url)) + @property def media_title(self): """Title of current playing media.""" @@ -808,14 +827,13 @@ class MediaPlayerDevice(Entity): if self.state == STATE_OFF: return None - url = self.media_image_url + image_hash = self.media_image_hash - if url is None: + if image_hash is None: return None return ENTITY_IMAGE_URL.format( - self.entity_id, self.access_token, - hashlib.md5(url.encode('utf-8')).hexdigest()[:5]) + self.entity_id, self.access_token, image_hash) @property def state_attributes(self): @@ -909,8 +927,7 @@ class MediaPlayerImageView(HomeAssistantView): if not authenticated: return web.Response(status=401) - data, content_type = yield from _async_fetch_image( - request.app['hass'], player.media_image_url) + data, content_type = yield from player.async_get_media_image() if data is None: return web.Response(status=500) From 675dd04e97cfdbc5cd6cd58a71bfdf74c793644b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Sandstr=C3=B6m?= Date: Sun, 12 Feb 2017 20:57:29 +0100 Subject: [PATCH 048/196] vasttrafik: update token on read error (#5875) --- homeassistant/components/sensor/vasttrafik.py | 22 ++++++++++++------- requirements_all.txt | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/sensor/vasttrafik.py b/homeassistant/components/sensor/vasttrafik.py index 8c7d4274495..9f62c8620de 100644 --- a/homeassistant/components/sensor/vasttrafik.py +++ b/homeassistant/components/sensor/vasttrafik.py @@ -14,7 +14,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity import Entity from homeassistant.util import Throttle -REQUIREMENTS = ['vtjp==0.1.11'] +REQUIREMENTS = ['vtjp==0.1.14'] _LOGGER = logging.getLogger(__name__) @@ -43,14 +43,15 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ def setup_platform(hass, config, add_devices, discovery_info=None): """Setup the departure sensor.""" - from vasttrafik import JournyPlanner - planner = JournyPlanner( + import vasttrafik + planner = vasttrafik.JournyPlanner( config.get(CONF_KEY), config.get(CONF_SECRET)) sensors = [] for departure in config.get(CONF_DEPARTURES): sensors.append( VasttrafikDepartureSensor( + vasttrafik, planner, departure.get(CONF_NAME), departure.get(CONF_FROM), @@ -62,8 +63,9 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class VasttrafikDepartureSensor(Entity): """Implementation of a Vasttrafik Departure Sensor.""" - def __init__(self, planner, name, departure, heading, delay): + def __init__(self, vasttrafik, planner, name, departure, heading, delay): """Initialize the sensor.""" + self._vasttrafik = vasttrafik self._planner = planner self._name = name or departure self._departure = planner.location_name(departure)[0] @@ -113,7 +115,11 @@ class VasttrafikDepartureSensor(Entity): @Throttle(MIN_TIME_BETWEEN_UPDATES) def update(self): """Get the departure board.""" - self._departureboard = self._planner.departureboard( - self._departure['id'], - direction=self._heading['id'] if self._heading else None, - date=datetime.now()+self._delay) + try: + self._departureboard = self._planner.departureboard( + self._departure['id'], + direction=self._heading['id'] if self._heading else None, + date=datetime.now()+self._delay) + except self._vasttrafik.Error: + _LOGGER.warning('Unable to read departure board, updating token') + self._planner.update_token() diff --git a/requirements_all.txt b/requirements_all.txt index 8ccd9097cb4..05faf93c1b8 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -681,7 +681,7 @@ volvooncall==0.1.1 vsure==0.11.1 # homeassistant.components.sensor.vasttrafik -vtjp==0.1.11 +vtjp==0.1.14 # homeassistant.components.media_player.panasonic_viera # homeassistant.components.media_player.webostv From 289767522bd9fb3405a191d62f6de102dbe82e91 Mon Sep 17 00:00:00 2001 From: Colin O'Dell Date: Sun, 12 Feb 2017 21:38:29 +0100 Subject: [PATCH 049/196] Update qnapstats library; add support for new verify_ssl config (#5919) --- homeassistant/components/sensor/qnap.py | 9 ++++++--- requirements_all.txt | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/qnap.py b/homeassistant/components/sensor/qnap.py index 51a83c9371b..95eece5779a 100644 --- a/homeassistant/components/sensor/qnap.py +++ b/homeassistant/components/sensor/qnap.py @@ -12,13 +12,13 @@ from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.helpers.entity import Entity from homeassistant.const import ( CONF_HOST, CONF_USERNAME, CONF_PASSWORD, CONF_PORT, CONF_SSL, - CONF_MONITORED_CONDITIONS, TEMP_CELSIUS) + CONF_VERIFY_SSL, CONF_MONITORED_CONDITIONS, TEMP_CELSIUS) from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv import voluptuous as vol -REQUIREMENTS = ['qnapstats==0.2.1'] +REQUIREMENTS = ['qnapstats==0.2.2'] _LOGGER = logging.getLogger(__name__) @@ -86,6 +86,7 @@ _MONITORED_CONDITIONS = list(_HEALTH_MON_COND.keys()) + \ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_SSL, default=False): cv.boolean, + vol.Optional(CONF_VERIFY_SSL, default=True): cv.boolean, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string, @@ -175,7 +176,9 @@ class QNAPStatsAPI(object): protocol + "://" + config.get(CONF_HOST), config.get(CONF_PORT), config.get(CONF_USERNAME), - config.get(CONF_PASSWORD)) + config.get(CONF_PASSWORD), + verify_ssl=config.get(CONF_VERIFY_SSL) + ) self.data = {} diff --git a/requirements_all.txt b/requirements_all.txt index 05faf93c1b8..563ecadc5f4 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -581,7 +581,7 @@ pywemo==0.4.12 pyzabbix==0.7.4 # homeassistant.components.sensor.qnap -qnapstats==0.2.1 +qnapstats==0.2.2 # homeassistant.components.climate.radiotherm radiotherm==1.2 From 3f675afd5b3dbdd8a2807fd0fadcc298dbb5506d Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Sun, 12 Feb 2017 15:47:12 -0500 Subject: [PATCH 050/196] ups sensor (#5890) --- .coveragerc | 1 + homeassistant/components/sensor/ups.py | 105 +++++++++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 109 insertions(+) create mode 100644 homeassistant/components/sensor/ups.py diff --git a/.coveragerc b/.coveragerc index 14f9a8b29f6..72acf1b91a1 100644 --- a/.coveragerc +++ b/.coveragerc @@ -358,6 +358,7 @@ omit = homeassistant/components/sensor/transmission.py homeassistant/components/sensor/twitch.py homeassistant/components/sensor/uber.py + homeassistant/components/sensor/ups.py homeassistant/components/sensor/usps.py homeassistant/components/sensor/vasttrafik.py homeassistant/components/sensor/waqi.py diff --git a/homeassistant/components/sensor/ups.py b/homeassistant/components/sensor/ups.py new file mode 100644 index 00000000000..0e358a6abbb --- /dev/null +++ b/homeassistant/components/sensor/ups.py @@ -0,0 +1,105 @@ +""" +Sensor for UPS packages. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/sensor.usps/ +""" +from collections import defaultdict +import logging +from datetime import timedelta + +import voluptuous as vol + +from homeassistant.components.sensor import PLATFORM_SCHEMA +from homeassistant.const import (CONF_NAME, CONF_USERNAME, CONF_PASSWORD, + ATTR_ATTRIBUTION) +from homeassistant.helpers.entity import Entity +from homeassistant.util import slugify +from homeassistant.util import Throttle +from homeassistant.util.dt import now, parse_date +import homeassistant.helpers.config_validation as cv + +REQUIREMENTS = ['upsmychoice==1.0.1'] + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = 'ups' +COOKIE = 'upsmychoice_cookies.pickle' +CONF_UPDATE_INTERVAL = 'update_interval' +ICON = 'mdi:package-variant-closed' +STATUS_DELIVERED = 'delivered' + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_USERNAME): cv.string, + vol.Required(CONF_PASSWORD): cv.string, + vol.Optional(CONF_NAME): cv.string, + vol.Optional(CONF_UPDATE_INTERVAL, default=timedelta(seconds=1800)): ( + vol.All(cv.time_period, cv.positive_timedelta)), +}) + + +# pylint: disable=unused-argument +def setup_platform(hass, config, add_devices, discovery_info=None): + """Setup the UPS platform.""" + import upsmychoice + try: + cookie = hass.config.path(COOKIE) + session = upsmychoice.get_session(config.get(CONF_USERNAME), + config.get(CONF_PASSWORD), + cookie_path=cookie) + except upsmychoice.UPSError: + _LOGGER.exception('Could not connect to UPS My Choice') + return False + + add_devices([UPSSensor(session, config.get(CONF_NAME), + config.get(CONF_UPDATE_INTERVAL))]) + + +class UPSSensor(Entity): + """UPS Sensor.""" + + def __init__(self, session, name, interval): + """Initialize the sensor.""" + self._session = session + self._name = name + self._attributes = None + self._state = None + self.update = Throttle(interval)(self._update) + self.update() + + @property + def name(self): + """Return the name of the sensor.""" + return self._name or DOMAIN + + @property + def state(self): + """Return the state of the sensor.""" + return self._state + + def _update(self): + """Update device state.""" + import upsmychoice + status_counts = defaultdict(int) + for package in upsmychoice.get_packages(self._session): + status = slugify(package['status']) + skip = status == STATUS_DELIVERED and \ + parse_date(package['delivery_date']) < now().date() + if skip: + continue + status_counts[status] += 1 + self._attributes = { + ATTR_ATTRIBUTION: upsmychoice.ATTRIBUTION + } + self._attributes.update(status_counts) + self._state = sum(status_counts.values()) + + @property + def device_state_attributes(self): + """Return the state attributes.""" + return self._attributes + + @property + def icon(self): + """Icon to use in the frontend.""" + return ICON diff --git a/requirements_all.txt b/requirements_all.txt index 563ecadc5f4..36a6a978231 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -668,6 +668,9 @@ twilio==5.7.0 # homeassistant.components.sensor.uber uber_rides==0.2.7 +# homeassistant.components.sensor.ups +upsmychoice==1.0.1 + # homeassistant.components.device_tracker.unifi urllib3 From 64cb65a04edd3467ba02b0a19b961b447f9f25e2 Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Sun, 12 Feb 2017 15:47:27 -0500 Subject: [PATCH 051/196] fedex sensor (#5891) * fedex sensor * fix fedex requirement --- .coveragerc | 1 + homeassistant/components/sensor/fedex.py | 105 +++++++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 109 insertions(+) create mode 100644 homeassistant/components/sensor/fedex.py diff --git a/.coveragerc b/.coveragerc index 72acf1b91a1..771cdcfe85b 100644 --- a/.coveragerc +++ b/.coveragerc @@ -303,6 +303,7 @@ omit = homeassistant/components/sensor/eliqonline.py homeassistant/components/sensor/emoncms.py homeassistant/components/sensor/fastdotcom.py + homeassistant/components/sensor/fedex.py homeassistant/components/sensor/fitbit.py homeassistant/components/sensor/fixer.py homeassistant/components/sensor/fritzbox_callmonitor.py diff --git a/homeassistant/components/sensor/fedex.py b/homeassistant/components/sensor/fedex.py new file mode 100644 index 00000000000..a0b5bbf5a0a --- /dev/null +++ b/homeassistant/components/sensor/fedex.py @@ -0,0 +1,105 @@ +""" +Sensor for Fedex packages. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/sensor.usps/ +""" +from collections import defaultdict +import logging +from datetime import timedelta + +import voluptuous as vol + +from homeassistant.components.sensor import PLATFORM_SCHEMA +from homeassistant.const import (CONF_NAME, CONF_USERNAME, CONF_PASSWORD, + ATTR_ATTRIBUTION) +from homeassistant.helpers.entity import Entity +from homeassistant.util import slugify +from homeassistant.util import Throttle +from homeassistant.util.dt import now, parse_date +import homeassistant.helpers.config_validation as cv + +REQUIREMENTS = ['fedexdeliverymanager==1.0.1'] + +_LOGGER = logging.getLogger(__name__) + +DOMAIN = 'fedex' +COOKIE = 'fedexdeliverymanager_cookies.pickle' +CONF_UPDATE_INTERVAL = 'update_interval' +ICON = 'mdi:package-variant-closed' +STATUS_DELIVERED = 'delivered' + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_USERNAME): cv.string, + vol.Required(CONF_PASSWORD): cv.string, + vol.Optional(CONF_NAME): cv.string, + vol.Optional(CONF_UPDATE_INTERVAL, default=timedelta(seconds=1800)): ( + vol.All(cv.time_period, cv.positive_timedelta)), +}) + + +# pylint: disable=unused-argument +def setup_platform(hass, config, add_devices, discovery_info=None): + """Setup the Fedex platform.""" + import fedexdeliverymanager + try: + cookie = hass.config.path(COOKIE) + session = fedexdeliverymanager.get_session(config.get(CONF_USERNAME), + config.get(CONF_PASSWORD), + cookie_path=cookie) + except fedexdeliverymanager.FedexError: + _LOGGER.exception('Could not connect to Fedex Delivery Manager') + return False + + add_devices([FedexSensor(session, config.get(CONF_NAME), + config.get(CONF_UPDATE_INTERVAL))]) + + +class FedexSensor(Entity): + """Fedex Sensor.""" + + def __init__(self, session, name, interval): + """Initialize the sensor.""" + self._session = session + self._name = name + self._attributes = None + self._state = None + self.update = Throttle(interval)(self._update) + self.update() + + @property + def name(self): + """Return the name of the sensor.""" + return self._name or DOMAIN + + @property + def state(self): + """Return the state of the sensor.""" + return self._state + + def _update(self): + """Update device state.""" + import fedexdeliverymanager + status_counts = defaultdict(int) + for package in fedexdeliverymanager.get_packages(self._session): + status = slugify(package['primary_status']) + skip = status == STATUS_DELIVERED and \ + parse_date(package['delivery_date']) < now().date() + if skip: + continue + status_counts[status] += 1 + self._attributes = { + ATTR_ATTRIBUTION: fedexdeliverymanager.ATTRIBUTION + } + self._attributes.update(status_counts) + self._state = sum(status_counts.values()) + + @property + def device_state_attributes(self): + """Return the state attributes.""" + return self._attributes + + @property + def icon(self): + """Icon to use in the frontend.""" + return ICON diff --git a/requirements_all.txt b/requirements_all.txt index 36a6a978231..b80726e5e3a 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -137,6 +137,9 @@ evohomeclient==0.2.5 # homeassistant.components.sensor.fastdotcom fastdotcom==0.0.1 +# homeassistant.components.sensor.fedex +fedexdeliverymanager==1.0.1 + # homeassistant.components.feedreader feedparser==5.2.1 From 5f0b2a7d15df474c47c73c2ddac3fa9e8bd4f332 Mon Sep 17 00:00:00 2001 From: happyleavesaoc Date: Sun, 12 Feb 2017 16:00:27 -0500 Subject: [PATCH 052/196] [WIP] gstreamer media player (#5839) * gstreamer media player * gstreamer meta --- .coveragerc | 1 + .../components/media_player/gstreamer.py | 162 ++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 166 insertions(+) create mode 100644 homeassistant/components/media_player/gstreamer.py diff --git a/.coveragerc b/.coveragerc index 771cdcfe85b..8d7d58f7f65 100644 --- a/.coveragerc +++ b/.coveragerc @@ -224,6 +224,7 @@ omit = homeassistant/components/media_player/emby.py homeassistant/components/media_player/firetv.py homeassistant/components/media_player/gpmdp.py + homeassistant/components/media_player/gstreamer.py homeassistant/components/media_player/hdmi_cec.py homeassistant/components/media_player/itunes.py homeassistant/components/media_player/kodi.py diff --git a/homeassistant/components/media_player/gstreamer.py b/homeassistant/components/media_player/gstreamer.py new file mode 100644 index 00000000000..b74af4a4ddb --- /dev/null +++ b/homeassistant/components/media_player/gstreamer.py @@ -0,0 +1,162 @@ +""" +Play media via gstreamer. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/media_player.gstreamer/ +""" +import logging + +import voluptuous as vol + +from homeassistant.components.media_player import ( + MEDIA_TYPE_MUSIC, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, + SUPPORT_PAUSE, SUPPORT_SEEK, SUPPORT_STOP, SUPPORT_PLAY_MEDIA, + SUPPORT_PLAY, SUPPORT_NEXT_TRACK, PLATFORM_SCHEMA, MediaPlayerDevice) +from homeassistant.const import ( + STATE_IDLE, CONF_NAME, EVENT_HOMEASSISTANT_STOP) +import homeassistant.helpers.config_validation as cv + + +_LOGGER = logging.getLogger(__name__) + + +REQUIREMENTS = ['gstreamer-player==1.0.0'] +DOMAIN = 'gstreamer' +CONF_PIPELINE = 'pipeline' + + +SUPPORT_GSTREAMER = SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ + SUPPORT_PLAY | SUPPORT_PAUSE | SUPPORT_SEEK | SUPPORT_STOP | \ + SUPPORT_PLAY_MEDIA | SUPPORT_SEEK | SUPPORT_NEXT_TRACK + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_NAME): cv.string, + vol.Optional(CONF_PIPELINE): cv.string, +}) + + +# pylint: disable=unused-argument +def setup_platform(hass, config, add_devices, discovery_info=None): + """Setup the Gstreamer platform.""" + from gsp import GstreamerPlayer + name = config.get(CONF_NAME) + pipeline = config.get(CONF_PIPELINE) + player = GstreamerPlayer(pipeline) + + def _shutdown(call): + """Quit the player on shutdown.""" + player.quit() + + hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, _shutdown) + add_devices([GstreamerDevice(player, name)]) + + +class GstreamerDevice(MediaPlayerDevice): + """Representation of a Gstreamer device.""" + + def __init__(self, player, name): + """Initialize the Gstreamer device.""" + self._player = player + self._name = name or DOMAIN + self._state = STATE_IDLE + self._volume = None + self._duration = None + self._position = None + self._uri = None + self._title = None + self._artist = None + self._album = None + + def update(self): + """Update properties.""" + self._state = self._player.state + self._volume = self._player.volume + self._duration = self._player.duration + self._position = self._player.position + self._uri = self._player.uri + self._title = self._player.title + self._album = self._player.album + self._artist = self._player.artist + + def mute_volume(self, mute): + """Send the mute command.""" + self._player.mute() + + def set_volume_level(self, volume): + """Set the volume level.""" + self._player.volume = volume + + def play_media(self, media_type, media_id, **kwargs): + """Play media.""" + if media_type != MEDIA_TYPE_MUSIC: + _LOGGER.error('invalid media type') + return + self._player.queue(media_id) + + def media_seek(self, position): + """Seek.""" + self._player.position = position + + def media_next_track(self): + """Next track.""" + self._player.next() + + @property + def media_content_id(self): + """Content ID of currently playing media.""" + return self._uri + + @property + def content_type(self): + """Content type of currently playing media.""" + return MEDIA_TYPE_MUSIC + + @property + def name(self): + """Return the name of the device.""" + return self._name + + @property + def volume_level(self): + """Return the volume level.""" + return self._volume + + @property + def is_volume_muted(self): + """Volume muted.""" + return self._volume == 0 + + @property + def supported_features(self): + """Flag media player features that are supported.""" + return SUPPORT_GSTREAMER + + @property + def state(self): + """Return the state of the player.""" + return self._state + + @property + def media_duration(self): + """Duration of current playing media in seconds.""" + return self._duration + + @property + def media_position(self): + """Position of current playing media in seconds.""" + return self._position + + @property + def media_title(self): + """Media title.""" + return self._title + + @property + def media_artist(self): + """Media artist.""" + return self._artist + + @property + def media_album_name(self): + """Media album.""" + return self._album diff --git a/requirements_all.txt b/requirements_all.txt index b80726e5e3a..0a26e1bbf72 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -182,6 +182,9 @@ googlemaps==2.4.4 # homeassistant.components.sensor.gpsd gps3==0.33.3 +# homeassistant.components.media_player.gstreamer +gstreamer-player==1.0.0 + # homeassistant.components.ffmpeg ha-ffmpeg==1.4 From 9aac2113b61de84116a10d3467c264ee5f0effaa Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 12 Feb 2017 22:27:53 +0100 Subject: [PATCH 053/196] Add 'wait_template' to script commands / Refactory track_template (#5827) * Add 'wait' to script commands. * Add track_template + unittest / rename wait_template * fix lint & test * Fix handling / change automation-template / add tests * address paulus comments --- .../components/automation/template.py | 35 ++--- homeassistant/helpers/config_validation.py | 12 +- homeassistant/helpers/event.py | 27 ++++ homeassistant/helpers/script.py | 92 +++++++++--- tests/helpers/test_event.py | 73 ++++++++++ tests/helpers/test_script.py | 137 +++++++++++++++++- 6 files changed, 326 insertions(+), 50 deletions(-) diff --git a/homeassistant/components/automation/template.py b/homeassistant/components/automation/template.py index 90d75d0d982..9727041e750 100644 --- a/homeassistant/components/automation/template.py +++ b/homeassistant/components/automation/template.py @@ -10,8 +10,7 @@ import voluptuous as vol from homeassistant.core import callback from homeassistant.const import CONF_VALUE_TEMPLATE, CONF_PLATFORM -from homeassistant.helpers import condition -from homeassistant.helpers.event import async_track_state_change +from homeassistant.helpers.event import async_track_template import homeassistant.helpers.config_validation as cv @@ -28,28 +27,16 @@ def async_trigger(hass, config, action): value_template = config.get(CONF_VALUE_TEMPLATE) value_template.hass = hass - # Local variable to keep track of if the action has already been triggered - already_triggered = False - @callback - def state_changed_listener(entity_id, from_s, to_s): + def template_listener(entity_id, from_s, to_s): """Listen for state changes and calls action.""" - nonlocal already_triggered - template_result = condition.async_template(hass, value_template) + hass.async_run_job(action, { + 'trigger': { + 'platform': 'template', + 'entity_id': entity_id, + 'from_state': from_s, + 'to_state': to_s, + }, + }) - # Check to see if template returns true - if template_result and not already_triggered: - already_triggered = True - hass.async_run_job(action, { - 'trigger': { - 'platform': 'template', - 'entity_id': entity_id, - 'from_state': from_s, - 'to_state': to_s, - }, - }) - elif not template_result: - already_triggered = False - - return async_track_state_change(hass, value_template.extract_entities(), - state_changed_listener) + return async_track_template(hass, value_template, template_listener) diff --git a/homeassistant/helpers/config_validation.py b/homeassistant/helpers/config_validation.py index cd26c2779b1..4bcde01c132 100644 --- a/homeassistant/helpers/config_validation.py +++ b/homeassistant/helpers/config_validation.py @@ -14,7 +14,7 @@ from homeassistant.loader import get_platform from homeassistant.const import ( CONF_PLATFORM, CONF_SCAN_INTERVAL, TEMP_CELSIUS, TEMP_FAHRENHEIT, CONF_ALIAS, CONF_ENTITY_ID, CONF_VALUE_TEMPLATE, WEEKDAYS, - CONF_CONDITION, CONF_BELOW, CONF_ABOVE, SUN_EVENT_SUNSET, + CONF_CONDITION, CONF_BELOW, CONF_ABOVE, CONF_TIMEOUT, SUN_EVENT_SUNSET, SUN_EVENT_SUNRISE, CONF_UNIT_SYSTEM_IMPERIAL, CONF_UNIT_SYSTEM_METRIC) from homeassistant.core import valid_entity_id from homeassistant.exceptions import TemplateError @@ -524,8 +524,14 @@ _SCRIPT_DELAY_SCHEMA = vol.Schema({ template) }) +_SCRIPT_WAIT_TEMPLATE_SCHEMA = vol.Schema({ + vol.Optional(CONF_ALIAS): string, + vol.Required("wait_template"): template, + vol.Optional(CONF_TIMEOUT): vol.All(time_period, positive_timedelta), +}) + SCRIPT_SCHEMA = vol.All( ensure_list, - [vol.Any(SERVICE_SCHEMA, _SCRIPT_DELAY_SCHEMA, EVENT_SCHEMA, - CONDITION_SCHEMA)], + [vol.Any(SERVICE_SCHEMA, _SCRIPT_DELAY_SCHEMA, + _SCRIPT_WAIT_TEMPLATE_SCHEMA, EVENT_SCHEMA, CONDITION_SCHEMA)], ) diff --git a/homeassistant/helpers/event.py b/homeassistant/helpers/event.py index 802a1dc1a7d..1b4819ddf9b 100644 --- a/homeassistant/helpers/event.py +++ b/homeassistant/helpers/event.py @@ -84,6 +84,33 @@ def async_track_state_change(hass, entity_ids, action, from_state=None, track_state_change = threaded_listener_factory(async_track_state_change) +def async_track_template(hass, template, action, variables=None): + """Add a listener that track state changes with template condition.""" + from . import condition + + # Local variable to keep track of if the action has already been triggered + already_triggered = False + + @callback + def template_condition_listener(entity_id, from_s, to_s): + """Check if condition is correct and run action.""" + nonlocal already_triggered + template_result = condition.async_template(hass, template, variables) + + # Check to see if template returns true + if template_result and not already_triggered: + already_triggered = True + hass.async_run_job(action, entity_id, from_s, to_s) + elif not template_result: + already_triggered = False + + return async_track_state_change( + hass, template.extract_entities(), template_condition_listener) + + +track_template = threaded_listener_factory(async_track_template) + + def async_track_point_in_time(hass, action, point_in_time): """Add a listener that fires once after a specific point in time.""" utc_point_in_time = dt_util.as_utc(point_in_time) diff --git a/homeassistant/helpers/script.py b/homeassistant/helpers/script.py index 46703d86450..03a01ece768 100644 --- a/homeassistant/helpers/script.py +++ b/homeassistant/helpers/script.py @@ -6,11 +6,12 @@ from typing import Optional, Sequence import voluptuous as vol -from homeassistant.core import HomeAssistant -from homeassistant.const import CONF_CONDITION +from homeassistant.core import HomeAssistant, callback +from homeassistant.const import CONF_CONDITION, CONF_TIMEOUT from homeassistant.helpers import ( service, condition, template, config_validation as cv) -from homeassistant.helpers.event import async_track_point_in_utc_time +from homeassistant.helpers.event import ( + async_track_point_in_utc_time, async_track_template) from homeassistant.helpers.typing import ConfigType import homeassistant.util.dt as date_util from homeassistant.util.async import ( @@ -25,6 +26,7 @@ CONF_SEQUENCE = "sequence" CONF_EVENT = "event" CONF_EVENT_DATA = "event_data" CONF_DELAY = "delay" +CONF_WAIT_TEMPLATE = "wait_template" def call_from_config(hass: HomeAssistant, config: ConfigType, @@ -47,9 +49,9 @@ class Script(): self._cur = -1 self.last_action = None self.last_triggered = None - self.can_cancel = any(CONF_DELAY in action for action - in self.sequence) - self._async_unsub_delay_listener = None + self.can_cancel = any(CONF_DELAY in action or CONF_WAIT_TEMPLATE + in action for action in self.sequence) + self._async_listener = [] self._template_cache = {} self._config_cache = {} @@ -74,19 +76,21 @@ class Script(): self._log('Running script') self._cur = 0 - # Unregister callback if we were in a delay but turn on is called - # again. In that case we just continue execution. + # Unregister callback if we were in a delay or wait but turn on is + # called again. In that case we just continue execution. self._async_remove_listener() - for cur, action in islice(enumerate(self.sequence), self._cur, - None): + for cur, action in islice(enumerate(self.sequence), self._cur, None): if CONF_DELAY in action: # Call ourselves in the future to continue work - @asyncio.coroutine - def script_delay(now): + unsub = None + + @callback + def async_script_delay(now): """Called after delay is done.""" - self._async_unsub_delay_listener = None + # pylint: disable=cell-var-from-loop + self._async_listener.remove(unsub) self.hass.async_add_job(self.async_run(variables)) delay = action[CONF_DELAY] @@ -97,15 +101,45 @@ class Script(): cv.positive_timedelta)( delay.async_render(variables)) - self._async_unsub_delay_listener = \ - async_track_point_in_utc_time( - self.hass, script_delay, - date_util.utcnow() + delay) + unsub = async_track_point_in_utc_time( + self.hass, async_script_delay, + date_util.utcnow() + delay + ) + self._async_listener.append(unsub) + self._cur = cur + 1 if self._change_listener: self.hass.async_add_job(self._change_listener) return + elif CONF_WAIT_TEMPLATE in action: + # Call ourselves in the future to continue work + wait_template = action[CONF_WAIT_TEMPLATE] + wait_template.hass = self.hass + + # check if condition allready okay + if condition.async_template( + self.hass, wait_template, variables): + continue + + @callback + def async_script_wait(entity_id, from_s, to_s): + """Called after template condition is true.""" + self._async_remove_listener() + self.hass.async_add_job(self.async_run(variables)) + + self._async_listener.append(async_track_template( + self.hass, wait_template, async_script_wait)) + + self._cur = cur + 1 + if self._change_listener: + self.hass.async_add_job(self._change_listener) + + if CONF_TIMEOUT in action: + self._async_set_timeout(action, variables) + + return + elif CONF_CONDITION in action: if not self._async_check_condition(action, variables): break @@ -166,11 +200,29 @@ class Script(): self._log("Test condition {}: {}".format(self.last_action, check)) return check + def _async_set_timeout(self, action, variables): + """Schedule a timeout to abort script.""" + timeout = action[CONF_TIMEOUT] + unsub = None + + @callback + def async_script_timeout(now): + """Call after timeout is retrieve stop script.""" + self._async_listener.remove(unsub) + self._log("Timout reach, abort script.") + self.async_stop() + + unsub = async_track_point_in_utc_time( + self.hass, async_script_timeout, + date_util.utcnow() + timeout + ) + self._async_listener.append(unsub) + def _async_remove_listener(self): """Remove point in time listener, if any.""" - if self._async_unsub_delay_listener: - self._async_unsub_delay_listener() - self._async_unsub_delay_listener = None + for unsub in self._async_listener: + unsub() + self._async_listener.clear() def _log(self, msg): """Logger helper.""" diff --git a/tests/helpers/test_event.py b/tests/helpers/test_event.py index 05d5953d08a..39691097545 100644 --- a/tests/helpers/test_event.py +++ b/tests/helpers/test_event.py @@ -16,9 +16,11 @@ from homeassistant.helpers.event import ( track_time_change, track_state_change, track_time_interval, + track_template, track_sunrise, track_sunset, ) +from homeassistant.helpers.template import Template from homeassistant.components import sun import homeassistant.util.dt as dt_util @@ -188,6 +190,77 @@ class TestEventHelpers(unittest.TestCase): self.assertEqual(5, len(wildcard_runs)) self.assertEqual(6, len(wildercard_runs)) + def test_track_template(self): + """Test tracking template.""" + specific_runs = [] + wildcard_runs = [] + wildercard_runs = [] + + template_condition = Template( + "{{states.switch.test.state == 'on'}}", + self.hass + ) + template_condition_var = Template( + "{{states.switch.test.state == 'on' and test == 5}}", + self.hass + ) + + self.hass.states.set('switch.test', 'off') + + def specific_run_callback(entity_id, old_state, new_state): + specific_runs.append(1) + + track_template(self.hass, template_condition, specific_run_callback) + + @ha.callback + def wildcard_run_callback(entity_id, old_state, new_state): + wildcard_runs.append((old_state, new_state)) + + track_template(self.hass, template_condition, wildcard_run_callback) + + @asyncio.coroutine + def wildercard_run_callback(entity_id, old_state, new_state): + wildercard_runs.append((old_state, new_state)) + + track_template( + self.hass, template_condition_var, wildercard_run_callback, + {'test': 5}) + + self.hass.states.set('switch.test', 'on') + self.hass.block_till_done() + + self.assertEqual(1, len(specific_runs)) + self.assertEqual(1, len(wildcard_runs)) + self.assertEqual(1, len(wildercard_runs)) + + self.hass.states.set('switch.test', 'on') + self.hass.block_till_done() + + self.assertEqual(1, len(specific_runs)) + self.assertEqual(1, len(wildcard_runs)) + self.assertEqual(1, len(wildercard_runs)) + + self.hass.states.set('switch.test', 'off') + self.hass.block_till_done() + + self.assertEqual(1, len(specific_runs)) + self.assertEqual(1, len(wildcard_runs)) + self.assertEqual(1, len(wildercard_runs)) + + self.hass.states.set('switch.test', 'off') + self.hass.block_till_done() + + self.assertEqual(1, len(specific_runs)) + self.assertEqual(1, len(wildcard_runs)) + self.assertEqual(1, len(wildercard_runs)) + + self.hass.states.set('switch.test', 'on') + self.hass.block_till_done() + + self.assertEqual(2, len(specific_runs)) + self.assertEqual(2, len(wildcard_runs)) + self.assertEqual(2, len(wildercard_runs)) + def test_track_time_interval(self): """Test tracking time interval.""" specific_runs = [] diff --git a/tests/helpers/test_script.py b/tests/helpers/test_script.py index 6eee484097b..d9ef7bc5a2b 100644 --- a/tests/helpers/test_script.py +++ b/tests/helpers/test_script.py @@ -131,7 +131,6 @@ class TestScriptHelper(unittest.TestCase): {'event': event}])) script_obj.run() - self.hass.block_till_done() assert script_obj.is_running @@ -164,7 +163,6 @@ class TestScriptHelper(unittest.TestCase): {'event': event}])) script_obj.run() - self.hass.block_till_done() assert script_obj.is_running @@ -196,7 +194,6 @@ class TestScriptHelper(unittest.TestCase): {'event': event}])) script_obj.run() - self.hass.block_till_done() assert script_obj.is_running @@ -214,6 +211,140 @@ class TestScriptHelper(unittest.TestCase): assert not script_obj.is_running assert len(events) == 0 + def test_wait_template(self): + """Test the wait template.""" + event = 'test_event' + events = [] + + @callback + def record_event(event): + """Add recorded event to set.""" + events.append(event) + + self.hass.bus.listen(event, record_event) + + self.hass.states.set('switch.test', 'on') + + script_obj = script.Script(self.hass, cv.SCRIPT_SCHEMA([ + {'event': event}, + {'wait_template': "{{states.switch.test.state == 'off'}}"}, + {'event': event}])) + + script_obj.run() + self.hass.block_till_done() + + assert script_obj.is_running + assert script_obj.can_cancel + assert script_obj.last_action == event + assert len(events) == 1 + + self.hass.states.set('switch.test', 'off') + self.hass.block_till_done() + + assert not script_obj.is_running + assert len(events) == 2 + + def test_wait_template_cancel(self): + """Test the wait template cancel action.""" + event = 'test_event' + events = [] + + @callback + def record_event(event): + """Add recorded event to set.""" + events.append(event) + + self.hass.bus.listen(event, record_event) + + self.hass.states.set('switch.test', 'on') + + script_obj = script.Script(self.hass, cv.SCRIPT_SCHEMA([ + {'event': event}, + {'wait_template': "{{states.switch.test.state == 'off'}}"}, + {'event': event}])) + + script_obj.run() + self.hass.block_till_done() + + assert script_obj.is_running + assert script_obj.can_cancel + assert script_obj.last_action == event + assert len(events) == 1 + + script_obj.stop() + + assert not script_obj.is_running + assert len(events) == 1 + + self.hass.states.set('switch.test', 'off') + self.hass.block_till_done() + + assert not script_obj.is_running + assert len(events) == 1 + + def test_wait_template_not_schedule(self): + """Test the wait template with correct condition.""" + event = 'test_event' + events = [] + + @callback + def record_event(event): + """Add recorded event to set.""" + events.append(event) + + self.hass.bus.listen(event, record_event) + + self.hass.states.set('switch.test', 'on') + + script_obj = script.Script(self.hass, cv.SCRIPT_SCHEMA([ + {'event': event}, + {'wait_template': "{{states.switch.test.state == 'on'}}"}, + {'event': event}])) + + script_obj.run() + self.hass.block_till_done() + + assert not script_obj.is_running + assert script_obj.can_cancel + assert len(events) == 2 + + def test_wait_template_timeout(self): + """Test the wait template.""" + event = 'test_event' + events = [] + + @callback + def record_event(event): + """Add recorded event to set.""" + events.append(event) + + self.hass.bus.listen(event, record_event) + + self.hass.states.set('switch.test', 'on') + + script_obj = script.Script(self.hass, cv.SCRIPT_SCHEMA([ + {'event': event}, + { + 'wait_template': "{{states.switch.test.state == 'off'}}", + 'timeout': 5 + }, + {'event': event}])) + + script_obj.run() + self.hass.block_till_done() + + assert script_obj.is_running + assert script_obj.can_cancel + assert script_obj.last_action == event + assert len(events) == 1 + + future = dt_util.utcnow() + timedelta(seconds=5) + fire_time_changed(self.hass, future) + self.hass.block_till_done() + + assert not script_obj.is_running + assert len(events) == 1 + def test_passing_variables_to_script(self): """Test if we can pass variables to script.""" calls = [] From 3a262cd7e0f8dcd136ff295e6d909614c2cd5e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20St=C3=A5hl?= Date: Sun, 12 Feb 2017 22:34:02 +0100 Subject: [PATCH 054/196] Fix artwork in Apple TV platform (#5874) --- .../components/media_player/apple_tv.py | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/media_player/apple_tv.py b/homeassistant/components/media_player/apple_tv.py index 982ca6af894..9fba9cc4f0f 100644 --- a/homeassistant/components/media_player/apple_tv.py +++ b/homeassistant/components/media_player/apple_tv.py @@ -17,7 +17,7 @@ from homeassistant.components.media_player import ( PLATFORM_SCHEMA, MEDIA_TYPE_MUSIC, MEDIA_TYPE_VIDEO, MEDIA_TYPE_TVSHOW) from homeassistant.const import ( STATE_IDLE, STATE_PAUSED, STATE_PLAYING, STATE_STANDBY, CONF_HOST, - CONF_NAME, EVENT_HOMEASSISTANT_STOP) + CONF_NAME) from homeassistant.helpers.aiohttp_client import async_get_clientsession import homeassistant.helpers.config_validation as cv import homeassistant.util.dt as dt_util @@ -67,15 +67,6 @@ def async_setup_platform(hass, config, async_add_entities, atv = pyatv.connect_to_apple_tv(details, hass.loop, session=session) entity = AppleTvDevice(atv, name) - @asyncio.coroutine - def async_stop_subscription(event): - """Logout device to close its session.""" - _LOGGER.info("Closing Apple TV session") - yield from atv.logout() - - hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, - async_stop_subscription) - yield from async_add_entities([entity], update_before_add=True) @@ -87,7 +78,6 @@ class AppleTvDevice(MediaPlayerDevice): self._name = name self._atv = atv self._playing = None - self._artwork = None self._artwork_hash = None @property @@ -121,12 +111,11 @@ class AppleTvDevice(MediaPlayerDevice): try: playing = yield from self._atv.metadata.playing() - if self._should_download_artwork(playing): - self._artwork = None - self._artwork_hash = None - self._artwork = yield from self._atv.metadata.artwork() - if self._artwork: - self._artwork_hash = hashlib.md5(self._artwork).hexdigest() + if self._has_playing_media_changed(playing): + base = str(playing.title) + str(playing.artist) + \ + str(playing.album) + str(playing.total_time) + self._artwork_hash = hashlib.md5( + base.encode('utf-8')).hexdigest() self._playing = playing except exceptions.AuthenticationError as ex: @@ -136,7 +125,7 @@ class AppleTvDevice(MediaPlayerDevice): except asyncio.TimeoutError: _LOGGER.warning('timed out while connecting to Apple TV') - def _should_download_artwork(self, new_playing): + def _has_playing_media_changed(self, new_playing): if self._playing is None: return True old_playing = self._playing @@ -181,9 +170,14 @@ class AppleTvDevice(MediaPlayerDevice): yield from self._atv.remote_control.play_url(media_id, 0) @property - def media_image(self): - """Artwork for what is currently playing.""" - return self._artwork, 'image/png', self._artwork_hash + def media_image_hash(self): + """Hash value for media image.""" + return self._artwork_hash + + @asyncio.coroutine + def async_get_media_image(self): + """Fetch media image of current playing image.""" + return (yield from self._atv.metadata.artwork()), 'image/png' @property def media_title(self): From 9b0a3e4c5a1286547363e4b01e693f29eaf1c66f Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 13 Feb 2017 00:10:56 +0200 Subject: [PATCH 055/196] force_update zwave sensors. (#5844) * force_update zwave sensors with polling_intensity. * use bool to cast * Make all zwave sensors force_update=True --- homeassistant/components/sensor/zwave.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/homeassistant/components/sensor/zwave.py b/homeassistant/components/sensor/zwave.py index c66816541fb..b3f55efd779 100644 --- a/homeassistant/components/sensor/zwave.py +++ b/homeassistant/components/sensor/zwave.py @@ -54,6 +54,11 @@ class ZWaveSensor(zwave.ZWaveDeviceEntity): """Initialize the sensor.""" zwave.ZWaveDeviceEntity.__init__(self, value, DOMAIN) + @property + def force_update(self): + """Return force_update.""" + return True + @property def state(self): """Return the state of the sensor.""" From f4372a7df5cda2102599602b9c61feb0d8a9efec Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 13 Feb 2017 01:42:09 +0200 Subject: [PATCH 056/196] Fix getters that ignored labels. (#5903) * Fix getters that ignored labels. * Try 5 times for changed dict * fix lint * Add decorator with retrying functions. * Fix lint * use retries instead of decorator --- homeassistant/components/zwave/__init__.py | 33 +++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index 2abc79754ae..a3a3c64cf3f 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -236,7 +236,7 @@ def nice_print_node(node): print("\n\n\n") -def get_config_value(node, value_index): +def get_config_value(node, value_index, tries=5): """Return the current configuration value for a specific index.""" try: for value in node.values.values(): @@ -246,14 +246,24 @@ def get_config_value(node, value_index): except RuntimeError: # If we get an runtime error the dict has changed while # we was looking for a value, just do it again - return get_config_value(node, value_index) + return None if tries <= 0 else get_config_value( + node, value_index, tries=tries - 1) + return None -def _get_wakeup(node): +def _get_wakeup(node, tries=5): """Return wakeup interval of the node or None if node is not wakable.""" - if node.can_wake_up(): - for value_id in node.get_values(class_id=const.COMMAND_CLASS_WAKE_UP): - return node.values[value_id].data + try: + if node.can_wake_up(): + for value_id in node.get_values( + class_id=const.COMMAND_CLASS_WAKE_UP): + return node.values[value_id].data + except RuntimeError: + # If we get an runtime error the dict has changed while + # we was looking for a value, just do it again + return None if tries <= 0 else _get_wakeup( + node, tries=tries - 1) + return None @@ -671,7 +681,6 @@ class ZWaveDeviceEntity(Entity): def _value_handler(self, method=None, class_id=None, index=None, label=None, data=None, member=None, **kwargs): """Get the values for a given command_class with arguments.""" - varname = member if class_id is not None: kwargs[CLASS_ID] = class_id _LOGGER.debug('method=%s, class_id=%s, index=%s, label=%s, data=%s,' @@ -686,16 +695,20 @@ class ZWaveDeviceEntity(Entity): if index is not None and value.index != index: continue if label is not None: + label_found = False for entry in label: - if entry is not None and value.label != entry: - continue + if value.label == entry: + label_found = True + break + if not label_found: + continue if method == 'set': value.data = data return if data is not None and value.data != data: continue if member is not None: - results = getattr(value, varname) + results = getattr(value, member) else: results = value break From 6311f21d312368fb856e03bfbe181714fdc21b9f Mon Sep 17 00:00:00 2001 From: John Arild Berentsen Date: Mon, 13 Feb 2017 00:47:04 +0100 Subject: [PATCH 057/196] Bugfix for #5900 (#5901) --- homeassistant/components/climate/zwave.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/climate/zwave.py b/homeassistant/components/climate/zwave.py index 545d3b41432..e74d5d575a3 100755 --- a/homeassistant/components/climate/zwave.py +++ b/homeassistant/components/climate/zwave.py @@ -97,9 +97,11 @@ class ZWaveClimate(ZWaveDeviceEntity, ClimateDevice): self._current_temperature = self.get_value( class_id=zwave.const.COMMAND_CLASS_SENSOR_MULTILEVEL, label=['Temperature'], member='data') - self._unit = self.get_value( + device_unit = self.get_value( class_id=zwave.const.COMMAND_CLASS_SENSOR_MULTILEVEL, label=['Temperature'], member='units') + if device_unit is not None: + self._unit = device_unit # Fan Mode self._current_fan_mode = self.get_value( From 4623d1071eca19553c173be6ea8171542f91c0c5 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Sun, 12 Feb 2017 22:34:13 -0500 Subject: [PATCH 058/196] Fixed typos in wink climate (#5936) --- homeassistant/components/climate/wink.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/climate/wink.py b/homeassistant/components/climate/wink.py index d4785d4a13e..f2c2551d371 100644 --- a/homeassistant/components/climate/wink.py +++ b/homeassistant/components/climate/wink.py @@ -366,8 +366,8 @@ class WinkAC(WinkDevice, ClimateDevice): if target_temp_low is not None: data[ATTR_TARGET_TEMP_LOW] = self._convert_for_display( self.target_temperature_low) - data["total_consumption"] = self.wink.toatl_consumption() - data["schedule_enabled"] = self.wink.toatl_consumption() + data["total_consumption"] = self.wink.total_consumption() + data["schedule_enabled"] = self.wink.schedule_enabled() return data From 41849eab062171bc400ca5866e53c40e5da1cc3c Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 13 Feb 2017 06:24:07 +0100 Subject: [PATCH 059/196] Core cleanup: two stage shutdown (#5876) * Core cleanup: two stage shutdown * fix spell * fix * add async logger to close * change aiohttp to use CLOSE * address paulus comments * Fix tests * Add unittest --- homeassistant/bootstrap.py | 26 ++++++++----- homeassistant/const.py | 1 + homeassistant/core.py | 32 ++++++--------- homeassistant/helpers/aiohttp_client.py | 38 ++++++++---------- tests/components/test_mqtt_eventstream.py | 47 +++++++++++------------ tests/helpers/test_aiohttp_client.py | 14 +++---- tests/test_bootstrap.py | 4 +- tests/test_core.py | 42 ++++++++++---------- 8 files changed, 97 insertions(+), 107 deletions(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 72780707f66..e2210f66662 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -16,6 +16,7 @@ import homeassistant.components as core_components from homeassistant.components import persistent_notification import homeassistant.config as conf_util import homeassistant.core as core +from homeassistant.const import EVENT_HOMEASSISTANT_CLOSE import homeassistant.loader as loader import homeassistant.util.package as pkg_util from homeassistant.util.async import ( @@ -386,7 +387,7 @@ def async_from_config_dict(config: Dict[str, Any], None, conf_util.process_ha_config_upgrade, hass) if enable_log: - enable_logging(hass, verbose, log_rotate_days) + async_enable_logging(hass, verbose, log_rotate_days) hass.config.skip_pip = skip_pip if skip_pip: @@ -488,7 +489,7 @@ def async_from_config_file(config_path: str, yield from hass.loop.run_in_executor( None, mount_local_lib_path, config_dir) - enable_logging(hass, verbose, log_rotate_days) + async_enable_logging(hass, verbose, log_rotate_days) try: config_dict = yield from hass.loop.run_in_executor( @@ -503,11 +504,12 @@ def async_from_config_file(config_path: str, return hass -def enable_logging(hass: core.HomeAssistant, verbose: bool=False, - log_rotate_days=None) -> None: +@core.callback +def async_enable_logging(hass: core.HomeAssistant, verbose: bool=False, + log_rotate_days=None) -> None: """Setup the logging. - Async friendly. + This method must be run in the event loop. """ logging.basicConfig(level=logging.INFO) fmt = ("%(asctime)s %(levelname)s (%(threadName)s) " @@ -537,10 +539,6 @@ def enable_logging(hass: core.HomeAssistant, verbose: bool=False, except ImportError: pass - # AsyncHandler allready exists? - if hass.data.get(core.DATA_ASYNCHANDLER): - return - # Log errors to a file if we have write access to file or config dir err_log_path = hass.config.path(ERROR_LOG_FILENAME) err_path_exists = os.path.isfile(err_log_path) @@ -561,7 +559,15 @@ def enable_logging(hass: core.HomeAssistant, verbose: bool=False, err_handler.setFormatter(logging.Formatter(fmt, datefmt=datefmt)) async_handler = AsyncHandler(hass.loop, err_handler) - hass.data[core.DATA_ASYNCHANDLER] = async_handler + + @asyncio.coroutine + def async_stop_async_handler(event): + """Cleanup async handler.""" + logging.getLogger('').removeHandler(async_handler) + yield from async_handler.async_close(blocking=True) + + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_CLOSE, async_stop_async_handler) logger = logging.getLogger('') logger.addHandler(async_handler) diff --git a/homeassistant/const.py b/homeassistant/const.py index afc4c029e40..f5f86321b1e 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -156,6 +156,7 @@ CONF_ZONE = 'zone' # #### EVENTS #### EVENT_HOMEASSISTANT_START = 'homeassistant_start' EVENT_HOMEASSISTANT_STOP = 'homeassistant_stop' +EVENT_HOMEASSISTANT_CLOSE = 'homeassistant_close' EVENT_STATE_CHANGED = 'state_changed' EVENT_TIME_CHANGED = 'time_changed' EVENT_CALL_SERVICE = 'call_service' diff --git a/homeassistant/core.py b/homeassistant/core.py index d7b33a75f6a..29c61842c67 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -26,7 +26,7 @@ from homeassistant.const import ( ATTR_SERVICE_CALL_ID, ATTR_SERVICE_DATA, EVENT_CALL_SERVICE, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, EVENT_SERVICE_EXECUTED, EVENT_SERVICE_REGISTERED, EVENT_STATE_CHANGED, - EVENT_TIME_CHANGED, MATCH_ALL, __version__) + EVENT_TIME_CHANGED, MATCH_ALL, EVENT_HOMEASSISTANT_CLOSE, __version__) from homeassistant.exceptions import ( HomeAssistantError, InvalidEntityFormatError, ShuttingDown) from homeassistant.util.async import ( @@ -53,8 +53,6 @@ ENTITY_ID_PATTERN = re.compile(r"^(\w+)\.(\w+)$") # Size of a executor pool EXECUTOR_POOL_SIZE = 10 -# AsyncHandler for logging -DATA_ASYNCHANDLER = 'log_asynchandler' _LOGGER = logging.getLogger(__name__) @@ -279,23 +277,17 @@ class HomeAssistant(object): This method is a coroutine. """ - import homeassistant.helpers.aiohttp_client as aiohttp_client - + # stage 1 self.state = CoreState.stopping self.async_track_tasks() self.bus.async_fire(EVENT_HOMEASSISTANT_STOP) yield from self.async_block_till_done() - self.executor.shutdown() + + # stage 2 self.state = CoreState.not_running - - # cleanup connector pool from aiohttp - yield from aiohttp_client.async_cleanup_websession(self) - - # cleanup async layer from python logging - if self.data.get(DATA_ASYNCHANDLER): - handler = self.data.pop(DATA_ASYNCHANDLER) - logging.getLogger('').removeHandler(handler) - yield from handler.async_close(blocking=True) + self.bus.async_fire(EVENT_HOMEASSISTANT_CLOSE) + yield from self.async_block_till_done() + self.executor.shutdown() self.exit_code = exit_code self.loop.stop() @@ -397,11 +389,11 @@ class EventBus(object): self._hass.state == CoreState.stopping: raise ShuttingDown("Home Assistant is shutting down") - # Copy the list of the current listeners because some listeners - # remove themselves as a listener while being executed which - # causes the iterator to be confused. - get = self._listeners.get - listeners = get(MATCH_ALL, []) + get(event_type, []) + listeners = self._listeners.get(event_type, []) + + # EVENT_HOMEASSISTANT_CLOSE should go only to his listeners + if event_type != EVENT_HOMEASSISTANT_CLOSE: + listeners = self._listeners.get(MATCH_ALL, []) + listeners event = Event(event_type, event_data, origin) diff --git a/homeassistant/helpers/aiohttp_client.py b/homeassistant/helpers/aiohttp_client.py index 2825eb9e49c..75755ad3685 100644 --- a/homeassistant/helpers/aiohttp_client.py +++ b/homeassistant/helpers/aiohttp_client.py @@ -9,7 +9,7 @@ from aiohttp.web_exceptions import HTTPGatewayTimeout import async_timeout from homeassistant.core import callback -from homeassistant.const import EVENT_HOMEASSISTANT_STOP +from homeassistant.const import EVENT_HOMEASSISTANT_CLOSE from homeassistant.const import __version__ DATA_CONNECTOR = 'aiohttp_connector' @@ -38,6 +38,7 @@ def async_get_clientsession(hass, verify_ssl=True): connector=connector, headers={USER_AGENT: SERVER_SOFTWARE} ) + _async_register_clientsession_shutdown(hass, clientsession) hass.data[key] = clientsession return hass.data[key] @@ -121,7 +122,7 @@ def _async_register_clientsession_shutdown(hass, clientsession): clientsession.detach() hass.bus.async_listen_once( - EVENT_HOMEASSISTANT_STOP, _async_close_websession) + EVENT_HOMEASSISTANT_CLOSE, _async_close_websession) @callback @@ -130,37 +131,30 @@ def _async_get_connector(hass, verify_ssl=True): This method must be run in the event loop. """ + is_new = False + if verify_ssl: if DATA_CONNECTOR not in hass.data: connector = aiohttp.TCPConnector(loop=hass.loop) hass.data[DATA_CONNECTOR] = connector + is_new = True else: connector = hass.data[DATA_CONNECTOR] else: if DATA_CONNECTOR_NOTVERIFY not in hass.data: connector = aiohttp.TCPConnector(loop=hass.loop, verify_ssl=False) hass.data[DATA_CONNECTOR_NOTVERIFY] = connector + is_new = True else: connector = hass.data[DATA_CONNECTOR_NOTVERIFY] + if is_new: + @asyncio.coroutine + def _async_close_connector(event): + """Close connector pool.""" + yield from connector.close() + + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_CLOSE, _async_close_connector) + return connector - - -@asyncio.coroutine -def async_cleanup_websession(hass): - """Cleanup aiohttp connector pool. - - This method is a coroutine. - """ - tasks = [] - if DATA_CLIENTSESSION in hass.data: - hass.data[DATA_CLIENTSESSION].detach() - if DATA_CONNECTOR in hass.data: - tasks.append(hass.data[DATA_CONNECTOR].close()) - if DATA_CLIENTSESSION_NOTVERIFY in hass.data: - hass.data[DATA_CLIENTSESSION_NOTVERIFY].detach() - if DATA_CONNECTOR_NOTVERIFY in hass.data: - tasks.append(hass.data[DATA_CONNECTOR_NOTVERIFY].close()) - - if tasks: - yield from asyncio.wait(tasks, loop=hass.loop) diff --git a/tests/components/test_mqtt_eventstream.py b/tests/components/test_mqtt_eventstream.py index 3dbe6338e3f..7ce65fc7827 100644 --- a/tests/components/test_mqtt_eventstream.py +++ b/tests/components/test_mqtt_eventstream.py @@ -1,7 +1,6 @@ """The tests for the MQTT eventstream component.""" from collections import namedtuple import json -import unittest from unittest.mock import ANY, patch from homeassistant.bootstrap import setup_component @@ -21,16 +20,15 @@ from tests.common import ( ) -class TestMqttEventStream(unittest.TestCase): +class TestMqttEventStream(object): """Test the MQTT eventstream module.""" - def setUp(self): # pylint: disable=invalid-name + def setup_method(self): """Setup things to be run when tests are started.""" - super(TestMqttEventStream, self).setUp() self.hass = get_test_home_assistant() self.mock_mqtt = mock_mqtt_component(self.hass) - def tearDown(self): # pylint: disable=invalid-name + def teardown_method(self): """Stop everything that was started.""" self.hass.stop() @@ -46,24 +44,24 @@ class TestMqttEventStream(unittest.TestCase): def test_setup_succeeds(self): """"Test the success of the setup.""" - self.assertTrue(self.add_eventstream()) + assert self.add_eventstream() def test_setup_with_pub(self): """"Test the setup with subscription.""" # Should start off with no listeners for all events - self.assertEqual(self.hass.bus.listeners.get('*'), None) + assert self.hass.bus.listeners.get('*') is None - self.assertTrue(self.add_eventstream(pub_topic='bar')) + assert self.add_eventstream(pub_topic='bar') self.hass.block_till_done() # Verify that the event handler has been added as a listener - self.assertEqual(self.hass.bus.listeners.get('*'), 1) + assert self.hass.bus.listeners.get('*') == 1 @patch('homeassistant.components.mqtt.subscribe') def test_subscribe(self, mock_sub): """"Test the subscription.""" sub_topic = 'foo' - self.assertTrue(self.add_eventstream(sub_topic=sub_topic)) + assert self.add_eventstream(sub_topic=sub_topic) self.hass.block_till_done() # Verify that the this entity was subscribed to the topic @@ -79,7 +77,7 @@ class TestMqttEventStream(unittest.TestCase): mock_utcnow.return_value = now # Add the eventstream component for publishing events - self.assertTrue(self.add_eventstream(pub_topic=pub_topic)) + assert self.add_eventstream(pub_topic=pub_topic) self.hass.block_till_done() # Reset the mock because it will have already gotten calls for the @@ -93,7 +91,7 @@ class TestMqttEventStream(unittest.TestCase): # The order of the JSON is indeterminate, # so first just check that publish was called mock_pub.assert_called_with(self.hass, pub_topic, ANY) - self.assertTrue(mock_pub.called) + assert mock_pub.called # Get the actual call to publish and make sure it was the one # we were looking for @@ -110,12 +108,12 @@ class TestMqttEventStream(unittest.TestCase): event['event_data'] = {"new_state": new_state, "entity_id": e_id} # Verify that the message received was that expected - self.assertEqual(json.loads(msg), event) + assert json.loads(msg) == event @patch('homeassistant.components.mqtt.publish') def test_time_event_does_not_send_message(self, mock_pub): """"Test the sending of a new message if time event.""" - self.assertTrue(self.add_eventstream(pub_topic='bar')) + assert self.add_eventstream(pub_topic='bar') self.hass.block_till_done() # Reset the mock because it will have already gotten calls for the @@ -123,12 +121,12 @@ class TestMqttEventStream(unittest.TestCase): mock_pub.reset_mock() fire_time_changed(self.hass, dt_util.utcnow()) - self.assertFalse(mock_pub.called) + assert not mock_pub.called def test_receiving_remote_event_fires_hass_event(self): """"Test the receiving of the remotely fired event.""" sub_topic = 'foo' - self.assertTrue(self.add_eventstream(sub_topic=sub_topic)) + assert self.add_eventstream(sub_topic=sub_topic) self.hass.block_till_done() calls = [] @@ -147,7 +145,7 @@ class TestMqttEventStream(unittest.TestCase): fire_mqtt_message(self.hass, sub_topic, payload) self.hass.block_till_done() - self.assertEqual(1, len(calls)) + assert 1 == len(calls) @patch('homeassistant.components.mqtt.publish') def test_mqtt_received_event(self, mock_pub): @@ -160,10 +158,9 @@ class TestMqttEventStream(unittest.TestCase): """ SUB_TOPIC = 'from_slaves' - self.assertTrue( - self.add_eventstream( + assert self.add_eventstream( pub_topic='bar', - sub_topic=SUB_TOPIC)) + sub_topic=SUB_TOPIC) self.hass.block_till_done() # Reset the mock because it will have already gotten calls for the @@ -173,19 +170,21 @@ class TestMqttEventStream(unittest.TestCase): # Use MQTT component message handler to simulate firing message # received event. MQTTMessage = namedtuple('MQTTMessage', ['topic', 'qos', 'payload']) - message = MQTTMessage(SUB_TOPIC, 1, 'Hello World!'.encode('utf-8')) + message = MQTTMessage( + SUB_TOPIC, 1, '{"test": "Hello World!"}'.encode('utf-8')) mqtt.MQTT._mqtt_on_message(self, None, {'hass': self.hass}, message) self.hass.block_till_done() # 'normal' incoming mqtt messages should be broadcasted - self.assertEqual(mock_pub.call_count, 0) + assert mock_pub.call_count == 0 MQTTMessage = namedtuple('MQTTMessage', ['topic', 'qos', 'payload']) - message = MQTTMessage('test_topic', 1, 'Hello World!'.encode('utf-8')) + message = MQTTMessage( + 'test_topic', 1, '{"test": "Hello World!"}'.encode('utf-8')) mqtt.MQTT._mqtt_on_message(self, None, {'hass': self.hass}, message) self.hass.block_till_done() # but event from the event stream not - self.assertEqual(mock_pub.call_count, 1) + assert mock_pub.call_count == 1 diff --git a/tests/helpers/test_aiohttp_client.py b/tests/helpers/test_aiohttp_client.py index c54770268d0..65fd0386299 100644 --- a/tests/helpers/test_aiohttp_client.py +++ b/tests/helpers/test_aiohttp_client.py @@ -4,10 +4,10 @@ import unittest import aiohttp +from homeassistant.core import EVENT_HOMEASSISTANT_CLOSE from homeassistant.bootstrap import setup_component import homeassistant.helpers.aiohttp_client as client -from homeassistant.util.async import ( - run_callback_threadsafe, run_coroutine_threadsafe) +from homeassistant.util.async import run_callback_threadsafe from tests.common import get_test_home_assistant @@ -93,9 +93,8 @@ class TestHelpersAiohttpClient(unittest.TestCase): assert isinstance( self.hass.data[client.DATA_CONNECTOR], aiohttp.TCPConnector) - run_coroutine_threadsafe( - client.async_cleanup_websession(self.hass), self.hass.loop - ).result() + self.hass.bus.fire(EVENT_HOMEASSISTANT_CLOSE) + self.hass.block_till_done() assert self.hass.data[client.DATA_CLIENTSESSION].closed assert self.hass.data[client.DATA_CONNECTOR].closed @@ -112,9 +111,8 @@ class TestHelpersAiohttpClient(unittest.TestCase): self.hass.data[client.DATA_CONNECTOR_NOTVERIFY], aiohttp.TCPConnector) - run_coroutine_threadsafe( - client.async_cleanup_websession(self.hass), self.hass.loop - ).result() + self.hass.bus.fire(EVENT_HOMEASSISTANT_CLOSE) + self.hass.block_till_done() assert self.hass.data[client.DATA_CLIENTSESSION_NOTVERIFY].closed assert self.hass.data[client.DATA_CONNECTOR_NOTVERIFY].closed diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py index 10f23346ca3..565265b3e01 100644 --- a/tests/test_bootstrap.py +++ b/tests/test_bootstrap.py @@ -71,7 +71,7 @@ class TestBootstrap: with mock.patch('os.path.isfile', mock.Mock(return_value=True)), \ mock.patch('os.access', mock.Mock(return_value=True)), \ - mock.patch('homeassistant.bootstrap.enable_logging', + mock.patch('homeassistant.bootstrap.async_enable_logging', mock.Mock(return_value=True)), \ patch_yaml_files(files, True): self.hass = bootstrap.from_config_file('config.yaml') @@ -289,7 +289,7 @@ class TestBootstrap: assert not bootstrap.setup_component(self.hass, 'comp', {}) assert 'comp' not in self.hass.config.components - @mock.patch('homeassistant.bootstrap.enable_logging') + @mock.patch('homeassistant.bootstrap.async_enable_logging') @mock.patch('homeassistant.bootstrap.async_register_signal_handling') def test_home_assistant_core_config_validation(self, log_mock, sig_mock): """Test if we pass in wrong information for HA conf.""" diff --git a/tests/test_core.py b/tests/test_core.py index d027814e109..a0dc11348a8 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -16,7 +16,7 @@ from homeassistant.util.unit_system import (METRIC_SYSTEM) from homeassistant.const import ( __version__, EVENT_STATE_CHANGED, ATTR_FRIENDLY_NAME, CONF_UNIT_SYSTEM, ATTR_NOW, EVENT_TIME_CHANGED, EVENT_HOMEASSISTANT_STOP, - EVENT_HOMEASSISTANT_START) + EVENT_HOMEASSISTANT_CLOSE, EVENT_HOMEASSISTANT_START) from tests.common import get_test_home_assistant @@ -89,6 +89,26 @@ def test_async_run_job_delegates_non_async(): assert len(hass.async_add_job.mock_calls) == 1 +def test_stage_shutdown(): + """Simulate a shutdown, test calling stuff.""" + hass = get_test_home_assistant() + test_stop = [] + test_close = [] + test_all = [] + + hass.bus.listen( + EVENT_HOMEASSISTANT_STOP, lambda event: test_stop.append(event)) + hass.bus.listen( + EVENT_HOMEASSISTANT_CLOSE, lambda event: test_close.append(event)) + hass.bus.listen('*', lambda event: test_all.append(event)) + + hass.stop() + + assert len(test_stop) == 1 + assert len(test_close) == 1 + assert len(test_all) == 1 + + class TestHomeAssistant(unittest.TestCase): """Test the Home Assistant core classes.""" @@ -102,26 +122,6 @@ class TestHomeAssistant(unittest.TestCase): """Stop everything that was started.""" self.hass.stop() - # This test hangs on `loop.add_signal_handler` - # def test_start_and_sigterm(self): - # """Start the test.""" - # calls = [] - # self.hass.bus.listen_once(EVENT_HOMEASSISTANT_START, - # lambda event: calls.append(1)) - - # self.hass.start() - - # self.assertEqual(1, len(calls)) - - # self.hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, - # lambda event: calls.append(1)) - - # os.kill(os.getpid(), signal.SIGTERM) - - # self.hass.block_till_done() - - # self.assertEqual(1, len(calls)) - def test_pending_sheduler(self): """Add a coro to pending tasks.""" call_count = [] From 8ca3ca85644ec8d5318b7f34c65ca5eb46556bb4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 12 Feb 2017 23:55:27 -0800 Subject: [PATCH 060/196] Z-Wave: Rename customize to device_config [Breaking change] (#5933) * Z-Wave: Rename customize to device_config * Fix light * Make entity id not required --- homeassistant/components/light/zwave.py | 3 +- homeassistant/components/zwave/__init__.py | 19 +++--- tests/components/test_zwave.py | 68 ---------------------- 3 files changed, 10 insertions(+), 80 deletions(-) delete mode 100644 tests/components/test_zwave.py diff --git a/homeassistant/components/light/zwave.py b/homeassistant/components/light/zwave.py index a0804097830..89c25059d94 100644 --- a/homeassistant/components/light/zwave.py +++ b/homeassistant/components/light/zwave.py @@ -17,7 +17,6 @@ from homeassistant.const import STATE_OFF, STATE_ON from homeassistant.util.color import HASS_COLOR_MAX, HASS_COLOR_MIN, \ color_temperature_mired_to_kelvin, color_temperature_to_rgb, \ color_rgb_to_rgbw, color_rgbw_to_rgb -from homeassistant.helpers import customize _LOGGER = logging.getLogger(__name__) @@ -56,7 +55,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): node = zwave.NETWORK.nodes[discovery_info[zwave.const.ATTR_NODE_ID]] value = node.values[discovery_info[zwave.const.ATTR_VALUE_ID]] name = '{}.{}'.format(DOMAIN, zwave.object_id(value)) - node_config = customize.get_overrides(hass, zwave.DOMAIN, name) + node_config = hass.data[zwave.DATA_DEVICE_CONFIG].get(name) refresh = node_config.get(zwave.CONF_REFRESH_VALUE) delay = node_config.get(zwave.CONF_REFRESH_DELAY) _LOGGER.debug('name=%s node_config=%s CONF_REFRESH_VALUE=%s' diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index a3a3c64cf3f..ed234c3c614 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -11,11 +11,10 @@ from pprint import pprint import voluptuous as vol -from homeassistant.helpers import discovery, customize +from homeassistant.helpers import discovery from homeassistant.const import ( ATTR_BATTERY_LEVEL, ATTR_LOCATION, ATTR_ENTITY_ID, ATTR_WAKEUP, - CONF_CUSTOMIZE, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, - CONF_ENTITY_ID) + EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP) from homeassistant.helpers.entity import Entity from homeassistant.helpers.event import track_time_change from homeassistant.util import convert, slugify @@ -38,6 +37,7 @@ CONF_CONFIG_PATH = 'config_path' CONF_IGNORED = 'ignored' CONF_REFRESH_VALUE = 'refresh_value' CONF_REFRESH_DELAY = 'delay' +CONF_DEVICE_CONFIG = 'device_config' DEFAULT_CONF_AUTOHEAL = True DEFAULT_CONF_USB_STICK_PATH = '/zwaveusbstick' @@ -49,6 +49,7 @@ DEFAULT_CONF_REFRESH_DELAY = 2 DOMAIN = 'zwave' NETWORK = None +DATA_DEVICE_CONFIG = 'zwave_device_config' # List of tuple (DOMAIN, discovered service, supported command classes, # value type, genre type, specific device class). @@ -159,8 +160,7 @@ SET_WAKEUP_SCHEMA = vol.Schema({ vol.All(vol.Coerce(int), cv.positive_int), }) -_ZWAVE_CUSTOMIZE_SCHEMA_ENTRY = vol.Schema({ - vol.Required(CONF_ENTITY_ID): cv.match_all, +_DEVICE_CONFIG_SCHEMA_ENTRY = vol.Schema({ vol.Optional(CONF_POLLING_INTENSITY): cv.positive_int, vol.Optional(CONF_IGNORED, default=DEFAULT_CONF_IGNORED): cv.boolean, vol.Optional(CONF_REFRESH_VALUE, default=DEFAULT_CONF_REFRESH_VALUE): @@ -173,9 +173,8 @@ 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.All(customize.CUSTOMIZE_SCHEMA, - [_ZWAVE_CUSTOMIZE_SCHEMA_ENTRY]), + vol.Optional(CONF_DEVICE_CONFIG, default={}): + _DEVICE_CONFIG_SCHEMA_ENTRY, vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, @@ -296,8 +295,8 @@ def setup(hass, config): # Load configuration use_debug = config[DOMAIN].get(CONF_DEBUG) - customize.set_customize(hass, DOMAIN, config[DOMAIN].get(CONF_CUSTOMIZE)) autoheal = config[DOMAIN].get(CONF_AUTOHEAL) + hass.data[DATA_DEVICE_CONFIG] = config[DOMAIN][CONF_DEVICE_CONFIG] # Setup options options = ZWaveOption( @@ -382,7 +381,7 @@ def setup(hass, config): component = workaround_component name = "{}.{}".format(component, object_id(value)) - node_config = customize.get_overrides(hass, DOMAIN, name) + node_config = hass.data[DATA_DEVICE_CONFIG].get(name) if node_config.get(CONF_IGNORED): _LOGGER.info("Ignoring device %s", name) diff --git a/tests/components/test_zwave.py b/tests/components/test_zwave.py deleted file mode 100644 index 5c9be9ba22a..00000000000 --- a/tests/components/test_zwave.py +++ /dev/null @@ -1,68 +0,0 @@ -"""The tests for the zwave component.""" -import unittest -from unittest.mock import MagicMock, patch - -from homeassistant.bootstrap import setup_component -from homeassistant.components import zwave -from tests.common import get_test_home_assistant - - -class TestComponentZwave(unittest.TestCase): - """Test the Zwave component.""" - - def setUp(self): - """Setup things to be run when tests are started.""" - self.hass = get_test_home_assistant() - - def tearDown(self): - """Stop everything that was started.""" - self.hass.stop() - - def _validate_config(self, validator, config): - libopenzwave = MagicMock() - libopenzwave.__file__ = 'test' - with patch.dict('sys.modules', { - 'libopenzwave': libopenzwave, - 'openzwave.option': MagicMock(), - 'openzwave.network': MagicMock(), - 'openzwave.group': MagicMock(), - }): - validator(setup_component(self.hass, zwave.DOMAIN, { - zwave.DOMAIN: config, - })) - - def test_empty_config(self): - """Test empty config.""" - self._validate_config(self.assertTrue, {}) - - def test_empty_customize(self): - """Test empty customize.""" - self._validate_config(self.assertTrue, {'customize': {}}) - self._validate_config(self.assertTrue, {'customize': []}) - - def test_empty_customize_content(self): - """Test empty customize.""" - self._validate_config( - self.assertTrue, {'customize': {'test.test': {}}}) - - def test_full_customize_dict(self): - """Test full customize as dict.""" - self._validate_config(self.assertTrue, {'customize': {'test.test': { - zwave.CONF_POLLING_INTENSITY: 10, - zwave.CONF_IGNORED: 1, - zwave.CONF_REFRESH_VALUE: 1, - zwave.CONF_REFRESH_DELAY: 10}}}) - - def test_full_customize_list(self): - """Test full customize as list.""" - self._validate_config(self.assertTrue, {'customize': [{ - 'entity_id': 'test.test', - zwave.CONF_POLLING_INTENSITY: 10, - zwave.CONF_IGNORED: 1, - zwave.CONF_REFRESH_VALUE: 1, - zwave.CONF_REFRESH_DELAY: 10}]}) - - def test_bad_customize(self): - """Test customize with extra keys.""" - self._validate_config( - self.assertFalse, {'customize': {'test.test': {'extra_key': 10}}}) From 7b56fe2af6419bc63a5dfc47269cbd83bec49712 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 00:00:41 -0800 Subject: [PATCH 061/196] Update frontend (#5939) --- homeassistant/components/frontend/version.py | 4 +-- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 138229 -> 138242 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 27 +++++++++++++++++- .../www_static/panels/ha-panel-config.html.gz | Bin 4566 -> 8310 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2335 -> 2334 bytes 8 files changed, 31 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 5f039e387c1..ddfb1798c36 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -2,10 +2,10 @@ FINGERPRINTS = { "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "addef1d5c8990c9443e97adefd19cc63", + "frontend.html": "55ad0c8eb7ae154187303cc371f61136", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "e669c4c0b00eeddd8e05afcac11525fe", + "panels/ha-panel-config.html": "0455a14f1ab63a962462a682f42cd580", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", "panels/ha-panel-dev-info.html": "1e305a9af8fd6e7be77f3ddf215c336f", "panels/ha-panel-dev-service.html": "9f749635e518a4ca7991975bdefdb10a", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index d19dadd50a0..a9340a5cedd 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -612,4 +612,4 @@ this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,th this.hass.callService('media_player', service, serviceData); }, }); -}()); \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index f684d31fba3ab83ebb519e77ec7e170194207cba..2efc9e1f0249eb18f0c2a57f24b66108d41cf124 100644 GIT binary patch delta 22234 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 E0KT)BkpKVy delta 22221 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 Cj=C8D diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index a6b2c369829..62aa6353908 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit a6b2c369829abce33e64399418ae9d645ec5d9c6 +Subproject commit 62aa6353908851a8fd648a981e9bf06f2a14a6dc diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 5de51d98e34..565209ce6ec 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ - \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html.gz index c1ec967a861a559d652d7c6ce3abeba680f7bf2e..61a2041d73b6ed703b9115691fca616e5fbe176b 100644 GIT binary patch literal 8310 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 diff --git a/homeassistant/components/frontend/www_static/service_worker.js b/homeassistant/components/frontend/www_static/service_worker.js index 653fae485a6..0bcdd54db3c 100644 --- a/homeassistant/components/frontend/www_static/service_worker.js +++ b/homeassistant/components/frontend/www_static/service_worker.js @@ -1 +1 @@ -"use strict";function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}function notificationEventCallback(e,t){firePushCallback({action:t.action,data:t.notification.data,tag:t.notification.tag,type:e},t.notification.data.jwt)}function firePushCallback(e,t){delete e.data.jwt,0===Object.keys(e.data).length&&e.data.constructor===Object&&delete e.data,fetch("/api/notify.html5/callback",{method:"POST",headers:new Headers({"Content-Type":"application/json",Authorization:"Bearer "+t}),body:JSON.stringify(e)})}var precacheConfig=[["/","98a267101304f6200587dfef9e79fa19"],["/frontend/panels/dev-event-5c82300b3cf543a92cf4297506e450e7.html","1bb68c3df5c14307a2550a0cca39b435"],["/frontend/panels/dev-info-1e305a9af8fd6e7be77f3ddf215c336f.html","c030fa0f7ea7b36610efde8c01091286"],["/frontend/panels/dev-service-9f749635e518a4ca7991975bdefdb10a.html","1bc71eb7620c7b7198fd4b7976d6bc13"],["/frontend/panels/dev-state-7d069ba8fd5379fa8f59858b8c0a7473.html","18694d76e03e1194c734e9819923b70b"],["/frontend/panels/dev-template-2b618508510afa5281c9ecae0c3a3dbd.html","554e7f893ab24c8548813382142207d4"],["/frontend/panels/map-9c8c7924ba8f731560c9f4093835cc26.html","8ae4874622d23d995ddf2a8b0ffa8d80"],["/static/core-adfeb513cf650acf763e284d76a48d6b.js","f5fdf5f1f754e801f9f54ad31a3cc922"],["/static/frontend-addef1d5c8990c9443e97adefd19cc63.html","98a24699dc8a250463337beb0b373c5b"],["/static/mdi-c1dde43ccf5667f687c418fc8daf9668.html","6a3c9317736ca26e3390316335be9ba5"],["static/fonts/roboto/Roboto-Bold.ttf","d329cc8b34667f114a95422aaad1b063"],["static/fonts/roboto/Roboto-Light.ttf","7b5fb88f12bec8143f00e21bc3222124"],["static/fonts/roboto/Roboto-Medium.ttf","fe13e4170719c2fc586501e777bde143"],["static/fonts/roboto/Roboto-Regular.ttf","ac3f799d5bbaf5196fab15ab8de8431c"],["static/icons/favicon-192x192.png","419903b8422586a7e28021bbe9011175"],["static/icons/favicon.ico","04235bda7843ec2fceb1cbe2bc696cf4"],["static/images/card_media_player_bg.png","a34281d1c1835d338a642e90930e61aa"],["static/webcomponents-lite.min.js","32b5a9b7ada86304bec6b43d3f2194f0"]],cacheName="sw-precache-v2--"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var a=new URL(e);return"/"===a.pathname.slice(-1)&&(a.pathname+=t),a.toString()},createCacheKey=function(e,t,a,n){var c=new URL(e);return n&&c.toString().match(n)||(c.search+=(c.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(a)),c.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var a=new URL(t).pathname;return e.some(function(e){return a.match(e)})},stripIgnoredUrlParameters=function(e,t){var a=new URL(e);return a.search=a.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(e){return t.every(function(t){return!t.test(e[0])})}).map(function(e){return e.join("=")}).join("&"),a.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],a=e[1],n=new URL(t,self.location),c=createCacheKey(n,hashParamName,a,!1);return[n.toString(),c]}));self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(e){return setOfCachedUrls(e).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!t.has(a))return e.add(new Request(a,{credentials:"same-origin",redirect:"follow"}))}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(e){return e.keys().then(function(a){return Promise.all(a.map(function(a){if(!t.has(a.url))return e.delete(a)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(e){if("GET"===e.request.method){var t,a=stripIgnoredUrlParameters(e.request.url,ignoreUrlParametersMatching);t=urlsToCacheKeys.has(a);var n="index.html";!t&&n&&(a=addDirectoryIndex(a,n),t=urlsToCacheKeys.has(a));var c="/";!t&&c&&"navigate"===e.request.mode&&isPathWhitelisted(["^((?!(static|api|local|service_worker.js|manifest.json)).)*$"],e.request.url)&&(a=new URL(c,self.location).toString(),t=urlsToCacheKeys.has(a)),t&&e.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(a)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(t){return console.warn('Couldn\'t serve response for "%s" from cache: %O',e.request.url,t),fetch(e.request)}))}}),self.addEventListener("push",function(e){var t;e.data&&(t=e.data.json(),e.waitUntil(self.registration.showNotification(t.title,t).then(function(e){firePushCallback({type:"received",tag:t.tag,data:t.data},t.data.jwt)})))}),self.addEventListener("notificationclick",function(e){var t;notificationEventCallback("clicked",e),e.notification.close(),e.notification.data&&e.notification.data.url&&(t=e.notification.data.url,t&&e.waitUntil(clients.matchAll({type:"window"}).then(function(e){var a,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 T6>qoB|72f&vg-bF5e5bTSj2SD From feb2ebbc03dd0cfb86e4eb700cf32bc2063493e0 Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Mon, 13 Feb 2017 00:27:50 -0800 Subject: [PATCH 062/196] Fix AWS Lambda breakage after #5824 (#5935) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- homeassistant/components/notify/aws_lambda.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/notify/aws_lambda.py b/homeassistant/components/notify/aws_lambda.py index 7bb83db7f82..801537fbba6 100644 --- a/homeassistant/components/notify/aws_lambda.py +++ b/homeassistant/components/notify/aws_lambda.py @@ -15,6 +15,7 @@ from homeassistant.const import ( from homeassistant.components.notify import ( ATTR_TARGET, PLATFORM_SCHEMA, BaseNotificationService) import homeassistant.helpers.config_validation as cv +from homeassistant.remote import JSONEncoder _LOGGER = logging.getLogger(__name__) REQUIREMENTS = ["boto3==1.4.3"] @@ -38,7 +39,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ def get_service(hass, config, discovery_info=None): """Get the AWS Lambda notification service.""" context_str = json.dumps({'hass': hass.config.as_dict(), - 'custom': config[CONF_CONTEXT]}) + 'custom': config[CONF_CONTEXT]}, cls=JSONEncoder) context_b64 = base64.b64encode(context_str.encode("utf-8")) context = context_b64.decode("utf-8") From 18f38229b228e76b7a8e50c0a52aa30d653b863f Mon Sep 17 00:00:00 2001 From: Alan Fischer Date: Mon, 13 Feb 2017 03:10:34 -0700 Subject: [PATCH 063/196] iTach Remote Platform (#5660) * Added itach remote device * Added coverage & requirements * Updated requirements * Added schema, inline commands, and platform_setup failure if itach not found * Removed unnecessary optional parameter * Removed filename option for itach remote --- .coveragerc | 1 + homeassistant/components/remote/itach.py | 111 +++++++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 115 insertions(+) create mode 100644 homeassistant/components/remote/itach.py diff --git a/.coveragerc b/.coveragerc index 8d7d58f7f65..0d141ec42f1 100644 --- a/.coveragerc +++ b/.coveragerc @@ -282,6 +282,7 @@ omit = homeassistant/components/notify/xmpp.py homeassistant/components/nuimo_controller.py homeassistant/components/remote/harmony.py + homeassistant/components/remote/itach.py homeassistant/components/scene/hunterdouglas_powerview.py homeassistant/components/sensor/amcrest.py homeassistant/components/sensor/arest.py diff --git a/homeassistant/components/remote/itach.py b/homeassistant/components/remote/itach.py new file mode 100644 index 00000000000..d76c39bf36a --- /dev/null +++ b/homeassistant/components/remote/itach.py @@ -0,0 +1,111 @@ +""" +Support for iTach IR Devices. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/remote.itach/ +""" + +import logging + +import voluptuous as vol + +import homeassistant.helpers.config_validation as cv +import homeassistant.components.remote as remote +from homeassistant.const import ( + DEVICE_DEFAULT_NAME, CONF_NAME, CONF_MAC, CONF_HOST, CONF_PORT, + CONF_DEVICES) +from homeassistant.components.remote import ( + PLATFORM_SCHEMA, ATTR_COMMAND) + +REQUIREMENTS = ['pyitachip2ir==0.0.5'] + +_LOGGER = logging.getLogger(__name__) + +DEFAULT_PORT = 4998 +CONNECT_TIMEOUT = 5000 + +CONF_MODADDR = 'modaddr' +CONF_CONNADDR = 'connaddr' +CONF_COMMANDS = 'commands' +CONF_DATA = 'data' + +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_MAC): cv.string, + vol.Required(CONF_HOST): cv.string, + vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, + vol.Required(CONF_DEVICES): vol.All(cv.ensure_list, [{ + vol.Optional(CONF_NAME): cv.string, + vol.Optional(CONF_MODADDR): vol.Coerce(int), + vol.Required(CONF_CONNADDR): vol.Coerce(int), + vol.Required(CONF_COMMANDS): vol.All(cv.ensure_list, [{ + vol.Required(CONF_NAME): cv.string, + vol.Required(CONF_DATA): cv.string + }]) + }]) +}) + + +# pylint: disable=unused-argument +def setup_platform(hass, config, add_devices, discovery_info=None): + """Set up the ITach connection and devices.""" + import pyitachip2ir + itachip2ir = pyitachip2ir.ITachIP2IR( + config.get(CONF_MAC), config.get(CONF_HOST), + int(config.get(CONF_PORT))) + + if not itachip2ir.ready(CONNECT_TIMEOUT): + _LOGGER.error("Unable to find iTach") + return False + + devices = [] + for data in config.get(CONF_DEVICES): + name = data.get(CONF_NAME) + modaddr = int(data.get(CONF_MODADDR, 1)) + connaddr = int(data.get(CONF_CONNADDR, 1)) + cmddata = "" + for cmd in data.get(CONF_COMMANDS): + cmddata += cmd[CONF_NAME] + "\n" + cmd[CONF_DATA] + "\n" + itachip2ir.addDevice(name, modaddr, connaddr, cmddata) + devices.append(ITachIP2IRRemote(itachip2ir, name)) + add_devices(devices, True) + return True + + +class ITachIP2IRRemote(remote.RemoteDevice): + """Device that sends commands to an ITachIP2IR device.""" + + def __init__(self, itachip2ir, name): + """Initialize device.""" + self.itachip2ir = itachip2ir + self._power = False + self._name = name or DEVICE_DEFAULT_NAME + + @property + def name(self): + """Return the name of the device.""" + return self._name + + @property + def is_on(self): + """Return true if device is on.""" + return self._power + + def turn_on(self, **kwargs): + """Turn the device on.""" + self._power = True + self.itachip2ir.send(self._name, "ON", 1) + self.schedule_update_ha_state() + + def turn_off(self): + """Turn the device off.""" + self._power = False + self.itachip2ir.send(self._name, "OFF", 1) + self.schedule_update_ha_state() + + def send_command(self, **kwargs): + """Send a command to one device.""" + self.itachip2ir.send(self._name, kwargs[ATTR_COMMAND], 1) + + def update(self): + """Update the device.""" + self.itachip2ir.update() diff --git a/requirements_all.txt b/requirements_all.txt index 0a26e1bbf72..d7ebf40dd6a 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -474,6 +474,9 @@ pyicloud==0.9.1 # homeassistant.components.binary_sensor.iss pyiss==1.0.1 +# homeassistant.components.remote.itach +pyitachip2ir==0.0.5 + # homeassistant.components.sensor.lastfm pylast==1.7.0 From bc1d14f9c3f63ea0b0cc1760868ba8c7407937ce Mon Sep 17 00:00:00 2001 From: arraylabs Date: Mon, 13 Feb 2017 05:20:07 -0500 Subject: [PATCH 064/196] Added myq cover component (#5886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- .coveragerc | 1 + homeassistant/components/cover/myq.py | 90 +++++++++++++++++++++++++++ requirements_all.txt | 3 + 3 files changed, 94 insertions(+) create mode 100644 homeassistant/components/cover/myq.py diff --git a/.coveragerc b/.coveragerc index 0d141ec42f1..dc44541c0c3 100644 --- a/.coveragerc +++ b/.coveragerc @@ -153,6 +153,7 @@ omit = homeassistant/components/climate/radiotherm.py homeassistant/components/cover/garadget.py homeassistant/components/cover/homematic.py + homeassistant/components/cover/myq.py homeassistant/components/cover/rpi_gpio.py homeassistant/components/cover/scsgate.py homeassistant/components/cover/wink.py diff --git a/homeassistant/components/cover/myq.py b/homeassistant/components/cover/myq.py new file mode 100644 index 00000000000..4fba1614b7e --- /dev/null +++ b/homeassistant/components/cover/myq.py @@ -0,0 +1,90 @@ +""" +Support for MyQ-Enabled Garage Doors. + +For more details about this platform, please refer to the documentation +https://home-assistant.io/components/cover.myq/ +""" +import logging + +import voluptuous as vol + +from homeassistant.components.cover import CoverDevice +from homeassistant.const import ( + CONF_USERNAME, CONF_PASSWORD, CONF_TYPE, STATE_CLOSED) +import homeassistant.helpers.config_validation as cv + +REQUIREMENTS = [ + 'https://github.com/arraylabs/pymyq/archive/v0.0.2.zip' + '#pymyq==0.0.2'] + +COVER_SCHEMA = vol.Schema({ + vol.Required(CONF_TYPE): cv.string, + vol.Required(CONF_USERNAME): cv.string, + vol.Required(CONF_PASSWORD): cv.string +}) + +DEFAULT_NAME = 'myq' + + +def setup_platform(hass, config, add_devices, discovery_info=None): + """Setup the MyQ component.""" + from pymyq import MyQAPI as pymyq + + username = config.get(CONF_USERNAME) + password = config.get(CONF_PASSWORD) + brand = config.get(CONF_TYPE) + + logger = logging.getLogger(__name__) + + myq = pymyq(username, password, brand) + + if not myq.is_supported_brand(): + logger.error('MyQ Cover - Unsupported Brand') + return + + if not myq.is_login_valid(): + logger.error('MyQ Cover - Username or Password is incorrect') + return + + try: + add_devices(MyQDevice(myq, door) for door in myq.get_garage_doors()) + except (TypeError, KeyError, NameError) as ex: + logger.error("MyQ Cover - %s", ex) + + +class MyQDevice(CoverDevice): + """Representation of a MyQ cover.""" + + def __init__(self, myq, device): + """Initialize with API object, device id.""" + self.myq = myq + self.device_id = device['deviceid'] + self._name = device['name'] + self._status = STATE_CLOSED + + @property + def should_poll(self): + """Poll for state.""" + return True + + @property + def name(self): + """Return the name of the garage door if any.""" + return self._name if self._name else DEFAULT_NAME + + @property + def is_closed(self): + """Return True if cover is closed, else False.""" + return self._status == STATE_CLOSED + + def close_cover(self): + """Issue close command to cover.""" + self.myq.close_device(self.device_id) + + def open_cover(self): + """Issue open command to cover.""" + self.myq.open_device(self.device_id) + + def update(self): + """Update status of cover.""" + self._status = self.myq.get_status(self.device_id) diff --git a/requirements_all.txt b/requirements_all.txt index d7ebf40dd6a..5ff4111bcb5 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -220,6 +220,9 @@ https://github.com/Xorso/pyalarmdotcom/archive/0.1.1.zip#pyalarmdotcom==0.1.1 # homeassistant.components.media_player.braviatv https://github.com/aparraga/braviarc/archive/0.3.6.zip#braviarc==0.3.6 +# homeassistant.components.cover.myq +https://github.com/arraylabs/pymyq/archive/v0.0.2.zip#pymyq==0.0.2 + # homeassistant.components.media_player.roku https://github.com/bah2830/python-roku/archive/3.1.3.zip#roku==3.1.3 From 9a5618fe9653b60e61166bd07d3f49d06d452e59 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 13 Feb 2017 11:20:37 +0100 Subject: [PATCH 065/196] Upgrade TwitterAPI to 2.4.4 (#5940) --- homeassistant/components/notify/twitter.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/notify/twitter.py b/homeassistant/components/notify/twitter.py index 5672429b9c6..60aa2aebd35 100644 --- a/homeassistant/components/notify/twitter.py +++ b/homeassistant/components/notify/twitter.py @@ -13,7 +13,7 @@ from homeassistant.components.notify import ( PLATFORM_SCHEMA, BaseNotificationService) from homeassistant.const import CONF_ACCESS_TOKEN, CONF_USERNAME -REQUIREMENTS = ['TwitterAPI==2.4.3'] +REQUIREMENTS = ['TwitterAPI==2.4.4'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index 5ff4111bcb5..c452b58b3c3 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -31,7 +31,7 @@ PyMata==2.13 SoCo==0.12 # homeassistant.components.notify.twitter -TwitterAPI==2.4.3 +TwitterAPI==2.4.4 # homeassistant.components.emulated_hue # homeassistant.components.http From b6404d70ecc10f6e4b6df30a7ea56ae7446b9077 Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Mon, 13 Feb 2017 11:23:28 +0100 Subject: [PATCH 066/196] Fix mysensors platforms version requirement (#5942) * Notify and device tracker platforms require mysensors version 2.0 or greater. --- homeassistant/components/device_tracker/mysensors.py | 2 ++ homeassistant/components/notify/mysensors.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/homeassistant/components/device_tracker/mysensors.py b/homeassistant/components/device_tracker/mysensors.py index 2ba19924089..5bbbee89be3 100644 --- a/homeassistant/components/device_tracker/mysensors.py +++ b/homeassistant/components/device_tracker/mysensors.py @@ -55,6 +55,8 @@ def setup_scanner(hass, config, see, discovery_info=None): gateways = hass.data.get(mysensors.MYSENSORS_GATEWAYS) for gateway in gateways: + if float(gateway.protocol_version) < 2.0: + continue gateway.platform_callbacks.append(mysensors_callback) return True diff --git a/homeassistant/components/notify/mysensors.py b/homeassistant/components/notify/mysensors.py index ad747a7ae93..a2708a51efd 100644 --- a/homeassistant/components/notify/mysensors.py +++ b/homeassistant/components/notify/mysensors.py @@ -19,6 +19,8 @@ def get_service(hass, config, discovery_info=None): return for gateway in gateways: + if float(gateway.protocol_version) < 2.0: + continue pres = gateway.const.Presentation set_req = gateway.const.SetReq map_sv_types = { From f77eda29810d65c6ef314bb6a045e0aa6949ae73 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 13 Feb 2017 11:25:28 +0100 Subject: [PATCH 067/196] Upgrade thingspeak to 0.4.1 and use the correct API key (#5906) --- homeassistant/components/thingspeak.py | 10 +++++----- requirements_all.txt | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/thingspeak.py b/homeassistant/components/thingspeak.py index 5f0ce2dc596..a21d44527a1 100644 --- a/homeassistant/components/thingspeak.py +++ b/homeassistant/components/thingspeak.py @@ -15,7 +15,7 @@ from homeassistant.helpers import state as state_helper import homeassistant.helpers.config_validation as cv import homeassistant.helpers.event as event -REQUIREMENTS = ['thingspeak==0.4.0'] +REQUIREMENTS = ['thingspeak==0.4.1'] _LOGGER = logging.getLogger(__name__) @@ -43,7 +43,7 @@ def setup(hass, config): try: channel = thingspeak.Channel( - channel_id, api_key=api_key, timeout=TIMEOUT) + channel_id, write_key=api_key, timeout=TIMEOUT) channel.get() except RequestException: _LOGGER.error("Error while accessing the ThingSpeak channel. " @@ -52,7 +52,7 @@ def setup(hass, config): return False def thingspeak_listener(entity_id, old_state, new_state): - """Listen for new events and send them to thingspeak.""" + """Listen for new events and send them to Thingspeak.""" if new_state is None or new_state.state in ( STATE_UNKNOWN, '', STATE_UNAVAILABLE): return @@ -65,8 +65,8 @@ def setup(hass, config): try: channel.update({'field1': _state}) except RequestException: - _LOGGER.error("Error while sending value '%s' to Thingspeak", - _state) + _LOGGER.error( + "Error while sending value '%s' to Thingspeak", _state) event.track_state_change(hass, entity, thingspeak_listener) diff --git a/requirements_all.txt b/requirements_all.txt index c452b58b3c3..271043089f8 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -664,7 +664,7 @@ tellduslive==0.3.2 temperusb==1.5.1 # homeassistant.components.thingspeak -thingspeak==0.4.0 +thingspeak==0.4.1 # homeassistant.components.light.tikteck tikteck==0.4 From 2ffdf1fdcd9f7cc5344eca32518e7c7f3ac9d7ce Mon Sep 17 00:00:00 2001 From: Valentin Alexeev Date: Mon, 13 Feb 2017 15:28:40 +0200 Subject: [PATCH 068/196] Bugfix/waqi sensor pwaqi version bump (#5944) * Bump pwaqi to 1.4 to fix a typo in the underlying library. * Update WAQI sensor to use pwaqi 2.0 which relies on AQICN public API. This is a breaking change as the component now requires 'token' parameter. * Fix lint --- homeassistant/components/sensor/waqi.py | 17 +++++++++++------ requirements_all.txt | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/sensor/waqi.py b/homeassistant/components/sensor/waqi.py index 699b617b7ee..453d32bd673 100644 --- a/homeassistant/components/sensor/waqi.py +++ b/homeassistant/components/sensor/waqi.py @@ -16,7 +16,7 @@ from homeassistant.helpers.config_validation import PLATFORM_SCHEMA from homeassistant.helpers.entity import Entity from homeassistant.util import Throttle -REQUIREMENTS = ['pwaqi==1.4'] +REQUIREMENTS = ['pwaqi==2.0'] _LOGGER = logging.getLogger(__name__) @@ -33,6 +33,7 @@ ATTRIBUTION = 'Data provided by the World Air Quality Index project' CONF_LOCATIONS = 'locations' CONF_STATIONS = 'stations' +CONF_API_TOKEN = 'token' MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=10) @@ -42,6 +43,7 @@ SENSOR_TYPES = { PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_STATIONS): cv.ensure_list, + vol.Required(CONF_API_TOKEN): cv.string, vol.Required(CONF_LOCATIONS): cv.ensure_list, }) @@ -51,15 +53,16 @@ def setup_platform(hass, config, add_devices, discovery_info=None): import pwaqi dev = [] + token = config.get(CONF_API_TOKEN) station_filter = config.get(CONF_STATIONS) for location_name in config.get(CONF_LOCATIONS): - station_ids = pwaqi.findStationCodesByCity(location_name) + station_ids = pwaqi.findStationCodesByCity(location_name, token) _LOGGER.info("The following stations were returned: %s", station_ids) for station in station_ids: - waqi_sensor = WaqiSensor(WaqiData(station), station) + waqi_sensor = WaqiSensor(WaqiData(station, token), station) if (not station_filter) or \ (waqi_sensor.station_name in station_filter): - dev.append(WaqiSensor(WaqiData(station), station)) + dev.append(WaqiSensor(WaqiData(station, token), station)) add_devices(dev) @@ -148,9 +151,10 @@ class WaqiSensor(Entity): class WaqiData(object): """Get the latest data and update the states.""" - def __init__(self, station_id): + def __init__(self, station_id, token): """Initialize the data object.""" self._station_id = station_id + self._token = token self.data = None @Throttle(MIN_TIME_BETWEEN_UPDATES) @@ -158,6 +162,7 @@ class WaqiData(object): """Get the data from World Air Quality Index and updates the states.""" import pwaqi try: - self.data = pwaqi.getStationObservation(self._station_id) + self.data = pwaqi.getStationObservation( + self._station_id, self._token) except AttributeError: _LOGGER.exception("Unable to fetch data from WAQI") diff --git a/requirements_all.txt b/requirements_all.txt index 271043089f8..c1123305517 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -406,7 +406,7 @@ pushbullet.py==0.10.0 pushetta==1.0.15 # homeassistant.components.sensor.waqi -pwaqi==1.4 +pwaqi==2.0 # homeassistant.components.sensor.cpuspeed py-cpuinfo==0.2.3 From 6d7041cd4285e31b70b3a10be21fa4df0f1b2f86 Mon Sep 17 00:00:00 2001 From: Philipp Schmitt Date: Mon, 13 Feb 2017 14:43:12 +0100 Subject: [PATCH 069/196] Reduce battery drain on Nuki Lock (#5945) --- homeassistant/components/lock/nuki.py | 4 ++-- requirements_all.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/lock/nuki.py b/homeassistant/components/lock/nuki.py index 33058c86239..bb3f2f030a2 100644 --- a/homeassistant/components/lock/nuki.py +++ b/homeassistant/components/lock/nuki.py @@ -14,7 +14,7 @@ from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['pynuki==1.2.1'] +REQUIREMENTS = ['pynuki==1.2.2'] _LOGGER = logging.getLogger(__name__) @@ -61,7 +61,7 @@ class NukiLock(LockDevice): @Throttle(MIN_TIME_BETWEEN_SCANS, MIN_TIME_BETWEEN_FORCED_SCANS) def update(self): """Update the nuki lock properties.""" - self._nuki_lock.update() + self._nuki_lock.update(aggressive=False) self._name = self._nuki_lock.name self._locked = self._nuki_lock.is_locked diff --git a/requirements_all.txt b/requirements_all.txt index c1123305517..733c6c4e513 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -499,7 +499,7 @@ pynetgear==0.3.3 pynetio==0.1.6 # homeassistant.components.lock.nuki -pynuki==1.2.1 +pynuki==1.2.2 # homeassistant.components.sensor.nut pynut2==2.1.2 From a8dc5595195a4fbaad0439b5b8eb0ba132f4d4a6 Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Mon, 13 Feb 2017 15:45:04 +0000 Subject: [PATCH 070/196] Add support for the Open Energy Monitor Thermostat (#5583) * Add support for the Open Energy Monitor Thermostat * Fix linting errors * Define an update method and local state * fix linter * Small tweaks. Update oemthermostat version, default name and docstrings * Fail to setup oem platform if connection fails. * update requirements * More tweaks to auth and exceptions * Remove target temp --- .coveragerc | 1 + homeassistant/components/climate/oem.py | 148 ++++++++++++++++++ .../www_static/home-assistant-polymer | 2 +- requirements_all.txt | 3 + 4 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 homeassistant/components/climate/oem.py diff --git a/.coveragerc b/.coveragerc index dc44541c0c3..08b93aa4b7e 100644 --- a/.coveragerc +++ b/.coveragerc @@ -149,6 +149,7 @@ omit = homeassistant/components/climate/heatmiser.py homeassistant/components/climate/homematic.py homeassistant/components/climate/knx.py + homeassistant/components/climate/oem.py homeassistant/components/climate/proliphix.py homeassistant/components/climate/radiotherm.py homeassistant/components/cover/garadget.py diff --git a/homeassistant/components/climate/oem.py b/homeassistant/components/climate/oem.py new file mode 100644 index 00000000000..0280f116f1e --- /dev/null +++ b/homeassistant/components/climate/oem.py @@ -0,0 +1,148 @@ +""" +OpenEnergyMonitor Thermostat Support. + +This provides a climate component for the ESP8266 based thermostat sold by +OpenEnergyMonitor. + +For more details about this platform, please refer to the documentation at +https://home-assistant.io/components/climate.oem/ +""" +import logging + +import requests +import voluptuous as vol + +# Import the device class from the component that you want to support +from homeassistant.components.climate import ( + ClimateDevice, PLATFORM_SCHEMA, STATE_HEAT, STATE_IDLE, ATTR_TEMPERATURE) +from homeassistant.const import (CONF_HOST, CONF_USERNAME, CONF_PASSWORD, + CONF_PORT, TEMP_CELSIUS, CONF_NAME) +import homeassistant.helpers.config_validation as cv + +# Home Assistant depends on 3rd party packages for API specific code. +REQUIREMENTS = ['oemthermostat==1.1'] + +_LOGGER = logging.getLogger(__name__) + +# Local configs +CONF_AWAY_TEMP = 'away_temp' + +# Validation of the user's configuration +PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ + vol.Required(CONF_HOST): cv.string, + vol.Optional(CONF_NAME, default="Thermostat"): cv.string, + vol.Optional(CONF_PORT, default=80): cv.port, + vol.Inclusive(CONF_USERNAME, 'authentication'): cv.string, + vol.Inclusive(CONF_PASSWORD, 'authentication'): cv.string, + vol.Optional(CONF_AWAY_TEMP, default=14): vol.Coerce(float) +}) + + +def setup_platform(hass, config, add_devices, discovery_info=None): + """Setup oemthermostat.""" + from oemthermostat import Thermostat + + # Assign configuration variables. The configuration check takes care they + # are present. + name = config.get(CONF_NAME) + host = config.get(CONF_HOST) + port = config.get(CONF_PORT) + username = config.get(CONF_USERNAME) + password = config.get(CONF_PASSWORD) + away_temp = config.get(CONF_AWAY_TEMP) + + # If creating the class raises an exception, it failed to connect or + # something else went wrong. + try: + therm = Thermostat(host, port=port, + username=username, password=password) + except (ValueError, AssertionError, requests.RequestException): + return False + + # Add devices + add_devices((ThermostatDevice(hass, therm, name, away_temp), ), True) + + +class ThermostatDevice(ClimateDevice): + """Interface class for the oemthermostat module and HA.""" + + def __init__(self, hass, thermostat, name, away_temp): + """Initialize the device.""" + self._name = name + self.hass = hass + + # Away mode stuff + self._away = False + self._away_temp = away_temp + self._prev_temp = thermostat.setpoint + + self.thermostat = thermostat + # Set the thermostat mode to manual + self.thermostat.mode = 2 + + # set up internal state varS + self._state = None + self._temperature = None + self._setpoint = None + + @property + def name(self): + """Name of this Thermostat.""" + return self._name + + @property + def temperature_unit(self): + """The unit of measurement used by the platform.""" + return TEMP_CELSIUS + + @property + def current_operation(self): + """Return current operation i.e. heat, cool, idle.""" + if self._state: + return STATE_HEAT + else: + return STATE_IDLE + + @property + def current_temperature(self): + """Return the current temperature.""" + return self._temperature + + @property + def target_temperature(self): + """Return the temperature we try to reach.""" + return self._setpoint + + def set_temperature(self, **kwargs): + """Change the setpoint of the thermostat.""" + # If we are setting the temp, then we don't want away mode anymore. + self.turn_away_mode_off() + + temp = kwargs.get(ATTR_TEMPERATURE) + self.thermostat.setpoint = temp + + @property + def is_away_mode_on(self): + """Return true if away mode is on.""" + return self._away + + def turn_away_mode_on(self): + """Turn away mode on.""" + if not self._away: + self._prev_temp = self._setpoint + + self.thermostat.setpoint = self._away_temp + self._away = True + + def turn_away_mode_off(self): + """Turn away mode off.""" + if self._away: + self.thermostat.setpoint = self._prev_temp + + self._away = False + + def update(self): + """Update local state.""" + self._setpoint = self.thermostat.setpoint + self._temperature = self.thermostat.temperature + self._state = self.thermostat.state diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 62aa6353908..5159326a7b3 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 62aa6353908851a8fd648a981e9bf06f2a14a6dc +Subproject commit 5159326a7b3d1ba29ae17a7861fa2eaa8c2c95f6 diff --git a/requirements_all.txt b/requirements_all.txt index 733c6c4e513..b83c94a2276 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -352,6 +352,9 @@ neurio==0.3.1 # homeassistant.components.google oauth2client==4.0.0 +# homeassistant.components.climate.oem +oemthermostat==1.1 + # homeassistant.components.sensor.openevse openevsewifi==0.4 From b2d1774293ec004f81f8defd005007790d3b2c60 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 08:54:11 -0800 Subject: [PATCH 071/196] Fix Z-Wave (#5955) --- homeassistant/components/zwave/__init__.py | 2 +- tests/components/zwave/__init__.py | 1 + tests/components/zwave/test_init.py | 46 ++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 tests/components/zwave/__init__.py create mode 100644 tests/components/zwave/test_init.py diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index ed234c3c614..6080454f825 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -174,7 +174,7 @@ CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean, vol.Optional(CONF_CONFIG_PATH): cv.string, vol.Optional(CONF_DEVICE_CONFIG, default={}): - _DEVICE_CONFIG_SCHEMA_ENTRY, + vol.Schema({cv.entity_id: _DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, diff --git a/tests/components/zwave/__init__.py b/tests/components/zwave/__init__.py new file mode 100644 index 00000000000..996bbf22b69 --- /dev/null +++ b/tests/components/zwave/__init__.py @@ -0,0 +1 @@ +"""Tests for the Z-Wave component.""" diff --git a/tests/components/zwave/test_init.py b/tests/components/zwave/test_init.py new file mode 100644 index 00000000000..2bfb8986544 --- /dev/null +++ b/tests/components/zwave/test_init.py @@ -0,0 +1,46 @@ +"""Tests for the Z-Wave init.""" +import asyncio +from unittest.mock import MagicMock, patch + +import pytest + +from homeassistant.bootstrap import async_setup_component +from homeassistant.components.zwave import ( + DATA_DEVICE_CONFIG, _DEVICE_CONFIG_SCHEMA_ENTRY) + + +@pytest.fixture(autouse=True) +def mock_openzwave(): + """Mock out Open Z-Wave.""" + libopenzwave = MagicMock() + libopenzwave.__file__ = 'test' + with patch.dict('sys.modules', { + 'libopenzwave': libopenzwave, + 'openzwave.option': MagicMock(), + 'openzwave.network': MagicMock(), + 'openzwave.group': MagicMock(), + }): + yield + + +@asyncio.coroutine +def test_device_config(hass): + """Test device config stored in hass.""" + device_config = { + 'light.kitchen': { + 'ignored': 'true' + } + } + yield from async_setup_component(hass, 'zwave', { + 'zwave': { + 'device_config': device_config + }}) + + assert DATA_DEVICE_CONFIG in hass.data + + test_data = { + key: _DEVICE_CONFIG_SCHEMA_ENTRY(value) + for key, value in device_config.items() + } + + assert hass.data[DATA_DEVICE_CONFIG] == test_data From 0feb1c3e287383ac48fd0b6e0aa7369fcac5f9f7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 13 Feb 2017 20:59:42 +0200 Subject: [PATCH 072/196] Add workaround for ignoring zwave devices and reversing cover open/close (#5922) --- homeassistant/components/cover/zwave.py | 42 +++++++------------- homeassistant/components/zwave/__init__.py | 4 ++ homeassistant/components/zwave/workaround.py | 39 ++++++++++++++---- 3 files changed, 50 insertions(+), 35 deletions(-) diff --git a/homeassistant/components/cover/zwave.py b/homeassistant/components/cover/zwave.py index 2d61af4d00e..6278f3636b3 100644 --- a/homeassistant/components/cover/zwave.py +++ b/homeassistant/components/cover/zwave.py @@ -10,17 +10,9 @@ import logging from homeassistant.components.cover import DOMAIN from homeassistant.components.zwave import ZWaveDeviceEntity from homeassistant.components import zwave +from homeassistant.components.zwave import workaround from homeassistant.components.cover import CoverDevice -SOMFY = 0x47 -SOMFY_ZRTSI = 0x5a52 -SOMFY_ZRTSI_CONTROLLER = (SOMFY, SOMFY_ZRTSI) -WORKAROUND = 'workaround' - -DEVICE_MAPPINGS = { - SOMFY_ZRTSI_CONTROLLER: WORKAROUND -} - _LOGGER = logging.getLogger(__name__) @@ -58,16 +50,9 @@ class ZwaveRollershutter(zwave.ZWaveDeviceEntity, CoverDevice): self._open_id = None self._close_id = None self._current_position = None - self._workaround = None - if (value.node.manufacturer_id.strip() and - value.node.product_id.strip()): - specific_sensor_key = (int(value.node.manufacturer_id, 16), - int(value.node.product_type, 16)) - - if specific_sensor_key in DEVICE_MAPPINGS: - if DEVICE_MAPPINGS[specific_sensor_key] == WORKAROUND: - _LOGGER.debug("Controller without positioning feedback") - self._workaround = 1 + self._workaround = workaround.get_device_mapping(value) + if self._workaround: + _LOGGER.debug("Using workaround %s", self._workaround) def update_properties(self): """Callback on data changes for node values.""" @@ -81,6 +66,8 @@ class ZwaveRollershutter(zwave.ZWaveDeviceEntity, CoverDevice): self._close_id = self.get_value( class_id=zwave.const.COMMAND_CLASS_SWITCH_MULTILEVEL, label=['Close', 'Down'], member='value_id') + if self._workaround == workaround.WORKAROUND_REVERSE_OPEN_CLOSE: + self._open_id, self._close_id = self._close_id, self._open_id @property def is_closed(self): @@ -95,14 +82,15 @@ class ZwaveRollershutter(zwave.ZWaveDeviceEntity, CoverDevice): @property def current_cover_position(self): """Return the current position of Zwave roller shutter.""" - if not self._workaround: - if self._current_position is not None: - if self._current_position <= 5: - return 0 - elif self._current_position >= 95: - return 100 - else: - return self._current_position + if self._workaround == workaround.WORKAROUND_NO_POSITION: + return None + if self._current_position is not None: + if self._current_position <= 5: + return 0 + elif self._current_position >= 95: + return 100 + else: + return self._current_position def open_cover(self, **kwargs): """Move the roller shutter up.""" diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index 6080454f825..b2c471595ab 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -376,6 +376,10 @@ def setup(hass, config): workaround_component = workaround.get_device_component_mapping( value) if workaround_component and workaround_component != component: + if workaround_component == workaround.WORKAROUND_IGNORE: + _LOGGER.info("Ignoring device %s", + "{}.{}".format(component, object_id(value))) + continue _LOGGER.debug("Using %s instead of %s", workaround_component, component) component = workaround_component diff --git a/homeassistant/components/zwave/workaround.py b/homeassistant/components/zwave/workaround.py index 7712c1868db..9522917ed09 100644 --- a/homeassistant/components/zwave/workaround.py +++ b/homeassistant/components/zwave/workaround.py @@ -5,6 +5,7 @@ from . import const FIBARO = 0x010f PHILIO = 0x013c WENZHOU = 0x0118 +SOMFY = 0x47 # Product IDs PHILIO_SLIM_SENSOR = 0x0002 @@ -12,32 +13,51 @@ PHILIO_3_IN_1_SENSOR_GEN_4 = 0x000d # Product Types FGFS101_FLOOD_SENSOR_TYPE = 0x0b00 +FGRM222_SHUTTER2 = 0x0301 PHILIO_SENSOR = 0x0002 +SOMFY_ZRTSI = 0x5a52 # Mapping devices -PHILIO_SLIM_SENSOR_MOTION = (PHILIO, PHILIO_SENSOR, PHILIO_SLIM_SENSOR, 0) -PHILIO_3_IN_1_SENSOR_GEN_4_MOTION = ( +PHILIO_SLIM_SENSOR_MOTION_MTII = (PHILIO, PHILIO_SENSOR, PHILIO_SLIM_SENSOR, 0) +PHILIO_3_IN_1_SENSOR_GEN_4_MOTION_MTII = ( PHILIO, PHILIO_SENSOR, PHILIO_3_IN_1_SENSOR_GEN_4, 0) -WENZHOU_SLIM_SENSOR_MOTION = (WENZHOU, PHILIO_SENSOR, PHILIO_SLIM_SENSOR, 0) +WENZHOU_SLIM_SENSOR_MOTION_MTII = ( + WENZHOU, PHILIO_SENSOR, PHILIO_SLIM_SENSOR, 0) # Workarounds WORKAROUND_NO_OFF_EVENT = 'trigger_no_off_event' +WORKAROUND_NO_POSITION = 'workaround_no_position' +WORKAROUND_REVERSE_OPEN_CLOSE = 'reverse_open_close' +WORKAROUND_IGNORE = 'workaround_ignore' # List of workarounds by (manufacturer_id, product_type, product_id, index) -DEVICE_MAPPINGS = { - PHILIO_SLIM_SENSOR_MOTION: WORKAROUND_NO_OFF_EVENT, - PHILIO_3_IN_1_SENSOR_GEN_4_MOTION: WORKAROUND_NO_OFF_EVENT, - WENZHOU_SLIM_SENSOR_MOTION: WORKAROUND_NO_OFF_EVENT, +DEVICE_MAPPINGS_MTII = { + PHILIO_SLIM_SENSOR_MOTION_MTII: WORKAROUND_NO_OFF_EVENT, + PHILIO_3_IN_1_SENSOR_GEN_4_MOTION_MTII: WORKAROUND_NO_OFF_EVENT, + WENZHOU_SLIM_SENSOR_MOTION_MTII: WORKAROUND_NO_OFF_EVENT, } +SOMFY_ZRTSI_CONTROLLER_MT = (SOMFY, SOMFY_ZRTSI) +FIBARO_FGRM222_MT = (FIBARO, FGRM222_SHUTTER2) + +# List of workarounds by (manufacturer_id, product_type) +DEVICE_MAPPINGS_MT = { + SOMFY_ZRTSI_CONTROLLER_MT: WORKAROUND_NO_POSITION, + FIBARO_FGRM222_MT: WORKAROUND_REVERSE_OPEN_CLOSE, +} + + # Component mapping devices FIBARO_FGFS101_SENSOR_ALARM = ( FIBARO, FGFS101_FLOOD_SENSOR_TYPE, const.COMMAND_CLASS_SENSOR_ALARM) +FIBARO_FGRM222_BINARY = ( + FIBARO, FGRM222_SHUTTER2, const.COMMAND_CLASS_SWITCH_BINARY) # List of component workarounds by # (manufacturer_id, product_type, command_class) DEVICE_COMPONENT_MAPPING = { FIBARO_FGFS101_SENSOR_ALARM: 'binary_sensor', + FIBARO_FGRM222_BINARY: WORKAROUND_IGNORE, } @@ -61,7 +81,10 @@ def get_device_mapping(value): manufacturer_id = int(value.node.manufacturer_id, 16) product_type = int(value.node.product_type, 16) product_id = int(value.node.product_id, 16) - return DEVICE_MAPPINGS.get( + result = DEVICE_MAPPINGS_MTII.get( (manufacturer_id, product_type, product_id, value.index)) + if result: + return result + return DEVICE_MAPPINGS_MT.get((manufacturer_id, product_type)) return None From 401263519df50b074eb51d1069b32c85b46a6d6e Mon Sep 17 00:00:00 2001 From: Josh Anderson Date: Mon, 13 Feb 2017 21:29:18 +0000 Subject: [PATCH 073/196] Only try to pair notify.webostv when not paired (#5967) This allows the notify.webostv component to successfully register when the TV is not currently powered on as long as a pairing record exists. --- homeassistant/components/notify/webostv.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/notify/webostv.py b/homeassistant/components/notify/webostv.py index edaab1b5521..476f7b9053e 100644 --- a/homeassistant/components/notify/webostv.py +++ b/homeassistant/components/notify/webostv.py @@ -34,14 +34,15 @@ def get_service(hass, config, discovery_info=None): path = hass.config.path(config.get(CONF_FILENAME)) client = WebOsClient(config.get(CONF_HOST), key_file_path=path) - try: - client.register() - except PyLGTVPairException: - _LOGGER.error("Pairing with TV failed") - return None - except OSError: - _LOGGER.error("TV unreachable") - return None + if not client.is_registered(): + try: + client.register() + except PyLGTVPairException: + _LOGGER.error("Pairing with TV failed") + return None + except OSError: + _LOGGER.error("TV unreachable") + return None return LgWebOSNotificationService(client) From 5cad539859a498ead219e67d8903cfa9395b9741 Mon Sep 17 00:00:00 2001 From: Gert-Jan van de Streek Date: Mon, 13 Feb 2017 22:48:48 +0100 Subject: [PATCH 074/196] Fix slow status updates from the knx bus (#5963) * Fix slow status updates from the knx bus The data set in the entity was an array, not the value. @fixes https://github.com/home-assistant/home-assistant/issues/4407 * speed up status update --- homeassistant/components/knx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/knx.py b/homeassistant/components/knx.py index 8653f33c663..53c414922e4 100644 --- a/homeassistant/components/knx.py +++ b/homeassistant/components/knx.py @@ -136,8 +136,8 @@ class KNXGroupAddress(Entity): information relating to this device. """ if (addr == self.state_address) or (addr == self.address): - self._state = data - self.update_ha_state() + self._state = data[0] + self.schedule_update_ha_state() KNXTUNNEL.register_listener(self.address, handle_knx_message) if self.state_address: From 32fc164df3c351e2b8f1d6b19926cc587687c358 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 13:52:11 -0800 Subject: [PATCH 075/196] Clean up HDMI_CEC [Breaking change] (#5932) --- homeassistant/components/hdmi_cec.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/hdmi_cec.py b/homeassistant/components/hdmi_cec.py index 5ed3b688672..b7d6f04c440 100644 --- a/homeassistant/components/hdmi_cec.py +++ b/homeassistant/components/hdmi_cec.py @@ -13,7 +13,6 @@ from functools import reduce import voluptuous as vol import homeassistant.helpers.config_validation as cv -from homeassistant import core from homeassistant.components import discovery from homeassistant.components.media_player import DOMAIN as MEDIA_PLAYER from homeassistant.components.switch import DOMAIN as SWITCH @@ -23,9 +22,8 @@ from homeassistant.const import (EVENT_HOMEASSISTANT_START, STATE_UNKNOWN, STATE_OFF, CONF_DEVICES, CONF_PLATFORM, STATE_PLAYING, STATE_IDLE, STATE_PAUSED, CONF_HOST) -from homeassistant.core import HomeAssistant, callback +from homeassistant.core import HomeAssistant from homeassistant.helpers.entity import Entity -from homeassistant.helpers import customize REQUIREMENTS = ['pyCEC==0.4.13'] @@ -34,6 +32,7 @@ DOMAIN = 'hdmi_cec' _LOGGER = logging.getLogger(__name__) DEFAULT_DISPLAY_NAME = "HomeAssistant" +CONF_TYPES = 'types' ICON_UNKNOWN = 'mdi:help' ICON_AUDIO = 'mdi:speaker' @@ -117,11 +116,6 @@ DEVICE_SCHEMA = vol.Schema({ cv.string) }) -CUSTOMIZE_SCHEMA = vol.Schema({ - vol.Optional(CONF_PLATFORM, default=MEDIA_PLAYER): vol.Any(MEDIA_PLAYER, - SWITCH) -}) - CONF_DISPLAY_NAME = 'osd_name' CONFIG_SCHEMA = vol.Schema({ DOMAIN: vol.Schema({ @@ -133,6 +127,8 @@ CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_PLATFORM): vol.Any(SWITCH, MEDIA_PLAYER), vol.Optional(CONF_HOST): cv.string, vol.Optional(CONF_DISPLAY_NAME): cv.string, + vol.Optional(CONF_TYPES, default={}): + vol.Schema({cv.entity_id: vol.Any(MEDIA_PLAYER, SWITCH)}) }) }, extra=vol.ALLOW_EXTRA) @@ -254,11 +250,9 @@ def setup(hass: HomeAssistant, base_config): command = CecCommand(cmd, dst, src, att) hdmi_network.send_command(command) - @callback def _standby(call): hdmi_network.standby() - @callback def _power_on(call): hdmi_network.power_on() @@ -295,16 +289,13 @@ def setup(hass: HomeAssistant, base_config): """ hdmi_network.scan() - @callback def _new_device(device): """Called when new device is detected by HDMI network.""" key = DOMAIN + '.' + device.name hass.data[key] = device + ent_platform = base_config[DOMAIN][CONF_TYPES].get(key, platform) discovery.load_platform( - hass, - customize.get_overrides(hass, core.DOMAIN, key).get( - CONF_PLATFORM, platform), - DOMAIN, discovered={ATTR_NEW: [key]}, + hass, ent_platform, DOMAIN, discovered={ATTR_NEW: [key]}, hass_config=base_config) def _shutdown(call): From e866eeb518c9c4f552a1262cb6eb841b29d6a004 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 13 Feb 2017 23:04:25 +0100 Subject: [PATCH 076/196] Remove unit of measurement --- homeassistant/components/sensor/moon.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/homeassistant/components/sensor/moon.py b/homeassistant/components/sensor/moon.py index 3b13e625bb4..2de5b613065 100644 --- a/homeassistant/components/sensor/moon.py +++ b/homeassistant/components/sensor/moon.py @@ -62,11 +62,6 @@ class MoonSensor(Entity): else: return 'New moon' - @property - def unit_of_measurement(self): - """Return the unit the value is expressed in.""" - return 'Phase' - @property def icon(self): """Icon to use in the frontend, if any.""" From 41c2392f8bc83763f6d77d510d64ac1a1dafa0a2 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Mon, 13 Feb 2017 21:08:37 -0500 Subject: [PATCH 077/196] Fix #5979 (#5980) --- homeassistant/components/wink.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/wink.py b/homeassistant/components/wink.py index 569def22401..0ef03f54083 100644 --- a/homeassistant/components/wink.py +++ b/homeassistant/components/wink.py @@ -15,7 +15,7 @@ from homeassistant.const import ( from homeassistant.helpers.entity import Entity import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['python-wink==1.1.1', 'pubnubsub-handler==1.0.0'] +REQUIREMENTS = ['python-wink==1.1.1', 'pubnubsub-handler==1.0.1'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index b83c94a2276..1f81829977b 100755 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -400,7 +400,7 @@ proliphix==0.4.1 psutil==5.1.3 # homeassistant.components.wink -pubnubsub-handler==1.0.0 +pubnubsub-handler==1.0.1 # homeassistant.components.notify.pushbullet pushbullet.py==0.10.0 From 36c196f9e8813b41776bb7655f3d91a188163886 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 21:34:36 -0800 Subject: [PATCH 078/196] Add initial Z-Wave config panel (#5937) * Add Z-Wave config panel * Add config to Z-Wave dependencies * Lint * lint * Add tests * Remove temp workaround * Lint * Fix tests * Address comments * Fix tests under Py34 --- homeassistant/components/config/__init__.py | 38 +++++++-- homeassistant/components/config/zwave.py | 78 +++++++++++++++++ homeassistant/components/zwave/__init__.py | 4 +- homeassistant/util/yaml.py | 38 ++++++++- tests/common.py | 10 +++ tests/components/config/test_core.py | 2 +- tests/components/config/test_init.py | 47 ++++++++++- tests/components/config/test_zwave.py | 89 ++++++++++++++++++++ tests/components/device_tracker/test_init.py | 4 +- tests/components/zwave/test_init.py | 4 +- 10 files changed, 295 insertions(+), 19 deletions(-) create mode 100644 homeassistant/components/config/zwave.py create mode 100644 tests/components/config/test_zwave.py diff --git a/homeassistant/components/config/__init__.py b/homeassistant/components/config/__init__.py index bf05ba9d99f..a664d64a5e2 100644 --- a/homeassistant/components/config/__init__.py +++ b/homeassistant/components/config/__init__.py @@ -1,29 +1,55 @@ -"""Component to interact with Hassbian tools.""" +"""Component to configure Home Assistant via an API.""" import asyncio -from homeassistant.bootstrap import async_prepare_setup_platform +from homeassistant.core import callback +from homeassistant.const import EVENT_COMPONENT_LOADED +from homeassistant.bootstrap import ( + async_prepare_setup_platform, ATTR_COMPONENT) from homeassistant.components.frontend import register_built_in_panel DOMAIN = 'config' DEPENDENCIES = ['http'] SECTIONS = ('core', 'hassbian') +ON_DEMAND = ('zwave', ) @asyncio.coroutine def async_setup(hass, config): - """Setup the hassbian component.""" + """Setup the config component.""" register_built_in_panel(hass, 'config', 'Configuration', 'mdi:settings') - for panel_name in SECTIONS: + @asyncio.coroutine + def setup_panel(panel_name): + """Setup a panel.""" panel = yield from async_prepare_setup_platform(hass, config, DOMAIN, panel_name) if not panel: - continue + return success = yield from panel.async_setup(hass) if success: - hass.config.components.add('{}.{}'.format(DOMAIN, panel_name)) + key = '{}.{}'.format(DOMAIN, panel_name) + hass.bus.async_fire(EVENT_COMPONENT_LOADED, {ATTR_COMPONENT: key}) + hass.config.components.add(key) + + tasks = [setup_panel(panel_name) for panel_name in SECTIONS] + + for panel_name in ON_DEMAND: + if panel_name in hass.config.components: + tasks.append(setup_panel(panel_name)) + + if tasks: + yield from asyncio.wait(tasks, loop=hass.loop) + + @callback + def component_loaded(event): + """Respond to components being loaded.""" + panel_name = event.data.get(ATTR_COMPONENT) + if panel_name in ON_DEMAND: + hass.async_add_job(setup_panel(panel_name)) + + hass.bus.async_listen(EVENT_COMPONENT_LOADED, component_loaded) return True diff --git a/homeassistant/components/config/zwave.py b/homeassistant/components/config/zwave.py new file mode 100644 index 00000000000..ec01e2dad6e --- /dev/null +++ b/homeassistant/components/config/zwave.py @@ -0,0 +1,78 @@ +"""Provide configuration end points for Z-Wave.""" +import asyncio +import os +import voluptuous as vol + +from homeassistant.components.http import HomeAssistantView +from homeassistant.components.zwave import DEVICE_CONFIG_SCHEMA_ENTRY +from homeassistant.util.yaml import load_yaml, dump + + +DEVICE_CONFIG = 'zwave_device_config.yml' + + +@asyncio.coroutine +def async_setup(hass): + """Setup the hassbian config.""" + hass.http.register_view(DeviceConfigView) + return True + + +class DeviceConfigView(HomeAssistantView): + """Configure a Z-Wave device endpoint.""" + + url = '/api/config/zwave/device_config/{entity_id}' + name = 'api:config:zwave:device_config:update' + + @asyncio.coroutine + def get(self, request, entity_id): + """Fetch device specific config.""" + hass = request.app['hass'] + current = yield from hass.loop.run_in_executor( + None, _read, hass.config.path(DEVICE_CONFIG)) + return self.json(current.get(entity_id, {})) + + @asyncio.coroutine + def post(self, request, entity_id): + """Validate config and return results.""" + try: + data = yield from request.json() + except ValueError: + return self.json_message('Invalid JSON specified', 400) + + try: + # We just validate, we don't store that data because + # we don't want to store the defaults. + DEVICE_CONFIG_SCHEMA_ENTRY(data) + except vol.Invalid as err: + print(data, err) + return self.json_message('Message malformed: {}'.format(err), 400) + + hass = request.app['hass'] + path = hass.config.path(DEVICE_CONFIG) + current = yield from hass.loop.run_in_executor( + None, _read, hass.config.path(DEVICE_CONFIG)) + current.setdefault(entity_id, {}).update(data) + + yield from hass.loop.run_in_executor( + None, _write, hass.config.path(path), current) + + return self.json({ + 'result': 'ok', + }) + + +def _read(path): + """Read YAML helper.""" + if not os.path.isfile(path): + with open(path, 'w'): + pass + return {} + + return load_yaml(path) + + +def _write(path, data): + """Write YAML helper.""" + with open(path, 'w') as outfile: + dump(data, outfile) diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index b2c471595ab..c729f6b2e12 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -160,7 +160,7 @@ SET_WAKEUP_SCHEMA = vol.Schema({ vol.All(vol.Coerce(int), cv.positive_int), }) -_DEVICE_CONFIG_SCHEMA_ENTRY = vol.Schema({ +DEVICE_CONFIG_SCHEMA_ENTRY = vol.Schema({ vol.Optional(CONF_POLLING_INTENSITY): cv.positive_int, vol.Optional(CONF_IGNORED, default=DEFAULT_CONF_IGNORED): cv.boolean, vol.Optional(CONF_REFRESH_VALUE, default=DEFAULT_CONF_REFRESH_VALUE): @@ -174,7 +174,7 @@ CONFIG_SCHEMA = vol.Schema({ vol.Optional(CONF_AUTOHEAL, default=DEFAULT_CONF_AUTOHEAL): cv.boolean, vol.Optional(CONF_CONFIG_PATH): cv.string, vol.Optional(CONF_DEVICE_CONFIG, default={}): - vol.Schema({cv.entity_id: _DEVICE_CONFIG_SCHEMA_ENTRY}), + vol.Schema({cv.entity_id: DEVICE_CONFIG_SCHEMA_ENTRY}), vol.Optional(CONF_DEBUG, default=DEFAULT_DEBUG): cv.boolean, vol.Optional(CONF_POLLING_INTERVAL, default=DEFAULT_POLLING_INTERVAL): cv.positive_int, diff --git a/homeassistant/util/yaml.py b/homeassistant/util/yaml.py index 00508862279..8100c6e5f68 100644 --- a/homeassistant/util/yaml.py +++ b/homeassistant/util/yaml.py @@ -69,9 +69,9 @@ def load_yaml(fname: str) -> Union[List, Dict]: raise HomeAssistantError(exc) -def dump(_dict: dict) -> str: +def dump(_dict: dict, outfile=None) -> str: """Dump yaml to a string and remove null.""" - return yaml.safe_dump(_dict, default_flow_style=False) \ + return yaml.safe_dump(_dict, outfile, default_flow_style=False) \ .replace(': null\n', ':\n') @@ -272,3 +272,37 @@ yaml.SafeLoader.add_constructor('!include_dir_merge_list', yaml.SafeLoader.add_constructor('!include_dir_named', _include_dir_named_yaml) yaml.SafeLoader.add_constructor('!include_dir_merge_named', _include_dir_merge_named_yaml) + + +# From: https://gist.github.com/miracle2k/3184458 +# pylint: disable=redefined-outer-name +def represent_odict(dump, tag, mapping, flow_style=None): + """Like BaseRepresenter.represent_mapping but does not issue the sort().""" + value = [] + node = yaml.MappingNode(tag, value, flow_style=flow_style) + if dump.alias_key is not None: + dump.represented_objects[dump.alias_key] = node + best_style = True + if hasattr(mapping, 'items'): + mapping = mapping.items() + for item_key, item_value in mapping: + node_key = dump.represent_data(item_key) + node_value = dump.represent_data(item_value) + if not (isinstance(node_key, yaml.ScalarNode) and not node_key.style): + best_style = False + if not (isinstance(node_value, yaml.ScalarNode) and + not node_value.style): + best_style = False + value.append((node_key, node_value)) + if flow_style is None: + if dump.default_flow_style is not None: + node.flow_style = dump.default_flow_style + else: + node.flow_style = best_style + return node + + +yaml.SafeDumper.add_representer( + OrderedDict, + lambda dumper, value: + represent_odict(dumper, u'tag:yaml.org,2002:map', value)) diff --git a/tests/common.py b/tests/common.py index 5527a26b63e..ec32d413597 100644 --- a/tests/common.py +++ b/tests/common.py @@ -401,6 +401,16 @@ def mock_generator(return_value=None): return mock_coro(return_value)() +def mock_coro_func(return_value=None): + """Helper method to return a coro that returns a value.""" + @asyncio.coroutine + def coro(*args, **kwargs): + """Fake coroutine.""" + return return_value + + return coro + + @contextmanager def assert_setup_component(count, domain=None): """Collect valid configuration from setup_component. diff --git a/tests/components/config/test_core.py b/tests/components/config/test_core.py index 6492f2fabe6..1db50873906 100644 --- a/tests/components/config/test_core.py +++ b/tests/components/config/test_core.py @@ -10,7 +10,7 @@ from tests.common import mock_http_component_app, mock_coro @asyncio.coroutine def test_validate_config_ok(hass, test_client): - """Test getting suites.""" + """Test checking config.""" app = mock_http_component_app(hass) with patch.object(config, 'SECTIONS', ['core']): yield from async_setup_component(hass, 'config', {}) diff --git a/tests/components/config/test_init.py b/tests/components/config/test_init.py index 1194c6c2b3d..dfe3c3fb436 100644 --- a/tests/components/config/test_init.py +++ b/tests/components/config/test_init.py @@ -1,9 +1,14 @@ """Test config init.""" +import asyncio +from unittest.mock import patch + import pytest -from homeassistant.bootstrap import async_setup_component +from homeassistant.const import EVENT_COMPONENT_LOADED +from homeassistant.bootstrap import async_setup_component, ATTR_COMPONENT +from homeassistant.components import config -from tests.common import mock_http_component +from tests.common import mock_http_component, mock_coro @pytest.fixture(autouse=True) @@ -12,7 +17,43 @@ def stub_http(hass): mock_http_component(hass) +@asyncio.coroutine def test_config_setup(hass, loop): """Test it sets up hassbian.""" - loop.run_until_complete(async_setup_component(hass, 'config', {})) + yield from async_setup_component(hass, 'config', {}) assert 'config' in hass.config.components + + +@asyncio.coroutine +def test_load_on_demand_already_loaded(hass, test_client): + """Test getting suites.""" + hass.config.components.add('zwave') + + with patch.object(config, 'SECTIONS', []), \ + patch.object(config, 'ON_DEMAND', ['zwave']), \ + patch('homeassistant.components.config.zwave.async_setup') as stp: + stp.return_value = mock_coro(True)() + + yield from async_setup_component(hass, 'config', {}) + + yield from hass.async_block_till_done() + assert 'config.zwave' in hass.config.components + assert stp.called + + +@asyncio.coroutine +def test_load_on_demand_on_load(hass, test_client): + """Test getting suites.""" + with patch.object(config, 'SECTIONS', []), \ + patch.object(config, 'ON_DEMAND', ['zwave']): + yield from async_setup_component(hass, 'config', {}) + + assert 'config.zwave' not in hass.config.components + + with patch('homeassistant.components.config.zwave.async_setup') as stp: + stp.return_value = mock_coro(True)() + hass.bus.async_fire(EVENT_COMPONENT_LOADED, {ATTR_COMPONENT: 'zwave'}) + yield from hass.async_block_till_done() + + assert 'config.zwave' in hass.config.components + assert stp.called diff --git a/tests/components/config/test_zwave.py b/tests/components/config/test_zwave.py new file mode 100644 index 00000000000..0a5d38b540a --- /dev/null +++ b/tests/components/config/test_zwave.py @@ -0,0 +1,89 @@ +"""Test Z-Wave config panel.""" +import asyncio +import json +from unittest.mock import patch + +from homeassistant.bootstrap import async_setup_component +from homeassistant.components import config +from homeassistant.components.config.zwave import DeviceConfigView +from tests.common import mock_http_component_app + + +@asyncio.coroutine +def test_get_device_config(hass, test_client): + """Test getting device config.""" + app = mock_http_component_app(hass) + + with patch.object(config, 'SECTIONS', ['zwave']): + yield from async_setup_component(hass, 'config', {}) + + hass.http.views[DeviceConfigView.name].register(app.router) + + client = yield from test_client(app) + + def mock_read(path): + """Mock reading data.""" + return { + 'hello.beer': { + 'free': 'beer', + }, + 'other.entity': { + 'do': 'something', + }, + } + + with patch('homeassistant.components.config.zwave._read', mock_read): + resp = yield from client.get( + '/api/config/zwave/device_config/hello.beer') + + assert resp.status == 200 + result = yield from resp.json() + + assert result == {'free': 'beer'} + + +@asyncio.coroutine +def test_update_device_config(hass, test_client): + """Test updating device config.""" + app = mock_http_component_app(hass) + + with patch.object(config, 'SECTIONS', ['zwave']): + yield from async_setup_component(hass, 'config', {}) + + hass.http.views[DeviceConfigView.name].register(app.router) + + client = yield from test_client(app) + + orig_data = { + 'hello.beer': { + 'ignored': True, + }, + 'other.entity': { + 'polling_intensity': 2, + }, + } + + def mock_read(path): + """Mock reading data.""" + return orig_data + + written = [] + + def mock_write(path, data): + """Mock writing data.""" + written.append(data) + + with patch('homeassistant.components.config.zwave._read', mock_read), \ + patch('homeassistant.components.config.zwave._write', mock_write): + resp = yield from client.post( + '/api/config/zwave/device_config/hello.beer', data=json.dumps({ + 'polling_intensity': 2 + })) + + assert resp.status == 200 + result = yield from resp.json() + assert result == {'result': 'ok'} + + orig_data['hello.beer']['polling_intensity'] = 2 + + assert written[0] == orig_data diff --git a/tests/components/device_tracker/test_init.py b/tests/components/device_tracker/test_init.py index 524eda22634..4f932cd177f 100644 --- a/tests/components/device_tracker/test_init.py +++ b/tests/components/device_tracker/test_init.py @@ -48,10 +48,8 @@ class TestComponentsDeviceTracker(unittest.TestCase): # pylint: disable=invalid-name def tearDown(self): """Stop everything that was started.""" - try: + if os.path.isfile(self.yaml_devices): os.remove(self.yaml_devices) - except FileNotFoundError: - pass self.hass.stop() diff --git a/tests/components/zwave/test_init.py b/tests/components/zwave/test_init.py index 2bfb8986544..8114a872c2a 100644 --- a/tests/components/zwave/test_init.py +++ b/tests/components/zwave/test_init.py @@ -6,7 +6,7 @@ import pytest from homeassistant.bootstrap import async_setup_component from homeassistant.components.zwave import ( - DATA_DEVICE_CONFIG, _DEVICE_CONFIG_SCHEMA_ENTRY) + DATA_DEVICE_CONFIG, DEVICE_CONFIG_SCHEMA_ENTRY) @pytest.fixture(autouse=True) @@ -39,7 +39,7 @@ def test_device_config(hass): assert DATA_DEVICE_CONFIG in hass.data test_data = { - key: _DEVICE_CONFIG_SCHEMA_ENTRY(value) + key: DEVICE_CONFIG_SCHEMA_ENTRY(value) for key, value in device_config.items() } From e70b7ab50938b8252de7bcbb92852ded3874ab25 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 14 Feb 2017 07:48:53 +0200 Subject: [PATCH 079/196] Allow printing the number of states returned by history and time it took to extract. (#5973) --- homeassistant/components/history.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/history.py b/homeassistant/components/history.py index 69ed528f661..991e8a7bbb4 100644 --- a/homeassistant/components/history.py +++ b/homeassistant/components/history.py @@ -8,6 +8,9 @@ import asyncio from collections import defaultdict from datetime import timedelta from itertools import groupby +import logging +import time + import voluptuous as vol from homeassistant.const import ( @@ -19,6 +22,8 @@ from homeassistant.components.frontend import register_built_in_panel from homeassistant.components.http import HomeAssistantView from homeassistant.const import ATTR_HIDDEN +_LOGGER = logging.getLogger(__name__) + DOMAIN = 'history' DEPENDENCIES = ['recorder', 'http'] @@ -215,6 +220,7 @@ class HistoryPeriodView(HomeAssistantView): @asyncio.coroutine def get(self, request, datetime=None): """Return history over a period of time.""" + timer_start = time.perf_counter() if datetime: datetime = dt_util.parse_datetime(datetime) @@ -239,8 +245,12 @@ class HistoryPeriodView(HomeAssistantView): result = yield from request.app['hass'].loop.run_in_executor( None, get_significant_states, start_time, end_time, entity_id, self.filters) - - return self.json(result.values()) + result = result.values() + if _LOGGER.isEnabledFor(logging.DEBUG): + elapsed = time.perf_counter() - timer_start + _LOGGER.debug( + 'Extracted %d states in %fs', sum(map(len, result)), elapsed) + return self.json(result) class Filters(object): From 0effe146194d68527706f468ddbd0101b0bf091e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 21:58:16 -0800 Subject: [PATCH 080/196] Z-Wave file name fix (#5985) --- homeassistant/components/config/zwave.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/config/zwave.py b/homeassistant/components/config/zwave.py index ec01e2dad6e..c01f22f0207 100644 --- a/homeassistant/components/config/zwave.py +++ b/homeassistant/components/config/zwave.py @@ -8,12 +8,12 @@ from homeassistant.components.zwave import DEVICE_CONFIG_SCHEMA_ENTRY from homeassistant.util.yaml import load_yaml, dump -DEVICE_CONFIG = 'zwave_device_config.yml' +DEVICE_CONFIG = 'zwave_device_config.yaml' @asyncio.coroutine def async_setup(hass): - """Setup the hassbian config.""" + """Setup the Z-Wave config API.""" hass.http.register_view(DeviceConfigView) return True From ffb46ab541f3e26ee5c721ced512bd60fb92e5c1 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 14 Feb 2017 08:10:39 +0200 Subject: [PATCH 081/196] Add 'days' flag to history fetch urls. (#5895) * Add 'days' flag to history fetch urls. * Fix unrenamed variable * Switch to end_time param instead of days * Checkthat end_time is parsed --- homeassistant/components/history.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/history.py b/homeassistant/components/history.py index 991e8a7bbb4..d8ff307fdde 100644 --- a/homeassistant/components/history.py +++ b/homeassistant/components/history.py @@ -230,7 +230,6 @@ class HistoryPeriodView(HomeAssistantView): now = dt_util.utcnow() one_day = timedelta(days=1) - if datetime: start_time = dt_util.as_utc(datetime) else: @@ -239,7 +238,14 @@ class HistoryPeriodView(HomeAssistantView): if start_time > now: return self.json([]) - end_time = start_time + one_day + end_time = request.GET.get('end_time') + if end_time: + end_time = dt_util.as_utc( + dt_util.parse_datetime(end_time)) + if end_time is None: + return self.json_message('Invalid end_time', HTTP_BAD_REQUEST) + else: + end_time = start_time + one_day entity_id = request.GET.get('filter_entity_id') result = yield from request.app['hass'].loop.run_in_executor( From 52567b1a48e0f28a1fb2d9c5430fbf2238687cb1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 22:16:39 -0800 Subject: [PATCH 082/196] Fix Z-Wave node config (#5986) --- homeassistant/components/light/zwave.py | 2 +- homeassistant/components/zwave/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/light/zwave.py b/homeassistant/components/light/zwave.py index 89c25059d94..184688a7b96 100644 --- a/homeassistant/components/light/zwave.py +++ b/homeassistant/components/light/zwave.py @@ -55,7 +55,7 @@ def setup_platform(hass, config, add_devices, discovery_info=None): node = zwave.NETWORK.nodes[discovery_info[zwave.const.ATTR_NODE_ID]] value = node.values[discovery_info[zwave.const.ATTR_VALUE_ID]] name = '{}.{}'.format(DOMAIN, zwave.object_id(value)) - node_config = hass.data[zwave.DATA_DEVICE_CONFIG].get(name) + node_config = hass.data[zwave.DATA_DEVICE_CONFIG].get(name) or {} refresh = node_config.get(zwave.CONF_REFRESH_VALUE) delay = node_config.get(zwave.CONF_REFRESH_DELAY) _LOGGER.debug('name=%s node_config=%s CONF_REFRESH_VALUE=%s' diff --git a/homeassistant/components/zwave/__init__.py b/homeassistant/components/zwave/__init__.py index c729f6b2e12..b4ae7396414 100755 --- a/homeassistant/components/zwave/__init__.py +++ b/homeassistant/components/zwave/__init__.py @@ -385,7 +385,7 @@ def setup(hass, config): component = workaround_component name = "{}.{}".format(component, object_id(value)) - node_config = hass.data[DATA_DEVICE_CONFIG].get(name) + node_config = hass.data[DATA_DEVICE_CONFIG].get(name) or {} if node_config.get(CONF_IGNORED): _LOGGER.info("Ignoring device %s", name) From 462b47c7255190b531d69886653cc5b84b98dd17 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Feb 2017 22:25:26 -0800 Subject: [PATCH 083/196] Update frontend (#5987) --- homeassistant/components/frontend/version.py | 4 ++-- .../frontend/www_static/frontend.html | 2 +- .../frontend/www_static/frontend.html.gz | Bin 138242 -> 138349 bytes .../www_static/home-assistant-polymer | 2 +- .../www_static/panels/ha-panel-config.html | 2 +- .../www_static/panels/ha-panel-config.html.gz | Bin 8310 -> 8317 bytes .../frontend/www_static/service_worker.js | 2 +- .../frontend/www_static/service_worker.js.gz | Bin 2334 -> 2338 bytes 8 files changed, 6 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index ddfb1798c36..1ec137f8c0f 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -2,10 +2,10 @@ FINGERPRINTS = { "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "55ad0c8eb7ae154187303cc371f61136", + "frontend.html": "96825e32ade965d406b37dd099393c8f", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "0455a14f1ab63a962462a682f42cd580", + "panels/ha-panel-config.html": "7676c0cff482092aea46917a7d2c80e5", "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", "panels/ha-panel-dev-info.html": "1e305a9af8fd6e7be77f3ddf215c336f", "panels/ha-panel-dev-service.html": "9f749635e518a4ca7991975bdefdb10a", diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index a9340a5cedd..f6039c8882a 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -612,4 +612,4 @@ this.currentTarget=t,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,th this.hass.callService('media_player', service, serviceData); }, }); -}()); \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 2efc9e1f0249eb18f0c2a57f24b66108d41cf124..91ebf400e91387619f0dbb72fb78b616a234ca63 100644 GIT binary patch delta 27053 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 delta 26869 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 D6HC9Z diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 5159326a7b3..53ecbbaa130 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 5159326a7b3d1ba29ae17a7861fa2eaa8c2c95f6 +Subproject commit 53ecbbaa1308c65484ed50ac51475eeb203fe1f0 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 565209ce6ec..920c9f10e21 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ -

#} + {% if panel_url -%} diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 1ec137f8c0f..8552fa24a0f 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,19 +1,20 @@ """DO NOT MODIFY. Auto-generated by script/fingerprint_frontend.""" FINGERPRINTS = { + "compatibility.js": "83d9c77748dafa9db49ae77d7f3d8fb0", "core.js": "adfeb513cf650acf763e284d76a48d6b", - "frontend.html": "96825e32ade965d406b37dd099393c8f", + "frontend.html": "ea7529d0d835b6b87109a052e69955db", "mdi.html": "c1dde43ccf5667f687c418fc8daf9668", "micromarkdown-js.html": "93b5ec4016f0bba585521cf4d18dec1a", - "panels/ha-panel-config.html": "7676c0cff482092aea46917a7d2c80e5", - "panels/ha-panel-dev-event.html": "5c82300b3cf543a92cf4297506e450e7", - "panels/ha-panel-dev-info.html": "1e305a9af8fd6e7be77f3ddf215c336f", - "panels/ha-panel-dev-service.html": "9f749635e518a4ca7991975bdefdb10a", - "panels/ha-panel-dev-state.html": "7d069ba8fd5379fa8f59858b8c0a7473", - "panels/ha-panel-dev-template.html": "2b618508510afa5281c9ecae0c3a3dbd", + "panels/ha-panel-config.html": "db9655faf18d5706ddbd1db2ce73afb6", + "panels/ha-panel-dev-event.html": "91347dedf3b4fa9b49ccf4c0a28a03c4", + "panels/ha-panel-dev-info.html": "6d09483730b86588fb3dc4f2242807aa", + "panels/ha-panel-dev-service.html": "a9247f255174b084fad2c04bdb9ec7a9", + "panels/ha-panel-dev-state.html": "90f3bede9602241552ef7bb7958198c6", + "panels/ha-panel-dev-template.html": "3eeabe4a47ac6bea5b7af0f2b7cf5e90", "panels/ha-panel-history.html": "8955c1d093a2c417c89ed90dd627c7d3", "panels/ha-panel-iframe.html": "d920f0aa3c903680f2f8795e2255daab", "panels/ha-panel-logbook.html": "7eb06cf9fdeab6683bcd755276f571aa", - "panels/ha-panel-map.html": "9c8c7924ba8f731560c9f4093835cc26", + "panels/ha-panel-map.html": "970f1a71ca1807fc7f6f049b5f38dbb0", "websocket_test.html": "575de64b431fe11c3785bf96d7813450" } diff --git a/homeassistant/components/frontend/www_static/compatibility.js b/homeassistant/components/frontend/www_static/compatibility.js new file mode 100644 index 00000000000..c152c50ddfa --- /dev/null +++ b/homeassistant/components/frontend/www_static/compatibility.js @@ -0,0 +1 @@ +!(function(){"use strict";function e(e,r){var t=arguments;if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),o=1;oe_SRauQ8Y9kY~-@=pPDRD&6MoGa{~V_B-g* zEa-FnCN#%o)xN|fT91!^l;(Q-Y`?1G%am}ny>=J6Ic|J7xa8*_Iqish%kCOqJaa2x z+IAQ7rJGXc=!n}FynB)&KjqRnz0%y|Z>8(E7T(;wsql5#t>?RWKRj!hKjqd(#pmTO zvbc2nTNY@i%GJbAt7EiaQww+1@b0{wm43KlMWVukc>xbTL>TqHp3kxFwNvx;*CFo? zvbXTeNqYUrF7(A|;Z5__e%X;IKdWxl^j|KGo9%YpI4s3xdguSAqVEySdBHZn1s>00 XJKP=PX{xdE%xU=(8r!v0m>3uUxjV7t literal 0 HcmV?d00001 diff --git a/homeassistant/components/frontend/www_static/core.js.gz b/homeassistant/components/frontend/www_static/core.js.gz index 1bf9e3e17be7ebc898b81b9ecc0e4a72cc718c4e..601ee59d1c624abe68d31be770c5fb700be0cc8b 100644 GIT binary patch delta 16 XcmbOyGEanEzMF$X&3Exec5yBMC3^%F delta 16 XcmbOyGEanEzMF%?WB$aA?BZMiC;J3< diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index f6039c8882a..15f57122e91 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -419,8 +419,8 @@ window.hassUtil.isComponentLoaded = function (hass, component) { window.hassUtil.computeLocationName = function (hass) { return hass.config.core.location_name; -}; \ No newline at end of file +}()); \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/frontend.html.gz b/homeassistant/components/frontend/www_static/frontend.html.gz index 91ebf400e91387619f0dbb72fb78b616a234ca63..35129fc4ef73416507a9b9f7af55daa4538f132d 100644 GIT binary patch literal 138342 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℞cB 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 literal 138349 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 z≷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 z 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 z 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

Oq z%S-itum5qc(oHsf!P4_^?xU%fmV7JH^53dViF{tRd~>~H#@n5H<#k&AUMOBIW8eL+uyEqSe(l$fyS~eZZ|m=FKhf0I zxbfe!>#4fiuN%6q{8PVdW6zbH7pE4K)}7s-_D(J8d_tS*+aIDQ1kB#-Z+HnT#lsUT|d8!q|j!4ciu`X`^y^7*}W(}!0)&(=>q#S^pQ_^#VW-rL#K*8F?= z^6UH8Prpyv@OZrjcXq8}C`;|xbYWNb`wP-`&3J4%b-wOmq5LPG`nP?Qug{>IPgk8W$7W_#MfqV-^HebV<^>+kiIWK^@X-;HuOxb~`O*ptIw z-@W+z{O8l<&#$k4e{a9t-(4H67iw>cNH`(SXQOlNSK9=?7T@j)gX{aA9<}A>b6Ogy z*zBpf>}`THL&BqsscumRv^WwUd!(D!-A_`sjQ;Vvv5q@nQ}e1Q&5Ju2Pu^{McgsB5 zf2Lf9`RRG}=?it=8rqzZjMyewwQ=Wz_I+221dpj5)bUhjbon#mP}2n_;qbmihkZKM zs&y|qtP!YZaXj7NjND0IH*x!Ijuj01d&T=?%bBm{URCZ`JagN|KY2{{7iJxQ7wvhk zV)_0*+dyc2j(%KgML;LqaZ|54#O zKXW4d#kc6~(SLjE1vfX_$KV|-jnh1Yy%#!8tmpR7Ju_)>x<*WwLcQ-79)oR+PnS9! zirsYllD&6SY=EMoS<&JTsqDA4Z|y$G^5fT^y0=|3_8D2c?)aFrfoK?H;0-j+kfFHX6ieUP@NEjRI9z_ufujq|3=PgyKqXfaEPY1ske zfcUxRWioQ=ywin`YXs%YxoXx?zkk}kwmP1SAHVOJPJR5kEbf@Y(I-`}0yKHIrESzP z^jfQPGwQ3aLc2^<+NE=fAB+Sx`wI9>?UHe;Js#qFyjW70&nG;guf*?0SCp;FU;?rAm$F(lho;Z_W+hwk7vonVZ)=R)4+n zFT6|du)a1t6{KvL&*)cQyKiWT~I?sr6fyezQ9md)DtdTLI-+awpxS5>NSjIR}>x|*c zb(=nFpMJ7gaCv>G_gQ_HsiCa44QhNAo-X{t?aWXAIW}wG@2Rh=-CuZDZ`b)n zDczs$tuna&D(q_L-{)bGW>**eeHIqGf3*e{(f@;*DmX04&}$SUhwT+zUOLj-28q2er;Lyw{04ASMU1xLPI zWOZocgq(_NOP@V)oD*9nvDdfDOf&g?UL!Zt1>wX0p4WZccI5uP{pl)ylyi-Z%%xmx zp2Rb_e{eh!ZeZ{z_RdPlS&#m8EL&dBQhw%r$t@gooNT7J*Nv`?W@Fwatpy_;((2Q`_u>`F9;Yad2j;GEFQt>4^>5Ru&qzc8+Jx ztc7J?syFR<^(b9RV9^p^yVnUZhVzv4Pv$Ik*v5HMzo<2APiRG6o42~@g2T-Xo_4)O zT?NXo;tV3rf8#m+UBRKbpeTuVgHzaNZ=S1e)k(YRGna2zB(cT)>OLEeBHNig6r1ni@6W9M!A}rU-SFX z7Pz@E?m&WfpDVki{Gx3$oB~vpA91|m`ut)3>-IasE z3-mjRv*S;N*IB>How`Tr=fO{6KVla(cU!a``TnP>H$qkFvIBR!t6_tl(W%8M3A|5d z_iQ_Cw$R|<{uifga$j+^r#P*;cP96Zu;)f`aaMEpzfbRODy+RyfB4Up-Hz{`zmJ!{ zzrH~rRHy5?lCnaG;N9R%<=a|^njLMdd1Y-U9O84W?LGT#$F2E2LJHmAw)NW|wM+K@ zd~~1DM#oCA$7{4-JIg)St?ICh_3m?6J@d{C^Y<)_uT*d5^{@Wh+^fgT8TwYQH90AO zjW>Gf|D#LFPhXqPvnBq|vs?A4AFc1m@>Q>Y^z!lXAHKdF zoBRa6o@NPTTian(B)zY3d)F7XZ4EcQm>27~ZqaiV=?${>Wq#_R#vODc%;@IhN&mlU z)&Bah>EHp!+p{#!gf14Iw%||HrE9;ulp(^CcaJ+4RB|B(0IYy0_?kYj@`h&HJfJLem2@8>FvSSFQ^GSG-i# zbAPI6&+QYk!ijfE&ScG*b1yaV+zAIKlL@NxdS|olv(9vu__fvX_}YaVwM@@6xBh;> zt5SKuZ);t}&mRx(9$&6sKI>`Aek<>pDw`SI>X#U2epGnFwq(W>_l6tVhwd=cDNhvH zsG1@+cl!akjb}dUq{Yq2pT0M6)BO0j?RVw4b+y~QcQn6W!v5pMd9B@V1NW(46}hxl zqhnszHC^+y|JKYq=a{EFDc1MY zwdz%T+?;djRa-m{uCdA0n0V{*-npX7><{yEDJ?VNs^MI&rW>|rYDSdG zpz*c{V1|?snzAcy1YnP{xllx>pozUT|85Q>#9d%avP-;i&cfb312D z4XEf7SdzZ^9;3PGm;C$3KY!tHNjn#FJ25~-ZBD=UjvTwk`%3rO)&1LZOiIvGQ!T~A z_<#)KU(XkTTpX=^wVN-!(sTU6cV*h5cgo?%;u?H(jOXx8I^7ojS^4WthS}Rv<d4^FOpl7snhqbLOO&pr8Na_$&Ke+@w;o zt2Gwwa!b#0Q+}m6H|td}bL^~0t=K0{>HSkrHOzc}DR4Qffb;TD!RB2*Jf$078_5LO zS8lKi@m%j8c*Uv6J@7K`pHnaFd~UwDs6G8qr_LvnuI61j(_g`82I94fngh z?WmUyx2wOA!qbs|GH}w(;y+o>mOZ$YS#>u;*+}u1Lzbb!x<#LAr4~+&x%P9_;-Joy zv?@dPHnXiAinhyFT-wwU{B_&TP30m{#oPFgP0hF<_L;n*+unE!*PqNZN4YV?a{JC`6iv0Q~EA*Gc;a`8zY zIL`0bwSj4wmRvnIzxn=z`#NVgbLzc1k=$Y0$gc47puXiLxj$w4FVa6&x+!`*Ez>&p z&hyfRmySG4>o@((>i=QZV(|Xfm+8yD$H&Lrx81kTuI|^zmvGb6*n&+^60OJQkQOLcyp`gV5J zzhB4h{bu24Sn_t&?9kfq`*S=L?s2d@Dm+)0a{1}fW6PeObyjZ|e{L3cVUeH*|3|(~ z*L~@?-E+*DSes`ks6+|IHO}1l``YSVUDv)t zeA4Fi`E6Uw_xaqE6;rQXdo38Yt2q3@2OZUC6Bp=m<(C=0TlU$~W&MSdrp6DPwyT>T z3sjm?!gz+|$HRst-zIH%>chjfd42Hv9Q}807x&ct`T6qc{tJAwoJ{O*>YZD(bd~;3 z|Lj#h8{Ail{;QY#9kgZIS8H7@hvHkNT(iu4&Gn-dZL$^~Uu?i#an54v;oSRcLg(F* zVK~zv{rE=FE?pj*?{CidZc`U$+w-&i`o4R{F^~Fx&Hnjo+q?NE9)FTH&^>Ws`i|SH zxE3bzeg2riFh$5z^guJi)Tx&ip4qk0$SiGIMoPn`qty-1b%pHIJ?hUj{BTkH>mh7) zc)!KV$H(XAs2QK-Nt>sal<9dcc-@NH?o~|eSyfdJeziON`V(PN$Zj}&ZMVg+#yne`TFk zy)Udbx>LO1z^-ZLH}dv}{uE&qBK4dsnl;``}ENr8T;Rs0v~ z7dvnCyS_ucLktZGq#nK;|UHjZJD;FGwAoD3u2!VzNNqM{_3B1ey!*; z`E4tni~oFU_E}^5oBZq6dnUXW|9hU_-foBJ%Fa`A>i0#9UGE*^U~y44+VYqGikra- zjT`RYq#YOhyYckurj2hEIo%B&UlBItel_1(j_Fr@{`ac?4*K(|{EynNi2K}Ly}I9~ zYjOGK(-*@#7tY%MQD|P=KAU~D^QM{e9Xyor|Hw?+e`oec=S0-8mH)bzSI=2)_Bm-q z7aLPfnIYTWA98u;Jm#b+t$ye$?)*Oe^z?FVfpodn8Gh3bi!GN7biO)2+Hl%+^I40} zDzwBm>K%Ub{7QZCX~yhyhwo3fCoD*~W^&a^>rKt#wt1@!``4ac_5W>u%YwHHi{F2! zyt9HuywY>Qnwg%OkCN^=o44pPJ$`v*ih{_TidQL{{}wHo!fSZJylvO~xcPDWVqP3A zzH>03%X-H?o4fUQKVP%lIVtKp!^hW|OzoQ8?BU%-xf8jh{{OzFI=}w^zt_8pn#;Hs z^2GB8`J5KGul7#r;s>5Uj<%zbr}}so-gwD8wWIen^_)w(B9|`d= zVbzX*b5uSwC!YEuH!(Idc6YQ#i3%J4Gt(0OYxNT^Dw`|CoLtWxCy;YT=C;+dx@jjJ zPXX+V$4r*sSe`tzGTEmXuneIlXkBUg-($S8L}aPMo<| z-RF@-*I{qh>Rnbfg`4y~!5>pXE~WNKj7LGNQ;v!i+4xt3?> z?CmI&>#6!1pxOk<53772M zy*o724W@FRyQdOs{MFi9P__5)HKEQo?l}T$67%*cO}-m{y}qWl;x-qrN1Vp|6EQ14 z7d*dXyTU*5X#Ih*nmL#6Ou2ent4HYS%^TjKrM&VE(}aqj^1m`#z3%J`*45eF*UL7q zi@p3Vqxyxl`HW(fst;#;&;QZ-`f6sf)rq*?E2cqBCm6NAy!{}OYs-W6}ac!H7*QKFC64%zeo5d@`oEn#?%i$(KaVqE2sZ6@(l58LSiqTtlG>N&i*G&DfM@sEBZDaO(|8L(u%oTJb>~i87kJX}P z>lLb2yZCHPw#&XXf-kRJd%qz`;DObI+*#*i_fCwzKhG}bmr45f zy1Eqw`)eN5Cor#8`0#?YcG~m5Z$Cafy!5E6kG*TckN^Mi>&K_3nZA$t zs`quSO!MC?#UR~N+spVVP;^!!zl+zp`C>^E<+pELdB4Qw{^zr7&-;%bzi%FI9C!24 z;>_D-_j#47^}`FN?0#jn?6Zt-y?D*#<+$^@Jkom(`e$~S- zs7`g7JJa*deSJLj>JJiDoe@ze;XB8~DI4Q3%Q#z9_HTy#tHzT#SIkuYX7iX7B-Hcu zd|+MnW4C{b$dt7Vs;qgJ`rIBYu>&;!x0VRpHb5?Wd>Y8VGEh!=W^B74zqHy(^fWZERdP zIkzP1*t1Vc0)mlI4~n>IEj%x(J;?SB;kc~R`_cB-#RQ@9b2bhq=PJmpsNdsOpwQ~E zb%V#3g)W}*GelZ~`Q~4+JI1+o27{`LPx7wcr=>ps+Ov_nzTm`C{n^(WJRfYxzkVfZ z<=&^^(J{+=V%DTCRq`y)X`AY&vO&z{_j0~BeNA6m6wz+LZ_}~F z%|^FXn!SG5==Ro}e3;VVHGj*VxK(d2ZN0Crr)c!)n-p8Y+_b;zq>K%PLw%}ygCo9M z^{`zonK6~&ieQ6=ZEwA=;F(9~D}O(I{qxV)hd)10UoSsz+vQ-tX+Fp1gm|zWaVYI^ zy6N(A+qBCe{(LHdaGn;>PD{^F zoLVXQK3wNoP;R!cc(Ho+1EW`p18|+3H^!9~6CMoaDTS{npCbk3|o|zIH!z?PcS+ z#Oji%Kke96D?Z@@xu~wod7U~7-FDc{zjSiO>{^YoYj?wTstGu}E^O)l^!J_L*)wu! zujVt(%-i8rwWXYWRT59Dn2t_ew|Ll6>{MhhGZl zq%IF~HtFYYn>yu7p^O#Z*(tgo9&UKW%B!rJvCX=E=k)j=VNPwIvQ8WP{1PN^H`-g@ zXY-sbelA<4K4(d;XpP%A@lU1YiOQ}!Pxa;-dPi7%`cS|6#Mk z>l~cJkz}~3Cu6#r@&n(kOAMDtKY!ZTY`*@Yed4_(!A;xz{3doBmOI;Z=J*P?{3qp? zDqQ3Y&;3_8W>+h-p=`|`Pa7Lm_xNNLqV_deBYq`6Wbg(`;XnS z{=n;{`(Tev-nG*W2UCj!olhRf_1(skBlpwvpvFYu35>iMTPNu%)mGHUIho1WEeKk$ zGUKO=<%`hwmm*YRv|1n3@~J!CTA<_e;rY^!d-QIf&RXDRy>eIo*$d_MP1Cxzy`Oga zdrsM!j~my{^J<@&+pDgvvbp=?HQ%#)+e2i}pMG4n_uV1M$)`&HUz_&KvuDL?Rf&-4 z@%-95^P-cd{^R(p^gC>#?azl_Qu$Pm{);*s1@S>V&GoE` zk4)5$Joi0#a^kH1dCK7iowlvgAOFw0HATiTNmng>=ld51HP1gznX7B{_QltkQVS>g z6g_&aS*()9v+ATntk6WSDH-1$Eihx=dfP6DJ!zg)@27J~hQ4AG7Pk~>xXjqf>}+SH zv+?Ycn>^DMz8-y6^43}X#)1QSS+`za{>^(zv0hj4b@1V>KR8Vv96i6~=7|vZS343< zTBP!BH)M1BGGA%;wy<0_(T|>6_0#A2`?U%w$F#1U>5|rUV~0vIUyT0pr_YvVFFATD zU%7LemBG=h#4T%i^v2*g z-5dS<{^!N(&+u+9>oa-3VR!e|8{6~3PUSv$wNCHih8K_Cg!g-dpSzp)wqv{V#GO-9 zCr{+~v2wD$uCs<2Cv$Z8`TT{tGOM;6{d$-6*^N1-u{$pnWV_E2i_7`=@z%epw$tCg z{Q3I$@$UQc>SCY2|5#RQp_+9fji=hkUFMBhv(hQ$+*5|tBzw#TWMSr5PEXa@*NUOa?UJM+GzXoUUlX5i!6>a z1ZJM&Szf^)q}8}Hi9FCq>kZ02LLe!^Ah=w4s*=fjt;kE^Dg5jL@q`0#@*#&7HM zRnMPmeJ+0bxp?a5;;WyFU%sf9-oAlxfh~2 zZhNYsrIO#ATc?va1v$@V%!yLfp0@q{jI5#;az}P4|BkIWd1i6+z9aKI-m@u8DUQ7) zvF}tKi~5RXm#02%eB#1*?85JqZ<~F)LLchY?vAS6E%!fRskDMz$21i;;@5OvrFx#o8zdal!RN53C z7pw1Id@I*sX<7fI_-|Y4?p}VhS75nXbdpN@++a zEkFFn;C5F1uj7Y5zn5l|t6Raa#hWt*5Gu`ol_Jy zdllzV3r%U?vpUDrOt#K`_a|h5X<~0U+dILgcjZ&xE&lW5u$#E$bb-4!)E>>R)feD}VN_;Qw_ZcRojb z3v+17zIbtB(UZ7+-R0MvmxME|Wssjey(gud!rzF5ioLI^{q^+pZ{9fX1N9BF9WU666bGf8k>A5|Jfbz^(j&*R zIhEJ!OqV37K4*50y=>ngSg+ui#r$XaHLjXW)dSPT_rFSuW_hW$F4lHh^?}CJpT>FH zh5Yz+lenfB9h+xz`rrrakN<<->c8E4_Qc+$bM_uh35aLj&CVtNQN4Yl?rpmh+V45T z;(qF1Tq|<@R8jP@4lASScT1JuYiKf@ObR(S@!AoIf6-HWnv~1FY;K&#`?trfp5evw z8aMmNcjo6`Y3T2ludl25{pa@O<+-v9JG8%TcRvvNB1$a$uj7T+o4;?jp363OixpEs z+~MiX8Xap`%f9y=$+hl!=b0_|C0gr6+4uN+a{r2Xzgk_tr*!^y*1PRf7Vira*VHV$ zUv<>N@u-uzLc2s(&<{Udmh@ZQMeHK~_y4S)x;Mrp`@D{fi>e#<^*1XlrT0eec4Awe z8yLOhY{QO?$HXca9#30+>0bHm`=SdbU9J~e!^L{1!c!|yD>-WTM5-Rm-x~nzBf-*+FO6Qv2`)a z*+Du=K!bRerJ1#qH*Hhb= z$mbczuXbhb>W>$gs@MK}wu`TZ|F0T%=~ws5`*tnLdwSwcy=`o^gu&s8J7p`%czRu1 zu5S2~_Hw#5*QEQORajcin9me5pZ`mE>F3~OpEtke>zk=~v!LJ0Fzbl4=zPD;Z}Jj1 z*&obu(%wAh#g4^u8x#a*S#GN8TeY5pHR$Nw)W5R1HzON11~B)rUurjf-+SqLj@hB? zFDE}5te)7IWVvfc%-SFI8@@fO)RS&m`LOQi*Sp8tzwgg&OuN{&M(XxycE?Na8Vwoa zf7J+{T6)A!gmdc5Idi9(DxJNy@O!Y_!?ahgW)*HL+Nq$Eo@H^(to+M{xLx{;OXaRJ zoDsD%UVrB8wc8zQdsmz3uD!iU^ud+f?Lmq={!RJ*^UYduaeLGKQGeEn-(KHSZ)k49 zeT4aWvPJso)APS3ZC>4d-(r^SHIw`{#%Vt8TC%1$>`jyYFjZZ9C})<_9Hx+XX-oK( z!iiNjb21OjIBr_J>Ve`FWlJA@olA#xW`}h?f8s6Kmo+6o=A8AeUoYOv{r~pz>)X?6 z0j^7p1wA(`c?RZl8-3C&;GUeK0LWj{Q2eMxrLjqGraalo%w9h zkrlIDXP#4)tacRpWT)RPaU*-4{_9PpBON&V3vyaziY~0tN9i3 zNp)k^@9)K5KBsxNr>oj9FPzLET6tvg3G4i)3s#F%*^78q*0X(G@%P8ky>i`OzD7%~ z-QC?Lae7(nYKFKo_L)aEKlpm|XXVa2Q|9+H?SAPof&1aNzK?;C8#s1;J=ML_q+Iga z{qhvWfW!CZNHTA||0}<0^4i&{+}*KzZ@EfrD+x^T2@sJxBJR3Fdq(Yw-xC73M3x`9 zoiw52Wy-hZZ?ooKe0cE9;rf+IqC7qCR!!QxQZU|UZARjM?b3z6-%f~>cCU7@TlZJ` zx4v8Sg0*WztV_NWw4LHfo^d#rX;XOh^_U%TX7lCl-?NWf;kV}0Z2iUi#iF7v)L*{; zLMwc`{eD|6x6ABZQ_WdBjhye;o>=!Zz<1j|N50w4`{t+Qc3wW?73%UTF6RPc{l9lb z-l4vGD$g8v*%f_u*~#BiV_P`?}W4+pk@?d)mfp_1;%}7AGHD zZ+39?Re?1E^Rj!-u9MII->9-q+pqS<`rLV!vbKa7aL3KN`*vmA=FX<6!O2_)b(Qqn zl&$`kNr|pkwp<O3cZyf3=(Vr;V|2yo z>&`{tOnd7a*KUb!**?K3)^+!d+3UK`EG=#Me`?P$uQ$_sZFMGcC(1r3Ufm%7^66>Y zKUM7ueD=MVG@EOdx#*TV>(9?MyMD^%dR<_XM&HV8)~~Mbbv9hxTrT!z?$V!gO{-In zusyba+i$6>H}k#Tn$-&N`ti3n)a7=r*L}J5>CdfOf3Ds7bLqnR^I5OMpB+zVc$wg_ z_s$c^F0Z2Je14kI8e+O$3hVas=l#7YRakoSRh~)Olb+&#vHE7l zyNj2ff2O1vn5SZWt1NfN-u!J#-nd>m9Phh~$7%kW>)USc{uRCT&Ci$D@9*1Vv-i)g zm09(n%cQ5i+_z@`{Vo60KHKK5lVD7F7cjHDZ??}To-*wqyTbdm+VAhl&8v?Klg%}e zUTCH^J5^QqvHF536Be+wCcN6=_$cCnW#*bgUq2k#uWZQ65H!p8#Qx{H`Ef5_iEdxY za%unDzpD-}U^jWb*7Ey>3DlEyic4lY}6ljr$pn12V(i|MApTzc_y4$Hm+8WUs%puHRa*aay{*8{4Mrd#gh9SA;}QkIkC0z4?ul z@%<#XEz1jaYd0BqySpsA;idkZ$*-iw{@&!QHOecFPx%zL%<|XztP?26vCrh6iOlvdq&!BSQXD{uwvOwamiCxS@tr%$W+ts zIU`yh{o$1DqBGGagI~F|ZL$_Bh@ThX(aUhxYh9)J<1(KbjsO= z5^b3ybmWHO`pC(D*qfIvoN{{E^zRcqb>tj(DsA5##kSCB{lztVUd%Y$e`oU~$!%5J zD{A(%&-ZOSnMPYT@JuLGvcA z`K1u8_%Lg!sKT$AvH!!q{`vCZ+tZ)#ryF{i^@wNE>lwO1mL{EHlXoAFa{IPKXQ5H!J-?pj6Z%~~r)EB1 zx61bLZd+NeGbWwSwC5Cea0o70rQoI166pKJ!QAz*O_WArI0xICC%c4OdZsUHn*1@W zQDbI$cTw4yq^aM}zH%|o*i@|b|3r+M4~ueB;7Oe+Qn`T%2Wk_AB#}e`l_qQ=fb$IPlMjvr|qw^?4dS2sK?3KfC$omRpMocc^t-U2=zU{;ivu{fpl0 zep%aU&01h^`ol#F6D3EVv(tSo7J8^opCcIW&%N8u^3;p+H!*Wg&AN9lX787Oe;%2) zT6{j$QpOZ-8nJRta`ax&Z={F7!L{9bajR``89v7-({(I zzNEhV-2D9ha<{qWPQ~ZGhl_#G^z*6h$99X)d)gmZr8l?xd_;_n{pXWwr)9iV&3L7> z>-3f#r}ykQed&GCkMjPNbp;=!wl#BBq;fyKu@@-*IY)32{=n!0D^3jRkt+xlMfZ~k8M{KCu= zqUUR8toC~J$LPIk+`^S!PeW8Uzmi(6UJ~K>?8b^2Dihbt>N4nwtCu*?Y+^R0dC6s) zy*$42j`AA|PT~qrbL-cOeJA!uhP5$T=Thg4+U46Vt*xu)9R2)+@3Vpb=U+T3+Hdl@BcgF#$(=}GOZ_`-#C(#YkOSn zS+-nd#fin177v&w-s9xE6WA~<;%al&SH;469-CV;jFcEQ6-?xNxYGFgQjf<5i+X;A zTZs3t8=72jJN<`av3x~{SFP^1C7Pl+PZz(iSiJoIO3p2o$xR7*+Sh7cEIU52>O}n} zquyu!r}LYg0}{X8DCnB8n)Bj;jFy%}m!)f4QiDIQ-nh)d^o_=AmWkf=j@!6moJ{F_I30- zeDMC&xnkkGTWc3wn;m?-D$Zo$!Ik$W^6^ev!*(=a-fy>-pP#Q!_uc*Ad+JTz>7`~9 zbl*Sv{xnVMpw8yPAHSxtu=wwLGikzxyMC^Pu7Vy99zE$hck|Nx6@`AXyR9WZHY6;0 z%cHG!YbwLsv-KZB5?PPt2rHT`*by+%dD_FQNl_wuHVFD8ZE0h8IG5$>^0K|MC3184 z{$2<|8ZAaX`yMwCeRD#2OPM55hf-Y2L(>HK(Bk|i*!?I_2GdehRz&2pMc67R^q zeQi>vF-d2kxO`sUR^cgL*81_H&iCg`Ra1J~WOLZ^L`=~u-xm#&KiRxroFLfuRQvP& z6|3i8&rz@W^gT8B|F*5)jdbPAGC%G(yS}}&@A~C?C6eBPMO$)aP2P1%_4rpluXnjZ z`*Sj{D+d&uzb2Wv-Badp!Sh@7;hTRxdpGg)|M$OS|E_-Zd;9BiyZP7G@A+fD(xHCu zdg-^q&cSE+0_MA8_pJEIHskW8$NAUnK5kfc zFw{{_b!uf`vw!&1w2N1_L`-R$cvf$@SKLpYbjKqP`;KjNt+Y8`xY>RE1K;H#)pO?8 zf3e>B<@NIYuU^#ex9VEpzkX5gm;9@z%fi=o85!h+iY$Iw$*_7S^QsqnB<7ZF)Uxtr ziF7TMSheC?is;+!b+^i{dB^&OihN%nb;@$-Dvi8~H^SBFrX`M_9_~<`J!xI1&CTL_ zs}|JT>|L|DsPO%@h85dhF@_ts3%xO0lUVdv>DcA^Sub7soGonKzJ%{$5o`4C>Mpc3 z&002B^`WO>VP1;MBFEWt9z0<5{-ZM8xH)svMlsofE&npTcP!hanm1WjGGgJMolcfP za=x({3m!0kWo8q;{bi|s`syk7B7)zZ3vn^2H}iBJ zZ))KstuH!tSZn#5{uwUo zHq{)~I(Q>*AzqHA@x2#{ z3d_1Lv7PBDcvO&*e3C8inv=%=#{w3%#hp_`p6E3;)dYP>HagVwBSa}k%)pCllCkyr zjP#4z3r&`E7`1+ioVj@EE#`UkWvdpe@;$B%z7+hhSz!0OqIKI$w*7p#<@$mQ-)oCK zmF+$$-C3lwgiAT<=aJ%xnf_Ck++`9h?lA5XOP}2GWI<=P%Cy9Q8+H>WOP`D0!^tZ8 zHQ(a2AluvtD#Fq;f2Fhj%`{^4Oyt#SWaXUr*@5$OW@dbUkoD>B9c$a;_JvA{7S;DG z+RHsJ=&9B<dLOFDSoZnYRIlP*Qor`ns{+MiRxupgvgT{czxlmYm*@7I zP5RHLZPTq6lCA$YcU$z)*YPd?mK}U-CGcWe^xdOr` zuD&xijM=f@RvE}xxtKMCu4?X^ncl_5apzgr(XG9{7E+<^eYxk#COQc9FUgvAnRD&R zN2wfg2d665#}&4U);{h1^X=EJYhNWLLb8;1CiP6xVxP?LUeaPo>oc~+0hbO=+Mz7M zeIr8T)QtdJf%!91n6&No9MPzAluUW|%Dqvo>C}o%H}(GP6VZ14)VRiV0hh)0>>FD5 zo?Y4Hp(Utec|m0Jq%CWYZ$GJ}IqBtgp=DEDHvi02+h-=suyjU!)Kew(ITOvUJi7mA zgUXC#cL~?7rZ8@$UzhfJ8AV&UK7Nqm)au=KW9H7lm7b2FowFKkTg%qJiBNw0-mv^@ z=&kQs-L3~Kw(ThrODNW!mnC4tmRexqE%0RH$`g@1fsgj8$|gO7-kj4jW=HyUf4$nV zJ>=7dCY?Q%dwU!Iu1&PjVQ;%OB~wQ*ap{lr*!p*Oa~24e@UxmP^AnEkeD`vC;x75v zi8GW|%}ZjLa_RfZ?R!t@%(Pn*o}}pZHQ!UA`2e3!_kl+jza0=*=zL_n%$NS-V5SCN?Z4WtHm3zCVp`I^QjRw*KZ?@3yEEk9`+P zj(;#RwVr+BumDr{QMNiCd&|pqc`Sy;<%@zvXE&;UwBPH-V{&hyjo9+4sZV0ErZp%} z>Eu82>{Y`@k45*k>~yRU-OH0;Aiu>@TC28xf=Q>jkeTPQAj8Ijm+M}$xt}poHDvUV zmff(>Jm&0EqlLxOyiYVJv_<)638|Qg@fG$cYES142{wHAG{a-z%WuNR^#ggb^kag> z=1jcEq`dZE%A^}nT2VgbhbN}o=&TO?lvmdoe(SM6|NHGz9D5?%|C+~7k^8Xe{NjMB zv(XZZ>OZ~ZR#HEj{(hQ;c2gEij zO;sy>c;;Kk^JIpA>4urxFFo6`FfTiOd)7Xg3Z^40UlS~@uXz5HRpZf%J^v2x{Hd2I z@bpq6r~8ZSAeWhoPiv{Nudxgb-g9K%n=hRa$3>P39`n*%eB=oZex+rE6VJ+r9taHf(cqIVbeuvyHEA;m`2l@16DB;2US8X-k~e zLHXSEj2>6(PX+N``d8nxEdJQ}*vkSA&6aMlX-+1-vCF(v6gKu$$J}jSe=T;-gu)G9 z@7>9+_1bnL{M#eXgZWP%)cH@eImneU+a@UBvdBk6qsc#1lN}j&Op4PU2JAe|uBci6 zpx|{v)%8!W1=SjoCd6&baTU`rNfTc>gGK++lJKJK7kh;l*BrIxeQo-%{+1oz`AGe9 z*Y&=w6@RXM{aazU#^Zi*o~bMQBiTP#G-#PIt$6V}MT%Xvy;{=3beEEeaM&XSudKP9 zb%D!b6}FnW2=ac|zim$Wckg``lV^N>S9_rK;nNG}WqgCUCR|hOoK@9-FJaB4|L(^Z zTF?Kt_V5Ho{#}cN__ZhcvposFc;#&UHEGwM@4hd8em(xa-ZS_5sW1DdyxbTWX5;2m z+i~{0j1!O9le1^IOkXy+oLOzSY{j!_?2e|9j~nHfLhom-F7V3;I<~m>?}@rO9WNJ1 zaQ$AWSoE!S(e8%_LrRPTGat!{N~`X?qU#2mCPgtS7 zd0pq3D=YNXPAZ<4l?=ZwP+MlAag=RtOYO|;g)-igZ*Dk|y*X|6dI_7047+6JR@!;K z5ZaNmPx))TWyJ>R&uW=6O6jF$9GjTFDhU*B5ayY^qW<9SHMciijOFNlb#H!)$IPgX zYuXhdxeI)f#7ukU`WnSf+@rGpRB`FfA5WIg`~Ugya{t*sQUeb@3vBLNxVveljCA{( zEB*4i*@C{M?iTx2Ir)n{Sy`RABXipHh(}WUHcmJnCl}klw$MbZHuTCdu! z2c$0Pc+YaU;9@3My;GFeq9qqN103&cIhDNP+F{PBgLjRqde;P85Bk$uxX?3ttW_uG#j zHoXhx-@9kKr~dzspPw(E_do9+U%%}~q@=B(sNbW9jnitru6xD3vgybzkLh1Uq%A(D zA6C^(t$1|EeDcmy1?h&297?9^IAj?8*GsHQyl_LV)J09Zxa!y3bCD|_+t&Ji=zRL$ zi~smCKW*pFhm6Y__Ia8KC}*eN(=0p2ywPB;X4mO7sTWe_+%BuH?YPY{<3>Xe%bx1` zBZg1fb>!AO;p;i0)9lihTrPWV7GH@Q8)u_g`&+-qm$Uv~T)2YI@{{JvL(*3=SF|fg z{aDb#IN9Lrjv!aZD%GIK*mqmGAOBdAe_`E}du4b%B z?S-D>8SnGSGJd832Q#`ZRH)-`B!f&?37_!!Mc3i*%{W(`rJ16r*wE1-4mHtci~vZzWeVC z?mv8*{^iTlk9W`WpXb+qFMr>*=I^InoNSBJEjCOrH0Ww~5&QJlglneS?x*ugitZ@$ zo-)i|-*vRmtezz_ddE2_F6Y<6*P24S=V>cDC++ufKC~+<$?U8{>fhon=O_W*sctRS zXX_<*d}?A6OP=FDUpz|W#W5y#qvC@{R=?NK=lUpL`?ttH`t*%|%u^>ZhCekw7nc*hzx`+H6Y2ROcWQ$6 zdhp-Z{-ffX0g-c(_?2A0A7kA-ud%XPqnz&?E=5-uR7Ys@;d#dQImJ(KH5mRgkz^@9qRiabc}B%;^&W>XMYY`bp2hQaq(SQ z@ybZmnU(5R)3zTM&RV+tZ^=pJbP126hAm|QatBMT&t?4!i@UIJ;qJ1c$~h;uGQVs% z^>gm@9w&}D=N3v_W6Bhau6KI<@a>C~oOg_z`!lpfJ-kCKH!N+wzPISh>#2-ac8Wf4 zIA{~I^@+sNjyB!i=cT@qPt(5Ndgl=tx}sgBNPCj@)pxJmx}>)_A5E6MoY!PI^X$^I z3xZzW{OlIW;=0zF%PO-OL_o)0&o=PJ#Ae5d$Nl$*q~=Q*!lFH_d@ ze)@g6f4}@ZIkRufyLP*&Et^s%HF;jwDHFAJfz?`*B%kkl6Q1F&zExvgjLxE1(`RLy zB$=Y(H?S|z8x`n`0NeTKBPE z@3BVA-`TtLGIxc}*qmt@IPa=Kg~oc@uNQ3A1xWl%Xk3<29~gh0BY*v-=SS~8S{4xktYHJ?V|7#CUxp+JZBGM7RE^^gd~odaGfvHkZ%4oz4dN!vESNO_S^Y@wzQg zIP=bQxs}P&^9FZw*&C+`YfV1VP_t~CSX3%E@uE%4p-!*1img)n(!aK3 zHgGBCGHx)`d=|CaewG_gu(sa~rU{i&^=g}Z?c;x(n3KjTQx$j1FgVh25&Hzm$Ga|` zK6tWq?wV;f#k@rY(znhDvCVYRTBawFk;Lv+Q#LhEW~#XLgpNZB*N(6UbNjf=OP$=N z?9-k6)PuwH>5oMVr80lcn_2o$W9qiuGb%mzt@gWx=8 zOggZIMc#Giv_|O(vlDt9P6@p-=USG3$hmP*)v2X{HvP_*U4E!6ab^uZ_b{MDzU0$} zrLh-pGEdXW=Z&s(Z1__C$o=l)X{GfQ3&ZzKy0713DO2yJ+$r{{D@bsH|KSo7sot2L zoGRms=P!0A$L?6DB_KL&f9G~Z?I|zL+w#7Ca0hs@f-1HnZ{hu5hlOBy9M$_j`%t0ZE?Q zS8kXHTy$)?ykgp+IeU05OKf$%e*3ZM+v-mtdzN(RO06}!B{88@#Pv++?*!#|k9Tj_ z-Fz1$L@v8lCDr5*6*g(g;{$7MnWTz-5$fwWHE|>7!i+A>`zBAdGxF;F4=V88T~;pe zZjOXqjFa%GwH$#O+l`W#g#`cfHpQ~MuZT3Qy(R$u+&NBthpvq54n5|m$ht+}A6SyQZ#V}8H*@xu4jUmC@# z?)e-JjBnW9+_j-MVEM)^xheD7tL51n{rFNumoQhf+-qCDW79Q%_050v^8P-*zJG07 zL`kSa``oEtT&I}_N~BL`-MZ|k{4wvWkmu{VqzvyZ(2rYmp@g^ZNn>T;9}^3{*ovZh z{i*sZZD-o1I_*AN&-HX;ym66k^qrhps~Iy{UolKQFu8b%-Cf&B!i{b-`X*0RYcUhs zI8E*5g0GYE53DSh{%zsG%^}sU|CegW*)~eV_@+!YJeejtZQ7Ydv+wTKoMq7zJ4{xpUQaFWa-Vg5R59z2#Eunis$DUxW)??w-ej(q?G1QXS+!8p=DGXCBb?WzBet3L zSgNu;)?zfMPFpM~BK@`BIBJc5Px3Z}jFUG?t6PHw)n-g&UYWLhMcyQ%Ssd57zO}k$ zHi`9Q{#ukW-Dc5>E`PH{90G6W>?-)OVb2clXS+@HA6?=xa`}2-!_QWo?1!r*x>Huo z-dnxz*pZ1LZ1w+-C2CA*e5&nNnh+<|Y*DFEA@W66PvWNBr684ye97l`)YLyeI(KFL zbZgBuWt!5Q>$|3?*~(r0|G9h5x5$0f|9^dY`u6M3O52hN-^?P^ljn(-mt=RhrQ}$< z9r*0`muGSK3C&$@^&bo4n*J+0xi%Jjs9yMg>C6DpUnf#Go|v(z{+vgwn|z66lFrfd ziyTAWZdjY*vUeX3^F@``lEoyC+vwhlok!!o>%kQhHtoi+Wcl*oZt>%^1 zqPxVEqk0^SZb&O{s=w@9Z594Fewi(!zVb-jGiw09;F^VlpZ0t3rBFRz|4-9Ugjp!bF3j^#>~ za(eH4P3E>7Kvva_ zFN^h`etf*#wD0Bm>7UN;n25o-ck0gntIzyrP5t-v>G$cq6*uEk{~W%%yh2G?*RJ*W*&a1P#sgcn9r#gspCvV4 z%}h+=w7{pvRi9(hnhq7myxcsqK;Z2j@$8)$7XIhunNGTXQj<0tlBx6+c-gEzsDP^ycE8X(6@u*H%1N{866HcZkcSrKj=UqnrKz zr*<+Onm&)QDD_opZAfaB?=7_HPdI7ec_pttZtIRO7xP`L1B<@a&0eMC zo;~-x)B5KVeUg>VtzYtO+4`R+9yBdoydil>YWmFpqwVW9FzcJH(dC}GB1xN5_QHzT z7uUMZ+;O$cw}}yu)vRu9nelvq?oM;wP20pdSLqAB(^XskaK*`URvo`wGuhQH&Ggqi zcfxmG;)(-verrLcgURhH#fq;N zwl&sS*G_Em`l7x+*k|V?wK$#Pqx=lt>s4m<9ZT2~uj3e&vg-2%aTc2cjt|NctYlxa zIh{Y?5_oKGgslGi=N@f#78efPTb>u~R4Od|T~1WZOGtVm)BG*EpK1d=>Ra!wEf6%R zyBW$Xanxj<_{L(HI(}&4Jm%^} zT{5ZGdmB#=V|KgC#x9Q4&1XcQn>EJvft!#;Gs%Q^@Zp3J$_D-?~U13IX`!!#d0=ReFuZw z^rrPrtUzt0x`0H6(xTn`zO?>bcqS{TJWhiQWxD<;5qat(D#^Q0r16`h+|3 zk1OK|E(5LgE>d!HdEdNTZ<_r6p8ejv^>up$Dx+4q{@vUZ~0G)Wv64 zb!70}2)W3*{&i~lq=p+hGCdYTCxp+uN}9wXzw}1^dN0+NuVe2!EB?4qm{hbi_^)&O z5iSXjH8Nc*(@%e0w97bD^*G;8ZXZ2szWYrF+(pbL7xd~19huA`ue>vLzV7Nd{jQHI zH>f#Fuiadsg z)scTM#J}cGPWtpB=mtO2(wgO)*sncQ=v@4;ufpt2OAdz|^S8JstLAI4J?$*J9L05D zo{!3@Z+2E2SMxt<^j*w#Mc-38S+?BH)AHK4JNG`{mzOuobga2m@4fb9Z=+(M#p(MK zUq*Tr3*JuSb6>G$rSTEXbE?Ajt+#pK)Vqr`#bnNTVzc8G>*Y>I<%r)5%H57L>Wv!v zHqX7yFb*&O%1%5ZZM(W3Nt1!wVjfU2SX4YunD$ zOiPyYcB$r!?`(+o`p&T66i;aPj|W#PnEGNLCwvgEdLkjeaFKN9gsX}-CgCZORvszMUcYyjo=Z=>f9uA1 zp$kq&RQnR|3+(MUzf7cU;xbN;+4nQAx3-n*oi**8Aou*eYVjGH7i#6*zo#BFzPiYy z_ukRUEV7+l=>xom-*d#gh_SSr7ld z$+fMe`GK3nmcB*KLj2Nijq`Tw)Omfg#X9UX&%3@F&qaB5m+o%~kiT1MZW1OVsq%4I zgHPkNjEN7f^lgqhV`8H8jH6EHS+?-m_SQYR4jC$!)&1pW-Yd#T$;;X?kwwKD`?gCSJ;Xlq z;HG6FtBo&cCg?2Zc=~M9!Tlna3PtATJ@alklJR)L!I^yB@3pwZK7TCVcm1cs%BIg} z%af^Z^KOWe+v{2RLz%H{l1>_N8QSbo^uI{&%M3Qu)2QNv3Spn&zC;T3q1MO z>z71+IN$Z}CY%N}Jga+~&$fInTRTz6Jp1t4+Vur`|Ns5^diwf&`TMn1brGw1c{ZC# z9p`SDd2IKJH|8Z50w;bCob)PKdTYOl{Ibu6WgG|G-5$Ud6Z#GbP1p6`EWqsShWa)n^0?fYy0{QvwV)0%&2p~zzC zma~lM%ThU%lr>**UhJ#&cF!}GZj{(GP2;`XJ5Bjpzov+7d?U(~c|-MViut~Pw^MSy zdHtL8_)96L%ddEOx%!_re}Dg(|KsDAZ@)ghd-+%Utjva2|CzSPxKwDGaxwq_%&;ln delta 188719 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�ynnO8LJuJ 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≧|V1DlUhdE7qGJa(L`4F&GYkl7;(I0mk)A~FP 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html index 920c9f10e21..c7607eb4635 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-config.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-config.html @@ -1,4 +1,4 @@ -

\ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-event.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-event.html.gz index c4be6a82b4d2ff6cdaabafcc27e23033b0713ef7..b837adbe5a3b90635519db0fee0f1d507aee7f86 100644 GIT binary patch delta 579 zcmZ20x>%H5zMF$X&3Exe_B@XIhr;UTu7u5P5#7-E;osW7Dtz(b{tCAy);is@pEyfr z-Tk#6-Fvz>^zZ7HKmA)wPk2I6aqTspHp@>eo9X{b~!FP{mnfocK818mn{4D?mD|6R`1%D=^RT! z6P|E>-Ffb`!9BZcAC5{Fg!PNe`=;)pIw5Lh?2=N`CN0|=>Fbjs{@LD6&t7O-Qn;M; z$oz%7H+>2}e(Uu&Ow z?c2QrzeP0<$|%fz#d6&n3i`w=4+rri_XMc1*k3M7}rk`Ih-S5=l z%k7bm44N0Wzp`qm?|p6YyS=EV|IhE+MISrgeA+rCr{?uR_Z#P)%d6Z-KN6h3cc1Ek z)in(dHon<&{$+i|p*ejl&^>u=V7**RNm?{IypKB4~cPx^$pej=;+-`l@ief37YSqRIn#m&D` zLrp{3BagNQ9Xl{-@%aq@jpV=0-|HFF{l53zMF$%*YduN?0FpZZ{?Tw%B%Z_t-dNEZ&!F}o0r-e2D6s$`XAH_e>|&V zy4d&T@TY$duRJOHJFC||H>RalC+<(gz3l}@8>UE0ui9vm|A>wCY{PH1*BgR-3SS*j zoN%P=&c3JB53CIDG(Qlyo6T|3bcWmivQ6q=!`{qGvkl-p7|gVk+oj1S^!S9EQ#9%q zENuK$m2M^V=a9v^q80BvS`uRRH0OUlVsR%|uE;z3rG!s0@DD`U#K^HZ+(yPf4GaF{*T|szuUXd)3`X7 zlb`>m(!|r{_fuzX-D}>#>FQ;`?y-Dl^O}~>XUDc?nrwM|>F)Hs)7}ZzWhmAf|9kXv znn9oHS?N1VCv$xKlK9Tz%D^wJTHk`nIA)wDJO~oVUk4#Yw+sajOHhPU2p~d_+Q_}51 zRwfqO_~|ldN6&q^^#0$R4tsmmcc)%&S~ua1F(2a{`7o!?o4-Z;=lLh^5i82ZE6>0H E0RA{8WdHyG diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html index 87af5c90bbd..d04c3b1f97d 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-info.html.gz index 89c8a73c1ad07084598a650a3c6cbe2e56a36570..746c0fb162fbac351648251ae23d39f4b4d03fea 100644 GIT binary patch literal 1216 zcmb2|=HO8CT^zy0oRO$okeHX6qnnairkk0UmamsllAFUYH|%cSZ8MR5_k#=eXyhE2 zGL28d?5No^rC9R?cbQCX`wFm3sn980=+b1f>G4jcUjo%_wh{AF+9%Diw?1IN+@|`; z`oFw=Ra|23w9i~iqRwSIob2-Y#jxYS{`h|?`<|b!w90uFmOH&TH9Ii+s#HRhZiQ;= zWL}Ad3A!blH?_F0m^+ccs?Qq`Vtk|nJ zdyN9mkKo190-`TA9eQJWC3X{=yvF&v{g*5^&*jj%5;#S)Qgoy8#e`d`Ar=y^`wltH zc7IaRbLz>u4aa`v=-M(){j&W~Wvusp(Z6hr2diJVZd5H5-h20A+DhrhYhQoPe|Al~ z=>GoQ)?#ZecJco6IrDes;maF;RI}fmFmKtjjyiVapq?Qv$$P(^S*tKJ$EwvzDZHa6SHrNCONhoicU_dlJk1? zwdwQmfNht`7rYa{7&Y13KV|Bowq>%P(|ec9G3Tx;HMNP2FBa3<{nD|}a$n7Y^jjS{ zbxFQG*RsP--$?FdOWLy8Vojx&G)ujZWvxe^fld!k;z9RSfrn1a&-qfkTy=ZAM5L&9 z($scQSw$D|O(tt|c$*BY7UURQ{HXDASIR+gZok?oE4oe2=`PXU`HsEf)8W_Fztq-g zT1xNO{a}m0=_w^ie?O%cojUi;@A0XtqNR364sX1q`nTeS@!wxn^Q^o|D-|~;W!!AY z+}rcq^yaBsDQ`M{eyCZz<$m=IaqD@#|ATU@k~F7o`LMvGZHlqVH+RilCwp`9etxQ9 z(VUh)Go|vji0Ec*HFJTarF?6QCw#fuzje#biwl*yw{=cA)b-0zW$FCuC(X}fSp8#6 zO18UoO}PA~aLts6{Cc$daW`$>yGr##+lDfdn;Y+VmXtSwD|X1hh5v)rZJoJOi=yEr!5=NAW%K= zEdP_~N1wBSmzw}+Qz1SIr4qx{KHNAw+G$5 ztWxy&^z-^33{oPYQpL}{wCu00KAC=4B>$1fa?Z>!<4TziE3HMF?|MU65$o>UF o_f&W0T~V3kyFAu>X?CT=D;wE=SC{_Xf1sX`{p~JQ9xet307KziWdHyG literal 1227 zcmb2|=HMvWu^@tpIU`ZGATcjBM>i$4OgA$xEnhFABsYg)ZrIzdJ7yw(?=KGsi=3tqeSO=mO{z;?&z$SWQ`uqXEU)8#N&EKZc;m)Pt%58rYf>Iw2ede-Q19_ zq7&!l?VN2lap&8D{(@#Fso1TNjuIc9yKPsKqi*$T&;Ffw_%r0s+U7bR|KMVmdx}AgOE(G` z%ddTZ)IKsGQFPAP{fU?36CHl_JQaKWId`p~OTngwGnE3-`my_c+E=ch{vr=Jw(FK_Pc8|!F3ni*cG;guZO!LzyW->e{KLcN zwBE{N4~Xg0fB#~pnbL9j2;uWz+f0qVMJ#TVcv~rR&1flalYPgWd#dJAVs3349tmI7 zNPNO?*0%HVBx@a?HC?J3Z#jFib6;%L@y)*7pwPpo5$#iAldx-L#D}9@!SbrFlzNM~ zGd0Z*Gn}uhsdCXr`+OxmUx zt9)~B{53=RX58nmr#Y8I>`R{XG&cImnQ1E|NrhIl~u<3 z<1xold5z^R%io9oUUZo)Qhd=9Io7**+dFS3`flE`@6qe;hmC*R-O}I3B!77FiW~Nx z(d@eyhurH|Sagi#|KmRYi=StoxM{IrvZ7YDHnX#~2#e5@&d0|KZ3T)8Rq_`Q1< zeV=&#jOWX1TXFI2#>MLy7C%qPcvA5tKl6{r|y^6paq@~Veh45{>>=AtIdD@ zkM-YX)XUBJ%AxhJcGByxvx{!l-1}a \ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-service.html.gz index e9b1d4676fc3285106ca5f6a4a0c1dd68940cc0d..bd749bcb2a56752166c73d373068253af6354c17 100644 GIT binary patch literal 17875 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

4hqvjXZW&!b6LBw`7@BP4eR@)ZgTB{;1FO zztU4zU%eqa^ZRMZbNVim*LL+Tds1QQpnGrWmBwQSe#tz#G|}ML)7|qQeF_f`^xA!g z?f%Kiz^A%4r;YxIxO*Q_<(tN9a9Y^q;`Z%-CkH$2Q}SAH_pzwUgQ<5bE{e5V)2{3(?3~V)4h1~)CZe{7rLvZGN!uPH|}z8Z2VPyxpt-V zny&fJWVL>6yn9~!<-<9;`h~iV-Lu1<{l9Wr{EnlRQ(^lA=He@YW=20;6lB+Oyw!8b zxG%j-vG0NOi8t?}PrmVR-uUy?>S_&XuAWymNe3CG|Ij+g{v^$qF{k32``52;diMPA zYw3Nv@}qZz^bFTqI~u&%V}DN6-SRFoU)Jw$yO__~M?AhyMfB&#ofa1t7ggn7!Y=5r zbiT)jp!LgdmS_oGJUz87BtBWP;#u*|wtrJ5ww+mg<=d%wr?{_}?(GlF-~?{Rhf*(V~&hD&poIEg*Yp1~C3x>2z#<1ml2<)n^Pn`#+OePc*| z(`lVJD|}N4qw(s_#fQ7tjrbO2tkHNV;_SLA(%@%f`y+uK#h!}l>Y`am&sslkdOg3R z+;)MtneSJhSR<3R#P}&`J<$<4yf>C#<8aA4<5?aRA~WU0yfwQM|6iWWd*-SQzm1a$ zLr-UNePd=d%jCpfg_jv`i+vKUqIq^y{GE7M{A+t;t;w8K8W%peo$t=*SAUzSwzckH zZ${VAzrVW=JW_Gf=qlSK!T#-6N?q5L_~QR{oA+8OefT92q0;z9Vg>&h)2ked&c;RO zq^0LMF{n%sKc_43>(VA;uhNt&sscYwEAQ`0DV)|8yDs!$N@W+P=^2aYGWL^<&koHH z_`Kb4&xA8kH=21KKmF$L?BeY(ua|t`$f z1@FA+@yka}@nc9?l>Z=^xIOM#!*0?uxS z$QA3h{`Jx;ep8$<$!L*Acc1&i3w^6o?i9GP=1xDh{PB^ln-810tBtstIULivauzP@ zcm8$OVRLqqPp><-TYp01s{lIvO9YIoM- zi{4s%(w})&TXA;tAL#($GyE$VRW2TvWtC9%T<}iGVRge_8-+)@b+5Pi+f^Pe%vyUU zV#WG)qdj?PqW@POb#E)2HPvla_cledt|Woh>|>Q)>TmXJ{xWIP7P0wF?FZMmD@{Dd zG~vG!`@T4Xb?k9}QwmpE_z5z8-d^>MRWiA3j>E~N6Rmi*UOXk7d~TAHjDi}|*Yi9} zeeA59b_QSjwB?&b#i3-rz2}Yyl)pOT@uDxAKdr-pZ*9I*!-;*_*N=X%;S1xv@u)>g ze!<(Bnmc(^7&;@HL%N=D30TO=)ir#W%rd=Tnz7BRRhK#6Yb2ZvJN(fmTh#H1-Gm=3 zNe_e)Hb&3iSd<@r*K51X;>M(NS`zMsiH+KQMb92aunKWp>MmMjP!`5LCFRMMlw5bF z7dzHpchS#&o3dZTbaPA4+zD^zsd{YlJ2@pYRwux2URTc*XP>oCJ8OMT$M^pel~=#r zzmIiGoj}!+hj;!ykFV=w=t}*%B-iiGwa6OLjcS)KR&?B6{`KG|N4^)$%#-!rWnFnF zHEk*5?yCo4_*d<@w`ouH0gehL^}vHun7%*fkE$r=du+Q@YEsWu_9P#V;-><&J%^9$$ZlvpcX%NS&sO{L*Y{e47n?t3;7b1$d~0sEYqOQ* z{W}jXtX!9*^iuBPn+qYUe^iV11tnUhO7$E(vPpEa?B}m5_~&#UwBTrk4Q;`FpnX^;mef+_uW{JDyWNUEI;*vx$#9 zOZ=Rkn(bdTXT~|s{Pw!c%y-h^#Bi?9N)oja%i=Co^t}D@?8*;~8>!dYpPfp|y1nAr znadqbVXj-bd=>VnHJa>IJhV0VggBA{&UK&E8ItxvnC-}099`3}?=728$)Z);-vmD4<0_r7q-}P4pL(*enbgi3(G6xP&o=IO z-hN;5_w92Jyq+%JYP-n8E3mY~-dc~#Eo-GyRfXtPx6U4!!Zio74N4g}4J}Xo{^B1| zoHI?ie%ibn7B>Ectxwpx{HxDf+*a~`?NX6g{rc$Dtz8CNJ0zn{xiq+)s(!xiUT(9Q zb?NlW4V!{iszqek^EFOae9_B#=cbU0H>>EUB&C)KSFRMyk&J$)Kl#+m_7hBrEioJR zCcHT$;kIXyY+i~$!I@5v_wHRr+|Jq?HazMqm#P1lvSRHnUu$2VsjXlCEzaD%W=oXW zysy8yjHp2KC0&c=Yp*|XHK_fp;GJ{+lK%7B zPp1N>FH|`^^PjNlWmikxP)4ry-t(nl_xA7K<9_SqQ->ovGk>ev%+#IYHU0dDwQsV0 z{k*;zAN(O<_xeTC9QMgq_|?{bD>$-!;kx`v*Q1|Tz9^nub1Wb>F-WlS=7N)lzwOy} zqwdngbL*@>{p`x@Svo^&6-)85$gIs9GavofoXvQ-yu{FH&dXaIs~_!9ySV6q?biF# zvJ(wimdk9v8+AWSbc&@;-mK?Y3x5l<+}rlfW>$3h%SpGlZ8`hg^YFJswh-4wL$0GQ zSMr4Yx^}~TzOYzK{s~#9NpBQAPHr<;!>AVJbF5nc4l+(h}>U*2ZNXGUBf)F&n8PWg44XWpZY zwu;Q!spqoxsNWI2{r7nEski*KoA(&p)qYdkv*n_r$<)m)?R?)3`bUPk@RuL@ARf!{ zA@xZ^+{6qu)8Y-)uQ!EkUG~^DNB&j*m!m6M^^Z;a%kTYo`<#da+s-ySY~QW4X@kxJ z^^B=q3LM@}Y!6}z--=|#(TCZ}aupBP9h+{=@95;Zu(5HL zi#OBj(g}f1&mJCktnOlypLNSh`gPVB?shG{g&Tg(<>2A}^Xv!5-Tn3X=2Fv_ef#vq zLMBQ@vi+yV_vT9167@1BF(a4DHxo+lN$NLcZ2MoqUSy;0>sCJ9^L52TGv{mk=cmtU zKa=wQfA!~Qoi$M(w^UA=l-{{Sbg{s$qfr}jZ#VI!r9146)oVQdpF>@)J8s9up!qXD zDjpND4CtC>xR=fLR$Wi0vB>^&_g?R6?Rur{&C{uz^<~=p>rYRW8-?8PxD;_Ay`7QK z@ZFE!m7L4jt{?loW66c(e`+5sYk#)UW0TXvqS>EU<=ziVDg5|q*J6w9`6&f%2WlOy z6-`ALo@Gn*I(P05U`YDU*7M2z>pH9aYn!JTM-?Ysl6Z7g@v>Uqf&(fdHy#AL``+6t zamk*?K;_Nf-&wjVQhqBO-Yivk$K`C}lq++#K4<7Xf9u=!T`tbrrwV7jwcTRkf4BTg z-tQMb=7_gWT~>C>{80CroExj7Ijiii$1ky-UAy#BW>MpPh6||*w^f7#9v^Rd$nN$^ zF1F+RmW+E1RU${b`I;pi%fELDzId}bFIqS%W?tpp<(29pE0b3SriMx&GO@(yP>)P?mT!_yw#KEiwj90XDc8gw&C}8?Uo6eTab2@$ z{l&MrwdZ%vJT$Akd9tXI-|oOO?{XjIS0_d}*dFB%(a99t_m?YVOVaH6@3R}alF}!4 zJ}ll}yR3`p|9)5Fh!FAEdzb7l&5Nktzc*CFN%S9IufUXmWjjC3`qSr|vL^8Lt#7w| ze1ZavWitNg9+RwZKk?&R*%SYZ8){1S+eR#F_pYz|D7If(*T?S2+Z!e~FZAv-kyN{8 zSa*$W3g4bNm#=N^o%_yU-K@}OaZ*V&51klNpOiC%RrY>&V1BvKe##*e_h$Fme>GjL z&+L7|AZd0_+Bj3B%@K?2-kir{bkNdgZAHST{_*M6(LiF`MRVBUlll4knO7#}Z zQ+hr!>2Y!#zaJYD)2yWab&>Ea1BiOunQW-}-oEWY9PWLMg^Cm)wvDzJE7?aAF%(~(wXq~0K-o1c1T zi=m{zffkmkT{ne3*4HRc>wEo2@EXtW@bgtBa*scCa^2`(Ah~Yy%oi7{mi*dhxj$~Z z!|!z$+!jXpyL4>&_(E`tylrEzZNAutx!Y5=u3LZV>-9aW_mx=IdZ^ETe!-uQS>f{i z2i}kKezvSyeTYkJf7a`3b5C_9{P#2d+PGQrf>~z`*K*Bpwu+{Ic|Jc@tUC2N=#`9r zzSHRkqAzS%t^VxykyJ=jeR*_2t2pT}7cPdDD0s>fdtbJ-0Oo z|7!a!OC{i#-ooFjJT@pEh`YpG68@}9av58C!^cz0m$0f#i}Yjp&G<dOW82Ky{`z@yt`t2gQrcov znv*2IZ@RKgtLXmbCcCYR*BR1>dHpRw5viZ#tK{u(k&9_cp+ED0pE}BW;YKV`u{K_xfkB?-j z3-8T+GvnJemzLOHJhKihoZaLS9n?D4BHYkSclYV#Ws4oQhi&_nkk`vvH#IbL(X)im zU+OoHELt#c?S}>bvg1OzTNFg^3BSml`{t(Nit~3;-Yv|Jl2|X;vcZn~6^BIyBU}BJ zAjP?!*UcwRc2W6Pd|R^g?3eIZ!#N&jw`ESSe#z5bZNK))%q{%g>L$gXl5fgiA=4K0djq$LD5uJS)>&>&(RRH`h3C@OivGmb>+mZ1c=W;S=lBCM>m> zAP~vl(e~CVBjQoyYqftoEvl=F{0rvr)j|!ye{aY=Wik50*#lnERexX!$}H z%O1Vhw9Q5SNkObFJ@YrtS1CRko8h)J*nXDa?3$MSGp9fE zcR!kOX+ce9nC`AmDMY1JOfj%~~-{&S?Lx-DGHOkJeX``VuiB~P7P0`*+#e7@h= z{_&^MkDd1;?K9+MWN-7$-M-%9^2`+hv(7Y^t z3hSS_r~Dqqt#jIG6}sgm*J1DcON@6ezW%&Q-t9a4UAJiE_cKgWT?!4Z`302E)!U^j z+G4(NO4O{^49)sYM&3&g?+Ue;-uFCg{QwPG}guU6GBri80^g0 zqQBT_jehkcuVbklir*&L+z3CvXN&bx2^A(sgXY__w$Iml+cWj_r&XJ7hBSvB@1N!B zzPM$=(!+=48>YV%Tc7o1x8shkD61BuQi)sa8$%l+6W0qpyO3}%XZ=g3xGtZN zyuGKX-STWiSfiTOrO!QC%Qu$KKCE}Bfc@l*ADW2g&htt@!)!&DYt_^-q}1;8kBz zcK%J%j^K$WmE9r^MePxhPm|xk@K|X^Lx)`YGNTuvSEtst{d2jqgXMEppJ+noZHLU} zBN3^;ODpe{=d&zdyZxOWD}VCQ=(6T&r5tH9nf6Oeb@SCk${Vvey>B@bIW|??Zu|B! z>7u{itDBjV*cLAhRlm!yPt4(1nnrWLf__N3;$3bW4Kx@NOU_4L*!dk;z62w-RI{$u_6(A4FdQoeuvU1#)u*VP{%K74+D zzWIDV+u2{AK0GY2uu)ku>p^{R0^4xg+DXssf8v_Q(Gzi&U2ks_Md$1FMX}*PcnBiF(~C)yg5HT{Ogbp7+f+Xt$uazO{odq*{EOq=>g8?zg=bh)al}5DAJHZIQ9g!Ee&MnESDy=t_R3wn zA7b<9|Hu0=|1Qitp}79(glnZQ-ktDM`tSd8diB>&HHEgT%RccfEP2RCFci!N?RBj7hk6n=|7KG?(YmgnN*YKbJeGo z+co8Vx)aSm=cxS7tC9Wx%`5&mOWCda%ddQ=rh2jTy)Eq<+~tBRp1(}_{q@22-Jdh$}ayi(q;`EgrkoHk!)Yqec|{u|5f(z$kW~-#3@=vc>8L>`!Mad_AN7raG@$KL4Y+=56u$r`PM&Ki{>)T0HCQ@-I`hHgl~l;WC=>y3#aXOd@0Y zuifuv&1q6TAeCVk@oBck0jaN(>>jIsRKF>9;YP;W2L03nml&frWNkU_rg7z`tyWMN z^Pi<2yS|pD-Y9tR(#G|c#MQrxj$Ty!TUevAaN5z-3z|JOf%OM1WxMhn_#X6q&oU`r zkUpVi_18!h+a*^LV;s6KU2x8NU+JIHG*u~6PtPTA=PK(@r$lnH_;p`P)|{Bqyi3eP zS+nWlyyk13!R^NXeuU<7P2J3H`60VuN_xYo#bK%;yMJxcT6kdF#tKEQ-#nLYDIJbu zm2&FfFNoWqe`x%0fm=Z-?L$GyhebM^ zhjzTsot~ijapJNKmyRlxGyD7gn-JiAOPO`!m+o|4=Ede$zw>N-Bz{*@0@4mDS8pY&BvjmtSRWUXfSlU)zOH281TutazE>~TNeJM+@r zqOYwBCt6nYv&`{XXH|S-7ejYM*Sd!6yNR573(t!)yR*k6#P!YX-lBG6v+7Cf>8ph% zDJ*h&wTCSvI9?$o^u&R^t8Q)EvxejTto7WrHf7o?5B6A1yBPeT(aNstrq#u3tL9o5 z3xw&FNfgX$Ud`dmG3nYy-|B41Z=0^p3t>FXw{Y1?k!4ydf(6$rZB{E-?c2>$`2UEZ zsdr+{*E#1z?P5%C#QzXjnpu7>PV9jGqnSs|o}8aKA#z#rvKJmU+kQt1*&nuV_|12F z+C{UQMt2tk-c&Pw*)`*eS@FvD3fJbej<8Aj-dmg=ux@<)sOQY`!%>=B_@|vJSGHPH z**$05tJK2h3-5_8Z&VMyKSLz^f`(3Fu|ZArqTnx2-rrVv_2T@eOA4+b3*2>r>jYZ1 zyYwctOKfvE)`TDxaqPK~g+#>UR# z+`lTEs~5bSnyH_vt>J;D1%`XjXSdE4&(#e36N z&mGHkiSzZ}sZXjoK4atN@NX{ud%H`ES?#CVlrfmhy&87s z(Gm4mRZd|aV&*g#84KK)diwUhIVS&Alza_$Je#@m?{W7U{qu)pgAUCxPP_KF@Xf}x z%wO2kdzvy9w^YC6xqDdo#n=Dmf19u0EO&eLwC*eKW9Cn}JNHdojGgAP11rk13SV!^ z`}ye7%+8{lla>CyEX!5={r=;vm$%NjAO90@Xku|8znlsyPb_nN(u$v}(i2j4yixA< zyK6MV@Y*)bPR6~KcMFy3pUyd>nLGQ}Ot%k*ZpEy7RGRE3cI(?I|J1z>Okee)CFC1U zJiK?ih*v~0V5#nRuaJFv*6z~PW0n!LSDrwcu`{_}gn ztX;ve;j34@@!76qtK}JVrcx#8kEFw&T}*7jwT{kQj|{GtOfp`TQfF=^{F*f@#3u6R z)MeR??D+>2a|3ybbl80MhFmkQHrLbjm>p>&y64t9W*+-pg;}vS`wIO!8f?z+O1N3X zoZWEf;mfx<>aQw!1@|9~5Mb7E5#@5v`f=LBDCX+pilvE9=6b%FAa%G{G+Y1gzx&Zs zfA9FMx$6vzeS2ncg`@tf(~T0_LUZS?yuFPvThfvL^1-l6ZC{>Dc|2?FN|C(*U)U4n z_*&IpUp~mXj5&X)-#ruiRg2x+7l|D|_v$`Fbf*}vd4^fg#?1D=R{f7_FL;DnWz05> zY_`hJX^C7E>bq9&#O1bX$@z1I|O#DyJLL j62XuDu{O+3PMvy~l`F*T{W`JZ|9RQB`OW+$z{mgq7ZLH3 literal 17861 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 diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html index 52ea7fff18e..daacce7f492 100644 --- a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html +++ b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html @@ -1 +1 @@ -

\ No newline at end of file + \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html.gz b/homeassistant/components/frontend/www_static/panels/ha-panel-dev-state.html.gz index 0b8a61e04263470ff0810db9bd2ad997fdf5b281..a40999b24b2fbe94610f728f2903407ff19f63e6 100644 GIT binary patch delta 1066 zcmew>_Ct(azMF$X&3Exe_5}9&X;-Y(5|65Mo7t)CP`XO^=5r=J;e+u|7?SF-Q*=Mg{N&7>p9y^HDp!NOAaSGqTq&qgh1a;x!Eh(4g&n4ObU zpmx-|!dYRd?F@I9`j{H6fupolO|m1}WD-*QC1gx$Y%uKNG6 z%K2aOSV4HNiC)^fAT3vxMK01+OZHA`Sip{%&t9~6K92vjP2fgB)||sX9O?|K z_X;|lKOnuI-F{bt%_8H_$IQH5&&59&f| z+PNS=a?gk8#Zt4f&y;-VdHIT2QO)_yyAoEO#Krs*6(>()&<|1;{OBW?^y~L8H(YB!)7{h{>9E_P=;9U4Qb+FH7kFR(EUhU{==ZKePmg$CS#71DY_|Sa z|L6G!=lnjQ@$<=v&7L{_LiJk|Yl}9mnq6*l{PT@-JNz$yefQu?q1)NQ2=78wmYc5M z>Na259-prpxVR7xq*0?VO8cUsgyQ__&_?^_Cg0 zWLQ|D!nfUFHF+r%5|Y=Y^vTx${9>UKA9l^Jb)KFQ>~M5b|F4hJ)ZNbCovOB~PkeaU()iw{O-Z)ziD20$$XOBm=1ZQ)#?1J)=kgxT@S8Dr zU+>GGl^V-=w)CD_>0PRvzu35EN{i3KRp@%)@ m_&?pbe(wTFo9n^r(srr;D&2Cn?#F(`KkT}FVgGv-7#IL@p$)_U delta 1071 zcmew%_E(HuzMF$%LH7!?20x@KW(1)cY?8Na-^f2pSEM6Mb@z;7K(4rdPb`)G263{iRaM{p?V&v zHFGCE@7d=OdbDZ+ubZKBD8JPriFK33StFFhN?7Aso!|6biQeQsYpVn6+n;kB_!?I; zx8FSSAgOEmhfNNPstx?R|6Qt#cs3!;bRyg9qwGJ-HqZN)XB-&qT-N2dkm>mgi|C1G zHCCus-I%-1ynD0xYh{5=&)-CS|7_WMol8fvp3$}BMn%m_LH<9&r;6V0 zueRpQD^G)&Qop|uW?@*+&6K6|^x*B?_oftlJoUzLU&=zWB^%ZVd2HW1rUJiKDj z{;}~-(zhz*mU%tqb^LWDj5l4MuRq2vHRYVuv*%K*eoVfzcd}OeDvF76OnW-5YwhoI zR$tesT`1Fe_x#Vr!~C-(y&K}^o4GjK87H+>OgMa8K4!9zhO}b+i|azKU$`-^>6Yp( z+ZU?RZ1APXabaA=!|iUSCf8@Yd{B7Vl+($l?Z(}gyCe>|$tyXl=`zMGaZ`FU^U{%! z@7HZ}nUmL?u-@R*;nAve$PHzI@y>>+yzZ zkGwcGb-($WwlaVJy{J_V(JEgSUU_L98Q!|0?9+r7c8fRor5}@9`ziRA<>I%W0}UG< z$BSRfG`wob!Lems&Q9)(OR6hY+!1koQax{8km`horPF`6>788GV3j8S)%fhg1upfj z+t%BQ+&ruG@9$)r|2+TW_`)a7JFBsA_0=hHk7jE96*de>$lQBhzkp@cty`I=BiV9| zeuO;Of0egk`ASDt|9oHD|1tlkWx7uiTHYNl%KfL`KCb?gvOK>^yTjGZ2_e$y-->qG+ymZuA^ tPwQLVHqm0f+^ORDYRAfT>G5aJ_

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�^S{(SxS^J86JolM$lC;MoTwxdl# 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


Home Assistant
[[hass.config.core.version]]

Path to configuration.yaml: [[hass.config.core.config_dir]]

Developed by a bunch of awesome people.

Published under the MIT license
Source: server — frontend-ui

Built using Python 3, Polymer [[polymerVersion]], Icons by Google and MaterialDesignIcons.com.

The following errors have been logged this session:

[[errorLog]]