diff --git a/atom.xml b/atom.xml index a1625d6850..01444de02d 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ @@ -13,6 +13,67 @@ Octopress + + <![CDATA[0.7.6: Amazon FireTV, Radiotherm thermostats]]> + + 2015-10-26T18:10:00-07:00 + https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported + After two weeks of hard work I’m proud to announce the release of Home Assistant v0.7.6. For this release the main +focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been +squashed, test coverage increased to 85% and thanks to the hard work by +@fabaff and myself the component section on the website has gotten a +complete revamp.

+ +

Changes

+ +

+ +

+ + + + + + + +

Breaking changes

+ +

As part of this release we did some cleanup which introduced backwards incompatible changes:

+ +

Heat Control thermostat no longer includes scheduling features.
+This feature has been removed completely. Use the automation component +instead to control target temperature.

+ +

Config changed for calling a service from a script.
+execute_service: has been replaced with service:. See component page +for example. The old method will continue working for some time.

+ +

Scenes can no longer be turned off.
+It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable +and causes a lot of confusion.

+ +

Downloader treats relative paths now relative to the config dir instead of the current working dir.
+This makes more sense as most people run Home Assistant as a daemon

+]]>
+
+ <![CDATA[Report the temperature with ESP8266 to MQTT]]> @@ -2828,22 +2889,6 @@ An initial version of voice control for Home Assistant has landed. The current i The old logo, the new detailed logo and the new simple logo.

-]]> -
- - - <![CDATA[Home Assistant moving to YAML]]> - - 2015-03-01T11:38:00-08:00 - https://home-assistant.io/blog/2015/03/01/home-assistant-migrating-to-yaml - Home Assistant is now using YAML for it’s configuration file. -YAML allows the use of lists, which should make the configuration file a bit more flexible and useful. The new configuration file format is backwards compatible with existing components. Because of this, there is no need for component developers to update their components.

- -

The new file is named configuration.yaml and if it can’t be found in your config directory, Home Assistant will instead try to find the old configuration file, home-assistant.conf.

- -

The home-assistant.conf.example has been replaced with an updated configuration.yaml.example.

- -

