From 1aef768ff08f19d2fbc24c95276a0325bb179f82 Mon Sep 17 00:00:00 2001 From: sfam Date: Fri, 28 Aug 2015 00:02:26 +0100 Subject: [PATCH 001/190] Initial support for THOMSON routers --- .../components/device_tracker/thomson.py | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 homeassistant/components/device_tracker/thomson.py diff --git a/homeassistant/components/device_tracker/thomson.py b/homeassistant/components/device_tracker/thomson.py new file mode 100644 index 00000000000..a1ed9ff5f4b --- /dev/null +++ b/homeassistant/components/device_tracker/thomson.py @@ -0,0 +1,156 @@ +""" +homeassistant.components.device_tracker.thomson +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Device tracker platform that supports scanning a THOMSON router for device +presence. + +This device tracker needs telnet to be enabled on the router. + +Configuration: + +To use the THOMSON tracker you will need to add something like the following +to your config/configuration.yaml + +device_tracker: + platform: thomson + host: YOUR_ROUTER_IP + username: YOUR_ADMIN_USERNAME + password: YOUR_ADMIN_PASSWORD + +Variables: + +host +*Required +The IP address of your router, e.g. 192.168.1.1. + +username +*Required +The username of an user with administrative privileges, usually 'admin'. + +password +*Required +The password for your given admin account. +""" +import logging +from datetime import timedelta +import re +import threading +import telnetlib + +from homeassistant.const import CONF_HOST, CONF_USERNAME, CONF_PASSWORD +from homeassistant.helpers import validate_config +from homeassistant.util import Throttle +from homeassistant.components.device_tracker import DOMAIN + +# Return cached results if last scan was less then this time ago +MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) + +_LOGGER = logging.getLogger(__name__) + +_DEVICES_REGEX = re.compile( + r'(?P(([0-9a-f]{2}[:-]){5}([0-9a-f]{2})))\s' + + r'(?P([0-9]{1,3}[\.]){3}[0-9]{1,3})\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))') + +# pylint: disable=unused-argument +def get_scanner(hass, config): + """ Validates config and returns a THOMSON scanner. """ + if not validate_config(config, + {DOMAIN: [CONF_HOST, CONF_USERNAME, CONF_PASSWORD]}, + _LOGGER): + return None + + scanner = ThomsonDeviceScanner(config[DOMAIN]) + + return scanner if scanner.success_init else None + + +class ThomsonDeviceScanner(object): + """ This class queries a router running THOMSON firmware + for connected devices. Adapted from ASUSWRT scanner. + """ + + def __init__(self, config): + self.host = config[CONF_HOST] + self.username = config[CONF_USERNAME] + self.password = config[CONF_PASSWORD] + + self.lock = threading.Lock() + + self.last_results = {} + + # Test the router is accessible + data = self.get_thomson_data() + self.success_init = data is not None + + def scan_devices(self): + """ Scans for new devices and return a + list containing found device ids. """ + + self._update_info() + return [client['mac'] for client in self.last_results] + + def get_device_name(self, device): + """ Returns the name of the given device + or None if we don't know. """ + if not self.last_results: + return None + for client in self.last_results: + if client['mac'] == device: + return client['host'] + return None + + @Throttle(MIN_TIME_BETWEEN_SCANS) + def _update_info(self): + """ Ensures the information from the THOMSON router is up to date. + Returns boolean if scanning successful. """ + if not self.success_init: + return False + + with self.lock: + _LOGGER.info("Checking ARP") + data = self.get_thomson_data() + if not data: + return False + + # flag C stands for CONNECTED + active_clients = [client for client in data.values() if + client['status'].find('C') != -1] + self.last_results = active_clients + return True + + def get_thomson_data(self): + """ Retrieve data from THOMSON and return parsed result. """ + try: + telnet = telnetlib.Telnet(self.host) + telnet.read_until(b'Username : ') + telnet.write((self.username + '\r\n').encode('ascii')) + telnet.read_until(b'Password : ') + telnet.write((self.password + '\r\n').encode('ascii')) + telnet.read_until(b'=>') + telnet.write(('hostmgr list\r\n').encode('ascii')) + devices_result = telnet.read_until(b'=>').split(b'\r\n') + telnet.write('exit\r\n'.encode('ascii')) + except EOFError: + _LOGGER.exception("Unexpected response from router") + return + except ConnectionRefusedError: + _LOGGER.exception("Connection refused by router," + + " is telnet enabled?") + return + + devices = {} + for device in devices_result: + match = _DEVICES_REGEX.search(device.decode('utf-8')) + if match: + devices[match.group('ip')] = { + 'ip': match.group('ip'), + 'mac': match.group('mac').upper(), + 'host': match.group('host'), + 'status': match.group('status') + } + return devices From 1311e00e901c7c651ac3c2cde9ebd4a12ffe0e1e Mon Sep 17 00:00:00 2001 From: sfam Date: Fri, 28 Aug 2015 00:03:05 +0100 Subject: [PATCH 002/190] Initial support for THOMSON routers --- .coveragerc | 1 + 1 file changed, 1 insertion(+) diff --git a/.coveragerc b/.coveragerc index 63763cb9231..28a8fd310ef 100644 --- a/.coveragerc +++ b/.coveragerc @@ -36,6 +36,7 @@ omit = homeassistant/components/device_tracker/luci.py homeassistant/components/device_tracker/netgear.py homeassistant/components/device_tracker/nmap_tracker.py + homeassistant/components/device_tracker/thomson.py homeassistant/components/device_tracker/tomato.py homeassistant/components/device_tracker/tplink.py homeassistant/components/discovery.py From 4ef4aa2095db1a361d2d6070cf57aa20522ae9ae Mon Sep 17 00:00:00 2001 From: sfam Date: Fri, 28 Aug 2015 00:09:24 +0100 Subject: [PATCH 003/190] fix pylint warnings --- homeassistant/components/device_tracker/thomson.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/device_tracker/thomson.py b/homeassistant/components/device_tracker/thomson.py index a1ed9ff5f4b..ffe1a7f64c2 100644 --- a/homeassistant/components/device_tracker/thomson.py +++ b/homeassistant/components/device_tracker/thomson.py @@ -50,12 +50,13 @@ _LOGGER = logging.getLogger(__name__) _DEVICES_REGEX = re.compile( r'(?P(([0-9a-f]{2}[:-]){5}([0-9a-f]{2})))\s' + r'(?P([0-9]{1,3}[\.]){3}[0-9]{1,3})\s+' + - r'(?P([^\s]+))\s+' + - r'(?P([^\s]+))\s+' + - r'(?P([^\s]+))\s+' + - r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + + r'(?P([^\s]+))\s+' + r'(?P([^\s]+))') + # pylint: disable=unused-argument def get_scanner(hass, config): """ Validates config and returns a THOMSON scanner. """ @@ -95,7 +96,7 @@ class ThomsonDeviceScanner(object): return [client['mac'] for client in self.last_results] def get_device_name(self, device): - """ Returns the name of the given device + """ Returns the name of the given device or None if we don't know. """ if not self.last_results: return None @@ -116,7 +117,7 @@ class ThomsonDeviceScanner(object): data = self.get_thomson_data() if not data: return False - + # flag C stands for CONNECTED active_clients = [client for client in data.values() if client['status'].find('C') != -1] From 71e60dcfe9c738cda6ebe9d80309e855a2a0defa Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Thu, 27 Aug 2015 22:41:12 -0400 Subject: [PATCH 004/190] Fixed Issue #280 --- scripts/homeassistant.daemon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/homeassistant.daemon b/scripts/homeassistant.daemon index bef4cd90f4a..4dd6b37a9c5 100755 --- a/scripts/homeassistant.daemon +++ b/scripts/homeassistant.daemon @@ -79,7 +79,7 @@ case "$1" in uninstall) uninstall ;; - retart) + restart) stop start ;; From 76a8bd396906e425a9cbc27c35768ff45a0f1e6c Mon Sep 17 00:00:00 2001 From: MakeMeASandwich Date: Fri, 28 Aug 2015 14:42:41 +0200 Subject: [PATCH 005/190] Add support for Adafruit temperature/humidity sensors --- .coveragerc | 1 + homeassistant/components/sensor/dht.py | 160 +++++++++++++++++++++++++ requirements.txt | 3 + 3 files changed, 164 insertions(+) create mode 100644 homeassistant/components/sensor/dht.py diff --git a/.coveragerc b/.coveragerc index 63763cb9231..54c1b234351 100644 --- a/.coveragerc +++ b/.coveragerc @@ -57,6 +57,7 @@ omit = homeassistant/components/notify/syslog.py homeassistant/components/notify/xmpp.py homeassistant/components/sensor/bitcoin.py + homeassistant/components/sensor/dht.py homeassistant/components/sensor/efergy.py homeassistant/components/sensor/forecast.py homeassistant/components/sensor/mysensors.py diff --git a/homeassistant/components/sensor/dht.py b/homeassistant/components/sensor/dht.py new file mode 100644 index 00000000000..1334bdc59b7 --- /dev/null +++ b/homeassistant/components/sensor/dht.py @@ -0,0 +1,160 @@ +""" +homeassistant.components.sensor.dht +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Adafruit DHT temperature and humidity sensor. +As this requires access to the GPIO, you will need to run home-assistant +as root (FIXME). + +Configuration: + +To use the Adafruit DHT sensor you will need to +add something like the following to your config/configuration.yaml: + +sensor: + platform: dht + sensor: DHT22 + pin: 23 + monitored_conditions: + - temperature + - humidity + +Variables: + +sensor +*Required +The sensor type, DHT11, DHT22 or AM2302 + +pin +*Required +The pin the sensor is connected to, something like +'P8_11' for Beaglebone, '23' for Raspberry Pi + +monitored_conditions +*Optional +Conditions to monitor. Available conditions are temperature and humidity. +""" +import logging +from datetime import timedelta + +from homeassistant.util import Throttle +from homeassistant.const import TEMP_FAHRENHEIT +from homeassistant.helpers.entity import Entity + +# TODO: update this requirement to upstream as soon as it supports python3 +REQUIREMENTS = ['git+git://github.com/mala-zaba/Adafruit_Python_DHT'] +_LOGGER = logging.getLogger(__name__) +SENSOR_TYPES = { + 'temperature': ['Temperature', ''], + 'humidity': ['Humidity', '%'] +} +# Return cached results if last scan was less then this time ago +# DHT11 is able to deliver data once per second, DHT22 once every two +MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=30) + + +def setup_platform(hass, config, add_devices, discovery_info=None): + """ Get the DHT sensor. """ + + try: + import Adafruit_DHT + + except ImportError: + _LOGGER.exception( + "Unable to import Adafruit_DHT. " + "Did you maybe not install the 'Adafruit_DHT' package?") + + return False + + SENSOR_TYPES['temperature'][1] = hass.config.temperature_unit + unit = hass.config.temperature_unit + available_sensors = { + "DHT11": Adafruit_DHT.DHT11, + "DHT22": Adafruit_DHT.DHT22, + "AM2302": Adafruit_DHT.AM2302 + } + sensor = available_sensors[config['sensor']] + + pin = config['pin'] + + if not sensor or not pin: + _LOGGER.error( + "Config error " + "Please check your settings for DHT, sensor not supported.") + return None + + data = DHTClient(Adafruit_DHT, sensor, pin) + dev = [] + try: + for variable in config['monitored_conditions']: + if variable not in SENSOR_TYPES: + _LOGGER.error('Sensor type: "%s" does not exist', variable) + else: + dev.append(DHTSensor(data, variable, unit)) + except KeyError: + pass + + add_devices(dev) + + +# pylint: disable=too-few-public-methods +class DHTSensor(Entity): + + """ Implements an DHT sensor. """ + + def __init__(self, dht_client, sensor_type, temp_unit): + self.client_name = 'DHT sensor' + self._name = SENSOR_TYPES[sensor_type][0] + self.dht_client = dht_client + self.temp_unit = temp_unit + self.type = sensor_type + self._state = None + self._unit_of_measurement = SENSOR_TYPES[sensor_type][1] + self.update() + + @property + def name(self): + return '{} {}'.format(self.client_name, self._name) + + @property + def state(self): + """ Returns the state of the device. """ + return self._state + + @property + def unit_of_measurement(self): + """ Unit of measurement of this entity, if any. """ + return self._unit_of_measurement + + def update(self): + """ Gets the latest data from the DHT and updates the states. """ + + self.dht_client.update() + data = self.dht_client.data + + if self.type == 'temperature': + self._state = round(data['temperature'], 1) + if self.temp_unit == TEMP_FAHRENHEIT: + self._state = round(data['temperature'] * 1.8 + 32, 1) + elif self.type == 'humidity': + self._state = round(data['humidity'], 1) + + +class DHTClient(object): + + """ Gets the latest data from the DHT sensor. """ + + def __init__(self, adafruit_dht, sensor, pin): + self.adafruit_dht = adafruit_dht + self.sensor = sensor + self.pin = pin + self.data = dict() + + @Throttle(MIN_TIME_BETWEEN_UPDATES) + def update(self): + """ Gets the latest data the DHT sensor. """ + humidity, temperature = self.adafruit_dht.read_retry(self.sensor, + self.pin) + if temperature: + self.data['temperature'] = temperature + if humidity: + self.data['humidity'] = humidity diff --git a/requirements.txt b/requirements.txt index d27815e13cd..394d038de13 100644 --- a/requirements.txt +++ b/requirements.txt @@ -105,6 +105,9 @@ https://github.com/rkabadi/pyedimax/archive/master.zip # RPI-GPIO platform (*.rpi_gpio) RPi.GPIO >=0.5.11 +# Adafruit temperature/humidity sensor +git+git://github.com/mala-zaba/Adafruit_Python_DHT + # PAHO MQTT Binding (mqtt) paho-mqtt>=1.1 From 3f4d5eae1c224c382e0d1bad262139de570a4d1a Mon Sep 17 00:00:00 2001 From: MakeMeASandwich Date: Fri, 28 Aug 2015 18:14:13 +0200 Subject: [PATCH 006/190] work around build failures also on non-RPi/BB-machines --- homeassistant/components/sensor/dht.py | 7 +++++-- requirements.txt | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sensor/dht.py b/homeassistant/components/sensor/dht.py index 1334bdc59b7..c7df4b4a8d3 100644 --- a/homeassistant/components/sensor/dht.py +++ b/homeassistant/components/sensor/dht.py @@ -2,8 +2,11 @@ homeassistant.components.sensor.dht ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Adafruit DHT temperature and humidity sensor. +You need a Python3 compatible version of the Adafruit_Python_DHT library +(e.g. https://github.com/mala-zaba/Adafruit_Python_DHT, +also see requirements.txt). As this requires access to the GPIO, you will need to run home-assistant -as root (FIXME). +as root. Configuration: @@ -40,7 +43,7 @@ from homeassistant.util import Throttle from homeassistant.const import TEMP_FAHRENHEIT from homeassistant.helpers.entity import Entity -# TODO: update this requirement to upstream as soon as it supports python3 +# update this requirement to upstream as soon as it supports python3 REQUIREMENTS = ['git+git://github.com/mala-zaba/Adafruit_Python_DHT'] _LOGGER = logging.getLogger(__name__) SENSOR_TYPES = { diff --git a/requirements.txt b/requirements.txt index 394d038de13..f851f70e86f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -106,7 +106,8 @@ https://github.com/rkabadi/pyedimax/archive/master.zip RPi.GPIO >=0.5.11 # Adafruit temperature/humidity sensor -git+git://github.com/mala-zaba/Adafruit_Python_DHT +# uncomment on a Raspberry Pi / Beaglebone +#git+git://github.com/mala-zaba/Adafruit_Python_DHT # PAHO MQTT Binding (mqtt) paho-mqtt>=1.1 From dfae1a44a632ecdf13994208d29beb611d8ada90 Mon Sep 17 00:00:00 2001 From: pavoni Date: Fri, 28 Aug 2015 23:11:55 +0100 Subject: [PATCH 007/190] Add standby state to WeMo Insight Switch, and add WeMo Maker --- homeassistant/components/switch/__init__.py | 8 ++--- homeassistant/components/switch/wemo.py | 34 ++++++++++++++++++++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/switch/__init__.py b/homeassistant/components/switch/__init__.py index b141c36f7b5..60411b2815e 100644 --- a/homeassistant/components/switch/__init__.py +++ b/homeassistant/components/switch/__init__.py @@ -24,6 +24,8 @@ ENTITY_ID_FORMAT = DOMAIN + '.{}' ATTR_TODAY_MWH = "today_mwh" ATTR_CURRENT_POWER_MWH = "current_power_mwh" +ATTR_STANDBY_STATE = "standby_state" +ATTR_SENSOR_STATE = "sensor_state" MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) @@ -37,6 +39,8 @@ DISCOVERY_PLATFORMS = { PROP_TO_ATTR = { 'current_power_mwh': ATTR_CURRENT_POWER_MWH, 'today_power_mw': ATTR_TODAY_MWH, + 'standby_state': ATTR_STANDBY_STATE, + 'sensor_state': ATTR_SENSOR_STATE } _LOGGER = logging.getLogger(__name__) @@ -45,21 +49,18 @@ _LOGGER = logging.getLogger(__name__) def is_on(hass, entity_id=None): """ Returns if the switch is on based on the statemachine. """ entity_id = entity_id or ENTITY_ID_ALL_SWITCHES - return hass.states.is_state(entity_id, STATE_ON) def turn_on(hass, entity_id=None): """ Turns all or specified switch on. """ data = {ATTR_ENTITY_ID: entity_id} if entity_id else None - hass.services.call(DOMAIN, SERVICE_TURN_ON, data) def turn_off(hass, entity_id=None): """ Turns all or specified switch off. """ data = {ATTR_ENTITY_ID: entity_id} if entity_id else None - hass.services.call(DOMAIN, SERVICE_TURN_OFF, data) @@ -84,7 +85,6 @@ def setup(hass, config): switch.update_ha_state(True) hass.services.register(DOMAIN, SERVICE_TURN_OFF, handle_switch_service) - hass.services.register(DOMAIN, SERVICE_TURN_ON, handle_switch_service) return True diff --git a/homeassistant/components/switch/wemo.py b/homeassistant/components/switch/wemo.py index 33f5f03799b..f6fb0c266fe 100644 --- a/homeassistant/components/switch/wemo.py +++ b/homeassistant/components/switch/wemo.py @@ -37,6 +37,7 @@ class WemoSwitch(SwitchDevice): def __init__(self, wemo): self.wemo = wemo self.insight_params = None + self.maker_params = None @property def unique_id(self): @@ -60,6 +61,34 @@ class WemoSwitch(SwitchDevice): if self.insight_params: return self.insight_params['todaymw'] + @property + def standby_state(self): + """ Is the device on - or in standby. """ + if self.insight_params: + return self.insight_params['standby_state'] + + @property + def sensor_state(self): + """ Is the sensor on or off. """ + if self.maker_params and self.has_sensor: + # Note a state of 1 matches the WeMo app 'not triggered'! + if self.maker_params['sensorstate']: + return 'off' + else: + return 'on' + + @property + def switch_mode(self): + """ Is the switch configured as toggle(0) or momentary (1). """ + if self.maker_params: + return self.maker_params['switchmode'] + + @property + def has_sensor(self): + """ Is the sensor present? """ + if self.maker_params: + return self.maker_params['hassensor'] + @property def is_on(self): """ True if switch is on. """ @@ -76,5 +105,8 @@ class WemoSwitch(SwitchDevice): def update(self): """ Update WeMo state. """ self.wemo.get_state(True) - if self.wemo.model.startswith('Belkin Insight'): + if self.wemo.model_name == 'Insight': self.insight_params = self.wemo.insight_params + self.insight_params['standby_state'] = self.wemo.get_standby_state + elif self.wemo.model_name == 'Maker': + self.maker_params = self.wemo.maker_params From 2a0d459722a0f3e112ff9f9c384920d0d53da330 Mon Sep 17 00:00:00 2001 From: pavoni Date: Sat, 29 Aug 2015 00:27:28 +0100 Subject: [PATCH 008/190] Fix blank line regression --- homeassistant/components/switch/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/homeassistant/components/switch/__init__.py b/homeassistant/components/switch/__init__.py index 60411b2815e..4f83b8aa24f 100644 --- a/homeassistant/components/switch/__init__.py +++ b/homeassistant/components/switch/__init__.py @@ -49,18 +49,21 @@ _LOGGER = logging.getLogger(__name__) def is_on(hass, entity_id=None): """ Returns if the switch is on based on the statemachine. """ entity_id = entity_id or ENTITY_ID_ALL_SWITCHES + return hass.states.is_state(entity_id, STATE_ON) def turn_on(hass, entity_id=None): """ Turns all or specified switch on. """ data = {ATTR_ENTITY_ID: entity_id} if entity_id else None + hass.services.call(DOMAIN, SERVICE_TURN_ON, data) def turn_off(hass, entity_id=None): """ Turns all or specified switch off. """ data = {ATTR_ENTITY_ID: entity_id} if entity_id else None + hass.services.call(DOMAIN, SERVICE_TURN_OFF, data) @@ -85,6 +88,7 @@ def setup(hass, config): switch.update_ha_state(True) hass.services.register(DOMAIN, SERVICE_TURN_OFF, handle_switch_service) + hass.services.register(DOMAIN, SERVICE_TURN_ON, handle_switch_service) return True From 936e20bdf7a82bd364edf5617e5488312aaaab06 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Fri, 28 Aug 2015 20:17:07 -0400 Subject: [PATCH 009/190] Cleaned up some entities. 1) Modified device tracker entities to allow for attributes to be overwritten with configuration data. 2) Modified ISY lights to hide brightness when off. --- homeassistant/components/device_tracker/__init__.py | 8 ++++++-- homeassistant/components/isy994.py | 5 +++++ homeassistant/components/light/isy994.py | 6 ++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index e529327f505..099c23973f0 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -12,6 +12,7 @@ from datetime import timedelta from homeassistant.loader import get_component from homeassistant.helpers import validate_config +from homeassistant.helpers.entity import _OVERWRITE import homeassistant.util as util import homeassistant.util.dt as dt_util @@ -162,9 +163,12 @@ class DeviceTracker(object): state = STATE_HOME if is_home else STATE_NOT_HOME + # overwrite properties that have been set in the config file + attr = dict(dev_info['state_attr']) + attr.update(_OVERWRITE.get(dev_info['entity_id'], {})) + self.hass.states.set( - dev_info['entity_id'], state, - dev_info['state_attr']) + dev_info['entity_id'], state, attr) def update_devices(self, now): """ Update device states based on the found devices. """ diff --git a/homeassistant/components/isy994.py b/homeassistant/components/isy994.py index 5cdfbe1b277..ad165d64d6c 100644 --- a/homeassistant/components/isy994.py +++ b/homeassistant/components/isy994.py @@ -156,6 +156,11 @@ class ISYDeviceABC(ToggleEntity): attr = {ATTR_FRIENDLY_NAME: self.name} for name, prop in self._attrs.items(): attr[name] = getattr(self, prop) + attr = self._attr_filter(attr) + return attr + + def _attr_filter(self, attr): + """ Placeholder for attribute filters. """ return attr @property diff --git a/homeassistant/components/light/isy994.py b/homeassistant/components/light/isy994.py index b231fe3e441..5b62120ee98 100644 --- a/homeassistant/components/light/isy994.py +++ b/homeassistant/components/light/isy994.py @@ -38,3 +38,9 @@ class ISYLightDevice(ISYDeviceABC): _attrs = {ATTR_BRIGHTNESS: 'value'} _onattrs = [ATTR_BRIGHTNESS] _states = [STATE_ON, STATE_OFF] + + def _attr_filter(self, attr): + """ Filter brightness out of entity while off. """ + if ATTR_BRIGHTNESS in attr and not self.is_on: + del attr[ATTR_BRIGHTNESS] + return attr From c49cdf7ffd966160d189973c973ac77b9090eb2d Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Fri, 28 Aug 2015 20:18:54 -0400 Subject: [PATCH 010/190] Pylint fixes to ISY component. --- homeassistant/components/isy994.py | 1 + 1 file changed, 1 insertion(+) diff --git a/homeassistant/components/isy994.py b/homeassistant/components/isy994.py index ad165d64d6c..f5998faeaf8 100644 --- a/homeassistant/components/isy994.py +++ b/homeassistant/components/isy994.py @@ -161,6 +161,7 @@ class ISYDeviceABC(ToggleEntity): def _attr_filter(self, attr): """ Placeholder for attribute filters. """ + # pylint: disable=no-self-use return attr @property From 0a2652630f6f2e6e86889283c2614f10a2c08308 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Aug 2015 11:50:43 -0700 Subject: [PATCH 011/190] Frontend: Style loading page like login form --- .../components/frontend/index.html.template | 48 +++++++++++++----- .../components/frontend/www_static/splash.png | Bin 0 -> 11636 bytes 2 files changed, 35 insertions(+), 13 deletions(-) create mode 100644 homeassistant/components/frontend/www_static/splash.png diff --git a/homeassistant/components/frontend/index.html.template b/homeassistant/components/frontend/index.html.template index f84c8653b31..556fe4e67c8 100644 --- a/homeassistant/components/frontend/index.html.template +++ b/homeassistant/components/frontend/index.html.template @@ -5,24 +5,46 @@ Home Assistant - - - - - - + + + - - -

Initializing Home Assistant

- - - + + + +
+ +

Initializing

