From 8e4da669aa75ff745d9581e6305e96c24b3324de Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 16 Nov 2015 21:48:24 -0800 Subject: [PATCH] Site updated at 2015-11-17 05:48:24 UTC --- atom.xml | 65 +- blog/2014/12/18/website-launched/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- blog/2015/01/13/nest-in-da-house/index.html | 12 +- blog/2015/01/24/release-notes/index.html | 12 +- .../2015/02/08/looking-at-the-past/index.html | 12 +- blog/2015/02/24/streaming-updates/index.html | 12 +- .../index.html | 12 +- blog/2015/03/08/new-logo/index.html | 12 +- blog/2015/03/11/release-notes/index.html | 12 +- blog/2015/03/22/release-notes/index.html | 12 +- blog/2015/04/25/release-notes/index.html | 12 +- .../05/09/utc-time-zone-awareness/index.html | 12 +- blog/2015/05/14/release-notes/index.html | 12 +- blog/2015/06/10/release-notes/index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../13/home-assistant-meets-ifttt/index.html | 12 +- .../index.html | 12 +- .../alarm-sonos-and-itunes-support/index.html | 8 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 12 +- .../index.html | 303 + blog/archives/index.html | 54 +- blog/categories/architecture/atom.xml | 2 +- blog/categories/architecture/index.html | 12 +- blog/categories/branding/atom.xml | 2 +- blog/categories/branding/index.html | 12 +- blog/categories/component/atom.xml | 2 +- blog/categories/component/index.html | 12 +- blog/categories/core/atom.xml | 2 +- blog/categories/core/index.html | 12 +- blog/categories/esp8266/atom.xml | 2 +- blog/categories/esp8266/index.html | 12 +- blog/categories/frontend/atom.xml | 2 +- blog/categories/frontend/index.html | 12 +- blog/categories/how-to/atom.xml | 2 +- blog/categories/how-to/index.html | 12 +- blog/categories/mqtt/atom.xml | 2 +- blog/categories/mqtt/index.html | 12 +- blog/categories/release-notes/atom.xml | 230 +- blog/categories/release-notes/index.html | 44 +- blog/categories/user-stories/atom.xml | 2 +- blog/categories/user-stories/index.html | 12 +- blog/categories/website/atom.xml | 2 +- blog/categories/website/index.html | 12 +- blog/index.html | 147 +- blog/posts/2/index.html | 113 +- blog/posts/3/index.html | 58 +- .../alarm_control_panel.mqtt/index.html | 3 + components/browser/index.html | 6 + components/camera.foscam/index.html | 8 +- components/camera.generic/index.html | 8 +- components/camera.mjpeg/index.html | 200 + components/camera/index.html | 186 + components/configurator/index.html | 6 + components/conversation/index.html | 6 + components/device_tracker.mqtt/index.html | 3 + components/device_tracker.ubus/index.html | 27 +- components/discovery/index.html | 6 + components/downloader/index.html | 6 + components/ifttt.manything/index.html | 6 + components/index.html | 124 + components/introduction/index.html | 6 + components/light.blinksticklight/index.html | 6 + components/light.hue/index.html | 6 + components/light.hyperion/index.html | 8 +- components/light.limitlessled/index.html | 8 +- components/light.mqtt/index.html | 275 + components/light.rfxtrx/index.html | 6 + components/light.tellstick/index.html | 6 + components/light.vera/index.html | 6 + components/light.wink/index.html | 6 + components/light.zwave/index.html | 204 + components/light/index.html | 51 +- components/logger/index.html | 223 + components/media_player/index.html | 12 +- components/mqtt/index.html | 3 + components/notify.file/index.html | 3 + components/notify.instapush/index.html | 3 + components/notify.nma/index.html | 3 + components/notify.pushbullet/index.html | 68 +- components/notify.pushetta/index.html | 232 + components/notify.pushover/index.html | 3 + components/notify.slack/index.html | 3 + components/notify.smtp/index.html | 3 + components/notify.syslog/index.html | 3 + components/notify.telegram/index.html | 31 +- components/notify.xmpp/index.html | 3 + components/notify/index.html | 52 +- components/sensor.arest/index.html | 3 + components/sensor.bitcoin/index.html | 3 + components/sensor.command_sensor/index.html | 16 +- components/sensor.cpuspeed/index.html | 3 + components/sensor.efergy/index.html | 3 + components/sensor.glances/index.html | 3 + components/sensor.modbus/index.html | 3 + components/sensor.mqtt/index.html | 6 + components/sensor.mysensors/index.html | 3 + components/sensor.rest/index.html | 3 + components/sensor.rfxtrx/index.html | 3 + components/sensor.sabnzbd/index.html | 3 + .../sensor.swiss_public_transport/index.html | 3 + components/sensor.systemmonitor/index.html | 3 + components/sensor.tellstick/index.html | 3 + components/sensor.temper/index.html | 3 + components/sensor.time_date/index.html | 3 + components/sensor.transmission/index.html | 3 + components/sensor.vera/index.html | 3 + components/sensor.wink/index.html | 3 + components/sensor.worldclock/index.html | 3 + components/sensor.zwave/index.html | 236 + components/sensor/index.html | 3 + components/switch.arest/index.html | 6 + components/switch.command_switch/index.html | 6 + components/switch.edimax/index.html | 6 + components/switch.hikvision/index.html | 6 + components/switch.modbus/index.html | 6 + components/switch.mqtt/index.html | 11 + components/switch.orvibo/index.html | 220 + components/switch.rest/index.html | 6 + components/switch.rfxtrx/index.html | 6 + components/switch.tellstick/index.html | 6 + components/switch.transmission/index.html | 6 + components/switch.vera/index.html | 6 + components/switch.wemo/index.html | 6 + components/switch.wink/index.html | 6 + components/switch.zwave/index.html | 216 + components/switch/index.html | 6 + components/thermostat.heat_control/index.html | 3 + components/thermostat.honeywell/index.html | 191 + components/thermostat.nest/index.html | 3 + components/thermostat.radiotherm/index.html | 3 + components/thermostat/index.html | 11 +- components/updater/index.html | 196 + components/zone/index.html | 9 +- components/zwave/index.html | 26 +- .../dim_lights_when_playing_media/index.html | 6 +- demo/frontend.html | 8415 ++++++++--------- demo/index.html | 2 +- demo/webcomponents-lite.min.js | 6 +- developers/credits/index.html | 4 + developers/index.html | 5 +- developers/rest_api/index.html | 42 + developers/website/index.html | 4 +- getting-started/presence-detection/index.html | 2 +- getting-started/troubleshooting/index.html | 2 +- help/index.html | 13 +- help/trivia/index.html | 186 + images/screenshots/custom-icons.png | Bin 0 -> 2182 bytes images/supported_brands/honeywell.png | Bin 0 -> 5479 bytes images/supported_brands/orvibo.png | Bin 0 -> 19961 bytes images/supported_brands/pushetta.png | Bin 0 -> 2747 bytes index.html | 2 +- sitemap.xml | 355 +- static/mdi-demo.html | 1 + stylesheets/screen.css | 2 +- 165 files changed, 8373 insertions(+), 5285 deletions(-) create mode 100644 blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html create mode 100644 components/camera.mjpeg/index.html create mode 100644 components/camera/index.html create mode 100644 components/light.mqtt/index.html create mode 100644 components/light.zwave/index.html create mode 100644 components/logger/index.html create mode 100644 components/notify.pushetta/index.html create mode 100644 components/sensor.zwave/index.html create mode 100644 components/switch.orvibo/index.html create mode 100644 components/switch.zwave/index.html create mode 100644 components/thermostat.honeywell/index.html create mode 100644 components/updater/index.html create mode 100644 help/trivia/index.html create mode 100644 images/screenshots/custom-icons.png create mode 100644 images/supported_brands/honeywell.png create mode 100644 images/supported_brands/orvibo.png create mode 100644 images/supported_brands/pushetta.png create mode 100644 static/mdi-demo.html diff --git a/atom.xml b/atom.xml index 63e367686b..9be679786d 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ @@ -13,6 +13,53 @@ Octopress + + <![CDATA[0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights ]]> + + 2015-11-16T20:27:00-08:00 + https://home-assistant.io/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported + We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to @happyleavesaoc for idea and prototype). To get started with customizing, pick any icon from MaterialDesignIcons.com, prefix the name with mdi: and stick it into your customize section in configuration.yaml:

+ +
+
homeassistant:
+  customize:
+    switch.ac:
+      icon: 'mdi:air-conditioner'
+
+
+
+ +

Breaking changes

+ +
    +
  • Any existing zone icon will have to be replaced with one from MaterialDesignIcons.com.
  • +
  • LimitlessLED light services require colors to be specified in RGB instead of XY.
  • +
+ +

Changes

+ +

+ + + +]]>
+
+ <![CDATA[0.7.6: Amazon FireTV, Radiotherm thermostats]]> @@ -2302,22 +2349,6 @@ An initial version of voice control for Home Assistant has landed. The current i -]]> - - - - <![CDATA[New logo for Home Assistant]]> - - 2015-03-08T23:16:10-07:00 - https://home-assistant.io/blog/2015/03/08/new-logo - It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

- -

The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

- -

- -The old logo, the new detailed logo and the new simple logo. -

]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index e78f2e4c27..4d53f84a70 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -187,6 +187,12 @@ diff --git a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html index 14812e027a..46be10f333 100644 --- a/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html +++ b/blog/2014/12/26/home-control-home-automation-and-the-smart-home/index.html @@ -242,6 +242,12 @@ This article will try to explain how they all relate.

