From 6ef60aa979d7682c9431ef531d807f50d7af5fd8 Mon Sep 17 00:00:00 2001 From: Andrew Thigpen Date: Fri, 15 May 2015 19:59:43 -0500 Subject: [PATCH 001/182] Add include YAML tag. Allows including other files in the main configuration.yaml file. With this functionality, passwords or other sensitive information can be stored in a separate file from the main configuration. --- homeassistant/config.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/homeassistant/config.py b/homeassistant/config.py index b4f70cd1952..fa151325e31 100644 --- a/homeassistant/config.py +++ b/homeassistant/config.py @@ -103,6 +103,18 @@ def load_yaml_config_file(config_path): """ Parse a YAML configuration file. """ import yaml + def yaml_include(loader, node): + """ + Loads another YAML file and embeds it using the !include tag. + + Example: + device_tracker: !include device_tracker.yaml + """ + fname = os.path.join(os.path.dirname(config_path), node.value) + return load_yaml_config_file(fname) + + yaml.add_constructor('!include', yaml_include) + try: with open(config_path) as conf_file: # If configuration file is empty YAML returns None From f3f2240e4a0a9ab45116ab229b8d9819496ecddf Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 15 May 2015 23:26:22 -0700 Subject: [PATCH 002/182] Remove usage of deprecated hass.local_api in __main__ --- homeassistant/__main__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/__main__.py b/homeassistant/__main__.py index 83a8c499718..316529ce74e 100644 --- a/homeassistant/__main__.py +++ b/homeassistant/__main__.py @@ -141,9 +141,9 @@ def main(): def open_browser(event): """ Open the webinterface in a browser. """ - if hass.local_api is not None: + if hass.config.api is not None: import webbrowser - webbrowser.open(hass.local_api.base_url) + webbrowser.open(hass.config.api.base_url) hass.bus.listen_once(EVENT_HOMEASSISTANT_START, open_browser) From e0d697d0bc71e24ca0c589540ba2e66a34d6efa9 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 15 May 2015 23:28:11 -0700 Subject: [PATCH 003/182] Default to UTC if invalid timezone specified --- homeassistant/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/__init__.py b/homeassistant/__init__.py index 132482d4bfa..09069924e6b 100644 --- a/homeassistant/__init__.py +++ b/homeassistant/__init__.py @@ -961,12 +961,14 @@ class Config(object): def as_dict(self): """ Converts config to a dictionary. """ + time_zone = self.time_zone or date_util.UTC + return { 'latitude': self.latitude, 'longitude': self.longitude, 'temperature_unit': self.temperature_unit, 'location_name': self.location_name, - 'time_zone': self.time_zone.zone, + 'time_zone': time_zone.zone, 'components': self.components, } From 8d6bbb8c1a5244f5eee9d99c034291e02d41135a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 16 May 2015 02:24:06 -0700 Subject: [PATCH 004/182] Polymer .9: foundation + login form --- .../frontend/www_static/polymer/bower.json | 59 +++--- .../www_static/polymer/home-assistant-js | 2 +- .../www_static/polymer/home-assistant.html | 73 ++++--- .../polymer/layouts/login-form.html | 185 ++++++++++-------- .../polymer/resources/home-assistant-js.html | 36 ++-- .../resources/home-assistant-style.html | 36 +++- .../polymer/resources/moment-js.html | 4 - .../resources/store-listener-behavior.html | 21 ++ 8 files changed, 249 insertions(+), 167 deletions(-) create mode 100644 homeassistant/components/frontend/www_static/polymer/resources/store-listener-behavior.html diff --git a/homeassistant/components/frontend/www_static/polymer/bower.json b/homeassistant/components/frontend/www_static/polymer/bower.json index 230f81ad96a..9f89276462f 100644 --- a/homeassistant/components/frontend/www_static/polymer/bower.json +++ b/homeassistant/components/frontend/www_static/polymer/bower.json @@ -11,37 +11,40 @@ "bower_components" ], "dependencies": { - "webcomponentsjs": "Polymer/webcomponentsjs#~0.6", - "font-roboto": "Polymer/font-roboto#~0.5.5", - "core-header-panel": "polymer/core-header-panel#~0.5.5", - "core-toolbar": "polymer/core-toolbar#~0.5.5", - "core-tooltip": "Polymer/core-tooltip#~0.5.5", - "core-menu": "polymer/core-menu#~0.5.5", - "core-item": "Polymer/core-item#~0.5.5", - "core-input": "Polymer/core-input#~0.5.5", - "core-icons": "polymer/core-icons#~0.5.5", - "core-image": "polymer/core-image#~0.5.5", - "core-style": "polymer/core-style#~0.5.5", - "core-label": "polymer/core-label#~0.5.5", - "paper-toast": "Polymer/paper-toast#~0.5.5", - "paper-dialog": "Polymer/paper-dialog#~0.5.5", - "paper-spinner": "Polymer/paper-spinner#~0.5.5", - "paper-button": "Polymer/paper-button#~0.5.5", - "paper-input": "Polymer/paper-input#~0.5.5", - "paper-toggle-button": "polymer/paper-toggle-button#~0.5.5", - "paper-icon-button": "polymer/paper-icon-button#~0.5.5", - "paper-menu-button": "polymer/paper-menu-button#~0.5.5", - "paper-dropdown": "polymer/paper-dropdown#~0.5.5", - "paper-item": "polymer/paper-item#~0.5.5", - "paper-slider": "polymer/paper-slider#~0.5.5", - "paper-checkbox": "polymer/paper-checkbox#~0.5.5", + "webcomponentsjs": "Polymer/webcomponentsjs#~0.7", + "font-roboto": "Polymer/font-roboto#~0.5.6", + "paper-header-panel": "PolymerElements/paper-header-panel#~0.9", + "paper-toolbar": "PolymerElements/paper-toolbar#~0.9", + "paper-menu": "PolymerElements/paper-menu#~0.9", + "iron-input": "PolymerElements/iron-input#~0.9", + "iron-icons": "PolymerElements/iron-icons#~0.9", + "iron-image": "PolymerElements/iron-image#~0.9", + "paper-toast": "PolymerElements/paper-toast#~0.9", + "paper-dialog": "PolymerElements/paper-dialog#~0.9", + "paper-spinner": "PolymerElements/paper-spinner#~0.9", + "paper-button": "PolymerElements/paper-button#~0.9", + "paper-input": "PolymerElements/paper-input#~0.9", + "paper-toggle-button": "PolymerElements/paper-toggle-button#~0.9", + "paper-icon-button": "PolymerElements/paper-icon-button#~0.9", + "paper-item": "PolymerElements/paper-item#~0.9", + "paper-slider": "PolymerElements/paper-slider#~0.9", + "paper-checkbox": "PolymerElements/paper-checkbox#~0.9", + "paper-drawer-panel": "PolymerElements/paper-drawer-panel#~0.9", + "moment": "~2.10.3", + "layout": "Polymer/layout" + }, + "stillUpgrading": { + "core-tooltip": "Polymer/core-tooltip#~0.9", + "core-item": "Polymer/core-item#~0.9", + "core-style": "polymer/core-style#~0.9", + "core-label": "polymer/core-label#~0.9", + "paper-dropdown": "PolymerElements/paper-dropdown#~0.9", "color-picker-element": "~0.0.2", "google-apis": "GoogleWebComponents/google-apis#~0.4.4", - "core-drawer-panel": "polymer/core-drawer-panel#~0.5.5", - "core-scroll-header-panel": "polymer/core-scroll-header-panel#~0.5.5", - "moment": "~2.10.2" + "core-scroll-header-panel": "polymer/core-scroll-header-panel#~0.9", + "paper-menu-button": "PolymerElements/paper-menu-button#~0.9" }, "resolutions": { - "webcomponentsjs": "~0.6" + "polymer": "^0.9.0" } } diff --git a/homeassistant/components/frontend/www_static/polymer/home-assistant-js b/homeassistant/components/frontend/www_static/polymer/home-assistant-js index 69ee1c49af1..dd4cefc7af3 160000 --- a/homeassistant/components/frontend/www_static/polymer/home-assistant-js +++ b/homeassistant/components/frontend/www_static/polymer/home-assistant-js @@ -1 +1 @@ -Subproject commit 69ee1c49af12caf00655c66d56474b5c1bcac1c1 +Subproject commit dd4cefc7af348dd9a9cfbc99094b73a7ed128621 diff --git a/homeassistant/components/frontend/www_static/polymer/home-assistant.html b/homeassistant/components/frontend/www_static/polymer/home-assistant.html index 808fcea8f87..8fb3580877d 100644 --- a/homeassistant/components/frontend/www_static/polymer/home-assistant.html +++ b/homeassistant/components/frontend/www_static/polymer/home-assistant.html @@ -3,45 +3,61 @@ + - + + + + + -