Users of Home Assistant should migrate as the old configuration format is deprecated.

]]>
diff --git a/blog/2014/12/18/website-launched/index.html b/blog/2014/12/18/website-launched/index.html index 6972712b7e..e88e3b58e5 100644 --- a/blog/2014/12/18/website-launched/index.html +++ b/blog/2014/12/18/website-launched/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + 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 1117057c54..76e497800f 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + 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 844631ba0d..e4d5836264 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + 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 83e1c5e962..73ac21e94d 100644 --- a/blog/2015/01/13/nest-in-da-house/index.html +++ b/blog/2015/01/13/nest-in-da-house/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/01/24/release-notes/index.html b/blog/2015/01/24/release-notes/index.html index e25c0512db..31efb02fce 100644 --- a/blog/2015/01/24/release-notes/index.html +++ b/blog/2015/01/24/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + diff --git a/blog/2015/02/24/streaming-updates/index.html b/blog/2015/02/24/streaming-updates/index.html index 18e5df5690..17f993a0ea 100644 --- a/blog/2015/02/24/streaming-updates/index.html +++ b/blog/2015/02/24/streaming-updates/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + 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 c03d2cca0a..8d7395b7d3 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/03/08/new-logo/index.html b/blog/2015/03/08/new-logo/index.html index 2810f4d343..1bd788ffe3 100644 --- a/blog/2015/03/08/new-logo/index.html +++ b/blog/2015/03/08/new-logo/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/03/11/release-notes/index.html b/blog/2015/03/11/release-notes/index.html index 43740e2d52..9990f38644 100644 --- a/blog/2015/03/11/release-notes/index.html +++ b/blog/2015/03/11/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/03/22/release-notes/index.html b/blog/2015/03/22/release-notes/index.html index 6cee1aa4e2..e1bf82e145 100644 --- a/blog/2015/03/22/release-notes/index.html +++ b/blog/2015/03/22/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + 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 464c429c7c..c802af26ae 100644 --- a/blog/2015/05/09/utc-time-zone-awareness/index.html +++ b/blog/2015/05/09/utc-time-zone-awareness/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/05/14/release-notes/index.html b/blog/2015/05/14/release-notes/index.html index 51e762ea4b..fe1ed36fff 100644 --- a/blog/2015/05/14/release-notes/index.html +++ b/blog/2015/05/14/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/2015/06/10/release-notes/index.html b/blog/2015/06/10/release-notes/index.html index 495cca1f76..dd50e105e1 100644 --- a/blog/2015/06/10/release-notes/index.html +++ b/blog/2015/06/10/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + 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 7756f0f20b..d4fa924eed 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + 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 7117125d7a..3afa6bf625 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + 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 af42a7d859..2125f9d653 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + 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 d085cd63eb..0d7388af97 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 @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + 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 new file mode 100644 index 0000000000..5d20db3727 --- /dev/null +++ b/blog/2015/10/26/firetv-and-radiotherm-now-supported/index.html @@ -0,0 +1,362 @@ + + + + + + + + + + + + 0.7.6: Amazon FireTV, Radiotherm thermostats - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    + +

    0.7.6: Amazon FireTV, Radiotherm thermostats

    + + + +
    + + + + + + + + + + + + + + + + + + + two minutes reading time + + + + + + + + + Comments + +
    + +
    + + + + +

    After two weeks of hard work I’m proud to announce the release of Home Assistant v0.7.6. For this release the main +focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been +squashed, test coverage increased to 85% and thanks to the hard work by +@fabaff and myself the component section on the website has gotten a +complete revamp.

    + +

    Changes

    + +

    + +

    + + + + + + + +

    Breaking changes

    + +

    As part of this release we did some cleanup which introduced backwards incompatible changes:

    + +

    Heat Control thermostat no longer includes scheduling features.
    +This feature has been removed completely. Use the automation component +instead to control target temperature.

    + +

    Config changed for calling a service from a script.
    +execute_service: has been replaced with service:. See component page +for example. The old method will continue working for some time.

    + +

    Scenes can no longer be turned off.
    +It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable +and causes a lot of confusion.

    + +

    Downloader treats relative paths now relative to the config dir instead of the current working dir.
    +This makes more sense as most people run Home Assistant as a daemon

    + + +
    + + +
    +

    Comments

    +
    +
    +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/archives/index.html b/blog/archives/index.html index 9153897065..d9289a1277 100644 --- a/blog/archives/index.html +++ b/blog/archives/index.html @@ -22,7 +22,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/architecture/atom.xml b/blog/categories/architecture/atom.xml index 6b95d6ec3f..0d6fa2e659 100644 --- a/blog/categories/architecture/atom.xml +++ b/blog/categories/architecture/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: architecture | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/architecture/index.html b/blog/categories/architecture/index.html index d59d4bdc60..983a3db729 100644 --- a/blog/categories/architecture/index.html +++ b/blog/categories/architecture/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/branding/atom.xml b/blog/categories/branding/atom.xml index a63c7aa7f9..88c1d47c79 100644 --- a/blog/categories/branding/atom.xml +++ b/blog/categories/branding/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: branding | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/branding/index.html b/blog/categories/branding/index.html index 8eac7fa0f6..4cfe32efe3 100644 --- a/blog/categories/branding/index.html +++ b/blog/categories/branding/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/component/atom.xml b/blog/categories/component/atom.xml index 03cdd726d2..4c30ba82f6 100644 --- a/blog/categories/component/atom.xml +++ b/blog/categories/component/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: component | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/component/index.html b/blog/categories/component/index.html index 54819aa8d0..6c61564f6b 100644 --- a/blog/categories/component/index.html +++ b/blog/categories/component/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/core/atom.xml b/blog/categories/core/atom.xml index 3afc533fef..8d21764066 100644 --- a/blog/categories/core/atom.xml +++ b/blog/categories/core/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: core | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/core/index.html b/blog/categories/core/index.html index 6230e922fe..9b27298bb4 100644 --- a/blog/categories/core/index.html +++ b/blog/categories/core/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/esp8266/atom.xml b/blog/categories/esp8266/atom.xml index 2326a7f9e4..1b07ece41e 100644 --- a/blog/categories/esp8266/atom.xml +++ b/blog/categories/esp8266/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: esp8266 | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/esp8266/index.html b/blog/categories/esp8266/index.html index 20c1835347..67020fd1a1 100644 --- a/blog/categories/esp8266/index.html +++ b/blog/categories/esp8266/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/frontend/atom.xml b/blog/categories/frontend/atom.xml index f9a205839f..c7f3bdfc6f 100644 --- a/blog/categories/frontend/atom.xml +++ b/blog/categories/frontend/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: frontend | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/frontend/index.html b/blog/categories/frontend/index.html index 7590e15e7a..caad093319 100644 --- a/blog/categories/frontend/index.html +++ b/blog/categories/frontend/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/how-to/atom.xml b/blog/categories/how-to/atom.xml index 9b4686c5bf..91d41eaa17 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-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/how-to/index.html b/blog/categories/how-to/index.html index c0f51951e0..5e9a4ef0ec 100644 --- a/blog/categories/how-to/index.html +++ b/blog/categories/how-to/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/mqtt/atom.xml b/blog/categories/mqtt/atom.xml index 8d9b99176d..3e665b95bf 100644 --- a/blog/categories/mqtt/atom.xml +++ b/blog/categories/mqtt/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: mqtt | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/mqtt/index.html b/blog/categories/mqtt/index.html index 284283184c..4315aea04b 100644 --- a/blog/categories/mqtt/index.html +++ b/blog/categories/mqtt/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/release-notes/atom.xml b/blog/categories/release-notes/atom.xml index a31990fdc7..bb4d823255 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-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ @@ -13,6 +13,67 @@ Octopress + + <![CDATA[0.7.6: Amazon FireTV, Radiotherm thermostats]]> + + 2015-10-26T18:10:00-07:00 + https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported + After two weeks of hard work I’m proud to announce the release of Home Assistant v0.7.6. For this release the main +focus was bugs, test coverage and documentation. And we exceeded expectations on all three fronts. Bugs have been +squashed, test coverage increased to 85% and thanks to the hard work by +@fabaff and myself the component section on the website has gotten a +complete revamp.

    + +

    Changes

    + +

    + +

    + + + + + + + +

    Breaking changes

    + +

    As part of this release we did some cleanup which introduced backwards incompatible changes:

    + +

    Heat Control thermostat no longer includes scheduling features.
    +This feature has been removed completely. Use the automation component +instead to control target temperature.

    + +

    Config changed for calling a service from a script.
    +execute_service: has been replaced with service:. See component page +for example. The old method will continue working for some time.

    + +

    Scenes can no longer be turned off.
    +It is no longer possible to turn a scene off after it has been activated. The way it worked was unpredictable +and causes a lot of confusion.

    + +

    Downloader treats relative paths now relative to the config dir instead of the current working dir.
    +This makes more sense as most people run Home Assistant as a daemon

    +]]>
    +
    + <![CDATA[0.7.5: Blinkstick, SNMP, Telegram]]> @@ -354,39 +415,6 @@ automation: -]]> - - - - <![CDATA[Verisure devices and modern TP-Link routers now supported]]> - - 2015-08-17T20:00:00-07:00 - https://home-assistant.io/blog/2015/08/17/verisure-and-modern-tp-link-router-support - A minor bug fix release to fix some issues that have come up since the last release. Please upgrade as soon as possible by running git pull from the Home Assistant directory.

    - -

    This release is a major milestone in our test coverage as we’ve crossed into the 80s! It has to be noted that this covers mainly the core and automation components. Platforms that communicate with IoT devices have been excluded.

    - -

    As we didn’t want to just push out bug fixes, this release includes a few additions:

    - -
      -
    • Support for modern TP-Link routers like the ArcherC9 line has been contributed by @chrisvis.
    • -
    • Improved support for MQTT topic subscriptions has been contributed by @qrtn
    • -
    - - -

    Verisure Support
    - -Home Assistant support to integrate your Verisure alarms, hygrometers, sensors and thermometers has been contributed by @persandstrom.

    - -
    # Example configuration.yaml entry
    -verisure:
    -  username: user@example.com
    -  password: password
    -  alarm: 1
    -  hygrometers: 0
    -  smartplugs: 1
    -  thermometers: 0
    -
    ]]>
    diff --git a/blog/categories/release-notes/index.html b/blog/categories/release-notes/index.html index 696dcd2fdc..2f0275a28a 100644 --- a/blog/categories/release-notes/index.html +++ b/blog/categories/release-notes/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/user-stories/atom.xml b/blog/categories/user-stories/atom.xml index 84a3272bde..f6d52de0bc 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-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/user-stories/index.html b/blog/categories/user-stories/index.html index 23395553a7..50cac06cf8 100644 --- a/blog/categories/user-stories/index.html +++ b/blog/categories/user-stories/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/categories/website/atom.xml b/blog/categories/website/atom.xml index be27b0c7c6..23e198513a 100644 --- a/blog/categories/website/atom.xml +++ b/blog/categories/website/atom.xml @@ -4,7 +4,7 @@ <![CDATA[Category: website | Home Assistant]]> - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 https://home-assistant.io/ diff --git a/blog/categories/website/index.html b/blog/categories/website/index.html index b959eb4db6..0c48be26b3 100644 --- a/blog/categories/website/index.html +++ b/blog/categories/website/index.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + diff --git a/blog/index.html b/blog/index.html index fac228029e..6d5c527c06 100644 --- a/blog/index.html +++ b/blog/index.html @@ -22,7 +22,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -194,5 +1676,10 @@ the initial state will be unknown.

    + + + + + \ No newline at end of file diff --git a/components/arduino.html b/components/arduino.html index 4f2433a586..2c8037abff 100644 --- a/components/arduino.html +++ b/components/arduino.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers -
    1
    -
    ls /dev/ttyACM*
    -
    - +
    ls /dev/ttyACM*
    +

    If that is not working, check your dmesg or journalctl -f output. Keep in mind that Arduino clones are often using a different name for the port (e.g. /dev/ttyUSB*).

    @@ -157,13 +146,2154 @@ A word of caution: The Arduino boards are not storing states. This means that wi - + + @@ -199,5 +2329,10 @@ A word of caution: The Arduino boards are not storing states. This means that wi + + + + + \ No newline at end of file diff --git a/components/automation.html b/components/automation.html index c03ca8d277..13b9bc9b78 100644 --- a/components/automation.html +++ b/components/automation.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers -

    This component requires the components sun, device_tracker and light to be enabled.

    +

    This component requires the components sun, device_tracker and light to be enabled.

    -

    To enable this component, add the following lines to your configuration.yaml:

    +

    To enable this component, add the following lines to your configuration.yaml file:

    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -
    device_sun_light_trigger:
    -  # Each of these 4 options are optional.
    -
    -  # Specify a specific light/group of lights that has to be turned on
    -  light_group: group.living_room
    -  # Specify which light profile to use when turning lights on
    -  light_profile: relax
    -  # Specify which group of devices to track
    -  device_group: group.my_devices
    -  # Disable lights being turned off when everybody leaves the house
    -  disable_turn_off: 1
    +
    # Example configuration.yaml entry
    +device_sun_light_trigger:
    +  light_group: group.living_room
    +  light_profile: relax
    +  device_group: group.my_devices
    +  disable_turn_off: 1
    +
    +

    Configuration variables:

    -

    The options light_group, light_profile and disable_turn_off are optional.

    + @@ -153,6 +141,2128 @@ + + @@ -188,5 +2298,10 @@ + + + + + \ No newline at end of file diff --git a/components/device_tracker.actiontec.html b/components/device_tracker.actiontec.html index 6234b33120..70b81a0144 100644 --- a/components/device_tracker.actiontec.html +++ b/components/device_tracker.actiontec.html @@ -9,7 +9,7 @@ - Actiontec support - Home Assistant + Actiontec - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -178,5 +1736,10 @@ platform, you specify a unique topic for each device.

    + + + + + \ No newline at end of file diff --git a/components/device_tracker.netgear.html b/components/device_tracker.netgear.html index e64e0d8ace..92f8314321 100644 --- a/components/device_tracker.netgear.html +++ b/components/device_tracker.netgear.html @@ -9,7 +9,7 @@ - Netgear support - Home Assistant + Netgear - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers -

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

    +

    For Archer C9 models running firmware version 150811 or later please use the encrypted password you can retrieve like this:

    +
      +
    1. Go to the login page of your router. (default: 192.168.0.1)
    2. +
    3. Type in the password you use to login into the passsword field.
    4. +
    5. Click somewhere else on the page so that the password field is not selected anymore.
    6. +
    7. Open the JavaScript console of your browser (usually by pressing F12 and then clicking on “Console”).
    8. +
    9. Type document.getElementById("login-password").value;.
    10. +
    11. Copy the returned value to your Home Assistant configuration as password.
    12. +
    + + +

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

    @@ -143,6 +143,1549 @@ This platform allows you to detect presence by looking at connected devices to a + + @@ -178,5 +1721,10 @@ This platform allows you to detect presence by looking at connected devices to a + + + + + \ No newline at end of file diff --git a/components/device_tracker.ubus.html b/components/device_tracker.ubus.html new file mode 100644 index 0000000000..17a4662299 --- /dev/null +++ b/components/device_tracker.ubus.html @@ -0,0 +1,1743 @@ + + + + + + + + + + + + OpenWRT (ubus) - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + OpenWRT (ubus) +

    +
    +
    + +

    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.

    + +

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

    + +
    opkg install rpcd-mod-file
    +
    + +

    And create a read-only user to be used by setting up the ACL file /usr/share/rpcd/acl.d/user.json.

    + +
    {
    +  "user": {
    +    "description": "Read only user access role",
    +    "read": {
    +      "ubus": {
    +        "*": [ "*" ]
    +      },
    +      "uci": [ "*" ]
    +    },
    +    "write": {}
    +  }
    +}
    +
    + +

    After this is done, configure Home Assistant as follows:

    + +
    # Example configuration.yaml entry
    +device_tracker:
    +  platform: ubus
    +  host: ROUTER_IP_ADDRESS
    +  username: YOUR_ADMIN_USERNAME
    +  password: YOUR_ADMIN_PASSWORD
    +
    + +

    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.
    • +
    + + +

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

    + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/discovery.html b/components/discovery.html index b6ec97228b..57c8c0d97b 100644 --- a/components/discovery.html +++ b/components/discovery.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -178,5 +1689,10 @@ + + + + + \ No newline at end of file diff --git a/components/light.tellstick.html b/components/light.tellstick.html new file mode 100644 index 0000000000..d01a338c70 --- /dev/null +++ b/components/light.tellstick.html @@ -0,0 +1,1687 @@ + + + + + + + + + + + + TellStick light - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + TellStick light +

    +
    +
    + +

    This tellstick light platform allows you to control your TellStick dimmers.

    + +

    To use your TellStick device in your installation, add the following to your configuration.yaml file:

    + +
    # Example configuration.yaml entry
    +light:
    +  platform: tellstick
    +
    + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/light.vera.html b/components/light.vera.html new file mode 100644 index 0000000000..ce9b7ab3af --- /dev/null +++ b/components/light.vera.html @@ -0,0 +1,1710 @@ + + + + + + + + + + + + Vera light - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Vera light +

    +
    +
    + +

    This vera light platform allows you to control your Vera lights.

    + +

    This platform is useful if you wish for switches connected to your Vera controller to appear as lights in Home Assistant. All switches will be added as a light unless you exclude them in the configuration file.

    + +

    To use your Vera lights in your installation, add the following to your configuration.yaml file:

    + +
    # Example configuration.yaml entry
    +light:
    +  platform: vera
    +  vera_controller_url: http://YOUR_VERA_IP:3480/
    +  device_data:
    +    12:
    +      name: My awesome sensor
    +      exclude: true
    +    13:
    +      name: Another sensor
    +
    + +

    Configuration variables:

    + +
      +
    • vera_controller_url (Required): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/
    • +
    • device_data array (Optional):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within device_data. + +
        +
      • name (Optional):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used.
      • +
      • exclude (Optional): This parameter allows you to exclude the specified device, it should be set to “True” if you want this device excluded.
      • +
      +
    • +
    + + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/light.wink.html b/components/light.wink.html new file mode 100644 index 0000000000..558bf6aa54 --- /dev/null +++ b/components/light.wink.html @@ -0,0 +1,1682 @@ + + + + + + + + + + + + Wink light - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Wink light +

    +
    +
    + +

    The wink sensor platform allows you to use your Wink lights.

    + +

    The requirement is that you have setup your Wink hub.

    + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/logbook.html b/components/logbook.html index 20c61219c5..863fcda161 100644 --- a/components/logbook.html +++ b/components/logbook.html @@ -9,7 +9,7 @@ - Logbook support - Home Assistant + Logbook - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -181,5 +1675,10 @@ The kodi platform allows you to control a Kodi mul + + + + + \ No newline at end of file diff --git a/components/media_player.mpd.html b/components/media_player.mpd.html index 33a8d90274..1176c19f9e 100644 --- a/components/media_player.mpd.html +++ b/components/media_player.mpd.html @@ -9,7 +9,7 @@ - Music Player Daemon support - Home Assistant + Music Player Daemon (MPD) - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -236,5 +1779,10 @@ The glances sensor platform is consuming the system information provided by the + + + + + \ No newline at end of file diff --git a/components/sensor.html b/components/sensor.html new file mode 100644 index 0000000000..205ae41b4f --- /dev/null +++ b/components/sensor.html @@ -0,0 +1,2117 @@ + + + + + + + + + + + + Sensor - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Sensor +

    +
    +
    + +

    Sensors are gathering information about states and conditions.

    + +

    Home Assistant currently supports a wide range of sensors. They are able to display information which are provides by Home assistant directly, are gathered from webservices, and, of course, physical devices. Please check the sidebar for a full list of supported sensor platforms.

    + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/sensor.modbus.html b/components/sensor.modbus.html new file mode 100644 index 0000000000..6016b88976 --- /dev/null +++ b/components/sensor.modbus.html @@ -0,0 +1,1810 @@ + + + + + + + + + + + + Modbus sensor - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + +
    + + +
    +
    +

    + Modbus sensor +

    +
    +
    + +

    The modbus sensor platform allows you to gather data from your Modbus sensors.

    + +

    To use your Modbus sensors in your installation, add the following to your configuration.yaml file:

    + +
    # Example configuration.yml entry
    +sensor:
    +  platform: modbus
    +  slave: 1
    +  registers:
    +    16:
    +      name: My integer sensor
    +      unit: C
    +    24:
    +      bits:
    +        0:
    +          name: My boolean sensor
    +        2:
    +          name: My other boolean sensor
    +  coils:
    +    0:
    +      name: My coil switch
    +
    + +

    Configuration variables:

    + +
      +
    • slave (Required): The number of the slave (ignored and can be omitted if not serial Modbus).
    • +
    • registers array (Required): The array contains a list of relevant registers to read from. + +
        +
      • number of register (Required): Listing relevant bits. It must contain a bits section. + +
          +
        • bits array (Required): Listing relevant bits. It must contain a bits section. + +
            +
          • name (Required): Name of the sensor.
          • +
          • unit (Required): Unit to attach to value (optional, ignored for boolean sensors).
          • +
          +
        • +
        +
      • +
      +
    • +
    • coils (Optional): A list of relevant coils to read from/write to + +
        +
      • number of coil array (Required): + +
          +
        • name (Required): Name of the coil.
        • +
        +
      • +
      +
    • +
    + + +

    +Each named register will create an integer sensor and each named bit will create a boolean sensor. +

    + + + + +
    + + +
    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/sensor.mqtt.html b/components/sensor.mqtt.html index 84b728af25..9cf724be7c 100644 --- a/components/sensor.mqtt.html +++ b/components/sensor.mqtt.html @@ -9,7 +9,7 @@ - MQTT Sensor support - Home Assistant + MQTT sensor - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers - + + @@ -182,5 +1769,10 @@ last known value. Otherwise, the initial state will be undefined.

    + + + + + \ No newline at end of file diff --git a/components/sensor.mysensors.html b/components/sensor.mysensors.html index d5436f296e..39b5036307 100644 --- a/components/sensor.mysensors.html +++ b/components/sensor.mysensors.html @@ -9,20 +9,20 @@ - MySensors support - Home Assistant + MySensors sensor - Home Assistant - + - + - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers - + + @@ -181,5 +1650,10 @@ This hikvisioncam switch platform allows you to control your motion detection se + + + + + \ No newline at end of file diff --git a/components/switch.html b/components/switch.html index 02c14fe046..efc439c507 100644 --- a/components/switch.html +++ b/components/switch.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
      @@ -97,36 +97,26 @@
      - -

      - RFXtrx Switch Support + RFXtrx switch


      -

      The rfxtrx platform support switches that communicate in the frequency range of 433.92 MHz.

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

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -
      # Example configuration.yaml entry
      -switch:
      -  platform: rfxtrx
      -  devices:
      -    ac09c4f1: Bedroom Door
      -    ac09c4f2: Kitchen Door
      -  automatic_add: True
      -
      - +
      # Example configuration.yaml entry
      +switch:
      +  platform: rfxtrx
      +  devices:
      +    living_room:
      +      name: Living Room
      +      packetid: XXXXX
      +  automatic_add: True
      +

      Configuration variables:

      @@ -136,13 +126,1558 @@
    - + + @@ -178,5 +1713,10 @@ + + + + + \ No newline at end of file diff --git a/components/switch.rpi_gpio.html b/components/switch.rpi_gpio.html index 69fb808b92..544a4128b9 100644 --- a/components/switch.rpi_gpio.html +++ b/components/switch.rpi_gpio.html @@ -9,7 +9,7 @@ - Raspberry PI GPIO switch support - Home Assistant + Raspberry PI GPIO switch - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
      @@ -97,34 +97,37 @@
      - -

      - Raspberry PI GPIO Switch Support + Raspberry PI GPIO switch


      - -

      -The rpi_gpio switch platform allows you to control the GPIOs of your Raspberry Pi.

      +

      The rpi_gpio switch platform allows you to control the GPIOs of your Raspberry Pi.

      To use your Raspberry Pi’s GPIO in your installation, add the following to your configuration.yaml file:

      -
      1
      -2
      -3
      -4
      -5
      -6
      -
      # Example configuration.yaml entry
      -switch:
      -  platform: rpi_gpio
      -  ports:
      -    11: Fan Office
      -    12: Light Desk
      -
      +
      # Example configuration.yaml entry
      +switch:
      +  platform: rpi_gpio
      +  ports:
      +    11: Fan Office
      +    12: Light Desk
      +  invert_logic: false
      +
      + +

      Configuration variables:

      + +
        +
      • ports array (Required): Array of used ports. + +
          +
        • port: name (Required): Your username for the Edimax switch.
        • +
        +
      • +
      • invert_logic (Optional): If true, inverts the output logic to ACTIVE LOW. Default is false (ACTIVE HIGH).
      • +

      For more details about the GPIO layout, visit the Wikipedia article about the Raspberry Pi.

      @@ -134,13 +137,1514 @@ If you are not running Raspbian Jessie, you will need to run Home Assistant as r

      -
      + + @@ -176,5 +1680,10 @@ If you are not running Raspbian Jessie, you will need to run Home Assistant as r + + + + + \ No newline at end of file diff --git a/components/switch.tellstick.html b/components/switch.tellstick.html new file mode 100644 index 0000000000..f493da5969 --- /dev/null +++ b/components/switch.tellstick.html @@ -0,0 +1,1719 @@ + + + + + + + + + + + + TellStick switch - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + +
      +
      + +
      + + +
      +
      +

      + TellStick switch +

      +
      +
      + +

      This tellstick switch platform allows you to control TellStick devices.

      + +

      To use your TellStick device in your installation, add the following to your configuration.yaml file:

      + +
      # Example configuration.yaml entry
      +switch:
      +  platform: tellstick
      +  signal_repetitions: 3
      +
      + +

      Configuration variables:

      + +
        +
      • signal_repetitions Optional: Because the tellstick sends its actions via radio and from most receivers it’s impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
      • +
      + + +
      + + +
      + + + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/switch.transmission.html b/components/switch.transmission.html index 9f2179a7bc..f9f9bf09da 100644 --- a/components/switch.transmission.html +++ b/components/switch.transmission.html @@ -9,7 +9,7 @@ - Transmission switch support - Home Assistant + Transmission switch - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -97,44 +97,31 @@
      - -

      - Transmission Switch Support + Transmission switch


      - -

      -The transmission platform allows you to control your Transmission client from within Home Assistant. The platform enables you switch to your ‘Alternative Speed Limits’ (aka ‘Turtle mode’) setting.

      +

      The transmission platform allows you to control your Transmission client from within Home Assistant. The platform enables you switch to your ‘Alternative Speed Limits’ (aka ‘Turtle mode’) setting.

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

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -
      # Example configuration.yaml entry
      -switch:
      -  platform: transmission
      -  host: 192.168.1.26
      -  port: 9091
      -  name: Transmission
      -  username: USERNAME
      -  password: PASSWORD
      -
      - +
      # Example configuration.yaml entry
      +switch:
      +  platform: transmission
      +  host: IP_ADDRESS
      +  port: 9091
      +  name: Transmission
      +  username: USERNAME
      +  password: PASSWORD
      +

      Configuration variables:

        -
      • host (Required): This is the IP address of your Transmission daemon, e.g. 192.168.1.32.
      • +
      • host (Required): This is the IP address of your Transmission daemon, eg. 192.168.1.32.
      • port (Optional): The port your Transmission daemon uses, defaults to 9091.
      • name (Optional): The name to use when displaying this Transmission instance.
      • username (Optional): Your Transmission username, if you use authentication.
      • @@ -142,13 +129,1550 @@ The transmission platform allows you to control your +
        + + + +
        +
        + + + +
        + + + + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +

        Related components

        +
          + +
        • + Transmission sensor +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + + + + +
        +

        Category Switch

        +
          + + + + + + + + + + + + + + + + + + +
        • + + Belkin WeMo switch + +
        • + + + + + + + + + + + + + +
        • + + Command line switch + +
        • + + + + + + + + + + + + + + + + + + + +
        • + + Edimax switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + MQTT switch + +
        • + + + + + + + + + + + + + +
        • + + Modbus switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + RESTful switch + +
        • + + + + + + + + + +
        • + + RFXtrx switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + TellStick switch + +
        • + + + + + + + + + + + + + +
        • + + Transmission switch + +
        • + + + + + + + + + +
        • + + Vera switch + +
        • + + + + + + + + + + + +
        • + + Wink switch + +
        • + + + + + + + + + + + +
        • + + aREST switch + +
        • + + + + +
        +
        + +
        + + +
        + + + @@ -184,5 +1708,10 @@ The transmission platform allows you to control your + + + + + + + + + + Vera switch - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Vera switch +

        +
        +
        + +

        This vera switch platform allows you to control your Vera switches.

        + +

        To use your Vera switches in your installation, add the following to your configuration.yaml file:

        + +
        # Example configuration.yaml entry
        +light:
        +  platform: vera
        +  vera_controller_url: http://YOUR_VERA_IP:3480/
        +  device_data:
        +    12:
        +      name: My awesome sensor
        +      exclude: true
        +    13:
        +      name: Another sensor
        +
        + +

        Configuration variables:

        + +
          +
        • vera_controller_url (Required): This is the base URL of your vera controller including the port number if not running on 80, eg. http://192.168.1.21:3480/
        • +
        • device_data array (Optional):This contains an array additional device information for your Vera devices. It is not required and if not specified all sensors configured in your Vera controller will be added with default values. You should use the id of your Vera device as the key for the device within device_data. + +
            +
          • name (Optional):This parameter allows you to override the name of your Vera device in the frontend, if not specified the value configured for the device in your Vera will be used.
          • +
          • exclude (Optional): This parameter allows you to exclude the specified device, it should be set to “True” if you want this device excluded.
          • +
          +
        • +
        + + +
        + + +
        + + + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/switch.wemo.html b/components/switch.wemo.html index d67198fa36..75fbdcc5e2 100644 --- a/components/switch.wemo.html +++ b/components/switch.wemo.html @@ -9,7 +9,7 @@ - Belkin WeMo switches support - Home Assistant + Belkin WeMo switch - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
      +
    • Components
    • Developers
        @@ -97,30 +97,21 @@
        - -

        - Belkin WeMo Switches Support + Belkin WeMo switch


        - -

        -The wemo platform allows you to control your Belkin WeMo switches from within Home Assistant.

        +

        The wemo platform allows you to control your Belkin WeMo switches from within Home Assistant.

        They will be automatically discovered if the discovery component is enabled.

        -
        1
        -2
        -3
        -
        # Example configuration.yaml entry
        -switch:
        -  platform: wemo
        -
        - - +
        # Example configuration.yaml entry
        +switch:
        +  platform: wemo
        +
        @@ -128,6 +119,1531 @@ The wemo platform allows you to control your +
        + + + +
        +
        + + + +
        + + + + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +

        Category Switch

        +
          + + + + + + + + + + + + + + + + + + +
        • + + Belkin WeMo switch + +
        • + + + + + + + + + + + + + +
        • + + Command line switch + +
        • + + + + + + + + + + + + + + + + + + + +
        • + + Edimax switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + MQTT switch + +
        • + + + + + + + + + + + + + +
        • + + Modbus switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + RESTful switch + +
        • + + + + + + + + + +
        • + + RFXtrx switch + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + TellStick switch + +
        • + + + + + + + + + + + + + +
        • + + Transmission switch + +
        • + + + + + + + + + +
        • + + Vera switch + +
        • + + + + + + + + + + + +
        • + + Wink switch + +
        • + + + + + + + + + + + +
        • + + aREST switch + +
        • + + + + +
        +
        + +
        + + +
        + + + @@ -163,5 +1679,10 @@ The wemo platform allows you to control your + + + + + + + + + + Wink switch - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Wink switch +

        +
        +
        + +

        The wink switch platform allows you to control your Wink switches.

        + +

        The requirement is that you have setup your Wink hub.

        + +
        + + +
        + + + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/tellstick.html b/components/tellstick.html index 8de9ee690a..943795fa89 100644 --- a/components/tellstick.html +++ b/components/tellstick.html @@ -9,7 +9,7 @@ - Setting up TellStick - Home Assistant + TellStick - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,60 +97,29 @@
        - -

        - Setting Up TellStick + TellStick


        - -

        -The TellStick Home Assistant integration allows users to add switches and sensors.

        - -

        To get started, add the following information to your configuration.yaml:

        - -
        1
        -2
        -3
        -4
        -5
        -6
        -7
        -8
        -9
        -10
        -11
        -12
        -13
        -14
        -15
        -16
        -17
        -
        # Example configuration.yaml entry
        -switch:
        -  platform: tellstick
        -
        -sensor:
        -  platform: tellstick
        -
        -  # optionally, you can name your sensors by mapping ID to their name
        -  2: Outside
        -  5: Fridge
        -
        -  # Set only_named to 1 to hide all sensors that you did not mention.
        -  only_named: 1
        -
        -# All dimmers will be picked up as lights.
        -light:
        -  platform: tellstick
        -
        +

        The tellstick component integrates TellStick devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 Mhz. There are couple of vendors (Capidi +Elro, Intertechno, Nexa, Proove, Sartano, and Viking) how are selling products which works with TellStick. For more details, please check the TellStick compatibility list.

        +

        To get started, add the devices to your configuration.yaml file.

        +
        # Example configuration.yaml entry
        +switch:
        +  platform: tellstick
         
        +sensor:
        +  platform: tellstick
         
        +# All dimmers will be picked up as lights.
        +light:
        +  platform: tellstick
        +
        @@ -158,6 +127,2171 @@ The TellStick Home Assistant integration allows users to add switches and sensor + + @@ -193,5 +2327,10 @@ The TellStick Home Assistant integration allows users to add switches and sensor + + + + + \ No newline at end of file diff --git a/components/thermostat.heat_control.html b/components/thermostat.heat_control.html index fa659f44e9..b3eb3a9987 100644 --- a/components/thermostat.heat_control.html +++ b/components/thermostat.heat_control.html @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,79 +97,30 @@
        - -

        - Heat Control + Heat control


        - -

        Specify a start time, end time and a target temperature. -If the the current temperature is lower than the target temperature, -and the time is between start time and end time, the heater will -be turned on. Opposite if the the temperature is higher than the -target temperature the heater will be turned off.

        +

        Heat Control is a thermostat implemented in Home Assistant. It uses a sensor and a switch connected to a heater under the hood. If the measured temperature is cooler then the target temperature, the heater will be turned on and turned off when required temperature is reached.

        -

        If away mode is activated the target temperature is sat to a min -temperature (min_temp in config). The min temperature is also used -as target temperature when no other temperature is specified.

        +
        # Example configuration.yaml entry
        +thermostat:
        +  platform: heat_control
        +  name: Study
        +  heater: switch.study_heater
        +  target_sensor: sensor.study_temperature
        +
        -

        If the heater is manually turned on, the target temperature will -be sat to 100*C. Meaning -the thermostat probably will never turn off the heater. -If the heater is manually turned off, the target temperature will -be sat according to normal rules. (Based on target temperature -for given time intervals and the min temperature.)

        +

        Configuration variables:

        -

        A target temperature sat with the set_temperature function will -override all other rules for the target temperature.

        - -
        1
        -2
        -3
        -4
        -5
        -6
        -7
        -8
        -9
        -10
        -11
        -12
        -13
        -14
        -15
        -16
        -17
        -
        # Example configuration.yaml entry
        -thermostat:
        -  platform: heat_control
        -  name: Stue
        -
        -  # entity_id for heater switch, must be a toggle device
        -  heater: switch.Ovn_stue
        -
        -  # entity_id for temperature sensor, target_sensor.state must be temperature
        -  target_sensor: tellstick_sensor.Stue_temperature
        -
        -  # start_time-end_time:target_temp,
        -  time_temp: 0700-0745:17,1500-1850:20
        -
        -  # minimum temperature, used when away mode is active or
        -  # no other temperature specified.
        -  min_temp: 10
        -
        - - -

        For the example the heater will turn on at 0700 if the temperature -is lower than 17C away mode is false. Between 0700 and 0745 the -target temperature will be 17C. Between 0745 and 1500 no temperature -is specified. so the min_temp of 10C will be used. From 1500 to 1850 -the target temperature is 20, but if away mode is true the target -temperature will be sat to 10C

        +
          +
        • name (Required): Name of thermostat
        • +
        • heater (Required: entity_id for heater switch, must be a toggle device.
        • +
        • target_sensor (Required): entity_id for a temperature sensor, target_sensor.state must be temperature.
        • +
        @@ -178,6 +129,1475 @@ temperature will be sat to 10C

        + + @@ -213,5 +1633,10 @@ temperature will be sat to 10C

        + + + + + \ No newline at end of file diff --git a/components/thermostat.html b/components/thermostat.html index caabb6a9f4..acb7c43299 100644 --- a/components/thermostat.html +++ b/components/thermostat.html @@ -9,7 +9,7 @@ - Adding thermostats - Home Assistant + Thermostats - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,44 +97,1878 @@
        - -

        - Adding Thermostats + Thermostats


        - -

        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. The only supported thermostat right now is the Nest thermostat.

        +

        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:

        -
        1
        -2
        -3
        -4
        -
        thermostat:
        -  platform: nest
        -  username: myemail@mydomain.com
        -  password: mypassword
        - - - +
        thermostat:
        +  platform: nest
        +  username: myemail@mydomain.com
        +  password: mypassword
        +

        -
        + + @@ -170,5 +2004,10 @@ + + + + + \ No newline at end of file diff --git a/components/thermostat.nest.html b/components/thermostat.nest.html index 6bbc02d016..2b075b7d17 100644 --- a/components/thermostat.nest.html +++ b/components/thermostat.nest.html @@ -9,7 +9,7 @@ - Nest thermostat support - Home Assistant + Nest thermostat - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,31 +97,22 @@
        - -

        - Nest Thermostat Support + Nest thermostat


        - -

        -The nest thermostat platform let you control a thermostat from Nest.

        +

        The nest thermostat platform let you control a thermostat from Nest.

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

        -
        1
        -2
        -3
        -4
        -
        thermostat:
        -  platform: nest
        -  username: USERNAME
        -  password: PASSWORD
        -
        - +
        thermostat:
        +  platform: nest
        +  username: USERNAME
        +  password: PASSWORD
        +

        Configuration variables:

        @@ -136,13 +127,1483 @@ The nest thermostat platform let you control a thermostat from +
        + + + +
        +
        + + + +
        + + + + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +

        Category Thermostat

        +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + Heat control + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + Nest thermostat + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        • + + Radiotherm thermostat + +
        • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + +
        + + +
        + + + @@ -178,5 +1639,10 @@ The nest thermostat platform let you control a thermostat from + + + + + + + + + + Radiotherm thermostat - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
        + +
        + + + +
        +
        + +
        + + +
        +
        +

        + Radiotherm thermostat +

        +
        +
        + +

        The nest thermostat platform let you control a thermostat from Radio Thermostat.

        + +

        The underlaying library supports: +- CT50 V1.09 +- CT50 V1.88 +- CT50 V1.94 (also known as Filtrete 3M50) +- CT80 Rev B2 V1.03

        + +

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

        + +
        thermostat:
        +  platform: radiotherm
        +  host:
        +    - 192.168.99.137
        +    - 192.168.99.202
        +  hold_temp: True
        +
        + +

        Configuration variables:

        + +
          +
        • host (Required): List of your Radiotherm thermostats
        • +
        • hold_temp (Required): Boolean to control if hass temp adjustments hold(True) or are temporary(False)
        • +
        + + +

        Temperature settings from Home Assistant will be sent to thermostat and then hold at that temperature. Set to False if you set a thermostat schedule on the thermostat itself and just want Home Assistant to send temporary temperature changes.

        + +
        + + +
        + + + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/vera.html b/components/vera.html index 5caffa4d0b..78813567cf 100644 --- a/components/vera.html +++ b/components/vera.html @@ -9,7 +9,7 @@ - Vera support - Home Assistant + Vera - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,62 +97,22 @@
        - -

        - Vera Support + Vera


        - -

        +

        The Vera ecosystem is using Z-Wave for communication between the Vera controller and the devices.

        -
        1
        -2
        -3
        -4
        -5
        -6
        -7
        -8
        -9
        -10
        -11
        -12
        -13
        -14
        -15
        -16
        -17
        -18
        -19
        -20
        -21
        -
        # Example configuration.yaml entry
        -sensor:
        -    platform: vera
        -    vera_controller_url: http://YOUR_VERA_IP:3480/
        -    device_data:
        -        10:
        -            name: Another sensor
        -
        -switch:
        -    platform: vera
        -    vera_controller_url: http://YOUR_VERA_IP:3480/
        -    device_data:
        -        12:
        -            name: Another Switch
        -
        -light:
        -    platform: vera
        -    vera_controller_url: http://YOUR_VERA_IP:3480/
        -    device_data:
        -        11:
        -            name: Another light
        -
        +

        Building on top of Vera

        +
        @@ -161,6 +121,2171 @@ + + @@ -196,5 +2321,10 @@ + + + + + \ No newline at end of file diff --git a/components/verisure.html b/components/verisure.html index 630897519f..65653416d4 100644 --- a/components/verisure.html +++ b/components/verisure.html @@ -58,9 +58,9 @@
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
    • +
    • Components
    • Developers
        @@ -97,19 +97,14 @@
        - -

        Verisure


        - -

        - -

        Home Assistant has support to integrate your Verisure devices.

        +

        Home Assistant has support to integrate your Verisure devices.

        We support:

        @@ -122,24 +117,15 @@

        To integrate Verisure with Home Assistant, add the following section to your configuration.yaml file:

        -
        1
        -2
        -3
        -4
        -5
        -6
        -7
        -8
        -
        # Example configuration.yaml entry
        -verisure:
        -  username: USERNAME
        -  password: PASSWORD
        -  alarm: 1
        -  hygrometers: 0
        -  smartplugs: 1
        -  thermometers: 0
        -
        - +
        # Example configuration.yaml entry
        +verisure:
        +  username: USERNAME
        +  password: PASSWORD
        +  alarm: 1
        +  hygrometers: 0
        +  smartplugs: 1
        +  thermometers: 0
        +

        Configuration variables:

        @@ -153,13 +139,2154 @@
      -
    • + + @@ -195,5 +2322,10 @@ + + + + + \ No newline at end of file diff --git a/components/wink.html b/components/wink.html index d3feb826f9..82259d177e 100644 --- a/components/wink.html +++ b/components/wink.html @@ -9,7 +9,7 @@ - Wink hub - Home Assistant + Wink - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -97,18 +97,14 @@
      - -

      - Wink Hub + Wink


      - -

      -Wink is a home automation hub that can control a whole wide range of devices on the market. Or, as they say in their own words:

      +

      Wink is a home automation hub that can control a whole wide range of devices on the market. Or, as they say in their own words:

      Wink offers one, quick and simple way to connect people with the products they rely on every day in their home.
      @@ -123,12 +119,9 @@

      After you have gotten your access token, add the following to your configuration.yaml:

      -
      1
      -2
      -
      wink:
      -  access_token: YOUR_ACCESS_TOKEN
      -
      - +
      wink:
      +  access_token: YOUR_ACCESS_TOKEN
      +

      Configuration variables:

      @@ -144,13 +137,2177 @@ The Wink hub can only be accessed via the cloud. This means it requires an activ

      -
      + + @@ -186,5 +2343,10 @@ The Wink hub can only be accessed via the cloud. This means it requires an activ + + + + + \ No newline at end of file diff --git a/components/zone.html b/components/zone.html index b2fc725b3a..7ecb7c42c3 100644 --- a/components/zone.html +++ b/components/zone.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -97,15 +97,12 @@
      - -

      Zone


      -

      Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a @@ -114,52 +111,29 @@ inside automation setups.

      Zones support the usual method to specify multiple zones, use keys zone:, zone 2: etc.

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -13
      -14
      -15
      -16
      -17
      -18
      -19
      -20
      -21
      -22
      -
      # Example configuration.yaml entry
      -zone:
      -  name: School
      -  latitude: 32.8773367
      -  longitude: -117.2494053
      -  # Optional radius in meters (default: 100)
      -  radius: 250
      -  # Optional icon to show instead of name
      -  icon: group-work
      -
      -zone 2:
      -  name: Work
      -  latitude: 32.8753367
      -  longitude: -117.2474053
      -
      -# This will override the default home zone
      -zone 3:
      -  name: Home
      -  latitude: 32.8793367
      -  longitude: -117.2474053
      -  radius: 100
      -  icon: social:people
      -
      +
      # Example configuration.yaml entry
      +zone:
      +  name: School
      +  latitude: 32.8773367
      +  longitude: -117.2494053
      +  # Optional radius in meters (default: 100)
      +  radius: 250
      +  # Optional icon to show instead of name
      +  icon: group-work
       
      +zone 2:
      +  name: Work
      +  latitude: 32.8753367
      +  longitude: -117.2474053
      +
      +# This will override the default home zone
      +zone 3:
      +  name: Home
      +  latitude: 32.8793367
      +  longitude: -117.2474053
      +  radius: 100
      +  icon: social:people
      +

      Home zone

      @@ -177,13 +151,2116 @@ categories are included.

      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.

      -
      + + @@ -219,5 +2296,10 @@ categories are included.

      + + + + + \ No newline at end of file diff --git a/components/zwave.html b/components/zwave.html index 225cb2757b..dfba087037 100644 --- a/components/zwave.html +++ b/components/zwave.html @@ -9,7 +9,7 @@ - Z-Wave support - Home Assistant + Z-Wave - Home Assistant @@ -18,7 +18,7 @@ - + @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -97,25 +97,14 @@
      - -

      - Z-Wave Support + Z-Wave


      - -

      -Z-Wave support is currently broken as we’re unable to compile -Python Open Z-Wave. -

      - - -

      - -

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

      +

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

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

      @@ -123,22 +112,16 @@ Z-Wave support is currently broken as we’re unable to compile

      Please make sure you have the correct dependencies installed:

      -
      1
      -2
      -
      apt-get install cython3 libudev-dev python-sphinx python3-setuptools
      -pip3 install cython
      - +
      apt-get install cython3 libudev-dev python-sphinx python3-setuptools
      +pip3 install "cython<0.23"
      +

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

      -
      1
      -2
      -3
      -
      # Example configuration.yaml entry
      -zwave:
      -  usb_path: /dev/ttyUSB0
      -
      - +
      # Example configuration.yaml entry
      +zwave:
      +  usb_path: /dev/ttyUSB0
      +

      Configuration variables:

      @@ -147,11 +130,8 @@ Z-Wave support is currently broken as we’re unable to compile
    -
    1
    -
    ls /dev/ttyUSB*
    -
    - - +
    ls /dev/ttyUSB*
    +
    @@ -159,6 +139,2148 @@ Z-Wave support is currently broken as we’re unable to compile + + @@ -194,5 +2316,10 @@ Z-Wave support is currently broken as we’re unable to compile + + + + + \ No newline at end of file diff --git a/cookbook/automation_for_rainy_days.html b/cookbook/automation_for_rainy_days.html index 3b3e92f7cc..4dbd3336da 100644 --- a/cookbook/automation_for_rainy_days.html +++ b/cookbook/automation_for_rainy_days.html @@ -58,9 +58,9 @@
  • Presence detection
  • Automation
  • Configuration cookbook
  • -
  • Component overview
  • +
  • Components
  • Developers
      @@ -113,79 +113,43 @@

      Turn on a light in the living room when it starts raining, someone is home, and it’s afternoon or later.

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -13
      -14
      -15
      -16
      -17
      -18
      -19
      -
      automation:
      -  alias: 'Rainy Day'
      -
      -  trigger:
      -       - platform: state
      -         entity_id: sensor.weather_precip
      -         state: 'rain'
      -       - platform: state
      -         entity_id: group.all_devices
      -         state: 'home'
      -       - platform: time
      -         after: '14:00'
      -         before: '23:00'
      -
      -  condition: use_trigger_values
      -
      -  action:
      -    execute_service: light.turn_on
      -    service_entity_id: light.couch_lamp
      -
      +
      automation:
      +  alias: 'Rainy Day'
       
      +  trigger:
      +       - platform: state
      +         entity_id: sensor.weather_precip
      +         state: 'rain'
      +       - platform: state
      +         entity_id: group.all_devices
      +         state: 'home'
      +       - platform: time
      +         after: '14:00'
      +         before: '23:00'
      +
      +  condition: use_trigger_values
      +
      +  action:
      +    execute_service: light.turn_on
      +    service_entity_id: light.couch_lamp
      +

      And then of course turn off the lamp when it stops raining but only if it’s within an hour before sunset.

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -13
      -
        alias: 'Rain is over'
      -  trigger:
      -       - platform: state
      -         entity_id: sensor.weather_precip
      -         state: 'None'
      -       - platform: sun
      -         event: 'sunset'
      -         offset: '-01:00:00'
      -
      -  condition: use_trigger_values
      -  action:
      -    execute_service: light.turn_off
      -    service_entity_id: light.couch_lamp
      -
      - - +
        alias: 'Rain is over'
      +  trigger:
      +       - platform: state
      +         entity_id: sensor.weather_precip
      +         state: 'None'
      +       - platform: sun
      +         event: 'sunset'
      +         offset: '-01:00:00'
       
      +  condition: use_trigger_values
      +  action:
      +    execute_service: light.turn_off
      +    service_entity_id: light.couch_lamp
      +
      diff --git a/cookbook/automation_sun.html b/cookbook/automation_sun.html index 2b425f05bd..02913a225f 100644 --- a/cookbook/automation_sun.html +++ b/cookbook/automation_sun.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -109,59 +109,35 @@

      Turn on the living room lights 45 minutes before sunset if anyone home

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -
      automation:
      -  trigger:
      -    platform: sun
      -    event: sunset
      -    offset: "-00:45:00"
      -  condition:
      -    platform: state
      -    entity_id: group.all_devices
      -    state: home
      -  action:
      -    service: homeassistant.turn_on
      -    entity_id: group.living_room_lights
      -
      - +
      automation:
      +  trigger:
      +    platform: sun
      +    event: sunset
      +    offset: "-00:45:00"
      +  condition:
      +    platform: state
      +    entity_id: group.all_devices
      +    state: home
      +  action:
      +    service: homeassistant.turn_on
      +    entity_id: group.living_room_lights
      +

      Natural wake up light

      -

      Note, Philips Hue is currently the only light platform that support transitions.

      - -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -
      automation:
      -  trigger:
      -    platform: time
      -    after: "07:15:00"
      -  action:
      -    service: light.turn_on
      -    entity_id: light.bedroom
      -    data:
      -      # 900 seconds = 15 minutes
      -      transition: 900
      -
      - +

      Note, Philips Hue is currently the only light platform that support transitions. +yaml +automation: + trigger: + platform: time + after: "07:15:00" + action: + service: light.turn_on + entity_id: light.bedroom + data: + # 900 seconds = 15 minutes + transition: 900 +

      diff --git a/cookbook/basic_example_use_trigger_values.html b/cookbook/basic_example_use_trigger_values.html index 1a106c2c97..0865bc7098 100644 --- a/cookbook/basic_example_use_trigger_values.html +++ b/cookbook/basic_example_use_trigger_values.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
      @@ -111,58 +111,32 @@

      Turn on lights during daytime when it’s dark enough < 200 lux.

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -13
      -14
      -15
      -16
      -17
      -18
      -19
      -20
      -21
      -22
      -23
      -24
      -25
      -
      automation:
      -  - alias:
      -    trigger:
      -      - platform: numeric_state
      -        entity_id: sensor.sensor_luminance
      -        below: 200
      -      - platform: time
      -        after: "08:00"
      -        before: "23:00"
      -    condition: use_trigger_values
      -    action:
      -      service: homeassistant.turn_on
      -      entity_id: group.basic_lights
      -
      -automation 2:
      -  - alias:
      -    trigger:
      -      - platform: numeric_state
      -        entity_id: sensor.sensor_luminance
      -        above: 200
      -      - platform: time
      -        after: "23:00"
      -    action:
      -      service: homeassistant.turn_off
      -      entity_id: group.basic_lights
      -
      +
      automation:
      +  - alias: 
      +    trigger:
      +      - platform: numeric_state
      +        entity_id: sensor.sensor_luminance
      +        below: 200
      +      - platform: time
      +        after: "08:00"
      +        before: "23:00"
      +    condition: use_trigger_values
      +    action:
      +      service: homeassistant.turn_on
      +      entity_id: group.basic_lights
       
      +automation 2:
      +  - alias: 
      +    trigger:
      +      - platform: numeric_state
      +        entity_id: sensor.sensor_luminance
      +        above: 200
      +      - platform: time
      +        after: "23:00"
      +    action:
      +      service: homeassistant.turn_off
      +      entity_id: group.basic_lights
      +
      diff --git a/cookbook/dim_lights_when_playing_media.html b/cookbook/dim_lights_when_playing_media.html new file mode 100644 index 0000000000..3f34a52c20 --- /dev/null +++ b/cookbook/dim_lights_when_playing_media.html @@ -0,0 +1,224 @@ + + + + + + + + + + + + Dim lights when playing media - Home Assistant + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + +
      +
      + +
      + + +
      + + +
      +

      + Dim Lights When Playing Media +

      +
      +
      + + +

      Like it how the lights dim up/down at the movies? Do it at home as well!

      + +

      This example uses the media player, Philips Hue (transitions) and the sun component. +We’ll use actions to detect media player state changes and scenes to control multiple +lights, color settings and transition between scenes.

      + +

      Scenes

      + +

      One scene for normal light, one for when movies are on. +A 2 second transition gives a nice ‘feel’ to the switch.

      + +
      scene:
      +  - name: Livingroom normal
      +    entities:
      +        light.light1:
      +            state: on
      +            transition: 2
      +            brightness: 150
      +            xy_color: [ 0.4448, 0.4066 ]
      +        light.light2:
      +            state: on
      +            transition: 2
      +            brightness: 215
      +            xy_color: [ 0.4448, 0.4066 ]
      +  - name: Livingroom dim
      +    entities:
      +        light.light1:
      +            state: on
      +            transition: 2
      +            brightness: 75
      +            xy_color: [ 0.5926, 0.3814 ]
      +        light.light2:
      +            state: on
      +            transition: 2
      +            brightness: 145
      +            xy_color: [ 0.5529, 0.4107 ]
      +
      + +

      Automation

      + +

      The paused/stopped state is best matched using “from: ‘playing’”. +Adding in the sun condition as we only want this when it’s dark.

      + +
      automation:
      +  - action: "Media player paused/stopped"
      +    trigger:
      +      - platform: state
      +        entity_id: media_player.htpc
      +        from: 'playing'
      +    condition:
      +      - platform: sun
      +        entity_id: sun.sun
      +        state: 'below_horizon'
      +    action:
      +        service: scene.turn_on
      +        entity_id: scene.livingroom_normal
      +
      +  - alias: "Media player playing"
      +    trigger:
      +      - platform: state
      +        entity_id: media_player.htpc
      +        to: 'playing'
      +    condition:
      +      - platform: sun
      +        entity_id: sun.sun
      +        state: 'below_horizon'
      +    action:
      +        service: scene.turn_on
      +        entity_id: scene.livingroom_dim
      +
      + + +
      + + +
      + + +
      +
      + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cookbook/index.html b/cookbook/index.html index c2b18162dc..0305f3fa86 100644 --- a/cookbook/index.html +++ b/cookbook/index.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
      @@ -111,76 +111,41 @@

      This recipe will turn on a light when there is motion and turn off the light when ten minutes has passed without any motion events .

      -
      1
      -2
      -3
      -4
      -5
      -6
      -7
      -8
      -9
      -10
      -11
      -12
      -13
      -14
      -15
      -16
      -17
      -18
      -19
      -20
      -21
      -22
      -23
      -24
      -25
      -26
      -27
      -28
      -29
      -30
      -31
      -32
      -33
      -34
      -
      automation:
      -  alias: Turn on kitchen lights when there is movement
      -  trigger:
      -    - platform: state
      -      entity_id: sensor.motion_sensor
      -      to: 'on'
      -  action:
      -    service: homeassistant.turn_on
      -    entity_id: script.timed_lamp
      -
      -script:
      -  timed_lamp:
      -    alias: "Turn on lamp and set timer"
      -    sequence:
      -      # Cancel ev. old timers 
      -      - execute_service: script.turn_off
      -        service_data:
      -           entity_id: script.timer_off
      -      - execute_service: light.turn_on
      -        service_data:
      -          entity_id: light.kitchen
      -      # Set new timer 
      -      - execute_service: script.turn_on
      -        service_data:
      -          entity_id: script.timer_off
      -
      -  timer_off:
      -    alias: "Turn off lamp after 10 minutes"
      -    sequence:
      -      - delay:
      -          minutes: 10
      -      - execute_service: light.turn_off
      -        service_data:
      -          entity_id: light.kitchen
      -
      +
      automation:
      +  alias: Turn on kitchen lights when there is movement 
      +  trigger:
      +    - platform: state
      +      entity_id: sensor.motion_sensor
      +      to: 'on'
      +  action:
      +    service: homeassistant.turn_on
      +    entity_id: script.timed_lamp
       
      +script:
      +  timed_lamp:
      +    alias: "Turn on lamp and set timer"
      +    sequence:
      +      # Cancel ev. old timers 
      +      - execute_service: script.turn_off
      +        service_data: 
      +           entity_id: script.timer_off
      +      - execute_service: light.turn_on
      +        service_data:
      +          entity_id: light.kitchen
      +      # Set new timer 
      +      - execute_service: script.turn_on
      +        service_data:
      +          entity_id: script.timer_off
      +
      +  timer_off:
      +    alias: "Turn off lamp after 10 minutes"
      +    sequence:
      +      - delay:
      +          minutes: 10
      +      - execute_service: light.turn_off
      +        service_data: 
      +          entity_id: light.kitchen
      +
      diff --git a/developers/add_new_platform.html b/developers/add_new_platform.html index 63071226fd..f132954349 100644 --- a/developers/add_new_platform.html +++ b/developers/add_new_platform.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
      @@ -107,8 +107,7 @@
      -

      Home Assistant offers built-in components but it -is easy to built your own. If you are the kind of person that likes to learn from code rather then guide then head over to the config/custom_components folder in the repository for two example components.

      +

      Home Assistant offers built-in components but it is easy to built your own. If you are the kind of person that likes to learn from code rather then guide then head over to the config/custom_components folder in the repository for two example components.

      The first is hello_world.py, which is the classic Hello World example for Home Assistant. The second one is example.py which showcases various ways you can tap into Home Assistant to be notified when certain events occur.

      @@ -153,18 +152,11 @@ Home Assistant will use the directory that contains your config file as the dire

      Dependencies

      -

      Home Assistant allows components and platforms to specify their dependencies and requirements using the variables -DEPENDENCIES and REQUIREMENTS. Both are lists that contain strings.

      +

      Home Assistant allows components and platforms to specify their dependencies and requirements using the variables DEPENDENCIES and REQUIREMENTS. Both are lists that contain strings.

      -

      Dependencies are other Home Assistant components that should be setup before the platform is loaded. -An example is the MQTT sensor component, which requires an active connection to an MQTT broker. If -Home Assistant is unable to load and setup the MQTT component, it will not setup the MQTT sensor -component.

      +

      Dependencies are other Home Assistant components that should be setup before the platform is loaded. An example is the MQTT sensor component, which requires an active connection to an MQTT broker. If Home Assistant is unable to load and setup the MQTT component, it will not setup the MQTT sensor component.

      -

      Requirements are Python libraries that you would normally install using pip. Each entry in a -requirement list is a pip compatible string. For example, the media player Cast platform depends -on the Python package PyChromecast thus REQUIREMENTS = ['pychromecast==0.6.12']. If Home -Assistant is unable to install the package or verify it is installed, the component will fail to +

      Requirements are Python libraries that you would normally install using pip. Each entry in a requirement list is a pip compatible string. For example, the media player Cast platform depends on the Python package PyChromecast thus REQUIREMENTS = ['pychromecast==0.6.12']. If Home Assistant is unable to install the package or verify it is installed, the component will fail to load.

      Initializing components

      @@ -230,7 +222,7 @@ load.

      -

      Then in the setup-method of your component you will be able to refer to config['example']['host'] to get the value paulusschoutsen.nl.

      +

      Then in the setup method of your component you will be able to refer to config['example']['host'] to get the value paulusschoutsen.nl.

      diff --git a/developers/credits.html b/developers/credits.html index 4bb82d1da1..f15c97adcf 100644 --- a/developers/credits.html +++ b/developers/credits.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
  • +
  • Components
  • Developers
      @@ -107,9 +107,7 @@
      -

      Home Assistant is build from the ground-up to be easily extensible by other developers using -components. It uses Python 3 for the backend and -Polymer (Webcomponents) for the frontend.

      +

      Home Assistant is build from the ground-up to be easily extensible by other developers using components. It uses Python 3 for the backend and Polymer (Webcomponents) for the frontend.

      Home Assistant is open-source and MIT licensed. The source can be found here:

      @@ -122,8 +120,7 @@ components. It uses Python 3 for the backe

      Starting development

      -

      You will need to setup a development environment if you want to start developing a new feature or -component for Home Assistant perform theses steps

      +

      You will need to setup a development environment if you want to start developing a new feature or component for Home Assistant perform theses steps

      1
       2
      @@ -142,12 +139,13 @@ component for Home Assistant perform theses steps

      requests.

        -
      1. Go to the Home Assistant repository -and click fork in the top right.
      2. +
      3. Go to the Home Assistant repository and click fork in the top right.
      4. Follow steps in the previous section but with your forked repository.
      5. Create a new branch to hold your changes
        git checkout -b some-feature
      6. Make the changes you want
      7. +
      8. Check your changes for style violations
        +./script/lint
      9. Commit the changes
        git add .
        git commit -m "Added some-feature"
      10. @@ -161,18 +159,12 @@ pull request.

        Further reading

        diff --git a/developers/python_api.html b/developers/python_api.html index 4783d5a235..4732c65ae6 100644 --- a/developers/python_api.html +++ b/developers/python_api.html @@ -58,9 +58,9 @@
      11. Presence detection
      12. Automation
      13. Configuration cookbook
      14. -
      15. Component overview
      16. +
      17. Components
      18. Developers
          @@ -143,7 +143,7 @@

          Get details about servies and events

          -

          Similar to the output in the “Developer Tools” of the frontend

          +

          Similar to the output in the “Developer Tools” of the frontend.

          1
           2
          @@ -236,9 +236,11 @@
           3
           4
           5
          +6
           
          import homeassistant.remote as remote
           from homeassistant.const import STATE_ON
           
          +api = remote.API('host', 'password')
           remote.set_state(api, 'sensor.office_temperature', new_state=123)
           remote.set_state(api, 'switch.livingroom_pin_2', new_state=STATE_ON)
           
          @@ -258,9 +260,11 @@ 6 7 8 +9
      import time
       import homeassistant.remote as remote
       
      +api = remote.API('host', 'password')
       domain = 'switch'
       
       remote.call_service(api, domain, 'turn_on')
      @@ -271,7 +275,7 @@
       
       

      Control a single entity

      -

      To turn on or off a single switch, the ID of the entity is needed as attribute.

      +

      To turn on or off a single switch. The ID of the entity is needed as attribute.

      1
       2
      @@ -282,9 +286,11 @@
       7
       8
       9
      +10
       
      import time
       import homeassistant.remote as remote
       
      +api = remote.API('host', 'password')
       domain = 'switch'
       switch_name = 'switch.livingroom_pin_2'
       
      @@ -294,6 +300,27 @@
       
      +

      Send a notification

      + +

      The example uses the jabber notification platform to send a single message to the given recipient in the configuration.yaml file.

      + +
      1
      +2
      +3
      +4
      +5
      +6
      +7
      +
      import homeassistant.remote as remote
      +
      +api = remote.API('host', 'password')
      +domain = 'notify'
      +data = {"title":"Test", "message":"A simple test message from HA."}
      +
      +remote.call_service(api, domain, 'jabber', data)
      +
      + +

      For more details please check the source of homeassistant.remote.

      diff --git a/developers/rest_api.html b/developers/rest_api.html index 0fff18db33..a984068bba 100644 --- a/developers/rest_api.html +++ b/developers/rest_api.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
    • +
    • Components
    • Developers
    • +
    • Components
    • Developers
    • +
    • Components
    • Developers
    • +
    • Components
    • Developers
    • +
    • Components
    • Developers
        @@ -161,6 +161,9 @@ Newer linux distributions are trending towards using systemd for managing daemon 10 11 12 +13 +14 +15
    • su -c 'cat <<EOF >> /lib/systemd/system/home-assistant.service
       [Unit]
       Description=Home Assistant
      @@ -168,7 +171,10 @@ Newer linux distributions are trending towards using systemd for managing daemon
       
       [Service]
       Type=simple
      -ExecStart=hass
      +ExecStart=/usr/local/bin/hass
      +# Next line is to run as a specific user
      +# for Raspberry Pi users, keep it at 'pi'
      +User=pi
       
       [Install]
       WantedBy=multi-user.target
      @@ -180,7 +186,7 @@ Newer linux distributions are trending towards using systemd for managing daemon
       

      1
       2
       3
      -
      sudo systemctl –system daemon-reload
      +
      sudo systemctl --system daemon-reload
       sudo systemctl enable home-assistant
       sudo systemctl start home-assistant
       

      diff --git a/getting-started/configuration.html b/getting-started/configuration.html index 5589200796..176a0e5724 100644 --- a/getting-started/configuration.html +++ b/getting-started/configuration.html @@ -58,9 +58,9 @@
    • Presence detection
    • Automation
    • Configuration cookbook
    • -
    • Component overview
    • +
    • Components
    • Developers
    • +
    • Components
    • Developers
        @@ -149,6 +149,8 @@ by using the Set State page in the Developer Tools (icon in the middle).

        You may find it desireable to customize the look and feel of your front page by altering some of these parameters. This can be done by adding the following config to the homeassistant: section.

        +

        Entity_pictures, badges, device_tracker pictures, etc can either be a URL or /local/file.jpg, which points to directory www in the HASS configuration directory.

        +
        1
         2
         3
        diff --git a/getting-started/index.html b/getting-started/index.html
        index cf6194d9c5..d7ff546b6a 100644
        --- a/getting-started/index.html
        +++ b/getting-started/index.html
        @@ -58,9 +58,9 @@
               
      • Presence detection
      • Automation
      • Configuration cookbook
      • -
      • Component overview
      • +
      • Components
      • Developers
      • +
      • Components
      • Developers
          diff --git a/getting-started/troubleshooting-configuration.html b/getting-started/troubleshooting-configuration.html index 7b1a63053d..6703d8dd8b 100644 --- a/getting-started/troubleshooting-configuration.html +++ b/getting-started/troubleshooting-configuration.html @@ -58,9 +58,9 @@
        • Presence detection
        • Automation
        • Configuration cookbook
        • -
        • Component overview
      • +
      • Components
      • Developers
      • +
      • Components
      • Developers
          @@ -124,19 +124,30 @@ by some distributions. If you are unable to run python3 -m pip --versiondownloading the installer and run it with Python 3: python3 get-pip.py.

          +

          distutils.errors.DistutilsOptionError: must supply either home or prefix/exec-prefix – not both
          +This is a known issue if you’re on a Mac using Homebrew to install Python. Please follow +these instructions +to resolve it.

          +

          CentOS and Python 3
          To run Python 3.x on CentOS or RHEL, Software Collections needs to be activated.

          Run the development version
          -If you want to stay on top of the development of Home Assistant then you can upgrade to the latest stuff what is available in the dev branch pip3 install --upgrade git+git://github.com/balloob/home-assistant.git@dev. Keep in mind, that stable releases of Home Assistant are published often.

          +If you want to stay on top of the development of Home Assistant then you can upgrade to the dev branch using +pip3 install --upgrade git+git://github.com/balloob/home-assistant.git@dev. Keep in mind, that stable releases +of Home Assistant are published often.

          No access to the frontend
          In newer Linux distributions (at least Fedora 22/CentOS 7) the access to a host is very limited. -This means that you can’t access the Home Assistant Frontend that is running on a host outside of the host machine. Windows and OSX machines may also have issues with this.

          +This means that you can’t access the Home Assistant Frontend that is running on a host outside of the +host machine. Windows and OSX machines may also have issues with this.

          -

          To fix this you will need to open your machine’s firewall for TCP traffic over port 8123. The method for doing this will vary depending on your operating system and the firewall you have installed. Below are some suggestions to try. Google is your friend here.

          +

          To fix this you will need to open your machine’s firewall for TCP traffic over port 8123. The method +for doing this will vary depending on your operating system and the firewall you have installed. +Below are some suggestions to try. Google is your friend here.

          -

          Windows and Mac OSX have good instructions posted.

          +

          Windows instructions
          +Mac OSX instructions

          For firewalld systems (Fedora, RHEL, etc.):

          diff --git a/help/index.html b/help/index.html index be7c55fef1..507706cac6 100644 --- a/help/index.html +++ b/help/index.html @@ -58,9 +58,9 @@
        • Presence detection
        • Automation
        • Configuration cookbook
        • -
        • Component overview
      • +
      • Components
      • Developers
          diff --git a/images/supported_brands/emblem-important.png b/images/supported_brands/emblem-important.png new file mode 100644 index 0000000000..8ddaa1e3bb Binary files /dev/null and b/images/supported_brands/emblem-important.png differ diff --git a/images/supported_brands/firetv.png b/images/supported_brands/firetv.png new file mode 100644 index 0000000000..85ace6bdd0 Binary files /dev/null and b/images/supported_brands/firetv.png differ diff --git a/images/supported_brands/geofancy.png b/images/supported_brands/geofancy.png new file mode 100644 index 0000000000..88a65a176a Binary files /dev/null and b/images/supported_brands/geofancy.png differ diff --git a/images/supported_brands/preferences-system-privacy.png b/images/supported_brands/preferences-system-privacy.png new file mode 100644 index 0000000000..53b616cf90 Binary files /dev/null and b/images/supported_brands/preferences-system-privacy.png differ diff --git a/images/supported_brands/radiotherm.png b/images/supported_brands/radiotherm.png new file mode 100644 index 0000000000..67f2fe6df5 Binary files /dev/null and b/images/supported_brands/radiotherm.png differ diff --git a/images/supported_brands/weather-clear.png b/images/supported_brands/weather-clear.png new file mode 100644 index 0000000000..1c8e27aefd Binary files /dev/null and b/images/supported_brands/weather-clear.png differ diff --git a/index.html b/index.html index 9549f7391f..df1d31d784 100644 --- a/index.html +++ b/index.html @@ -58,9 +58,9 @@
        • Presence detection
        • Automation
        • Configuration cookbook
        • -
        • Component overview
      • +
      • Components
      • Developers
          diff --git a/sitemap.xml b/sitemap.xml index e07e88da31..c624b21c81 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,5 +1,10 @@ + + https://home-assistant.io/blog/2015/10/26/firetv-and-radiotherm-now-supported/ + 2015-10-26T18:10:00-07:00 + 0.8 + https://home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/ 2015-10-11T12:10:00-07:00 @@ -142,805 +147,949 @@ https://home-assistant.io/developers/add_new_platform.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/alarm_control_panel.mqtt.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/android.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/api.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/architecture.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/arduino.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/automation.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/automation.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/cookbook/automation_for_rainy_days.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/cookbook/automation_sun.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/autostart.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/cookbook/basic_example_use_trigger_values.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/browser.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/camera.foscam.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/camera.generic.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/configuration.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/configurator.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/conversation.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/creating_components.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/credits.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_sun_light_trigger.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.actiontec.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.aruba.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.asuswrt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.ddwrt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.luci.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.mqtt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.netgear.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.nmap_scanner.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.owntracks.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.snmp.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.thomson.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.tomato.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/device_tracker.tplink.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/devices.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/discovery.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/downloader.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/frontend.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/group.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/history.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/ifttt.manything.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/ifttt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/blog/ - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/blog/archives/ - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/ - 2015-10-12T21:34:48-07:00 - weekly - 1.0 - - - https://home-assistant.io/developers/ - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/components/ - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/blog/ + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/blog/archives/ + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/ + 2015-10-26T21:58:24-07:00 + weekly + 1.0 + + + https://home-assistant.io/developers/ + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/cookbook/ - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/help/ - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/ - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/isy994.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/keyboard.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/light.blinksticklight.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/light.hue.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/light.limitlessled.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/light.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/light.rfxtrx.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/logbook.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.cast.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.denon.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.itunes.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.kodi.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.mpd.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.plex.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.sonos.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/media_player.squeezebox.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/modbus.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/mqtt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.file.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.instapush.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.nma.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.pushbullet.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.pushover.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.slack.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.smtp.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.syslog.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.telegram.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/notify.xmpp.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/presence-detection.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/python_api.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/rest_api.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/rfxtrx.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/scene.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/script.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.arduino.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.arest.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.bitcoin.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.command_sensor.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.dht.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.efergy.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.forecast.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.glances.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.mqtt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.mysensors.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.openweathermap.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.rest.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.rfxtrx.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.rpi_gpio.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.sabnzbd.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.swiss_public_transport.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.systemmonitor.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.temper.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.time_date.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.transmission.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sensor.worldclock.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/simple_alarm.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/sun.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.arduino.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.arest.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.command_switch.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.edimax.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.hikvision.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.mqtt.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.rfxtrx.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.rpi_gpio.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.transmission.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/switch.wemo.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/tellstick.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/thermostat.heat_control.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/thermostat.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/thermostat.nest.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/troubleshooting-configuration.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/getting-started/troubleshooting.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/cookbook/turn_on_light_for_10_minutes_when_motion_detected.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/vera.html - 2015-10-12T21:34:48-07:00 - weekly - 0.7 - - - https://home-assistant.io/components/verisure.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/developers/website.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/alarm_control_panel.manual.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/alarm_control_panel.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/alarm_control_panel.mqtt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/arduino.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/automation.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/browser.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/camera.foscam.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/camera.generic.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/configurator.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/conversation.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_sun_light_trigger.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.actiontec.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.aruba.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.asuswrt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.ddwrt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.geofancy.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.luci.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.mqtt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.netgear.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.nmap_scanner.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.owntracks.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.snmp.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.thomson.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.tomato.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.tplink.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/device_tracker.ubus.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/discovery.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/downloader.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/group.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/history.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/ifttt.manything.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/ifttt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/introduction.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/isy994.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/keyboard.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.blinksticklight.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.hue.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.hyperion.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.limitlessled.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.rfxtrx.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.tellstick.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.vera.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/light.wink.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/logbook.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.cast.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.denon.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.firetv.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.itunes.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.kodi.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.mpd.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.plex.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.sonos.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/media_player.squeezebox.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/modbus.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/mqtt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.file.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.instapush.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.nma.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.pushbullet.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.pushover.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.slack.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.smtp.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.syslog.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.telegram.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/notify.xmpp.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/rfxtrx.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/scene.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/script.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.arduino.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.arest.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.bitcoin.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.command_sensor.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.cpuspeed.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.dht.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.efergy.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.forecast.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.glances.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.modbus.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.mqtt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.mysensors.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.openweathermap.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.rest.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.rfxtrx.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.rpi_gpio.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.sabnzbd.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.swiss_public_transport.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.systemmonitor.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.tellstick.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.temper.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.time_date.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.transmission.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.vera.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.wink.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sensor.worldclock.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/shell_command.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/simple_alarm.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/sun.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.arduino.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.arest.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.command_switch.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.edimax.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.hikvision.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.modbus.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.mqtt.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.rest.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.rfxtrx.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.rpi_gpio.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.tellstick.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.transmission.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.vera.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.wemo.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/switch.wink.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/tellstick.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/thermostat.heat_control.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/thermostat.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/thermostat.nest.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/thermostat.radiotherm.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/vera.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/components/verisure.html + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/components/wink.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/components/zone.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 weekly 0.7 https://home-assistant.io/components/zwave.html - 2015-10-12T21:34:48-07:00 + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/cookbook/automation_for_rainy_days.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/cookbook/automation_sun.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/cookbook/basic_example_use_trigger_values.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/cookbook/dim_lights_when_playing_media.html + 2015-10-26T21:58:24-07:00 + weekly + 0.7 + + + https://home-assistant.io/cookbook/turn_on_light_for_10_minutes_when_motion_detected.html + 2015-10-26T21:58:24-07:00 weekly 0.7 diff --git a/stylesheets/screen.css b/stylesheets/screen.css index 3efbc72a56..1189ad5a43 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: 790px){.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: 790px){.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}.sans,html .gist .gist-file .gist-meta{font-family:"Helvetica Neue",Arial,sans-serif}.mono,pre,p code,li code{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace}.highlight table{margin-bottom:0}.highlight .gutter,.highlight .code{padding:0}.highlight .gutter .line-number{display:block}.highlight,html .gist .gist-file .gist-syntax .gist-highlight{border:1px solid #05232b !important}.highlight table td.code,html .gist .gist-file .gist-syntax .gist-highlight table td.code{width:100%}.highlight .line-numbers,html .gist .gist-file .gist-syntax .highlight .line_numbers{text-align:right;font-size:13px;line-height:1.45em;background:#073642 url('/images/noise.png?1419195603') top left !important;border-right:1px solid #00232c !important;-webkit-box-shadow:#083e4b -1px 0 inset;-moz-box-shadow:#083e4b -1px 0 inset;-ms-box-shadow:#083e4b -1px 0 inset;-o-box-shadow:#083e4b -1px 0 inset;box-shadow:#083e4b -1px 0 inset;text-shadow:#021014 0 -1px;padding:.8em !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.highlight .line-numbers span,html .gist .gist-file .gist-syntax .highlight .line_numbers span{color:#586e75 !important}figure.code,.gist-file,pre{-webkit-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-moz-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-ms-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-o-box-shadow:rgba(0,0,0,0.06) 0 0 10px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}figure.code .highlight pre,.gist-file .highlight pre,pre .highlight pre{-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}.gist .highlight *::-moz-selection,figure.code .highlight *::-moz-selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}.gist .highlight *::-webkit-selection,figure.code .highlight *::-webkit-selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}.gist .highlight *::selection,figure.code .highlight *::selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}html .gist .gist-file{margin-bottom:1.8em;position:relative;border:none;padding-top:26px !important}html .gist .gist-file .highlight{margin-bottom:0}html .gist .gist-file .gist-syntax{border-bottom:0 !important;background:none !important}html .gist .gist-file .gist-syntax .gist-highlight{background:#002b36 !important}html .gist .gist-file .gist-syntax .highlight pre{padding:0}html .gist .gist-file .gist-meta{padding:.6em 0.8em;border:1px solid #083e4b !important;color:#586e75;font-size:.7em !important;background:#073642 url('/images/noise.png?1419195603') top left;line-height:1.5em}html .gist .gist-file .gist-meta a{color:#75878b !important}html .gist .gist-file .gist-meta a:hover{color:#93a1a1 !important}html .gist .gist-file .gist-meta a[href*='#file']{position:absolute;top:0;left:0;right:-10px;color:#474747 !important}html .gist .gist-file .gist-meta a[href*='#file']:hover{color:#049cdb !important}html .gist .gist-file .gist-meta a[href*=raw]{top:.4em}pre{background:#002b36 url('/images/noise.png?1419195603') top left;-webkit-border-radius:0.4em;-moz-border-radius:0.4em;border-radius:0.4em;border:1px solid #05232b;line-height:1.45em;font-size:13px;margin-bottom:2.1em;padding:.8em 1em;color:#93a1a1;overflow:auto}h3.filename+pre{-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}p code,li code{display:inline-block;white-space:no-wrap;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;margin:-1px 0}p pre code,li pre code{font-size:1em !important;background:none;border:none}.pre-code,html .gist .gist-file .gist-syntax .highlight pre,.highlight code{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace !important;overflow:scroll;overflow-y:hidden;display:block;padding:.8em;overflow-x:auto;line-height:1.45em;background:#002b36 url('/images/noise.png?1419195603') top left !important;color:#93a1a1 !important}.pre-code span,html .gist .gist-file .gist-syntax .highlight pre span,.highlight code span{color:#93a1a1 !important}.pre-code span,html .gist .gist-file .gist-syntax .highlight pre span,.highlight code span{font-style:normal !important;font-weight:normal !important}.pre-code .c,html .gist .gist-file .gist-syntax .highlight pre .c,.highlight code .c{color:#586e75 !important;font-style:italic !important}.pre-code .cm,html .gist .gist-file .gist-syntax .highlight pre .cm,.highlight code .cm{color:#586e75 !important;font-style:italic !important}.pre-code .cp,html .gist .gist-file .gist-syntax .highlight pre .cp,.highlight code .cp{color:#586e75 !important;font-style:italic !important}.pre-code .c1,html .gist .gist-file .gist-syntax .highlight pre .c1,.highlight code .c1{color:#586e75 !important;font-style:italic !important}.pre-code .cs,html .gist .gist-file .gist-syntax .highlight pre .cs,.highlight code .cs{color:#586e75 !important;font-weight:bold !important;font-style:italic !important}.pre-code .err,html .gist .gist-file .gist-syntax .highlight pre .err,.highlight code .err{color:#dc322f !important;background:none !important}.pre-code .k,html .gist .gist-file .gist-syntax .highlight pre .k,.highlight code .k{color:#cb4b16 !important}.pre-code .o,html .gist .gist-file .gist-syntax .highlight pre .o,.highlight code .o{color:#93a1a1 !important;font-weight:bold !important}.pre-code .p,html .gist .gist-file .gist-syntax .highlight pre .p,.highlight code .p{color:#93a1a1 !important}.pre-code .ow,html .gist .gist-file .gist-syntax .highlight pre .ow,.highlight code .ow{color:#2aa198 !important;font-weight:bold !important}.pre-code .gd,html .gist .gist-file .gist-syntax .highlight pre .gd,.highlight code .gd{color:#93a1a1 !important;background-color:#372c34 !important;display:inline-block}.pre-code .gd .x,html .gist .gist-file .gist-syntax .highlight pre .gd .x,.highlight code .gd .x{color:#93a1a1 !important;background-color:#4d2d33 !important;display:inline-block}.pre-code .ge,html .gist .gist-file .gist-syntax .highlight pre .ge,.highlight code .ge{color:#93a1a1 !important;font-style:italic !important}.pre-code .gh,html .gist .gist-file .gist-syntax .highlight pre .gh,.highlight code .gh{color:#586e75 !important}.pre-code .gi,html .gist .gist-file .gist-syntax .highlight pre .gi,.highlight code .gi{color:#93a1a1 !important;background-color:#1a412b !important;display:inline-block}.pre-code .gi .x,html .gist .gist-file .gist-syntax .highlight pre .gi .x,.highlight code .gi .x{color:#93a1a1 !important;background-color:#355720 !important;display:inline-block}.pre-code .gs,html .gist .gist-file .gist-syntax .highlight pre .gs,.highlight code .gs{color:#93a1a1 !important;font-weight:bold !important}.pre-code .gu,html .gist .gist-file .gist-syntax .highlight pre .gu,.highlight code .gu{color:#6c71c4 !important}.pre-code .kc,html .gist .gist-file .gist-syntax .highlight pre .kc,.highlight code .kc{color:#859900 !important;font-weight:bold !important}.pre-code .kd,html .gist .gist-file .gist-syntax .highlight pre .kd,.highlight code .kd{color:#268bd2 !important}.pre-code .kp,html .gist .gist-file .gist-syntax .highlight pre .kp,.highlight code .kp{color:#cb4b16 !important;font-weight:bold !important}.pre-code .kr,html .gist .gist-file .gist-syntax .highlight pre .kr,.highlight code .kr{color:#d33682 !important;font-weight:bold !important}.pre-code .kt,html .gist .gist-file .gist-syntax .highlight pre .kt,.highlight code .kt{color:#2aa198 !important}.pre-code .n,html .gist .gist-file .gist-syntax .highlight pre .n,.highlight code .n{color:#268bd2 !important}.pre-code .na,html .gist .gist-file .gist-syntax .highlight pre .na,.highlight code .na{color:#268bd2 !important}.pre-code .nb,html .gist .gist-file .gist-syntax .highlight pre .nb,.highlight code .nb{color:#859900 !important}.pre-code .nc,html .gist .gist-file .gist-syntax .highlight pre .nc,.highlight code .nc{color:#d33682 !important}.pre-code .no,html .gist .gist-file .gist-syntax .highlight pre .no,.highlight code .no{color:#b58900 !important}.pre-code .nl,html .gist .gist-file .gist-syntax .highlight pre .nl,.highlight code .nl{color:#859900 !important}.pre-code .ne,html .gist .gist-file .gist-syntax .highlight pre .ne,.highlight code .ne{color:#268bd2 !important;font-weight:bold !important}.pre-code .nf,html .gist .gist-file .gist-syntax .highlight pre .nf,.highlight code .nf{color:#268bd2 !important;font-weight:bold !important}.pre-code .nn,html .gist .gist-file .gist-syntax .highlight pre .nn,.highlight code .nn{color:#b58900 !important}.pre-code .nt,html .gist .gist-file .gist-syntax .highlight pre .nt,.highlight code .nt{color:#268bd2 !important;font-weight:bold !important}.pre-code .nx,html .gist .gist-file .gist-syntax .highlight pre .nx,.highlight code .nx{color:#b58900 !important}.pre-code .vg,html .gist .gist-file .gist-syntax .highlight pre .vg,.highlight code .vg{color:#268bd2 !important}.pre-code .vi,html .gist .gist-file .gist-syntax .highlight pre .vi,.highlight code .vi{color:#268bd2 !important}.pre-code .nv,html .gist .gist-file .gist-syntax .highlight pre .nv,.highlight code .nv{color:#268bd2 !important}.pre-code .mf,html .gist .gist-file .gist-syntax .highlight pre .mf,.highlight code .mf{color:#2aa198 !important}.pre-code .m,html .gist .gist-file .gist-syntax .highlight pre .m,.highlight code .m{color:#2aa198 !important}.pre-code .mh,html .gist .gist-file .gist-syntax .highlight pre .mh,.highlight code .mh{color:#2aa198 !important}.pre-code .mi,html .gist .gist-file .gist-syntax .highlight pre .mi,.highlight code .mi{color:#2aa198 !important}.pre-code .s,html .gist .gist-file .gist-syntax .highlight pre .s,.highlight code .s{color:#2aa198 !important}.pre-code .sd,html .gist .gist-file .gist-syntax .highlight pre .sd,.highlight code .sd{color:#2aa198 !important}.pre-code .s2,html .gist .gist-file .gist-syntax .highlight pre .s2,.highlight code .s2{color:#2aa198 !important}.pre-code .se,html .gist .gist-file .gist-syntax .highlight pre .se,.highlight code .se{color:#dc322f !important}.pre-code .si,html .gist .gist-file .gist-syntax .highlight pre .si,.highlight code .si{color:#268bd2 !important}.pre-code .sr,html .gist .gist-file .gist-syntax .highlight pre .sr,.highlight code .sr{color:#2aa198 !important}.pre-code .s1,html .gist .gist-file .gist-syntax .highlight pre .s1,.highlight code .s1{color:#2aa198 !important}.pre-code div .gd,html .gist .gist-file .gist-syntax .highlight pre div .gd,.highlight code div .gd,.pre-code div .gd .x,html .gist .gist-file .gist-syntax .highlight pre div .gd .x,.highlight code div .gd .x,.pre-code div .gi,html .gist .gist-file .gist-syntax .highlight pre div .gi,.highlight code div .gi,.pre-code div .gi .x,html .gist .gist-file .gist-syntax .highlight pre div .gi .x,.highlight code div .gi .x{display:inline-block;width:100%}.highlight,.gist-highlight{margin-bottom:1.8em;background:#002b36;overflow-y:hidden;overflow-x:auto}.highlight pre,.gist-highlight pre{background:none;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;border:none;padding:0;margin-bottom:0}pre::-webkit-scrollbar,.highlight::-webkit-scrollbar,.gist-highlight::-webkit-scrollbar{height:.5em;background:rgba(255,255,255,0.15)}pre::-webkit-scrollbar-thumb:horizontal,.highlight::-webkit-scrollbar-thumb:horizontal,.gist-highlight::-webkit-scrollbar-thumb:horizontal{background:rgba(255,255,255,0.2);-webkit-border-radius:4px;border-radius:4px}.highlight code{background:#000}figure.code{background:none;padding:0;border:0;margin-bottom:1.5em}figure.code pre{margin-bottom:0}figure.code figcaption{position:relative}figure.code .highlight{margin-bottom:0}.code-title,html .gist .gist-file .gist-meta a[href*='#file'],h3.filename,figure.code figcaption{text-align:center;font-size:13px;line-height:2em;text-shadow:#cbcccc 0 1px 0;color:#474747;font-weight:normal;margin-bottom:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;font-family:"Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif;background:#aaa url('/images/code_bg.png?1419195603') top repeat-x;border:1px solid #565656;border-top-color:#cbcbcb;border-left-color:#a5a5a5;border-right-color:#a5a5a5;border-bottom:0}.download-source,html .gist .gist-file .gist-meta a[href*=raw],figure.code figcaption a{position:absolute;right:.8em;color:#666 !important;z-index:1;font-size:13px;text-shadow:#cbcccc 0 1px 0;padding-left:3em}@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{background-color:#333;margin-bottom:16px;display:inline-block;padding:8px;color:#DDD}.hero .front-install .sh{color:#c82829}.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}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} + */@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}.sans,html .gist .gist-file .gist-meta{font-family:"Helvetica Neue",Arial,sans-serif}.mono,pre,p code,li code{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace}.highlight table{margin-bottom:0}.highlight .gutter,.highlight .code{padding:0}.highlight .gutter .line-number{display:block}.highlight,html .gist .gist-file .gist-syntax .gist-highlight{border:1px solid #05232b !important}.highlight table td.code,html .gist .gist-file .gist-syntax .gist-highlight table td.code{width:100%}.highlight .line-numbers,html .gist .gist-file .gist-syntax .highlight .line_numbers{text-align:right;font-size:13px;line-height:1.45em;background:#073642 url('/images/noise.png?1419195603') top left !important;border-right:1px solid #00232c !important;-webkit-box-shadow:#083e4b -1px 0 inset;-moz-box-shadow:#083e4b -1px 0 inset;-ms-box-shadow:#083e4b -1px 0 inset;-o-box-shadow:#083e4b -1px 0 inset;box-shadow:#083e4b -1px 0 inset;text-shadow:#021014 0 -1px;padding:.8em !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.highlight .line-numbers span,html .gist .gist-file .gist-syntax .highlight .line_numbers span{color:#586e75 !important}figure.code,.gist-file,pre{-webkit-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-moz-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-ms-box-shadow:rgba(0,0,0,0.06) 0 0 10px;-o-box-shadow:rgba(0,0,0,0.06) 0 0 10px;box-shadow:rgba(0,0,0,0.06) 0 0 10px}figure.code .highlight pre,.gist-file .highlight pre,pre .highlight pre{-webkit-box-shadow:none;-moz-box-shadow:none;-ms-box-shadow:none;-o-box-shadow:none;box-shadow:none}.gist .highlight *::-moz-selection,figure.code .highlight *::-moz-selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}.gist .highlight *::-webkit-selection,figure.code .highlight *::-webkit-selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}.gist .highlight *::selection,figure.code .highlight *::selection{background:#386774;color:inherit;text-shadow:#002b36 0 1px}html .gist .gist-file{margin-bottom:1.8em;position:relative;border:none;padding-top:26px !important}html .gist .gist-file .highlight{margin-bottom:0}html .gist .gist-file .gist-syntax{border-bottom:0 !important;background:none !important}html .gist .gist-file .gist-syntax .gist-highlight{background:#002b36 !important}html .gist .gist-file .gist-syntax .highlight pre{padding:0}html .gist .gist-file .gist-meta{padding:.6em 0.8em;border:1px solid #083e4b !important;color:#586e75;font-size:.7em !important;background:#073642 url('/images/noise.png?1419195603') top left;line-height:1.5em}html .gist .gist-file .gist-meta a{color:#75878b !important}html .gist .gist-file .gist-meta a:hover{color:#93a1a1 !important}html .gist .gist-file .gist-meta a[href*='#file']{position:absolute;top:0;left:0;right:-10px;color:#474747 !important}html .gist .gist-file .gist-meta a[href*='#file']:hover{color:#049cdb !important}html .gist .gist-file .gist-meta a[href*=raw]{top:.4em}pre{background:#002b36 url('/images/noise.png?1419195603') top left;-webkit-border-radius:0.4em;-moz-border-radius:0.4em;border-radius:0.4em;border:1px solid #05232b;line-height:1.45em;font-size:13px;margin-bottom:2.1em;padding:.8em 1em;color:#93a1a1;overflow:auto}h3.filename+pre{-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px}p code,li code{display:inline-block;white-space:no-wrap;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;margin:-1px 0}p pre code,li pre code{font-size:1em !important;background:none;border:none}.pre-code,html .gist .gist-file .gist-syntax .highlight pre,.highlight code{font-family:Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace !important;overflow:scroll;overflow-y:hidden;display:block;padding:.8em;overflow-x:auto;line-height:1.45em;background:#002b36 url('/images/noise.png?1419195603') top left !important;color:#93a1a1 !important}.pre-code span,html .gist .gist-file .gist-syntax .highlight pre span,.highlight code span{color:#93a1a1 !important}.pre-code span,html .gist .gist-file .gist-syntax .highlight pre span,.highlight code span{font-style:normal !important;font-weight:normal !important}.pre-code .c,html .gist .gist-file .gist-syntax .highlight pre .c,.highlight code .c{color:#586e75 !important;font-style:italic !important}.pre-code .cm,html .gist .gist-file .gist-syntax .highlight pre .cm,.highlight code .cm{color:#586e75 !important;font-style:italic !important}.pre-code .cp,html .gist .gist-file .gist-syntax .highlight pre .cp,.highlight code .cp{color:#586e75 !important;font-style:italic !important}.pre-code .c1,html .gist .gist-file .gist-syntax .highlight pre .c1,.highlight code .c1{color:#586e75 !important;font-style:italic !important}.pre-code .cs,html .gist .gist-file .gist-syntax .highlight pre .cs,.highlight code .cs{color:#586e75 !important;font-weight:bold !important;font-style:italic !important}.pre-code .err,html .gist .gist-file .gist-syntax .highlight pre .err,.highlight code .err{color:#dc322f !important;background:none !important}.pre-code .k,html .gist .gist-file .gist-syntax .highlight pre .k,.highlight code .k{color:#cb4b16 !important}.pre-code .o,html .gist .gist-file .gist-syntax .highlight pre .o,.highlight code .o{color:#93a1a1 !important;font-weight:bold !important}.pre-code .p,html .gist .gist-file .gist-syntax .highlight pre .p,.highlight code .p{color:#93a1a1 !important}.pre-code .ow,html .gist .gist-file .gist-syntax .highlight pre .ow,.highlight code .ow{color:#2aa198 !important;font-weight:bold !important}.pre-code .gd,html .gist .gist-file .gist-syntax .highlight pre .gd,.highlight code .gd{color:#93a1a1 !important;background-color:#372c34 !important;display:inline-block}.pre-code .gd .x,html .gist .gist-file .gist-syntax .highlight pre .gd .x,.highlight code .gd .x{color:#93a1a1 !important;background-color:#4d2d33 !important;display:inline-block}.pre-code .ge,html .gist .gist-file .gist-syntax .highlight pre .ge,.highlight code .ge{color:#93a1a1 !important;font-style:italic !important}.pre-code .gh,html .gist .gist-file .gist-syntax .highlight pre .gh,.highlight code .gh{color:#586e75 !important}.pre-code .gi,html .gist .gist-file .gist-syntax .highlight pre .gi,.highlight code .gi{color:#93a1a1 !important;background-color:#1a412b !important;display:inline-block}.pre-code .gi .x,html .gist .gist-file .gist-syntax .highlight pre .gi .x,.highlight code .gi .x{color:#93a1a1 !important;background-color:#355720 !important;display:inline-block}.pre-code .gs,html .gist .gist-file .gist-syntax .highlight pre .gs,.highlight code .gs{color:#93a1a1 !important;font-weight:bold !important}.pre-code .gu,html .gist .gist-file .gist-syntax .highlight pre .gu,.highlight code .gu{color:#6c71c4 !important}.pre-code .kc,html .gist .gist-file .gist-syntax .highlight pre .kc,.highlight code .kc{color:#859900 !important;font-weight:bold !important}.pre-code .kd,html .gist .gist-file .gist-syntax .highlight pre .kd,.highlight code .kd{color:#268bd2 !important}.pre-code .kp,html .gist .gist-file .gist-syntax .highlight pre .kp,.highlight code .kp{color:#cb4b16 !important;font-weight:bold !important}.pre-code .kr,html .gist .gist-file .gist-syntax .highlight pre .kr,.highlight code .kr{color:#d33682 !important;font-weight:bold !important}.pre-code .kt,html .gist .gist-file .gist-syntax .highlight pre .kt,.highlight code .kt{color:#2aa198 !important}.pre-code .n,html .gist .gist-file .gist-syntax .highlight pre .n,.highlight code .n{color:#268bd2 !important}.pre-code .na,html .gist .gist-file .gist-syntax .highlight pre .na,.highlight code .na{color:#268bd2 !important}.pre-code .nb,html .gist .gist-file .gist-syntax .highlight pre .nb,.highlight code .nb{color:#859900 !important}.pre-code .nc,html .gist .gist-file .gist-syntax .highlight pre .nc,.highlight code .nc{color:#d33682 !important}.pre-code .no,html .gist .gist-file .gist-syntax .highlight pre .no,.highlight code .no{color:#b58900 !important}.pre-code .nl,html .gist .gist-file .gist-syntax .highlight pre .nl,.highlight code .nl{color:#859900 !important}.pre-code .ne,html .gist .gist-file .gist-syntax .highlight pre .ne,.highlight code .ne{color:#268bd2 !important;font-weight:bold !important}.pre-code .nf,html .gist .gist-file .gist-syntax .highlight pre .nf,.highlight code .nf{color:#268bd2 !important;font-weight:bold !important}.pre-code .nn,html .gist .gist-file .gist-syntax .highlight pre .nn,.highlight code .nn{color:#b58900 !important}.pre-code .nt,html .gist .gist-file .gist-syntax .highlight pre .nt,.highlight code .nt{color:#268bd2 !important;font-weight:bold !important}.pre-code .nx,html .gist .gist-file .gist-syntax .highlight pre .nx,.highlight code .nx{color:#b58900 !important}.pre-code .vg,html .gist .gist-file .gist-syntax .highlight pre .vg,.highlight code .vg{color:#268bd2 !important}.pre-code .vi,html .gist .gist-file .gist-syntax .highlight pre .vi,.highlight code .vi{color:#268bd2 !important}.pre-code .nv,html .gist .gist-file .gist-syntax .highlight pre .nv,.highlight code .nv{color:#268bd2 !important}.pre-code .mf,html .gist .gist-file .gist-syntax .highlight pre .mf,.highlight code .mf{color:#2aa198 !important}.pre-code .m,html .gist .gist-file .gist-syntax .highlight pre .m,.highlight code .m{color:#2aa198 !important}.pre-code .mh,html .gist .gist-file .gist-syntax .highlight pre .mh,.highlight code .mh{color:#2aa198 !important}.pre-code .mi,html .gist .gist-file .gist-syntax .highlight pre .mi,.highlight code .mi{color:#2aa198 !important}.pre-code .s,html .gist .gist-file .gist-syntax .highlight pre .s,.highlight code .s{color:#2aa198 !important}.pre-code .sd,html .gist .gist-file .gist-syntax .highlight pre .sd,.highlight code .sd{color:#2aa198 !important}.pre-code .s2,html .gist .gist-file .gist-syntax .highlight pre .s2,.highlight code .s2{color:#2aa198 !important}.pre-code .se,html .gist .gist-file .gist-syntax .highlight pre .se,.highlight code .se{color:#dc322f !important}.pre-code .si,html .gist .gist-file .gist-syntax .highlight pre .si,.highlight code .si{color:#268bd2 !important}.pre-code .sr,html .gist .gist-file .gist-syntax .highlight pre .sr,.highlight code .sr{color:#2aa198 !important}.pre-code .s1,html .gist .gist-file .gist-syntax .highlight pre .s1,.highlight code .s1{color:#2aa198 !important}.pre-code div .gd,html .gist .gist-file .gist-syntax .highlight pre div .gd,.highlight code div .gd,.pre-code div .gd .x,html .gist .gist-file .gist-syntax .highlight pre div .gd .x,.highlight code div .gd .x,.pre-code div .gi,html .gist .gist-file .gist-syntax .highlight pre div .gi,.highlight code div .gi,.pre-code div .gi .x,html .gist .gist-file .gist-syntax .highlight pre div .gi .x,.highlight code div .gi .x{display:inline-block;width:100%}.highlight,.gist-highlight{margin-bottom:1.8em;background:#002b36;overflow-y:hidden;overflow-x:auto}.highlight pre,.gist-highlight pre{background:none;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;border:none;padding:0;margin-bottom:0}pre::-webkit-scrollbar,.highlight::-webkit-scrollbar,.gist-highlight::-webkit-scrollbar{height:.5em;background:rgba(255,255,255,0.15)}pre::-webkit-scrollbar-thumb:horizontal,.highlight::-webkit-scrollbar-thumb:horizontal,.gist-highlight::-webkit-scrollbar-thumb:horizontal{background:rgba(255,255,255,0.2);-webkit-border-radius:4px;border-radius:4px}.highlight code{background:#000}figure.code{background:none;padding:0;border:0;margin-bottom:1.5em}figure.code pre{margin-bottom:0}figure.code figcaption{position:relative}figure.code .highlight{margin-bottom:0}.code-title,html .gist .gist-file .gist-meta a[href*='#file'],h3.filename,figure.code figcaption{text-align:center;font-size:13px;line-height:2em;text-shadow:#cbcccc 0 1px 0;color:#474747;font-weight:normal;margin-bottom:0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;font-family:"Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif;background:#aaa url('/images/code_bg.png?1419195603') top repeat-x;border:1px solid #565656;border-top-color:#cbcbcb;border-left-color:#a5a5a5;border-right-color:#a5a5a5;border-bottom:0}.download-source,html .gist .gist-file .gist-meta a[href*=raw],figure.code figcaption a{position:absolute;right:.8em;color:#666 !important;z-index:1;font-size:13px;text-shadow:#cbcccc 0 1px 0;padding-left:3em}@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{background-color:#333;margin-bottom:16px;display:inline-block;padding:8px;color:#DDD}.hero .front-install .sh{color:#c82829}.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}