+
+ + + diff --git a/homeassistant/components/frontend/www_static/splash.png b/homeassistant/components/frontend/www_static/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..3d5411ecb4b2612011c33b5dcbf593864c775857 GIT binary patch literal 11636 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 literal 0 HcmV?d00001 From c3a9db0a3747181a186b1fe6d514d7d0e3e1a07d Mon Sep 17 00:00:00 2001 From: pavoni Date: Sat, 29 Aug 2015 20:32:46 +0100 Subject: [PATCH 012/190] Add defult methods to base class for switch_state and sensor_state --- homeassistant/components/switch/__init__.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/homeassistant/components/switch/__init__.py b/homeassistant/components/switch/__init__.py index 4f83b8aa24f..f245406fb28 100644 --- a/homeassistant/components/switch/__init__.py +++ b/homeassistant/components/switch/__init__.py @@ -108,6 +108,16 @@ class SwitchDevice(ToggleEntity): """ Today total power usage in mw. """ return None + @property + def standby_state(self): + """ Is the device on - or in standby. """ + return None + + @property + def sensor_state(self): + """ Is the sensor on or off. """ + return None + @property def device_state_attributes(self): """ Returns device specific state attributes. """ From 3839c3d0efc0d4a6d3b056e0109fdb6b01f5ea18 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 18:59:05 -0400 Subject: [PATCH 013/190] Created setup.py for standard installs. --- .../frontend/www_static/__init__.py | 0 .../frontend/www_static/images/__init__.py | 0 homeassistant/const.py | 3 ++ pylintrc | 2 +- setup.py | 48 +++++++++++++++++++ 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 homeassistant/components/frontend/www_static/__init__.py create mode 100644 homeassistant/components/frontend/www_static/images/__init__.py create mode 100755 setup.py diff --git a/homeassistant/components/frontend/www_static/__init__.py b/homeassistant/components/frontend/www_static/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/homeassistant/components/frontend/www_static/images/__init__.py b/homeassistant/components/frontend/www_static/images/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/homeassistant/const.py b/homeassistant/const.py index 7d58dbb01d2..a3b9cc8d396 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -1,4 +1,7 @@ """ Constants used by Home Assistant components. """ + +__version__ = "0.7.0" + # Can be used to specify a catch all when registering state or event listeners. MATCH_ALL = '*' diff --git a/pylintrc b/pylintrc index 54b1f80cdc5..888fb50ee0f 100644 --- a/pylintrc +++ b/pylintrc @@ -1,5 +1,5 @@ [MASTER] -ignore=external +ignore=external,setup.py reports=no # Reasons disabled: diff --git a/setup.py b/setup.py new file mode 100755 index 00000000000..fb6f88ac115 --- /dev/null +++ b/setup.py @@ -0,0 +1,48 @@ +import os +import re +from setuptools import setup, find_packages + +PACKAGE_NAME = 'homeassistant' +HERE = os.path.abspath(os.path.dirname(__file__)) +with open(os.path.join(HERE, PACKAGE_NAME, 'const.py')) as fp: + VERSION = re.search("__version__ = ['\"]([^']+)['\"]\n", fp.read()).group(1) + +PACKAGES = find_packages() + \ + ['homeassistant.external', 'homeassistant.external.noop', + 'homeassistant.external.nzbclients', 'homeassistant.external.vera'] + +PACKAGE_DATA = \ + {'homeassistant.components.frontend': ['index.html.template'], + 'homeassistant.components.frontend.www_static': ['*.*'], + 'homeassistant.components.frontend.www_static.images': ['*.*']} + +setup( + name=PACKAGE_NAME, + version=VERSION, + license='MIT License', + url='https://home-assistant.io/', + download_url='https://github.com/automicus/pyisy/tarball/0.7.0', + author='Paulus Schoutsen', + author_email='paulus@paulusschoutsen.nl', + description='Open-source home automation platform running on Python 3.', + packages=PACKAGES, + include_package_data=True, + package_data=PACKAGE_DATA, + zip_safe=False, + platforms='any', + install_requires=['requests==2.7.0', 'pyyaml==3.11', 'pytz==2015.4', + 'netdisco==0.3', 'astral==0.8.1'], + keywords=['home', 'automation'], + entry_points={ + 'console_scripts': [ + 'hass = homeassistant.__main__:main' + ] + }, + classifiers=[ + 'Intended Audience :: End Users/Desktop', + 'License :: OSI Approved :: MIT License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3.4', + 'Topic :: Home Automation' + ] +) From 18e32165a49f2eb354b07167345668163d537344 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 20:06:54 -0400 Subject: [PATCH 014/190] Cleaned up main file to remove dependency management. --- homeassistant/__main__.py | 91 +++++++++++---------------------------- setup.py | 3 +- 2 files changed, 25 insertions(+), 69 deletions(-) diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 2514b35587f..40cde95751f 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -4,12 +4,14 @@ from __future__ import print_function import sys import os import argparse -import subprocess import importlib -DEPENDENCIES = ['requests>=2.0', 'pyyaml>=3.11', 'pytz>=2015.2'] -IS_VIRTUAL = (getattr(sys, 'base_prefix', sys.prefix) != sys.prefix or - hasattr(sys, 'real_prefix')) +from homeassistant import bootstrap +import homeassistant.config as config_util +from homeassistant.components import frontend, demo + +USER_DATA_DIR = os.getenv('APPDATA') if os.name == "nt" \ + else os.path.expanduser('~') def validate_python(): @@ -31,54 +33,6 @@ def ensure_pip(): sys.exit() -# Copy of homeassistant.util.package because we can't import yet -def install_package(package): - """Install a package on PyPi. Accepts pip compatible package strings. - Return boolean if install successfull.""" - args = [sys.executable, '-m', 'pip', 'install', '--quiet', package] - if not IS_VIRTUAL: - args.append('--user') - try: - return 0 == subprocess.call(args) - except subprocess.SubprocessError: - return False - - -def validate_dependencies(): - """ Validate all dependencies that HA uses. """ - ensure_pip() - - print("Validating dependencies...") - import_fail = False - - for requirement in DEPENDENCIES: - if not install_package(requirement): - import_fail = True - print('Fatal Error: Unable to install dependency', requirement) - - if import_fail: - print(("Install dependencies by running: " - "python3 -m pip install -r requirements.txt")) - sys.exit() - - -def ensure_path_and_load_bootstrap(): - """ Ensure sys load path is correct and load Home Assistant bootstrap. """ - try: - from homeassistant import bootstrap - - except ImportError: - # This is to add support to load Home Assistant using - # `python3 homeassistant` instead of `python3 -m homeassistant` - - # Insert the parent directory of this file into the module search path - sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) - - from homeassistant import bootstrap - - return bootstrap - - def validate_git_submodules(): """ Validate the git submodules are cloned. """ try: @@ -94,13 +48,25 @@ def ensure_config_path(config_dir): """ Gets the path to the configuration file. Creates one if it not exists. """ + lib_dir = os.path.join(config_dir, 'lib') + # Test if configuration directory exists if not os.path.isdir(config_dir): - print(('Fatal Error: Unable to find specified configuration ' - 'directory {} ').format(config_dir)) - sys.exit() + try: + os.mkdir(config_dir) + except OSError: + print(('Fatal Error: Unable to create specified configuration ' + 'directory {} ').format(config_dir)) + sys.exit() - import homeassistant.config as config_util + # Test if library directory exists + if not os.path.isdir(lib_dir): + try: + os.mkdir(lib_dir) + except OSError: + print(('Fatal Error: Unable to create library ' + 'directory {} ').format(lib_dir)) + sys.exit() config_path = config_util.ensure_config_exists(config_dir) @@ -117,7 +83,7 @@ def get_arguments(): parser.add_argument( '-c', '--config', metavar='path_to_config_dir', - default="config", + default=os.path.join(USER_DATA_DIR, '.homeassistant'), help="Directory that contains the Home Assistant configuration") parser.add_argument( '--demo-mode', @@ -134,12 +100,6 @@ def get_arguments(): def main(): """ Starts Home Assistant. """ validate_python() - validate_dependencies() - - # Windows needs this to pick up new modules - importlib.invalidate_caches() - - bootstrap = ensure_path_and_load_bootstrap() validate_git_submodules() @@ -149,8 +109,6 @@ def main(): config_path = ensure_config_path(config_dir) if args.demo_mode: - from homeassistant.components import frontend, demo - hass = bootstrap.from_config_dict({ frontend.DOMAIN: {}, demo.DOMAIN: {} @@ -159,11 +117,10 @@ def main(): hass = bootstrap.from_config_file(config_path) if args.open_ui: - from homeassistant.const import EVENT_HOMEASSISTANT_START - def open_browser(event): """ Open the webinterface in a browser. """ if hass.config.api is not None: + from homeassistant.const import EVENT_HOMEASSISTANT_START import webbrowser webbrowser.open(hass.config.api.base_url) diff --git a/setup.py b/setup.py index fb6f88ac115..f922459e509 100755 --- a/setup.py +++ b/setup.py @@ -30,8 +30,7 @@ setup( package_data=PACKAGE_DATA, zip_safe=False, platforms='any', - install_requires=['requests==2.7.0', 'pyyaml==3.11', 'pytz==2015.4', - 'netdisco==0.3', 'astral==0.8.1'], + install_requires=['requests==2.7.0', 'pyyaml==3.11', 'pytz==2015.4'], keywords=['home', 'automation'], entry_points={ 'console_scripts': [ From 6fdf9b8d7cf53f667c11f94c1b80e4a6321bb987 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 21:11:24 -0400 Subject: [PATCH 015/190] Many changes to cleanup config directory and lib installations. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cleaned up default config directory determination. Made bootstrap creators for HA always set config directory. Made bootstrap creators set the local library in the Python Path. Moved all exceptions to their own file to make imports easier. Moved default configuration directory be in the users’ profile. Moved pip installs to be done to a lib folder in the config directory. Reduced requirements.txt to only the barebones reqs. --- homeassistant/__main__.py | 7 +- homeassistant/bootstrap.py | 14 ++-- homeassistant/config.py | 10 ++- homeassistant/core.py | 25 +++---- homeassistant/exceptions.py | 15 +++++ homeassistant/util/package.py | 10 +-- requirements.txt | 122 +--------------------------------- 7 files changed, 53 insertions(+), 150 deletions(-) create mode 100644 homeassistant/exceptions.py diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 40cde95751f..59c2cd11abb 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -10,9 +10,6 @@ from homeassistant import bootstrap import homeassistant.config as config_util from homeassistant.components import frontend, demo -USER_DATA_DIR = os.getenv('APPDATA') if os.name == "nt" \ - else os.path.expanduser('~') - def validate_python(): """ Validate we're running the right Python version. """ @@ -83,7 +80,7 @@ def get_arguments(): parser.add_argument( '-c', '--config', metavar='path_to_config_dir', - default=os.path.join(USER_DATA_DIR, '.homeassistant'), + default=config_util.get_default_config_dir(), help="Directory that contains the Home Assistant configuration") parser.add_argument( '--demo-mode', @@ -112,7 +109,7 @@ def main(): hass = bootstrap.from_config_dict({ frontend.DOMAIN: {}, demo.DOMAIN: {} - }) + }, config_dir=config_dir) else: hass = bootstrap.from_config_file(config_path) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index e5f6d2b9672..e4cd307019e 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -61,13 +61,13 @@ def setup_component(hass, domain, config=None): return True -def _handle_requirements(component, name): +def _handle_requirements(hass, component, name): """ Installs requirements for component. """ if not hasattr(component, 'REQUIREMENTS'): return True for req in component.REQUIREMENTS: - if not pkg_util.install_package(req): + if not pkg_util.install_package(req, target=hass.config.path('lib')): _LOGGER.error('Not initializing %s because could not install ' 'dependency %s', name, req) return False @@ -88,7 +88,7 @@ def _setup_component(hass, domain, config): domain, ", ".join(missing_deps)) return False - if not _handle_requirements(component, domain): + if not _handle_requirements(hass, component, domain): return False try: @@ -138,14 +138,14 @@ def prepare_setup_platform(hass, config, domain, platform_name): component) return None - if not _handle_requirements(platform, platform_path): + if not _handle_requirements(hass, platform, platform_path): return None return platform # pylint: disable=too-many-branches, too-many-statements -def from_config_dict(config, hass=None): +def from_config_dict(config, hass=None, config_dir=None): """ Tries to configure Home Assistant from a config dict. @@ -153,6 +153,9 @@ def from_config_dict(config, hass=None): """ if hass is None: hass = core.HomeAssistant() + if config_dir is not None: + hass.config.config_dir = os.path.abspath(config_dir) + hass.config.mount_local_path() process_ha_core_config(hass, config.get(core.DOMAIN, {})) @@ -196,6 +199,7 @@ def from_config_file(config_path, hass=None): # Set config dir to directory holding config file hass.config.config_dir = os.path.abspath(os.path.dirname(config_path)) + hass.config.mount_local_path() config_dict = config_util.load_config_file(config_path) diff --git a/homeassistant/config.py b/homeassistant/config.py index 54ad297e62a..ca2d43eeb40 100644 --- a/homeassistant/config.py +++ b/homeassistant/config.py @@ -7,7 +7,7 @@ Module to help with parsing and generating configuration files. import logging import os -from homeassistant.core import HomeAssistantError +from homeassistant.exceptions import HomeAssistantError from homeassistant.const import ( CONF_LATITUDE, CONF_LONGITUDE, CONF_TEMPERATURE_UNIT, CONF_NAME, CONF_TIME_ZONE) @@ -16,6 +16,7 @@ import homeassistant.util.location as loc_util _LOGGER = logging.getLogger(__name__) YAML_CONFIG_FILE = 'configuration.yaml' +CONFIG_DIR_NAME = '.homeassistant' DEFAULT_CONFIG = ( # Tuples (attribute, default, auto detect property, description) @@ -39,6 +40,13 @@ DEFAULT_COMPONENTS = { } +def get_default_config_dir(): + """ Put together the default configuration directory based on OS. """ + data_dir = os.getenv('APPDATA') if os.name == "nt" \ + else os.path.expanduser('~') + return os.path.join(data_dir, CONFIG_DIR_NAME) + + def ensure_config_exists(config_dir, detect_location=True): """ Ensures a config file exists in given config dir. Creating a default one if needed. diff --git a/homeassistant/core.py b/homeassistant/core.py index 76b4b38f3fc..309c9336706 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -7,6 +7,7 @@ of entities and react to changes. """ import os +import sys import time import logging import threading @@ -21,9 +22,12 @@ from homeassistant.const import ( EVENT_CALL_SERVICE, ATTR_NOW, ATTR_DOMAIN, ATTR_SERVICE, MATCH_ALL, EVENT_SERVICE_EXECUTED, ATTR_SERVICE_CALL_ID, EVENT_SERVICE_REGISTERED, TEMP_CELCIUS, TEMP_FAHRENHEIT, ATTR_FRIENDLY_NAME) +from homeassistant.exceptions import ( + HomeAssistantError, InvalidEntityFormatError, NoEntitySpecifiedError) import homeassistant.util as util import homeassistant.util.dt as date_util import homeassistant.helpers.temperature as temp_helper +from homeassistant.config import get_default_config_dir DOMAIN = "homeassistant" @@ -660,7 +664,11 @@ class Config(object): self.api = None # Directory that holds the configuration - self.config_dir = os.path.join(os.getcwd(), 'config') + self.config_dir = get_default_config_dir() + + def mount_local_path(self): + """ Add local library to Python Path """ + sys.path.insert(0, self.path('lib')) def path(self, *path): """ Returns path to the file within the config dir. """ @@ -695,21 +703,6 @@ class Config(object): } -class HomeAssistantError(Exception): - """ General Home Assistant exception occured. """ - pass - - -class InvalidEntityFormatError(HomeAssistantError): - """ When an invalid formatted entity is encountered. """ - pass - - -class NoEntitySpecifiedError(HomeAssistantError): - """ When no entity is specified. """ - pass - - def create_timer(hass, interval=TIMER_INTERVAL): """ Creates a timer. Timer will start on HOMEASSISTANT_START. """ # We want to be able to fire every time a minute starts (seconds=0). diff --git a/homeassistant/exceptions.py b/homeassistant/exceptions.py new file mode 100644 index 00000000000..4ecd22f9e43 --- /dev/null +++ b/homeassistant/exceptions.py @@ -0,0 +1,15 @@ +""" Exceptions used by Home Assistant """ + +class HomeAssistantError(Exception): + """ General Home Assistant exception occured. """ + pass + + +class InvalidEntityFormatError(HomeAssistantError): + """ When an invalid formatted entity is encountered. """ + pass + + +class NoEntitySpecifiedError(HomeAssistantError): + """ When no entity is specified. """ + pass diff --git a/homeassistant/util/package.py b/homeassistant/util/package.py index d220a5a7e61..3719fecb9ff 100644 --- a/homeassistant/util/package.py +++ b/homeassistant/util/package.py @@ -1,4 +1,5 @@ """Helpers to install PyPi packages.""" +import os import subprocess import sys @@ -8,15 +9,16 @@ from . import environment as env INSTALL_USER = not env.is_virtual() -def install_package(package, upgrade=False, user=INSTALL_USER): +def install_package(package, upgrade=False, target=None): """Install a package on PyPi. Accepts pip compatible package strings. Return boolean if install successfull.""" # Not using 'import pip; pip.main([])' because it breaks the logger - args = [sys.executable, '-m', 'pip', 'install', '--quiet', package] + args = [sys.executable, '-m', 'pip', 'install', '--quiet', + '--isolated', '-I', package] if upgrade: args.append('--upgrade') - if user: - args.append('--user') + if target: + args += ['--target', os.path.abspath(target)] try: return 0 == subprocess.call(args) except subprocess.SubprocessError: diff --git a/requirements.txt b/requirements.txt index f851f70e86f..14c276aa5be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,119 +1,3 @@ -# Required for Home Assistant core -requests>=2.0 -pyyaml>=3.11 -pytz>=2015.2 - -# Optional, needed for specific components - -# Sun (sun) -astral>=0.8.1 - -# Philips Hue library (lights.hue) -phue>=0.8 - -# Limitlessled/Easybulb/Milight library (lights.limitlessled) -ledcontroller>=1.0.7 - -# Chromecast bindings (media_player.cast) -pychromecast>=0.6.10 - -# Keyboard (keyboard) -pyuserinput>=0.1.9 - -# Tellstick bindings (*.tellstick) -tellcore-py>=1.0.4 - -# Nmap bindings (device_tracker.nmap) -python-libnmap>=0.6.3 - -# PushBullet bindings (notify.pushbullet) -pushbullet.py>=0.7.1 - -# Nest Thermostat bindings (thermostat.nest) -python-nest>=2.4.0 - -# Z-Wave (*.zwave) -pydispatcher>=2.0.5 - -# ISY994 bindings (*.isy994) -PyISY>=1.0.5 - -# PSutil (sensor.systemmonitor) -psutil>=3.0.0 - -# Pushover bindings (notify.pushover) -python-pushover>=0.2 - -# Transmission Torrent Client (*.transmission) -transmissionrpc>=0.11 - -# OpenWeatherMap Web API (sensor.openweathermap) -pyowm>=2.2.1 - -# XMPP Bindings (notify.xmpp) -sleekxmpp>=1.3.1 -dnspython3>=1.12.0 - -# Blockchain (sensor.bitcoin) -blockchain>=1.1.2 - -# MPD Bindings (media_player.mpd) -python-mpd2>=0.5.4 - -# Hikvision (switch.hikvisioncam) -hikvision>=0.4 - -# console log coloring -colorlog>=2.6.0 - -# JSON-RPC interface (media_player.kodi) -jsonrpc-requests>=0.1 - -# Forecast.io Bindings (sensor.forecast) -python-forecastio>=1.3.3 - -# Firmata Bindings (*.arduino) -PyMata==2.07a - -# Rfxtrx sensor (sensor.rfxtrx) -https://github.com/Danielhiversen/pyRFXtrx/archive/master.zip - -# Mysensors -https://github.com/theolind/pymysensors/archive/master.zip#egg=pymysensors-0.1 - -# Netgear (device_tracker.netgear) -pynetgear>=0.3 - -# Netdisco (discovery) -netdisco>=0.3 - -# Wemo (switch.wemo) -pywemo>=0.2 - -# Wink (*.wink) -https://github.com/balloob/python-wink/archive/master.zip#pywink>=0.1 - -# Slack notifier (notify.slack) -slacker>=0.6.8 - -# Temper sensors (sensor.temper) -https://github.com/rkabadi/temper-python/archive/master.zip - -# PyEdimax -https://github.com/rkabadi/pyedimax/archive/master.zip - -# RPI-GPIO platform (*.rpi_gpio) -RPi.GPIO >=0.5.11 - -# Adafruit temperature/humidity sensor -# uncomment on a Raspberry Pi / Beaglebone -#git+git://github.com/mala-zaba/Adafruit_Python_DHT - -# PAHO MQTT Binding (mqtt) -paho-mqtt>=1.1 - -# PyModbus (modbus) -https://github.com/bashwork/pymodbus/archive/python3.zip#pymodbus>=1.2.0 - -# Verisure (verisure) -https://github.com/persandstrom/python-verisure/archive/master.zip +requests==2.7.0 +pyyaml==3.11 +pytz==2015.4 From 75b3cc046dc7499757401381369188fbbf71c882 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Aug 2015 18:17:21 -0700 Subject: [PATCH 016/190] Update frontend with latest changes --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 163 +++++++++--------- .../www_static/home-assistant-polymer | 2 +- 3 files changed, 82 insertions(+), 85 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 3b00afea13b..defce54a73a 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "e9a79e5367c298e2e5201c35c9b9de8b" +VERSION = "25d26e3bbcae0f4493f787a5673a84fe" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 26c38c2a31b..82b0dba526a 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -516,51 +516,6 @@ if(n>=0){var s=e.getKey(t);return this.splice("selected",n,1),this.unlinkPaths(" left: 0; }; - } \ No newline at end of file + } \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index 1c82a536312..c3b9a55d683 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 1c82a536312e8321716ab7d80a5d17045d20d77f +Subproject commit c3b9a55d6839b933042da14d578c43f9a47499dc From 893ae15042675ef10d255bbc6e7e1554288143e8 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 21:39:50 -0400 Subject: [PATCH 017/190] Changed component REQUIREMENTS to absolute versions. --- homeassistant/components/device_tracker/netgear.py | 2 +- homeassistant/components/device_tracker/nmap_tracker.py | 2 +- homeassistant/components/discovery.py | 2 +- homeassistant/components/isy994.py | 2 +- homeassistant/components/keyboard.py | 2 +- homeassistant/components/light/hue.py | 2 +- homeassistant/components/light/limitlessled.py | 2 +- homeassistant/components/light/tellstick.py | 2 +- homeassistant/components/light/wink.py | 4 ++-- homeassistant/components/media_player/cast.py | 2 +- homeassistant/components/media_player/kodi.py | 2 +- homeassistant/components/media_player/mpd.py | 2 +- homeassistant/components/modbus.py | 4 ++-- homeassistant/components/mqtt.py | 2 +- homeassistant/components/notify/pushbullet.py | 2 +- homeassistant/components/notify/pushover.py | 2 +- homeassistant/components/notify/slack.py | 2 +- homeassistant/components/notify/xmpp.py | 2 +- homeassistant/components/sensor/bitcoin.py | 2 +- homeassistant/components/sensor/dht.py | 3 ++- homeassistant/components/sensor/forecast.py | 2 +- homeassistant/components/sensor/mysensors.py | 4 ++-- homeassistant/components/sensor/openweathermap.py | 2 +- homeassistant/components/sensor/rfxtrx.py | 4 ++-- homeassistant/components/sensor/rpi_gpio.py | 2 +- homeassistant/components/sensor/systemmonitor.py | 2 +- homeassistant/components/sensor/tellstick.py | 2 +- homeassistant/components/sensor/temper.py | 3 ++- homeassistant/components/sensor/transmission.py | 2 +- homeassistant/components/sensor/wink.py | 4 ++-- homeassistant/components/sun.py | 2 +- homeassistant/components/switch/edimax.py | 3 ++- homeassistant/components/switch/hikvisioncam.py | 2 +- homeassistant/components/switch/rpi_gpio.py | 2 +- homeassistant/components/switch/tellstick.py | 2 +- homeassistant/components/switch/transmission.py | 2 +- homeassistant/components/switch/wemo.py | 2 +- homeassistant/components/switch/wink.py | 4 ++-- homeassistant/components/thermostat/nest.py | 2 +- homeassistant/components/verisure.py | 3 ++- homeassistant/components/wink.py | 4 ++-- homeassistant/components/zwave.py | 2 +- 42 files changed, 53 insertions(+), 49 deletions(-) diff --git a/homeassistant/components/device_tracker/netgear.py b/homeassistant/components/device_tracker/netgear.py index c04a1d07b1f..346fbb37d37 100644 --- a/homeassistant/components/device_tracker/netgear.py +++ b/homeassistant/components/device_tracker/netgear.py @@ -42,7 +42,7 @@ from homeassistant.components.device_tracker import DOMAIN MIN_TIME_BETWEEN_SCANS = timedelta(seconds=5) _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['pynetgear>=0.3'] +REQUIREMENTS = ['pynetgear==0.3'] def get_scanner(hass, config): diff --git a/homeassistant/components/device_tracker/nmap_tracker.py b/homeassistant/components/device_tracker/nmap_tracker.py index 00fc8fd12b4..dc12a53f539 100644 --- a/homeassistant/components/device_tracker/nmap_tracker.py +++ b/homeassistant/components/device_tracker/nmap_tracker.py @@ -43,7 +43,7 @@ _LOGGER = logging.getLogger(__name__) # interval in minutes to exclude devices from a scan while they are home CONF_HOME_INTERVAL = "home_interval" -REQUIREMENTS = ['python-libnmap>=0.6.3'] +REQUIREMENTS = ['python-libnmap==0.6.1'] def get_scanner(hass, config): diff --git a/homeassistant/components/discovery.py b/homeassistant/components/discovery.py index 4ad0299cc8f..c21249fbc60 100644 --- a/homeassistant/components/discovery.py +++ b/homeassistant/components/discovery.py @@ -19,7 +19,7 @@ from homeassistant.const import ( DOMAIN = "discovery" DEPENDENCIES = [] -REQUIREMENTS = ['netdisco>=0.3'] +REQUIREMENTS = ['netdisco==0.3'] SCAN_INTERVAL = 300 # seconds diff --git a/homeassistant/components/isy994.py b/homeassistant/components/isy994.py index f5998faeaf8..63c7b6c4af6 100644 --- a/homeassistant/components/isy994.py +++ b/homeassistant/components/isy994.py @@ -21,7 +21,7 @@ from homeassistant.const import ( DOMAIN = "isy994" DEPENDENCIES = [] -REQUIREMENTS = ['PyISY>=1.0.5'] +REQUIREMENTS = ['PyISY==1.0.5'] DISCOVER_LIGHTS = "isy994.lights" DISCOVER_SWITCHES = "isy994.switches" DISCOVER_SENSORS = "isy994.sensors" diff --git a/homeassistant/components/keyboard.py b/homeassistant/components/keyboard.py index 5359791087e..3629fce31bf 100644 --- a/homeassistant/components/keyboard.py +++ b/homeassistant/components/keyboard.py @@ -14,7 +14,7 @@ from homeassistant.const import ( DOMAIN = "keyboard" DEPENDENCIES = [] -REQUIREMENTS = ['pyuserinput>=0.1.9'] +REQUIREMENTS = ['pyuserinput==0.1.9'] def volume_up(hass): diff --git a/homeassistant/components/light/hue.py b/homeassistant/components/light/hue.py index c3b28ec1dd6..b438d7b92b1 100644 --- a/homeassistant/components/light/hue.py +++ b/homeassistant/components/light/hue.py @@ -16,7 +16,7 @@ from homeassistant.components.light import ( ATTR_FLASH, FLASH_LONG, FLASH_SHORT, ATTR_EFFECT, EFFECT_COLORLOOP) -REQUIREMENTS = ['phue>=0.8'] +REQUIREMENTS = ['phue==0.8'] MIN_TIME_BETWEEN_SCANS = timedelta(seconds=10) MIN_TIME_BETWEEN_FORCED_SCANS = timedelta(milliseconds=100) diff --git a/homeassistant/components/light/limitlessled.py b/homeassistant/components/light/limitlessled.py index b3e0858ffe2..8fdb525d4e0 100644 --- a/homeassistant/components/light/limitlessled.py +++ b/homeassistant/components/light/limitlessled.py @@ -34,7 +34,7 @@ from homeassistant.components.light import (Light, ATTR_BRIGHTNESS, from homeassistant.util.color import color_RGB_to_xy _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['ledcontroller>=1.0.7'] +REQUIREMENTS = ['ledcontroller==1.0.7'] def setup_platform(hass, config, add_devices_callback, discovery_info=None): diff --git a/homeassistant/components/light/tellstick.py b/homeassistant/components/light/tellstick.py index 9132604b294..8068d20bb74 100644 --- a/homeassistant/components/light/tellstick.py +++ b/homeassistant/components/light/tellstick.py @@ -9,7 +9,7 @@ from homeassistant.components.light import Light, ATTR_BRIGHTNESS from homeassistant.const import ATTR_FRIENDLY_NAME import tellcore.constants as tellcore_constants -REQUIREMENTS = ['tellcore-py>=1.0.4'] +REQUIREMENTS = ['tellcore-py==1.0.4'] def setup_platform(hass, config, add_devices_callback, discovery_info=None): diff --git a/homeassistant/components/light/wink.py b/homeassistant/components/light/wink.py index e8c8eb7a224..4b5af0c3250 100644 --- a/homeassistant/components/light/wink.py +++ b/homeassistant/components/light/wink.py @@ -9,8 +9,8 @@ from homeassistant.components.light import ATTR_BRIGHTNESS from homeassistant.components.wink import WinkToggleDevice from homeassistant.const import CONF_ACCESS_TOKEN -REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/master.zip' - '#pywink>=0.1'] +REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/' + + 'c2b700e8ca866159566ecf5e644d9c297f69f257.zip'] def setup_platform(hass, config, add_devices_callback, discovery_info=None): diff --git a/homeassistant/components/media_player/cast.py b/homeassistant/components/media_player/cast.py index 5fca233013a..d19e4166c1c 100644 --- a/homeassistant/components/media_player/cast.py +++ b/homeassistant/components/media_player/cast.py @@ -19,7 +19,7 @@ from homeassistant.components.media_player import ( SUPPORT_PREVIOUS_TRACK, SUPPORT_NEXT_TRACK, MEDIA_TYPE_MUSIC, MEDIA_TYPE_TVSHOW, MEDIA_TYPE_VIDEO) -REQUIREMENTS = ['pychromecast>=0.6.10'] +REQUIREMENTS = ['pychromecast==0.6.10'] CONF_IGNORE_CEC = 'ignore_cec' CAST_SPLASH = 'https://home-assistant.io/images/cast/splash.png' SUPPORT_CAST = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ diff --git a/homeassistant/components/media_player/kodi.py b/homeassistant/components/media_player/kodi.py index 4b24f8694ed..dfc2f64a2a8 100644 --- a/homeassistant/components/media_player/kodi.py +++ b/homeassistant/components/media_player/kodi.py @@ -48,7 +48,7 @@ except ImportError: jsonrpc_requests = None _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['jsonrpc-requests>=0.1'] +REQUIREMENTS = ['jsonrpc-requests==0.1'] SUPPORT_KODI = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | SUPPORT_SEEK diff --git a/homeassistant/components/media_player/mpd.py b/homeassistant/components/media_player/mpd.py index 0239173f7cc..aca2413d3e4 100644 --- a/homeassistant/components/media_player/mpd.py +++ b/homeassistant/components/media_player/mpd.py @@ -48,7 +48,7 @@ from homeassistant.components.media_player import ( MEDIA_TYPE_MUSIC) _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['python-mpd2>=0.5.4'] +REQUIREMENTS = ['python-mpd2==0.5.4'] SUPPORT_MPD = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | SUPPORT_TURN_OFF | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK diff --git a/homeassistant/components/modbus.py b/homeassistant/components/modbus.py index 0bd3b23c2f9..e6c3f1cfcee 100644 --- a/homeassistant/components/modbus.py +++ b/homeassistant/components/modbus.py @@ -38,8 +38,8 @@ from homeassistant.const import (EVENT_HOMEASSISTANT_START, DOMAIN = "modbus" DEPENDENCIES = [] -REQUIREMENTS = ['https://github.com/bashwork/pymodbus/archive/python3.zip' - '#pymodbus>=1.2.0'] +REQUIREMENTS = ['https://github.com/bashwork/pymodbus/archive/' + + 'd7fc4f1cc975631e0a9011390e8017f64b612661.zip'] # Type of network MEDIUM = "type" diff --git a/homeassistant/components/mqtt.py b/homeassistant/components/mqtt.py index aa1a3167029..073406e9700 100644 --- a/homeassistant/components/mqtt.py +++ b/homeassistant/components/mqtt.py @@ -66,7 +66,7 @@ SERVICE_PUBLISH = 'publish' EVENT_MQTT_MESSAGE_RECEIVED = 'MQTT_MESSAGE_RECEIVED' DEPENDENCIES = [] -REQUIREMENTS = ['paho-mqtt>=1.1'] +REQUIREMENTS = ['paho-mqtt==1.1'] CONF_BROKER = 'broker' CONF_PORT = 'port' diff --git a/homeassistant/components/notify/pushbullet.py b/homeassistant/components/notify/pushbullet.py index 5e322cfc3b5..58462954d2e 100644 --- a/homeassistant/components/notify/pushbullet.py +++ b/homeassistant/components/notify/pushbullet.py @@ -28,7 +28,7 @@ from homeassistant.components.notify import ( from homeassistant.const import CONF_API_KEY _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['pushbullet.py>=0.7.1'] +REQUIREMENTS = ['pushbullet.py==0.7.1'] def get_service(hass, config): diff --git a/homeassistant/components/notify/pushover.py b/homeassistant/components/notify/pushover.py index 1bc5e9ac9a3..0df035a4a6e 100644 --- a/homeassistant/components/notify/pushover.py +++ b/homeassistant/components/notify/pushover.py @@ -42,7 +42,7 @@ from homeassistant.components.notify import ( DOMAIN, ATTR_TITLE, BaseNotificationService) from homeassistant.const import CONF_API_KEY -REQUIREMENTS = ['python-pushover>=0.2'] +REQUIREMENTS = ['python-pushover==0.2'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/notify/slack.py b/homeassistant/components/notify/slack.py index 859b5b0388a..d604cffb754 100644 --- a/homeassistant/components/notify/slack.py +++ b/homeassistant/components/notify/slack.py @@ -32,7 +32,7 @@ from homeassistant.components.notify import ( DOMAIN, BaseNotificationService) from homeassistant.const import CONF_API_KEY -REQUIREMENTS = ['slacker>=0.6.8'] +REQUIREMENTS = ['slacker==0.6.8'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/notify/xmpp.py b/homeassistant/components/notify/xmpp.py index e756be82014..81268c734b7 100644 --- a/homeassistant/components/notify/xmpp.py +++ b/homeassistant/components/notify/xmpp.py @@ -45,7 +45,7 @@ from homeassistant.helpers import validate_config from homeassistant.components.notify import ( DOMAIN, ATTR_TITLE, BaseNotificationService) -REQUIREMENTS = ['sleekxmpp>=1.3.1', 'dnspython3>=1.12.0'] +REQUIREMENTS = ['sleekxmpp==1.3.1', 'dnspython3==1.12.0'] def get_service(hass, config): diff --git a/homeassistant/components/sensor/bitcoin.py b/homeassistant/components/sensor/bitcoin.py index e0ecbab6db5..b30886448ad 100644 --- a/homeassistant/components/sensor/bitcoin.py +++ b/homeassistant/components/sensor/bitcoin.py @@ -71,7 +71,7 @@ from homeassistant.util import Throttle from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['blockchain>=1.1.2'] +REQUIREMENTS = ['blockchain==1.1.2'] _LOGGER = logging.getLogger(__name__) OPTION_TYPES = { 'wallet': ['Wallet balance', 'BTC'], diff --git a/homeassistant/components/sensor/dht.py b/homeassistant/components/sensor/dht.py index c7df4b4a8d3..7949a7a44fa 100644 --- a/homeassistant/components/sensor/dht.py +++ b/homeassistant/components/sensor/dht.py @@ -44,7 +44,8 @@ from homeassistant.const import TEMP_FAHRENHEIT from homeassistant.helpers.entity import Entity # update this requirement to upstream as soon as it supports python3 -REQUIREMENTS = ['git+git://github.com/mala-zaba/Adafruit_Python_DHT'] +REQUIREMENTS = ['http://github.com/mala-zaba/Adafruit_Python_DHT/archive/' + + '4101340de8d2457dd194bca1e8d11cbfc237e919.zip'] _LOGGER = logging.getLogger(__name__) SENSOR_TYPES = { 'temperature': ['Temperature', ''], diff --git a/homeassistant/components/sensor/forecast.py b/homeassistant/components/sensor/forecast.py index a9783104cd8..b56432ab89b 100644 --- a/homeassistant/components/sensor/forecast.py +++ b/homeassistant/components/sensor/forecast.py @@ -49,7 +49,7 @@ Details for the API : https://developer.forecast.io/docs/v2 import logging from datetime import timedelta -REQUIREMENTS = ['python-forecastio>=1.3.3'] +REQUIREMENTS = ['python-forecastio==1.3.3'] try: import forecastio diff --git a/homeassistant/components/sensor/mysensors.py b/homeassistant/components/sensor/mysensors.py index a626858db31..994b110a585 100644 --- a/homeassistant/components/sensor/mysensors.py +++ b/homeassistant/components/sensor/mysensors.py @@ -36,8 +36,8 @@ ATTR_NODE_ID = "node_id" ATTR_CHILD_ID = "child_id" _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['https://github.com/theolind/pymysensors/archive/master.zip' - '#egg=pymysensors-0.1'] +REQUIREMENTS = ['https://github.com/theolind/pymysensors/archive/' + + '35b87d880147a34107da0d40cb815d75e6cb4af7.zip'] def setup_platform(hass, config, add_devices, discovery_info=None): diff --git a/homeassistant/components/sensor/openweathermap.py b/homeassistant/components/sensor/openweathermap.py index f4635cd13ca..537fc9f59b5 100644 --- a/homeassistant/components/sensor/openweathermap.py +++ b/homeassistant/components/sensor/openweathermap.py @@ -48,7 +48,7 @@ from homeassistant.util import Throttle from homeassistant.const import (CONF_API_KEY, TEMP_CELCIUS, TEMP_FAHRENHEIT) from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['pyowm>=2.2.1'] +REQUIREMENTS = ['pyowm==2.2.1'] _LOGGER = logging.getLogger(__name__) SENSOR_TYPES = { 'weather': ['Condition', ''], diff --git a/homeassistant/components/sensor/rfxtrx.py b/homeassistant/components/sensor/rfxtrx.py index ffc688804ef..8e5a1ad3dca 100644 --- a/homeassistant/components/sensor/rfxtrx.py +++ b/homeassistant/components/sensor/rfxtrx.py @@ -26,8 +26,8 @@ from collections import OrderedDict from homeassistant.const import (TEMP_CELCIUS) from homeassistant.helpers.entity import Entity -REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/archive/master.zip' - '#RFXtrx>=0.15'] +REQUIREMENTS = ['https://github.com/Danielhiversen/pyRFXtrx/archive/' + + 'ec7a1aaddf8270db6e5da1c13d58c1547effd7cf.zip'] DATA_TYPES = OrderedDict([ ('Temperature', TEMP_CELCIUS), diff --git a/homeassistant/components/sensor/rpi_gpio.py b/homeassistant/components/sensor/rpi_gpio.py index c57cf31b397..f973b24a301 100644 --- a/homeassistant/components/sensor/rpi_gpio.py +++ b/homeassistant/components/sensor/rpi_gpio.py @@ -53,7 +53,7 @@ DEFAULT_VALUE_HIGH = "HIGH" DEFAULT_VALUE_LOW = "LOW" DEFAULT_BOUNCETIME = 50 -REQUIREMENTS = ['RPi.GPIO>=0.5.11'] +REQUIREMENTS = ['RPi.GPIO==0.5.11'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/sensor/systemmonitor.py b/homeassistant/components/sensor/systemmonitor.py index 1d1bdb1f3b5..b473cc27283 100644 --- a/homeassistant/components/sensor/systemmonitor.py +++ b/homeassistant/components/sensor/systemmonitor.py @@ -66,7 +66,7 @@ import homeassistant.util.dt as dt_util from homeassistant.helpers.entity import Entity from homeassistant.const import STATE_ON, STATE_OFF -REQUIREMENTS = ['psutil>=3.0.0'] +REQUIREMENTS = ['psutil==3.0.0'] SENSOR_TYPES = { 'disk_use_percent': ['Disk Use', '%'], 'disk_use': ['Disk Use', 'GiB'], diff --git a/homeassistant/components/sensor/tellstick.py b/homeassistant/components/sensor/tellstick.py index 7d024333023..e93c6e4c97f 100644 --- a/homeassistant/components/sensor/tellstick.py +++ b/homeassistant/components/sensor/tellstick.py @@ -35,7 +35,7 @@ import homeassistant.util as util DatatypeDescription = namedtuple("DatatypeDescription", ['name', 'unit']) -REQUIREMENTS = ['tellcore-py>=1.0.4'] +REQUIREMENTS = ['tellcore-py==1.0.4'] # pylint: disable=unused-argument diff --git a/homeassistant/components/sensor/temper.py b/homeassistant/components/sensor/temper.py index e443e81b93f..8579a922661 100644 --- a/homeassistant/components/sensor/temper.py +++ b/homeassistant/components/sensor/temper.py @@ -18,7 +18,8 @@ from homeassistant.const import CONF_NAME, DEVICE_DEFAULT_NAME _LOGGER = logging.getLogger(__name__) -REQUIREMENTS = ['https://github.com/rkabadi/temper-python/archive/master.zip'] +REQUIREMENTS = ['https://github.com/rkabadi/temper-python/archive/' + + '3dbdaf2d87b8db9a3cd6e5585fc704537dd2d09b.zip'] # pylint: disable=unused-argument diff --git a/homeassistant/components/sensor/transmission.py b/homeassistant/components/sensor/transmission.py index b9ed3ea4e9f..587f5131d9d 100644 --- a/homeassistant/components/sensor/transmission.py +++ b/homeassistant/components/sensor/transmission.py @@ -67,7 +67,7 @@ from transmissionrpc.error import TransmissionError import logging -REQUIREMENTS = ['transmissionrpc>=0.11'] +REQUIREMENTS = ['transmissionrpc==0.11'] SENSOR_TYPES = { 'current_status': ['Status', ''], 'download_speed': ['Down Speed', 'MB/s'], diff --git a/homeassistant/components/sensor/wink.py b/homeassistant/components/sensor/wink.py index 4056bbd7733..0b3d33cea24 100644 --- a/homeassistant/components/sensor/wink.py +++ b/homeassistant/components/sensor/wink.py @@ -8,8 +8,8 @@ import logging from homeassistant.helpers.entity import Entity from homeassistant.const import CONF_ACCESS_TOKEN, STATE_OPEN, STATE_CLOSED -REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/master.zip' - '#pywink>=0.1'] +REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/' + + 'c2b700e8ca866159566ecf5e644d9c297f69f257.zip'] def setup_platform(hass, config, add_devices, discovery_info=None): diff --git a/homeassistant/components/sun.py b/homeassistant/components/sun.py index 507c4a2b63b..802eddb4a3a 100644 --- a/homeassistant/components/sun.py +++ b/homeassistant/components/sun.py @@ -31,7 +31,7 @@ from homeassistant.helpers.entity import Entity from homeassistant.components.scheduler import ServiceEventListener DEPENDENCIES = [] -REQUIREMENTS = ['astral>=0.8.1'] +REQUIREMENTS = ['astral==0.8.1'] DOMAIN = "sun" ENTITY_ID = "sun.sun" diff --git a/homeassistant/components/switch/edimax.py b/homeassistant/components/switch/edimax.py index 17fe6d61735..200c5746e27 100644 --- a/homeassistant/components/switch/edimax.py +++ b/homeassistant/components/switch/edimax.py @@ -44,7 +44,8 @@ from homeassistant.const import CONF_HOST, CONF_USERNAME, CONF_PASSWORD,\ DEFAULT_USERNAME = 'admin' DEFAULT_PASSWORD = '1234' DEVICE_DEFAULT_NAME = 'Edimax Smart Plug' -REQUIREMENTS = ['https://github.com/rkabadi/pyedimax/archive/master.zip'] +REQUIREMENTS = ['https://github.com/rkabadi/pyedimax/archive/' + + '365301ce3ff26129a7910c501ead09ea625f3700.zip'] # setup logger _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/switch/hikvisioncam.py b/homeassistant/components/switch/hikvisioncam.py index 5ab084319fc..6ab82df482a 100644 --- a/homeassistant/components/switch/hikvisioncam.py +++ b/homeassistant/components/switch/hikvisioncam.py @@ -49,7 +49,7 @@ except ImportError: hikvision.api = None _LOGGING = logging.getLogger(__name__) -REQUIREMENTS = ['hikvision>=0.4'] +REQUIREMENTS = ['hikvision==0.4'] # pylint: disable=too-many-arguments # pylint: disable=too-many-instance-attributes diff --git a/homeassistant/components/switch/rpi_gpio.py b/homeassistant/components/switch/rpi_gpio.py index bb9cf13e3ed..4afa38aa80a 100644 --- a/homeassistant/components/switch/rpi_gpio.py +++ b/homeassistant/components/switch/rpi_gpio.py @@ -36,7 +36,7 @@ from homeassistant.const import (DEVICE_DEFAULT_NAME, DEFAULT_INVERT_LOGIC = False -REQUIREMENTS = ['RPi.GPIO>=0.5.11'] +REQUIREMENTS = ['RPi.GPIO==0.5.11'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/switch/tellstick.py b/homeassistant/components/switch/tellstick.py index 4fde4babf9e..230151382e7 100644 --- a/homeassistant/components/switch/tellstick.py +++ b/homeassistant/components/switch/tellstick.py @@ -19,7 +19,7 @@ import tellcore.constants as tellcore_constants SINGAL_REPETITIONS = 1 -REQUIREMENTS = ['tellcore-py>=1.0.4'] +REQUIREMENTS = ['tellcore-py==1.0.4'] # pylint: disable=unused-argument diff --git a/homeassistant/components/switch/transmission.py b/homeassistant/components/switch/transmission.py index 7575951f53b..d5cf716c770 100644 --- a/homeassistant/components/switch/transmission.py +++ b/homeassistant/components/switch/transmission.py @@ -48,7 +48,7 @@ from transmissionrpc.error import TransmissionError import logging _LOGGING = logging.getLogger(__name__) -REQUIREMENTS = ['transmissionrpc>=0.11'] +REQUIREMENTS = ['transmissionrpc==0.11'] # pylint: disable=unused-argument diff --git a/homeassistant/components/switch/wemo.py b/homeassistant/components/switch/wemo.py index d133191e6db..2d6e25b296b 100644 --- a/homeassistant/components/switch/wemo.py +++ b/homeassistant/components/switch/wemo.py @@ -8,7 +8,7 @@ import logging from homeassistant.components.switch import SwitchDevice -REQUIREMENTS = ['pywemo>=0.2'] +REQUIREMENTS = ['pywemo==0.2'] # pylint: disable=unused-argument diff --git a/homeassistant/components/switch/wink.py b/homeassistant/components/switch/wink.py index 556a40b181f..c9fb045d9c0 100644 --- a/homeassistant/components/switch/wink.py +++ b/homeassistant/components/switch/wink.py @@ -9,8 +9,8 @@ import logging from homeassistant.components.wink import WinkToggleDevice from homeassistant.const import CONF_ACCESS_TOKEN -REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/master.zip' - '#pywink>=0.1'] +REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/' + + 'c2b700e8ca866159566ecf5e644d9c297f69f257.zip'] def setup_platform(hass, config, add_devices, discovery_info=None): diff --git a/homeassistant/components/thermostat/nest.py b/homeassistant/components/thermostat/nest.py index cb74fa091ff..1de729b590d 100644 --- a/homeassistant/components/thermostat/nest.py +++ b/homeassistant/components/thermostat/nest.py @@ -6,7 +6,7 @@ import logging from homeassistant.components.thermostat import ThermostatDevice from homeassistant.const import (CONF_USERNAME, CONF_PASSWORD, TEMP_CELCIUS) -REQUIREMENTS = ['python-nest>=2.4.0'] +REQUIREMENTS = ['python-nest==2.4.0'] # pylint: disable=unused-argument diff --git a/homeassistant/components/verisure.py b/homeassistant/components/verisure.py index f084ce9874c..d716c8c46ad 100644 --- a/homeassistant/components/verisure.py +++ b/homeassistant/components/verisure.py @@ -61,7 +61,8 @@ DISCOVER_SWITCHES = 'verisure.switches' DEPENDENCIES = [] REQUIREMENTS = [ - 'https://github.com/persandstrom/python-verisure/archive/master.zip' + 'https://github.com/persandstrom/python-verisure/archive/' + + '9873c4527f01b1ba1f72ae60f7f35854390d59be.zip' ] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/wink.py b/homeassistant/components/wink.py index d56a244b84c..eb2beac508a 100644 --- a/homeassistant/components/wink.py +++ b/homeassistant/components/wink.py @@ -16,8 +16,8 @@ from homeassistant.const import ( DOMAIN = "wink" DEPENDENCIES = [] -REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/master.zip' - '#pywink>=0.1'] +REQUIREMENTS = ['https://github.com/balloob/python-wink/archive/' + + 'c2b700e8ca866159566ecf5e644d9c297f69f257.zip'] DISCOVER_LIGHTS = "wink.lights" DISCOVER_SWITCHES = "wink.switches" diff --git a/homeassistant/components/zwave.py b/homeassistant/components/zwave.py index ce189a242b4..ef7e7308959 100644 --- a/homeassistant/components/zwave.py +++ b/homeassistant/components/zwave.py @@ -12,7 +12,7 @@ from homeassistant.const import ( DOMAIN = "zwave" DEPENDENCIES = [] -REQUIREMENTS = ['pydispatcher>=2.0.5'] +REQUIREMENTS = ['pydispatcher==2.0.5'] CONF_USB_STICK_PATH = "usb_path" DEFAULT_CONF_USB_STICK_PATH = "/zwaveusbstick" From 0b6358e759263d50429130766fa2be81a2e26197 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 22:19:52 -0400 Subject: [PATCH 018/190] Implemented comments from Paulus. Revised main to use frontend and demo strings rather than importing their domains. Removed submodule validation. Moved local library mounting to the bootstrap module and out of core. Added requirements_all.txt for all dependencies. Made core dependencies looser. Small updates to setup.py. --- .travis.yml | 2 +- homeassistant/__main__.py | 33 ++++------ homeassistant/bootstrap.py | 15 +++-- homeassistant/core.py | 4 -- requirements.txt | 6 +- requirements_all.txt | 120 +++++++++++++++++++++++++++++++++++++ setup.py | 10 +++- 7 files changed, 155 insertions(+), 35 deletions(-) create mode 100644 requirements_all.txt diff --git a/.travis.yml b/.travis.yml index 7af8ce86dcd..65e417fffb6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ language: python python: - "3.4" install: - - pip install -r requirements.txt + - pip install -r requirements_all.txt - pip install flake8 pylint coveralls script: - flake8 homeassistant --exclude bower_components,external diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 59c2cd11abb..02ef2c401f3 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -8,7 +8,6 @@ import importlib from homeassistant import bootstrap import homeassistant.config as config_util -from homeassistant.components import frontend, demo def validate_python(): @@ -30,17 +29,6 @@ def ensure_pip(): sys.exit() -def validate_git_submodules(): - """ Validate the git submodules are cloned. """ - try: - # pylint: disable=no-name-in-module, unused-variable - from homeassistant.external.noop import WORKING # noqa - except ImportError: - print("Repository submodules have not been initialized") - print("Please run: git submodule update --init --recursive") - sys.exit() - - def ensure_config_path(config_dir): """ Gets the path to the configuration file. Creates one if it not exists. """ @@ -49,11 +37,16 @@ def ensure_config_path(config_dir): # Test if configuration directory exists if not os.path.isdir(config_dir): - try: - os.mkdir(config_dir) - except OSError: - print(('Fatal Error: Unable to create specified configuration ' - 'directory {} ').format(config_dir)) + if config_dir == config_util.get_default_config_dir(): + try: + os.mkdir(config_dir) + except OSError: + print(('Fatal Error: Unable to create default configuration ' + 'directory {} ').format(config_dir)) + sys.exit() + else: + print(('Fatal Error: Specified configuration directory does ' + 'not exist {} ').format(config_dir)) sys.exit() # Test if library directory exists @@ -98,8 +91,6 @@ def main(): """ Starts Home Assistant. """ validate_python() - validate_git_submodules() - args = get_arguments() config_dir = os.path.join(os.getcwd(), args.config) @@ -107,8 +98,8 @@ def main(): if args.demo_mode: hass = bootstrap.from_config_dict({ - frontend.DOMAIN: {}, - demo.DOMAIN: {} + 'frontend': {}, + 'demo': {} }, config_dir=config_dir) else: hass = bootstrap.from_config_file(config_path) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index e4cd307019e..61685dbf2fe 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -144,6 +144,11 @@ def prepare_setup_platform(hass, config, domain, platform_name): return platform +def mount_local_lib_path(config_dir): + """ Add local library to Python Path """ + sys.path.insert(0, os.path.join(config_dir, 'lib')) + + # pylint: disable=too-many-branches, too-many-statements def from_config_dict(config, hass=None, config_dir=None): """ @@ -154,8 +159,9 @@ def from_config_dict(config, hass=None, config_dir=None): if hass is None: hass = core.HomeAssistant() if config_dir is not None: - hass.config.config_dir = os.path.abspath(config_dir) - hass.config.mount_local_path() + config_dir = os.path.abspath(config_dir) + hass.config.config_dir = config_dir + mount_local_lib_path(config_dir) process_ha_core_config(hass, config.get(core.DOMAIN, {})) @@ -198,8 +204,9 @@ def from_config_file(config_path, hass=None): hass = core.HomeAssistant() # Set config dir to directory holding config file - hass.config.config_dir = os.path.abspath(os.path.dirname(config_path)) - hass.config.mount_local_path() + config_dir = os.path.abspath(os.path.dirname(config_path)) + hass.config.config_dir = config_dir + mount_local_lib_path(config_dir) config_dict = config_util.load_config_file(config_path) diff --git a/homeassistant/core.py b/homeassistant/core.py index 309c9336706..0ad05694d65 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -666,10 +666,6 @@ class Config(object): # Directory that holds the configuration self.config_dir = get_default_config_dir() - def mount_local_path(self): - """ Add local library to Python Path """ - sys.path.insert(0, self.path('lib')) - def path(self, *path): """ Returns path to the file within the config dir. """ return os.path.join(self.config_dir, *path) diff --git a/requirements.txt b/requirements.txt index 14c276aa5be..a21c2db6208 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -requests==2.7.0 -pyyaml==3.11 -pytz==2015.4 +requests>=2,<3 +pyyaml>=3.11,<4 +pytz>=2015.4 diff --git a/requirements_all.txt b/requirements_all.txt new file mode 100644 index 00000000000..f9f02b49740 --- /dev/null +++ b/requirements_all.txt @@ -0,0 +1,120 @@ +# Required for Home Assistant core +requests>=2,<3 +pyyaml>=3.11,<4 +pytz>=2015.4 + +# Optional, needed for specific components + +# Sun (sun) +astral==0.8.1 + +# Philips Hue library (lights.hue) +phue==0.8 + +# Limitlessled/Easybulb/Milight library (lights.limitlessled) +ledcontroller==1.0.7 + +# Chromecast bindings (media_player.cast) +pychromecast==0.6.10 + +# Keyboard (keyboard) +pyuserinput==0.1.9 + +# Tellstick bindings (*.tellstick) +tellcore-py==1.0.4 + +# Nmap bindings (device_tracker.nmap) +python-libnmap==0.6.3 + +# PushBullet bindings (notify.pushbullet) +pushbullet.py==0.7.1 + +# Nest Thermostat bindings (thermostat.nest) +python-nest==2.4.0 + +# Z-Wave (*.zwave) +pydispatcher==2.0.5 + +# ISY994 bindings (*.isy994) +PyISY==1.0.5 + +# PSutil (sensor.systemmonitor) +psutil==3.0.0 + +# Pushover bindings (notify.pushover) +python-pushover==0.2 + +# Transmission Torrent Client (*.transmission) +transmissionrpc==0.11 + +# OpenWeatherMap Web API (sensor.openweathermap) +pyowm==2.2.1 + +# XMPP Bindings (notify.xmpp) +sleekxmpp==1.3.1 +dnspython3==1.12.0 + +# Blockchain (sensor.bitcoin) +blockchain==1.1.2 + +# MPD Bindings (media_player.mpd) +python-mpd2==0.5.4 + +# Hikvision (switch.hikvisioncam) +hikvision==0.4 + +# console log coloring +colorlog==2.6.0 + +# JSON-RPC interface (media_player.kodi) +jsonrpc-requests==0.1 + +# Forecast.io Bindings (sensor.forecast) +python-forecastio==1.3.3 + +# Firmata Bindings (*.arduino) +PyMata==2.07a + +# Rfxtrx sensor (sensor.rfxtrx) +https://github.com/Danielhiversen/pyRFXtrx/archive/ec7a1aaddf8270db6e5da1c13d58c1547effd7cf.zip + +# Mysensors +https://github.com/theolind/pymysensors/archive/35b87d880147a34107da0d40cb815d75e6cb4af7.zip + +# Netgear (device_tracker.netgear) +pynetgear==0.3 + +# Netdisco (discovery) +netdisco==0.3 + +# Wemo (switch.wemo) +pywemo==0.2 + +# Wink (*.wink) +https://github.com/balloob/python-wink/archive/c2b700e8ca866159566ecf5e644d9c297f69f257.zip + +# Slack notifier (notify.slack) +slacker==0.6.8 + +# Temper sensors (sensor.temper) +https://github.com/rkabadi/temper-python/archive/3dbdaf2d87b8db9a3cd6e5585fc704537dd2d09b.zip + +# PyEdimax +https://github.com/rkabadi/pyedimax/archive/365301ce3ff26129a7910c501ead09ea625f3700.zip + +# RPI-GPIO platform (*.rpi_gpio) +# Uncomment for Raspberry Pi +# RPi.GPIO ==0.5.11 + +# Adafruit temperature/humidity sensor +# uncomment on a Raspberry Pi / Beaglebone +# http://github.com/mala-zaba/Adafruit_Python_DHT/archive/4101340de8d2457dd194bca1e8d11cbfc237e919.zip + +# PAHO MQTT Binding (mqtt) +paho-mqtt==1.1 + +# PyModbus (modbus) +https://github.com/bashwork/pymodbus/archive/d7fc4f1cc975631e0a9011390e8017f64b612661.zip + +# Verisure (verisure) +https://github.com/persandstrom/python-verisure/archive/9873c4527f01b1ba1f72ae60f7f35854390d59be.zip diff --git a/setup.py b/setup.py index f922459e509..610a7398735 100755 --- a/setup.py +++ b/setup.py @@ -6,6 +6,8 @@ PACKAGE_NAME = 'homeassistant' HERE = os.path.abspath(os.path.dirname(__file__)) with open(os.path.join(HERE, PACKAGE_NAME, 'const.py')) as fp: VERSION = re.search("__version__ = ['\"]([^']+)['\"]\n", fp.read()).group(1) +DOWNLOAD_URL = \ + 'https://github.com/balloob/home-assistant/tarball/{}'.format(VERSION) PACKAGES = find_packages() + \ ['homeassistant.external', 'homeassistant.external.noop', @@ -16,12 +18,15 @@ PACKAGE_DATA = \ 'homeassistant.components.frontend.www_static': ['*.*'], 'homeassistant.components.frontend.www_static.images': ['*.*']} +REQUIRES = \ + [line.strip() for line in open('requirements.txt', 'r')] + setup( name=PACKAGE_NAME, version=VERSION, license='MIT License', url='https://home-assistant.io/', - download_url='https://github.com/automicus/pyisy/tarball/0.7.0', + download_url=DOWNLOAD_URL, author='Paulus Schoutsen', author_email='paulus@paulusschoutsen.nl', description='Open-source home automation platform running on Python 3.', @@ -30,7 +35,7 @@ setup( package_data=PACKAGE_DATA, zip_safe=False, platforms='any', - install_requires=['requests==2.7.0', 'pyyaml==3.11', 'pytz==2015.4'], + install_requires=REQUIRES, keywords=['home', 'automation'], entry_points={ 'console_scripts': [ @@ -39,6 +44,7 @@ setup( }, classifiers=[ 'Intended Audience :: End Users/Desktop', + 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.4', From f5b98c86f0d87f3c4261aaf586067b79ed9df936 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 22:34:35 -0400 Subject: [PATCH 019/190] Mostly PyLint and Flake8 updates. Rewrote imports of exceptions to be from the exceptions module. Made nmap scanner check for libnmap dependency without crashing. Various flake8 and pylint updates. --- homeassistant/__main__.py | 3 +- homeassistant/bootstrap.py | 1 + .../components/device_tracker/nmap_tracker.py | 12 +++++-- homeassistant/components/mqtt.py | 2 +- homeassistant/core.py | 3 +- homeassistant/exceptions.py | 1 + homeassistant/helpers/entity.py | 2 +- homeassistant/remote.py | 31 ++++++++++--------- 8 files changed, 32 insertions(+), 23 deletions(-) diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 02ef2c401f3..c6f0fd97b98 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -108,10 +108,9 @@ def main(): def open_browser(event): """ Open the webinterface in a browser. """ if hass.config.api is not None: - from homeassistant.const import EVENT_HOMEASSISTANT_START import webbrowser webbrowser.open(hass.config.api.base_url) - + from homeassistant.const import EVENT_HOMEASSISTANT_START hass.bus.listen_once(EVENT_HOMEASSISTANT_START, open_browser) hass.start() diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 61685dbf2fe..e9f04d9ab71 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -10,6 +10,7 @@ start by calling homeassistant.start_home_assistant(bus) """ import os +import sys import logging from collections import defaultdict diff --git a/homeassistant/components/device_tracker/nmap_tracker.py b/homeassistant/components/device_tracker/nmap_tracker.py index dc12a53f539..ee1650594ee 100644 --- a/homeassistant/components/device_tracker/nmap_tracker.py +++ b/homeassistant/components/device_tracker/nmap_tracker.py @@ -26,8 +26,12 @@ from collections import namedtuple import subprocess import re -from libnmap.process import NmapProcess -from libnmap.parser import NmapParser, NmapParserException +try: + from libnmap.process import NmapProcess + from libnmap.parser import NmapParser, NmapParserException + LIB_LOADED = True +except ImportError: + LIB_LOADED = False import homeassistant.util.dt as dt_util from homeassistant.const import CONF_HOSTS @@ -52,6 +56,10 @@ def get_scanner(hass, config): _LOGGER): return None + if not LIB_LOADED: + _LOGGER.error("Error while importing dependency python-libnmap.") + return False + scanner = NmapDeviceScanner(config[DOMAIN]) return scanner if scanner.success_init else None diff --git a/homeassistant/components/mqtt.py b/homeassistant/components/mqtt.py index 073406e9700..474b5ebb53e 100644 --- a/homeassistant/components/mqtt.py +++ b/homeassistant/components/mqtt.py @@ -46,7 +46,7 @@ The keep alive in seconds for this client. Default is 60. import logging import socket -from homeassistant.core import HomeAssistantError +from homeassistant.exceptions import HomeAssistantError import homeassistant.util as util from homeassistant.helpers import validate_config from homeassistant.const import ( diff --git a/homeassistant/core.py b/homeassistant/core.py index 0ad05694d65..c04e9a9ab63 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -7,7 +7,6 @@ of entities and react to changes. """ import os -import sys import time import logging import threading @@ -23,7 +22,7 @@ from homeassistant.const import ( EVENT_SERVICE_EXECUTED, ATTR_SERVICE_CALL_ID, EVENT_SERVICE_REGISTERED, TEMP_CELCIUS, TEMP_FAHRENHEIT, ATTR_FRIENDLY_NAME) from homeassistant.exceptions import ( - HomeAssistantError, InvalidEntityFormatError, NoEntitySpecifiedError) + HomeAssistantError, InvalidEntityFormatError) import homeassistant.util as util import homeassistant.util.dt as date_util import homeassistant.helpers.temperature as temp_helper diff --git a/homeassistant/exceptions.py b/homeassistant/exceptions.py index 4ecd22f9e43..bd32d356670 100644 --- a/homeassistant/exceptions.py +++ b/homeassistant/exceptions.py @@ -1,5 +1,6 @@ """ Exceptions used by Home Assistant """ + class HomeAssistantError(Exception): """ General Home Assistant exception occured. """ pass diff --git a/homeassistant/helpers/entity.py b/homeassistant/helpers/entity.py index 0ca63856c27..b29379049d3 100644 --- a/homeassistant/helpers/entity.py +++ b/homeassistant/helpers/entity.py @@ -7,7 +7,7 @@ Provides ABC for entities in HA. from collections import defaultdict -from homeassistant.core import NoEntitySpecifiedError +from homeassistant.exceptions import NoEntitySpecifiedError from homeassistant.const import ( ATTR_FRIENDLY_NAME, ATTR_UNIT_OF_MEASUREMENT, ATTR_HIDDEN, diff --git a/homeassistant/remote.py b/homeassistant/remote.py index 2488f0a9c46..2193ede86e7 100644 --- a/homeassistant/remote.py +++ b/homeassistant/remote.py @@ -18,6 +18,7 @@ import urllib.parse import requests import homeassistant.core as ha +from homeassistant.exceptions import HomeAssistantError import homeassistant.bootstrap as bootstrap from homeassistant.const import ( @@ -84,12 +85,12 @@ class API(object): except requests.exceptions.ConnectionError: _LOGGER.exception("Error connecting to server") - raise ha.HomeAssistantError("Error connecting to server") + raise HomeAssistantError("Error connecting to server") except requests.exceptions.Timeout: error = "Timeout when talking to {}".format(self.host) _LOGGER.exception(error) - raise ha.HomeAssistantError(error) + raise HomeAssistantError(error) def __repr__(self): return "API({}, {}, {})".format( @@ -102,7 +103,7 @@ class HomeAssistant(ha.HomeAssistant): def __init__(self, remote_api, local_api=None): if not remote_api.validate_api(): - raise ha.HomeAssistantError( + raise HomeAssistantError( "Remote API at {}:{} not valid: {}".format( remote_api.host, remote_api.port, remote_api.status)) @@ -121,7 +122,7 @@ class HomeAssistant(ha.HomeAssistant): # Ensure a local API exists to connect with remote if self.config.api is None: if not bootstrap.setup_component(self, 'api'): - raise ha.HomeAssistantError( + raise HomeAssistantError( 'Unable to setup local API to receive events') ha.create_timer(self) @@ -132,7 +133,7 @@ class HomeAssistant(ha.HomeAssistant): # Setup that events from remote_api get forwarded to local_api # Do this after we fire START, otherwise HTTP is not started if not connect_remote_events(self.remote_api, self.config.api): - raise ha.HomeAssistantError(( + raise HomeAssistantError(( 'Could not setup event forwarding from api {} to ' 'local api {}').format(self.remote_api, self.config.api)) @@ -293,7 +294,7 @@ def validate_api(api): else: return APIStatus.UNKNOWN - except ha.HomeAssistantError: + except HomeAssistantError: return APIStatus.CANNOT_CONNECT @@ -318,7 +319,7 @@ def connect_remote_events(from_api, to_api): return False - except ha.HomeAssistantError: + except HomeAssistantError: _LOGGER.exception("Error setting up event forwarding") return False @@ -342,7 +343,7 @@ def disconnect_remote_events(from_api, to_api): return False - except ha.HomeAssistantError: + except HomeAssistantError: _LOGGER.exception("Error removing an event forwarder") return False @@ -354,7 +355,7 @@ def get_event_listeners(api): return req.json() if req.status_code == 200 else {} - except (ha.HomeAssistantError, ValueError): + except (HomeAssistantError, ValueError): # ValueError if req.json() can't parse the json _LOGGER.exception("Unexpected result retrieving event listeners") @@ -371,7 +372,7 @@ def fire_event(api, event_type, data=None): _LOGGER.error("Error firing event: %d - %d", req.status_code, req.text) - except ha.HomeAssistantError: + except HomeAssistantError: _LOGGER.exception("Error firing event") @@ -387,7 +388,7 @@ def get_state(api, entity_id): return ha.State.from_dict(req.json()) \ if req.status_code == 200 else None - except (ha.HomeAssistantError, ValueError): + except (HomeAssistantError, ValueError): # ValueError if req.json() can't parse the json _LOGGER.exception("Error fetching state") @@ -404,7 +405,7 @@ def get_states(api): return [ha.State.from_dict(item) for item in req.json()] - except (ha.HomeAssistantError, ValueError, AttributeError): + except (HomeAssistantError, ValueError, AttributeError): # ValueError if req.json() can't parse the json _LOGGER.exception("Error fetching states") @@ -434,7 +435,7 @@ def set_state(api, entity_id, new_state, attributes=None): else: return True - except ha.HomeAssistantError: + except HomeAssistantError: _LOGGER.exception("Error setting state") return False @@ -457,7 +458,7 @@ def get_services(api): return req.json() if req.status_code == 200 else {} - except (ha.HomeAssistantError, ValueError): + except (HomeAssistantError, ValueError): # ValueError if req.json() can't parse the json _LOGGER.exception("Got unexpected services result") @@ -475,5 +476,5 @@ def call_service(api, domain, service, service_data=None): _LOGGER.error("Error calling service: %d - %s", req.status_code, req.text) - except ha.HomeAssistantError: + except HomeAssistantError: _LOGGER.exception("Error calling service") From bfa3900e6a3027d889916bf28a5accb265f16887 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 22:44:59 -0400 Subject: [PATCH 020/190] Updated core config directory tests --- tests/test_core.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tests/test_core.py b/tests/test_core.py index 6e7b52795b2..1aab679805a 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -16,6 +16,8 @@ from datetime import datetime import pytz import homeassistant.core as ha +from homeassistant.exceptions import ( + HomeAssistantError, InvalidEntityFormatError) import homeassistant.util.dt as dt_util from homeassistant.helpers.event import track_state_change from homeassistant.const import ( @@ -41,7 +43,7 @@ class TestHomeAssistant(unittest.TestCase): """ Stop down stuff we started. """ try: self.hass.stop() - except ha.HomeAssistantError: + except HomeAssistantError: # Already stopped after the block till stopped test pass @@ -250,7 +252,7 @@ class TestState(unittest.TestCase): def test_init(self): """ Test state.init """ self.assertRaises( - ha.InvalidEntityFormatError, ha.State, + InvalidEntityFormatError, ha.State, 'invalid_entity_format', 'test_state') def test_domain(self): @@ -489,18 +491,24 @@ class TestConfig(unittest.TestCase): def test_config_dir_set_correct(self): """ Test config dir set correct. """ - self.assertEqual(os.path.join(os.getcwd(), "config"), + data_dir = os.getenv('APPDATA') if os.name == "nt" \ + else os.path.expanduser('~') + self.assertEqual(os.path.join(data_dir, ".homeassistant"), self.config.config_dir) def test_path_with_file(self): """ Test get_config_path method. """ - self.assertEqual(os.path.join(os.getcwd(), "config", "test.conf"), + data_dir = os.getenv('APPDATA') if os.name == "nt" \ + else os.path.expanduser('~') + self.assertEqual(os.path.join(data_dir, ".homeassistant", "test.conf"), self.config.path("test.conf")) def test_path_with_dir_and_file(self): """ Test get_config_path method. """ + data_dir = os.getenv('APPDATA') if os.name == "nt" \ + else os.path.expanduser('~') self.assertEqual( - os.path.join(os.getcwd(), "config", "dir", "test.conf"), + os.path.join(data_dir, ".homeassistant", "dir", "test.conf"), self.config.path("dir", "test.conf")) def test_temperature_not_convert_if_no_preference(self): From b750457afa8d7b9c00fe428d90f9c586961fa37e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Aug 2015 20:11:27 -0700 Subject: [PATCH 021/190] Bugfixes frontend --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 24 ++++++++++-------- .../www_static/home-assistant-polymer | 2 +- .../components/frontend/www_static/splash.png | Bin 11636 -> 51901 bytes 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index defce54a73a..6eea0024c30 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "25d26e3bbcae0f4493f787a5673a84fe" +VERSION = "441ca74ed89c1db053bc2f55d57a48c6" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 82b0dba526a..06f43dec560 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -3549,7 +3549,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN color: white; border-radius: 1em; padding: 4px 8px; - font-weight: 400; + font-weight: 500; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; @@ -3566,7 +3566,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN iron-image { border-radius: 50%; - } \ No newline at end of file +console.group&&(console.groupCollapsed("Dispatch: %s",t),console.group("payload"),console.debug(e),console.groupEnd())},e.dispatchError=function(t){console.group&&(console.debug("Dispatch error: "+t),console.groupEnd())},e.storeHandled=function(t,e,n){console.group&&e!==n&&console.debug("Store "+t+" handled action")},e.dispatchEnd=function(t){console.group&&(console.debug("Dispatch done, new state: ",t.toJS()),console.groupEnd())}},function(t,e,n){function r(t,e){this.__prevState=t,this.__evaluator=e,this.__prevValues=i.Map(),this.__observers=[]}var i=n(2),o=n(7),u=n(8);Object.defineProperty(r.prototype,"notifyObservers",{writable:!0,configurable:!0,value:function(t){if(this.__observers.length>0){var e=i.Map();this.__observers.forEach(function(n){var r,i=n.getter,a=o(i),s=this.__prevState;this.__prevValues.has(a)?r=this.__prevValues.get(a):(r=this.__evaluator.evaluate(s,i),this.__prevValues=this.__prevValues.set(a,r));var c=this.__evaluator.evaluate(t,i);u(r,c)||(n.handler.call(null,c),e=e.set(a,c))}.bind(this)),this.__prevValues=e}this.__prevState=t}}),Object.defineProperty(r.prototype,"onChange",{writable:!0,configurable:!0,value:function(t,e){var n={getter:t,handler:e};return this.__observers.push(n),function(){var t=this.__observers.indexOf(n);t>-1&&this.__observers.splice(t,1)}.bind(this)}}),Object.defineProperty(r.prototype,"reset",{writable:!0,configurable:!0,value:function(t){this.__prevState=t,this.__prevValues=i.Map(),this.__observers=[]}}),t.exports=r},function(t,e,n){var r=n(2);t.exports=function(t,e){if(t.hasOwnProperty("__hashCode"))return t.__hashCode;var n=r.fromJS(t).hashCode();return e||(Object.defineProperty(t,"__hashCode",{enumerable:!1,configurable:!1,writable:!1,value:n}),Object.freeze(t)),n}},function(t,e,n){var r=n(2);t.exports=function(t,e){return r.is(t,e)}},function(t,e,n){function r(t){return s(t)&&a(t[t.length-1])}function i(t){return t[t.length-1]}function o(t){return t.slice(0,t.length-1)}function u(t){if(!c(t))throw new Error("Cannot create Getter from KeyPath: "+t);return[t,l]}var a=n(3).isFunction,s=n(3).isArray,c=n(10).isKeyPath,l=function(t){return t};t.exports={isGetter:r,getComputeFn:i,getDeps:o,fromKeyPath:u}},function(t,e,n){var r=n(3).isArray,i=n(3).isFunction;e.isKeyPath=function(t){return r(t)&&!i(t[t.length-1])}},function(t,e,n){function r(){this.__cachedGetters=i.Map({})}var i=n(2),o=n(1).toImmutable,u=n(7),a=n(8),s=n(9).getComputeFn,c=n(9).getDeps,l=n(10).isKeyPath,f=n(9).isGetter,d=!1;Object.defineProperty(r.prototype,"evaluate",{writable:!0,configurable:!0,value:function(t,e){if(l(e))return t.getIn(e);if(!f(e))throw new Error("evaluate must be passed a keyPath or Getter");var n=u(e);if(this.__isCached(t,e))return this.__cachedGetters.getIn([n,"value"]);var r=c(e).map(function(e){return this.evaluate(t,e)}.bind(this));if(this.__hasStaleValue(t,e)){var i=this.__cachedGetters.getIn([n,"args"]);if(a(i,o(r))){var p=this.__cachedGetters.getIn([n,"value"]);return this.__cacheValue(t,e,i,p),p}}if(d===!0)throw d=!1,new Error("Evaluate may not be called within a Getters computeFn");var h;d=!0;try{h=s(e).apply(null,r),d=!1}catch(v){throw d=!1,v}return this.__cacheValue(t,e,r,h),h}}),Object.defineProperty(r.prototype,"__hasStaleValue",{writable:!0,configurable:!0,value:function(t,e){var n=u(e),r=this.__cachedGetters;return r.has(n)&&r.getIn([n,"stateHashCode"])!==t.hashCode()}}),Object.defineProperty(r.prototype,"__cacheValue",{writable:!0,configurable:!0,value:function(t,e,n,r){var a=u(e);this.__cachedGetters=this.__cachedGetters.set(a,i.Map({value:r,args:o(n),stateHashCode:t.hashCode()}))}}),Object.defineProperty(r.prototype,"__isCached",{writable:!0,configurable:!0,value:function(t,e){var n=u(e);return this.__cachedGetters.hasIn([n,"value"])&&this.__cachedGetters.getIn([n,"stateHashCode"])===t.hashCode()}}),Object.defineProperty(r.prototype,"untrack",{writable:!0,configurable:!0,value:function(t){}}),Object.defineProperty(r.prototype,"reset",{writable:!0,configurable:!0,value:function(){this.__cachedGetters=i.Map({})}}),t.exports=r},function(t,e,n){function r(t,e){var n={};return i(e,function(e,r){n[r]=t.evaluate(e)}),n}var i=n(3).each;t.exports=function(t){return{getInitialState:function(){return r(t,this.getDataBindings())},componentDidMount:function(){var e=this;e.__unwatchFns=[],i(this.getDataBindings(),function(n,r){var i=t.observe(n,function(t){var n={};n[r]=t,e.setState(n)});e.__unwatchFns.push(i)})},componentWillUnmount:function(){for(;this.__unwatchFns.length;)this.__unwatchFns.shift()()}}}},function(t,e,n){function r(t){return this instanceof r?(this.__handlers=o({}),t&&u(this,t),void this.initialize()):new r(t)}function i(t){return t instanceof r}var o=n(2).Map,u=n(3).extend,a=n(1).toJS,s=n(1).toImmutable;Object.defineProperty(r.prototype,"initialize",{writable:!0,configurable:!0,value:function(){}}),Object.defineProperty(r.prototype,"getInitialState",{writable:!0,configurable:!0,value:function(){return o()}}),Object.defineProperty(r.prototype,"handle",{writable:!0,configurable:!0,value:function(t,e,n){var r=this.__handlers.get(e);return"function"==typeof r?r.call(this,t,n,e):t}}),Object.defineProperty(r.prototype,"handleReset",{writable:!0,configurable:!0,value:function(t){return this.getInitialState()}}),Object.defineProperty(r.prototype,"on",{writable:!0,configurable:!0,value:function(t,e){this.__handlers=this.__handlers.set(t,e)}}),Object.defineProperty(r.prototype,"serialize",{writable:!0,configurable:!0,value:function(t){return a(t)}}),Object.defineProperty(r.prototype,"deserialize",{writable:!0,configurable:!0,value:function(t){return s(t)}}),t.exports=r,t.exports.isStore=i}])})},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(175),u=r(o);e["default"]=u["default"](i.reactor),t.exports=e["default"]},function(t,e){"use strict";var n=function(t){var e,n={};if(!(t instanceof Object)||Array.isArray(t))throw new Error("keyMirror(...): Argument must be an object.");for(e in t)t.hasOwnProperty(e)&&(n[e]=e);return n};t.exports=n},function(t,e){"use strict";function n(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(184),o=r(i);e.callApi=o["default"]},function(t,e,n){"use strict";function r(t){return i(t)?t:Object(t)}var i=n(6);t.exports=r},function(t,e,n){"use strict";var r=n(20),i=n(12),o=n(13),u="[object Array]",a=Object.prototype,s=a.toString,c=r(Array,"isArray"),l=c||function(t){return o(t)&&i(t.length)&&s.call(t)==u};t.exports=l},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(200),u=i(o),a=n(201),s=r(a),c=u["default"];e.actions=c;var l=s;e.getters=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){t.registerStores({restApiCache:l["default"]})}function o(t){return[["restApiCache",t.entity],function(t){return!!t}]}function u(t){return[["restApiCache",t.entity],function(t){return t||s.toImmutable({})}]}function a(t){return function(e){return["restApiCache",t.entity,e]}}Object.defineProperty(e,"__esModule",{value:!0}),e.register=i,e.createHasDataGetter=o,e.createEntityMapGetter=u,e.createByIdGetter=a;var s=n(3),c=n(224),l=r(c),f=n(223),d=r(f);e.createApiActions=d["default"]},function(t,e){"use strict";function n(t){return"number"==typeof t&&t>-1&&t%1==0&&r>=t}var r=9007199254740991;t.exports=n},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}t.exports=n},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"partial-base",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1}},computeMenuButtonClass:function(t,e){return!t&&e?"invisible":""},toggleMenu:function(){this.fire("open-menu")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({ENTITY_HISTORY_DATE_SELECTED:null,ENTITY_HISTORY_FETCH_START:null,ENTITY_HISTORY_FETCH_ERROR:null,ENTITY_HISTORY_FETCH_SUCCESS:null,RECENT_ENTITY_HISTORY_FETCH_START:null,RECENT_ENTITY_HISTORY_FETCH_ERROR:null,RECENT_ENTITY_HISTORY_FETCH_SUCCESS:null,LOG_OUT:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return null!=t&&o(i(t))}var i=n(49),o=n(12);t.exports=r},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(137),n(58),e["default"]=new o["default"]({is:"state-info",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({LOGBOOK_DATE_SELECTED:null,LOGBOOK_ENTRIES_FETCH_START:null,LOGBOOK_ENTRIES_FETCH_ERROR:null,LOGBOOK_ENTRIES_FETCH_SUCCESS:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(225),u=i(o),a=n(79),s=r(a),c=u["default"];e.actions=c;var l=s;e.getters=l},function(t,e,n){"use strict";function r(t,e){var n=null==t?void 0:t[e];return i(n)?n:void 0}var i=n(126);t.exports=r},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({VALIDATING_AUTH_TOKEN:null,VALID_AUTH_TOKEN:null,INVALID_AUTH_TOKEN:null,LOG_OUT:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({authAttempt:a["default"],authCurrent:c["default"],rememberAuth:f["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(187),a=i(u),s=n(188),c=i(s),l=n(189),f=i(l),d=n(185),p=r(d),h=n(186),v=r(h),_=p;e.actions=_;var y=v;e.getters=y},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,o=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function t(t,e){for(var n=0;n-1&&t%1==0&&e>t}var r=/^\d+$/,i=9007199254740991;t.exports=n},function(t,e,n){"use strict";function r(t,e,n){if(!u(n))return!1;var r=typeof e;if("number"==r?i(n)&&o(e,n.length):"string"==r&&e in n){var a=n[e];return t===t?t===a:a!==a}return!1}var i=n(16),o=n(25),u=n(6);t.exports=r},function(t,e,n){"use strict";function r(t){return o(t)&&i(t)&&a.call(t,"callee")&&!s.call(t,"callee")}var i=n(16),o=n(13),u=Object.prototype,a=u.hasOwnProperty,s=u.propertyIsEnumerable;t.exports=r},function(t,e,n){"use strict";var r=n(20),i=n(16),o=n(6),u=n(123),a=r(Object,"keys"),s=a?function(t){var e=null==t?void 0:t.constructor;return"function"==typeof e&&e.prototype===t||"function"!=typeof t&&i(t)?u(t):o(t)?a(t):[]}:u;t.exports=s},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(62),a=r(u);e["default"]=new o["default"]({is:"domain-icon",properties:{domain:{type:String,value:""},state:{type:String,value:""}},computeIcon:function(t,e){return a["default"](t,e)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"loading-box"}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(176),a=r(u);n(32),n(60),n(174),n(171),n(173),n(172),e["default"]=new o["default"]({is:"state-card-content",properties:{stateObj:{type:Object,observer:"stateObjChanged"}},stateObjChanged:function(t,e){var n=o["default"].dom(this);if(!t)return void(n.lastChild&&n.removeChild(n.lastChild));var r=a["default"](t);if(e&&a["default"](e)===r)n.lastChild.stateObj=t;else{n.lastChild&&n.removeChild(n.lastChild);var i=document.createElement("state-card-"+r);i.stateObj=t,n.appendChild(i)}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17),e["default"]=new o["default"]({is:"state-card-display",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e){"use strict";function n(t,e){return t?e.map(function(e){return e in t.attributes?"has-"+e:""}).join(" "):""}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){function r(){y&&clearTimeout(y),p&&clearTimeout(p),g=0,p=y=m=void 0}function s(e,n){n&&clearTimeout(n),p=y=m=void 0,e&&(g=o(),h=t.apply(_,d),y||p||(d=_=void 0))}function c(){var t=e-(o()-v);0>=t||t>e?s(m,p):y=setTimeout(c,t)}function l(){s(O,y)}function f(){if(d=arguments,v=o(),_=this,m=O&&(y||!w),b===!1)var n=w&&!y;else{p||w||(g=v);var r=b-(v-g),i=0>=r||r>b;i?(p&&(p=clearTimeout(p)),g=v,h=t.apply(_,d)):p||(p=setTimeout(l,r))}return i&&y?y=clearTimeout(y):y||e===b||(y=setTimeout(c,e)),n&&(i=!0,h=t.apply(_,d)),!i||y||p||(d=_=void 0),h}var d,p,h,v,_,y,m,g=0,b=!1,O=!0;if("function"!=typeof t)throw new TypeError(u);if(e=0>e?0:+e||0,n===!0){var w=!0;O=!1}else i(n)&&(w=!!n.leading,b="maxWait"in n&&a(+n.maxWait||0,e),O="trailing"in n?!!n.trailing:O);return f.cancel=r,f}var i=n(68),o=n(180),u="Expected a function",a=Math.max;t.exports=r},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({SERVER_CONFIG_LOADED:null,COMPONENT_LOADED:null,LOG_OUT:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({serverComponent:a["default"],serverConfig:c["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(192),a=i(u),s=n(193),c=i(s),l=n(190),f=r(l),d=n(191),p=r(d),h=f;e.actions=h;var v=p;e.getters=v},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(202),u=i(o),a=n(203),s=r(a),c=u["default"];e.actions=c;var l=s;e.getters=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({NAVIGATE:null,SHOW_SIDEBAR:null,LOG_OUT:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({notifications:a["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(220),a=i(u),s=n(218),c=r(s),l=n(219),f=r(l),d=c;e.actions=d;var p=f;e.getters=p},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({streamStatus:a["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(232),a=i(u),s=n(228),c=r(s),l=n(229),f=r(l),d=c;e.actions=d;var p=f;e.getters=p},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(5),o=r(i);e["default"]=o["default"]({API_FETCH_ALL_START:null,API_FETCH_ALL_SUCCESS:null,API_FETCH_ALL_FAIL:null,SYNC_SCHEDULED:null,SYNC_SCHEDULE_CANCELLED:null}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({isFetchingData:a["default"],isSyncScheduled:c["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(234),a=i(u),s=n(235),c=i(s),l=n(233),f=r(l),d=n(82),p=r(d),h=f;e.actions=h;var v=p;e.getters=v},function(t,e){"use strict";function n(t){return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e){"use strict";function n(t){var e=t.split(" "),n=r(e,2),i=n[0],o=n[1],u=i.split(":"),a=r(u,3),s=a[0],c=a[1],l=a[2],f=o.split("-"),d=r(f,3),p=d[0],h=d[1],v=d[2];return new Date(Date.UTC(v,parseInt(h,10)-1,p,s,c,l))}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,o=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){if(null!=t){void 0!==n&&n in i(t)&&(e=[n]);for(var r=0,o=e.length;null!=t&&o>r;)t=t[e[r++]];return r&&r==o?t:void 0}}var i=n(8);t.exports=r},function(t,e,n){"use strict";function r(t,e,n,a,s,c){return t===e?!0:null==t||null==e||!o(t)&&!u(e)?t!==t&&e!==e:i(t,e,r,n,a,s,c)}var i=n(102),o=n(6),u=n(13);t.exports=r},function(t,e,n){"use strict";function r(t,e){var n=-1,r=o(t)?Array(t.length):[];return i(t,function(t,i,o){r[++n]=e(t,i,o)}),r}var i=n(97),o=n(16);t.exports=r},function(t,e){"use strict";function n(t){return function(e){return null==e?void 0:e[t]}}t.exports=n},function(t,e,n){"use strict";var r=n(48),i=r("length");t.exports=i},function(t,e,n){"use strict";function r(t,e){var n=typeof t;if("string"==n&&a.test(t)||"number"==n)return!0;if(i(t))return!1;var r=!u.test(t);return r||null!=e&&t in o(e)}var i=n(9),o=n(8),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=r},function(t,e,n){"use strict";function r(t){return t===t&&!i(t)}var i=n(6);t.exports=r},function(t,e,n){"use strict";function r(t){if(o(t))return t;var e=[];return i(t).replace(u,function(t,n,r,i){e.push(r?i.replace(a,"$1"):n||t)}),e}var i=n(109),o=n(9),u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,a=/\\(\\)?/g;t.exports=r},function(t,e){"use strict";function n(t){return t}t.exports=n},function(t,e,n){"use strict";function r(t){return u(t)?i(t):o(t)}var i=n(48),o=n(106),u=n(50);t.exports=r},function(t,e,n){(function(t){"use strict";!function(e,n){t.exports=n()}(void 0,function(){function e(){return Ln.apply(null,arguments)}function n(t){Ln=t}function r(t){return"[object Array]"===Object.prototype.toString.call(t)}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function o(t,e){var n,r=[];for(n=0;n0)for(n in Rn)r=Rn[n],i=e[r],"undefined"!=typeof i&&(t[r]=i);return t}function h(t){p(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),zn===!1&&(zn=!0,e.updateOffset(this),zn=!1)}function v(t){return t instanceof h||null!=t&&null!=t._isAMomentObject}function _(t){return 0>t?Math.ceil(t):Math.floor(t)}function y(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=_(e)),n}function m(t,e,n){var r,i=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),u=0;for(r=0;i>r;r++)(n&&t[r]!==e[r]||!n&&y(t[r])!==y(e[r]))&&u++;return u+o}function g(){}function b(t){return t?t.toLowerCase().replace("_","-"):t}function O(t){for(var e,n,r,i,o=0;o0;){if(r=w(i.slice(0,e).join("-")))return r;if(n&&n.length>=e&&m(i,n,!0)>=e-1)break;e--}o++}return null}function w(e){var n=null;if(!Hn[e]&&"undefined"!=typeof t&&t&&t.exports)try{n=Nn._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),S(n)}catch(r){}return Hn[e]}function S(t,e){var n;return t&&(n="undefined"==typeof e?T(t):M(t,e),n&&(Nn=n)),Nn._abbr}function M(t,e){return null!==e?(e.abbr=t,Hn[t]=Hn[t]||new g,Hn[t].set(e),S(t),Hn[t]):(delete Hn[t],null)}function T(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Nn;if(!r(t)){if(e=w(t))return e;t=[t]}return O(t)}function j(t,e){var n=t.toLowerCase();Yn[n]=Yn[n+"s"]=Yn[e]=t}function E(t){return"string"==typeof t?Yn[t]||Yn[t.toLowerCase()]:void 0}function I(t){var e,n,r={};for(n in t)u(t,n)&&(e=E(n),e&&(r[e]=t[n]));return r}function P(t,n){return function(r){return null!=r?(C(this,t,r),e.updateOffset(this,n),this):D(this,t)}}function D(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function C(t,e,n){return t._d["set"+(t._isUTC?"UTC":"")+e](n)}function A(t,e){var n;if("object"==typeof t)for(n in t)this.set(n,t[n]);else if(t=E(t),"function"==typeof this[t])return this[t](e);return this}function x(t,e,n){var r=""+Math.abs(t),i=e-r.length,o=t>=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}function k(t,e,n,r){var i=r;"string"==typeof r&&(i=function(){return this[r]()}),t&&(Bn[t]=i),e&&(Bn[e[0]]=function(){return x(i.apply(this,arguments),e[1],e[2])}),n&&(Bn[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function L(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function N(t){var e,n,r=t.match(Gn);for(e=0,n=r.length;n>e;e++)Bn[r[e]]?r[e]=Bn[r[e]]:r[e]=L(r[e]);return function(i){var o="";for(e=0;n>e;e++)o+=r[e]instanceof Function?r[e].call(i,t):r[e];return o}}function R(t,e){return t.isValid()?(e=z(e,t.localeData()),Fn[e]=Fn[e]||N(e),Fn[e](t)):t.localeData().invalidDate()}function z(t,e){function n(t){return e.longDateFormat(t)||t}var r=5;for(Un.lastIndex=0;r>=0&&Un.test(t);)t=t.replace(Un,n),Un.lastIndex=0,r-=1;return t}function H(t){return"function"==typeof t&&"[object Function]"===Object.prototype.toString.call(t)}function Y(t,e,n){or[t]=H(e)?e:function(t){return t&&n?n:e}}function G(t,e){return u(or,t)?or[t](e._strict,e._locale):new RegExp(U(t))}function U(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,r,i){return e||n||r||i}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function F(t,e){var n,r=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(r=function(t,n){n[e]=y(t)}),n=0;nr;r++){if(i=s([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(o="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[r]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[r].test(t))return r;if(n&&"MMM"===e&&this._shortMonthsParse[r].test(t))return r;if(!n&&this._monthsParse[r].test(t))return r}}function $(t,e){var n;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(n=Math.min(t.date(),q(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t)}function Z(t){return null!=t?($(this,t),e.updateOffset(this,!0),this):D(this,"Month")}function X(){return q(this.year(),this.month())}function Q(t){var e,n=t._a;return n&&-2===l(t).overflow&&(e=n[sr]<0||n[sr]>11?sr:n[cr]<1||n[cr]>q(n[ar],n[sr])?cr:n[lr]<0||n[lr]>24||24===n[lr]&&(0!==n[fr]||0!==n[dr]||0!==n[pr])?lr:n[fr]<0||n[fr]>59?fr:n[dr]<0||n[dr]>59?dr:n[pr]<0||n[pr]>999?pr:-1,l(t)._overflowDayOfYear&&(ar>e||e>cr)&&(e=cr),l(t).overflow=e),t}function tt(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function et(t,e){var n=!0;return a(function(){return n&&(tt(t+"\n"+(new Error).stack),n=!1),e.apply(this,arguments)},e)}function nt(t,e){_r[t]||(tt(e),_r[t]=!0)}function rt(t){var e,n,r=t._i,i=yr.exec(r);if(i){for(l(t).iso=!0,e=0,n=mr.length;n>e;e++)if(mr[e][1].exec(r)){t._f=mr[e][0];break}for(e=0,n=gr.length;n>e;e++)if(gr[e][1].exec(r)){t._f+=(i[6]||" ")+gr[e][0];break}r.match(nr)&&(t._f+="Z"),wt(t)}else t._isValid=!1}function it(t){var n=br.exec(t._i);return null!==n?void(t._d=new Date(+n[1])):(rt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function ot(t,e,n,r,i,o,u){var a=new Date(t,e,n,r,i,o,u);return 1970>t&&a.setFullYear(t),a}function ut(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function at(t){return st(t)?366:365}function st(t){return t%4===0&&t%100!==0||t%400===0}function ct(){return st(this.year())}function lt(t,e,n){var r,i=n-e,o=n-t.day();return o>i&&(o-=7),i-7>o&&(o+=7),r=Dt(t).add(o,"d"),{week:Math.ceil(r.dayOfYear()/7),year:r.year()}}function ft(t){return lt(t,this._week.dow,this._week.doy).week}function dt(){return this._week.dow}function pt(){return this._week.doy}function ht(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function vt(t){var e=lt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function _t(t,e,n,r,i){var o,u=6+i-r,a=ut(t,0,1+u),s=a.getUTCDay();return i>s&&(s+=7),n=null!=n?1*n:i,o=1+u+7*(e-1)-s+n,{year:o>0?t:t-1,dayOfYear:o>0?o:at(t-1)+o}}function yt(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function mt(t,e,n){return null!=t?t:null!=e?e:n}function gt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function bt(t){var e,n,r,i,o=[];if(!t._d){for(r=gt(t),t._w&&null==t._a[cr]&&null==t._a[sr]&&Ot(t),t._dayOfYear&&(i=mt(t._a[ar],r[ar]),t._dayOfYear>at(i)&&(l(t)._overflowDayOfYear=!0),n=ut(i,0,t._dayOfYear),t._a[sr]=n.getUTCMonth(),t._a[cr]=n.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=o[e]=r[e];for(;7>e;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[lr]&&0===t._a[fr]&&0===t._a[dr]&&0===t._a[pr]&&(t._nextDay=!0,t._a[lr]=0),t._d=(t._useUTC?ut:ot).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm), +t._nextDay&&(t._a[lr]=24)}}function Ot(t){var e,n,r,i,o,u,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(o=1,u=4,n=mt(e.GG,t._a[ar],lt(Dt(),1,4).year),r=mt(e.W,1),i=mt(e.E,1)):(o=t._locale._week.dow,u=t._locale._week.doy,n=mt(e.gg,t._a[ar],lt(Dt(),o,u).year),r=mt(e.w,1),null!=e.d?(i=e.d,o>i&&++r):i=null!=e.e?e.e+o:o),a=_t(n,r,i,u,o),t._a[ar]=a.year,t._dayOfYear=a.dayOfYear}function wt(t){if(t._f===e.ISO_8601)return void rt(t);t._a=[],l(t).empty=!0;var n,r,i,o,u,a=""+t._i,s=a.length,c=0;for(i=z(t._f,t._locale).match(Gn)||[],n=0;n0&&l(t).unusedInput.push(u),a=a.slice(a.indexOf(r)+r.length),c+=r.length),Bn[o]?(r?l(t).empty=!1:l(t).unusedTokens.push(o),V(o,r,t)):t._strict&&!r&&l(t).unusedTokens.push(o);l(t).charsLeftOver=s-c,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[lr]<=12&&t._a[lr]>0&&(l(t).bigHour=void 0),t._a[lr]=St(t._locale,t._a[lr],t._meridiem),bt(t),Q(t)}function St(t,e,n){var r;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(r=t.isPM(n),r&&12>e&&(e+=12),r||12!==e||(e=0),e):e}function Mt(t){var e,n,r,i,o;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;io)&&(r=o,n=e));a(t,n||e)}function Tt(t){if(!t._d){var e=I(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],bt(t)}}function jt(t){var e=new h(Q(Et(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Et(t){var e=t._i,n=t._f;return t._locale=t._locale||T(t._l),null===e||void 0===n&&""===e?d({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new h(Q(e)):(r(n)?Mt(t):n?wt(t):i(e)?t._d=e:It(t),t))}function It(t){var n=t._i;void 0===n?t._d=new Date:i(n)?t._d=new Date(+n):"string"==typeof n?it(t):r(n)?(t._a=o(n.slice(0),function(t){return parseInt(t,10)}),bt(t)):"object"==typeof n?Tt(t):"number"==typeof n?t._d=new Date(n):e.createFromInputFallback(t)}function Pt(t,e,n,r,i){var o={};return"boolean"==typeof n&&(r=n,n=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=i,o._l=n,o._i=t,o._f=e,o._strict=r,jt(o)}function Dt(t,e,n,r){return Pt(t,e,n,r,!1)}function Ct(t,e){var n,i;if(1===e.length&&r(e[0])&&(e=e[0]),!e.length)return Dt();for(n=e[0],i=1;it&&(t=-t,n="-"),n+x(~~(t/60),2)+e+x(~~t%60,2)})}function Rt(t){var e=(t||"").match(nr)||[],n=e[e.length-1]||[],r=(n+"").match(Tr)||["-",0,0],i=+(60*r[1])+y(r[2]);return"+"===r[0]?i:-i}function zt(t,n){var r,o;return n._isUTC?(r=n.clone(),o=(v(t)||i(t)?+t:+Dt(t))-+r,r._d.setTime(+r._d+o),e.updateOffset(r,!1),r):Dt(t).local()}function Ht(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Yt(t,n){var r,i=this._offset||0;return null!=t?("string"==typeof t&&(t=Rt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&n&&(r=Ht(this)),this._offset=t,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==t&&(!n||this._changeInProgress?ne(this,Zt(t-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?i:Ht(this)}function Gt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Ut(t){return this.utcOffset(0,t)}function Ft(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ht(this),"m")),this}function Bt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Rt(this._i)),this}function Vt(t){return t=t?Dt(t).utcOffset():0,(this.utcOffset()-t)%60===0}function qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Wt(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var t={};if(p(t,this),t=Et(t),t._a){var e=t._isUTC?s(t._a):Dt(t._a);this._isDSTShifted=this.isValid()&&m(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Kt(){return!this._isUTC}function Jt(){return this._isUTC}function $t(){return this._isUTC&&0===this._offset}function Zt(t,e){var n,r,i,o=t,a=null;return Lt(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(a=jr.exec(t))?(n="-"===a[1]?-1:1,o={y:0,d:y(a[cr])*n,h:y(a[lr])*n,m:y(a[fr])*n,s:y(a[dr])*n,ms:y(a[pr])*n}):(a=Er.exec(t))?(n="-"===a[1]?-1:1,o={y:Xt(a[2],n),M:Xt(a[3],n),d:Xt(a[4],n),h:Xt(a[5],n),m:Xt(a[6],n),s:Xt(a[7],n),w:Xt(a[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(i=te(Dt(o.from),Dt(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),r=new kt(o),Lt(t)&&u(t,"_locale")&&(r._locale=t._locale),r}function Xt(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Qt(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function te(t,e){var n;return e=zt(e,t),t.isBefore(e)?n=Qt(t,e):(n=Qt(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n}function ee(t,e){return function(n,r){var i,o;return null===r||isNaN(+r)||(nt(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),o=n,n=r,r=o),n="string"==typeof n?+n:n,i=Zt(n,r),ne(this,i,t),this}}function ne(t,n,r,i){var o=n._milliseconds,u=n._days,a=n._months;i=null==i?!0:i,o&&t._d.setTime(+t._d+o*r),u&&C(t,"Date",D(t,"Date")+u*r),a&&$(t,D(t,"Month")+a*r),i&&e.updateOffset(t,u||a)}function re(t,e){var n=t||Dt(),r=zt(n,this).startOf("day"),i=this.diff(r,"days",!0),o=-6>i?"sameElse":-1>i?"lastWeek":0>i?"lastDay":1>i?"sameDay":2>i?"nextDay":7>i?"nextWeek":"sameElse";return this.format(e&&e[o]||this.localeData().calendar(o,this,Dt(n)))}function ie(){return new h(this)}function oe(t,e){var n;return e=E("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=v(t)?t:Dt(t),+this>+t):(n=v(t)?+t:+Dt(t),n<+this.clone().startOf(e))}function ue(t,e){var n;return e=E("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=v(t)?t:Dt(t),+t>+this):(n=v(t)?+t:+Dt(t),+this.clone().endOf(e)e-o?(n=t.clone().add(i-1,"months"),r=(e-o)/(o-n)):(n=t.clone().add(i+1,"months"),r=(e-o)/(n-o)),-(i+r)}function fe(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function de(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(n=Dt([2e3,1]).day(e),r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[e]=new RegExp(r.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function Ue(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Re(t,this.localeData()),this.add(t-e,"d")):e}function Fe(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Be(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ve(t,e){k(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qe(t,e){return e._meridiemParse}function We(t){return"p"===(t+"").toLowerCase().charAt(0)}function Ke(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function Je(t,e){e[pr]=y(1e3*("0."+t))}function $e(){return this._isUTC?"UTC":""}function Ze(){return this._isUTC?"Coordinated Universal Time":""}function Xe(t){return Dt(1e3*t)}function Qe(){return Dt.apply(null,arguments).parseZone()}function tn(t,e,n){var r=this._calendar[t];return"function"==typeof r?r.call(e,n):r}function en(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function nn(){return this._invalidDate}function rn(t){return this._ordinal.replace("%d",t)}function on(t){return t}function un(t,e,n,r){var i=this._relativeTime[n];return"function"==typeof i?i(t,e,n,r):i.replace(/%d/i,t)}function an(t,e){var n=this._relativeTime[t>0?"future":"past"];return"function"==typeof n?n(e):n.replace(/%s/i,e)}function sn(t){var e,n;for(n in t)e=t[n],"function"==typeof e?this[n]=e:this["_"+n]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function cn(t,e,n,r){var i=T(),o=s().set(r,e);return i[n](o,t)}function ln(t,e,n,r,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return cn(t,e,n,i);var o,u=[];for(o=0;r>o;o++)u[o]=cn(t,o,n,i);return u}function fn(t,e){return ln(t,e,"months",12,"month")}function dn(t,e){return ln(t,e,"monthsShort",12,"month")}function pn(t,e){return ln(t,e,"weekdays",7,"day")}function hn(t,e){return ln(t,e,"weekdaysShort",7,"day")}function vn(t,e){return ln(t,e,"weekdaysMin",7,"day")}function _n(){var t=this._data;return this._milliseconds=$r(this._milliseconds),this._days=$r(this._days),this._months=$r(this._months),t.milliseconds=$r(t.milliseconds),t.seconds=$r(t.seconds),t.minutes=$r(t.minutes),t.hours=$r(t.hours),t.months=$r(t.months),t.years=$r(t.years),this}function yn(t,e,n,r){var i=Zt(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function mn(t,e){return yn(this,t,e,1)}function gn(t,e){return yn(this,t,e,-1)}function bn(t){return 0>t?Math.floor(t):Math.ceil(t)}function On(){var t,e,n,r,i,o=this._milliseconds,u=this._days,a=this._months,s=this._data;return o>=0&&u>=0&&a>=0||0>=o&&0>=u&&0>=a||(o+=864e5*bn(Sn(a)+u),u=0,a=0),s.milliseconds=o%1e3,t=_(o/1e3),s.seconds=t%60,e=_(t/60),s.minutes=e%60,n=_(e/60),s.hours=n%24,u+=_(n/24),i=_(wn(u)),a+=i,u-=bn(Sn(i)),r=_(a/12),a%=12,s.days=u,s.months=a,s.years=r,this}function wn(t){return 4800*t/146097}function Sn(t){return 146097*t/4800}function Mn(t){var e,n,r=this._milliseconds;if(t=E(t),"month"===t||"year"===t)return e=this._days+r/864e5,n=this._months+wn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(Sn(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}}function Tn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function jn(t){return function(){return this.as(t)}}function En(t){return t=E(t),this[t+"s"]()}function In(t){return function(){return this._data[t]}}function Pn(){return _(this.days()/7)}function Dn(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}function Cn(t,e,n){var r=Zt(t).abs(),i=di(r.as("s")),o=di(r.as("m")),u=di(r.as("h")),a=di(r.as("d")),s=di(r.as("M")),c=di(r.as("y")),l=i0,l[4]=n,Dn.apply(null,l)}function An(t,e){return void 0===pi[t]?!1:void 0===e?pi[t]:(pi[t]=e,!0)}function xn(t){var e=this.localeData(),n=Cn(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function kn(){var t,e,n,r=hi(this._milliseconds)/1e3,i=hi(this._days),o=hi(this._months);t=_(r/60),e=_(t/60),r%=60,t%=60,n=_(o/12),o%=12;var u=n,a=o,s=i,c=e,l=t,f=r,d=this.asSeconds();return d?(0>d?"-":"")+"P"+(u?u+"Y":"")+(a?a+"M":"")+(s?s+"D":"")+(c||l||f?"T":"")+(c?c+"H":"")+(l?l+"M":"")+(f?f+"S":""):"P0D"}var Ln,Nn,Rn=e.momentProperties=[],zn=!1,Hn={},Yn={},Gn=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Un=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Fn={},Bn={},Vn=/\d/,qn=/\d\d/,Wn=/\d{3}/,Kn=/\d{4}/,Jn=/[+-]?\d{6}/,$n=/\d\d?/,Zn=/\d{1,3}/,Xn=/\d{1,4}/,Qn=/[+-]?\d{1,6}/,tr=/\d+/,er=/[+-]?\d+/,nr=/Z|[+-]\d\d:?\d\d/gi,rr=/[+-]?\d+(\.\d{1,3})?/,ir=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,or={},ur={},ar=0,sr=1,cr=2,lr=3,fr=4,dr=5,pr=6;k("M",["MM",2],"Mo",function(){return this.month()+1}),k("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),k("MMMM",0,0,function(t){return this.localeData().months(this,t)}),j("month","M"),Y("M",$n),Y("MM",$n,qn),Y("MMM",ir),Y("MMMM",ir),F(["M","MM"],function(t,e){e[sr]=y(t)-1}),F(["MMM","MMMM"],function(t,e,n,r){var i=n._locale.monthsParse(t,r,n._strict);null!=i?e[sr]=i:l(n).invalidMonth=t});var hr="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),vr="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),_r={};e.suppressDeprecationWarnings=!1;var yr=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],gr=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],br=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=et("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),k(0,["YY",2],0,function(){return this.year()%100}),k(0,["YYYY",4],0,"year"),k(0,["YYYYY",5],0,"year"),k(0,["YYYYYY",6,!0],0,"year"),j("year","y"),Y("Y",er),Y("YY",$n,qn),Y("YYYY",Xn,Kn),Y("YYYYY",Qn,Jn),Y("YYYYYY",Qn,Jn),F(["YYYYY","YYYYYY"],ar),F("YYYY",function(t,n){n[ar]=2===t.length?e.parseTwoDigitYear(t):y(t)}),F("YY",function(t,n){n[ar]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var Or=P("FullYear",!1);k("w",["ww",2],"wo","week"),k("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),Y("w",$n),Y("ww",$n,qn),Y("W",$n),Y("WW",$n,qn),B(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=y(t)});var wr={dow:0,doy:6};k("DDD",["DDDD",3],"DDDo","dayOfYear"),j("dayOfYear","DDD"),Y("DDD",Zn),Y("DDDD",Wn),F(["DDD","DDDD"],function(t,e,n){n._dayOfYear=y(t)}),e.ISO_8601=function(){};var Sr=et("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return this>t?this:t}),Mr=et("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return t>this?this:t});Nt("Z",":"),Nt("ZZ",""),Y("Z",nr),Y("ZZ",nr),F(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Rt(t)});var Tr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var jr=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Er=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Zt.fn=kt.prototype;var Ir=ee(1,"add"),Pr=ee(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Dr=et("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});k(0,["gg",2],0,function(){return this.weekYear()%100}),k(0,["GG",2],0,function(){return this.isoWeekYear()%100}),De("gggg","weekYear"),De("ggggg","weekYear"),De("GGGG","isoWeekYear"),De("GGGGG","isoWeekYear"),j("weekYear","gg"),j("isoWeekYear","GG"),Y("G",er),Y("g",er),Y("GG",$n,qn),Y("gg",$n,qn),Y("GGGG",Xn,Kn),Y("gggg",Xn,Kn),Y("GGGGG",Qn,Jn),Y("ggggg",Qn,Jn),B(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,r){e[r.substr(0,2)]=y(t)}),B(["gg","GG"],function(t,n,r,i){n[i]=e.parseTwoDigitYear(t)}),k("Q",0,0,"quarter"),j("quarter","Q"),Y("Q",Vn),F("Q",function(t,e){e[sr]=3*(y(t)-1)}),k("D",["DD",2],"Do","date"),j("date","D"),Y("D",$n),Y("DD",$n,qn),Y("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),F(["D","DD"],cr),F("Do",function(t,e){e[cr]=y(t.match($n)[0],10)});var Cr=P("Date",!0);k("d",0,"do","day"),k("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),k("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),k("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),k("e",0,0,"weekday"),k("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),Y("d",$n),Y("e",$n),Y("E",$n),Y("dd",ir),Y("ddd",ir),Y("dddd",ir),B(["dd","ddd","dddd"],function(t,e,n){var r=n._locale.weekdaysParse(t);null!=r?e.d=r:l(n).invalidWeekday=t}),B(["d","e","E"],function(t,e,n,r){e[r]=y(t)});var Ar="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),xr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),kr="Su_Mo_Tu_We_Th_Fr_Sa".split("_");k("H",["HH",2],0,"hour"),k("h",["hh",2],0,function(){return this.hours()%12||12}),Ve("a",!0),Ve("A",!1),j("hour","h"),Y("a",qe),Y("A",qe),Y("H",$n),Y("h",$n),Y("HH",$n,qn),Y("hh",$n,qn),F(["H","HH"],lr),F(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),F(["h","hh"],function(t,e,n){e[lr]=y(t),l(n).bigHour=!0});var Lr=/[ap]\.?m?\.?/i,Nr=P("Hours",!0);k("m",["mm",2],0,"minute"),j("minute","m"),Y("m",$n),Y("mm",$n,qn),F(["m","mm"],fr);var Rr=P("Minutes",!1);k("s",["ss",2],0,"second"),j("second","s"),Y("s",$n),Y("ss",$n,qn),F(["s","ss"],dr);var zr=P("Seconds",!1);k("S",0,0,function(){return~~(this.millisecond()/100)}),k(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),k(0,["SSS",3],0,"millisecond"),k(0,["SSSS",4],0,function(){return 10*this.millisecond()}),k(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),k(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),k(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),k(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),k(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),j("millisecond","ms"),Y("S",Zn,Vn),Y("SS",Zn,qn),Y("SSS",Zn,Wn);var Hr;for(Hr="SSSS";Hr.length<=9;Hr+="S")Y(Hr,tr);for(Hr="S";Hr.length<=9;Hr+="S")F(Hr,Je);var Yr=P("Milliseconds",!1);k("z",0,0,"zoneAbbr"),k("zz",0,0,"zoneName");var Gr=h.prototype;Gr.add=Ir,Gr.calendar=re,Gr.clone=ie,Gr.diff=ce,Gr.endOf=Oe,Gr.format=pe,Gr.from=he,Gr.fromNow=ve,Gr.to=_e,Gr.toNow=ye,Gr.get=A,Gr.invalidAt=Pe,Gr.isAfter=oe,Gr.isBefore=ue,Gr.isBetween=ae,Gr.isSame=se,Gr.isValid=Ee,Gr.lang=Dr,Gr.locale=me,Gr.localeData=ge,Gr.max=Mr,Gr.min=Sr,Gr.parsingFlags=Ie,Gr.set=A,Gr.startOf=be,Gr.subtract=Pr,Gr.toArray=Te,Gr.toObject=je,Gr.toDate=Me,Gr.toISOString=de,Gr.toJSON=de,Gr.toString=fe,Gr.unix=Se,Gr.valueOf=we,Gr.year=Or,Gr.isLeapYear=ct,Gr.weekYear=Ae,Gr.isoWeekYear=xe,Gr.quarter=Gr.quarters=Ne,Gr.month=Z,Gr.daysInMonth=X,Gr.week=Gr.weeks=ht,Gr.isoWeek=Gr.isoWeeks=vt,Gr.weeksInYear=Le,Gr.isoWeeksInYear=ke,Gr.date=Cr,Gr.day=Gr.days=Ue,Gr.weekday=Fe,Gr.isoWeekday=Be,Gr.dayOfYear=yt,Gr.hour=Gr.hours=Nr,Gr.minute=Gr.minutes=Rr,Gr.second=Gr.seconds=zr,Gr.millisecond=Gr.milliseconds=Yr,Gr.utcOffset=Yt,Gr.utc=Ut,Gr.local=Ft,Gr.parseZone=Bt,Gr.hasAlignedHourOffset=Vt,Gr.isDST=qt,Gr.isDSTShifted=Wt,Gr.isLocal=Kt,Gr.isUtcOffset=Jt,Gr.isUtc=$t,Gr.isUTC=$t,Gr.zoneAbbr=$e,Gr.zoneName=Ze,Gr.dates=et("dates accessor is deprecated. Use date instead.",Cr),Gr.months=et("months accessor is deprecated. Use month instead",Z),Gr.years=et("years accessor is deprecated. Use year instead",Or),Gr.zone=et("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Gt);var Ur=Gr,Fr={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Br={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Vr="Invalid date",qr="%d",Wr=/\d{1,2}/,Kr={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Jr=g.prototype;Jr._calendar=Fr,Jr.calendar=tn,Jr._longDateFormat=Br,Jr.longDateFormat=en,Jr._invalidDate=Vr,Jr.invalidDate=nn,Jr._ordinal=qr,Jr.ordinal=rn,Jr._ordinalParse=Wr,Jr.preparse=on,Jr.postformat=on,Jr._relativeTime=Kr,Jr.relativeTime=un,Jr.pastFuture=an,Jr.set=sn,Jr.months=W,Jr._months=hr,Jr.monthsShort=K,Jr._monthsShort=vr,Jr.monthsParse=J,Jr.week=ft,Jr._week=wr,Jr.firstDayOfYear=pt,Jr.firstDayOfWeek=dt,Jr.weekdays=ze,Jr._weekdays=Ar,Jr.weekdaysMin=Ye,Jr._weekdaysMin=kr,Jr.weekdaysShort=He,Jr._weekdaysShort=xr,Jr.weekdaysParse=Ge,Jr.isPM=We,Jr._meridiemParse=Lr,Jr.meridiem=Ke,S("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),e.lang=et("moment.lang is deprecated. Use moment.locale instead.",S),e.langData=et("moment.langData is deprecated. Use moment.localeData instead.",T);var $r=Math.abs,Zr=jn("ms"),Xr=jn("s"),Qr=jn("m"),ti=jn("h"),ei=jn("d"),ni=jn("w"),ri=jn("M"),ii=jn("y"),oi=In("milliseconds"),ui=In("seconds"),ai=In("minutes"),si=In("hours"),ci=In("days"),li=In("months"),fi=In("years"),di=Math.round,pi={s:45,m:45,h:22,d:26,M:11},hi=Math.abs,vi=kt.prototype;vi.abs=_n,vi.add=mn,vi.subtract=gn,vi.as=Mn,vi.asMilliseconds=Zr,vi.asSeconds=Xr,vi.asMinutes=Qr,vi.asHours=ti,vi.asDays=ei,vi.asWeeks=ni,vi.asMonths=ri,vi.asYears=ii,vi.valueOf=Tn,vi._bubble=On,vi.get=En,vi.milliseconds=oi,vi.seconds=ui,vi.minutes=ai,vi.hours=si,vi.days=ci,vi.weeks=Pn,vi.months=li,vi.years=fi,vi.humanize=xn,vi.toISOString=kn,vi.toString=kn,vi.toJSON=kn,vi.locale=me,vi.localeData=ge,vi.toIsoString=et("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",kn),vi.lang=Dr,k("X",0,0,"unix"),k("x",0,0,"valueOf"),Y("x",er),Y("X",rr),F("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),F("x",function(t,e,n){n._d=new Date(y(t))}),e.version="2.10.6",n(Dt),e.fn=Ur,e.min=At,e.max=xt,e.utc=s,e.unix=Xe,e.months=fn,e.isDate=i,e.locale=S,e.invalid=d,e.duration=Zt,e.isMoment=v,e.weekdays=pn,e.parseZone=Qe,e.localeData=T,e.isDuration=Lt,e.monthsShort=dn,e.weekdaysMin=vn,e.defineLocale=M,e.weekdaysShort=hn,e.normalizeUnits=E,e.relativeTimeThreshold=An;var _i=e;return _i})}).call(e,n(130)(t))},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"ha-card",properties:{title:{type:String},header:{type:String}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"ha-label-badge",properties:{value:{type:String},icon:{type:String},label:{type:String},description:{type:String},image:{type:String,observe:"imageChanged"}},computeClasses:function(t){return t&&t.length>5?"value big":"value"}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),o=r(i),u=n(2),a=n(1),s=r(a),c=6e4,l=u.util.parseDateTime;e["default"]=new s["default"]({is:"relative-ha-datetime",properties:{datetime:{type:String,observer:"datetimeChanged"},datetimeObj:{type:Object,observer:"datetimeObjChanged"},parsedDateTime:{type:Object},relativeTime:{type:String,value:"not set"}},created:function(){this.updateRelative=this.updateRelative.bind(this)},attached:function(){this._interval=setInterval(this.updateRelative,c)},detached:function(){clearInterval(this._interval)},datetimeChanged:function(t){this.parsedDateTime=t?l(t):null,this.updateRelative()},datetimeObjChanged:function(t){this.parsedDateTime=t,this.updateRelative()},updateRelative:function(){this.relativeTime=this.parsedDateTime?o["default"](this.parsedDateTime).fromNow():""}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(30),n(148),n(147),e["default"]=new o["default"]({is:"state-history-charts",properties:{stateHistory:{type:Object},isLoadingData:{type:Boolean,value:!1},apiLoaded:{type:Boolean,value:!1},isLoading:{type:Boolean,computed:"computeIsLoading(isLoadingData, apiLoaded)"},groupedStateHistory:{type:Object,computed:"computeGroupedStateHistory(isLoading, stateHistory)"},isSingleDevice:{type:Boolean,computed:"computeIsSingleDevice(stateHistory)"}},computeIsSingleDevice:function(t){return t&&1===t.size},computeGroupedStateHistory:function(t,e){if(t||!e)return{line:[],timeline:[]};var n={},r=[];e.forEach(function(t){if(t&&0!==t.size){var e=t.find(function(t){return"unit_of_measurement"in t.attributes}),i=e?e.attributes.unit_of_measurement:!1;i?i in n?n[i].push(t.toArray()):n[i]=[t.toArray()]:r.push(t.toArray())}}),r=r.length>0&&r;var i=Object.keys(n).map(function(t){return[t,n[t]]});return{line:i,timeline:r}},googleApiLoaded:function(){var t=this;google.load("visualization","1",{packages:["timeline","corechart"],callback:function(){return t.apiLoaded=!0}})},computeContentClasses:function(t){return t?"loading":""},computeIsLoading:function(t,e){return t||!e},computeIsEmpty:function(t){return t&&0===t.size},extractUnit:function(t){return t[0]},extractData:function(t){return t[1]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(17),e["default"]=new u["default"]({is:"state-card-toggle",properties:{stateObj:{type:Object,observer:"stateObjChanged"},toggleChecked:{type:Boolean,value:!1}},ready:function(){this.forceStateChange()},toggleTapped:function(t){t.stopPropagation()},toggleChanged:function(t){var e=t.target.checked;e&&"off"===this.stateObj.state?this.turn_on():e||"on"!==this.stateObj.state||this.turn_off()},stateObjChanged:function(t){t&&this.updateToggle(t)},updateToggle:function(t){this.toggleChecked=t&&"on"===t.state},forceStateChange:function(){this.updateToggle(this.stateObj)},turn_on:function(){var t=this;i.serviceActions.callTurnOn(this.stateObj.entityId).then(function(){return t.forceStateChange()})},turn_off:function(){var t=this;i.serviceActions.callTurnOff(this.stateObj.entityId).then(function(){return t.forceStateChange()})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return i.reactor.evaluate(i.serviceGetters.canToggleEntity(t))}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r;var i=n(2);t.exports=e["default"]},function(t,e){"use strict";function n(t,e){switch(t){case"homeassistant":return"home";case"group":return"homeassistant-24:group";case"device_tracker":return"social:person";case"switch":return"image:flash-on";case"media_player":var n="hardware:cast";return e&&"off"!==e&&"idle"!==e&&(n+="-connected"),n;case"sun":return"image:wb-sunny";case"light":return"image:wb-incandescent";case"simple_alarm":return"social:notifications";case"notify":return"announcement";case"thermostat":return"homeassistant-100:thermostat";case"sensor":return"visibility";case"configurator":return"settings";case"conversation":return"av:hearing";case"script":return"description";case"scene":return"social:pages";case"updater":return"update_available"===e?"icons:cloud-download":"icons:cloud-done";default:return"bookmark"}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return u["default"](t).format("LT")}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i;var o=n(55),u=r(o);t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2);e["default"]=function(t,e){r.authActions.validate(t,{rememberAuth:e,useStreaming:r.localStoragePreferences.useStreaming})},t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e){var n=null==t?void 0:t[e];return i(n)?n:void 0}var i=n(183);t.exports=r},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}t.exports=n},function(t,e,n){"use strict";function r(t){return i(t)&&a.call(t)==o}var i=n(68),o="[object Function]",u=Object.prototype,a=u.toString; +t.exports=r},function(t,e){"use strict";function n(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=["isLoadingEntityHistory"];e.isLoadingEntityHistory=i;var o=["currentEntityHistoryDate"];e.currentDate=o;var u=["entityHistory"];e.entityHistoryMap=u;var a=[o,u,function(t,e){return e.get(t)||r.toImmutable({})}];e.entityHistoryForCurrentDate=a;var s=[o,u,function(t,e){return!!e.get(t)}];e.hasDataForCurrentDate=s;var c=["recentEntityHistory"];e.recentEntityHistoryMap=c;var l=["recentEntityHistory"];e.recentEntityHistoryUpdatedMap=l},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({currentEntityHistoryDate:a["default"],entityHistory:c["default"],isLoadingEntityHistory:f["default"],recentEntityHistory:p["default"],recentEntityHistoryUpdated:v["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(195),a=i(u),s=n(196),c=i(s),l=n(197),f=i(l),d=n(198),p=i(d),h=n(199),v=i(h),_=n(194),y=r(_),m=n(69),g=r(m),b=y;e.actions=b;var O=g;e.getters=O},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n6e4}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var u=n(221),a=n(241),s=i(a),c=n(243),l=i(c),f=n(245),d=i(f),p=n(22),h=r(p),v=n(36),_=r(v),y=n(10),m=r(y),g=n(70),b=r(g),O=n(37),w=r(O),S=n(206),M=r(S),T=n(73),j=r(T),E=n(76),I=r(E),P=n(39),D=r(P),C=n(19),A=r(C),x=n(40),k=r(x),L=n(42),N=r(L),R=n(238),z=r(R),H=n(11),Y=r(H),G=function U(){o(this,U);var t=s["default"]();Object.defineProperties(this,{demo:{value:!1,enumerable:!0},localStoragePreferences:{value:u.localStoragePreferences,enumerable:!0},reactor:{value:t,enumerable:!0},util:{value:d["default"],enumerable:!0},startLocalStoragePreferencesSync:{value:u.localStoragePreferences.startSync.bind(u.localStoragePreferences,t)},startUrlSync:{value:I.urlSync.startSync.bind(null,t)},stopUrlSync:{value:I.urlSync.stopSync.bind(null,t)}}),l["default"](this,t,{auth:h,config:_,entity:m,entityHistory:b,event:w,logbook:M,moreInfo:j,navigation:I,notification:D,service:A,stream:k,sync:N,voice:z,restApi:Y})};e["default"]=G,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){var r=t?t.length:0;return n&&o(t,e,n)&&(e=!1),r?i(t,e):[]}var i=n(98),o=n(26);t.exports=r},function(t,e){"use strict";function n(t){var e=t?t.length:0;return e?t[e-1]:void 0}t.exports=n},function(t,e,n){"use strict";function r(t,e,n,r){var s=t?t.length:0;return s?(null!=e&&"boolean"!=typeof e&&(r=n,n=u(t,e,r)?void 0:e,e=!1),n=null==n?n:i(n,r,3),e?a(t,n):o(t,n)):[]}var i=n(24),o=n(110),u=n(26),a=n(124);t.exports=r},function(t,e,n){"use strict";function r(t,e,n){var r=a(t)?i:u;return e=o(e,n,3),r(t,e)}var i=n(93),o=n(24),u=n(47),a=n(9);t.exports=r},function(t,e,n){"use strict";function r(t,e){return i(t,o(e))}var i=n(89),o=n(54);t.exports=r},function(t,e,n){"use strict";function r(t,e,n){if(null==t)return[];n&&s(t,e,n)&&(e=void 0);var r=-1;e=i(e,n,3);var c=o(t,function(t,n,i){return{criteria:e(t,n,i),index:++r,value:t}});return u(c,a)}var i=n(24),o=n(47),u=n(108),a=n(114),s=n(26);t.exports=r},function(t,e,n){(function(e){"use strict";function r(t){var e=t?t.length:0;for(this.data={hash:a(null),set:new u};e--;)this.push(t[e])}var i=n(113),o=n(20),u=o(e,"Set"),a=o(Object,"create");r.prototype.push=i,t.exports=r}).call(e,function(){return this}())},function(t,e){"use strict";function n(t,e){for(var n=-1,r=t.length,i=Array(r);++ne&&!o||!i||n&&!u&&a||r&&a)return 1;if(e>t&&!n||!a||o&&!r&&i||u&&i)return-1}return 0}t.exports=n},function(t,e,n){"use strict";var r=n(100),i=n(115),o=i(r);t.exports=o},function(t,e,n){"use strict";function r(t,e,n,c){c||(c=[]);for(var l=-1,f=t.length;++le&&(e=-e>i?0:i+e),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(i);++r=a,f=l?u():null,d=[];f?(r=o,c=!1):(l=!1,f=e?[]:d);t:for(;++nc))return!1;for(;++s0;++rd;d++)f._columns[d]=[];var p=0;return n&&u(),c.keySeq().sortBy(function(t){return i(t)}).forEach(function(t){if("a"===t)return void(f._demo=!0);var n=i(t);n>=0&&10>n?f._badges.push.apply(f._badges,r(c.get(t)).sortBy(o).toArray()):"group"===t?c.get(t).filter(function(t){return!t.attributes.auto}).sortBy(o).forEach(function(t){var n=s.util.expandGroup(t,e);n.forEach(function(t){return l[t.entityId]=!0}),a(t.entityDisplay,n.toArray())}):a(t,r(c.get(t)).sortBy(o).toArray())}),f},computeShowIntroduction:function(t,e){return t||e._demo},computeShowHideInstruction:function(t,e){return t.size>0&&!0&&!e._demo},computeStatesOfCard:function(t,e){return t[e]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(29),n(134),n(58),e["default"]=new u["default"]({is:"logbook-entry", +entityClicked:function(t){t.preventDefault(),i.moreInfoActions.selectEntity(this.entryObj.entityId)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(29),e["default"]=new u["default"]({is:"services-list",behaviors:[s["default"]],properties:{serviceDomains:{type:Array,bindNuclear:[i.serviceGetters.entityMap,function(t){return t.valueSeq().sortBy(function(t){return t.domain}).toJS()}]}},computeServices:function(t){return this.services.get(t).toArray()},serviceClicked:function(t){t.preventDefault(),this.fire("service-selected",{domain:t.model.domain.domain,service:t.model.service})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(90),o=r(i),u=n(86),a=r(u),s=n(88),c=r(s),l=n(91),f=r(l),d=n(1),p=r(d);e["default"]=new p["default"]({is:"state-history-chart-line",properties:{data:{type:Object,observer:"dataChanged"},unit:{type:String},isSingleDevice:{type:Boolean,value:!1},isAttached:{type:Boolean,value:!1,observer:"dataChanged"}},created:function(){this.style.display="block"},attached:function(){this.isAttached=!0},dataChanged:function(){this.drawChart()},drawChart:function(){if(this.isAttached){for(var t=p["default"].dom(this),e=this.unit,n=this.data;t.lastChild;)t.removeChild(t.lastChild);if(0!==n.length){var r=new google.visualization.LineChart(this),i=new google.visualization.DataTable;i.addColumn({type:"datetime",id:"Time"});var u={legend:{position:"top"},titlePosition:"none",vAxes:{0:{title:e}},hAxis:{format:"H:mm"},lineWidth:1,chartArea:{left:"60",width:"95%"},explorer:{actions:["dragToZoom","rightClickToReset","dragToPan"],keepInBounds:!0,axis:"horizontal",maxZoomIn:.1}};this.isSingleDevice&&(u.legend.position="none",u.vAxes[0].title=null,u.chartArea.left=40,u.chartArea.height="80%",u.chartArea.top=5,u.enableInteractivity=!1);var s=o["default"](a["default"](n),"lastChangedAsDate");s=f["default"](c["default"](s,function(t){return t.getTime()}));for(var l=[],d=new Array(n.length),h=0;hnew Date&&(a=new Date);var s=0;n.forEach(function(e){if(0!==e.length){var n=e[0].entityDisplay,r=void 0,i=null,o=null;e.forEach(function(e){null!==i&&e.state!==i?(r=e.lastChangedAsDate,t(n,i,o,r),i=e.state,o=r):null===i&&(i=e.state,o=e.lastChangedAsDate)}),t(n,i,o,a),s++}}),r.draw(i,{height:55+42*s,timeline:{showRowLabels:n.length>1},hAxis:{format:"H:mm"}})}}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);e["default"]=new u["default"]({is:"stream-status",behaviors:[s["default"]],properties:{isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},hasError:{type:Boolean,bindNuclear:i.streamGetters.hasStreamingEventsError}},toggleChanged:function(){this.isStreaming?i.streamActions.stop():i.streamActions.start()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(31),n(59),n(162);var c=["camera","configurator"];e["default"]=new u["default"]({is:"more-info-dialog",behaviors:[s["default"]],properties:{stateObj:{type:Object,bindNuclear:i.moreInfoGetters.currentEntity,observer:"stateObjChanged"},stateHistory:{type:Object,bindNuclear:[i.moreInfoGetters.currentEntityHistory,function(t){return t?[t]:!1}]},isLoadingHistoryData:{type:Boolean,computed:"computeIsLoadingHistoryData(_delayedDialogOpen, _isLoadingHistoryData)"},_isLoadingHistoryData:{type:Boolean,bindNuclear:i.entityHistoryGetters.isLoadingEntityHistory},hasHistoryComponent:{type:Boolean,bindNuclear:i.configGetters.isComponentLoaded("history"),observer:"fetchHistoryData"},shouldFetchHistory:{type:Boolean,bindNuclear:i.moreInfoGetters.isCurrentEntityHistoryStale,observer:"fetchHistoryData"},showHistoryComponent:{type:Boolean,value:!1},dialogOpen:{type:Boolean,value:!1,observer:"dialogOpenChanged"},_delayedDialogOpen:{type:Boolean,value:!1},_boundOnBackdropTap:{type:Function,value:function(){return this._onBackdropTap.bind(this)}}},computeIsLoadingHistoryData:function(t,e){return!t||e},fetchHistoryData:function(){this.stateObj&&this.hasHistoryComponent&&this.shouldFetchHistory&&i.entityHistoryActions.fetchRecent(this.stateObj.entityId)},stateObjChanged:function(t){var e=this;return t?(this.showHistoryComponent=-1===c.indexOf(this.stateObj.domain)&&this.hasHistoryComponent,void this.async(function(){e.fetchHistoryData(),e.dialogOpen=!0},10)):void(this.dialogOpen=!1)},dialogOpenChanged:function(t){var e=this;t?(this.$.dialog.backdropElement.addEventListener("click",this._boundOnBackdropTap),this.async(function(){return e._delayedDialogOpen=!0},10)):!t&&this.stateObj&&(i.moreInfoActions.deselectEntity(),this._delayedDialogOpen=!1)},_onBackdropTap:function(){this.$.dialog.backdropElement.removeEventListener("click",this._boundOnBackdropTap),this.dialogOpen=!1}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(4),u=r(o);n(142),n(158),n(157),n(156),n(153),n(154),n(155),n(159),n(150),e["default"]=new Polymer({is:"home-assistant-main",behaviors:[u["default"]],properties:{narrow:{type:Boolean,value:!1},activePane:{type:String,bindNuclear:i.navigationGetters.activePane,observer:"activePaneChanged"},isSelectedStates:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("states")},isSelectedHistory:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("history")},isSelectedLogbook:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("logbook")},isSelectedDevEvent:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devEvent")},isSelectedDevState:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devState")},isSelectedDevService:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devService")},showSidebar:{type:Boolean,bindNuclear:i.navigationGetters.showSidebar}},listeners:{"open-menu":"openMenu","close-menu":"closeMenu"},openMenu:function(){this.narrow?this.$.drawer.openDrawer():i.navigationActions.showSidebar(!0)},closeMenu:function(){this.$.drawer.closeDrawer(),this.showSidebar&&i.navigationActions.showSidebar(!1)},activePaneChanged:function(){this.narrow&&this.$.drawer.closeDrawer()},attached:function(){i.startUrlSync()},computeForceNarrow:function(t,e){return t||!e},detached:function(){i.stopUrlSync()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(2),a=n(4),s=r(a),c=n(64),l=r(c);e["default"]=new o["default"]({is:"login-form",behaviors:[s["default"]],properties:{isValidating:{type:Boolean,observer:"isValidatingChanged",bindNuclear:u.authGetters.isValidating},isInvalid:{type:Boolean,bindNuclear:u.authGetters.isInvalidAttempt},errorMessage:{type:String,bindNuclear:u.authGetters.attemptErrorMessage}},listeners:{keydown:"passwordKeyDown","loginButton.click":"validatePassword"},observers:["validatingChanged(isValidating, isInvalid)"],validatingChanged:function(t,e){t||e||(this.$.passwordInput.value="")},isValidatingChanged:function(t){var e=this;t||this.async(function(){return e.$.passwordInput.focus()},10)},passwordKeyDown:function(t){13===t.keyCode?(this.validatePassword(),t.preventDefault()):this.isInvalid&&(this.isInvalid=!1)},validatePassword:function(){this.$.hideKeyboardOnFocus.focus(),l["default"](this.$.passwordInput.value,this.$.rememberLogin.checked)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(146),e["default"]=new u["default"]({is:"partial-dev-call-service",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},domain:{type:String,value:""},service:{type:String,value:""},serviceData:{type:String,value:""}},serviceSelected:function(t){this.domain=t.detail.domain,this.service=t.detail.service},callService:function(){var t=void 0;try{t=this.serviceData?JSON.parse(this.serviceData):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.serviceActions.callService(this.domain,this.service,t)},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(138),e["default"]=new u["default"]({is:"partial-dev-fire-event",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},eventType:{type:String,value:""},eventData:{type:String,value:""}},eventSelected:function(t){this.eventType=t.detail.eventType},fireEvent:function(){var t=void 0;try{t=this.eventData?JSON.parse(this.eventData):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.eventActions.fireEvent(this.eventType,t)},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(135),e["default"]=new u["default"]({is:"partial-dev-set-state",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},entityId:{type:String,value:""},state:{type:String,value:""},stateAttributes:{type:String,value:""}},setStateData:function(t){var e=t?JSON.stringify(t,null," "):"";this.$.inputData.value=e,this.$.inputDataWrapper.update(this.$.inputData)},entitySelected:function(t){var e=i.reactor.evaluate(i.entityGetters.byId(t.detail.entityId));this.entityId=e.entityId,this.state=e.state,this.stateAttributes=JSON.stringify(e.attributes,null," ")},handleSetState:function(){var t=void 0;try{t=this.stateAttributes?JSON.parse(this.stateAttributes):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.entityActions.save({entityId:this.entityId,state:this.state,attributes:t})},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(59),e["default"]=new u["default"]({is:"partial-history",behaviors:[s["default"]],properties:{narrow:{type:Boolean},showMenu:{type:Boolean,value:!1},isDataLoaded:{type:Boolean,bindNuclear:i.entityHistoryGetters.hasDataForCurrentDate,observer:"isDataLoadedChanged"},stateHistory:{type:Object,bindNuclear:i.entityHistoryGetters.entityHistoryForCurrentDate},isLoadingData:{type:Boolean,bindNuclear:i.entityHistoryGetters.isLoadingEntityHistory},selectedDate:{type:String,value:null,bindNuclear:i.entityHistoryGetters.currentDate}},isDataLoadedChanged:function(t){t||this.async(function(){return i.entityHistoryActions.fetchSelectedDate()},1)},handleRefreshClick:function(){i.entityHistoryActions.fetchSelectedDate()},datepickerFocus:function(){this.datePicker.adjustPosition()},attached:function(){this.datePicker=new Pikaday({field:this.$.datePicker.inputElement,onSelect:i.entityHistoryActions.changeCurrentDate})},detached:function(){this.datePicker.destroy()},computeContentClasses:function(t){return"flex content "+(t?"narrow":"wide")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(141),n(30),e["default"]=new u["default"]({is:"partial-logbook",behaviors:[s["default"]],properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},selectedDate:{type:String,bindNuclear:i.logbookGetters.currentDate},isLoading:{type:Boolean,bindNuclear:i.logbookGetters.isLoadingEntries},isStale:{type:Boolean,bindNuclear:i.logbookGetters.isCurrentStale,observer:"isStaleChanged"},entries:{type:Array,bindNuclear:[i.logbookGetters.currentEntries,function(t){return t.toArray()}]},datePicker:{type:Object}},isStaleChanged:function(t){var e=this;t&&this.async(function(){return i.logbookActions.fetchDate(e.selectedDate)},1)},handleRefresh:function(){i.logbookActions.fetchDate(this.selectedDate)},datepickerFocus:function(){this.datePicker.adjustPosition()},attached:function(){this.datePicker=new Pikaday({field:this.$.datePicker.inputElement,onSelect:i.logbookActions.changeCurrentDate})},detached:function(){this.datePicker.destroy()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(143),n(144),e["default"]=new u["default"]({is:"partial-zone",behaviors:[s["default"]],properties:{narrow:{type:Boolean,value:!1},isFetching:{type:Boolean,bindNuclear:i.syncGetters.isFetching},isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},canListen:{type:Boolean,bindNuclear:[i.voiceGetters.isVoiceSupported,i.configGetters.isComponentLoaded("conversation"),function(t,e){return t&&e}]},isListening:{type:Boolean,bindNuclear:i.voiceGetters.isListening},showListenInterface:{type:Boolean,bindNuclear:[i.voiceGetters.isListening,i.voiceGetters.isTransmitting,function(t,e){return t||e}]},introductionLoaded:{type:Boolean,bindNuclear:i.configGetters.isComponentLoaded("introduction")},locationName:{type:String,bindNuclear:i.configGetters.locationName},showMenu:{type:Boolean,value:!1},states:{type:Object,bindNuclear:i.entityGetters.visibleEntityMap},columns:{type:Number}},created:function(){this.windowChange=this.windowChange.bind(this)},attached:function(){for(var t=this,e=[],n=0;4>n;n++)e.push(940+350*n);this.mqls=e.map(function(e){var n=window.matchMedia("(min-width: "+e+"px)");return n.addListener(t.windowChange),n}),this.windowChange()},detached:function(){var t=this;this.mqls.forEach(function(e){return e.removeListener(t.windowChange)})},windowChange:function(){this.columns=this.mqls.reduce(function(t,e){return t+e.matches},1)},handleRefresh:function(){i.syncActions.fetchAll()},handleListenClick:function(){this.isListening?i.voiceActions.stop():i.voiceActions.listen()},computeDomains:function(t){return t.keySeq().toArray()},computeMenuButtonClass:function(t,e){return!t&&e?"invisible":""},computeStatesOfDomain:function(t,e){return t.get(e).toArray()},computeListenButtonIcon:function(t){return t?"av:mic-off":"av:mic"},computeRefreshButtonClass:function(t){return t?"ha-spin":void 0},computeShowIntroduction:function(t,e){return t||0===e.size},toggleMenu:function(){this.fire("open-menu")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);e["default"]=new u["default"]({is:"notification-manager",behaviors:[s["default"]],properties:{text:{type:String,bindNuclear:i.notificationGetters.lastNotificationMessage,observer:"showNotification"}},showNotification:function(t){t&&this.$.toast.show()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"more-info-camera",properties:{stateObj:{type:Object},dialogOpen:{type:Boolean}},imageLoaded:function(){this.fire("iron-resize")},computeCameraImageUrl:function(t){return t?"/api/camera_proxy_stream/"+this.stateObj.entityId:"data:image/gif;base64,R0lGODlhAQABAAAAACw="}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(30),e["default"]=new u["default"]({is:"more-info-configurator",behaviors:[s["default"]],properties:{stateObj:{type:Object},action:{type:String,value:"display"},isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},isConfigurable:{type:Boolean,computed:"computeIsConfigurable(stateObj)"},isConfiguring:{type:Boolean,value:!1},submitCaption:{type:String,computed:"computeSubmitCaption(stateObj)"}},computeIsConfigurable:function(t){return"configure"===t.state},computeSubmitCaption:function(t){return t.attributes.submit_caption||"Set configuration"},submitClicked:function(){var t=this;this.isConfiguring=!0;var e={configure_id:this.stateObj.attributes.configure_id};i.serviceActions.callService("configurator","configure",e).then(function(){t.isConfiguring=!1,t.isStreaming||i.syncActions.fetchAll()},function(){t.isConfiguring=!1})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(177),a=r(u);n(163),n(164),n(168),n(161),n(169),n(167),n(165),n(166),n(160),n(170),e["default"]=new o["default"]({is:"more-info-content",properties:{stateObj:{type:Object,observer:"stateObjChanged"},dialogOpen:{type:Boolean,value:!1,observer:"dialogOpenChanged"}},dialogOpenChanged:function(t){var e=o["default"].dom(this);e.lastChild&&(e.lastChild.dialogOpen=t)},stateObjChanged:function(t,e){var n=o["default"].dom(this);if(!t)return void(n.lastChild&&n.removeChild(n.lastChild));var r=a["default"](t);if(e&&a["default"](e)===r)n.lastChild.dialogOpen=this.dialogOpen,n.lastChild.stateObj=t;else{n.lastChild&&n.removeChild(n.lastChild);var i=document.createElement("more-info-"+r);i.stateObj=t,i.dialogOpen=this.dialogOpen,n.appendChild(i)}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=["entity_picture","friendly_name","unit_of_measurement"];e["default"]=new o["default"]({is:"more-info-default",properties:{stateObj:{type:Object}},computeDisplayAttributes:function(t){return t?Object.keys(t.attributes).filter(function(t){return-1===u.indexOf(t)}):[]},getAttributeValue:function(t,e){return t.attributes[e]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(31),e["default"]=new u["default"]({is:"more-info-group",behaviors:[s["default"]],properties:{stateObj:{type:Object},states:{type:Array,bindNuclear:[i.moreInfoGetters.currentEntity,i.entityGetters.entityMap,function(t,e){return t?t.attributes.entity_id.map(e.get.bind(e)):[]}]}},updateStates:function(){this.states=this.stateObj&&this.stateObj.attributes.entity_id?stateStore.gets(this.stateObj.attributes.entity_id).toArray():[]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a);n(139);var c=["brightness","xy_color"];e["default"]=new u["default"]({is:"more-info-light",properties:{stateObj:{type:Object,observer:"stateObjChanged"},brightnessSliderValue:{type:Number,value:0}},stateObjChanged:function(t){var e=this;t&&"on"===t.state&&(this.brightnessSliderValue=t.attributes.brightness),this.async(function(){return e.fire("iron-resize")},500)},computeClassNames:function(t){return s["default"](t,c)},brightnessSliderChanged:function(t){var e=parseInt(t.target.value,10);isNaN(e)||(0===e?i.serviceActions.callTurnOff(this.stateObj.entityId):i.serviceActions.callService("light","turn_on",{entity_id:this.stateObj.entityId,brightness:e}))},colorPicked:function(t){var e=t.detail.rgb;i.serviceActions.callService("light","turn_on",{entity_id:this.stateObj.entityId,rgb_color:[e.r,e.g,e.b]})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a),c=["volume_level"];e["default"]=new u["default"]({is:"more-info-media_player",properties:{stateObj:{type:Object,observer:"stateObjChanged"},isOff:{type:Boolean,value:!1},isPlaying:{type:Boolean,value:!1},isMuted:{type:Boolean,value:!1},volumeSliderValue:{type:Number,value:0},supportsPause:{type:Boolean,value:!1},supportsVolumeSet:{type:Boolean,value:!1},supportsVolumeMute:{type:Boolean,value:!1},supportsPreviousTrack:{type:Boolean,value:!1},supportsNextTrack:{type:Boolean,value:!1},supportsTurnOn:{type:Boolean,value:!1},supportsTurnOff:{type:Boolean,value:!1}},stateObjChanged:function(t){var e=this;t&&(this.isOff="off"===t.state,this.isPlaying="playing"===t.state,this.volumeSliderValue=100*t.attributes.volume_level,this.isMuted=t.attributes.is_volume_muted,this.supportsPause=0!==(1&t.attributes.supported_media_commands),this.supportsVolumeSet=0!==(4&t.attributes.supported_media_commands),this.supportsVolumeMute=0!==(8&t.attributes.supported_media_commands),this.supportsPreviousTrack=0!==(16&t.attributes.supported_media_commands),this.supportsNextTrack=0!==(32&t.attributes.supported_media_commands),this.supportsTurnOn=0!==(128&t.attributes.supported_media_commands),this.supportsTurnOff=0!==(256&t.attributes.supported_media_commands)),this.async(function(){return e.fire("iron-resize")},500)},computeClassNames:function(t){return s["default"](t,c)},computeIsOff:function(t){return"off"===t.state},computeMuteVolumeIcon:function(t){return t?"av:volume-off":"av:volume-up"},computePlaybackControlIcon:function(){return this.isPlaying?this.supportsPause?"av:pause":"av:stop":"av:play-arrow"},computeHidePowerButton:function(t,e,n){return t?!e:!n},handleTogglePower:function(){this.callService(this.isOff?"turn_on":"turn_off")},handlePrevious:function(){this.callService("media_previous_track")},handlePlaybackControl:function(){this.callService("media_play_pause")},handleNext:function(){this.callService("media_next_track")},handleVolumeTap:function(){this.supportsVolumeMute&&this.callService("volume_mute",{is_volume_muted:!this.isMuted})},volumeSliderChanged:function(t){var e=parseFloat(t.target.value),n=e>0?e/100:0;this.callService("volume_set",{volume_level:n})},callService:function(t,e){var n=e||{};n.entity_id=this.stateObj.entityId,i.serviceActions.callService("media_player",t,n)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"more-info-script",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(63),u=r(o),a=i.util.parseDateTime;e["default"]=new Polymer({is:"more-info-sun",properties:{stateObj:{type:Object},risingDate:{type:Object,computed:"computeRising(stateObj)"},settingDate:{type:Object,computed:"computeSetting(stateObj)"}},computeRising:function(t){return a(t.attributes.next_rising)},computeSetting:function(t){return a(t.attributes.next_setting)},computeOrder:function(t,e){return t>e?["set","ris"]:["ris","set"]},itemCaption:function(t){return"ris"===t?"Rising ":"Setting "},itemDate:function(t){return"ris"===t?this.risingDate:this.settingDate},itemValue:function(t){return u["default"](this.itemDate(t))}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a),c=["away_mode"];e["default"]=new u["default"]({is:"more-info-thermostat",properties:{stateObj:{type:Object,observer:"stateObjChanged"},tempMin:{type:Number},tempMax:{type:Number},targetTemperatureSliderValue:{type:Number},awayToggleChecked:{type:Boolean}},stateObjChanged:function(t){this.targetTemperatureSliderValue=t.state,this.awayToggleChecked="on"===t.attributes.away_mode,this.tempMin=t.attributes.min_temp,this.tempMax=t.attributes.max_temp},computeClassNames:function(t){return s["default"](t,c)},targetTemperatureSliderChanged:function(t){var e=parseInt(t.target.value,10);isNaN(e)||i.serviceActions.callService("thermostat","set_temperature",{entity_id:this.stateObj.entityId,temperature:e})},toggleChanged:function(t){var e=t.target.checked;e&&"off"===this.stateObj.attributes.away_mode?this.service_set_away(!0):e||"on"!==this.stateObj.attributes.away_mode||this.service_set_away(!1)},service_set_away:function(t){var e=this;i.serviceActions.callService("thermostat","set_away_mode",{away_mode:t,entity_id:this.stateObj.entityId}).then(function(){return e.stateObjChanged(e.stateObj)})}}),t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2);e["default"]=new Polymer({is:"more-info-updater",properties:{stateObj:{type:Object}},updateTapped:function(){r.serviceActions.callService("updater","update",{})},linkTapped:function(){window.open(this.stateObj.attributes.link,"_blank")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17),n(32),e["default"]=new o["default"]({is:"state-card-configurator",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17);var u=["playing","paused"];e["default"]=new o["default"]({is:"state-card-media_player",properties:{stateObj:{type:Object},isPlaying:{type:Boolean,computed:"computeIsPlaying(stateObj)"}},computeIsPlaying:function(t){return-1!==u.indexOf(t.state)},computePrimaryText:function(t,e){return e?t.attributes.media_title:t.stateDisplay},computeSecondaryText:function(t){var e=void 0;return"music"===t.attributes.media_content_type?t.attributes.media_artist:"tvshow"===t.attributes.media_content_type?(e=t.attributes.media_series_title,t.attributes.media_season&&t.attributes.media_episode&&(e+=" S"+t.attributes.media_season+"E"+t.attributes.media_episode),e):t.attributes.app_name?t.attributes.app_name:""}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(32),n(60),e["default"]=new o["default"]({is:"state-card-scene",properties:{stateObj:{type:Object},allowToggle:{type:Boolean,value:!1,computed:"computeAllowToggle(stateObj)"}},computeAllowToggle:function(t){return"off"===t.state||t.attributes.active_requested}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17),e["default"]=new o["default"]({is:"state-card-thermostat",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e){"use strict";function n(t){return{attached:function(){var e=this;this.__unwatchFns=Object.keys(this.properties).reduce(function(n,r){if(!("bindNuclear"in e.properties[r]))return n;var i=e.properties[r].bindNuclear;if(!i)throw new Error("Undefined getter specified for key "+r);return e[r]=t.evaluate(i),n.concat(t.observe(i,function(t){e[r]=t}))},[])},detached:function(){for(;this.__unwatchFns.length;)this.__unwatchFns.shift()()}}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return-1!==a.indexOf(t.domain)?t.domain:u["default"](t.entityId)?"toggle":"display"}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i;var o=n(61),u=r(o),a=["thermostat","configurator","scene","media_player"];t.exports=e["default"]},function(t,e){"use strict";function n(t){return-1!==r.indexOf(t.domain)?t.domain:"default"}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n;var r=["light","group","sun","configurator","thermostat","script","media_player","camera","updater"];t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){var r=1-t-e,i=n/255,o=i/e*t,u=i/e*r,a=1.612*o-.203*i-.302*u,s=.509*-o+1.412*i+.066*u,c=.026*o-.072*i+.962*u;a=.0031308>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055,s=.0031308>=s?12.92*s:1.055*Math.pow(s,1/2.4)-.055,c=.0031308>=c?12.92*c:1.055*Math.pow(c,1/2.4)-.055;var l=Math.max(a,s,c);return a/=l,s/=l,c/=l,a=255*a,0>a&&(a=255),s=255*s,0>s&&(s=255),c=255*c,0>c&&(c=255),[a,s,c]}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){var r;(function(t,i,o){"use strict";(function(){function u(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return"function"==typeof t}function s(t){return"object"==typeof t&&null!==t}function c(t){W=t}function l(t){Z=t}function f(){return function(){t.nextTick(_)}}function d(){return function(){q(_)}}function p(){var t=0,e=new tt(_),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function h(){var t=new MessageChannel;return t.port1.onmessage=_,function(){t.port2.postMessage(0)}}function v(){return function(){setTimeout(_,1)}}function _(){for(var t=0;$>t;t+=2){var e=rt[t],n=rt[t+1];e(n),rt[t]=void 0,rt[t+1]=void 0}$=0}function y(){try{var t=n(250);return q=t.runOnLoop||t.runOnContext,d()}catch(e){return v()}}function m(){}function g(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function O(t){try{return t.then}catch(e){return at.error=e,at}}function w(t,e,n,r){try{t.call(e,n,r)}catch(i){return i}}function S(t,e,n){Z(function(t){var r=!1,i=w(n,e,function(n){r||(r=!0,e!==n?j(t,n):I(t,n))},function(e){r||(r=!0,P(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&i&&(r=!0,P(t,i))},t)}function M(t,e){e._state===ot?I(t,e._result):e._state===ut?P(t,e._result):D(e,void 0,function(e){j(t,e)},function(e){P(t,e)})}function T(t,e){if(e.constructor===t.constructor)M(t,e);else{var n=O(e);n===at?P(t,at.error):void 0===n?I(t,e):a(n)?S(t,e,n):I(t,e)}}function j(t,e){t===e?P(t,g()):u(e)?T(t,e):I(t,e); +}function E(t){t._onerror&&t._onerror(t._result),C(t)}function I(t,e){t._state===it&&(t._result=e,t._state=ot,0!==t._subscribers.length&&Z(C,t))}function P(t,e){t._state===it&&(t._state=ut,t._result=e,Z(E,t))}function D(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+ot]=n,i[o+ut]=r,0===o&&t._state&&Z(C,t)}function C(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,i,o=t._result,u=0;uu;u++)D(r.resolve(t[u]),void 0,e,n);return i}function H(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(m);return j(n,t),n}function Y(t){var e=this,n=new e(m);return P(n,t),n}function G(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function U(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(t){this._id=ht++,this._state=void 0,this._result=void 0,this._subscribers=[],m!==t&&(a(t)||G(),this instanceof F||U(),L(this,t))}function B(){var t;if("undefined"!=typeof i)t=i;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(t.Promise=vt)}var V;V=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var q,W,K,J=V,$=0,Z=({}.toString,function(t,e){rt[$]=t,rt[$+1]=e,$+=2,2===$&&(W?W(_):K())}),X="undefined"!=typeof window?window:void 0,Q=X||{},tt=Q.MutationObserver||Q.WebKitMutationObserver,et="undefined"!=typeof t&&"[object process]"==={}.toString.call(t),nt="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,rt=new Array(1e3);K=et?f():tt?p():nt?h():void 0===X?y():v();var it=void 0,ot=1,ut=2,at=new A,st=new A;N.prototype._validateInput=function(t){return J(t)},N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._init=function(){this._result=new Array(this.length)};var ct=N;N.prototype._enumerate=function(){for(var t=this,e=t.length,n=t.promise,r=t._input,i=0;n._state===it&&e>i;i++)t._eachEntry(r[i],i)},N.prototype._eachEntry=function(t,e){var n=this,r=n._instanceConstructor;s(t)?t.constructor===r&&t._state!==it?(t._onerror=null,n._settledAt(t._state,e,t._result)):n._willSettleAt(r.resolve(t),e):(n._remaining--,n._result[e]=t)},N.prototype._settledAt=function(t,e,n){var r=this,i=r.promise;i._state===it&&(r._remaining--,t===ut?P(i,n):r._result[e]=n),0===r._remaining&&I(i,r._result)},N.prototype._willSettleAt=function(t,e){var n=this;D(t,void 0,function(t){n._settledAt(ot,e,t)},function(t){n._settledAt(ut,e,t)})};var lt=R,ft=z,dt=H,pt=Y,ht=0,vt=F;F.all=lt,F.race=ft,F.resolve=dt,F.reject=pt,F._setScheduler=c,F._setAsap=l,F._asap=Z,F.prototype={constructor:F,then:function(t,e){var n=this,r=n._state;if(r===ot&&!t||r===ut&&!e)return this;var i=new this.constructor(m),o=n._result;if(r){var u=arguments[r-1];Z(function(){k(r,i,u,o)})}else D(n,i,t,e);return i},"catch":function(t){return this.then(null,t)}};var _t=B,yt={Promise:vt,polyfill:_t};n(249).amd?(r=function(){return yt}.call(e,n,e,o),!(void 0!==r&&(o.exports=r))):"undefined"!=typeof o&&o.exports?o.exports=yt:"undefined"!=typeof this&&(this.ES6Promise=yt),_t()}).call(void 0)}).call(e,n(246),function(){return this}(),n(247)(t))},function(t,e,n){"use strict";var r=n(65),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};t.exports=o},function(t,e){"use strict";function n(t){return"number"==typeof t&&t>-1&&t%1==0&&r>=t}var r=9007199254740991;t.exports=n},function(t,e,n){"use strict";var r=n(65),i=n(181),o=n(66),u="[object Array]",a=Object.prototype,s=a.toString,c=r(Array,"isArray"),l=c||function(t){return o(t)&&i(t.length)&&s.call(t)==u};t.exports=l},function(t,e,n){"use strict";function r(t){return null==t?!1:i(t)?l.test(s.call(t)):o(t)&&u.test(t)}var i=n(67),o=n(66),u=/^\[object .+?Constructor\]$/,a=Object.prototype,s=Function.prototype.toString,c=a.hasOwnProperty,l=RegExp("^"+s.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(179),i=n(22),o=function(t,e,n){var o=arguments.length<=3||void 0===arguments[3]?null:arguments[3],u=t.evaluate(i.getters.authInfo),a=u.host+"/api/"+n;return new r.Promise(function(t,n){var r=new XMLHttpRequest;r.open(e,a,!0),r.setRequestHeader("X-HA-access",u.authToken),r.onload=function(){if(r.status>199&&r.status<300)t(JSON.parse(r.responseText));else try{n(JSON.parse(r.responseText))}catch(e){n({})}},r.onerror=function(){return n({})},o?r.send(JSON.stringify(o)):r.send()})};e["default"]=o,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],r=n.useStreaming,i=void 0===r?t.evaluate(s.getters.isSupported):r,o=n.rememberAuth,u=void 0===o?!1:o,f=n.host,d=void 0===f?"":f;t.dispatch(a["default"].VALIDATING_AUTH_TOKEN,{authToken:e,host:d}),c.actions.fetchAll(t).then(function(){t.dispatch(a["default"].VALID_AUTH_TOKEN,{authToken:e,host:d,rememberAuth:u}),i?s.actions.start(t,{syncOnInitialConnect:!1}):c.actions.start(t,{skipInitialSync:!0})},function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.message,r=void 0===n?l:n;t.dispatch(a["default"].INVALID_AUTH_TOKEN,{errorMessage:r})})}function o(t){t.dispatch(a["default"].LOG_OUT,{})}Object.defineProperty(e,"__esModule",{value:!0}),e.validate=i,e.logOut=o;var u=n(21),a=r(u),s=n(40),c=n(42),l="Unexpected result from API"},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=[["authAttempt","isValidating"],function(t){return!!t}];e.isValidating=n;var r=[["authAttempt","isInvalid"],function(t){return!!t}];e.isInvalidAttempt=r;var i=["authAttempt","errorMessage"];e.attemptErrorMessage=i;var o=["rememberAuth"];e.rememberAuth=o;var u=[["authAttempt","authToken"],["authAttempt","host"],function(t,e){return{authToken:t,host:e}}];e.attemptAuthInfo=u;var a=["authCurrent","authToken"];e.currentAuthToken=a;var s=[a,["authCurrent","host"],function(t,e){return{authToken:t,host:e}}];e.currentAuthInfo=s;var c=[n,["authAttempt","authToken"],["authCurrent","authToken"],function(t,e,n){return t?e:n}];e.authToken=c;var l=[n,u,s,function(t,e,n){return t?e:n}];e.authInfo=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){if(null==t)throw new TypeError("Cannot destructure undefined")}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n=e.authToken,r=e.host;return d.toImmutable({authToken:n,host:r,isValidating:"true",isInvalid:!1,errorMessage:""})}function s(t,e){return i(e),_.getInitialState()}function c(t,e){var n=e.errorMessage;return t.withMutations(function(t){return t.set("isValidating",!1).set("isInvalid","true").set("errorMessage",n)})}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;n1&&t.set(p,r)})}function a(){return v.getInitialState()}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var n=0;no}Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),o=6e4,u=["currentLogbookDate"];e.currentDate=u;var a=[u,["logbookEntriesUpdated"],function(t,e){return r(e.get(t))}];e.isCurrentStale=a;var s=[u,["logbookEntries"],function(t,e){return e.get(t)||i.toImmutable([])}];e.currentEntries=s;var c=["isLoadingLogbookEntries"];e.isLoadingEntries=c},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({currentLogbookDate:a["default"],isLoadingLogbookEntries:c["default"],logbookEntries:f["default"],logbookEntriesUpdated:p["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(208),a=i(u),s=n(209),c=i(s),l=n(210),f=i(l),d=n(211),p=i(d),h=n(204),v=r(h),_=n(205),y=r(_),m=v;e.actions=m;var g=y;e.getters=g},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n1)for(var n=1;n \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index c3b9a55d683..46dbd30fbae 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit c3b9a55d6839b933042da14d578c43f9a47499dc +Subproject commit 46dbd30fbae80a5421392a8db5fa98de32b89f21 diff --git a/homeassistant/components/frontend/www_static/splash.png b/homeassistant/components/frontend/www_static/splash.png index 3d5411ecb4b2612011c33b5dcbf593864c775857..582140a2bc35f598fc227782ff06039759b39fe5 100644 GIT binary patch delta 51485 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 delta 10902 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 Date: Sat, 29 Aug 2015 23:17:47 -0400 Subject: [PATCH 022/190] Pip requirements and fixes. 1) Reduced the flags being sent to pip. 2) Required a minimum of pip 7.0.0 for Home Assistant. --- homeassistant/util/package.py | 3 +-- requirements.txt | 1 + requirements_all.txt | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/homeassistant/util/package.py b/homeassistant/util/package.py index 3719fecb9ff..75d59970bfb 100644 --- a/homeassistant/util/package.py +++ b/homeassistant/util/package.py @@ -13,8 +13,7 @@ def install_package(package, upgrade=False, target=None): """Install a package on PyPi. Accepts pip compatible package strings. Return boolean if install successfull.""" # Not using 'import pip; pip.main([])' because it breaks the logger - args = [sys.executable, '-m', 'pip', 'install', '--quiet', - '--isolated', '-I', package] + args = [sys.executable, '-m', 'pip', 'install', '--quiet', package] if upgrade: args.append('--upgrade') if target: diff --git a/requirements.txt b/requirements.txt index a21c2db6208..1b7d2396971 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ requests>=2,<3 pyyaml>=3.11,<4 pytz>=2015.4 +pip>=7.0.0 diff --git a/requirements_all.txt b/requirements_all.txt index f9f02b49740..a900846e30d 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2,6 +2,7 @@ requests>=2,<3 pyyaml>=3.11,<4 pytz>=2015.4 +pip>=7.0.0 # Optional, needed for specific components From bea81ddd926c560463aac8f26d4d36b2cf53b457 Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sat, 29 Aug 2015 23:31:33 -0400 Subject: [PATCH 023/190] Minor tweaks Moved another import to the top of main. Forced an exit code of 1 when there is an error initializing. --- homeassistant/__main__.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index c6f0fd97b98..815404b1de1 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -8,6 +8,7 @@ import importlib from homeassistant import bootstrap import homeassistant.config as config_util +from homeassistant.const import EVENT_HOMEASSISTANT_START def validate_python(): @@ -16,7 +17,7 @@ def validate_python(): if major < 3 or (major == 3 and minor < 4): print("Home Assistant requires atleast Python 3.4") - sys.exit() + sys.exit(1) def ensure_pip(): @@ -26,7 +27,7 @@ def ensure_pip(): print("Home Assistant requires 'pip' to be installed.") print("Please install pip: " "https://pip.pypa.io/en/latest/installing.html") - sys.exit() + sys.exit(1) def ensure_config_path(config_dir): @@ -37,17 +38,17 @@ def ensure_config_path(config_dir): # Test if configuration directory exists if not os.path.isdir(config_dir): - if config_dir == config_util.get_default_config_dir(): - try: - os.mkdir(config_dir) - except OSError: - print(('Fatal Error: Unable to create default configuration ' - 'directory {} ').format(config_dir)) - sys.exit() - else: + if config_dir != config_util.get_default_config_dir(): print(('Fatal Error: Specified configuration directory does ' 'not exist {} ').format(config_dir)) - sys.exit() + sys.exit(1) + + try: + os.mkdir(config_dir) + except OSError: + print(('Fatal Error: Unable to create default configuration ' + 'directory {} ').format(config_dir)) + sys.exit(1) # Test if library directory exists if not os.path.isdir(lib_dir): @@ -56,13 +57,13 @@ def ensure_config_path(config_dir): except OSError: print(('Fatal Error: Unable to create library ' 'directory {} ').format(lib_dir)) - sys.exit() + sys.exit(1) config_path = config_util.ensure_config_exists(config_dir) if config_path is None: print('Error getting configuration path') - sys.exit() + sys.exit(1) return config_path @@ -110,7 +111,7 @@ def main(): if hass.config.api is not None: import webbrowser webbrowser.open(hass.config.api.base_url) - from homeassistant.const import EVENT_HOMEASSISTANT_START + hass.bus.listen_once(EVENT_HOMEASSISTANT_START, open_browser) hass.start() From 7343e33063d561dbc5ec2ef7930b7d081a9c7f4a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 29 Aug 2015 22:02:19 -0700 Subject: [PATCH 024/190] Some more frontend bug fixes --- homeassistant/components/frontend/version.py | 2 +- .../components/frontend/www_static/frontend.html | 16 ++++++++-------- .../frontend/www_static/home-assistant-polymer | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 6eea0024c30..f4a1ad184e7 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "441ca74ed89c1db053bc2f55d57a48c6" +VERSION = "e9060d58fc9034468cfefa9794026d0c" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 06f43dec560..e1b3b84dfc3 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -3825,7 +3825,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN } .content { padding: 0 16px 16px; - }
-