diff --git a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html index 66ba6c743d..56cbe1763b 100644 --- a/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html +++ b/blog/2015/01/04/hey-pushbullet-nice-talking-to-you/index.html @@ -226,6 +226,12 @@ api_key=ABCDEFGHJKLMNOPQRSTUVXYZ diff --git a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html index 5ef8d8b796..1a5e55c8ae 100644 --- a/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html +++ b/blog/2015/01/11/bootstrapping-your-setup-with-discovery/index.html @@ -201,6 +201,12 @@ diff --git a/blog/2015/01/13/nest-in-da-house/index.html b/blog/2015/01/13/nest-in-da-house/index.html index d2886998fd..b9ffe5a94f 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -204,6 +204,12 @@ password=YOUR_PASSWORD diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index 8687bc5017..b6cb6d4f10 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -210,6 +210,12 @@ Home Assistant now supports --open-ui and --demo-mode diff --git a/blog/2015/02/08/looking-at-the-past/index.html b/blog/2015/02/08/looking-at-the-past/index.html index 004c15efcb..472e52d6f6 100644 --- a/blog/2015/02/08/looking-at-the-past/index.html +++ b/blog/2015/02/08/looking-at-the-past/index.html @@ -220,6 +220,12 @@ Events are saved in a local database. Google Graphs is used to draw the graph. D diff --git a/blog/2015/02/24/streaming-updates/index.html b/blog/2015/02/24/streaming-updates/index.html index 02f565cb82..fa23bcebe5 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -203,6 +203,12 @@ diff --git a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html index b58f53a09a..8f67a043ce 100644 --- a/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html +++ b/blog/2015/03/01/home-assistant-migrating-to-yaml/index.html @@ -193,6 +193,12 @@ diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index 75e01a236c..d8a50d9595 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -194,6 +194,12 @@ The old logo, the new detailed logo and the new simple logo. diff --git a/blog/2015/03/11/release-notes/index.html b/blog/2015/03/11/release-notes/index.html index 6374a60ae2..105981c182 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -233,6 +233,12 @@ An initial version of voice control for Home Assistant has landed. The current i diff --git a/blog/2015/03/22/release-notes/index.html b/blog/2015/03/22/release-notes/index.html index cb22ec7b07..f50eed4d6f 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -270,6 +270,12 @@ I (Paulus) have contributed a scene component. A user can create scenes that cap diff --git a/blog/2015/04/25/release-notes/index.html b/blog/2015/04/25/release-notes/index.html index 1f830775cc..b59c461da0 100644 --- a/blog/2015/04/25/release-notes/index.html +++ b/blog/2015/04/25/release-notes/index.html @@ -281,6 +281,12 @@ diff --git a/blog/2015/05/09/utc-time-zone-awareness/index.html b/blog/2015/05/09/utc-time-zone-awareness/index.html index c097f10b13..91576aff15 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -216,6 +216,12 @@ diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 39cf15b364..f479736d33 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -308,6 +308,12 @@ Before diving into the newly supported devices and services, I want to highlight diff --git a/blog/2015/06/10/release-notes/index.html b/blog/2015/06/10/release-notes/index.html index 691d7f6213..d7b1a7eac3 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -361,6 +361,12 @@ This switch platform allows you to control your motion detection setting on your diff --git a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html index 89c2f920c2..a39c753755 100644 --- a/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html +++ b/blog/2015/07/11/ip-cameras-arduino-kodi-efergy-support/index.html @@ -313,6 +313,12 @@ Fabian has added support for Forecast.io to g diff --git a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html index d6cc3ed201..da212f1933 100644 --- a/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html +++ b/blog/2015/08/09/mqtt-raspberry-pi-squeezebox-asuswrt-support/index.html @@ -302,6 +302,12 @@ Support for Temper temperature sensors has been contributed by +
  • + 0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights +
  • + + +
  • 0.7.6: Amazon FireTV, Radiotherm thermostats
  • @@ -325,12 +331,6 @@ Support for Temper temperature sensors has been contributed by - Alarms, Sonos and iTunes now supported - - - diff --git a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html index dc2d229c8e..605ccda4dc 100644 --- a/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html +++ b/blog/2015/08/17/verisure-and-modern-tp-link-router-support/index.html @@ -212,6 +212,12 @@ diff --git a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html index f56257f5df..be9b2d813c 100644 --- a/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html +++ b/blog/2015/08/26/laundry-automation-with-moteino-mqtt-and-home-assistant/index.html @@ -321,6 +321,12 @@ diff --git a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html index 8561f27837..a64ad4c347 100644 --- a/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html +++ b/blog/2015/08/31/version-7-revamped-ui-and-improved-distribution/index.html @@ -299,6 +299,12 @@ diff --git a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html index 69c57d2fb8..8c6c378109 100644 --- a/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html +++ b/blog/2015/09/11/different-ways-to-use-mqtt-with-home-assistant/index.html @@ -502,6 +502,12 @@ PubSubClient client(ethClient); diff --git a/blog/2015/09/13/home-assistant-meets-ifttt/index.html b/blog/2015/09/13/home-assistant-meets-ifttt/index.html index 9eeb002e5d..afd4913036 100644 --- a/blog/2015/09/13/home-assistant-meets-ifttt/index.html +++ b/blog/2015/09/13/home-assistant-meets-ifttt/index.html @@ -361,6 +361,12 @@ diff --git a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html index b364a768d6..a56a98555c 100644 --- a/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html +++ b/blog/2015/09/18/monitoring-with-glances-and-home-assistant/index.html @@ -262,6 +262,12 @@ Glances web server started on http://0.0.0.0:61208/ diff --git a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html index e4e2a20426..5c54dd3a0d 100644 --- a/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html +++ b/blog/2015/09/19/alarm-sonos-and-itunes-support/index.html @@ -241,6 +241,12 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge diff --git a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html index a22f05564d..53db51fc9a 100644 --- a/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html +++ b/blog/2015/10/05/home-assistant-goes-geo-with-owntracks/index.html @@ -217,6 +217,12 @@ Map in Home Assistant showing two people and three zones (home, school, work) diff --git a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html index dd07f59b65..5462938c32 100644 --- a/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html +++ b/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/index.html @@ -548,6 +548,12 @@ Adafruit_HDC1000 hdc = Adafruit_HDC1000(); diff --git a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html index c14b348069..2f7b63a259 100644 --- a/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html +++ b/blog/2015/10/11/rfxtrx-blinkstick-and-snmp-support/index.html @@ -206,6 +206,12 @@ diff --git a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html index 452a22e7e3..45cff3d416 100644 --- a/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html +++ b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html @@ -228,6 +228,12 @@ This makes more sense as most people run Home Assistant as a daemon

    diff --git a/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html new file mode 100644 index 0000000000..dcf47e9408 --- /dev/null +++ b/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/index.html @@ -0,0 +1,303 @@ + + + + + + + + + + + 0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    + +
    + +

    0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights

    + + + +
    + + + 1 minute reading time + + + + + + Comments + +
    + +
    + + +

    We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to @happyleavesaoc for idea and prototype). To get started with customizing, pick any icon from MaterialDesignIcons.com, prefix the name with mdi: and stick it into your customize section in configuration.yaml:

    + +
    +
    homeassistant:
    +  customize:
    +    switch.ac:
    +      icon: 'mdi:air-conditioner'
    +
    +
    +
    + +

    Breaking changes

    + +
      +
    • Any existing zone icon will have to be replaced with one from MaterialDesignIcons.com.
    • +
    • LimitlessLED light services require colors to be specified in RGB instead of XY.
    • +
    + +

    Changes

    + +

    + + +
    + + +
    +

    Comments

    +
    +
    + + +
    + + + + +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index 2cb732ceb9..b9aefc09fe 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -44,17 +44,11 @@ - Oct 26 + Nov 16 - 0.7.6: Amazon FireTV, Radiotherm thermostats - - - - - - ..."> + 0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights..."> @@ -143,6 +137,38 @@

    2015

    + + + +
    @@ -1141,6 +1167,12 @@ diff --git a/blog/categories/architecture/atom.xml b/blog/categories/architecture/atom.xml index 25b0ae99f6..45a2af4712 100644 --- a/blog/categories/architecture/atom.xml +++ b/blog/categories/architecture/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: architecture | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/architecture/index.html b/blog/categories/architecture/index.html index 3e993b9971..6da25cb727 100644 --- a/blog/categories/architecture/index.html +++ b/blog/categories/architecture/index.html @@ -199,6 +199,12 @@ diff --git a/blog/categories/branding/atom.xml b/blog/categories/branding/atom.xml index a91088d92b..34af931ace 100644 --- a/blog/categories/branding/atom.xml +++ b/blog/categories/branding/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: branding | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/branding/index.html b/blog/categories/branding/index.html index 2a462b9254..b8f6c521a1 100644 --- a/blog/categories/branding/index.html +++ b/blog/categories/branding/index.html @@ -199,6 +199,12 @@ diff --git a/blog/categories/component/atom.xml b/blog/categories/component/atom.xml index 2c5376384f..58d190f3ee 100644 --- a/blog/categories/component/atom.xml +++ b/blog/categories/component/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: component | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/component/index.html b/blog/categories/component/index.html index 5c9e3d04e6..7ee4435014 100644 --- a/blog/categories/component/index.html +++ b/blog/categories/component/index.html @@ -297,6 +297,12 @@ diff --git a/blog/categories/core/atom.xml b/blog/categories/core/atom.xml index c3b28afcd7..7ca46e59b8 100644 --- a/blog/categories/core/atom.xml +++ b/blog/categories/core/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: core | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/core/index.html b/blog/categories/core/index.html index 0fef523b18..445656f0aa 100644 --- a/blog/categories/core/index.html +++ b/blog/categories/core/index.html @@ -231,6 +231,12 @@ diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index 79f5dcb1ce..2248a6e517 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: esp8266 | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index 7d747a5e40..24e687652d 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -203,6 +203,12 @@ diff --git a/blog/categories/frontend/atom.xml b/blog/categories/frontend/atom.xml index 0b431bc2f1..c530d07386 100644 --- a/blog/categories/frontend/atom.xml +++ b/blog/categories/frontend/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: frontend | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/frontend/index.html b/blog/categories/frontend/index.html index 285685b45a..6b96047f4e 100644 --- a/blog/categories/frontend/index.html +++ b/blog/categories/frontend/index.html @@ -233,6 +233,12 @@ diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index d7cdd2da72..213d64588f 100644 --- a/blog/categories/how-to/atom.xml +++ b/blog/categories/how-to/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: how-to | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index d83e201241..306c29ae10 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -303,6 +303,12 @@ diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index 64cc098795..5c6c45e69c 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: mqtt | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 40b4cf4fcb..18c537c380 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -237,6 +237,12 @@ diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index b28089df82..86e0414d3f 100644 --- a/blog/categories/release-notes/atom.xml +++ b/blog/categories/release-notes/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: release-notes | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ @@ -13,6 +13,53 @@ Octopress + + <![CDATA[0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights ]]> + + 2015-11-16T20:27:00-08:00 + https://home-assistant.io/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported + We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to @happyleavesaoc for idea and prototype). To get started with customizing, pick any icon from MaterialDesignIcons.com, prefix the name with mdi: and stick it into your customize section in configuration.yaml:

    + +
    +
    homeassistant:
    +  customize:
    +    switch.ac:
    +      icon: 'mdi:air-conditioner'
    +
    +
    +
    + +

    Breaking changes

    + +
      +
    • Any existing zone icon will have to be replaced with one from MaterialDesignIcons.com.
    • +
    • LimitlessLED light services require colors to be specified in RGB instead of XY.
    • +
    + +

    Changes

    + +

    + + + +]]>
    +
    + <![CDATA[0.7.6: Amazon FireTV, Radiotherm thermostats]]> @@ -190,187 +237,6 @@ Automation has gotten a lot of love. It now supports conditions, multiple trigge

    Verisure Alarms
    We now support arming and disarming your verisure alarm from within Home Assistant thanks to added support by @persandstrom.

    -]]> -
    - - - <![CDATA[Home Assistant meets IFTTT]]> - - 2015-09-13T09:28:00-07:00 - https://home-assistant.io/blog/2015/09/13/home-assistant-meets-ifttt - Today we announce the release of Home Assistant v0.7.2 which includes brand new support by @sfam to integrate with IFTTT. IFTTT stands for If This, Then That and is a webservice that integrates with almost every possible webservice out there. Adding Home Assistant to this mix means Home Assistant can connect with all via IFTTT.

    - -

    It is now possible to disable your irregation system if it is going to be cloudy tomorrow or tweet if your smoke alarm goes off.

    - -

    - -

    - -

    Head over to the setup instructions to get started with IFTTT. Click the read more button for some example recipes.

    - - - -

    In each of the following examples, make sure to replace the XXX in the url with your correct host address and api password.

    - -

    Turn off irregation system when not needed

    - -

    - -

    - -

    Maker channel setup:

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FieldValue
    URLhttp://xxx.xxx.xxx.xxx:8123/api/services/switch/turn_off?api_password=xxxxxxxx
    METHODPOST
    CONTENT TYPEapplication/json
    BODY{ “entity_id”: “switch.irrigation” }
    - -

    Tweet when important events happen

    - -

    - -

    - -

    This will tweet a message when an MQTT message is received that the smoke alarm has been triggered. Setup Maker channel with event name HA_FIRE_ALARM and Twitter channel to tweet the message in value1.

    - -
    -
    # Configuration.yaml entry
    -automation:
    -- alias: Post a tweet when fire alarm is triggered
    -  trigger:
    -    platform: mqtt
    -    mqtt_topic: home/alarm/fire
    -    mqtt_payload: 'on'
    -
    -  action:
    -    service: ifttt.trigger
    -    data: {"event":"HA_FIRE_ALARM", "value1":"The fire alarm just triggered!"}
    -
    -
    -
    - -

    Turn on lights when I get home

    - -

    - -

    - -

    Maker channel setup:

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FieldValue
    URLhttp://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx
    METHODPOST
    CONTENT TYPEapplication/json
    BODY{ “entity_id”: “light.kitchen” }
    - -

    Flash lights when a new PR comes in for Home Assistant

    - -

    - -

    - -

    Maker channel setup:

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FieldValue
    URLhttp://xxx.xxx.xxx.xxx:8123/api/services/light/turn_on?api_password=xxxxxxxx
    METHODPOST
    CONTENT TYPEapplication/json
    BODY{ “entity_id”: “group.all_lights”, “flash”:”yes” }
    - -

    Fire events when pressing the DO button

    - -

    - -

    - -

    Maker channel setup:

    - - - - - - - - - - - - - - - - - - - - - - -
    FieldValue
    URLhttp://xxx.xxx.xxx.xxx:8123/api/events/do_button_pressed?api_password=xxxxxxxx
    METHODPOST
    CONTENT TYPEapplication/json
    ]]>
    diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index cb89561836..59f570c3df 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -110,6 +110,38 @@

    2015

    + + + +
    @@ -617,6 +649,12 @@ diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index b6b3ef9914..d9d401a5c5 100644 --- a/blog/categories/user-stories/atom.xml +++ b/blog/categories/user-stories/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: user-stories | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index 4cd9eb05aa..0017f3f42b 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -231,6 +231,12 @@ diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index 37faa9930b..1577f05225 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: website | Home Assistant]]> - 2015-10-30T22:13:50-07:00 + 2015-11-16T21:44:43-08:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index 89010b1923..eccb29b824 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -199,6 +199,12 @@ diff --git a/blog/index.html b/blog/index.html index f4957a3bf0..7a22287088 100644 --- a/blog/index.html +++ b/blog/index.html @@ -27,21 +27,18 @@ - 0.7.6: Amazon FireTV, Radiotherm thermostats + 0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights - October 26, 2015 + November 16, 2015 Paulus Schoutsen - two minutes reading time + 1 minute reading time - - - - releas..."> + ..."> @@ -114,6 +111,85 @@ +
    +
    + +

    + 0.8: Honeywell Thermostats, Orvibo switches and Z-Wave switches and lights +

    + + + +
    + + + 1 minute reading time + + + + + + Comments + +
    + +
    + + +
    +

    We have all been hard at work to get this latest release ready. One of the big highlights in this release is the introduction of an extended iconset to be used in the frontend (credits to @happyleavesaoc for idea and prototype). To get started with customizing, pick any icon from MaterialDesignIcons.com, prefix the name with mdi: and stick it into your customize section in configuration.yaml:

    + +
    +
    homeassistant:
    +  customize:
    +    switch.ac:
    +      icon: 'mdi:air-conditioner'
    +
    +
    +
    + +

    Breaking changes

    + +
      +
    • Any existing zone icon will have to be replaced with one from MaterialDesignIcons.com.
    • +
    • LimitlessLED light services require colors to be specified in RGB instead of XY.
    • +
    + +

    Changes

    + +

    + + + + + +
    +
    +
    +
    @@ -651,63 +727,6 @@ Inspried by a fea

    -
    -
    - -

    - Laundry Automation: insight and notifications -

    - - - -
    - - - four minutes reading time - - - - - - Comments - -
    - -
    - - -
    -

    This is a guest post by Home Assistant user and contributor Nolan Gilley.

    - -

    In our house, laundry has been a struggle for quite some time. Our washer and dryer both lack a buzzer which leads to forgotten laundry, and stinky mess that needs to be rewashed. I decided to create a solution by monitoring the washer and dryer myself with some cheap electronics.

    - -

    As an avid user of Home Assistant, I decided it would be the perfect application to manage the UI and notification system. Now all I needed was a way to monitor the washer and dryer. I tried using sound sensors but found them unreliable. I ended up opting for an accelerometer attached to the back of each appliance. I also added magnetic reed switches on the doors of the washer and dryer to detect if the doors are open or closed. I connected the accelerometers and reed switches to a Moteino, an arduino clone with an RF transceiver. The Moteino can perform the logic to figure out which state the appliances are in and wirelessly communicate that data with another Moteino that is connected via serial to my Raspberry Pi. The Raspberry Pi reads the serial data and repeats it over MQTT for Home Assistant to use. This is great because I don’t have to run Home Assistant on the Raspberry Pi. I can run it on a faster machine and point the MQTT component to my Raspberry Pi.

    - -

    After taking some sample data from the accelerometers while each appliance was in operation, I decided to plot the data to help determine the proper thresholds of when the devices were running or off. I had to do this in order to get precise ranges so the dryer sensor wouldn’t get tripped by the washer or vice versa. In the plot below you can see the acceleration in the x direction for the accelerometer connected to the washing machine. It’s easy to see when the washing machine is in operation here. I used the same technique for the dryer’s accelerometer.

    - -

    - - - - Graph showing the accelerometer data -

    - - - - Read on → - -
    -
    -
    - -
    -
    -
    - -
    -
    - -

    - New logo for Home Assistant -

    - - - -
    - - - less than one minute reading time - - - - - - Comments - -
    - -
    - - -
    -

    It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

    - -

    The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

    - -

    - -The old logo, the new detailed logo and the new simple logo. -

    - -

    diff --git a/blog/posts/3/index.html b/blog/posts/3/index.html index e018996c8c..e2fa9be785 100644 --- a/blog/posts/3/index.html +++ b/blog/posts/3/index.html @@ -27,23 +27,23 @@ - Home Assistant moving to YAML + New logo for Home Assistant - March 1, 2015 - Theodor Lindquist + March 8, 2015 + Paulus Schoutsen less than one minute reading time - core + branding - ..."> + ..."> @@ -116,6 +116,54 @@ +
    +
    + +

    + New logo for Home Assistant +

    + + + +
    + + + less than one minute reading time + + + + + + Comments + +
    + +
    + + +
    +

    It is well known that you are either a good programmer or a good designer. It’s rare you’ll meet someone that is both. That’s why it wasn’t surprising to anyone that the logo that I made was mediocre — at best. Luckily, Jeremy Geltman has come to the rescue and contributed a brand new logo for Home Assistant.

    + +

    The new logo follows Googles material design spec. It uses the blue color that Home Assistant uses in the interface and it comes in two versions: a high detailed version (for homescreen icon etc) and a simple version (for favicon etc).

    + +

    + +The old logo, the new detailed logo and the new simple logo. +

    + + +
    +
    +
    +
    diff --git a/components/alarm_control_panel.mqtt/index.html b/components/alarm_control_panel.mqtt/index.html index bb6a341b80..28a6a565eb 100644 --- a/components/alarm_control_panel.mqtt/index.html +++ b/components/alarm_control_panel.mqtt/index.html @@ -161,6 +161,9 @@
  • MQTT device tracker
  • +
  • + MQTT light +
  • MQTT sensor
  • diff --git a/components/browser/index.html b/components/browser/index.html index 40444f60b1..68a81e6000 100644 --- a/components/browser/index.html +++ b/components/browser/index.html @@ -164,6 +164,12 @@
  • Introduction
  • +
  • + Logger +
  • +
  • + Updater +
  • diff --git a/components/camera.foscam/index.html b/components/camera.foscam/index.html index c1aa452322..f46abf2bc1 100644 --- a/components/camera.foscam/index.html +++ b/components/camera.foscam/index.html @@ -144,17 +144,23 @@
    This is a platform for - the component. + the Camera component.

    Category Camera

      +
    • + Camera +
    • Foscam IP camera
    • Generic IP Camera
    • +
    • + Generic MJPEG IP Camera +
    • Hikvision camera
    • diff --git a/components/camera.generic/index.html b/components/camera.generic/index.html index b72cf49b7f..b2459ecf7e 100644 --- a/components/camera.generic/index.html +++ b/components/camera.generic/index.html @@ -150,17 +150,23 @@
    This is a platform for - the component. + the Camera component.

    Category Camera

    diff --git a/components/conversation/index.html b/components/conversation/index.html index 3e59efabd2..4b8929469b 100644 --- a/components/conversation/index.html +++ b/components/conversation/index.html @@ -151,6 +151,12 @@
  • Introduction
  • +
  • + Logger +
  • +
  • + Updater +
  • diff --git a/components/device_tracker.mqtt/index.html b/components/device_tracker.mqtt/index.html index dd5825034b..9f733747ea 100644 --- a/components/device_tracker.mqtt/index.html +++ b/components/device_tracker.mqtt/index.html @@ -149,6 +149,9 @@
  • MQTT Alarm Control Panel
  • +
  • + MQTT light +
  • MQTT sensor
  • diff --git a/components/device_tracker.ubus/index.html b/components/device_tracker.ubus/index.html index ac72bcea2c..68b5a1d9f3 100644 --- a/components/device_tracker.ubus/index.html +++ b/components/device_tracker.ubus/index.html @@ -102,7 +102,7 @@

    This is one of the two ways we support OpenWRT. If you encounter problems, try luci.

    -

    This is a presence detection scanner for OpenWRT using ubus.

    +

    This is a presence detection scanner for OpenWRT using ubus.

    Before this scanner can be used you have to install the ubus RPC package on OpenWRT:

    @@ -131,7 +131,24 @@ -

    After this is done, configure Home Assistant as follows:

    +

    Restart the services.

    + +
    +
    # /etc/init.d/rpcd restart && /etc/init.d/uhttpd restart
    +
    +
    +
    + +

    Check if the file namespaces is registered with the RPC server.

    + +
    +
    # ubus list | grep file
    +file
    +
    +
    +
    + +

    After this is done, add the following to your configuration.yaml file:

    # Example configuration.yaml entry
    @@ -147,9 +164,9 @@
     

    Configuration 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.
    • +
    • host (Required): The IP address of your router, eg. 192.168.1.1.
    • +
    • username (Required): The username of an user with administrative privileges, usually root.
    • +
    • password (Required): The password for your given account.

    See the device tracker component page for instructions how to configure the people to be tracked.

    diff --git a/components/discovery/index.html b/components/discovery/index.html index ac3b02dff8..0bc402ceb6 100644 --- a/components/discovery/index.html +++ b/components/discovery/index.html @@ -161,6 +161,12 @@ There is currently a Category Camera
    diff --git a/components/light.blinksticklight/index.html b/components/light.blinksticklight/index.html index e6a2ce5c47..b1d4bce1eb 100644 --- a/components/light.blinksticklight/index.html +++ b/components/light.blinksticklight/index.html @@ -151,6 +151,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -166,6 +169,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.hue/index.html b/components/light.hue/index.html index 40be3facb1..9323c2e6f1 100644 --- a/components/light.hue/index.html +++ b/components/light.hue/index.html @@ -142,6 +142,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -157,6 +160,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.hyperion/index.html b/components/light.hyperion/index.html index 5e0d2973aa..481c846087 100644 --- a/components/light.hyperion/index.html +++ b/components/light.hyperion/index.html @@ -100,7 +100,7 @@
    -

    This platform allows you to integrate your Hyperion into Home Assistant.

    +

    This platform allows you to integrate your Hyperion into Home Assistant.

    # Example configuration.yaml entry
    @@ -142,6 +142,9 @@
             
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -157,6 +160,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.limitlessled/index.html b/components/light.limitlessled/index.html index a6bbbcd965..e8d2bdbc86 100644 --- a/components/light.limitlessled/index.html +++ b/components/light.limitlessled/index.html @@ -100,7 +100,7 @@
    -

    The limitlessled can control your LimitlessLED lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, MiLight, LEDme, dekolight or iLight.

    +

    The limitlessled platform can control your LimitlessLED lights from within Home Assistant. The lights are also known as EasyBulb, AppLight, AppLamp, MiLight, LEDme, dekolight or iLight.

    To add limitlessled to your installation, add the following to your configuration.yaml file:

    @@ -153,6 +153,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -168,6 +171,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.mqtt/index.html b/components/light.mqtt/index.html new file mode 100644 index 0000000000..2001e02894 --- /dev/null +++ b/components/light.mqtt/index.html @@ -0,0 +1,275 @@ + + + + + + + + + + + MQTT light - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + MQTT light +

    +
    +
    + +

    The mqtt light platform let you control your MQTT enabled light.

    + +

    In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with RETAIN flag, the MQTT switch will receive an instant state update after subscription and will start with correct state. Otherwise, the initial state of the switch will be false/off.

    + +

    When a state topic is not available, the light will work in optimistic mode. In this mode, the light will immediately change state after every command. Otherwise, the light will wait for state confirmation from device (message from state_topic).

    + +

    Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect light operation.

    + +

    To enable a light with brightness and RGB support in your installation, add the following to your configuration.yaml file:

    + +
    +
    # Example configuration.yml entry
    +light:
    +  platform: mqtt
    +  name: "Office Light RGB"
    +  state_topic: "office/rgb1/light/status"
    +  command_topic: "office/rgb1/light/switch"
    +  brightness_state_topic: "office/rgb1/brightness/status"
    +  brightness_command_topic: "office/rgb1/brightness/set"
    +  rgb_state_topic: "office/rgb1/rgb/status"
    +  rgb_command_topic: "office/rgb1/rgb/set"
    +  qos: 0
    +  payload_on: "ON"
    +  payload_off: "OFF"
    +  optimistic: false
    +
    +
    +
    + +

    To enable a light with brightness (no RGB version) in your installation, add the following to your configuration.yaml file:

    + +
    +
    # Example configuration.yml entry
    +light:
    +  platform: mqtt
    +  name: "Office light"
    +  state_topic: "office/rgb1/light/status"
    +  command_topic: "office/rgb1/light/switch"
    +  qos: 0
    +  payload_on: "ON"
    +  payload_off: "OFF"
    +  optimistic: false
    +
    +
    +
    + +

    Configuration variables:

    + +
      +
    • name (Optional): The name of the switch. Default is ‘MQTT Switch’.
    • +
    • state_topic (Optional): The MQTT topic subscribed to receive state updates.
    • +
    • command_topic (Required): The MQTT topic to publish commands to change the switch state.
    • +
    • brightness_state_topic (Optional): The MQTT topic subscribed to receive brightness state updates.
    • +
    • brightness_command_topic (Optional): The MQTT topic to publish commands to change the light’s brightness.
    • +
    • rgb_state_topic (Optional): The MQTT topic subscribed to receive RGB state updates.
    • +
    • rgb_command_topic (Optional): The MQTT topic to publish commands to change the light’s RGB state.
    • +
    • qos (Optional): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages.
    • +
    • payload_on (Optional): The payload that represents enabled state. Default is “ON”.
    • +
    • payload_off (Optional): The payload that represents disabled state. Default is “OFF”.
    • +
    • optimistic (Optional): Flag that defines if switch works in optimistic mode. Default is true if no state topic defined, else false.
    • +
    + +

    + Make sure that your topics match exact. some-topic/ and some-topic are different topics. +

    + + +
    + + +
    + + + + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/components/light.rfxtrx/index.html b/components/light.rfxtrx/index.html index fa67d1bb48..b1ed2a79d6 100644 --- a/components/light.rfxtrx/index.html +++ b/components/light.rfxtrx/index.html @@ -167,6 +167,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -182,6 +185,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.tellstick/index.html b/components/light.tellstick/index.html index 3354be5e68..b110f68af4 100644 --- a/components/light.tellstick/index.html +++ b/components/light.tellstick/index.html @@ -157,6 +157,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -172,6 +175,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.vera/index.html b/components/light.vera/index.html index e6b2e68abc..d9fe093d18 100644 --- a/components/light.vera/index.html +++ b/components/light.vera/index.html @@ -177,6 +177,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -192,6 +195,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.wink/index.html b/components/light.wink/index.html index d708dcc7b5..5fe60d097d 100644 --- a/components/light.wink/index.html +++ b/components/light.wink/index.html @@ -148,6 +148,9 @@
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -163,6 +166,9 @@
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/light.zwave/index.html b/components/light.zwave/index.html new file mode 100644 index 0000000000..8e4d58e182 --- /dev/null +++ b/components/light.zwave/index.html @@ -0,0 +1,204 @@ + + + + + + + + + + + Z-Wave light - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Z-Wave light +

    +
    +
    + +

    To get your Z-Wave lights working with Home Assistant, follow the instructions for the general Z-Wave component.

    + +
    + + +
    + + + + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/components/light/index.html b/components/light/index.html index 75ef64a185..5b28265aa0 100644 --- a/components/light/index.html +++ b/components/light/index.html @@ -104,26 +104,22 @@

    It has 4 built-in light profiles which you’re able to extend by putting a light_profiles.csv file in your config dir.

    -

    It supports the following platforms:

    - -
      -
    • hue for Philips Hue
    • -
    • wink for Wink
    • -
    -

    Preferred way to setup the Philips Hue platform is through the the discovery component. For the Wink light platform enable the wink component.

    If you want to enable the light component directly, add the following lines to your configuration.yaml:

    -
    light:
    -  platform: hue
    -
    +
    +
    light:
    +  platform: hue
    +
    +
    +

    The light component supports multiple entries in configuration.yaml by appending a sequential number to the section: light 2:, light 3: etc.

    -

    Service light.turn_on

    +

    Service light.turn_on

    Turns one light on or multiple lights on using groups.

    @@ -139,32 +135,37 @@ The light component supports multiple entries in configuration.yaml entity_id no - Only act on specified lights. Else targets all. + String or list of strings that point at entity_ids of lights. Else targets all. transition yes - Seconds to take to switch to new state. *not supported by Wink + Integer that represents the time the light should take to transition to the new state. *not supported by Wink profile yes - Which light profile to use. + String with the name of one of the built-in profiles (relax, energize, concentrate, reading) or one of the custom profiles defined in light_profiles.csv in the current working directory. Light profiles define a xy color and a brightness. If a profile is given and a brightness or xy color then the profile values will be overwritten. xy_color yes - Two comma seperated floats that represent the color in XY + A list containing two floats representing the xy color you want the light to be. Two comma seperated floats that represent the color in XY. rgb_color yes - Three comma seperated integers that represent the color in RGB + A list containing three integers representing the xy color you want the light to be. Three comma seperated integers that represent the color in RGB + + + color_temp + yes + An INT in mireds represending the color temperature you want the light to be. brightness yes - Integer between 0 and 255 for how bright the color should be + Integer between 0 and 255 for how bright the color should be. flash @@ -174,7 +175,7 @@ The light component supports multiple entries in configuration.yaml -

    Service light.turn_off

    +

    Service light.turn_off

    Turns one or multiple lights off.

    @@ -190,11 +191,17 @@ The light component supports multiple entries in configuration.yaml entity_id no - Only act on specified lights. Else targets all. + String or list of strings that point at entity_ids of lights. Else targets all. + + + transition + no + Integer that represents the time the light should take to transition to the new state. +
    @@ -219,6 +226,9 @@ The light component supports multiple entries in configuration.yaml
  • LimitlessLED
  • +
  • + MQTT light +
  • Philips Hue
  • @@ -234,6 +244,9 @@ The light component supports multiple entries in configuration.yaml
  • Wink light
  • +
  • + Z-Wave light +
  • diff --git a/components/logger/index.html b/components/logger/index.html new file mode 100644 index 0000000000..8b3d889ceb --- /dev/null +++ b/components/logger/index.html @@ -0,0 +1,223 @@ + + + + + + + + + + + Logger - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Logger +

    +
    +
    + +

    The logger component let one define the level of logging activities in Home Assistant.

    + +

    To enable the logger in your installation, add the following to your configuration.yaml file:

    + +

    By default log all messages and ignore log event lowest than critical for custom omponents.

    + +
    +
    # Example configuration.yaml entry
    +logger:
    +  default: info
    +  logs:
    +    homeassistant.components.device_tracker: critical
    +    homeassistant.components.camera: critical
    +
    +
    +
    + +

    By default ignore all messages lowest than critical and log event for custom components.

    + +
    +
    # Example configuration.yaml entry
    +logger:
    +  default: critical
    +  logs:
    +    homeassistant.components: info
    +    homeassistant.components.rfxtrx: debug
    +    homeassistant.components.device_tracker: critical
    +    homeassistant.components.camera: critical
    +
    +
    +
    + +

    Possible log severities are:

    + +
      +
    • citical
    • +
    • fatal
    • +
    • error
    • +
    • warning
    • +
    • warn
    • +
    • info
    • +
    • debug
    • +
    • notset
    • +
    + + +
    + + +
    + + + + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/components/media_player/index.html b/components/media_player/index.html index 7125edab91..265391d0a3 100644 --- a/components/media_player/index.html +++ b/components/media_player/index.html @@ -102,9 +102,9 @@

    Interacts with media players on your network. Please check the sidebar for a full list of supported devices.

    -

    Services

    +

    Services

    -

    Media control services

    +

    Media control services

    Available services: turn_off, volume_up, volume_down, media_play_pause, media_play, media_pause, media_next_track

    @@ -124,11 +124,12 @@
    -

    Media play services

    +

    Media play services

    There are three services to start playing YouTube video’s on the media player.

    -

    Service media_player/play_youtube_video

    +

    Service media_player/play_youtube_video

    +

    Service to start playing a YouTube video on the media player.

    @@ -153,7 +154,8 @@
    -

    Service media_player/start_fireplace and media_player/start_epic_sax

    +

    Service media_player/start_fireplace and media_player/start_epic_sax

    +

    Will either start a fireplace or Epic Sax Guy 10h on the media player.

    diff --git a/components/mqtt/index.html b/components/mqtt/index.html index 2927025b58..22c517f58f 100644 --- a/components/mqtt/index.html +++ b/components/mqtt/index.html @@ -275,6 +275,9 @@ Home Assistant will automatically load the correct certificate if you connect to
  • MQTT device tracker
  • +
  • + MQTT light +
  • MQTT sensor
  • diff --git a/components/notify.file/index.html b/components/notify.file/index.html index a47383e0fe..02228511f2 100644 --- a/components/notify.file/index.html +++ b/components/notify.file/index.html @@ -163,6 +163,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.instapush/index.html b/components/notify.instapush/index.html index 0fdb1f0037..76495de2f7 100644 --- a/components/notify.instapush/index.html +++ b/components/notify.instapush/index.html @@ -184,6 +184,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.nma/index.html b/components/notify.nma/index.html index f793a58b99..746446dff3 100644 --- a/components/notify.nma/index.html +++ b/components/notify.nma/index.html @@ -164,6 +164,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.pushbullet/index.html b/components/notify.pushbullet/index.html index 2f45d027d7..368160f1ec 100644 --- a/components/notify.pushbullet/index.html +++ b/components/notify.pushbullet/index.html @@ -100,16 +100,17 @@
    -

    Home Assistant currently supports the awesome PushBullet, a free service to send information between your phones, browsers and friends.

    +

    PushBullet is a free service to send information between your phones, browsers and friends.

    -

    To add PushBullet to your installation, add the following to your configuration.yaml file:

    +

    Configuration

    # Example configuration.yaml entry
     notify:
    -  name: NOTIFIER_NAME
       platform: pushbullet
       api_key: YOUR_API_KEY
    +  # Optional
    +  name: NOTIFIER_NAME
     
    @@ -117,11 +118,65 @@

    Configuration variables:

    -

    For more automation examples, see the getting started with automation page.

    +

    Usage

    + +

    PushBullet is a notify platform and thus can be controlled by calling the notify service as described here. An optional target parameter can be given to PushBullet to specify one or many account’s devices, contacts or channels to notify.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypePrefixSuffixExample
    All devicesdevicedevice
    Devicedevice/Device nicknamedevice/iphone
    Contactcontact/Contact e-mail (lowercase)contact/email@example.com
    Channelchannel/Channel tagchannel/my_home
    + +

    Example service payload

    + +
    +
    {
    +  "message": "A message for many people",
    +  "target": [
    +    "device",
    +    "contact/hello@example.com",
    +    "channel/my_home"
    +  ]
    +}
    +
    +
    +
    @@ -162,6 +217,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.pushetta/index.html b/components/notify.pushetta/index.html new file mode 100644 index 0000000000..2fab374bbb --- /dev/null +++ b/components/notify.pushetta/index.html @@ -0,0 +1,232 @@ + + + + + + + + + + + Pushetta - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Pushetta +

    +
    +
    + +

    The pushetta platform uses Pushetta to delivery notifications from Home Assistant to your devices.

    + +

    To enable Pushetta notifications in your installation, add the following to your configuration.yaml file:

    + +
    +
    # Example configuration.yaml entry
    +notify:
    +  name: NOTIFIER_NAME
    +  platform: pushetta
    +  api_key: YOUR_API_KEY
    +  channel_name: YOUR_CHANNEL_NAME
    +
    +
    +
    + +

    Configuration variables:

    + +
      +
    • name (Optional): Setting the optional parameter name allows multiple notifiers to be created. The default value is notify. The notifier will bind to the service notify.NOTIFIER_NAME.
    • +
    • api_key (Required): Your API key for Pushetta.
    • +
    • channel_name (Required): The name of your channel.
    • +
    + +

    To retrieve the API token, log into your account at http://www.pushetta.com and go to your Dashboard. Create a new channel by clicking on Channels and then Add a Channel.

    + +

    It’s easy to test your Pushetta setup outside of Home Assistant. Assuming you have a channel home-assistant, just fire a request and check the channel page in the dashboard for a new message.

    + +
    +
    curl -X POST \
    +    -H "Authorization: Token YOUR_API_KEY" \
    +    -H "Content-Type: application/json" \
    +    -d "{ \"body\" : \"Hello World\", \"message_type\" : \"text/plain\" }" \
    +    http://api.pushetta.com/api/pushes/home-assistant/
    +
    +
    +
    + +

    For further details, please check the API.

    + +

    To use notifications, please see the getting started with automation page.

    + +
    + + +
    + + + + +
    +
    + + + + + + + + + \ No newline at end of file diff --git a/components/notify.pushover/index.html b/components/notify.pushover/index.html index 2d4d1d3b6d..77882c90f3 100644 --- a/components/notify.pushover/index.html +++ b/components/notify.pushover/index.html @@ -170,6 +170,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.slack/index.html b/components/notify.slack/index.html index 4f1eabfcc5..8d256b22c1 100644 --- a/components/notify.slack/index.html +++ b/components/notify.slack/index.html @@ -167,6 +167,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.smtp/index.html b/components/notify.smtp/index.html index 543e40fd5c..dacbd00b06 100644 --- a/components/notify.smtp/index.html +++ b/components/notify.smtp/index.html @@ -183,6 +183,9 @@ which need special attention. By default, the usage by external applications, es
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.syslog/index.html b/components/notify.syslog/index.html index bd830761b2..ca1a7b77ad 100644 --- a/components/notify.syslog/index.html +++ b/components/notify.syslog/index.html @@ -271,6 +271,9 @@
  • PushOver
  • +
  • + Pushetta +
  • SMTP
  • diff --git a/components/notify.telegram/index.html b/components/notify.telegram/index.html index 28fdfe3801..46ef507ed1 100644 --- a/components/notify.telegram/index.html +++ b/components/notify.telegram/index.html @@ -105,8 +105,8 @@

    The requirement are:

    An easy way to get your chat ID is described below:

    @@ -120,6 +120,26 @@ print(chat_id) +

    Another way to retrieve your chat_id is visiting https://api.telegram.org/botYOUR_API_TOKEN/getUpdates.

    + +

    The result set will include your chat ID as id in the from section:

    + +
    +
    {
    +   "ok":true,
    +   "result":[
    +      {
    +         "update_id":254199982,
    +         "message":{
    +            "message_id":201,
    +            "from":{
    +               "id":123456789,
    +               "first_name":"Your first name",
    +...
    +
    +
    +
    +

    To enable Telegram notifications in your installation, add the following to your configuration.yaml file:

    @@ -127,7 +147,6 @@ print(chat_id) notify: name: NOTIFIER_NAME platform: telegram - # Get those by creating a new bot on https://core.telegram.org/bots api_key: ABCDEFGHJKLMNOPQRSTUVXYZ chat_id: YOUR_CHAT_ID
    @@ -137,8 +156,7 @@ print(chat_id)

    Configuration variables:

      -
    • name (Optional): Setting the optional parameter name allows multiple notifiers to be created.
      -The default value is notify. The notifier will bind to the service
      +
    • name (Optional): Setting the optional parameter name allows multiple notifiers to be created. The default value is notify. The notifier will bind to the service
      notify.NOTIFIER_NAME.
    • api_key (Required): The API token of your bot.
    • chat_id (Required: The chat ID of your user.
    • @@ -185,6 +203,9 @@ The default value is notify. The notifier will bind to the service<
    • PushOver
    • +
    • + Pushetta +
    • SMTP
    • diff --git a/components/notify.xmpp/index.html b/components/notify.xmpp/index.html index 2764117337..30bfa5e2c7 100644 --- a/components/notify.xmpp/index.html +++ b/components/notify.xmpp/index.html @@ -166,6 +166,9 @@
    • PushOver
    • +
    • + Pushetta +
    • SMTP
    • diff --git a/components/notify/index.html b/components/notify/index.html index 206ddb5bf6..28710a1ef2 100644 --- a/components/notify/index.html +++ b/components/notify/index.html @@ -100,19 +100,27 @@
      -

      One of the things most people want at some point in their home automation is to get notified when certain events occur. For this reason there is a notify component in Home Assistant.

      +

      The notify component makes it possible to send notifications to a wide variety of platforms. Please check the sidebar for a full list of platforms that are supported.

      -

      Home Assistant currently supports a wide range of services for notifications. Please check the sidebar for a full list of platforms.

      - -

      If your are running into troubles with your notification platform, a simple way to test it is to use Call Service from the Developer Tools. Choose your service (notify/xyz) from the list of Available services: and enter something like the sample below into the Service Data field and hit CALL SERVICE.

      +

      Configuration

      -
      {"message":"A simple test message from HA."}
      +  
      # Example configuration.yaml entry
      +notify:
      +  platform: pushbullet
      +  # Optional name for the notify service
      +  name: paulus
      +  # api_key is a required config key by the pushbullet platform
      +  api_key: ABCDEFG
       
      -

      This will send a single message to your notification platform configured in your configuration.yaml file.

      +

      The name parameter is optional but needed if you want to use multiple platforms. The platform will be exposed as service notify/<name>. The name will default to notify if not supplied.

      + +

      Service

      + +

      Once loaded, the notify platform will expose a service that can be called to send notifications.

      @@ -123,20 +131,35 @@ - - - - - - + + + + + + + + + + +
      titleyesCan be used to set a title for the message. The default is Home Assistant.
      message noMessage to send to recipient.Body of the notification.
      titleyesTitle of the notification. Default is Home Assistant.
      targetyesSome platforms will allow specifying a recipient that will receive the notification. See your platform page if it is supported.
      -

      For more automation examples, see the getting started with automation page or the configuration cookbook.

      +

      Test if it works

      + +

      A simple way to test if you have set up your notify platform correctly is to use Call Service from the Developer Tools to call your notify service. Choose your service (notify/xyz) from the list of Available services: and enter something like the sample below into the Service Data field and hit CALL SERVICE.

      + +
      +
      {
      +  "message": "A simple test message from HA."
      +}
      +
      +
      +
      @@ -171,6 +194,9 @@
    • PushOver
    • +
    • + Pushetta +
    • SMTP
    • diff --git a/components/sensor.arest/index.html b/components/sensor.arest/index.html index f91d6cb5d6..30df7426fd 100644 --- a/components/sensor.arest/index.html +++ b/components/sensor.arest/index.html @@ -268,6 +268,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.bitcoin/index.html b/components/sensor.bitcoin/index.html index 3185e4cdd9..71690e08ba 100644 --- a/components/sensor.bitcoin/index.html +++ b/components/sensor.bitcoin/index.html @@ -252,6 +252,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.command_sensor/index.html b/components/sensor.command_sensor/index.html index 2404f3e284..85666190a4 100644 --- a/components/sensor.command_sensor/index.html +++ b/components/sensor.command_sensor/index.html @@ -171,6 +171,18 @@

      The correction_factor will make sure that the value is shown in a useful format in the frontend.

      +

      Details about the upstream Home Assistant release

      + +

      You can see directly in the frontend (Developer tools -> About) what release of Home Assistant you are running. The Home Assistant releases are available on the Python Package Index. This makes it possible to get the current release.

      + +
      +
        - platform: command_sensor
      +    command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
      +    name: HA release
      +
      +
      +
      +

      Use an external script

      The example is doing the same as the aREST sensor but with an external Python script. It should give you an idea about interacting with devices which are exposing a RESTful API.

      @@ -207,7 +219,6 @@ print(response.json()['
      - @@ -284,6 +295,9 @@ print(response.json()[' Worldclock +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.cpuspeed/index.html b/components/sensor.cpuspeed/index.html index d460bfd1a9..3ea91c534a 100644 --- a/components/sensor.cpuspeed/index.html +++ b/components/sensor.cpuspeed/index.html @@ -195,6 +195,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.efergy/index.html b/components/sensor.efergy/index.html index c1da164d16..ce70350196 100644 --- a/components/sensor.efergy/index.html +++ b/components/sensor.efergy/index.html @@ -211,6 +211,9 @@ negative number of minutes your timezone is ahead/behind UTC time.
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.glances/index.html b/components/sensor.glances/index.html index 85091e09e7..3f50db67c8 100644 --- a/components/sensor.glances/index.html +++ b/components/sensor.glances/index.html @@ -243,6 +243,9 @@ Glances web server started on http://0.0.0.0:61208/
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.modbus/index.html b/components/sensor.modbus/index.html index 6ec9f83dfb..ec2b56a8cb 100644 --- a/components/sensor.modbus/index.html +++ b/components/sensor.modbus/index.html @@ -248,6 +248,9 @@ Each named register will create an integer sensor and each named bit will create
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.mqtt/index.html b/components/sensor.mqtt/index.html index ceeebd516a..52642c11ac 100644 --- a/components/sensor.mqtt/index.html +++ b/components/sensor.mqtt/index.html @@ -151,6 +151,9 @@
    • MQTT device tracker
    • +
    • + MQTT light +
    • MQTT switch
    • @@ -219,6 +222,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.mysensors/index.html b/components/sensor.mysensors/index.html index 899b769eb5..81a88afee2 100644 --- a/components/sensor.mysensors/index.html +++ b/components/sensor.mysensors/index.html @@ -209,6 +209,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.rest/index.html b/components/sensor.rest/index.html index 13e1edd3d2..77e0588696 100644 --- a/components/sensor.rest/index.html +++ b/components/sensor.rest/index.html @@ -287,6 +287,9 @@ Make sure that the URL matches exactly your endpoint or resource.
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.rfxtrx/index.html b/components/sensor.rfxtrx/index.html index c4b62e6d43..f7661113f0 100644 --- a/components/sensor.rfxtrx/index.html +++ b/components/sensor.rfxtrx/index.html @@ -202,6 +202,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.sabnzbd/index.html b/components/sensor.sabnzbd/index.html index a181d3e468..69981b1676 100644 --- a/components/sensor.sabnzbd/index.html +++ b/components/sensor.sabnzbd/index.html @@ -213,6 +213,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.swiss_public_transport/index.html b/components/sensor.swiss_public_transport/index.html index b17f4aed74..27d65882bb 100644 --- a/components/sensor.swiss_public_transport/index.html +++ b/components/sensor.swiss_public_transport/index.html @@ -203,6 +203,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.systemmonitor/index.html b/components/sensor.systemmonitor/index.html index 6346ce373a..9859e36436 100644 --- a/components/sensor.systemmonitor/index.html +++ b/components/sensor.systemmonitor/index.html @@ -294,6 +294,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.tellstick/index.html b/components/sensor.tellstick/index.html index 36005684d1..a4127fea5f 100644 --- a/components/sensor.tellstick/index.html +++ b/components/sensor.tellstick/index.html @@ -218,6 +218,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.temper/index.html b/components/sensor.temper/index.html index 95343ceabd..3713432a2f 100644 --- a/components/sensor.temper/index.html +++ b/components/sensor.temper/index.html @@ -188,6 +188,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.time_date/index.html b/components/sensor.time_date/index.html index 443130a6b6..f00c806b05 100644 --- a/components/sensor.time_date/index.html +++ b/components/sensor.time_date/index.html @@ -202,6 +202,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.transmission/index.html b/components/sensor.transmission/index.html index dd95389512..938c14a05c 100644 --- a/components/sensor.transmission/index.html +++ b/components/sensor.transmission/index.html @@ -234,6 +234,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.vera/index.html b/components/sensor.vera/index.html index 0a215bc1ff..75fcba225c 100644 --- a/components/sensor.vera/index.html +++ b/components/sensor.vera/index.html @@ -222,6 +222,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.wink/index.html b/components/sensor.wink/index.html index 380052c48d..2b857d7416 100644 --- a/components/sensor.wink/index.html +++ b/components/sensor.wink/index.html @@ -196,6 +196,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.worldclock/index.html b/components/sensor.worldclock/index.html index 7b605d51cc..35ae0b7713 100644 --- a/components/sensor.worldclock/index.html +++ b/components/sensor.worldclock/index.html @@ -205,6 +205,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/sensor.zwave/index.html b/components/sensor.zwave/index.html new file mode 100644 index 0000000000..1de303be71 --- /dev/null +++ b/components/sensor.zwave/index.html @@ -0,0 +1,236 @@ + + + + + + + + + + + Z-Wave sensor - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + +
      +
      + +
      + + +
      +
      +

      + Z-Wave sensor +

      +
      +
      + +

      To get your Z-Wave sensors working with Home Assistant, follow the instructions for the general Z-Wave component.

      + +
      + + +
      + + + + +
      +
      + + + + + + + + + \ No newline at end of file diff --git a/components/sensor/index.html b/components/sensor/index.html index f9742defb6..616ce465fb 100644 --- a/components/sensor/index.html +++ b/components/sensor/index.html @@ -195,6 +195,9 @@
    • Worldclock
    • +
    • + Z-Wave sensor +
    • aREST sensor
    • diff --git a/components/switch.arest/index.html b/components/switch.arest/index.html index 1b61958dff..9b5bcca455 100644 --- a/components/switch.arest/index.html +++ b/components/switch.arest/index.html @@ -184,6 +184,9 @@
    • Modbus switch
    • +
    • + Orvibo switch +
    • RESTful switch
    • @@ -202,6 +205,9 @@
    • Wink switch
    • +
    • + Z-Wave switch +
    • aREST switch
    • diff --git a/components/switch.command_switch/index.html b/components/switch.command_switch/index.html index 2414914e5a..246fc8b8b3 100644 --- a/components/switch.command_switch/index.html +++ b/components/switch.command_switch/index.html @@ -206,6 +206,9 @@ This switch will shudown your host immediately, there will be no confirmation.
    • Modbus switch
    • +
    • + Orvibo switch +
    • RESTful switch
    • @@ -224,6 +227,9 @@ This switch will shudown your host immediately, there will be no confirmation.
    • Wink switch
    • +
    • + Z-Wave switch +
    • aREST switch
    • diff --git a/components/switch.edimax/index.html b/components/switch.edimax/index.html index 06d10c5041..80631b910f 100644 --- a/components/switch.edimax/index.html +++ b/components/switch.edimax/index.html @@ -162,6 +162,9 @@
    • Modbus switch
    • +
    • + Orvibo switch +
    • RESTful switch
    • @@ -180,6 +183,9 @@
    • Wink switch
    • +
    • + Z-Wave switch +
    • aREST switch
    • diff --git a/components/switch.hikvision/index.html b/components/switch.hikvision/index.html index 2b73dadb67..8a57011382 100644 --- a/components/switch.hikvision/index.html +++ b/components/switch.hikvision/index.html @@ -150,12 +150,18 @@ Currently works using default https port only.

      Category Camera

        +
      • + Camera +
      • Foscam IP camera
      • Generic IP Camera
      • +
      • + Generic MJPEG IP Camera +
      • Hikvision camera
      • diff --git a/components/switch.modbus/index.html b/components/switch.modbus/index.html index 3573e79c09..dc7c3e31f0 100644 --- a/components/switch.modbus/index.html +++ b/components/switch.modbus/index.html @@ -203,6 +203,9 @@ Each named bit will create a switch.
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -221,6 +224,9 @@ Each named bit will create a switch.
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.mqtt/index.html b/components/switch.mqtt/index.html index 51407dc0dc..0e5e353697 100644 --- a/components/switch.mqtt/index.html +++ b/components/switch.mqtt/index.html @@ -106,6 +106,8 @@

        Optimistic mode can be forced, even if state topic is available. Try to enable it, if experiencing incorrect switch operation.

        +

        To enable this s in your installation, add the following to your configuration.yaml file:

        +
        # Example configuration.yml entry
         switch:
        @@ -167,6 +169,9 @@
                 
      • MQTT device tracker
      • +
      • + MQTT light +
      • MQTT sensor
      • @@ -190,6 +195,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -208,6 +216,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.orvibo/index.html b/components/switch.orvibo/index.html new file mode 100644 index 0000000000..a968b94e4f --- /dev/null +++ b/components/switch.orvibo/index.html @@ -0,0 +1,220 @@ + + + + + + + + + + + Orvibo switch - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Orvibo switch +

        +
        +
        + +

        The orvibo switch platform allows you to toggle your Orvibo S20 Wifi Smart Switch.

        + +

        To use your Orvibo switch in your installation, add the following to your configuration.yaml file:

        + +
        +
        # Example configuration.yaml entry
        +switch:
        +  platform: orvibo
        +  host: IP_ADDRESS
        +
        +
        +
        + +

        Configuration variables:

        + +
          +
        • host (Required): IP address of your switch, eg. 192.168.1.10.
        • +
        + + +
        + + +
        + + + + +
        +
        + + + + + + + + + \ No newline at end of file diff --git a/components/switch.rest/index.html b/components/switch.rest/index.html index 25922936db..0b0a2867de 100644 --- a/components/switch.rest/index.html +++ b/components/switch.rest/index.html @@ -173,6 +173,9 @@ Make sure that the URL matches exactly your endpoint or resource.
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -191,6 +194,9 @@ Make sure that the URL matches exactly your endpoint or resource.
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.rfxtrx/index.html b/components/switch.rfxtrx/index.html index cc064d2ce6..936f0cce72 100644 --- a/components/switch.rfxtrx/index.html +++ b/components/switch.rfxtrx/index.html @@ -174,6 +174,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -192,6 +195,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.tellstick/index.html b/components/switch.tellstick/index.html index f57b28b906..ff5ebc6988 100644 --- a/components/switch.tellstick/index.html +++ b/components/switch.tellstick/index.html @@ -170,6 +170,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -188,6 +191,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.transmission/index.html b/components/switch.transmission/index.html index eac032272c..ab9c5f88e9 100644 --- a/components/switch.transmission/index.html +++ b/components/switch.transmission/index.html @@ -172,6 +172,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -190,6 +193,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.vera/index.html b/components/switch.vera/index.html index 3754fb9051..220c6f52f2 100644 --- a/components/switch.vera/index.html +++ b/components/switch.vera/index.html @@ -181,6 +181,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -199,6 +202,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.wemo/index.html b/components/switch.wemo/index.html index e4485db5e0..4191787cd2 100644 --- a/components/switch.wemo/index.html +++ b/components/switch.wemo/index.html @@ -148,6 +148,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -166,6 +169,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.wink/index.html b/components/switch.wink/index.html index 09f88d9cd3..9c09503338 100644 --- a/components/switch.wink/index.html +++ b/components/switch.wink/index.html @@ -155,6 +155,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -173,6 +176,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/switch.zwave/index.html b/components/switch.zwave/index.html new file mode 100644 index 0000000000..12b5676c1e --- /dev/null +++ b/components/switch.zwave/index.html @@ -0,0 +1,216 @@ + + + + + + + + + + + Z-Wave switch - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Z-Wave switch +

        +
        +
        + +

        To get your Z-Wave switches working with Home Assistant, follow the instructions for the general Z-Wave component.

        + +
        + + +
        + + + + +
        +
        + + + + + + + + + \ No newline at end of file diff --git a/components/switch/index.html b/components/switch/index.html index 896f959993..2cc0afa624 100644 --- a/components/switch/index.html +++ b/components/switch/index.html @@ -170,6 +170,9 @@
      • Modbus switch
      • +
      • + Orvibo switch +
      • RESTful switch
      • @@ -191,6 +194,9 @@
      • Wink switch
      • +
      • + Z-Wave switch +
      • aREST switch
      • diff --git a/components/thermostat.heat_control/index.html b/components/thermostat.heat_control/index.html index 82d1fcbdee..3fa2cce093 100644 --- a/components/thermostat.heat_control/index.html +++ b/components/thermostat.heat_control/index.html @@ -144,6 +144,9 @@
      • Heat control
      • +
      • + Honeywell thermostat +
      • Nest thermostat
      • diff --git a/components/thermostat.honeywell/index.html b/components/thermostat.honeywell/index.html new file mode 100644 index 0000000000..5d9eba6335 --- /dev/null +++ b/components/thermostat.honeywell/index.html @@ -0,0 +1,191 @@ + + + + + + + + + + + Honeywell thermostat - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Honeywell thermostat +

        +
        +
        + +

        The honeywell thermostat platform let you control Honeywell Round Connected thermostat from Home Assistant.

        + +

        To set it up, add the following information to your configuration.yaml file:

        + +
        +
        thermostat:
        +  platform: honeywell
        +  username: YOUR_USERNAME
        +  password:  YOUR_PASSWORD
        +
        +
        +
        + +

        Configuration variables:

        + +
          +
        • username (Required: The username of an user with access.
        • +
        • password (Required): The password for your given admin account.
        • +
        + + +
        + + +
        + + + + +
        +
        + + + + + + + + + \ No newline at end of file diff --git a/components/thermostat.nest/index.html b/components/thermostat.nest/index.html index 2ed5c0abf6..1b54d07c4f 100644 --- a/components/thermostat.nest/index.html +++ b/components/thermostat.nest/index.html @@ -148,6 +148,9 @@
      • Heat control
      • +
      • + Honeywell thermostat +
      • Nest thermostat
      • diff --git a/components/thermostat.radiotherm/index.html b/components/thermostat.radiotherm/index.html index 1a3b3d9302..3860e4a052 100644 --- a/components/thermostat.radiotherm/index.html +++ b/components/thermostat.radiotherm/index.html @@ -155,6 +155,9 @@
      • Heat control
      • +
      • + Honeywell thermostat +
      • Nest thermostat
      • diff --git a/components/thermostat/index.html b/components/thermostat/index.html index 10bf6690df..e414d95ed2 100644 --- a/components/thermostat/index.html +++ b/components/thermostat/index.html @@ -102,14 +102,6 @@

        Thermostats offer Home Assistant a peek into the current and target temperature in a house. Some thermostats will also offer an away mode that will lower use of heating/cooling.

        -

        To set it up, add the following information to your configuration.yaml file:

        - -
        thermostat:
        -  platform: nest
        -  username: myemail@mydomain.com
        -  password: mypassword
        -
        -

        @@ -132,6 +124,9 @@
      • Heat control
      • +
      • + Honeywell thermostat +
      • Nest thermostat
      • diff --git a/components/updater/index.html b/components/updater/index.html new file mode 100644 index 0000000000..5ddc79f21a --- /dev/null +++ b/components/updater/index.html @@ -0,0 +1,196 @@ + + + + + + + + + + + Updater - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Updater +

        +
        +
        + +

        The updater component will check for new releases at startup and everyday at noon and midnight. It will show a badge in the frontend if a new version has been detected.

        + +

        For an added bonus, an automation component can be created to send a message with a notifier when that state of this component’s entity changes.

        + +
        +
        # Example configuration.yaml entry
        +automation:
        +  alias: 'Update Available Notifications'
        +  trigger:
        +    platform: state
        +    entity_id: updater.updater
        +  action:
        +    service: notify.notify
        +    data:
        +      message: 'Update for Home Assistant is available.'
        +
        +
        +
        + +
        + + +
        + + + + +
        +
        + + + + + + + + + \ No newline at end of file diff --git a/components/zone/index.html b/components/zone/index.html index 24fc8c7bb7..c152d11daa 100644 --- a/components/zone/index.html +++ b/components/zone/index.html @@ -113,7 +113,7 @@ # Optional radius in meters (default: 100) radius: 250 # Optional icon to show instead of name - icon: group-work + icon: mdi:school zone 2: name: Work @@ -126,7 +126,7 @@ latitude: 32.8793367 longitude: -117.2474053 radius: 100 - icon: social:people + icon: mdi:account-multiple
        @@ -137,10 +137,7 @@

        Icons

        -

        It is preferred to pick an icon to use for your zone. By default, Home Assistant includes most of the material icons. See the source for a specific list which categories are included.

        - -

        For all but the action category you will need to prefix the icon name with its category. For example social:people or av:radio. For the action category, you will not need to do this, examples are home, work,, group-work and shopping-cart.

        - +

        It is preferred to pick an icon to use for your zone. Pick any zone that you can find on materialdesignicons.com and prefix the name with mdi:. For example mdi:school, mdi:worker, mdi:home, mdi:cart, mdi:castle.

        diff --git a/components/zwave/index.html b/components/zwave/index.html index b2cf05f992..f2a76cc8b9 100644 --- a/components/zwave/index.html +++ b/components/zwave/index.html @@ -100,13 +100,15 @@
        -

        Z-Wave support for Home Assistant is very new. We have started now by integrating only the sensors.

        +

        Z-Wave integration for Home Assistant allows you to observe and control connected Z-Wave devices. Z-Wave support requires a Z-Wave USB stick to be plugged into the host.

        -

        Support for Z-Wave can be added by plugging a Z-Wave USB stick into your computer.

        +

        There is currently support for switches, lights and sensors. All will be picked up automatically after configuring this platform.

        -

        To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile Python Open Z-Wave yourself. We have made it easy and added a script that will do just that for you: script/build_python_openzwave.

        +

        Installation

        -

        Please make sure you have the correct dependencies installed:

        +

        To allow Home Assistant to talk to your Z-Wave USB stick you will have to compile Python Open Z-Wave. This can be done using this script. (The Home Assistant docker image has support for Z-Wave built-in)

        + +

        Make sure you have the correct dependencies installed before running the script:

        $ apt-get install cython3 libudev-dev python-sphinx python3-setuptools
        @@ -115,7 +117,7 @@ $ pip3 install "cython<0.23"
         
        -

        As an alternative, the Home Assistant docker image has support for Z-Wave built-in.

        +

        Configuration

        # Example configuration.yaml entry
        @@ -153,6 +155,20 @@ $ pip3 install "cython<0.23"
           
        +

        Category Hub

          diff --git a/cookbook/dim_lights_when_playing_media/index.html b/cookbook/dim_lights_when_playing_media/index.html index b4b51ddd14..ae3bcc1959 100644 --- a/cookbook/dim_lights_when_playing_media/index.html +++ b/cookbook/dim_lights_when_playing_media/index.html @@ -149,13 +149,13 @@ Adding in the sun condition as we only want this when it’s dark.

          automation:
          -  - action: "Media player paused/stopped"
          +  - alias: "Media player paused/stopped"
               trigger:
                 - platform: state
                   entity_id: media_player.htpc
                   from: 'playing'
               condition:
          -      - platform: sun
          +      - platform: state
                   entity_id: sun.sun
                   state: 'below_horizon'
               action:
          @@ -168,7 +168,7 @@ Adding in the sun condition as we only want this when it’s dark.

          entity_id: media_player.htpc to: 'playing' condition: - - platform: sun + - platform: state entity_id: sun.sun state: 'below_horizon' action: diff --git a/demo/frontend.html b/demo/frontend.html index c2b80cacde..b70204f58f 100644 --- a/demo/frontend.html +++ b/demo/frontend.html @@ -1,6 +1,584 @@ - \ No newline at end of file + } \ No newline at end of file diff --git a/demo/index.html b/demo/index.html index 99b5c68851..16334c8a5c 100644 --- a/demo/index.html +++ b/demo/index.html @@ -46,7 +46,7 @@
          - + + + + \ No newline at end of file diff --git a/images/screenshots/custom-icons.png b/images/screenshots/custom-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..4d74b665d33f6548aa5ea35002f081d2e3e357bd GIT binary patch literal 2182 zcmV;12zmF3P)(9X`z%*@Qh#Kh9l(!RdF zwzjsx!NIVwu&k`Cr>Cd!@$ul`;EIZhlarH>kdWHi+N7kU5)u-kqN1Ihov5g&PkW?w zb#+%)S05iA>gwujY;00eQqbJzgM))`aBxOOMp}faetv#4GczS6C9|`$XlQ6nO-&38 z3}0VgEG#Uz%G&Gf?KwF)8X6k&_W5Rvu&u$=a+S7QgsORYd5NdO#M9uGu*iO%ywn`+ zmjD0)eDyY@=`+t&aOd;pWj4oVqk#o&dvb<`TRQ9jqZ40 zkhuQ#7JwDW066=GjV22MaYfN3f*@lh7o*O@5Wt{w|A-fS=dEKA=pD-dv?Ml|EVxoy zb!^*F(~`SVlt*st4#4I3c!5yLjxOAkfwOaLI)O-C+tGAU)HTPxl8AsM(Gt`EpobAc zeLe?H-vei7*l>cFc8m&nQZbygxO|fiN8Mpa4;_RNzkWYIzm8OKdV{gFiA^PldetEl zw5q;*lR_ zCV6}+;onj&unopZ8f4D?Op-npH@Wn0A;X8xXgi9~iIXLBN;4BDhyMssJ%!BSr*E%K z7i%P7vj}N3uaOzXyXl9ph6OI}Iqv>~zTigw35S*GG0YM*ydpuel{}fz`!TsxYii-o zn|lBc+--1zf5AA!E20bfqDQ8bPw9ewnXi2u7yO~aUE#$ZB$w6Ub96hOab+{F0%RY^ z5ieT-Bm;ofHTt!r2)VlF$%jyD&!T@@r$f7ac;SX=dU{psqvEHO(sc) zB}o+y#?*;{PB}=DYG7;^YZPopo1T(PDxMi^N3WJ-#Q6{6%kU&8CV)g(5;gvuBwLsr zDA$7|d-NSUhQHc?A1zkUHh}Dhuq3Dp5E2TyaX?Rqz`i&+u%!W36qO?pI8?B}>;JU1 zJe7~fvb$nfl7m`{PbmQ3>cWV&;{|zgpjvD4)(Oz4wc{4HgZOf85k5)wKR!E9l5=~( z5e!wlg2d}!o=N3sT>--|48t%C!!Qilb?+sjOo7=Y6UEuB4p*{$W1H)$mri)pNr zYNh}~#N%C&O1jUglQh%sn^mv}TwQWujYrlU7^c%6i?=_Mj4#-~ciO^cc6(N*J#0Je zp81V63X2keRV%c`DCRz^PeQ*9*7-DvMoC2JUnx|)B)8FzwppMvP%wlsyS)))#VuGd z)+p9w;;u_xM3_FSPht$!@KAM=bO4dWiow2@#5Be5Bg*g$ux`9dFAHT6fWakelz2+= zuuPKc&u@P5`Fg1&IMs&{b4h~YU@nP4Nfe1ZUg+4~-Bc1oVnWsp8LLBlJ3Y! z&L^Rng~rb$jP78V1=ZBOyQw6qc>;V8r^_UH^Jc+c79`Og1>Gd4=DqSP$)$5}*q=+% zFwePg%9?#2_3oyUaD1Os3uBwVkVH%j+$7vx@GMEDBh1lU5^U?e+BeN!0ld4ZBpf-y zvXvDi@kJq{rbUqF0-4#}ERA{VNpjRSYUAzy5s!5ydH>KG+lTDD7nA(oWD=P~CXq=t zk|cmjQFdW3ypAO0l-_DUpmltfKHUDj@M8Wx_I+ic51&E=6HpIBp|bsZ;XiWy^|vC| zEM&X`bd3`Ql$6iC@Z%}Rl~-oNTgA)45(1MRfTsK13s)=gTx{`dc)R}bT|P;v5^LaU zHGJ-cLs=jhd}TJgoA!-Xl8IstzkA_&?H%ySYk literal 0 HcmV?d00001 diff --git a/images/supported_brands/honeywell.png b/images/supported_brands/honeywell.png new file mode 100644 index 0000000000000000000000000000000000000000..a69ad78a241be58649b80b73f76e9f6d6c132785 GIT binary patch literal 5479 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 the lights when you start watching a movie on your Chromecast?
        • receive a message when the lights turn on while you are not at home?
        -

        We've got you covered.

        +

        We've got you covered.

        diff --git a/sitemap.xml b/sitemap.xml index 6f91c728d4..0b1947f550 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,5 +1,9 @@ + + https://home-assistant.io/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/ + 2015-11-16T20:27:00-08:00 + https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported/ 2015-10-26T18:10:00-07:00 @@ -150,7 +154,7 @@ https://home-assistant.io/developers/frontend/ - https://home-assistant.io/components/ + https://home-assistant.io/blog/archives/ https://home-assistant.io/blog/ @@ -159,16 +163,16 @@ https://home-assistant.io/ - https://home-assistant.io/blog/archives/ + https://home-assistant.io/components/ - https://home-assistant.io/help/ + https://home-assistant.io/developers/ https://home-assistant.io/cookbook/ - https://home-assistant.io/developers/ + https://home-assistant.io/help/ https://home-assistant.io/getting-started/ @@ -182,6 +186,9 @@ https://home-assistant.io/developers/rest_api/ + + https://home-assistant.io/help/trivia/ + https://home-assistant.io/getting-started/troubleshooting-configuration/ @@ -223,6 +230,12 @@ https://home-assistant.io/blog/categories/esp8266/ + + + https://home-assistant.io/blog/posts/2/ + + + https://home-assistant.io/blog/posts/3/ https://home-assistant.io/components/automation/ @@ -608,6 +621,39 @@ https://home-assistant.io/components/light.hyperion/ + + https://home-assistant.io/components/camera/ + + + https://home-assistant.io/components/camera.mjpeg/ + + + https://home-assistant.io/components/thermostat.honeywell/ + + + https://home-assistant.io/components/notify.pushetta/ + + + https://home-assistant.io/components/light.zwave/ + + + https://home-assistant.io/components/logger/ + + + https://home-assistant.io/components/light.mqtt/ + + + https://home-assistant.io/components/sensor.zwave/ + + + https://home-assistant.io/components/switch.zwave/ + + + https://home-assistant.io/components/switch.orvibo/ + + + https://home-assistant.io/components/updater/ + https://home-assistant.io/cookbook/automation_for_rainy_days/ @@ -710,596 +756,603 @@ https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported/ + + https://home-assistant.io/blog/2015/11/16/zwave-switches-lights-and-honeywell-thermostats-now-supported/ + https://home-assistant.io/components/alarm_control_panel.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/alarm_control_panel.manual.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/alarm_control_panel.mqtt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/arduino.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/automation.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/browser.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/camera.foscam.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/camera.generic.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/configurator.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/conversation.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_sun_light_trigger.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.actiontec.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.aruba.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.asuswrt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.ddwrt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.geofancy.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.luci.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.mqtt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.netgear.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.nmap_scanner.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.owntracks.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.snmp.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.thomson.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.tomato.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.tplink.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/device_tracker.ubus.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/discovery.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/downloader.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/group.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/history.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/ifttt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/ifttt.manything.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/introduction.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/isy994.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/keyboard.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.blinksticklight.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.hue.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.hyperion.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.limitlessled.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.rfxtrx.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.tellstick.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.vera.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/light.wink.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/logbook.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.cast.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.denon.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.firetv.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.itunes.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.kodi.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.mpd.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.plex.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.sonos.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/media_player.squeezebox.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/modbus.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/mqtt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.file.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.instapush.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.nma.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.pushbullet.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.pushover.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.slack.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.smtp.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.syslog.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.telegram.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/notify.xmpp.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/rfxtrx.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/scene.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/script.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.arduino.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.arest.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.bitcoin.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.command_sensor.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.cpuspeed.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.dht.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.efergy.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.forecast.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.glances.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.modbus.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.mqtt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.mysensors.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.openweathermap.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.rest.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.rfxtrx.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.rpi_gpio.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.sabnzbd.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.swiss_public_transport.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.systemmonitor.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.tellstick.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.temper.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.time_date.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.transmission.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.vera.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.wink.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sensor.worldclock.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/shell_command.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/simple_alarm.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/sun.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.arduino.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.arest.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.command_switch.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.edimax.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.hikvision.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.modbus.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.mqtt.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.rest.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.rfxtrx.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.rpi_gpio.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.tellstick.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.transmission.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.vera.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.wemo.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/switch.wink.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/tellstick.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/thermostat.heat_control.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/thermostat.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/thermostat.nest.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/thermostat.radiotherm.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/vera.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/verisure.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/wink.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/zone.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/components/zwave.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/demo/frontend.html - 2015-10-29T00:05:24-07:00 + 2015-11-16T21:35:31-08:00 https://home-assistant.io/demo/index.html - 2015-08-31T01:01:03-07:00 + 2015-11-16T21:39:57-08:00 https://home-assistant.io/developers/add_new_platform.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/api.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/architecture.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/creating_components.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/credits.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/frontend.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/python_api.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/rest_api.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/developers/website.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/android.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/automation.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/autostart.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/configuration.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/devices.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/presence-detection.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/troubleshooting-configuration.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/getting-started/troubleshooting.html - 2015-10-29T00:05:24-07:00 + 2015-11-06T21:08:28-08:00 https://home-assistant.io/googlef4f3693c209fe788.html 2014-12-22T00:10:47-08:00 + + https://home-assistant.io/static/mdi-demo.html + 2015-11-12T23:04:00-08:00 + diff --git a/static/mdi-demo.html b/static/mdi-demo.html new file mode 100644 index 0000000000..42212a3a30 --- /dev/null +++ b/static/mdi-demo.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stylesheets/screen.css b/stylesheets/screen.css index 62a449d6af..ad27534dc3 100644 --- a/stylesheets/screen.css +++ b/stylesheets/screen.css @@ -26,4 +26,4 @@ * Email: dave@fontawesome.io * Twitter: http://twitter.com/davegandy * Work: Lead Product Designer @ Kyruus - http://kyruus.com - */@font-face{font-family:'FontAwesome';src:url("../font/fontawesome-webfont.eot?v=3.2.1");src:url("../font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.33333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.14286em;text-align:right;padding-right:0.28571em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.42857em}.icons-ul{margin-left:2.14286em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.14286em;width:2.14286em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}body,html{background-color:#f5f5f5;color:#222;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;height:100%}a{color:#049cdb;text-decoration:none}a:visited{color:#0378a9}.menu a{color:#049cdb}.gist{font-size:0.75em}@media only screen and (max-width: 480px){.title.indent::before{display:none}}.title.indent::before{content:"// ";color:#049cdb}.divider,.usp hr,.hero hr{border:none;border-bottom:2px solid #049cdb;clear:both;margin:2em 0}article.post img,article.page img,article.listing img{border:5px solid #fff;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,0.25)}article.post img.right,article.page img.right,article.listing img.right{float:right;margin:0 0 10px 20px}article.post img.left,article.page img.left,article.listing img.left{float:left;margin:0 20px 10px 0}.grid-wrapper{margin:auto;max-width:1100px;padding:0 25px}.grid-center{text-align:center}.grid-center>.grid__item{text-align:left}body>header{-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);background-color:#fff;margin-bottom:2em}body>header .site-title{color:#222;font-size:1.7em;font-weight:bold;line-height:2.5em}body{-webkit-animation:bugfix infinite 1s}@-webkit-keyframes bugfix{from{padding:0}to{padding:0}}.header{position:relative}#toggle,.toggle{display:none}.menu li{list-style:none;float:left}@media only screen and (max-width: 955px){.menu{display:none;opacity:0;width:100%;position:absolute;right:0}.menu li{display:block;width:100%;margin:0}.menu li a{display:block;width:100%;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.toggle{display:block;position:relative;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#toggle:checked ~ .menu{display:block;opacity:1;z-index:999}}ul.menu li{position:relative}ul.menu li:hover ul{display:block}ul.menu li ul{display:none;z-index:10;position:absolute;top:68px;margin-left:0;background-color:white}ul.menu li ul li{white-space:nowrap;float:none}ul.menu li ul li a{display:block;padding:20px 10px}ul.menu li ul li a:hover,ul.menu li ul li a:focus{background:#eee}header .grid{height:68px}.menu{margin:0;top:68px}.menu li a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.25s linear;-moz-transition:all 0.25s linear;-o-transition:all 0.25s linear;transition:all 0.25s linear;display:block;padding:32px 20px;text-decoration:none;font-weight:normal;font-size:16px;line-height:1}.menu>li>a:hover,.menu>li>a:focus{background:#f5f5f5;box-shadow:inset 0px 5px #049cdb;color:#049cdb;padding:40px 20px 24px}.toggle{z-index:20}@media only screen and (max-width: 955px){.menu{background:#fff;border-top:1px solid #049cdb;border-bottom:4px solid #049cdb}.menu,.menu li,.menu li a{height:auto}.menu li a{padding:15px 15px !important}.menu li a:hover,.menu li a:focus{background:#eee;box-shadow:inset 5px 0px #049cdb;padding:15px 15px 15px 25px}.toggle{position:absolute;top:17px;right:10px}.toggle::after{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.5s linear;-moz-transition:all 0.5s linear;-o-transition:all 0.5s linear;transition:all 0.5s linear;font-family:"FontAwesome";content:"\f0c9";display:inline-block;width:100%;padding:10px 15px;background:#049cdb;text-align:center;font-size:12px;color:#fff;white-space:nowrap}.toggle:hover::after{background:#0383b8}#toggle:checked+.toggle::after{content:attr(data-close)}ul.menu li ul{display:block;position:relative;top:0}}#page-wrap{min-height:100%;margin-bottom:-100px}#page-wrap::after{content:"";display:block;height:100px}body>footer{-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);background-color:#fff;margin-top:3em}.copyright{margin:0;padding:20px 0;text-align:center}article blockquote{border-left:2px solid #049cdb;color:#484848;font-family:Georgia,"Times New Roman",Times,serif;font-size:1.25em;font-style:italic;padding-left:15px}article blockquote footer{float:right;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.8em}article blockquote footer strong::after{content:" \2014 "}article blockquote footer a{text-decoration:underline}article .pullquote-left::before,article .pullquote-right::before{border:medium none;color:#049cdb;content:"\201C" attr(data-pullquote) "\201D";float:right;font-family:Georgia,"Times New Roman",Times,serif;font-size:1.4em;font-style:italic;line-height:1.45em;margin:0.3em 0 1em 1.5em;padding:0;position:relative;top:7px;width:45%}@media only screen and (max-width: 480px){article .pullquote-left::before,article .pullquote-right::before{border-top:1px dotted #049cdb;border-bottom:1px dotted #049cdb;padding:0 10px;width:100%}}article .tags{display:inline}article .tags li{margin-right:2px}article .tags li::after{content:","}article .tags li:last-child::after{content:""}article .tags li a{color:#555;text-decoration:none}article .tags li a:hover{text-decoration:underline}article .meta{font-size:12px;padding:0 0 5px}article .meta>*{margin-right:15px;white-space:nowrap}article .meta>*:last-child{margin-right:0}article .meta .comments::before{content:"\f075";font-family:"FontAwesome";padding-right:3px}article.listing{margin-bottom:20px}article.listing h1{margin-bottom:0}article.listing h1 a{color:#049cdb;text-decoration:none}article.listing .entry-content{margin:10px 0}article.listing+hr{border:none;border-bottom:1px solid #049cdb}@media only screen and (max-width: 480px){article.post .tags{clear:both;margin-top:7px}}article.post h1{margin-bottom:0}article.post .meta{border-bottom:1px solid #049cdb;margin-bottom:20px}#archive-list article h1{margin-bottom:0}@media only screen and (min-width: 1024px){.aside-module:first-child .title{margin-top:0}}.aside-module .title{border-bottom:1px solid #049cdb;color:#333;margin:1em 0 0.5em;padding-bottom:5px}.aside-module .title .btn{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:5px 10px;text-decoration:none}.aside-module .loading{display:block;font-size:2em;text-align:center}#github-repos li p{font-size:0.6em;margin-bottom:0}#pinboard .pin-item>p{margin-bottom:0}#pinboard .pin-item>p a:hover{text-decoration:underline}#pinboard .pin-item>p a::after{content:","}#pinboard .pin-item>p a:last-child::after{content:""}@media only screen and (min-width: 481px){.social ul{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px}}.social a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#e8e8e8;border:1px solid #dcdcdc;border-radius:4px;color:#222;display:inline-block;font-size:0.8em;margin-bottom:7px;padding:1em;padding-right:0.5em;position:relative;text-decoration:none;width:100%;z-index:5;-webkit-transition:box-shadow 200ms,color 400ms,transform 400ms;-moz-transition:box-shadow 200ms,color 400ms,transform 400ms;-o-transition:box-shadow 200ms,color 400ms,transform 400ms;transition:box-shadow 200ms,color 400ms,transform 400ms}.social a:hover{color:#fff !important;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.25);z-index:7}.social a:hover::before{border:1px solid #000;height:100%;top:0;width:100%}.social a::before{background-color:#222;border-radius:4px;content:"";height:1px;position:absolute;top:50%;left:0%;width:0;z-index:-1;-webkit-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;-moz-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;-o-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms}.social a i{font-size:2em;line-height:0.8em;margin-right:0.35em}.social a.adn{color:#4a484c}.social a.adn::before{background-color:#4a484c;border-color:#3d3c3f}.social a.dribbble{color:#ea4c89}.social a.dribbble::before{background-color:#ea4c89;border-color:#e7357a}.social a.facebook{color:#3b5998}.social a.facebook::before{background-color:#3b5998;border-color:#344e86}.social a.github{color:#333}.social a.github::before{background-color:#333;border-color:#262626}.social a.gplus{color:#db4a39}.social a.gplus::before{background-color:#db4a39;border-color:#d43927}.social a.linkedin{color:#4875b4}.social a.linkedin::before{background-color:#4875b4;border-color:#4169a2}.social a.pinterest{color:#cc2127}.social a.pinterest::before{background-color:#cc2127;border-color:#b61d23}.social a.stackoverflow{color:#fe7a15}.social a.stackoverflow::before{background-color:#fe7a15;border-color:#f86c01}.social a.twitter{color:#00a0d1}.social a.twitter::before{background-color:#00a0d1;border-color:#008cb7}.social a.youtube{color:#cc181e}.social a.youtube::before{background-color:#cc181e;border-color:#b5151b}.usp{text-align:center}@media only screen and (min-width: 481px) and (max-width: 1023px){.usp{margin-bottom:25px}}.usp .icon i{-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;border:10px solid #049cdb;color:#222;display:inline-block;font-size:6em;height:1.85em;line-height:normal;padding:0.3em;width:1.85em}.usp .title{color:#222;font-size:1.1em;line-height:3em;margin:0;text-align:center;text-transform:capitalize}.usp .title+hr{margin:0;margin-bottom:1em}.usp hr{margin-bottom:1em}.usp p{text-align:left}.hero{background-color:#0b6b94;background-position:0 50%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;border-bottom:1px solid #fff;color:#fff;font-weight:bold;margin-top:-2em;margin-bottom:1.5em;padding:50px 0;position:relative}.hero>.grid-wrapper{position:relative;z-index:7}.hero .credit{font-size:0.75em;font-style:italic;position:absolute;bottom:0;right:10px;z-index:7}.hero .credit a{border-bottom:1px solid;color:#fff;text-decoration:none}.hero .credit .licence{border:none}.hero .avatar{text-align:center}@media only screen and (max-width: 1023px){.hero .avatar{margin-bottom:30px}}.hero .avatar img{-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:10px solid #049cdb}.hero h1{font-size:3.5em;line-height:1em;text-shadow:2px 2px 0 rgba(0,0,0,0.75)}.hero hr{box-shadow:1px 1px 0 rgba(0,0,0,0.75)}.hero p{text-shadow:1px 1px 0 rgba(0,0,0,0.75)}.hero p small{color:#eee;font-size:.65em}.pull-left{float:left}.pull-right{float:right}.clearfix,article blockquote{*zoom:1}.clearfix::before,article blockquote::before,.clearfix::after,article blockquote::after{display:table;content:"";line-height:0}.clearfix::after,article blockquote::after{clear:both}ul.unstyled,ul.inline,article ul.tags,ul.divided,ol.unstyled,ol.inline,article ol.tags,ol.divided{list-style-type:none;margin:0}ul.inline,article ul.tags,ol.inline,article ol.tags{list-style-type:none}ul.inline>li,article ul.tags>li,ol.inline>li,article ol.tags>li{display:inline}ul.divided>li,ol.divided>li{border-top:1px solid #fff;border-bottom:1px solid #e8e8e8;padding:0.5em 0}ul.divided>li:first-child,ol.divided>li:first-child{border-top:none;padding-top:0}ul.divided>li:last-child,ol.divided>li:last-child{border-bottom:none}.btn{background-color:#0494d1;background-image:-moz-linear-gradient(top, #049cdb, #048ac2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#049cdb), to(#048ac2));background-image:-webkit-linear-gradient(top, #049cdb, #048ac2);background-image:-o-linear-gradient(top, #049cdb, #048ac2);background-image:linear-gradient(to bottom, #049cdb,#048ac2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF049CDB', endColorstr='#FF048AC2', GradientType=0);-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);border-radius:3px;color:#fff;display:inline-block;padding:7px 15px;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.25)}.btn:hover{text-decoration:underline}.btn:visited{color:#fff}.grid{letter-spacing:-1rem}.opera:-o-prefocus,.grid{word-spacing:-1rem}.grid__item{letter-spacing:normal;word-spacing:normal}@media only screen and (min-width: 481px){.flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-moz-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:start;-moz-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.flex__item{-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}}.hero{background-color:#038FC7;padding-bottom:0}.hero .lead{margin-bottom:16px}.hero .hero-buttons a{color:white;text-transform:uppercase;white-space:nowrap;display:inline-block}.hero .front-install{border:none;font-size:1em;background-color:#333;margin-bottom:16px;display:inline-block;padding:8px;color:#DDD}.hero .front-install div:before{content:'$';color:#c82829;margin-right:6px}.supported-brands{text-align:center}.supported-brands img{border:none !important;box-shadow:none !important;max-height:50px;max-width:140px;margin:10px;vertical-align:middle}.brand{border:none !important;box-shadow:none !important;max-height:50px;max-width:200px;margin:10px}.brand.overview{max-width:100px;vertical-align:middle}h1:hover a.title-link,h2:hover a.title-link,h3:hover a.title-link,h4:hover a.title-link,h5:hover a.title-link,h6:hover a.title-link{position:relative}h1:hover a.title-link::before,h2:hover a.title-link::before,h3:hover a.title-link::before,h4:hover a.title-link::before,h5:hover a.title-link::before,h6:hover a.title-link::before{position:absolute;left:-50px;padding-right:40px;font-family:"FontAwesome";content:"\f0c1"}.ha-title{white-space:nowrap}.ha-title img{width:40px;vertical-align:middle}.usp ul{text-align:left;margin-left:27px;margin-top:-18px}.usp .icon i{border:none !important}.hero-buttons a{margin:0 30px 10px 0}.hero-buttons a:last-child{margin:0}article.post img,article.post table,article.page img,article.page table,article.listing img,article.listing table{border-radius:3px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}article.post img.no-shadow,article.page img.no-shadow,article.listing img.no-shadow{border:0;box-shadow:none}article.post>table,article.page>table,article.listing>table{background-color:#F3FCF5}article.post p.img,article.page p.img,article.listing p.img{background-color:#FFF;border-radius:5px;text-align:center;padding-bottom:3px;font-size:.9rem;box-shadow:rgba(0,0,0,0.06) 0 0 10px}article.post p.img img,article.page p.img img,article.listing p.img img{display:block;box-shadow:none;margin:0 auto}article.post li,article.page li,article.listing li{margin-bottom:10px}article.post li>p,article.page li>p,article.listing li>p{margin-bottom:0}article.post li:last-child,article.page li:last-child,article.listing li:last-child{margin-bottom:0}p.note{position:relative;background:#e7f2fa;padding:40px 12px 6px 12px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}p.note::before{font-family:"FontAwesome";content:"\f05a" " Note " attr(data-title);background-color:#6ab0de;color:white;font-weight:bold;border-top-left-radius:3px;border-top-right-radius:3px;padding:6px 14px;line-height:1.5em;position:absolute;top:0;left:0;right:0}p.note.warning{background-color:#F7F9E1}p.note.warning::before{background-color:#bbb90d;content:"\f071" " Warning " attr(data-title)}.install-instructions-container #normal-install,.install-instructions-container #raspberry-install,.install-instructions-container #docker-install,.install-instructions-container .install-instructions{display:none}.install-instructions-container label.menu-selector{display:inline-block;text-align:center;padding:20px;white-space:nowrap;border-bottom:5px solid #999;transition:border-bottom-color .5s}.install-instructions-container label.menu-selector+label.menu-selector{margin-left:10px}.install-instructions-container #normal-install:checked ~ .menu-selector.normal,.install-instructions-container #raspberry-install:checked ~ .menu-selector.raspberry,.install-instructions-container #docker-install:checked ~ .menu-selector.docker{border-bottom-color:#049cdb}.install-instructions-container #normal-install:checked ~ .install-instructions.normal,.install-instructions-container #raspberry-install:checked ~ .install-instructions.raspberry,.install-instructions-container #docker-install:checked ~ .install-instructions.docker{display:block}.install-instructions-container .install-instructions{margin-top:30px}.advanced-installs-container #upstart-install,.advanced-installs-container #systemd-install,.advanced-installs-container #osx-install,.advanced-installs-container .advanced-installs{display:none}.advanced-installs-container label.menu-selector{display:inline-block;text-align:center;padding:20px;white-space:nowrap;border-bottom:5px solid #999;transition:border-bottom-color .5s}.advanced-installs-container label.menu-selector+label.menu-selector{margin-left:10px}.advanced-installs-container #upstart-install:checked ~ .menu-selector.upstart,.advanced-installs-container #systemd-install:checked ~ .menu-selector.systemd,.advanced-installs-container #osx-install:checked ~ .menu-selector.osx{border-bottom-color:#049cdb}.advanced-installs-container #upstart-install:checked ~ .advanced-installs.upstart,.advanced-installs-container #systemd-install:checked ~ .advanced-installs.systemd,.advanced-installs-container #osx-install:checked ~ .advanced-installs.osx{display:block}.advanced-installs-container .advanced-installs{margin-top:30px}#components-page .isotope-item{z-index:2}#components-page .isotope-hidden.isotope-item{pointer-events:none;z-index:1}#components-page .isotope,#components-page .isotope .isotope-item{-webkit-transition-duration:0.8s;-moz-transition-duration:0.8s;transition-duration:0.8s}#components-page .isotope{-webkit-transition-property:height, width;-moz-transition-property:height, width;transition-property:height, width}#components-page .isotope .isotope-item{-webkit-transition-property:-webkit-transform, opacity;-moz-transition-property:-moz-transform, opacity;transition-property:transform, opacity}#components-page .filter-button-group{margin-bottom:16px}#components-page .filter-button-group .btn{margin-right:8px;margin-bottom:8px;text-decoration:none}#components-page .filter-button-group .btn.current{background-color:#3A5561;background-image:linear-gradient(to bottom, #3a5561,#3f6b7d)}#components-page #componentContainer a{display:inline-block;width:202px;height:142px;background-color:#fefefe;margin-right:4px;margin-bottom:8px;border-radius:2px;box-shadow:rgba(0,0,0,0.098) 0px 2px 4px,rgba(0,0,0,0.098) 0px 0px 3px;padding:8px;text-align:center}#components-page #componentContainer a .img-container{height:50px;margin:8px 0;font:0/0 a}#components-page #componentContainer a .img-container:before{content:' ';display:inline-block;vertical-align:middle;height:100%}#components-page #componentContainer a .img-container img{max-width:100%;max-height:50px;box-shadow:none;border:none;vertical-align:middle}#components-page #componentContainer a .title{text-decoration:none;font-size:18px;color:#000;line-height:1.3em;height:2.6em}#components-page #componentContainer a .category{font-size:14px;color:#AAA}.aside-module .section{margin-bottom:16px}.aside-module .brand-logo-container{text-align:center;height:97px}.aside-module .brand-logo-container img{max-height:97px}code{background:#fff;font-size:.8em;line-height:1.5em;color:#555;border:1px solid #ddd;-webkit-border-radius:0.4em;-moz-border-radius:0.4em;border-radius:0.4em;padding:0 .3em}.CodeRay{background-color:#FFF;border:1px solid #CCC;font-family:Monaco, "Courier New", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;color:#000;padding:1em 0px 1em 1em;font-size:12px;margin-bottom:16px}.CodeRay pre{margin:0px}span.CodeRay{white-space:pre;border:0px;padding:2px}table.CodeRay{border-collapse:collapse;width:100%;padding:2px}table.CodeRay td{padding:1em 0.5em;vertical-align:top}.CodeRay .line-numbers,.CodeRay .no{background-color:#ECECEC;color:#AAA;text-align:right}.CodeRay .line-numbers a{color:#AAA}.CodeRay .line-numbers tt{font-weight:bold}.CodeRay .line-numbers .highlighted{color:red}.CodeRay .line{display:block;float:left;width:100%}.CodeRay span.line-numbers{padding:0px 4px}.CodeRay .code{width:100%}ol.CodeRay{font-size:10pt}ol.CodeRay li{white-space:pre}.CodeRay .code pre{overflow:auto}.CodeRay .debug{color:#fff !important;background:blue !important}.CodeRay .annotation{color:#007}.CodeRay .attribute-name{color:#f08}.CodeRay .attribute-value{color:#700}.CodeRay .binary{color:#509;font-weight:bold}.CodeRay .comment{color:#998;font-style:italic}.CodeRay .char{color:#04d}.CodeRay .char .content{color:#04d}.CodeRay .char .delimiter{color:#039}.CodeRay .class{color:#458;font-weight:bold}.CodeRay .complex{color:#A08;font-weight:bold}.CodeRay .constant{color:teal}.CodeRay .color{color:#0a0}.CodeRay .class-variable{color:#369}.CodeRay .decorator{color:#B0B}.CodeRay .definition{color:#099;font-weight:bold}.CodeRay .directive{color:#088;font-weight:bold}.CodeRay .delimiter{color:#000}.CodeRay .doc{color:#970}.CodeRay .doctype{color:#34b}.CodeRay .doc-string{color:#D42;font-weight:bold}.CodeRay .escape{color:#666;font-weight:bold}.CodeRay .entity{color:#800;font-weight:bold}.CodeRay .error{color:#F00;background-color:#faa}.CodeRay .exception{color:#C00;font-weight:bold}.CodeRay .filename{color:#099}.CodeRay .function{color:#900;font-weight:bold}.CodeRay .global-variable{color:teal;font-weight:bold}.CodeRay .hex{color:#058;font-weight:bold}.CodeRay .integer{color:#099}.CodeRay .include{color:#B44;font-weight:bold}.CodeRay .inline,.CodeRay article .tags,article .CodeRay .tags{color:#000}.CodeRay .inline .inline,.CodeRay article .tags .inline,article .CodeRay .tags .inline,.CodeRay .inline article .tags,article .CodeRay .inline .tags,.CodeRay article .tags .tags,article .CodeRay .tags .tags{background:#ccc}.CodeRay .inline .inline .inline,.CodeRay article .tags .inline .inline,article .CodeRay .tags .inline .inline,.CodeRay .inline article .tags .inline,article .CodeRay .inline .tags .inline,.CodeRay article .tags .tags .inline,article .CodeRay .tags .tags .inline,.CodeRay .inline .inline article .tags,article .CodeRay .inline .inline .tags,.CodeRay article .tags .inline .tags,article .CodeRay .tags .inline .tags,.CodeRay .inline article .tags .tags,article .CodeRay .inline .tags .tags,.CodeRay article .tags .tags .tags,article .CodeRay .tags .tags .tags{background:#bbb}.CodeRay .inline .inline-delimiter,.CodeRay article .tags .inline-delimiter,article .CodeRay .tags .inline-delimiter{color:#D14}.CodeRay .inline-delimiter{color:#D14}.CodeRay .important{color:#f00}.CodeRay .interpreted{color:#B2B;font-weight:bold}.CodeRay .instance-variable{color:teal}.CodeRay .label{color:#970;font-weight:bold}.CodeRay .local-variable{color:#963}.CodeRay .octal{color:#40E;font-weight:bold}.CodeRay .predefined-constant{font-weight:bold}.CodeRay .predefined{color:#369;font-weight:bold}.CodeRay .preprocessor{color:#579}.CodeRay .pseudo-class{color:#00C;font-weight:bold}.CodeRay .predefined-type{color:#074;font-weight:bold}.CodeRay .reserved,.keyword{color:#000;font-weight:bold}.CodeRay .key{color:#808}.CodeRay .key .delimiter{color:#606}.CodeRay .key .char{color:#80f}.CodeRay .value{color:#088}.CodeRay .regexp{background-color:#fff0ff}.CodeRay .regexp .content{color:#808}.CodeRay .regexp .delimiter{color:#404}.CodeRay .regexp .modifier{color:#c2c}.CodeRay .regexp .function{color:#404;font-weight:bold}.CodeRay .string{color:#D20}.CodeRay .string .string .string{background-color:#ffd0d0}.CodeRay .string .content{color:#D14}.CodeRay .string .char{color:#D14}.CodeRay .string .delimiter{color:#D14}.CodeRay .shell{color:#d14}.CodeRay .shell .delimiter{color:#d14}.CodeRay .symbol{color:#990073}.CodeRay .symbol .content{color:#a60}.CodeRay .symbol .delimiter{color:#630}.CodeRay .tag{color:#070}.CodeRay .tag-special{color:#D70;font-weight:bold}.CodeRay .type{color:#339;font-weight:bold}.CodeRay .variable{color:#036}.CodeRay .insert{background:#afa}.CodeRay .delete{background:#faa}.CodeRay .change{color:#aaf;background:#007}.CodeRay .head{color:#f8f;background:#505}.CodeRay .insert .insert{color:#080;font-weight:bold}.CodeRay .delete .delete{color:#800;font-weight:bold}.CodeRay .change .change{color:#66f}.CodeRay .head .head{color:#f4f} + */@font-face{font-family:'FontAwesome';src:url("../font/fontawesome-webfont.eot?v=3.2.1");src:url("../font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.33333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.14286em;text-align:right;padding-right:0.28571em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.42857em}.icons-ul{margin-left:2.14286em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.14286em;width:2.14286em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eee}.icon-light{color:#fff}.icon-dark{color:#333}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.3em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.3em}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}body,html{background-color:#f5f5f5;color:#222;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;height:100%}a{color:#049cdb;text-decoration:none}a:visited{color:#0378a9}.menu a{color:#049cdb}.gist{font-size:0.75em}@media only screen and (max-width: 480px){.title.indent::before{display:none}}.title.indent::before{content:"// ";color:#049cdb}.divider,.usp hr,.hero hr{border:none;border-bottom:2px solid #049cdb;clear:both;margin:2em 0}article.post img,article.page img,article.listing img{border:5px solid #fff;border-radius:3px;box-shadow:0 0 3px rgba(0,0,0,0.25)}article.post img.right,article.page img.right,article.listing img.right{float:right;margin:0 0 10px 20px}article.post img.left,article.page img.left,article.listing img.left{float:left;margin:0 20px 10px 0}.grid-wrapper{margin:auto;max-width:1100px;padding:0 25px}.grid-center{text-align:center}.grid-center>.grid__item{text-align:left}body>header{-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);background-color:#fff;margin-bottom:2em}body>header .site-title{color:#222;font-size:1.7em;font-weight:bold;line-height:2.5em}body{-webkit-animation:bugfix infinite 1s}@-webkit-keyframes bugfix{from{padding:0}to{padding:0}}.header{position:relative}#toggle,.toggle{display:none}.menu li{list-style:none;float:left}@media only screen and (max-width: 955px){.menu{display:none;opacity:0;width:100%;position:absolute;right:0}.menu li{display:block;width:100%;margin:0}.menu li a{display:block;width:100%;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.toggle{display:block;position:relative;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#toggle:checked ~ .menu{display:block;opacity:1;z-index:999}}ul.menu li{position:relative}ul.menu li:hover ul{display:block}ul.menu li ul{display:none;z-index:10;position:absolute;top:68px;margin-left:0;background-color:white}ul.menu li ul li{white-space:nowrap;float:none}ul.menu li ul li a{display:block;padding:20px 10px}ul.menu li ul li a:hover,ul.menu li ul li a:focus{background:#eee}header .grid{height:68px}.menu{margin:0;top:68px}.menu li a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.25s linear;-moz-transition:all 0.25s linear;-o-transition:all 0.25s linear;transition:all 0.25s linear;display:block;padding:32px 20px;text-decoration:none;font-weight:normal;font-size:16px;line-height:1}.menu>li>a:hover,.menu>li>a:focus{background:#f5f5f5;box-shadow:inset 0px 5px #049cdb;color:#049cdb;padding:40px 20px 24px}.toggle{z-index:20}@media only screen and (max-width: 955px){.menu{background:#fff;border-top:1px solid #049cdb;border-bottom:4px solid #049cdb}.menu,.menu li,.menu li a{height:auto}.menu li a{padding:15px 15px !important}.menu li a:hover,.menu li a:focus{background:#eee;box-shadow:inset 5px 0px #049cdb;padding:15px 15px 15px 25px}.toggle{position:absolute;top:17px;right:10px}.toggle::after{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.5s linear;-moz-transition:all 0.5s linear;-o-transition:all 0.5s linear;transition:all 0.5s linear;font-family:"FontAwesome";content:"\f0c9";display:inline-block;width:100%;padding:10px 15px;background:#049cdb;text-align:center;font-size:12px;color:#fff;white-space:nowrap}.toggle:hover::after{background:#0383b8}#toggle:checked+.toggle::after{content:attr(data-close)}ul.menu li ul{display:block;position:relative;top:0}}#page-wrap{min-height:100%;margin-bottom:-100px}#page-wrap::after{content:"";display:block;height:100px}body>footer{-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);background-color:#fff;margin-top:3em}.copyright{margin:0;padding:20px 0;text-align:center}article blockquote{border-left:2px solid #049cdb;color:#484848;font-family:Georgia,"Times New Roman",Times,serif;font-size:1.25em;font-style:italic;padding-left:15px}article blockquote footer{float:right;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:0.8em}article blockquote footer strong::after{content:" \2014 "}article blockquote footer a{text-decoration:underline}article .pullquote-left::before,article .pullquote-right::before{border:medium none;color:#049cdb;content:"\201C" attr(data-pullquote) "\201D";float:right;font-family:Georgia,"Times New Roman",Times,serif;font-size:1.4em;font-style:italic;line-height:1.45em;margin:0.3em 0 1em 1.5em;padding:0;position:relative;top:7px;width:45%}@media only screen and (max-width: 480px){article .pullquote-left::before,article .pullquote-right::before{border-top:1px dotted #049cdb;border-bottom:1px dotted #049cdb;padding:0 10px;width:100%}}article .tags{display:inline}article .tags li{margin-right:2px}article .tags li::after{content:","}article .tags li:last-child::after{content:""}article .tags li a{color:#555;text-decoration:none}article .tags li a:hover{text-decoration:underline}article .meta{font-size:12px;padding:0 0 5px}article .meta>*{margin-right:15px;white-space:nowrap}article .meta>*:last-child{margin-right:0}article .meta .comments::before{content:"\f075";font-family:"FontAwesome";padding-right:3px}article.listing{margin-bottom:20px}article.listing h1{margin-bottom:0}article.listing h1 a{color:#049cdb;text-decoration:none}article.listing .entry-content{margin:10px 0}article.listing+hr{border:none;border-bottom:1px solid #049cdb}@media only screen and (max-width: 480px){article.post .tags{clear:both;margin-top:7px}}article.post h1{margin-bottom:0}article.post .meta{border-bottom:1px solid #049cdb;margin-bottom:20px}#archive-list article h1{margin-bottom:0}@media only screen and (min-width: 1024px){.aside-module:first-child .title{margin-top:0}}.aside-module .title{border-bottom:1px solid #049cdb;color:#333;margin:1em 0 0.5em;padding-bottom:5px}.aside-module .title .btn{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:5px 10px;text-decoration:none}.aside-module .loading{display:block;font-size:2em;text-align:center}#github-repos li p{font-size:0.6em;margin-bottom:0}#pinboard .pin-item>p{margin-bottom:0}#pinboard .pin-item>p a:hover{text-decoration:underline}#pinboard .pin-item>p a::after{content:","}#pinboard .pin-item>p a:last-child::after{content:""}@media only screen and (min-width: 481px){.social ul{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:10px;-moz-column-gap:10px;column-gap:10px}}.social a{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background-color:#e8e8e8;border:1px solid #dcdcdc;border-radius:4px;color:#222;display:inline-block;font-size:0.8em;margin-bottom:7px;padding:1em;padding-right:0.5em;position:relative;text-decoration:none;width:100%;z-index:5;-webkit-transition:box-shadow 200ms,color 400ms,transform 400ms;-moz-transition:box-shadow 200ms,color 400ms,transform 400ms;-o-transition:box-shadow 200ms,color 400ms,transform 400ms;transition:box-shadow 200ms,color 400ms,transform 400ms}.social a:hover{color:#fff !important;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.25);z-index:7}.social a:hover::before{border:1px solid #000;height:100%;top:0;width:100%}.social a::before{background-color:#222;border-radius:4px;content:"";height:1px;position:absolute;top:50%;left:0%;width:0;z-index:-1;-webkit-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;-moz-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;-o-transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms;transition:border 200ms,height 200ms 200ms,top 200ms 200ms,width 200ms}.social a i{font-size:2em;line-height:0.8em;margin-right:0.35em}.social a.adn{color:#4a484c}.social a.adn::before{background-color:#4a484c;border-color:#3d3c3f}.social a.dribbble{color:#ea4c89}.social a.dribbble::before{background-color:#ea4c89;border-color:#e7357a}.social a.facebook{color:#3b5998}.social a.facebook::before{background-color:#3b5998;border-color:#344e86}.social a.github{color:#333}.social a.github::before{background-color:#333;border-color:#262626}.social a.gplus{color:#db4a39}.social a.gplus::before{background-color:#db4a39;border-color:#d43927}.social a.linkedin{color:#4875b4}.social a.linkedin::before{background-color:#4875b4;border-color:#4169a2}.social a.pinterest{color:#cc2127}.social a.pinterest::before{background-color:#cc2127;border-color:#b61d23}.social a.stackoverflow{color:#fe7a15}.social a.stackoverflow::before{background-color:#fe7a15;border-color:#f86c01}.social a.twitter{color:#00a0d1}.social a.twitter::before{background-color:#00a0d1;border-color:#008cb7}.social a.youtube{color:#cc181e}.social a.youtube::before{background-color:#cc181e;border-color:#b5151b}.usp{text-align:center}@media only screen and (min-width: 481px) and (max-width: 1023px){.usp{margin-bottom:25px}}.usp .icon i{-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;border:10px solid #049cdb;color:#222;display:inline-block;font-size:6em;height:1.85em;line-height:normal;padding:0.3em;width:1.85em}.usp .title{color:#222;font-size:1.1em;line-height:3em;margin:0;text-align:center;text-transform:capitalize}.usp .title+hr{margin:0;margin-bottom:1em}.usp hr{margin-bottom:1em}.usp p{text-align:left}.hero{background-color:#0b6b94;background-position:0 50%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;border-bottom:1px solid #fff;color:#fff;font-weight:bold;margin-top:-2em;margin-bottom:1.5em;padding:50px 0;position:relative}.hero>.grid-wrapper{position:relative;z-index:7}.hero .credit{font-size:0.75em;font-style:italic;position:absolute;bottom:0;right:10px;z-index:7}.hero .credit a{border-bottom:1px solid;color:#fff;text-decoration:none}.hero .credit .licence{border:none}.hero .avatar{text-align:center}@media only screen and (max-width: 1023px){.hero .avatar{margin-bottom:30px}}.hero .avatar img{-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;border:10px solid #049cdb}.hero h1{font-size:3.5em;line-height:1em;text-shadow:2px 2px 0 rgba(0,0,0,0.75)}.hero hr{box-shadow:1px 1px 0 rgba(0,0,0,0.75)}.hero p{text-shadow:1px 1px 0 rgba(0,0,0,0.75)}.hero p small{color:#eee;font-size:.65em}.pull-left{float:left}.pull-right{float:right}.clearfix,article blockquote{*zoom:1}.clearfix::before,article blockquote::before,.clearfix::after,article blockquote::after{display:table;content:"";line-height:0}.clearfix::after,article blockquote::after{clear:both}ul.unstyled,ul.inline,article ul.tags,ul.divided,ol.unstyled,ol.inline,article ol.tags,ol.divided{list-style-type:none;margin:0}ul.inline,article ul.tags,ol.inline,article ol.tags{list-style-type:none}ul.inline>li,article ul.tags>li,ol.inline>li,article ol.tags>li{display:inline}ul.divided>li,ol.divided>li{border-top:1px solid #fff;border-bottom:1px solid #e8e8e8;padding:0.5em 0}ul.divided>li:first-child,ol.divided>li:first-child{border-top:none;padding-top:0}ul.divided>li:last-child,ol.divided>li:last-child{border-bottom:none}.btn{background-color:#0494d1;background-image:-moz-linear-gradient(top, #049cdb, #048ac2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#049cdb), to(#048ac2));background-image:-webkit-linear-gradient(top, #049cdb, #048ac2);background-image:-o-linear-gradient(top, #049cdb, #048ac2);background-image:linear-gradient(to bottom, #049cdb,#048ac2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF049CDB', endColorstr='#FF048AC2', GradientType=0);-webkit-box-shadow:0 0 3px rgba(0,0,0,0.25);-moz-box-shadow:0 0 3px rgba(0,0,0,0.25);-ms-box-shadow:0 0 3px rgba(0,0,0,0.25);-o-box-shadow:0 0 3px rgba(0,0,0,0.25);box-shadow:0 0 3px rgba(0,0,0,0.25);border-radius:3px;color:#fff;display:inline-block;padding:7px 15px;text-decoration:none;text-shadow:1px 1px 0 rgba(0,0,0,0.25)}.btn:hover{text-decoration:underline}.btn:visited{color:#fff}.grid{letter-spacing:-1rem}.opera:-o-prefocus,.grid{word-spacing:-1rem}.grid__item{letter-spacing:normal;word-spacing:normal}@media only screen and (min-width: 481px){.flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-moz-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch;-webkit-box-align:start;-moz-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.flex__item{-webkit-box-ordinal-group:1;-moz-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0;-webkit-box-flex:0;-moz-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}}.hero{background-color:#038FC7;padding-bottom:0}.hero .lead{margin-bottom:16px}.hero .hero-buttons a{color:white;text-transform:uppercase;white-space:nowrap;display:inline-block}.hero .front-install{border:none;font-size:1em;background-color:#333;margin-bottom:16px;display:inline-block;padding:8px;color:#DDD}.hero .front-install div:before{content:'$';color:#c82829;margin-right:6px}.supported-brands{text-align:center}.supported-brands img{border:none !important;box-shadow:none !important;max-height:50px;max-width:140px;margin:10px;vertical-align:middle}.brand{border:none !important;box-shadow:none !important;max-height:50px;max-width:200px;margin:10px}.brand.overview{max-width:100px;vertical-align:middle}h1:hover a.title-link,h2:hover a.title-link,h3:hover a.title-link,h4:hover a.title-link,h5:hover a.title-link,h6:hover a.title-link{position:relative}h1:hover a.title-link::before,h2:hover a.title-link::before,h3:hover a.title-link::before,h4:hover a.title-link::before,h5:hover a.title-link::before,h6:hover a.title-link::before{position:absolute;left:-50px;padding-right:40px;font-family:"FontAwesome";content:"\f0c1"}.ha-title{white-space:nowrap}.ha-title img{width:40px;vertical-align:middle}.usp ul{text-align:left;margin-left:27px;margin-top:-18px}.usp .icon i{border:none !important}.hero-buttons a{margin:0 30px 10px 0}.hero-buttons a:last-child{margin:0}article.post img,article.post table,article.page img,article.page table,article.listing img,article.listing table{border-radius:3px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}article.post img.no-shadow,article.page img.no-shadow,article.listing img.no-shadow{border:0;box-shadow:none}article.post>table,article.page>table,article.listing>table{background-color:#F3FCF5}article.post p.img,article.page p.img,article.listing p.img{background-color:#FFF;border-radius:5px;text-align:center;padding-bottom:3px;font-size:.9rem;box-shadow:rgba(0,0,0,0.06) 0 0 10px}article.post p.img img,article.page p.img img,article.listing p.img img{display:block;box-shadow:none;margin:0 auto}article.post li,article.page li,article.listing li{margin-bottom:10px}article.post li>p,article.page li>p,article.listing li>p{margin-bottom:0}article.post li:last-child,article.page li:last-child,article.listing li:last-child{margin-bottom:0}p.note{position:relative;background:#e7f2fa;padding:40px 12px 6px 12px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}p.note::before{font-family:"FontAwesome";content:"\f05a" " Note " attr(data-title);background-color:#6ab0de;color:white;font-weight:bold;border-top-left-radius:3px;border-top-right-radius:3px;padding:6px 14px;line-height:1.5em;position:absolute;top:0;left:0;right:0}p.note.warning{background-color:#F7F9E1}p.note.warning::before{background-color:#bbb90d;content:"\f071" " Warning " attr(data-title)}.install-instructions-container #normal-install,.install-instructions-container #raspberry-install,.install-instructions-container #docker-install,.install-instructions-container .install-instructions{display:none}.install-instructions-container label.menu-selector{display:inline-block;text-align:center;padding:20px;white-space:nowrap;border-bottom:5px solid #999;transition:border-bottom-color .5s}.install-instructions-container label.menu-selector+label.menu-selector{margin-left:10px}.install-instructions-container #normal-install:checked ~ .menu-selector.normal,.install-instructions-container #raspberry-install:checked ~ .menu-selector.raspberry,.install-instructions-container #docker-install:checked ~ .menu-selector.docker{border-bottom-color:#049cdb}.install-instructions-container #normal-install:checked ~ .install-instructions.normal,.install-instructions-container #raspberry-install:checked ~ .install-instructions.raspberry,.install-instructions-container #docker-install:checked ~ .install-instructions.docker{display:block}.install-instructions-container .install-instructions{margin-top:30px}.advanced-installs-container #upstart-install,.advanced-installs-container #systemd-install,.advanced-installs-container #osx-install,.advanced-installs-container .advanced-installs{display:none}.advanced-installs-container label.menu-selector{display:inline-block;text-align:center;padding:20px;white-space:nowrap;border-bottom:5px solid #999;transition:border-bottom-color .5s}.advanced-installs-container label.menu-selector+label.menu-selector{margin-left:10px}.advanced-installs-container #upstart-install:checked ~ .menu-selector.upstart,.advanced-installs-container #systemd-install:checked ~ .menu-selector.systemd,.advanced-installs-container #osx-install:checked ~ .menu-selector.osx{border-bottom-color:#049cdb}.advanced-installs-container #upstart-install:checked ~ .advanced-installs.upstart,.advanced-installs-container #systemd-install:checked ~ .advanced-installs.systemd,.advanced-installs-container #osx-install:checked ~ .advanced-installs.osx{display:block}.advanced-installs-container .advanced-installs{margin-top:30px}#components-page .isotope-item{z-index:2}#components-page .isotope-hidden.isotope-item{pointer-events:none;z-index:1}#components-page .isotope,#components-page .isotope .isotope-item{-webkit-transition-duration:0.8s;-moz-transition-duration:0.8s;transition-duration:0.8s}#components-page .isotope{-webkit-transition-property:height, width;-moz-transition-property:height, width;transition-property:height, width}#components-page .isotope .isotope-item{-webkit-transition-property:-webkit-transform, opacity;-moz-transition-property:-moz-transform, opacity;transition-property:transform, opacity}#components-page .filter-button-group{margin-bottom:16px}#components-page .filter-button-group .btn{margin-right:8px;margin-bottom:8px;text-decoration:none}#components-page .filter-button-group .btn.current{background-color:#3A5561;background-image:linear-gradient(to bottom, #3a5561,#3f6b7d)}#components-page #componentContainer a{display:inline-block;width:202px;height:142px;background-color:#fefefe;margin-right:4px;margin-bottom:8px;border-radius:2px;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 1px 5px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.2);padding:8px;text-align:center}#components-page #componentContainer a .img-container{height:50px;margin:8px 0;font:0/0 a}#components-page #componentContainer a .img-container:before{content:' ';display:inline-block;vertical-align:middle;height:100%}#components-page #componentContainer a .img-container img{max-width:100%;max-height:50px;box-shadow:none;border:none;vertical-align:middle}#components-page #componentContainer a .title{text-decoration:none;font-size:18px;color:#000;line-height:1.3em;height:2.6em}#components-page #componentContainer a .category{font-size:14px;color:#AAA}.aside-module .section{margin-bottom:16px}.aside-module .brand-logo-container{text-align:center;height:97px}.aside-module .brand-logo-container img{max-height:97px}code{background:#fff;font-size:.8em;line-height:1.5em;color:#555;border:1px solid #ddd;-webkit-border-radius:0.4em;-moz-border-radius:0.4em;border-radius:0.4em;padding:0 .3em}.CodeRay{background-color:#FFF;border:1px solid #CCC;font-family:Monaco, "Courier New", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", monospace;color:#000;padding:1em 0px 1em 1em;font-size:12px;margin-bottom:16px}.CodeRay pre{margin:0px}span.CodeRay{white-space:pre;border:0px;padding:2px}table.CodeRay{border-collapse:collapse;width:100%;padding:2px}table.CodeRay td{padding:1em 0.5em;vertical-align:top}.CodeRay .line-numbers,.CodeRay .no{background-color:#ECECEC;color:#AAA;text-align:right}.CodeRay .line-numbers a{color:#AAA}.CodeRay .line-numbers tt{font-weight:bold}.CodeRay .line-numbers .highlighted{color:red}.CodeRay .line{display:block;float:left;width:100%}.CodeRay span.line-numbers{padding:0px 4px}.CodeRay .code{width:100%}ol.CodeRay{font-size:10pt}ol.CodeRay li{white-space:pre}.CodeRay .code pre{overflow:auto}.CodeRay .debug{color:#fff !important;background:blue !important}.CodeRay .annotation{color:#007}.CodeRay .attribute-name{color:#f08}.CodeRay .attribute-value{color:#700}.CodeRay .binary{color:#509;font-weight:bold}.CodeRay .comment{color:#998;font-style:italic}.CodeRay .char{color:#04d}.CodeRay .char .content{color:#04d}.CodeRay .char .delimiter{color:#039}.CodeRay .class{color:#458;font-weight:bold}.CodeRay .complex{color:#A08;font-weight:bold}.CodeRay .constant{color:teal}.CodeRay .color{color:#0a0}.CodeRay .class-variable{color:#369}.CodeRay .decorator{color:#B0B}.CodeRay .definition{color:#099;font-weight:bold}.CodeRay .directive{color:#088;font-weight:bold}.CodeRay .delimiter{color:#000}.CodeRay .doc{color:#970}.CodeRay .doctype{color:#34b}.CodeRay .doc-string{color:#D42;font-weight:bold}.CodeRay .escape{color:#666;font-weight:bold}.CodeRay .entity{color:#800;font-weight:bold}.CodeRay .error{color:#F00;background-color:#faa}.CodeRay .exception{color:#C00;font-weight:bold}.CodeRay .filename{color:#099}.CodeRay .function{color:#900;font-weight:bold}.CodeRay .global-variable{color:teal;font-weight:bold}.CodeRay .hex{color:#058;font-weight:bold}.CodeRay .integer{color:#099}.CodeRay .include{color:#B44;font-weight:bold}.CodeRay .inline,.CodeRay article .tags,article .CodeRay .tags{color:#000}.CodeRay .inline .inline,.CodeRay article .tags .inline,article .CodeRay .tags .inline,.CodeRay .inline article .tags,article .CodeRay .inline .tags,.CodeRay article .tags .tags,article .CodeRay .tags .tags{background:#ccc}.CodeRay .inline .inline .inline,.CodeRay article .tags .inline .inline,article .CodeRay .tags .inline .inline,.CodeRay .inline article .tags .inline,article .CodeRay .inline .tags .inline,.CodeRay article .tags .tags .inline,article .CodeRay .tags .tags .inline,.CodeRay .inline .inline article .tags,article .CodeRay .inline .inline .tags,.CodeRay article .tags .inline .tags,article .CodeRay .tags .inline .tags,.CodeRay .inline article .tags .tags,article .CodeRay .inline .tags .tags,.CodeRay article .tags .tags .tags,article .CodeRay .tags .tags .tags{background:#bbb}.CodeRay .inline .inline-delimiter,.CodeRay article .tags .inline-delimiter,article .CodeRay .tags .inline-delimiter{color:#D14}.CodeRay .inline-delimiter{color:#D14}.CodeRay .important{color:#f00}.CodeRay .interpreted{color:#B2B;font-weight:bold}.CodeRay .instance-variable{color:teal}.CodeRay .label{color:#970;font-weight:bold}.CodeRay .local-variable{color:#963}.CodeRay .octal{color:#40E;font-weight:bold}.CodeRay .predefined-constant{font-weight:bold}.CodeRay .predefined{color:#369;font-weight:bold}.CodeRay .preprocessor{color:#579}.CodeRay .pseudo-class{color:#00C;font-weight:bold}.CodeRay .predefined-type{color:#074;font-weight:bold}.CodeRay .reserved,.keyword{color:#000;font-weight:bold}.CodeRay .key{color:#808}.CodeRay .key .delimiter{color:#606}.CodeRay .key .char{color:#80f}.CodeRay .value{color:#088}.CodeRay .regexp{background-color:#fff0ff}.CodeRay .regexp .content{color:#808}.CodeRay .regexp .delimiter{color:#404}.CodeRay .regexp .modifier{color:#c2c}.CodeRay .regexp .function{color:#404;font-weight:bold}.CodeRay .string{color:#D20}.CodeRay .string .string .string{background-color:#ffd0d0}.CodeRay .string .content{color:#D14}.CodeRay .string .char{color:#D14}.CodeRay .string .delimiter{color:#D14}.CodeRay .shell{color:#d14}.CodeRay .shell .delimiter{color:#d14}.CodeRay .symbol{color:#990073}.CodeRay .symbol .content{color:#a60}.CodeRay .symbol .delimiter{color:#630}.CodeRay .tag{color:#070}.CodeRay .tag-special{color:#D70;font-weight:bold}.CodeRay .type{color:#339;font-weight:bold}.CodeRay .variable{color:#036}.CodeRay .insert{background:#afa}.CodeRay .delete{background:#faa}.CodeRay .change{color:#aaf;background:#007}.CodeRay .head{color:#f8f;background:#505}.CodeRay .insert .insert{color:#080;font-weight:bold}.CodeRay .delete .delete{color:#800;font-weight:bold}.CodeRay .change .change{color:#66f}.CodeRay .head .head{color:#f4f}