Initializing

+
Initializing
From 4cadc7df963f39f650c8e889d0bfb1bfb802e998 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Aug 2015 13:48:40 -0700 Subject: [PATCH 044/190] Update demo component --- homeassistant/components/demo.py | 10 +++++----- homeassistant/components/light/demo.py | 9 ++++----- homeassistant/components/switch/demo.py | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/demo.py b/homeassistant/components/demo.py index 71621502878..5dc91b28370 100644 --- a/homeassistant/components/demo.py +++ b/homeassistant/components/demo.py @@ -46,12 +46,12 @@ def setup(hass, config): hass, component, {component: {CONF_PLATFORM: 'demo'}}) # Setup room groups - lights = hass.states.entity_ids('light') - switches = hass.states.entity_ids('switch') + lights = sorted(hass.states.entity_ids('light')) + switches = sorted(hass.states.entity_ids('switch')) media_players = sorted(hass.states.entity_ids('media_player')) - group.setup_group(hass, 'living room', [lights[0], lights[1], switches[0], + group.setup_group(hass, 'living room', [lights[2], lights[1], switches[0], media_players[1]]) - group.setup_group(hass, 'bedroom', [lights[2], switches[1], + group.setup_group(hass, 'bedroom', [lights[0], switches[1], media_players[0]]) # Setup IP Camera @@ -68,7 +68,7 @@ def setup(hass, config): hass, 'script', {'script': { 'demo': { - 'alias': 'Demo {}'.format(lights[0]), + 'alias': 'Toggle {}'.format(lights[0].split('.')[1]), 'sequence': [{ 'execute_service': 'light.turn_off', 'service_data': {ATTR_ENTITY_ID: lights[0]} diff --git a/homeassistant/components/light/demo.py b/homeassistant/components/light/demo.py index 5c6b1ae6165..40a8cc023c5 100644 --- a/homeassistant/components/light/demo.py +++ b/homeassistant/components/light/demo.py @@ -12,9 +12,8 @@ from homeassistant.components.light import ( LIGHT_COLORS = [ - [0.861, 0.3259], - [0.6389, 0.3028], - [0.1684, 0.0416] + [0.368, 0.180], + [0.460, 0.470], ] @@ -22,8 +21,8 @@ def setup_platform(hass, config, add_devices_callback, discovery_info=None): """ Find and return demo lights. """ add_devices_callback([ DemoLight("Bed Light", False), - DemoLight("Ceiling", True), - DemoLight("Kitchen", True) + DemoLight("Ceiling Lights", True, LIGHT_COLORS[0]), + DemoLight("Kitchen Lights", True, LIGHT_COLORS[1]) ]) diff --git a/homeassistant/components/switch/demo.py b/homeassistant/components/switch/demo.py index 7b2f077d6a8..c097722ac4d 100644 --- a/homeassistant/components/switch/demo.py +++ b/homeassistant/components/switch/demo.py @@ -13,7 +13,7 @@ from homeassistant.const import DEVICE_DEFAULT_NAME def setup_platform(hass, config, add_devices_callback, discovery_info=None): """ Find and return demo switches. """ add_devices_callback([ - DemoSwitch('Ceiling', True), + DemoSwitch('Decorative Lights', True), DemoSwitch('AC', False) ]) From fb4121d4b4deb26159229176cccbdc229ff57563 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Aug 2015 15:07:37 -0700 Subject: [PATCH 045/190] Fix components being loaded twice --- homeassistant/bootstrap.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 03cb762d56e..98c7ae63a8b 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -53,9 +53,6 @@ def setup_component(hass, domain, config=None): return False for component in components: - if component in hass.config.components: - continue - if not _setup_component(hass, component, config): return False @@ -78,6 +75,8 @@ def _handle_requirements(hass, component, name): def _setup_component(hass, domain, config): """ Setup a component for Home Assistant. """ + if domain in hass.config.components: + return True component = loader.get_component(domain) missing_deps = [dep for dep in component.DEPENDENCIES From 1958dfd0c110b475d294380ff086e31ba46e2d2b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Aug 2015 15:45:26 -0700 Subject: [PATCH 046/190] Bugfix release frontend --- homeassistant/components/frontend/version.py | 2 +- .../frontend/www_static/frontend.html | 24 ++++++++++++------- .../www_static/home-assistant-polymer | 2 +- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index f4a1ad184e7..f6ccfbe7a78 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "e9060d58fc9034468cfefa9794026d0c" +VERSION = "6558cad990c03dd96f9e8b1035495cb6" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index e1b3b84dfc3..19d13a1f889 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -3768,7 +3768,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN pointer-events: none; }
\ No newline at end of file +t._nextDay&&(t._a[lr]=24)}}function Ot(t){var e,n,r,i,o,u,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(o=1,u=4,n=mt(e.GG,t._a[ar],lt(Dt(),1,4).year),r=mt(e.W,1),i=mt(e.E,1)):(o=t._locale._week.dow,u=t._locale._week.doy,n=mt(e.gg,t._a[ar],lt(Dt(),o,u).year),r=mt(e.w,1),null!=e.d?(i=e.d,o>i&&++r):i=null!=e.e?e.e+o:o),a=_t(n,r,i,u,o),t._a[ar]=a.year,t._dayOfYear=a.dayOfYear}function wt(t){if(t._f===e.ISO_8601)return void rt(t);t._a=[],l(t).empty=!0;var n,r,i,o,u,a=""+t._i,s=a.length,c=0;for(i=z(t._f,t._locale).match(Gn)||[],n=0;n0&&l(t).unusedInput.push(u),a=a.slice(a.indexOf(r)+r.length),c+=r.length),Bn[o]?(r?l(t).empty=!1:l(t).unusedTokens.push(o),V(o,r,t)):t._strict&&!r&&l(t).unusedTokens.push(o);l(t).charsLeftOver=s-c,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[lr]<=12&&t._a[lr]>0&&(l(t).bigHour=void 0),t._a[lr]=St(t._locale,t._a[lr],t._meridiem),bt(t),Q(t)}function St(t,e,n){var r;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(r=t.isPM(n),r&&12>e&&(e+=12),r||12!==e||(e=0),e):e}function Mt(t){var e,n,r,i,o;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(i=0;io)&&(r=o,n=e));a(t,n||e)}function Tt(t){if(!t._d){var e=I(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],bt(t)}}function jt(t){var e=new h(Q(Et(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Et(t){var e=t._i,n=t._f;return t._locale=t._locale||T(t._l),null===e||void 0===n&&""===e?d({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new h(Q(e)):(r(n)?Mt(t):n?wt(t):i(e)?t._d=e:It(t),t))}function It(t){var n=t._i;void 0===n?t._d=new Date:i(n)?t._d=new Date(+n):"string"==typeof n?it(t):r(n)?(t._a=o(n.slice(0),function(t){return parseInt(t,10)}),bt(t)):"object"==typeof n?Tt(t):"number"==typeof n?t._d=new Date(n):e.createFromInputFallback(t)}function Pt(t,e,n,r,i){var o={};return"boolean"==typeof n&&(r=n,n=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=i,o._l=n,o._i=t,o._f=e,o._strict=r,jt(o)}function Dt(t,e,n,r){return Pt(t,e,n,r,!1)}function Ct(t,e){var n,i;if(1===e.length&&r(e[0])&&(e=e[0]),!e.length)return Dt();for(n=e[0],i=1;it&&(t=-t,n="-"),n+x(~~(t/60),2)+e+x(~~t%60,2)})}function Rt(t){var e=(t||"").match(nr)||[],n=e[e.length-1]||[],r=(n+"").match(Tr)||["-",0,0],i=+(60*r[1])+y(r[2]);return"+"===r[0]?i:-i}function zt(t,n){var r,o;return n._isUTC?(r=n.clone(),o=(v(t)||i(t)?+t:+Dt(t))-+r,r._d.setTime(+r._d+o),e.updateOffset(r,!1),r):Dt(t).local()}function Ht(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Yt(t,n){var r,i=this._offset||0;return null!=t?("string"==typeof t&&(t=Rt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&n&&(r=Ht(this)),this._offset=t,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==t&&(!n||this._changeInProgress?ne(this,Zt(t-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?i:Ht(this)}function Gt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Ut(t){return this.utcOffset(0,t)}function Ft(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ht(this),"m")),this}function Bt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Rt(this._i)),this}function Vt(t){return t=t?Dt(t).utcOffset():0,(this.utcOffset()-t)%60===0}function qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Wt(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var t={};if(p(t,this),t=Et(t),t._a){var e=t._isUTC?s(t._a):Dt(t._a);this._isDSTShifted=this.isValid()&&m(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Kt(){return!this._isUTC}function Jt(){return this._isUTC}function $t(){return this._isUTC&&0===this._offset}function Zt(t,e){var n,r,i,o=t,a=null;return Lt(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(o={},e?o[e]=t:o.milliseconds=t):(a=jr.exec(t))?(n="-"===a[1]?-1:1,o={y:0,d:y(a[cr])*n,h:y(a[lr])*n,m:y(a[fr])*n,s:y(a[dr])*n,ms:y(a[pr])*n}):(a=Er.exec(t))?(n="-"===a[1]?-1:1,o={y:Xt(a[2],n),M:Xt(a[3],n),d:Xt(a[4],n),h:Xt(a[5],n),m:Xt(a[6],n),s:Xt(a[7],n),w:Xt(a[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(i=te(Dt(o.from),Dt(o.to)),o={},o.ms=i.milliseconds,o.M=i.months),r=new kt(o),Lt(t)&&u(t,"_locale")&&(r._locale=t._locale),r}function Xt(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Qt(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function te(t,e){var n;return e=zt(e,t),t.isBefore(e)?n=Qt(t,e):(n=Qt(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n}function ee(t,e){return function(n,r){var i,o;return null===r||isNaN(+r)||(nt(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),o=n,n=r,r=o),n="string"==typeof n?+n:n,i=Zt(n,r),ne(this,i,t),this}}function ne(t,n,r,i){var o=n._milliseconds,u=n._days,a=n._months;i=null==i?!0:i,o&&t._d.setTime(+t._d+o*r),u&&C(t,"Date",D(t,"Date")+u*r),a&&$(t,D(t,"Month")+a*r),i&&e.updateOffset(t,u||a)}function re(t,e){var n=t||Dt(),r=zt(n,this).startOf("day"),i=this.diff(r,"days",!0),o=-6>i?"sameElse":-1>i?"lastWeek":0>i?"lastDay":1>i?"sameDay":2>i?"nextDay":7>i?"nextWeek":"sameElse";return this.format(e&&e[o]||this.localeData().calendar(o,this,Dt(n)))}function ie(){return new h(this)}function oe(t,e){var n;return e=E("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=v(t)?t:Dt(t),+this>+t):(n=v(t)?+t:+Dt(t),n<+this.clone().startOf(e))}function ue(t,e){var n;return e=E("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=v(t)?t:Dt(t),+t>+this):(n=v(t)?+t:+Dt(t),+this.clone().endOf(e)e-o?(n=t.clone().add(i-1,"months"),r=(e-o)/(o-n)):(n=t.clone().add(i+1,"months"),r=(e-o)/(n-o)),-(i+r)}function fe(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function de(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(n=Dt([2e3,1]).day(e),r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[e]=new RegExp(r.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function Ue(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Re(t,this.localeData()),this.add(t-e,"d")):e}function Fe(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Be(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ve(t,e){k(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qe(t,e){return e._meridiemParse}function We(t){return"p"===(t+"").toLowerCase().charAt(0)}function Ke(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function Je(t,e){e[pr]=y(1e3*("0."+t))}function $e(){return this._isUTC?"UTC":""}function Ze(){return this._isUTC?"Coordinated Universal Time":""}function Xe(t){return Dt(1e3*t)}function Qe(){return Dt.apply(null,arguments).parseZone()}function tn(t,e,n){var r=this._calendar[t];return"function"==typeof r?r.call(e,n):r}function en(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function nn(){return this._invalidDate}function rn(t){return this._ordinal.replace("%d",t)}function on(t){return t}function un(t,e,n,r){var i=this._relativeTime[n];return"function"==typeof i?i(t,e,n,r):i.replace(/%d/i,t)}function an(t,e){var n=this._relativeTime[t>0?"future":"past"];return"function"==typeof n?n(e):n.replace(/%s/i,e)}function sn(t){var e,n;for(n in t)e=t[n],"function"==typeof e?this[n]=e:this["_"+n]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function cn(t,e,n,r){var i=T(),o=s().set(r,e);return i[n](o,t)}function ln(t,e,n,r,i){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return cn(t,e,n,i);var o,u=[];for(o=0;r>o;o++)u[o]=cn(t,o,n,i);return u}function fn(t,e){return ln(t,e,"months",12,"month")}function dn(t,e){return ln(t,e,"monthsShort",12,"month")}function pn(t,e){return ln(t,e,"weekdays",7,"day")}function hn(t,e){return ln(t,e,"weekdaysShort",7,"day")}function vn(t,e){return ln(t,e,"weekdaysMin",7,"day")}function _n(){var t=this._data;return this._milliseconds=$r(this._milliseconds),this._days=$r(this._days),this._months=$r(this._months),t.milliseconds=$r(t.milliseconds),t.seconds=$r(t.seconds),t.minutes=$r(t.minutes),t.hours=$r(t.hours),t.months=$r(t.months),t.years=$r(t.years),this}function yn(t,e,n,r){var i=Zt(e,n);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function mn(t,e){return yn(this,t,e,1)}function gn(t,e){return yn(this,t,e,-1)}function bn(t){return 0>t?Math.floor(t):Math.ceil(t)}function On(){var t,e,n,r,i,o=this._milliseconds,u=this._days,a=this._months,s=this._data;return o>=0&&u>=0&&a>=0||0>=o&&0>=u&&0>=a||(o+=864e5*bn(Sn(a)+u),u=0,a=0),s.milliseconds=o%1e3,t=_(o/1e3),s.seconds=t%60,e=_(t/60),s.minutes=e%60,n=_(e/60),s.hours=n%24,u+=_(n/24),i=_(wn(u)),a+=i,u-=bn(Sn(i)),r=_(a/12),a%=12,s.days=u,s.months=a,s.years=r,this}function wn(t){return 4800*t/146097}function Sn(t){return 146097*t/4800}function Mn(t){var e,n,r=this._milliseconds;if(t=E(t),"month"===t||"year"===t)return e=this._days+r/864e5,n=this._months+wn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(Sn(this._months)),t){case"week":return e/7+r/6048e5;case"day":return e+r/864e5;case"hour":return 24*e+r/36e5;case"minute":return 1440*e+r/6e4;case"second":return 86400*e+r/1e3;case"millisecond":return Math.floor(864e5*e)+r;default:throw new Error("Unknown unit "+t)}}function Tn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*y(this._months/12)}function jn(t){return function(){return this.as(t)}}function En(t){return t=E(t),this[t+"s"]()}function In(t){return function(){return this._data[t]}}function Pn(){return _(this.days()/7)}function Dn(t,e,n,r,i){return i.relativeTime(e||1,!!n,t,r)}function Cn(t,e,n){var r=Zt(t).abs(),i=di(r.as("s")),o=di(r.as("m")),u=di(r.as("h")),a=di(r.as("d")),s=di(r.as("M")),c=di(r.as("y")),l=i0,l[4]=n,Dn.apply(null,l)}function An(t,e){return void 0===pi[t]?!1:void 0===e?pi[t]:(pi[t]=e,!0)}function xn(t){var e=this.localeData(),n=Cn(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function kn(){var t,e,n,r=hi(this._milliseconds)/1e3,i=hi(this._days),o=hi(this._months);t=_(r/60),e=_(t/60),r%=60,t%=60,n=_(o/12),o%=12;var u=n,a=o,s=i,c=e,l=t,f=r,d=this.asSeconds();return d?(0>d?"-":"")+"P"+(u?u+"Y":"")+(a?a+"M":"")+(s?s+"D":"")+(c||l||f?"T":"")+(c?c+"H":"")+(l?l+"M":"")+(f?f+"S":""):"P0D"}var Ln,Nn,Rn=e.momentProperties=[],zn=!1,Hn={},Yn={},Gn=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Un=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Fn={},Bn={},Vn=/\d/,qn=/\d\d/,Wn=/\d{3}/,Kn=/\d{4}/,Jn=/[+-]?\d{6}/,$n=/\d\d?/,Zn=/\d{1,3}/,Xn=/\d{1,4}/,Qn=/[+-]?\d{1,6}/,tr=/\d+/,er=/[+-]?\d+/,nr=/Z|[+-]\d\d:?\d\d/gi,rr=/[+-]?\d+(\.\d{1,3})?/,ir=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,or={},ur={},ar=0,sr=1,cr=2,lr=3,fr=4,dr=5,pr=6;k("M",["MM",2],"Mo",function(){return this.month()+1}),k("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),k("MMMM",0,0,function(t){return this.localeData().months(this,t)}),j("month","M"),Y("M",$n),Y("MM",$n,qn),Y("MMM",ir),Y("MMMM",ir),F(["M","MM"],function(t,e){e[sr]=y(t)-1}),F(["MMM","MMMM"],function(t,e,n,r){var i=n._locale.monthsParse(t,r,n._strict);null!=i?e[sr]=i:l(n).invalidMonth=t});var hr="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),vr="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),_r={};e.suppressDeprecationWarnings=!1;var yr=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],gr=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],br=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=et("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),k(0,["YY",2],0,function(){return this.year()%100}),k(0,["YYYY",4],0,"year"),k(0,["YYYYY",5],0,"year"),k(0,["YYYYYY",6,!0],0,"year"),j("year","y"),Y("Y",er),Y("YY",$n,qn),Y("YYYY",Xn,Kn),Y("YYYYY",Qn,Jn),Y("YYYYYY",Qn,Jn),F(["YYYYY","YYYYYY"],ar),F("YYYY",function(t,n){n[ar]=2===t.length?e.parseTwoDigitYear(t):y(t)}),F("YY",function(t,n){n[ar]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return y(t)+(y(t)>68?1900:2e3)};var Or=P("FullYear",!1);k("w",["ww",2],"wo","week"),k("W",["WW",2],"Wo","isoWeek"),j("week","w"),j("isoWeek","W"),Y("w",$n),Y("ww",$n,qn),Y("W",$n),Y("WW",$n,qn),B(["w","ww","W","WW"],function(t,e,n,r){e[r.substr(0,1)]=y(t)});var wr={dow:0,doy:6};k("DDD",["DDDD",3],"DDDo","dayOfYear"),j("dayOfYear","DDD"),Y("DDD",Zn),Y("DDDD",Wn),F(["DDD","DDDD"],function(t,e,n){n._dayOfYear=y(t)}),e.ISO_8601=function(){};var Sr=et("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return this>t?this:t}),Mr=et("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return t>this?this:t});Nt("Z",":"),Nt("ZZ",""),Y("Z",nr),Y("ZZ",nr),F(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Rt(t)});var Tr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var jr=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Er=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Zt.fn=kt.prototype;var Ir=ee(1,"add"),Pr=ee(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Dr=et("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});k(0,["gg",2],0,function(){return this.weekYear()%100}),k(0,["GG",2],0,function(){return this.isoWeekYear()%100}),De("gggg","weekYear"),De("ggggg","weekYear"),De("GGGG","isoWeekYear"),De("GGGGG","isoWeekYear"),j("weekYear","gg"),j("isoWeekYear","GG"),Y("G",er),Y("g",er),Y("GG",$n,qn),Y("gg",$n,qn),Y("GGGG",Xn,Kn),Y("gggg",Xn,Kn),Y("GGGGG",Qn,Jn),Y("ggggg",Qn,Jn),B(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,r){e[r.substr(0,2)]=y(t)}),B(["gg","GG"],function(t,n,r,i){n[i]=e.parseTwoDigitYear(t)}),k("Q",0,0,"quarter"),j("quarter","Q"),Y("Q",Vn),F("Q",function(t,e){e[sr]=3*(y(t)-1)}),k("D",["DD",2],"Do","date"),j("date","D"),Y("D",$n),Y("DD",$n,qn),Y("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),F(["D","DD"],cr),F("Do",function(t,e){e[cr]=y(t.match($n)[0],10)});var Cr=P("Date",!0);k("d",0,"do","day"),k("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),k("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),k("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),k("e",0,0,"weekday"),k("E",0,0,"isoWeekday"),j("day","d"),j("weekday","e"),j("isoWeekday","E"),Y("d",$n),Y("e",$n),Y("E",$n),Y("dd",ir),Y("ddd",ir),Y("dddd",ir),B(["dd","ddd","dddd"],function(t,e,n){var r=n._locale.weekdaysParse(t);null!=r?e.d=r:l(n).invalidWeekday=t}),B(["d","e","E"],function(t,e,n,r){e[r]=y(t)});var Ar="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),xr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),kr="Su_Mo_Tu_We_Th_Fr_Sa".split("_");k("H",["HH",2],0,"hour"),k("h",["hh",2],0,function(){return this.hours()%12||12}),Ve("a",!0),Ve("A",!1),j("hour","h"),Y("a",qe),Y("A",qe),Y("H",$n),Y("h",$n),Y("HH",$n,qn),Y("hh",$n,qn),F(["H","HH"],lr),F(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),F(["h","hh"],function(t,e,n){e[lr]=y(t),l(n).bigHour=!0});var Lr=/[ap]\.?m?\.?/i,Nr=P("Hours",!0);k("m",["mm",2],0,"minute"),j("minute","m"),Y("m",$n),Y("mm",$n,qn),F(["m","mm"],fr);var Rr=P("Minutes",!1);k("s",["ss",2],0,"second"),j("second","s"),Y("s",$n),Y("ss",$n,qn),F(["s","ss"],dr);var zr=P("Seconds",!1);k("S",0,0,function(){return~~(this.millisecond()/100)}),k(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),k(0,["SSS",3],0,"millisecond"),k(0,["SSSS",4],0,function(){return 10*this.millisecond()}),k(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),k(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),k(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),k(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),k(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),j("millisecond","ms"),Y("S",Zn,Vn),Y("SS",Zn,qn),Y("SSS",Zn,Wn);var Hr;for(Hr="SSSS";Hr.length<=9;Hr+="S")Y(Hr,tr);for(Hr="S";Hr.length<=9;Hr+="S")F(Hr,Je);var Yr=P("Milliseconds",!1);k("z",0,0,"zoneAbbr"),k("zz",0,0,"zoneName");var Gr=h.prototype;Gr.add=Ir,Gr.calendar=re,Gr.clone=ie,Gr.diff=ce,Gr.endOf=Oe,Gr.format=pe,Gr.from=he,Gr.fromNow=ve,Gr.to=_e,Gr.toNow=ye,Gr.get=A,Gr.invalidAt=Pe,Gr.isAfter=oe,Gr.isBefore=ue,Gr.isBetween=ae,Gr.isSame=se,Gr.isValid=Ee,Gr.lang=Dr,Gr.locale=me,Gr.localeData=ge,Gr.max=Mr,Gr.min=Sr,Gr.parsingFlags=Ie,Gr.set=A,Gr.startOf=be,Gr.subtract=Pr,Gr.toArray=Te,Gr.toObject=je,Gr.toDate=Me,Gr.toISOString=de,Gr.toJSON=de,Gr.toString=fe,Gr.unix=Se,Gr.valueOf=we,Gr.year=Or,Gr.isLeapYear=ct,Gr.weekYear=Ae,Gr.isoWeekYear=xe,Gr.quarter=Gr.quarters=Ne,Gr.month=Z,Gr.daysInMonth=X,Gr.week=Gr.weeks=ht,Gr.isoWeek=Gr.isoWeeks=vt,Gr.weeksInYear=Le,Gr.isoWeeksInYear=ke,Gr.date=Cr,Gr.day=Gr.days=Ue,Gr.weekday=Fe,Gr.isoWeekday=Be,Gr.dayOfYear=yt,Gr.hour=Gr.hours=Nr,Gr.minute=Gr.minutes=Rr,Gr.second=Gr.seconds=zr,Gr.millisecond=Gr.milliseconds=Yr,Gr.utcOffset=Yt,Gr.utc=Ut,Gr.local=Ft,Gr.parseZone=Bt,Gr.hasAlignedHourOffset=Vt,Gr.isDST=qt,Gr.isDSTShifted=Wt,Gr.isLocal=Kt,Gr.isUtcOffset=Jt,Gr.isUtc=$t,Gr.isUTC=$t,Gr.zoneAbbr=$e,Gr.zoneName=Ze,Gr.dates=et("dates accessor is deprecated. Use date instead.",Cr),Gr.months=et("months accessor is deprecated. Use month instead",Z),Gr.years=et("years accessor is deprecated. Use year instead",Or),Gr.zone=et("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Gt);var Ur=Gr,Fr={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Br={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Vr="Invalid date",qr="%d",Wr=/\d{1,2}/,Kr={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Jr=g.prototype;Jr._calendar=Fr,Jr.calendar=tn,Jr._longDateFormat=Br,Jr.longDateFormat=en,Jr._invalidDate=Vr,Jr.invalidDate=nn,Jr._ordinal=qr,Jr.ordinal=rn,Jr._ordinalParse=Wr,Jr.preparse=on,Jr.postformat=on,Jr._relativeTime=Kr,Jr.relativeTime=un,Jr.pastFuture=an,Jr.set=sn,Jr.months=W,Jr._months=hr,Jr.monthsShort=K,Jr._monthsShort=vr,Jr.monthsParse=J,Jr.week=ft,Jr._week=wr,Jr.firstDayOfYear=pt,Jr.firstDayOfWeek=dt,Jr.weekdays=ze,Jr._weekdays=Ar,Jr.weekdaysMin=Ye,Jr._weekdaysMin=kr,Jr.weekdaysShort=He,Jr._weekdaysShort=xr,Jr.weekdaysParse=Ge,Jr.isPM=We,Jr._meridiemParse=Lr,Jr.meridiem=Ke,S("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===y(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),e.lang=et("moment.lang is deprecated. Use moment.locale instead.",S),e.langData=et("moment.langData is deprecated. Use moment.localeData instead.",T);var $r=Math.abs,Zr=jn("ms"),Xr=jn("s"),Qr=jn("m"),ti=jn("h"),ei=jn("d"),ni=jn("w"),ri=jn("M"),ii=jn("y"),oi=In("milliseconds"),ui=In("seconds"),ai=In("minutes"),si=In("hours"),ci=In("days"),li=In("months"),fi=In("years"),di=Math.round,pi={s:45,m:45,h:22,d:26,M:11},hi=Math.abs,vi=kt.prototype;vi.abs=_n,vi.add=mn,vi.subtract=gn,vi.as=Mn,vi.asMilliseconds=Zr,vi.asSeconds=Xr,vi.asMinutes=Qr,vi.asHours=ti,vi.asDays=ei,vi.asWeeks=ni,vi.asMonths=ri,vi.asYears=ii,vi.valueOf=Tn,vi._bubble=On,vi.get=En,vi.milliseconds=oi,vi.seconds=ui,vi.minutes=ai,vi.hours=si,vi.days=ci,vi.weeks=Pn,vi.months=li,vi.years=fi,vi.humanize=xn,vi.toISOString=kn,vi.toString=kn,vi.toJSON=kn,vi.locale=me,vi.localeData=ge,vi.toIsoString=et("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",kn),vi.lang=Dr,k("X",0,0,"unix"),k("x",0,0,"valueOf"),Y("x",er),Y("X",rr),F("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),F("x",function(t,e,n){n._d=new Date(y(t))}),e.version="2.10.6",n(Dt),e.fn=Ur,e.min=At,e.max=xt,e.utc=s,e.unix=Xe,e.months=fn,e.isDate=i,e.locale=S,e.invalid=d,e.duration=Zt,e.isMoment=v,e.weekdays=pn,e.parseZone=Qe,e.localeData=T,e.isDuration=Lt,e.monthsShort=dn,e.weekdaysMin=vn,e.defineLocale=M,e.weekdaysShort=hn,e.normalizeUnits=E,e.relativeTimeThreshold=An;var _i=e;return _i})}).call(e,n(130)(t))},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"ha-card",properties:{title:{type:String},header:{type:String}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"ha-label-badge",properties:{value:{type:String},icon:{type:String},label:{type:String},description:{type:String},image:{type:String,observe:"imageChanged"}},computeClasses:function(t){return t&&t.length>5?"value big":"value"}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(55),o=r(i),u=n(2),a=n(1),s=r(a),c=6e4,l=u.util.parseDateTime;e["default"]=new s["default"]({is:"relative-ha-datetime",properties:{datetime:{type:String,observer:"datetimeChanged"},datetimeObj:{type:Object,observer:"datetimeObjChanged"},parsedDateTime:{type:Object},relativeTime:{type:String,value:"not set"}},created:function(){this.updateRelative=this.updateRelative.bind(this)},attached:function(){this._interval=setInterval(this.updateRelative,c)},detached:function(){clearInterval(this._interval)},datetimeChanged:function(t){this.parsedDateTime=t?l(t):null,this.updateRelative()},datetimeObjChanged:function(t){this.parsedDateTime=t,this.updateRelative()},updateRelative:function(){this.relativeTime=this.parsedDateTime?o["default"](this.parsedDateTime).fromNow():""}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(30),n(148),n(147),e["default"]=new o["default"]({is:"state-history-charts",properties:{stateHistory:{type:Object},isLoadingData:{type:Boolean,value:!1},apiLoaded:{type:Boolean,value:!1},isLoading:{type:Boolean,computed:"computeIsLoading(isLoadingData, apiLoaded)"},groupedStateHistory:{type:Object,computed:"computeGroupedStateHistory(isLoading, stateHistory)"},isSingleDevice:{type:Boolean,computed:"computeIsSingleDevice(stateHistory)"}},computeIsSingleDevice:function(t){return t&&1===t.size},computeGroupedStateHistory:function(t,e){if(t||!e)return{line:[],timeline:[]};var n={},r=[];e.forEach(function(t){if(t&&0!==t.size){var e=t.find(function(t){return"unit_of_measurement"in t.attributes}),i=e?e.attributes.unit_of_measurement:!1;i?i in n?n[i].push(t.toArray()):n[i]=[t.toArray()]:r.push(t.toArray())}}),r=r.length>0&&r;var i=Object.keys(n).map(function(t){return[t,n[t]]});return{line:i,timeline:r}},googleApiLoaded:function(){var t=this;google.load("visualization","1",{packages:["timeline","corechart"],callback:function(){return t.apiLoaded=!0}})},computeContentClasses:function(t){return t?"loading":""},computeIsLoading:function(t,e){return t||!e},computeIsEmpty:function(t){return t&&0===t.size},extractUnit:function(t){return t[0]},extractData:function(t){return t[1]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(17),e["default"]=new u["default"]({is:"state-card-toggle",properties:{stateObj:{type:Object,observer:"stateObjChanged"},toggleChecked:{type:Boolean,value:!1}},ready:function(){this.forceStateChange()},toggleChanged:function(t){var e=t.target.checked;e&&"off"===this.stateObj.state?this.turn_on():e||"on"!==this.stateObj.state||this.turn_off()},stateObjChanged:function(t){t&&this.updateToggle(t)},updateToggle:function(t){this.toggleChecked=t&&"on"===t.state},forceStateChange:function(){this.updateToggle(this.stateObj)},turn_on:function(){var t=this;i.serviceActions.callTurnOn(this.stateObj.entityId).then(function(){return t.forceStateChange()})},turn_off:function(){var t=this;i.serviceActions.callTurnOff(this.stateObj.entityId).then(function(){return t.forceStateChange()})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return i.reactor.evaluate(i.serviceGetters.canToggleEntity(t))}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r;var i=n(2);t.exports=e["default"]},function(t,e){"use strict";function n(t,e){switch(t){case"homeassistant":return"home";case"group":return"homeassistant-24:group";case"device_tracker":return"social:person";case"switch":return"image:flash-on";case"media_player":var n="hardware:cast";return e&&"off"!==e&&"idle"!==e&&(n+="-connected"),n;case"sun":return"image:wb-sunny";case"light":return"image:wb-incandescent";case"simple_alarm":return"social:notifications";case"notify":return"announcement";case"thermostat":return"homeassistant-100:thermostat";case"sensor":return"visibility";case"configurator":return"settings";case"conversation":return"av:hearing";case"script":return"description";case"scene":return"social:pages";case"updater":return"update_available"===e?"icons:cloud-download":"icons:cloud-done";default:return"bookmark"}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return u["default"](t).format("LT")}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i;var o=n(55),u=r(o);t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2);e["default"]=function(t,e){r.authActions.validate(t,{rememberAuth:e,useStreaming:r.localStoragePreferences.useStreaming})},t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e){var n=null==t?void 0:t[e];return i(n)?n:void 0}var i=n(183);t.exports=r},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}t.exports=n},function(t,e,n){"use strict";function r(t){return i(t)&&a.call(t)==o}var i=n(68),o="[object Function]",u=Object.prototype,a=u.toString;t.exports=r},function(t,e){ +"use strict";function n(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=["isLoadingEntityHistory"];e.isLoadingEntityHistory=i;var o=["currentEntityHistoryDate"];e.currentDate=o;var u=["entityHistory"];e.entityHistoryMap=u;var a=[o,u,function(t,e){return e.get(t)||r.toImmutable({})}];e.entityHistoryForCurrentDate=a;var s=[o,u,function(t,e){return!!e.get(t)}];e.hasDataForCurrentDate=s;var c=["recentEntityHistory"];e.recentEntityHistoryMap=c;var l=["recentEntityHistory"];e.recentEntityHistoryUpdatedMap=l},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({currentEntityHistoryDate:a["default"],entityHistory:c["default"],isLoadingEntityHistory:f["default"],recentEntityHistory:p["default"],recentEntityHistoryUpdated:v["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(195),a=i(u),s=n(196),c=i(s),l=n(197),f=i(l),d=n(198),p=i(d),h=n(199),v=i(h),_=n(194),y=r(_),m=n(69),g=r(m),b=y;e.actions=b;var O=g;e.getters=O},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;n6e4}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var u=n(221),a=n(241),s=i(a),c=n(243),l=i(c),f=n(245),d=i(f),p=n(22),h=r(p),v=n(36),_=r(v),y=n(10),m=r(y),g=n(70),b=r(g),O=n(37),w=r(O),S=n(206),M=r(S),T=n(73),j=r(T),E=n(76),I=r(E),P=n(39),D=r(P),C=n(19),A=r(C),x=n(40),k=r(x),L=n(42),N=r(L),R=n(238),z=r(R),H=n(11),Y=r(H),G=function U(){o(this,U);var t=s["default"]();Object.defineProperties(this,{demo:{value:!1,enumerable:!0},localStoragePreferences:{value:u.localStoragePreferences,enumerable:!0},reactor:{value:t,enumerable:!0},util:{value:d["default"],enumerable:!0},startLocalStoragePreferencesSync:{value:u.localStoragePreferences.startSync.bind(u.localStoragePreferences,t)},startUrlSync:{value:I.urlSync.startSync.bind(null,t)},stopUrlSync:{value:I.urlSync.stopSync.bind(null,t)}}),l["default"](this,t,{auth:h,config:_,entity:m,entityHistory:b,event:w,logbook:M,moreInfo:j,navigation:I,notification:D,service:A,stream:k,sync:N,voice:z,restApi:Y})};e["default"]=G,t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){var r=t?t.length:0;return n&&o(t,e,n)&&(e=!1),r?i(t,e):[]}var i=n(98),o=n(26);t.exports=r},function(t,e){"use strict";function n(t){var e=t?t.length:0;return e?t[e-1]:void 0}t.exports=n},function(t,e,n){"use strict";function r(t,e,n,r){var s=t?t.length:0;return s?(null!=e&&"boolean"!=typeof e&&(r=n,n=u(t,e,r)?void 0:e,e=!1),n=null==n?n:i(n,r,3),e?a(t,n):o(t,n)):[]}var i=n(24),o=n(110),u=n(26),a=n(124);t.exports=r},function(t,e,n){"use strict";function r(t,e,n){var r=a(t)?i:u;return e=o(e,n,3),r(t,e)}var i=n(93),o=n(24),u=n(47),a=n(9);t.exports=r},function(t,e,n){"use strict";function r(t,e){return i(t,o(e))}var i=n(89),o=n(54);t.exports=r},function(t,e,n){"use strict";function r(t,e,n){if(null==t)return[];n&&s(t,e,n)&&(e=void 0);var r=-1;e=i(e,n,3);var c=o(t,function(t,n,i){return{criteria:e(t,n,i),index:++r,value:t}});return u(c,a)}var i=n(24),o=n(47),u=n(108),a=n(114),s=n(26);t.exports=r},function(t,e,n){(function(e){"use strict";function r(t){var e=t?t.length:0;for(this.data={hash:a(null),set:new u};e--;)this.push(t[e])}var i=n(113),o=n(20),u=o(e,"Set"),a=o(Object,"create");r.prototype.push=i,t.exports=r}).call(e,function(){return this}())},function(t,e){"use strict";function n(t,e){for(var n=-1,r=t.length,i=Array(r);++ne&&!o||!i||n&&!u&&a||r&&a)return 1;if(e>t&&!n||!a||o&&!r&&i||u&&i)return-1}return 0}t.exports=n},function(t,e,n){"use strict";var r=n(100),i=n(115),o=i(r);t.exports=o},function(t,e,n){"use strict";function r(t,e,n,c){c||(c=[]);for(var l=-1,f=t.length;++le&&(e=-e>i?0:i+e),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(i);++r=a,f=l?u():null,d=[];f?(r=o,c=!1):(l=!1,f=e?[]:d);t:for(;++nc))return!1;for(;++s0;++rd;d++)f._columns[d]=[];var p=0;return n&&u(),c.keySeq().sortBy(function(t){return i(t)}).forEach(function(t){if("a"===t)return void(f._demo=!0);var n=i(t);n>=0&&10>n?f._badges.push.apply(f._badges,r(c.get(t)).sortBy(o).toArray()):"group"===t?c.get(t).filter(function(t){return!t.attributes.auto}).sortBy(o).forEach(function(t){var n=s.util.expandGroup(t,e);n.forEach(function(t){return l[t.entityId]=!0}),a(t.entityDisplay,n.toArray())}):a(t,r(c.get(t)).sortBy(o).toArray())}),f},computeShouldRenderColumn:function(t,e){return 0===t||e.length},computeShowIntroduction:function(t,e,n){return 0===t&&(e||n._demo)},computeShowHideInstruction:function(t,e){return t.size>0&&!0&&!e._demo},computeStatesOfCard:function(t,e){return t[e]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{ +"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(29),n(134),n(58),e["default"]=new u["default"]({is:"logbook-entry",entityClicked:function(t){t.preventDefault(),i.moreInfoActions.selectEntity(this.entryObj.entityId)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(29),e["default"]=new u["default"]({is:"services-list",behaviors:[s["default"]],properties:{serviceDomains:{type:Array,bindNuclear:[i.serviceGetters.entityMap,function(t){return t.valueSeq().sortBy(function(t){return t.domain}).toJS()}]}},computeServices:function(t){return this.services.get(t).toArray()},serviceClicked:function(t){t.preventDefault(),this.fire("service-selected",{domain:t.model.domain.domain,service:t.model.service})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(90),o=r(i),u=n(86),a=r(u),s=n(88),c=r(s),l=n(91),f=r(l),d=n(1),p=r(d);e["default"]=new p["default"]({is:"state-history-chart-line",properties:{data:{type:Object,observer:"dataChanged"},unit:{type:String},isSingleDevice:{type:Boolean,value:!1},isAttached:{type:Boolean,value:!1,observer:"dataChanged"}},created:function(){this.style.display="block"},attached:function(){this.isAttached=!0},dataChanged:function(){this.drawChart()},drawChart:function(){if(this.isAttached){for(var t=p["default"].dom(this),e=this.unit,n=this.data;t.lastChild;)t.removeChild(t.lastChild);if(0!==n.length){var r=new google.visualization.LineChart(this),i=new google.visualization.DataTable;i.addColumn({type:"datetime",id:"Time"});var u={legend:{position:"top"},titlePosition:"none",vAxes:{0:{title:e}},hAxis:{format:"H:mm"},lineWidth:1,chartArea:{left:"60",width:"95%"},explorer:{actions:["dragToZoom","rightClickToReset","dragToPan"],keepInBounds:!0,axis:"horizontal",maxZoomIn:.1}};this.isSingleDevice&&(u.legend.position="none",u.vAxes[0].title=null,u.chartArea.left=40,u.chartArea.height="80%",u.chartArea.top=5,u.enableInteractivity=!1);var s=o["default"](a["default"](n),"lastChangedAsDate");s=f["default"](c["default"](s,function(t){return t.getTime()}));for(var l=[],d=new Array(n.length),h=0;hnew Date&&(a=new Date);var s=0;n.forEach(function(e){if(0!==e.length){var n=e[0].entityDisplay,r=void 0,i=null,o=null;e.forEach(function(e){null!==i&&e.state!==i?(r=e.lastChangedAsDate,t(n,i,o,r),i=e.state,o=r):null===i&&(i=e.state,o=e.lastChangedAsDate)}),t(n,i,o,a),s++}}),r.draw(i,{height:55+42*s,timeline:{showRowLabels:n.length>1},hAxis:{format:"H:mm"}})}}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);e["default"]=new u["default"]({is:"stream-status",behaviors:[s["default"]],properties:{isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},hasError:{type:Boolean,bindNuclear:i.streamGetters.hasStreamingEventsError}},toggleChanged:function(){this.isStreaming?i.streamActions.stop():i.streamActions.start()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(31),n(59),n(162);var c=["camera","configurator"];e["default"]=new u["default"]({is:"more-info-dialog",behaviors:[s["default"]],properties:{stateObj:{type:Object,bindNuclear:i.moreInfoGetters.currentEntity,observer:"stateObjChanged"},stateHistory:{type:Object,bindNuclear:[i.moreInfoGetters.currentEntityHistory,function(t){return t?[t]:!1}]},isLoadingHistoryData:{type:Boolean,computed:"computeIsLoadingHistoryData(_delayedDialogOpen, _isLoadingHistoryData)"},_isLoadingHistoryData:{type:Boolean,bindNuclear:i.entityHistoryGetters.isLoadingEntityHistory},hasHistoryComponent:{type:Boolean,bindNuclear:i.configGetters.isComponentLoaded("history"),observer:"fetchHistoryData"},shouldFetchHistory:{type:Boolean,bindNuclear:i.moreInfoGetters.isCurrentEntityHistoryStale,observer:"fetchHistoryData"},showHistoryComponent:{type:Boolean,value:!1},dialogOpen:{type:Boolean,value:!1,observer:"dialogOpenChanged"},_delayedDialogOpen:{type:Boolean,value:!1},_boundOnBackdropTap:{type:Function,value:function(){return this._onBackdropTap.bind(this)}}},computeIsLoadingHistoryData:function(t,e){return!t||e},fetchHistoryData:function(){this.stateObj&&this.hasHistoryComponent&&this.shouldFetchHistory&&i.entityHistoryActions.fetchRecent(this.stateObj.entityId)},stateObjChanged:function(t){var e=this;return t?(this.showHistoryComponent=this.hasHistoryComponent&&-1===c.indexOf(this.stateObj.domain),void this.async(function(){e.fetchHistoryData(),e.dialogOpen=!0},10)):void(this.dialogOpen=!1)},dialogOpenChanged:function(t){var e=this;t?(this.$.dialog.backdropElement.addEventListener("click",this._boundOnBackdropTap),this.async(function(){return e._delayedDialogOpen=!0},10)):!t&&this.stateObj&&(i.moreInfoActions.deselectEntity(),this._delayedDialogOpen=!1)},_onBackdropTap:function(){this.$.dialog.backdropElement.removeEventListener("click",this._boundOnBackdropTap),this.dialogOpen=!1}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(4),u=r(o);n(142),n(158),n(157),n(156),n(153),n(154),n(155),n(159),n(150),e["default"]=new Polymer({is:"home-assistant-main",behaviors:[u["default"]],properties:{narrow:{type:Boolean,value:!1},activePane:{type:String,bindNuclear:i.navigationGetters.activePane,observer:"activePaneChanged"},isSelectedStates:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("states")},isSelectedHistory:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("history")},isSelectedLogbook:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("logbook")},isSelectedDevEvent:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devEvent")},isSelectedDevState:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devState")},isSelectedDevService:{type:Boolean,bindNuclear:i.navigationGetters.isActivePane("devService")},showSidebar:{type:Boolean,bindNuclear:i.navigationGetters.showSidebar}},listeners:{"open-menu":"openMenu","close-menu":"closeMenu"},openMenu:function(){this.narrow?this.$.drawer.openDrawer():i.navigationActions.showSidebar(!0)},closeMenu:function(){this.$.drawer.closeDrawer(),this.showSidebar&&i.navigationActions.showSidebar(!1)},activePaneChanged:function(){this.narrow&&this.$.drawer.closeDrawer()},attached:function(){i.startUrlSync()},computeForceNarrow:function(t,e){return t||!e},detached:function(){i.stopUrlSync()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(2),a=n(4),s=r(a),c=n(64),l=r(c);e["default"]=new o["default"]({is:"login-form",behaviors:[s["default"]],properties:{isValidating:{type:Boolean,observer:"isValidatingChanged",bindNuclear:u.authGetters.isValidating},isInvalid:{type:Boolean,bindNuclear:u.authGetters.isInvalidAttempt},errorMessage:{type:String,bindNuclear:u.authGetters.attemptErrorMessage}},listeners:{keydown:"passwordKeyDown","loginButton.click":"validatePassword"},observers:["validatingChanged(isValidating, isInvalid)"],validatingChanged:function(t,e){t||e||(this.$.passwordInput.value="")},isValidatingChanged:function(t){var e=this;t||this.async(function(){return e.$.passwordInput.focus()},10)},passwordKeyDown:function(t){13===t.keyCode?(this.validatePassword(),t.preventDefault()):this.isInvalid&&(this.isInvalid=!1)},validatePassword:function(){this.$.hideKeyboardOnFocus.focus(),l["default"](this.$.passwordInput.value,this.$.rememberLogin.checked)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(146),e["default"]=new u["default"]({is:"partial-dev-call-service",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},domain:{type:String,value:""},service:{type:String,value:""},serviceData:{type:String,value:""}},serviceSelected:function(t){this.domain=t.detail.domain,this.service=t.detail.service},callService:function(){var t=void 0;try{t=this.serviceData?JSON.parse(this.serviceData):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.serviceActions.callService(this.domain,this.service,t)},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(138),e["default"]=new u["default"]({is:"partial-dev-fire-event",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},eventType:{type:String,value:""},eventData:{type:String,value:""}},eventSelected:function(t){this.eventType=t.detail.eventType},fireEvent:function(){var t=void 0;try{t=this.eventData?JSON.parse(this.eventData):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.eventActions.fireEvent(this.eventType,t)},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o);n(14),n(135),e["default"]=new u["default"]({is:"partial-dev-set-state",properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},entityId:{type:String,value:""},state:{type:String,value:""},stateAttributes:{type:String,value:""}},setStateData:function(t){var e=t?JSON.stringify(t,null," "):"";this.$.inputData.value=e,this.$.inputDataWrapper.update(this.$.inputData)},entitySelected:function(t){var e=i.reactor.evaluate(i.entityGetters.byId(t.detail.entityId));this.entityId=e.entityId,this.state=e.state,this.stateAttributes=JSON.stringify(e.attributes,null," ")},handleSetState:function(){var t=void 0;try{t=this.stateAttributes?JSON.parse(this.stateAttributes):{}}catch(e){return void alert("Error parsing JSON: "+e)}i.entityActions.save({entityId:this.entityId,state:this.state,attributes:t})},computeFormClasses:function(t){return"layout "+(t?"vertical":"horizontal")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(59),e["default"]=new u["default"]({is:"partial-history",behaviors:[s["default"]],properties:{narrow:{type:Boolean},showMenu:{type:Boolean,value:!1},isDataLoaded:{type:Boolean,bindNuclear:i.entityHistoryGetters.hasDataForCurrentDate,observer:"isDataLoadedChanged"},stateHistory:{type:Object,bindNuclear:i.entityHistoryGetters.entityHistoryForCurrentDate},isLoadingData:{type:Boolean,bindNuclear:i.entityHistoryGetters.isLoadingEntityHistory},selectedDate:{type:String,value:null,bindNuclear:i.entityHistoryGetters.currentDate}},isDataLoadedChanged:function(t){t||this.async(function(){return i.entityHistoryActions.fetchSelectedDate()},1)},handleRefreshClick:function(){i.entityHistoryActions.fetchSelectedDate()},datepickerFocus:function(){this.datePicker.adjustPosition()},attached:function(){this.datePicker=new Pikaday({field:this.$.datePicker.inputElement,onSelect:i.entityHistoryActions.changeCurrentDate})},detached:function(){this.datePicker.destroy()},computeContentClasses:function(t){return"flex content "+(t?"narrow":"wide")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(141),n(30),e["default"]=new u["default"]({is:"partial-logbook",behaviors:[s["default"]],properties:{narrow:{type:Boolean,value:!1},showMenu:{type:Boolean,value:!1},selectedDate:{type:String,bindNuclear:i.logbookGetters.currentDate},isLoading:{type:Boolean,bindNuclear:i.logbookGetters.isLoadingEntries},isStale:{type:Boolean,bindNuclear:i.logbookGetters.isCurrentStale,observer:"isStaleChanged"},entries:{type:Array,bindNuclear:[i.logbookGetters.currentEntries,function(t){return t.toArray()}]},datePicker:{type:Object}},isStaleChanged:function(t){var e=this;t&&this.async(function(){return i.logbookActions.fetchDate(e.selectedDate)},1)},handleRefresh:function(){i.logbookActions.fetchDate(this.selectedDate)},datepickerFocus:function(){this.datePicker.adjustPosition()},attached:function(){this.datePicker=new Pikaday({field:this.$.datePicker.inputElement,onSelect:i.logbookActions.changeCurrentDate})},detached:function(){this.datePicker.destroy()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(14),n(143),n(144),e["default"]=new u["default"]({is:"partial-zone",behaviors:[s["default"]],properties:{narrow:{type:Boolean,value:!1},isFetching:{type:Boolean,bindNuclear:i.syncGetters.isFetching},isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},canListen:{type:Boolean,bindNuclear:[i.voiceGetters.isVoiceSupported,i.configGetters.isComponentLoaded("conversation"),function(t,e){return t&&e}]},isListening:{type:Boolean,bindNuclear:i.voiceGetters.isListening},showListenInterface:{type:Boolean,bindNuclear:[i.voiceGetters.isListening,i.voiceGetters.isTransmitting,function(t,e){return t||e}]},introductionLoaded:{type:Boolean,bindNuclear:i.configGetters.isComponentLoaded("introduction")},locationName:{type:String,bindNuclear:i.configGetters.locationName},showMenu:{type:Boolean,value:!1,observer:"windowChange"},states:{type:Object,bindNuclear:i.entityGetters.visibleEntityMap},columns:{type:Number}},created:function(){var t=this;this.windowChange=this.windowChange.bind(this);for(var e=[],n=0;5>n;n++)e.push(278+278*n);this.mqls=e.map(function(e){var n=window.matchMedia("(min-width: "+e+"px)");return n.addListener(t.windowChange),n})},detached:function(){var t=this;this.mqls.forEach(function(e){return e.removeListener(t.windowChange)})},windowChange:function(){var t=this.mqls.reduce(function(t,e){return t+e.matches},0);this.columns=Math.max(1,t-this.showMenu)},handleRefresh:function(){i.syncActions.fetchAll()},handleListenClick:function(){this.isListening?i.voiceActions.stop():i.voiceActions.listen()},computeDomains:function(t){return t.keySeq().toArray()},computeMenuButtonClass:function(t,e){return!t&&e?"invisible":""},computeStatesOfDomain:function(t,e){return t.get(e).toArray()},computeListenButtonIcon:function(t){return t?"av:mic-off":"av:mic"},computeRefreshButtonClass:function(t){return t?"ha-spin":void 0},computeShowIntroduction:function(t,e){return t||0===e.size},toggleMenu:function(){this.fire("open-menu")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);e["default"]=new u["default"]({is:"notification-manager",behaviors:[s["default"]],properties:{text:{type:String,bindNuclear:i.notificationGetters.lastNotificationMessage,observer:"showNotification"}},showNotification:function(t){t&&this.$.toast.show()}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"more-info-camera",properties:{stateObj:{type:Object},dialogOpen:{type:Boolean}},imageLoaded:function(){this.fire("iron-resize")},computeCameraImageUrl:function(t){return t?"/api/camera_proxy_stream/"+this.stateObj.entityId:"data:image/gif;base64,R0lGODlhAQABAAAAACw="}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(30),e["default"]=new u["default"]({is:"more-info-configurator",behaviors:[s["default"]],properties:{stateObj:{type:Object},action:{type:String,value:"display"},isStreaming:{type:Boolean,bindNuclear:i.streamGetters.isStreamingEvents},isConfigurable:{type:Boolean,computed:"computeIsConfigurable(stateObj)"},isConfiguring:{type:Boolean,value:!1},submitCaption:{type:String,computed:"computeSubmitCaption(stateObj)"}},computeIsConfigurable:function(t){return"configure"===t.state},computeSubmitCaption:function(t){return t.attributes.submit_caption||"Set configuration"},submitClicked:function(){var t=this;this.isConfiguring=!0;var e={configure_id:this.stateObj.attributes.configure_id};i.serviceActions.callService("configurator","configure",e).then(function(){t.isConfiguring=!1,t.isStreaming||i.syncActions.fetchAll()},function(){t.isConfiguring=!1})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=n(177),a=r(u);n(163),n(164),n(168),n(161),n(169),n(167),n(165),n(166),n(160),n(170),e["default"]=new o["default"]({is:"more-info-content",properties:{stateObj:{type:Object,observer:"stateObjChanged"},dialogOpen:{type:Boolean,value:!1,observer:"dialogOpenChanged"}},dialogOpenChanged:function(t){var e=o["default"].dom(this);e.lastChild&&(e.lastChild.dialogOpen=t)},stateObjChanged:function(t,e){var n=o["default"].dom(this);if(!t)return void(n.lastChild&&n.removeChild(n.lastChild));var r=a["default"](t);if(e&&a["default"](e)===r)n.lastChild.dialogOpen=this.dialogOpen,n.lastChild.stateObj=t;else{n.lastChild&&n.removeChild(n.lastChild);var i=document.createElement("more-info-"+r);i.stateObj=t,i.dialogOpen=this.dialogOpen,n.appendChild(i)}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i),u=["entity_picture","friendly_name","unit_of_measurement"];e["default"]=new o["default"]({is:"more-info-default",properties:{stateObj:{type:Object}},computeDisplayAttributes:function(t){return t?Object.keys(t.attributes).filter(function(t){return-1===u.indexOf(t)}):[]},getAttributeValue:function(t,e){return t.attributes[e]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(4),s=r(a);n(31),e["default"]=new u["default"]({is:"more-info-group",behaviors:[s["default"]],properties:{stateObj:{type:Object},states:{type:Array,bindNuclear:[i.moreInfoGetters.currentEntity,i.entityGetters.entityMap,function(t,e){return t?t.attributes.entity_id.map(e.get.bind(e)):[]}]}},updateStates:function(){this.states=this.stateObj&&this.stateObj.attributes.entity_id?stateStore.gets(this.stateObj.attributes.entity_id).toArray():[]}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a);n(139);var c=["brightness","xy_color"];e["default"]=new u["default"]({is:"more-info-light",properties:{stateObj:{type:Object,observer:"stateObjChanged"},brightnessSliderValue:{type:Number,value:0}},stateObjChanged:function(t){var e=this;t&&"on"===t.state&&(this.brightnessSliderValue=t.attributes.brightness),this.async(function(){return e.fire("iron-resize")},500)},computeClassNames:function(t){return s["default"](t,c)},brightnessSliderChanged:function(t){var e=parseInt(t.target.value,10);isNaN(e)||(0===e?i.serviceActions.callTurnOff(this.stateObj.entityId):i.serviceActions.callService("light","turn_on",{entity_id:this.stateObj.entityId,brightness:e}))},colorPicked:function(t){var e=t.detail.rgb;i.serviceActions.callService("light","turn_on",{entity_id:this.stateObj.entityId,rgb_color:[e.r,e.g,e.b]})}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a),c=["volume_level"];e["default"]=new u["default"]({is:"more-info-media_player",properties:{stateObj:{type:Object,observer:"stateObjChanged"},isOff:{type:Boolean,value:!1},isPlaying:{type:Boolean,value:!1},isMuted:{type:Boolean,value:!1},volumeSliderValue:{type:Number,value:0},supportsPause:{type:Boolean,value:!1},supportsVolumeSet:{type:Boolean,value:!1},supportsVolumeMute:{type:Boolean,value:!1},supportsPreviousTrack:{type:Boolean,value:!1},supportsNextTrack:{type:Boolean,value:!1},supportsTurnOn:{type:Boolean,value:!1},supportsTurnOff:{type:Boolean,value:!1}},stateObjChanged:function(t){var e=this;t&&(this.isOff="off"===t.state,this.isPlaying="playing"===t.state,this.volumeSliderValue=100*t.attributes.volume_level,this.isMuted=t.attributes.is_volume_muted,this.supportsPause=0!==(1&t.attributes.supported_media_commands),this.supportsVolumeSet=0!==(4&t.attributes.supported_media_commands),this.supportsVolumeMute=0!==(8&t.attributes.supported_media_commands),this.supportsPreviousTrack=0!==(16&t.attributes.supported_media_commands),this.supportsNextTrack=0!==(32&t.attributes.supported_media_commands),this.supportsTurnOn=0!==(128&t.attributes.supported_media_commands),this.supportsTurnOff=0!==(256&t.attributes.supported_media_commands)),this.async(function(){return e.fire("iron-resize")},500)},computeClassNames:function(t){return s["default"](t,c)},computeIsOff:function(t){return"off"===t.state},computeMuteVolumeIcon:function(t){return t?"av:volume-off":"av:volume-up"},computePlaybackControlIcon:function(){return this.isPlaying?this.supportsPause?"av:pause":"av:stop":"av:play-arrow"},computeHidePowerButton:function(t,e,n){return t?!e:!n},handleTogglePower:function(){this.callService(this.isOff?"turn_on":"turn_off")},handlePrevious:function(){this.callService("media_previous_track")},handlePlaybackControl:function(){this.callService("media_play_pause")},handleNext:function(){this.callService("media_next_track")},handleVolumeTap:function(){this.supportsVolumeMute&&this.callService("volume_mute",{is_volume_muted:!this.isMuted})},volumeSliderChanged:function(t){var e=parseFloat(t.target.value),n=e>0?e/100:0;this.callService("volume_set",{volume_level:n})},callService:function(t,e){var n=e||{};n.entity_id=this.stateObj.entityId,i.serviceActions.callService("media_player",t,n)}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);e["default"]=new o["default"]({is:"more-info-script",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(63),u=r(o),a=i.util.parseDateTime;e["default"]=new Polymer({is:"more-info-sun",properties:{stateObj:{type:Object},risingDate:{type:Object,computed:"computeRising(stateObj)"},settingDate:{type:Object,computed:"computeSetting(stateObj)"}},computeRising:function(t){return a(t.attributes.next_rising)},computeSetting:function(t){return a(t.attributes.next_setting)},computeOrder:function(t,e){return t>e?["set","ris"]:["ris","set"]},itemCaption:function(t){return"ris"===t?"Rising ":"Setting "},itemDate:function(t){return"ris"===t?this.risingDate:this.settingDate},itemValue:function(t){return u["default"](this.itemDate(t))}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(1),u=r(o),a=n(33),s=r(a),c=["away_mode"];e["default"]=new u["default"]({is:"more-info-thermostat",properties:{stateObj:{type:Object,observer:"stateObjChanged"},tempMin:{type:Number},tempMax:{type:Number},targetTemperatureSliderValue:{type:Number},awayToggleChecked:{type:Boolean}},stateObjChanged:function(t){this.targetTemperatureSliderValue=t.state,this.awayToggleChecked="on"===t.attributes.away_mode,this.tempMin=t.attributes.min_temp,this.tempMax=t.attributes.max_temp},computeClassNames:function(t){return s["default"](t,c)},targetTemperatureSliderChanged:function(t){var e=parseInt(t.target.value,10);isNaN(e)||i.serviceActions.callService("thermostat","set_temperature",{entity_id:this.stateObj.entityId,temperature:e})},toggleChanged:function(t){var e=t.target.checked;e&&"off"===this.stateObj.attributes.away_mode?this.service_set_away(!0):e||"on"!==this.stateObj.attributes.away_mode||this.service_set_away(!1)},service_set_away:function(t){var e=this;i.serviceActions.callService("thermostat","set_away_mode",{away_mode:t,entity_id:this.stateObj.entityId}).then(function(){return e.stateObjChanged(e.stateObj)})}}),t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2);e["default"]=new Polymer({is:"more-info-updater",properties:{stateObj:{type:Object}},updateTapped:function(){r.serviceActions.callService("updater","update",{})},linkTapped:function(){window.open(this.stateObj.attributes.link,"_blank")}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17),n(32),e["default"]=new o["default"]({is:"state-card-configurator",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17);var u=["playing","paused"];e["default"]=new o["default"]({is:"state-card-media_player",properties:{stateObj:{type:Object},isPlaying:{type:Boolean,computed:"computeIsPlaying(stateObj)"}},computeIsPlaying:function(t){return-1!==u.indexOf(t.state)},computePrimaryText:function(t,e){return e?t.attributes.media_title:t.stateDisplay},computeSecondaryText:function(t){var e=void 0;return"music"===t.attributes.media_content_type?t.attributes.media_artist:"tvshow"===t.attributes.media_content_type?(e=t.attributes.media_series_title,t.attributes.media_season&&t.attributes.media_episode&&(e+=" S"+t.attributes.media_season+"E"+t.attributes.media_episode),e):t.attributes.app_name?t.attributes.app_name:""}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(32),n(60),e["default"]=new o["default"]({is:"state-card-scene",properties:{stateObj:{type:Object},allowToggle:{type:Boolean,value:!1,computed:"computeAllowToggle(stateObj)"}},computeAllowToggle:function(t){return"off"===t.state||t.attributes.active_requested}}),t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var i=n(1),o=r(i);n(17),e["default"]=new o["default"]({is:"state-card-thermostat",properties:{stateObj:{type:Object}}}),t.exports=e["default"]},function(t,e){"use strict";function n(t){return{attached:function(){var e=this;this.__unwatchFns=Object.keys(this.properties).reduce(function(n,r){if(!("bindNuclear"in e.properties[r]))return n;var i=e.properties[r].bindNuclear;if(!i)throw new Error("Undefined getter specified for key "+r);return e[r]=t.evaluate(i),n.concat(t.observe(i,function(t){e[r]=t}))},[])},detached:function(){for(;this.__unwatchFns.length;)this.__unwatchFns.shift()()}}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return-1!==a.indexOf(t.domain)?t.domain:u["default"](t.entityId)?"toggle":"display"}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i;var o=n(61),u=r(o),a=["thermostat","configurator","scene","media_player"];t.exports=e["default"]},function(t,e){"use strict";function n(t){return-1!==r.indexOf(t.domain)?t.domain:"default"}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n;var r=["light","group","sun","configurator","thermostat","script","media_player","camera","updater"];t.exports=e["default"]},function(t,e){"use strict";function n(t,e,n){var r=1-t-e,i=n/255,o=i/e*t,u=i/e*r,a=1.612*o-.203*i-.302*u,s=.509*-o+1.412*i+.066*u,c=.026*o-.072*i+.962*u;a=.0031308>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055,s=.0031308>=s?12.92*s:1.055*Math.pow(s,1/2.4)-.055,c=.0031308>=c?12.92*c:1.055*Math.pow(c,1/2.4)-.055;var l=Math.max(a,s,c);return a/=l,s/=l,c/=l,a=255*a,0>a&&(a=255),s=255*s,0>s&&(s=255),c=255*c,0>c&&(c=255),[a,s,c]}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=n,t.exports=e["default"]},function(t,e,n){var r;(function(t,i,o){"use strict";(function(){function u(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return"function"==typeof t}function s(t){return"object"==typeof t&&null!==t}function c(t){W=t}function l(t){Z=t}function f(){return function(){t.nextTick(_)}}function d(){return function(){q(_)}}function p(){var t=0,e=new tt(_),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function h(){var t=new MessageChannel;return t.port1.onmessage=_,function(){t.port2.postMessage(0)}}function v(){return function(){setTimeout(_,1)}}function _(){for(var t=0;$>t;t+=2){var e=rt[t],n=rt[t+1];e(n),rt[t]=void 0,rt[t+1]=void 0}$=0}function y(){try{var t=n(250);return q=t.runOnLoop||t.runOnContext,d()}catch(e){return v()}}function m(){}function g(){return new TypeError("You cannot resolve a promise with itself")}function b(){return new TypeError("A promises callback cannot return that same promise.")}function O(t){try{return t.then}catch(e){return at.error=e,at}}function w(t,e,n,r){try{t.call(e,n,r)}catch(i){return i}}function S(t,e,n){Z(function(t){var r=!1,i=w(n,e,function(n){r||(r=!0,e!==n?j(t,n):I(t,n))},function(e){r||(r=!0,P(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&i&&(r=!0,P(t,i))},t)}function M(t,e){e._state===ot?I(t,e._result):e._state===ut?P(t,e._result):D(e,void 0,function(e){j(t,e)},function(e){P(t,e)})}function T(t,e){ +if(e.constructor===t.constructor)M(t,e);else{var n=O(e);n===at?P(t,at.error):void 0===n?I(t,e):a(n)?S(t,e,n):I(t,e)}}function j(t,e){t===e?P(t,g()):u(e)?T(t,e):I(t,e)}function E(t){t._onerror&&t._onerror(t._result),C(t)}function I(t,e){t._state===it&&(t._result=e,t._state=ot,0!==t._subscribers.length&&Z(C,t))}function P(t,e){t._state===it&&(t._state=ut,t._result=e,Z(E,t))}function D(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+ot]=n,i[o+ut]=r,0===o&&t._state&&Z(C,t)}function C(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r,i,o=t._result,u=0;uu;u++)D(r.resolve(t[u]),void 0,e,n);return i}function H(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(m);return j(n,t),n}function Y(t){var e=this,n=new e(m);return P(n,t),n}function G(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function U(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function F(t){this._id=ht++,this._state=void 0,this._result=void 0,this._subscribers=[],m!==t&&(a(t)||G(),this instanceof F||U(),L(this,t))}function B(){var t;if("undefined"!=typeof i)t=i;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(t.Promise=vt)}var V;V=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var q,W,K,J=V,$=0,Z=({}.toString,function(t,e){rt[$]=t,rt[$+1]=e,$+=2,2===$&&(W?W(_):K())}),X="undefined"!=typeof window?window:void 0,Q=X||{},tt=Q.MutationObserver||Q.WebKitMutationObserver,et="undefined"!=typeof t&&"[object process]"==={}.toString.call(t),nt="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,rt=new Array(1e3);K=et?f():tt?p():nt?h():void 0===X?y():v();var it=void 0,ot=1,ut=2,at=new A,st=new A;N.prototype._validateInput=function(t){return J(t)},N.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},N.prototype._init=function(){this._result=new Array(this.length)};var ct=N;N.prototype._enumerate=function(){for(var t=this,e=t.length,n=t.promise,r=t._input,i=0;n._state===it&&e>i;i++)t._eachEntry(r[i],i)},N.prototype._eachEntry=function(t,e){var n=this,r=n._instanceConstructor;s(t)?t.constructor===r&&t._state!==it?(t._onerror=null,n._settledAt(t._state,e,t._result)):n._willSettleAt(r.resolve(t),e):(n._remaining--,n._result[e]=t)},N.prototype._settledAt=function(t,e,n){var r=this,i=r.promise;i._state===it&&(r._remaining--,t===ut?P(i,n):r._result[e]=n),0===r._remaining&&I(i,r._result)},N.prototype._willSettleAt=function(t,e){var n=this;D(t,void 0,function(t){n._settledAt(ot,e,t)},function(t){n._settledAt(ut,e,t)})};var lt=R,ft=z,dt=H,pt=Y,ht=0,vt=F;F.all=lt,F.race=ft,F.resolve=dt,F.reject=pt,F._setScheduler=c,F._setAsap=l,F._asap=Z,F.prototype={constructor:F,then:function(t,e){var n=this,r=n._state;if(r===ot&&!t||r===ut&&!e)return this;var i=new this.constructor(m),o=n._result;if(r){var u=arguments[r-1];Z(function(){k(r,i,u,o)})}else D(n,i,t,e);return i},"catch":function(t){return this.then(null,t)}};var _t=B,yt={Promise:vt,polyfill:_t};n(249).amd?(r=function(){return yt}.call(e,n,e,o),!(void 0!==r&&(o.exports=r))):"undefined"!=typeof o&&o.exports?o.exports=yt:"undefined"!=typeof this&&(this.ES6Promise=yt),_t()}).call(void 0)}).call(e,n(246),function(){return this}(),n(247)(t))},function(t,e,n){"use strict";var r=n(65),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};t.exports=o},function(t,e){"use strict";function n(t){return"number"==typeof t&&t>-1&&t%1==0&&r>=t}var r=9007199254740991;t.exports=n},function(t,e,n){"use strict";var r=n(65),i=n(181),o=n(66),u="[object Array]",a=Object.prototype,s=a.toString,c=r(Array,"isArray"),l=c||function(t){return o(t)&&i(t.length)&&s.call(t)==u};t.exports=l},function(t,e,n){"use strict";function r(t){return null==t?!1:i(t)?l.test(s.call(t)):o(t)&&u.test(t)}var i=n(67),o=n(66),u=/^\[object .+?Constructor\]$/,a=Object.prototype,s=Function.prototype.toString,c=a.hasOwnProperty,l=RegExp("^"+s.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(179),i=n(22),o=function(t,e,n){var o=arguments.length<=3||void 0===arguments[3]?null:arguments[3],u=t.evaluate(i.getters.authInfo),a=u.host+"/api/"+n;return new r.Promise(function(t,n){var r=new XMLHttpRequest;r.open(e,a,!0),r.setRequestHeader("X-HA-access",u.authToken),r.onload=function(){if(r.status>199&&r.status<300)t(JSON.parse(r.responseText));else try{n(JSON.parse(r.responseText))}catch(e){n({})}},r.onerror=function(){return n({})},o?r.send(JSON.stringify(o)):r.send()})};e["default"]=o,t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],r=n.useStreaming,i=void 0===r?t.evaluate(s.getters.isSupported):r,o=n.rememberAuth,u=void 0===o?!1:o,f=n.host,d=void 0===f?"":f;t.dispatch(a["default"].VALIDATING_AUTH_TOKEN,{authToken:e,host:d}),c.actions.fetchAll(t).then(function(){t.dispatch(a["default"].VALID_AUTH_TOKEN,{authToken:e,host:d,rememberAuth:u}),i?s.actions.start(t,{syncOnInitialConnect:!1}):c.actions.start(t,{skipInitialSync:!0})},function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.message,r=void 0===n?l:n;t.dispatch(a["default"].INVALID_AUTH_TOKEN,{errorMessage:r})})}function o(t){t.dispatch(a["default"].LOG_OUT,{})}Object.defineProperty(e,"__esModule",{value:!0}),e.validate=i,e.logOut=o;var u=n(21),a=r(u),s=n(40),c=n(42),l="Unexpected result from API"},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=[["authAttempt","isValidating"],function(t){return!!t}];e.isValidating=n;var r=[["authAttempt","isInvalid"],function(t){return!!t}];e.isInvalidAttempt=r;var i=["authAttempt","errorMessage"];e.attemptErrorMessage=i;var o=["rememberAuth"];e.rememberAuth=o;var u=[["authAttempt","authToken"],["authAttempt","host"],function(t,e){return{authToken:t,host:e}}];e.attemptAuthInfo=u;var a=["authCurrent","authToken"];e.currentAuthToken=a;var s=[a,["authCurrent","host"],function(t,e){return{authToken:t,host:e}}];e.currentAuthInfo=s;var c=[n,["authAttempt","authToken"],["authCurrent","authToken"],function(t,e,n){return t?e:n}];e.authToken=c;var l=[n,u,s,function(t,e,n){return t?e:n}];e.authInfo=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){if(null==t)throw new TypeError("Cannot destructure undefined")}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n=e.authToken,r=e.host;return d.toImmutable({authToken:n,host:r,isValidating:"true",isInvalid:!1,errorMessage:""})}function s(t,e){return i(e),_.getInitialState()}function c(t,e){var n=e.errorMessage;return t.withMutations(function(t){return t.set("isValidating",!1).set("isInvalid","true").set("errorMessage",n)})}Object.defineProperty(e,"__esModule",{value:!0});var l=function(){function t(t,e){for(var n=0;n1&&t.set(p,r)})}function a(){return v.getInitialState()}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var n=0;no}Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),o=6e4,u=["currentLogbookDate"];e.currentDate=u;var a=[u,["logbookEntriesUpdated"],function(t,e){return r(e.get(t))}];e.isCurrentStale=a;var s=[u,["logbookEntries"],function(t,e){return e.get(t)||i.toImmutable([])}];e.currentEntries=s;var c=["isLoadingLogbookEntries"];e.isLoadingEntries=c},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t){t.registerStores({currentLogbookDate:a["default"],isLoadingLogbookEntries:c["default"],logbookEntries:f["default"],logbookEntriesUpdated:p["default"]})}Object.defineProperty(e,"__esModule",{value:!0}),e.register=o;var u=n(208),a=i(u),s=n(209),c=i(s),l=n(210),f=i(l),d=n(211),p=i(d),h=n(204),v=r(h),_=n(205),y=r(_),m=v;e.actions=m;var g=y;e.getters=g},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=function(){function t(t,e){for(var n=0;n1)for(var n=1;n \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index a97750b5dd8..5a103bf5e98 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit a97750b5dd887af42030e01bfe50bc3c60183514 +Subproject commit 5a103bf5e98848318a9550d066a9de2e9289314b From b1876d586efb061750681e8bfebe6b3a2f13edfa Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sun, 30 Aug 2015 20:01:02 -0400 Subject: [PATCH 047/190] Fixed importing of dependency for map tracker. --- .../components/device_tracker/nmap_tracker.py | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/homeassistant/components/device_tracker/nmap_tracker.py b/homeassistant/components/device_tracker/nmap_tracker.py index ee1650594ee..f2da939a79e 100644 --- a/homeassistant/components/device_tracker/nmap_tracker.py +++ b/homeassistant/components/device_tracker/nmap_tracker.py @@ -26,13 +26,6 @@ from collections import namedtuple import subprocess import re -try: - from libnmap.process import NmapProcess - from libnmap.parser import NmapParser, NmapParserException - LIB_LOADED = True -except ImportError: - LIB_LOADED = False - import homeassistant.util.dt as dt_util from homeassistant.const import CONF_HOSTS from homeassistant.helpers import validate_config @@ -52,13 +45,16 @@ REQUIREMENTS = ['python-libnmap==0.6.1'] def get_scanner(hass, config): """ Validates config and returns a Nmap scanner. """ + # pylint: disable=unused-variable if not validate_config(config, {DOMAIN: [CONF_HOSTS]}, _LOGGER): return None - if not LIB_LOADED: + try: + import libnmap # noqa + except ImportError: _LOGGER.error("Error while importing dependency python-libnmap.") - return False + return None scanner = NmapDeviceScanner(config[DOMAIN]) @@ -83,6 +79,13 @@ class NmapDeviceScanner(object): """ This class scans for devices using nmap """ def __init__(self, config): + from libnmap.process import NmapProcess + from libnmap.parser import NmapParser, NmapParserException + + self.nmap_process = NmapProcess + self.nmap_parser = NmapParser + self.nmap_parser_exception = NmapParserException + self.last_results = [] self.hosts = config[CONF_HOSTS] @@ -116,7 +119,7 @@ class NmapDeviceScanner(object): """ Parses results from an nmap scan. Returns True if successful, False otherwise. """ try: - results = NmapParser.parse(stdout) + results = self.nmap_parser.parse(stdout) now = dt_util.now() self.last_results = [] for host in results.hosts: @@ -134,7 +137,7 @@ class NmapDeviceScanner(object): self.last_results.append(device) _LOGGER.info("nmap scan successful") return True - except NmapParserException as parse_exc: + except self.nmap_parser_exception as parse_exc: _LOGGER.error("failed to parse nmap results: %s", parse_exc.msg) self.last_results = [] return False @@ -159,7 +162,7 @@ class NmapDeviceScanner(object): target_list = [t.ip for t in exclude_targets] options += " --exclude {}".format(",".join(target_list)) - nmap = NmapProcess(targets=self.hosts, options=options) + nmap = self.nmap_process(targets=self.hosts, options=options) nmap.run() From e6ac22514027c1e697504d7cc8276c666b047dad Mon Sep 17 00:00:00 2001 From: Ryan Kraus Date: Sun, 30 Aug 2015 20:22:02 -0400 Subject: [PATCH 048/190] Fixed device tracker to install scanner requirements. --- homeassistant/components/device_tracker/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index 099c23973f0..234863c571c 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -15,6 +15,7 @@ from homeassistant.helpers import validate_config from homeassistant.helpers.entity import _OVERWRITE import homeassistant.util as util import homeassistant.util.dt as dt_util +from homeassistant.bootstrap import prepare_setup_platform from homeassistant.helpers.event import track_utc_time_change from homeassistant.const import ( @@ -62,9 +63,9 @@ def setup(hass, config): return False tracker_type = config[DOMAIN].get(CONF_PLATFORM) - - tracker_implementation = get_component( - 'device_tracker.{}'.format(tracker_type)) + + tracker_implementation = \ + prepare_setup_platform(hass, config, DOMAIN, tracker_type) if tracker_implementation is None: _LOGGER.error("Unknown device_tracker type specified: %s.", From e95d4cf19cf2a96340a4383bb1dac26d03ed1f5b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Aug 2015 17:48:06 -0700 Subject: [PATCH 049/190] Update screenshot --- docs/architecture-remote.png | Bin 79012 -> 0 bytes docs/architecture.png | Bin 32012 -> 0 bytes docs/screenshots.png | Bin 139670 -> 54390 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/architecture-remote.png delete mode 100644 docs/architecture.png diff --git a/docs/architecture-remote.png b/docs/architecture-remote.png deleted file mode 100644 index 3109c92184675a0542757e43a006fe019ae50b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79012 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 literal 139670 zcmeAS@N?(olHy`uVBq!ia0y~yV1B{Cz|_mZ#K6E{(|_$90|SF(iEBhjaDG}zd16s2 zgJVj5QmTSyZen_BP-r5%(GQ`zk9!uLS~AsQn;zFfp39xYDT68?trEmh5xxNm&iO^D3Z{Any2%D+ z1`1||dWOa(=H}))3PuKo2Koj@`i4fjhUQkrMpgy}3Q(YAr(jc*l4cd;;s&*=C?(BS zDWjyMz)D}gyu4hm+*mKaC|%#s($W%ShLMqOQA(O_ab;dfVufyAu`2bec=Y@6+;6mIX_pwBC$ZIIA zz^b}9q_QAYKPa_0zqBYhH7GSr8ObXA7J(EN`1)G;7iFer<|XF1U_GSr{5xI2)Q+8X6cFxR_ZOJ2@J|%)qAC(9PJ~$kNr! z%-Ge<(9qSy(b?S5($&?>$<58u&D6{crq?sCxFj(zITdDaW@d^NRIe#sy;jaesfi`| zMIrh5Ij|HEkda@KU!0L&px_*As^FWLoS6sWgQ5o<_Es*bMVV!(DQ-pixeDO$waUa| zzni(a8;ZZ(%#1874c%PKjh&61j2)GrdQ->=GkrS+8+}mXKuRnyp&%DG5EGoPL22Ah z0g-u9^HOY;ij?f_K24KQU|^Cx=IP=XQgQ1|E$0js_tG>MxzN~JAOG{Vvz(9jm`q}r zdu)a~U)duE(I7RPM&A&Kwyfk$7TAI-LlNM3(1yI6NacCy$OiS>-!#V2H#6crVF z&t3G8$~5_Y)3~<$Zs<%wY4^006qmHp($diK(oh@EwX4>gIkDq$z5c)NOi4YBg34|^ z5{5}fIs}#7c17z1vm&@X5)bmg;!p+5cY0wedn61G+y!ZYN-4ALkcJup7GWqyGM1;n z9AZ9Ls)O+zvK6T2pjwgCup7yFe>M76HpxxP+FJGO%*@Nn{jb0NnzYfv(zNv7ot-yt z-rTu!r_;g*yWSl*!0?mP$s^BgAO8>bmJ^~qjjsEg8fH%L=TN@A?Io`SBhL$4g&z$9 zYUavC(zO%*sCFjI(|N!@IbY1TF{bIjBKaTdzoh@N|2Ea$ci&_d!BB18UvpJbqn`+B zJ>gms`RF~<7x`%%zquDb`H`*L{e0eEx1#Q!)kkdK>|HWrn!JeQWs`yl`~r9QpZ;Ea z-X#9u>B!Iv{~4ozyb=~l!S4}lO1>4gU;C@OdIYQ$yPNhm(??Q72YEdAshU!noakBr50 z-DO=lYa>?iNxVPyCv8^cHQqyx?1ySRYTKW;pI14k!M9x8a&l1F3HI*N4+$BY9b1+z z6z>zV@;UTT=$_VoC5fvwHlL&pe-sm{wLZh>RA-US@>R`rm&B(T{Z(dLKlxl{zwxBA z$txk;v-e}=jHNw?X6k7zw<%b{sVHHZ=s2N5f3@VlEbjJDm*+PU?(wm23<=QuyeQw@ zS0p=Iv$Y_nso>dUtLj}25~gXND#9mmWogv}NY#E!6B0cp)6m>2QIdeVGP ziN!^?541d-9kjbQSd>*zRaDrc<|A(%SN`I?Q+&lQ>ZsIBlCoPX;y6+F+GpGQ>IJR6 z#vO$g=Qnk!HlJSh|7KtE<(X5?Ev>lyEqD6+o5c@X#h(`Kw5|RYQ*=_b@ABRc6$>4c zQnsG_^5x6FzrT+kKQ3SYr;zE|@@31iwn{bc?^w@R^HO2%_0Kkae1}V=3tU{6D>A-k znD)FOL9|nWBO&8Jl7yMr`jd;N^PA6OWSx51Y9Se9?=|IyV!P4ouv{=zK><><7nEGAI6T)F z3TjQd*7+b$a)0NkhZYXewo6(4&#Z4$I=YK-wy$A)*V3<+YlL;gw07p1n#iO^xBphm z>&~VBo`i+i;dc?QL^t^<^&b~_=Ca!Odh%j59_fkNJP`~lS#)*7<`*h7g(k2v zJ>|-p(e;1fVa9}19S>u+J}dtl4o)90+?q9$ok65_>cN!)bK7T5y00WBemUxj_hYHW zJDL`Sv2}4O>=1gu_Vwd}sjkZm6&5Ik{5||^0^4qece~z6?Va`4e^)Tu7sZJ5-~|nL zgX$T4G@XLJZJ3d%x`RLTaZ`(C>m{M>${$jW?qO67kPwN}6!&3&{ZQk;r7zrv7PhoL zbvx5_X3?Sd9d%v0^1ckG0$%cN(z-fnONHTE?{zYjUq0G+=X0*pSTA;3W4m3!YX3>! z6u;ljxH)N8@S5<;v)5eE5)$h@dnRyk_c5khQL6oXnUi?hvX*RYII&Am?}36rh@-&v zg-5i!;yfRBvh31Kn(6)O591DT1;@?JM>f>%P;<*}w>#2OC9~$A-OI3yii(PyoHv*5 z?w3Hut+I9+<%XL)zIz`iy_l%c%^E9HHMdGzF5>W|&+(RoSura$}&4 zfiI`QSq8@%-9Yh*%!3^XkvXLouO&C`aTR_bF@x{j!>IyJ&N2rbr>)4nX~FX6(k1Rk z52Raua|Uj0k=NO{>vNwX*P-I2FC+?AbREsnla9RVCv;z;vvFZTQLoOI#Q7p+niHp7 zc-^$9@j%?t$Dcm(9?g&Kony7Q(ep#-IUA{&2~h<5LHT_cuspTXsuy1?aw z5#A?uYg=r2$M!z;M_h?|oaiEH_PI6@Kaad-T0CjZlw(`o1!%WEMT(f-uOvlIfmb*d)?&QOzlzi#0oJ>7+qw#mFb^I>^GN(sN|`3vVxO%c;6 zN!VH5YUQ(~Us!tHq%PGjT?|*ax^;S9o;mn!@zQTKhF_FrBy)tA_K9lpGu~_3_O?Jq z_jzMpc+{SCF6TCGnJSv#etTQ9rJ;fJ>Sg(fdpb5O2zbWaqMqBNrm^uNgZM2si*L%M zQ@=W_Ys}UNz9%&4i%%uPC)wF-s}dGXTl6kz<3_>ks!&~)OA97nIlJm6z5D$>Hn$}!WD~aB)NTw{*uH7q zF^yaM0$g^+>aXi&GR(bHosd%}=3o=^dgBZGM79Q#*UUOmVOcsyc@!IVZ>TZ7_G^lx zVoqOIuJ^3i_Ac#yZmw&>ZJm-Fw{o>%U-3(^tu zoc?*`Ige^Z#~XJ4+dGf9)I4}G^Kt&Ct7SR+Ze5g|*(hNr6RC7?fzS=VFLj%`CLGyO z%iLmbsF7bNy~>7r^VH6DNg*?rmOVOg=Gem>H*P(fJXgZC#!{tHg68&)GL1ArI=uK`}Q?Gf|d=B-%J!(|KNv_@Ro26mknDO5*Xi9v_J7xdu?ziNa=;w zAHjvwkDXm)QEAQLkooHQ6Sg+%qwglO%(aMGpfK&L+rfoG4MA~s&R;J*n;Uj6x5itg zp=t@kwA|Jj>5WOO%q*%~V^g$}pH(gt*tCD!i?lzRO^$5nQP#a^7%_ca^}NFo1)Hw< zN_lJxJ5}Iw@%V-<=d>p%-Eda$-ksao%e3xu_6%m1y@oB@79NaKkuV5!dcgN(tx9Ea z{~hOh((5NIc&<(VRHWkh##OhTRiYHzw`-|M$K9 zuM^6p=b!)RKj6!B<@8gdgD*8?ig;Ez)$aECXCJTpwAEn7d#B%%MHjs7m~w2ol*0M_ zGiHC7*b<;@8s1;#a^fA$$Uk>K2XL-Sz z+H`jLCoZA;61}%9StbfiHJX#*y6w@lHwDV3W^3C&uXEw-xGx;gDV(-=3a3_HAJ_G^ z8`HA46wco8pD&R~Iohm@i6Q0k@_*i5-!`<-^; zgz}RRhE&%nWfL3|+Ss$~LvuoeTGeg|2Y4$ADl&cR+G47v|EjP=+OV3HGw#Fw$0pf2 z!aQG|#=H^?NQzL6c<>}|<;}MXk~a17n&&l(Fza8*d3@#fg!2k-+Z$#$`^h|MU8#D- zdC%sPB7BZ!hYQuZk~TjHP0Re<^|8_~Xx_}H&dcsP9@UWMecp0$DUaw;iS^YlPgw9D zNtk@ZU)-i3YYOkT)}$-#Cm7vtSWemQKDi}_-E+&YzCUhzlsh197h`h z5A#!c0za)zuLU zQ+`^x&30tuWool-e)x((}?wBZY(knT-woB~RB7#x|5jbt~r#wZ`K{9UL#Ip#*h z%Bf<4VwVfzgO-VW{`-A{!zmy3R4F&13*mdqOXW7?yb{|jyy^dxrk9r&IILLWQV>$N zeoF#_>_?LeEJAlBrdaW;T{Ue|#}eHWc^4S9IT=nanEEW5b+UEY5qXXdK`wzqh64J$ z(UFA>r>^y``gvf-cf}6r+Ku~^*Irq>sac*qF7RT3QJ!#BT92gs_Xx3>(~qUBQMuE7 zI4F8fwIoyJ^|XU+*RKlA5>JJh!?==>- z25-A~tjwtK%>u>-vuiD~EZ)*>nGAlXghX_dcW!?m!KiuT#uFc{$oQ^o|A?!L3t4tg z<<+}8SJ`xB#&WML=iZb>!KbCpiFPJy<$5s|uAAs|okd~U0yj>TnVC{nKbIwzd4BJ> zFZ4A|#yn(&TGy4#$d!LujWvrczJ@Aj-d>d@wIi={rdD1v52IN~h~vJ6Pd3MHJu;i#pCeC>JbCiu%a;eo_;$^W zVI3KbfjX^R?Tj84O6S%&TRi!wnl!P2QASd>@!7WZw~~UVvFN-v^5*W~*%qSe)aG?^ zq5P#Vam{`H7BiDHEMK~BtX46Y(sH|GSNegCowHpR?~Kx0{AGuRZb;AfS4~{W!MlXQ zJWh&E(RpBWPbiv$Gy1?KD`Dm4V~5omTKBvT*=;KlD|jL{K5WgC2SSq$dTugwpUT`I zrKkB$Tw=R6^GS7`LV4#~vYjWKco%f$=r*5h)Cid(%x$S6Sj>7_^vJj4s*lTgnvYy) zJ*UDa-4`kO=;s9M{+x@!iN%vT0}U0AABg;ur1Wm`9lr%jJdW1{Ui#&~X7Aan{`|X>Xo1YlJ^#A<%^V6Wr^G~P8SG`=igu8FPtbNg!6CWQR zKR?IPxo*|ftd5Nmn!GdKa_4606`vvzfKtD-GXCK5I5G;}iLlB(afyND@P2bcAok&!GRlfH2}X$YrCdmQv->FAE( zR1KacGe^Jc;b92{sZ*DgJX}r*PKstcA($3%deaN@g~6KcihGPVbJ|OA&snKCwTJx< zPsXyId|#928UI~Uj86VLKJ$)-)WU|hU7fjtB2DKLwADTxq_Fb4MS_^+jJ< z@IoXYNae(xB-hIvLLc9x?D7kF8Nd}JnJeJB^J(bu$19_h1T~KbUYz8$#A&C6d*5{T zA6HI^A&R zu`Gkb^~*wuQvM^g8Z+6|S%lU`X6a#6IZSF-o3`b<<%5pG5(BcE?iuXc|Ul_ZLQiHx46DSg`a6l zTU%ROd%NZOMxV_rYm8UdJUb?x|Ko+by_JSUzA&MP;xZ{5~?G1bW`Qe*4Z_drN zUcc{`l+kLt&u5H(%U8d7+04Ft`Et+ar_+r1Zohu`Zq*&#slQhg=Ji}KD*e4Sr|<~J z%hLsC76=`$`4l6^)+_d=lCeMZu0_}JBOl8p(whap=vr=Q_mOT@*v71@R(15Lt6{qH zgd@?u4_31rwwZPFslnqK$I09FPBxD?nzbfBP+gZZ^V%bhx})N!pY+}p+2+$U(aGR_>!TK@HdX0dlzPM+cPCt8LED?ZJ2bh~W-mT8K_Othm1?-bJOze`n_n6Y zG-iEpzb^VFAb*PaamS=NJ6d&qX??qtz~-}<`QaCb>QjC5{rH|dk4(@F*e3T+%FWu6 zvvHM>?vX-i8xGl(3p;{mrY!LAF*xX_Ki_xahJGpjC2ODfzN#>gYpW?tj%oZJaCb^$ zX2}B9W!ycYTcy=QU8CBz{uN%6)AuU)qmyOhr)k|X+dSSW?XtDV>QK2bC#53nyF@dO z`9^zL-DX2^CIw0E5Sjj`EBT#f_*jR0J1mtuRVQc3^k-a=vQxITCp?;#zi5$Yf2`nF z^M!6jx0nRICKTqlcf6gTd3g18?WtZnW7dVOesXT(#*GgbKCDsn{~&Vk$UyQ(9l*Q=`VIzfJespU#NZ zT*xD~HRxDV$I_KM7JJEe?cTpuWy++V&ocJ0O;<>}lzeX_32 zh|ag(!5+}rF)8A|XJUHemdzJ+Dtvh|cAvWb@rq`ASd8%Opz`1CQ3bP)G)g9ZWsw(I z@grU>KVm6=?~(1NkITNudeEdhBaZWI$&A)#hhNmNTv)eGDY9hvta)G`TA46nwy(nUtgat_Vd<-2NPzW z6zHk{dNut2)%d?xPn-Y^$tM|^ntomBU%M)1-HyIkrT^ODadoFppZvPF`u+aT=d9J$ z)UL0S-JEM-YHDk3{rY#DnYDw7)1{LZ&fG3Gf*Qw#b2f;S7EF4VGCe#0ocNin<(-|K zeGL}xnpd7FIelzu&cb7}4DOlF_A^eq#b!FwB3`>}7K^J$!hVOME=Re#1|9M`{x~$3V-q$@f3x9Nl z-*K9s5UI6rW?{-I-%PA!WC(C8yAGOl9Y6Nob&lTXXNdV zIThDlv*WhV>LgWhR*oZ#p|)zL16H5DT(I}!G}oo;1^!rcxAknT+Ur**B`0@pLt^ve z9hWbEG5O^?+e|pe-%dc_y~P!q|83@b9=^@5-_7{WjcMoGZTWXfuiGvWpE%D&>`-*x z&ZR*s@6`P+|Nido?#j<%mrDEOY`u2fX1%>_ZS3x8Uly{ObMY#?vwg6yDKhudRd1KK z-L2=m-QOpO?4x$6@(> zzh14LzOb|^;OSdK#RY$k+yCRd_?9Ej-n{Nzn{>X4?2GFEWxwzJ{vKCwaNEwEJDb`0 zh4$1Pof>XbdV%qlC(GZ=X&K>m)yc;TQUj}n#8V4jns_Wc`1R<&D-WtBo9mxH%KF;) zZ0_QdOQKFU%LQ)@TKVO3#haM0+mkkJyeVmT=}gYy#b;AA=H9hD-I7p#ds}zwp;qxY zo&~1%^VRoXvwi>m-@Esf7s{FM{Eo6Y|GWPG7yp{@!m6}ikG%EbjE#!E-z~pe{{L_E zw!FC(_5Z%C3>J^C`FL)wwWw0H{rarGGp{~9pJH4fW0LNkpJS89J8L`ZCVjJs)AaSY zj+@VPe!JpIAH$a|M^4@eU47N+;_Dv0yJE7(LLPfb8uc98`s$j?xhi!7o$05~o;fqe zvN-MTuF}t+KQlAmoSnC4Wzfosue)+1kN3;(|NHGWZ^8TW$|n=s`Qg@_lg}aM4&SD|eR1~BEwPMys@J|x zo9}x%@$n6pT$UG^;j6A@Mg94tT2|z|#W;Ay%;&v2{~4Y*=CiZ2bEeFnGbd(y-Q9h) zzw>r{WK)_P9IQ7vzxMU*r9medzSq4gdvR|5os;~2vu4fO_2ZFu$Exp}=l|`gR_p2S ze}8Lhx4VLo^34;U&b*9ex+$J*8n5GQt2^(^ro!Y~p>OB1z2KG0vG#Y%<1>D|mTT{! z1^&u=&9ge56j?HzeD$?zYfxpvd*=Mg)A<4_ZWn6IX3w2J|M$iIx|D|M|EE4aK0d$V zQA4WZCKjPL`|AGgQlDS(=*r9BY0fj^$E)k@xo~mGH#Yul(|%k!`*{g_)x7OCG5*GxYc9R{s&)Uc&Td=%8p{(Y zMvosqPJVrCU-j>DcDADJcRqEUJn7jpG1apC-p|S3+AbL#s5Rv@UAMW|d-?KZ+jDQ* znVbJUGTHx0k#lfPaN6NEURwiSiJ*U3hQ?dOH!VMUFHhNgZ?BBR(c8OED_UPTR}_`j zWL@t4wRZn`$1|G}gPFyCZ@AdIMyE_&;>_yn-A9$2{)O-RG&MSJXKF=7MOxaiO%HBv zPM=@#$&>lc@4&3BubTPoICQ)7j$hG|Hd|v~_T|QtBPnLHXU>{;Yf~yWf8Z5q;axM| z>?%{tpU$53*k|1u_E(G6yubUn@zx*hFV3x2XIDI2c$p_EcHY6fXa33e4L6a+cQs|d$Rd*aj64QUV?>z6 zb{E_-nRO&(A-9{(i^fzU=iow?(a-q8)mA)A#rFJwDBBJHF4oQ+hpi z-Rp#&uGUA(d}pVnr=Oo|J^yT4dRqGRzTQZmGjsAbRI7j5X)_^K=IYKHN35ST-eMAn z*Ogn*8G6_9pU>7PQ=6Gj<==O&D!6Rr)@ih<OwWgmeUG#8mP&pO?@!>3uZ&wC$*t(U{9eGpU-|NS51W~KbF6m#`H^LOQ_ApCpQ!Mp zmwd`T%l0z+%biHud^PLr_uA9j`eZD#8mj9(SBBVBf75v><}y=SO3F#%?D?}%(~g$x zcD%jqtWWNe-rjqb{8ygczod80r@m^zwr<_aMo(i;czsOSCAPc#t@Q6xFZSiMnnp|h z-F9r!|E#OG4jeczQMujr{O8(F>)%_P`|+dVxm7dcySo~oYBEd4spF5Vl+?N@+CQBx zZh8~d`>kKjuKq~HO1=M8+iXg{vC3axU9yqw$I~tQmJ5E_eUMqyAhe6FkSzd*r(8NHOh4MSwCO@>8DgPB3brMp1*9_GV5}VxgblI z`_ETWZf7Xp#Kp(QH|_M(tgT6r4H-pC>bKZDmpasQGCka}?C15g88>qsA1+|7TbiJ1 z6ENFzKcnGFU8$x|m%ZlhPAO1IBdg8{*T1@RZNtnvV$q!3VXYU7dn6)%CAl9H{OYz<$7qqw{m%h& zk1-uNP&nu3&pjZ&v^p_vh@6^G&K+u$XqYJSM!Ls?$K)T+Y&9Y_fDSubJI4gf8LtP%YT2ZT4%9(rc#Ai zVq3h+l}lZpE1B>7_I&pI`AMOW)mML9uj>8A)>H8Lxt^rqB4*PKKQ4FQVwxfLHOP)% zPiv*$;?H7wWg?rJQ_c692WuF`ul=#p``DwrBOMb{#r$%%>Fis}n{zvfN2=;B!*@HU zsG~`YPThyay{09lKd;(%U$6VO)}x9wN~aHM^=5BWnjpKSbM{5m341qw-IaQR&+6o~ zi{@O@b|h|kWFyIZUs!vgb#`+xPgT)RGq>+`tF`U+>2O`G=@H{Y3hulfO^h$=lNH_u!?NLYj18C3l8&$x=tzEmu$N<6)@Pw2a@N zxw}PO`MfmS^oFAq+azA@eV3lH^Jo*t&k&75Hsc5PR^HgbwxfLRgl+3XPMI8=aQxfc z!VM3b0%lvjJEnIve8OJVj-5FZWS1D<4WD*ypUAUcM$Tm$B${@|TQ~h^^*Jftk z>^r-bm|a?xl=_v6xuEw;fPBI??lKACq~j}{j^(bqY9%Uto#FdB;YI7Go=*LB@Uzj) z#)QcXotXvtMvrt(YVgpec4c?vP@- z=*soA>rP6)$T{LMyGUcYg- zx*|7Ee^%yV_E$~)Yq+G&WPNmqwbIM~5FGw7WtZ>7xQ|wXk}sV2WeyjbUot*>j$Qhb zV4C!dH`d>3neY5|6Zljau&`m_iElAsGM~SGX1a4WGPYN4#o3r}8<{Z8zV}WI^Vs%@ z+dSUp$gc2t>hsFj)^MJREF06AzYJy1dq~f=oujT9%ocR7#l21Xl|+&8fxX;~*3S;e zDzfOF_|2reJ6V|fQo{G6hd!q535l-rUTzy8ZLnc_l1RMZ3BIsj4ojyM{%qneJIB6S zS0iibm4A813XU1%9MK4TEA7XS{P9@Au7g*s1tlNc(|1}Ha{lwl|GHhbm`(W@8mw>b z3|GB8ca3e_+GNqop9I+UI9cEEd?CN%NVV9hlxC5rznOy9n@cXuxXHcD;bfX`OiK6_ zmZPpZH-mp{j_}w2wx&*1r>kb;!Kp8%CI&^kO^Ddb^yujIY~{7jT$@gw%+g$KfAMbO z{Y{oYGQoxr!+)-2A8CjSsF8=F5v7xE^>QcFBLo+O0>#+iyuv;bY65d?_QvL+rHa z`ghFEyA6_-JXf9EymeA_lDxqITRZDVH>P+upUQ}y!M5Z3w+kmy4(-jZ5)+^BE#7MT z+s#pa)bKn>y=A5?!0I_mY+GHLaBV|LFG(+uQPFvUBvbne~i`C zKXmr)wh!7-e(?>D*gUs>3o%}MXUG2+qJFg-7*>R83C!FO;?}bz|B$<2rWFGt?=&{Y z_3vzSTlRIjd1c=I_;zpe-O9p<;DGloe*VqJEVuTvd=!`vQ~da^LcnXQJJ-Wq|4ggv zj=wpD{neq)E&s&!{8;`W>HYEUic%)or7z1LKJ)pbxqa&ot~)CB%V*l?{7}eSx;H92 z)kyj3>n}4Ll5@?Ime>Z@-etGjR5a6cr;g*B)~vl@YXZ9GzP{igdMc#hVuG3Rl+qK= ze|oJA`@A4`?V>~9c*>3oDNZ`y!+26s`oTT>4YoG=)4Q+yx^RS%;cv+nuV{teO)K`E zO~{+LqPBB_tj?_LeFmp;+axXrp5U9Mbj+mttM$!O8(#h7`hTKBPbz0-3ey9Fv9 z-1u>^^JmT0zLf6@>o_Ou-^MCC`=7(UNxM7w9#}B>1~BhWNVYcnyY(Go(Zx*-*|QJc zmC12dFxbKt*C}QaGV|Xn#(ff{iGPkiz3h87a@A@N%g99w_xdaRp7fw-b(G`fus>>( zUKyR>bBbqd2|Vk5Y(~P76G7@V^06Cp@7C9z?cHBYgl%jlNg;Ikeoa z_LcMfJ@3{1=kw*f;#ezva__5E-Ll;uuP9W!bB)%!ZS!qyt-JTuT?+ez{(N}!{LPMp zk`MO|r}xjBuln6K`}wigdUq;5+7~asn-4t`$p!Bo};lmljPQQsPVq7 zP&{!@;>^~z{n7==AClxeA1`|FEGXj0+$h_G2I0o_WzoUwGwf<*Ymzqv1o^7mTd*)X zV}07Mwg)G!+g1fEnArzvIIOBaypFr>>vR3dfxC6g-{1TL zUw^b6Tjj)=wYJvRpFMiN>icT@50_s5dm?)N?#{d)<#~1I%I|%ibv=G__n+FI#d?QK z&u{S;USZp@wbf}7Pd9tUqaEM-KlN^GxwmM>gMyuJ-mN|yxYfP?bROF#{V5)=*GFht z{eI;0)%V`DM62r8VqeT6Z%S_|ZSGjOzYN*?9-fpiywrE~OzFOo@51J9Z~fY> zUlaC-w_M)p^Thmn?#?S%9pv9iNY}mBkK>5y7GOD^=OFiT zdeOYbhdaJceD^lEYl^5_Z68lUTI-v_+_j4*$gU~kzanD8>+st{Ghu7Rf^`gYV?{UV zT(vno*)VB|?h1aTo_pW>?RVx}zBT)MPH>%#;oSdg_5UQS3uu!J=ed4x&F<>UD{5}< zTDT@Vk}>pf)6rSqcm4l4H)>(g<;`V$JI)>aIPZ~uSU6>Qvk|K}rq`_FIphQGP>>*n`8X~%axwEuU^_P|!(-zM9? z97^yON;=_h{#qisneo^Sr>zIy0~Q52>?0+8%#vux0yn(~S{U z)$KbB7jWM5xO_+S>#}J(&DVZT-_;{M`J0GjWvP5+n|ksQkKNOZkLyiawg2x?dAa%L zPG4U=@4t2YuE!Tvp5)kCd^S>g^Hz((UY=J`8>>EU`?~$#x6^io$M+rYpX+`_nYHd^ zd0bu6t`A3d%df9`@%esr#j=RM-S6#wtn&Z&di}rk^}EZCAG=?1Pjo>Hx8MJkgu?~r zOnilV)vvjn@PDxITKJWN2aMQulxt2(exo6GY`)ZXol_~s*VfAAylBnOX4ZxblUURdvW6KVE#stGs>R-)Z$bo*y{=|7RYPGDp{sBkS+mOeu}~y8XV+`ROm# z*)2Y4pMU+@=bx7rHZSk@J)18tU3phO=4r$=Yx{q_yZPr;Ue}LdEr@T8&y(HBU31L2 zQuxHP-*c@juY#I{UQ-vUXl53&%JOo~x+mGY>VoH$dps%Tax2!ZWdHlPkxQy*=CoIh zvo1Y7aVq5d#E0)B4KF=2Em!#bx1In0$^CzN>Q!g_p8Wrtz=<7ac}y$!sx7vD91&l8 zTzmfZ?9WOLIxI>i%wK7(>Yef8&TcNwH>D&b3Kq?HeZ}?CCcDpz zkMApa-xzajqi)5z06WX*KWp{>8N9v_VX}GYtDK!>w->uV)86|1-{rgcdtY{WoA>`a z^*q1+!G)Xd{(dqR#(&@BzP?}hx_|%P_bZ$(8eS@Jd-|qKVqSUvoZ#Opgjw{;pZph- z-{`nKqVeylI_qU6Tb;`;bjz(cS+3^Wb&OfG!Eer-Rp+>#-BDF`v)cOX(vSNe?#Ayd zHh6q)x|V^agG$NVzsr}${lEF1BPYW#VqInMQ7?fPb2G2U@BYrPpv=K6Aah1p#r?_0 zo7c0%q|K@SaWUB@>5O>Y9{q^-#(b3@uI-k4-pO#?^zfd_Cu#wck9wR_lS#2RwGY14 zu*JSLOvFn1%{|o#vNM>ciZxd?S~8cO^jCe>@+swoW`A0QwBe-?8)af~I9P9Xh(r=I{N6G@Wp#BPp?8neX2?|E*){TzRMcHU^w*?^cTF|2*+N zBSez<&The-pYs}8AId79(>A>kyIR}jip+(hRj$yM*ESqI@W^?W ze#_U%b<1od&wsBy|Da6S&1%Q9PyZ*}f6>-6cZ))qQM8Kv>Qi0Y*SMcMzQC&YSzhGa zA|=xUdtbNcbSb2Gv`%!~`StFMy`};aC0VB3-5boAx9aM&w2b`T^Y=U!9_X&VtaK;H zaT0sh>GEZV{{Gm=Zs98!l;?f)k)f*c(XM`J@%qlNZ^u^1ZohD>`|&Xkd&hv)S3Wu% z+i_dM@KU*xSd2RJ8NQmuC&Lbu=gbNIy^4LsFQu(pgJ*x|%3gOjwd6R*j>sQx#F=lu zJXGoO!084{O1tje3qM4ed=E`wPqdoUd^XVMhAs$JhWU+jfMw_m^#&wmxBDT#-t7$zcPF*+~VqV+@-8ejl=)ENnq+P&YkVnIupLPA2`UgzUKNHt7X>w2QSO+ zjOv|GyKzNrs$zAqgq5XAO|a)ymYdPF0_A*(`oC5#6JB$iZ>B-g5s&&t;lqP!KnrZ_SUnp7rVO39Q?d?I-eVhX_7*9zr(k*=Br!SZr<+r8r}RRp_2D4 z=f@O=6*DtI4NkWwof8*qHK?#&?!n^7V`UaC_26FVqe{8p8wnDj%ncMAVF2}mAxC}X}^&A+Kx)i8A0)N}XT zKG!@~s9wA+&MDu8;mTRR*`UoaDu>EBk568C?fb;e$M@o874BpT9ycfzH(xrR)41*2 zz04DQQBRMREMzp;Is}#9vI(s=uT8Z*q_|$vh})(k>9oXyd*T-a z+TEWY5>WcAmmzlcUi+H`s>PY{j%63L%#T$p&~t5ElL%^L9PzL|nCHIn>!!d$1r9#X zr4LgT%6(k_9H?f#^LvH$=LRQ1-!9gK*V|M#OD}d_r;!!Eh&?O&#_IJp0k=7BHhy%7 z^-(kY>|>gAq+_C)Q^!2bPMbuf`D|xZ74B{04PADgWuZsx;V%qo+%qHe?s7o_aLq@D zw`?c&-7ry1-Yz|_2jugl2^wK1e;%F zHr?9$Vu$+1-&rkh4#=$7l5&FY*KKA~-wEJmE1GF?uhZ5Our9$gcbXt=wv<00>% z#qVOTGphAf$FJ;s#B6OQ%6?nVt%`M1v*^;z()=L_HUYE!CZDkeH#|3$oalR5AKnwW z{?4m?1~}xPzTnN}*J~A{_IO-57a#s{wwL37&W(Sn zHAJf?N}sATS`Z^(GP!lhBXg#|oe^T@;p)D2^FHZ>1z6`Xxh>yY_|PVU-)ypfPqh1u z?p2@Dtm3#i&F+h4AKQD(WBu*y8kgLMc3Bq>T@iDmou{q?5)eKjBY^~&30DwZ`B zoBerw+W2?g$=WZo&O~i*mVUjbVa4gT!t-yg8sB5QbU3AaT?5;W@_6+PN(wSYORH8* z*Pk6CP;pZ2cd`BSn-f}PR!-jkdh>^3`{{c#_lCN5H$Prrd1BpyGNS`_Ra1ZOv(4iT zJmvU#g6xJ9H^rYkc)sp@%ucpz0heNU4s>wm-Am!W#bC;KQ}oKdRE9kTi=Q6aRy|RV z>7zc!&Dretbu~EGI+iiqYG}L7aWne%qD-U7YV&#~-VyF*C36 z?{lt)4U$X6%ihmiVN`RLt8Z7jwnT9V%ZB71w*pdktru31(R(uKp=^WR@wc%aW$HJ+ zG%@~Y;=R_ux+7n9Wz?siKc&}LpK}y(s%+}CJf!wn%6hv*fzNqQriR$#3OmlWDMGihWJ{%P##s zG5PEI`CpD{-+0AyS@!3HyVZB>Yp4CbYy9uMU4W|ctyg^??_@r|_%xJf!HkMbgK~}^ z^2~RBdk8pfI~(pTQ^uLb(2&L$JEuZwGK;adjrjrL2D?{H&vQ3i-#OvT?C*X*pKwWL z>EB5R75rkjuja_C)xlCp$C~u-W$@nku(EPXzL=$$t1-*JdwXu)vvHWeH~rH3z*$Lq zWDP6cmi?Y-qtw4YWAWdm$@3g8iSr+PzHYOpmH+w0?dcP8H{NBKt|9tu7LQG+%Xc58 zBGvbe?|XlzpE5~pdaz!8^SX%SiTwO$ey~6Lc)mAs{hkAAo%<8pYmZyb;`99XQ+lm; z`^&mRe}n&RRC;U!+@=75=V zS%OW#^t;TaHhXhdPKXV%^RW6H#(fply#rLQDpa1=8zvxBY*KfDSz7aT) z=Uj1r$^Vnf_m(wg8Z~jrod~}mZ)^S8`}Q1v*){eiz3bxB_r4DLK9lL!ZFSohB`p4* z3;#aqHM=Mrw`r!|kK(O$fk&plWl+0#f@hO6+rtg-f6lF*%=j)=ebI8(IKD$4@&c+? z2Yu8GwrSQ3dR|iO#c<$9)0(dzvyE=EJ-o=IB=PrRqjdR;b(!`5kBzUGFTZ#iofD+ANKrsG?Yz{F zWs5#f`@MQPPvma51hzx3kFEK=OyFXW$b)-l$?y0Z1`%bE^?UEi30cbbrVGsx=+!rMB*? zaQ;?$d+vF8wE|h6kdMFR*3Q*hXr5F4@6W0;_hmo+`<9@a-mHJ$;KS+LbMxn}-S^b# zdt2$X+3(iM&2T>-n|`vOWzV$@t|Mh&jvhqut?77`#*3re&j{kA@ zY-^MKan5^g{``-g>o_$2e<__Az0D%U$}aX${2s&4>AzpIfBJDLvHQSB{x_@dm)%nS z{^!B7M)UV2@8++o^ojm)dikqz{{`ZCTk`fA{{H-W?f$x5ey4skYR|E+*x|o zo^%P0cN?OT<^=EF$R3dE+wdS%lzY?bl8ms{Y#D=Djf?gEPOoX>*};G7!!N_v+3I^2 zyV^Wys4af6eDXhUvzvEJigq;k1$tT4EbBPAr|$j~e>u&n2Nj)CdpN)RZ$0}hg?CTJ z;=knUFj+j-)~%pyLFUAIS#AN-2lqVx2Qb=Nw)2aA)ZTu}Zui5DmRl^d_ZCkt z{_OT!zVBN7@5WXA2R|yQWgV-(^YqUpv)>CdzqD1aNhpJNfth-ZOu{a?4J7xK+~Ql=HQP#;GoH>fT3B z3hDi>;MHsrEqHyh*(}B+D_)cT%C?sJmxlaT#4a7-Udd>4cGt%a^Gmb4bx!Phz$*Rr z{hY70{Zb2e{=d|1ezX7FqW$)dYJbisKVG^2?P|%&_um{}`&!Svd-y{HW9&}0N$02Y z9`55ae$s5e=T7Y-(VhDDCu~i;estPP-ZNqsikR|P*z+$u%K6UMv2jQF+zXv5LJ4j+ zgO0Rq==xA!y~*!_<-wJ6V*ahySDEg3ZCOS6Ca*%>l!V$cdp0qdL9JzU{b+ou=fBEkByZzG*PF^WFrrSjyUKv*GVEFgx70=FH*IM`QxcTo* zV)nAO|NmB)haYFT_Wx7a@&}1b2j9wnDSyppcj;eLw+5`GiE

q(m2UXA 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

enuS$lG~Dc|j>x3*kf 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%0D{}tyndwV82lR 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 From 98b03672495fd70bd933035b190d8798d1c15825 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Aug 2015 17:54:18 -0700 Subject: [PATCH 050/190] Upgrade frontend --- homeassistant/components/frontend/version.py | 2 +- homeassistant/components/frontend/www_static/frontend.html | 3 +-- .../components/frontend/www_static/home-assistant-polymer | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index f6ccfbe7a78..e68811c90cf 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "6558cad990c03dd96f9e8b1035495cb6" +VERSION = "0fb3e290ac3984198deea6cc08f63bee" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 19d13a1f889..eab01e5a14e 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -3828,11 +3828,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN } .install { display: block; - white-space: pre; line-height: 1.5em; margin-top: 8px; margin-bottom: 16px; - } \ No newline at end of file diff --git a/homeassistant/components/frontend/www_static/home-assistant-polymer b/homeassistant/components/frontend/www_static/home-assistant-polymer index d069489d09e..dc5f86223f8 160000 --- a/homeassistant/components/frontend/www_static/home-assistant-polymer +++ b/homeassistant/components/frontend/www_static/home-assistant-polymer @@ -1 +1 @@ -Subproject commit d069489d09e9155c44a0fdbdb3cecdab02d18b5f +Subproject commit dc5f86223f810a5506a185c11fc8793d72a9cb6e From 96cfff192a738c4a8dd936b0cc95e16de2ac23a9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Sep 2015 01:21:30 -0700 Subject: [PATCH 187/190] Fix space after HA started in logbook --- homeassistant/components/demo.py | 2 +- homeassistant/components/frontend/version.py | 2 +- homeassistant/components/frontend/www_static/frontend.html | 2 +- .../components/frontend/www_static/home-assistant-polymer | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/demo.py b/homeassistant/components/demo.py index 5dc91b28370..ac80fed4ad0 100644 --- a/homeassistant/components/demo.py +++ b/homeassistant/components/demo.py @@ -17,7 +17,7 @@ DOMAIN = "demo" DEPENDENCIES = ['introduction', 'conversation'] COMPONENTS_WITH_DEMO_PLATFORM = [ - 'switch', 'light', 'thermostat', 'sensor', 'media_player', 'notify'] + 'switch', 'light', 'sensor', 'media_player', 'notify'] def setup(hass, config): diff --git a/homeassistant/components/frontend/version.py b/homeassistant/components/frontend/version.py index 66535d00745..41e727adf89 100644 --- a/homeassistant/components/frontend/version.py +++ b/homeassistant/components/frontend/version.py @@ -1,2 +1,2 @@ """ DO NOT MODIFY. Auto-generated by build_frontend script """ -VERSION = "b75148a02ba3d4db17a4cdfb28b1232e" +VERSION = "397aa7c09f4938b1358672c9983f9f32" diff --git a/homeassistant/components/frontend/www_static/frontend.html b/homeassistant/components/frontend/www_static/frontend.html index 3c9c2af72c4..60831ab1e66 100644 --- a/homeassistant/components/frontend/www_static/frontend.html +++ b/homeassistant/components/frontend/www_static/frontend.html @@ -4123,7 +4123,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN a { color: var(--accent-color); - }