diff --git a/.github/move.yml b/.github/move.yml
new file mode 100644
index 00000000000..e041083c9ae
--- /dev/null
+++ b/.github/move.yml
@@ -0,0 +1,13 @@
+# Configuration for move-issues - https://github.com/dessant/move-issues
+
+# Delete the command comment. Ignored when the comment also contains other content
+deleteCommand: true
+# Close the source issue after moving
+closeSourceIssue: true
+# Lock the source issue after moving
+lockSourceIssue: false
+# Set custom aliases for targets
+# aliases:
+# r: repo
+# or: owner/repo
+
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png
index c2824cc432c..e932cb09a99 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png
index 77cd829a4b5..021685f4b0a 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png
index e06aa50ca29..9d3291e8e59 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
index d2bc4fc75a8..ef55acc7ca4 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png
index 96fe7bb0242..091cc054a2a 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png
index 22295074029..f7c23cd5ba1 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
index 15db44d4e66..1f6aebd73ae 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png
index e399bf34cb9..e6ab8aa55a3 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png
index 409d89d29a3..8dcf0c5bfcc 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png
index 3fe284845fa..6898116a3b7 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png
index 73b371abbca..5e151d69c8c 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
index 72322171bd5..e89fc5c6afc 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png
index 626444a66a7..ae47e9018b3 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png
index 27851dfdf36..63692be0b75 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png
index 3658453cfc1..6433b4d476a 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png
index 138ebb35ba8..206be887e0a 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png and b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/display/background.png b/.themes/classic/source/assets/jwplayer/glow/display/background.png
index 391152f5e2f..eb7c709d39b 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/display/background.png and b/.themes/classic/source/assets/jwplayer/glow/display/background.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png
index a3819c1ef19..10ae39736ad 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png and b/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png
index e0408bbda5e..8e078ae4387 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png and b/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png
index cb384278722..269e4311bcb 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png and b/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/dock/button.png b/.themes/classic/source/assets/jwplayer/glow/dock/button.png
index 391152f5e2f..eb7c709d39b 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/dock/button.png and b/.themes/classic/source/assets/jwplayer/glow/dock/button.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/playlist/item.png b/.themes/classic/source/assets/jwplayer/glow/playlist/item.png
index 812592c3ce5..825911836fb 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/playlist/item.png and b/.themes/classic/source/assets/jwplayer/glow/playlist/item.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png b/.themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png
index 549f3721d6b..cbb7e34d85f 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png and b/.themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png
index 048cc623be9..61c6dfbbba0 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png and b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png
index 65c463a0c04..4d6dae6290f 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png and b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png
index 121778affdc..2b455a6ff85 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png and b/.themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png b/.themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png
index b4059754baf..dabce156c23 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png and b/.themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png b/.themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png
index eae1d4e7559..b659a20c3b5 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png and b/.themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png differ
diff --git a/.themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png b/.themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png
index 695ec949f86..2435d3777eb 100644
Binary files a/.themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png and b/.themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png differ
diff --git a/.themes/classic/source/favicon.png b/.themes/classic/source/favicon.png
index 0f250673059..2ad3a59140c 100644
Binary files a/.themes/classic/source/favicon.png and b/.themes/classic/source/favicon.png differ
diff --git a/.themes/classic/source/images/bird_32_gray.png b/.themes/classic/source/images/bird_32_gray.png
index 574f210aec4..cf2cb22d97d 100644
Binary files a/.themes/classic/source/images/bird_32_gray.png and b/.themes/classic/source/images/bird_32_gray.png differ
diff --git a/.themes/classic/source/images/bird_32_gray_fail.png b/.themes/classic/source/images/bird_32_gray_fail.png
index 8337d10317a..d6259651482 100644
Binary files a/.themes/classic/source/images/bird_32_gray_fail.png and b/.themes/classic/source/images/bird_32_gray_fail.png differ
diff --git a/.themes/classic/source/images/code_bg.png b/.themes/classic/source/images/code_bg.png
index a57bab56a1b..ebd3acfa9b7 100644
Binary files a/.themes/classic/source/images/code_bg.png and b/.themes/classic/source/images/code_bg.png differ
diff --git a/.themes/classic/source/images/dotted-border.png b/.themes/classic/source/images/dotted-border.png
index 57f99071a5a..d19b60c9f6b 100644
Binary files a/.themes/classic/source/images/dotted-border.png and b/.themes/classic/source/images/dotted-border.png differ
diff --git a/.themes/classic/source/images/email.png b/.themes/classic/source/images/email.png
index e55473fef7b..9100c8bb194 100644
Binary files a/.themes/classic/source/images/email.png and b/.themes/classic/source/images/email.png differ
diff --git a/.themes/classic/source/images/line-tile.png b/.themes/classic/source/images/line-tile.png
index f67ee19fdc9..9247c3b1f5c 100644
Binary files a/.themes/classic/source/images/line-tile.png and b/.themes/classic/source/images/line-tile.png differ
diff --git a/.themes/classic/source/images/noise.png b/.themes/classic/source/images/noise.png
index 432e05bfd1a..46cdf03fdf2 100644
Binary files a/.themes/classic/source/images/noise.png and b/.themes/classic/source/images/noise.png differ
diff --git a/.themes/classic/source/images/rss.png b/.themes/classic/source/images/rss.png
index 151ae718ebf..037ce65db15 100644
Binary files a/.themes/classic/source/images/rss.png and b/.themes/classic/source/images/rss.png differ
diff --git a/.themes/classic/source/images/search.png b/.themes/classic/source/images/search.png
index 1220ff4e261..d0e1b1908bb 100644
Binary files a/.themes/classic/source/images/search.png and b/.themes/classic/source/images/search.png differ
diff --git a/Gemfile b/Gemfile
index c30860255d8..d7b8fe661d0 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,5 +1,7 @@
source "https://rubygems.org"
+ruby "> 2.3.0"
+
group :development do
gem 'rake', '~> 10.0'
gem 'jekyll', '~> 3.0'
@@ -7,6 +9,9 @@ group :development do
gem 'sass-globbing', '~> 1.0'
gem 'stringex', '~> 1.4'
gem 'pry'
+
+ # See https://github.com/home-assistant/home-assistant.github.io/pull/3904
+ gem 'rb-inotify', '< 0.9.9'
end
group :jekyll_plugins do
diff --git a/Gemfile.lock b/Gemfile.lock
index d706705eb30..4a9684644f8 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -73,8 +73,8 @@ GEM
rack
rake (10.5.0)
rb-fsevent (0.10.2)
- rb-inotify (0.9.10)
- ffi (>= 0.5.0, < 2)
+ rb-inotify (0.9.8)
+ ffi (>= 0.5.0)
redcarpet (3.4.0)
rouge (1.11.1)
safe_yaml (1.0.4)
@@ -104,9 +104,13 @@ DEPENDENCIES
octopress-include-tag
pry
rake (~> 10.0)
+ rb-inotify (< 0.9.9)
sass-globbing (~> 1.0)
sinatra (~> 1.4.2)
stringex (~> 1.4)
+RUBY VERSION
+ ruby 2.4.1p111
+
BUNDLED WITH
1.15.4
diff --git a/README.markdown b/README.markdown
index e055c8e3369..d3a630cb1ea 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
[](https://discord.gg/CxqDrfU)
[](https://travis-ci.org/home-assistant/home-assistant.github.io)
[](http://www.krihelinator.xyz)
-[](https://opensource.org/licenses/MIT)
+[](https://creativecommons.org/licenses/by-nc-sa/4.0/)
# Home Assistant website
diff --git a/_config.yml b/_config.yml
index 69312dd7804..fb491ec4791 100644
--- a/_config.yml
+++ b/_config.yml
@@ -139,12 +139,12 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 57
-current_patch_version: 2
-date_released: 2017-11-05
+current_minor_version: 61
+current_patch_version: 1
+date_released: 2018-01-16
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
# Major release:
-patch_version_notes: "#release-0572--november-5"
+patch_version_notes: "#release-0611---january-16"
# Minor release (Example #release-0431---april-25):
diff --git a/credits_generator/README.md b/credits_generator/README.md
index 03c187d2d8a..ee89f678174 100644
--- a/credits_generator/README.md
+++ b/credits_generator/README.md
@@ -3,11 +3,17 @@ credits_generator
This tool can be used to update the [Home Assistant's Credits page](https://home-assistant.io/developers/credits/).
+Setup
+-----
+
```bash
$ cd credits_generator
$ npm install
```
+Usage
+-----
+
Set your personal GitHub access token as environmental variable.
```bash
@@ -17,6 +23,7 @@ $ export GITHUB_TOKEN=
+You should only use this add-on if you do not have an existing configuration or if your existing configuration is already in a git repository. If the script does not find the necessary git files in your configuration folder, it will delete anything that might be there. Please ensure that there is a `.git` folder before using this. You can verify this by listing the items in the configuration folder including hidden files. The command is `ls -a /config`.
+
+ If you are wanting to integrate your Google Home, or mobile phone running Google Assistant, with Home Assistant then you want the [Google Assistant component](https://home-assistant.io/components/google_assistant/).
+
-This add-on uses ports 80/443 to verify the certificate request. You will need to stop all other add-ons that also use these ports. If you don't need a port (like with https you don't need port 80) you can remove this from network config.
-
+ Use [Home Assistant Cloud](/components/cloud/) to integrate with Alexa without any effort.
+
+
+It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.
+
-Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
-
+Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.
+
-If you are using Python 3.6, you might need to replace the 34m with 36m in the _gi.*.so filename in the gi folder.
-
Any specific levels for triggers needs to be configured on the device.
- You must have the [DoorBird component](/components/doorbird/) configured to use this binary sensor.
-
+Full configuration details can be found on the main [Hive component](/components/hive/) page.
+
If you set `show_on_map` `True` then the location attributes are named `latitude` and `longitude`. The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
diff --git a/source/_components/binary_sensor.markdown b/source/_components/binary_sensor.markdown
index afc028a2bcb..781f4f45576 100644
--- a/source/_components/binary_sensor.markdown
+++ b/source/_components/binary_sensor.markdown
@@ -14,21 +14,27 @@ Binary sensors gather information about the state of devices which have a "digit
The way these sensors are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for binary sensors:
- **None**: Generic on/off. This is the default and doesn't need to be set.
-- **cold**: `On` means cold
-- **connectivity**: `On` means connection present, `Off` means no connection
-- **gas**: `On` means gas detected
-- **heat**: `On` means hot
-- **light**: Lightness threshold
-- **moisture**: `On` means wet
-- **motion**: `On` means motion detected
-- **moving**: `On` means moving, `Off` means stopped
-- **occupancy**: `On` means occupied, `Off` means not occupied
+- **battery**: `On` means low, `Off` means normal
+- **cold**: `On` means cold, `Off` means normal
+- **connectivity**: `On` means connected, `Off` means disconnected
+- **door**: `On` means open, `Off` means closed
+- **garage_door**: `On` means open, `Off` means closed
+- **gas**: `On` means gas detected, `Off` means no gas (clear)
+- **heat**: `On` means hot, `Off` means normal
+- **light**: `On` means light detected, `Off` means no light
+- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry)
+- **motion**: `On` means motion detected, `Off` means no motion (clear)
+- **moving**: `On` means moving, `Off` means not moving (stopped)
+- **occupancy**: `On` means occupied, `Off` means not occupied (clear)
- **opening**: `On` means open, `Off` means closed
- **plug**: `On` means device is plugged in, `Off` means device is unplugged
-- **power**: Power, over-current, etc.
+- **power**: `On` means power detected, `Off` means no power
+- **presence**: `On` means home, `Off` means away
+- **problem**: `On` means problem detected, `Off` means no problem (OK)
- **safety**: `On` means unsafe, `Off` means safe
-- **smoke**: `On` means smoke detected
-- **sound**: `On` means sound detected, `Off` means no sound
-- **vibration**: `On` means vibration detected, `Off` means no vibration
+- **smoke**: `On` means smoke detected, `Off` means no smoke (clear)
+- **sound**: `On` means sound detected, `Off` means no sound (clear)
+- **vibration**: `On` means vibration detected, `Off` means no vibration (clear)
+- **window**: `On` means open, `Off` means closed
For analog sensors please check the [component overview](https://home-assistant.io/components/#sensor).
diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown
index 3b1ff864534..65058598382 100644
--- a/source/_components/binary_sensor.mqtt.markdown
+++ b/source/_components/binary_sensor.mqtt.markdown
@@ -29,18 +29,54 @@ binary_sensor:
state_topic: "home-assistant/window/contact"
```
-Configuration variables:
-
-- **name** (*Optional*): The name of the binary sensor. Default is `MQTT Binary Sensor`.
-- **state_topic** (*Required*): The MQTT topic subscribed to receive sensor values.
-- **payload_on** (*Optional*): The payload that represents the on state. Default is `ON`.
-- **payload_off** (*Optional*): The payload that represents the off state. Default is `OFF`.
-- **availability_topic** (*Optional*): The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default.
-- **payload_available** (*Optional*): The payload that represents the online state. Default is `online`.
-- **payload_not_available** (*Optional*): The payload that represents the offline state. Default is `offline`.
-- **qos** (*Optional*): The maximum QoS level to be used when receiving messages. Default is `0`.
-- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
-- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
+{% configuration %}
+name:
+ description: The name of the binary sensor.
+ required: false
+ type: string
+ default: MQTT Binary Sensor
+state_topic:
+ description: The MQTT topic subscribed to receive sensor values.
+ required: true
+ type: string
+payload_on:
+ description: The payload that represents the on state.
+ required: false
+ type: string
+ default: ON
+payload_off:
+ description: The payload that represents the off state.
+ required: false
+ type: string
+ default: OFF
+availability_topic:
+ description: "The MQTT topic subscribed to receive birth and LWT messages from the MQTT device. If `availability_topic` is not defined, the binary sensor availability state will always be `available`. If `availability_topic` is defined, the binary sensor availability state will be `unavailable` by default."
+ required: false
+ type: string
+payload_available:
+ description: The payload that represents the online state.
+ required: false
+ type: string
+ default: online
+payload_not_available:
+ description: The payload that represents the offline state.
+ required: false
+ type: string
+ default: offline
+qos:
+ description: The maximum QoS level to be used when receiving messages.
+ required: false
+ type: integer
+ default: 0
+device_class:
+ description: "The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend."
+ required: false
+ type: string
+value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
+ required: false
+ type: string
+{% endconfiguration %}
To test, you can use the command line tool `mosquitto_pub` shipped with `mosquitto` or the `mosquitto-clients` package to send MQTT messages. To set the state of the binary sensor manually:
diff --git a/source/_components/binary_sensor.random.markdown b/source/_components/binary_sensor.random.markdown
index 7376d6254d9..ea8de4b90cc 100644
--- a/source/_components/binary_sensor.random.markdown
+++ b/source/_components/binary_sensor.random.markdown
@@ -25,10 +25,10 @@ binary_sensor:
```
{% configuration %}
- name:
- description: Name to use in the frontend.
- required: false
- type: string
+name:
+ description: Name to use in the frontend.
+ required: false
+ type: string
{% endconfiguration %}
See the [entity component options](/docs/configuration/platform_options/) to control how often the main component polls the random binary sensor. The default is 30 seconds.
diff --git a/source/_components/binary_sensor.rest.markdown b/source/_components/binary_sensor.rest.markdown
index 0a5c789d36e..4739781d2fb 100644
--- a/source/_components/binary_sensor.rest.markdown
+++ b/source/_components/binary_sensor.rest.markdown
@@ -47,25 +47,61 @@ binary_sensor:
method: POST
```
-Configuration variables:
-
-- **resource** (*Required*): The resource or endpoint that contains the value.
-- **method** (*Optional*): The method of the request. Default is GET.
-- **name** (*Optional*): Name of the REST binary sensor.
-- **device_class** (*Optional*): The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend.
-- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value.
-- **payload** (*Optional*): The payload to send with a POST request. Usually formed as a dictionary.
-- **verify_ssl** (*Optional*): Verify the certification of the endpoint. Default to True.
-- **authentication** (*Optional*): Type of the HTTP authentication. `basic` or `digest`.
-- **username** (*Optional*): The username for accessing the REST endpoint.
-- **password** (*Optional*): The password for accessing the REST endpoint.
-- **headers** (*Optional*): The headers for the requests.
+{% configuration %}
+resource:
+ description: The resource or endpoint that contains the value.
+ required: true
+ type: string
+ default: string
+method:
+ description: The method of the request.
+ required: false
+ type: string
+ default: GET
+name:
+ description: Name of the REST binary sensor.
+ required: false
+ type: string
+ default: REST Binary Sensor
+device_class:
+ description: "The [type/class](/components/binary_sensor/) of the sensor to set the icon in the frontend."
+ required: false
+ type: string
+value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
+ required: false
+ type: template
+payload:
+ description: The payload to send with a POST request. Usually formed as a dictionary.
+ required: false
+ type: string
+verify_ssl:
+ description: Verify the certification of the endpoint.
+ required: false
+ type: boolean
+ default: True
+authentication:
+ description: Type of the HTTP authentication. `basic` or `digest`.
+ required: false
+ type: string
+username:
+ description: The username for accessing the REST endpoint.
+ required: false
+ type: string
+password:
+ description: The password for accessing the REST endpoint.
+ required: false
+ type: string
+headers:
+ description: The headers for the requests.
+ required: false
+ type: list, string
+{% endconfiguration %}
Make sure that the URL exactly matches your endpoint or resource.
+If you use the sensor for Norway (`NO`) you need to wrap `NO`in quotes or write the name in full. Otherwise the value is evaluated as `False`.
If you use the sensor for Canada (`CA`) with Ontario (`ON`) as `province:` then you need to wrap `ON` in quotes. Otherwise the value is evaluated as `True` (check the YAML documentation for further details) and the sensor will not work.
You must have the [DoorBird component](/components/doorbird/) configured to use this camera.
@@ -26,7 +26,3 @@ To enable the camera, add the following to your `configuration.yaml` file:
camera:
- platform: doorbird
```
-
-Configuration variables:
-
-- **last_visitor** (*Optional*): Adds a second camera that shows the last picture taken when someone rang the doorbell. Default is `false`.
diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown
index 69637387a44..c6f41ac3376 100644
--- a/source/_components/camera.generic.markdown
+++ b/source/_components/camera.generic.markdown
@@ -16,7 +16,7 @@ ha_iot_class: "depends"
The `generic` camera platform allows you to integrate any IP camera or other URL into Home Assistant. Templates can be used to generate the URLs on the fly.
-Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`.
+Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`.
To enable this camera in your installation, add the following to your `configuration.yaml` file:
@@ -57,3 +57,14 @@ camera:
still_image_url: https://www.yr.no/place/Norway/Oslo/Oslo/Oslo/meteogram.svg
content_type: 'image/svg+xml'
```
+
+### {% linkable_title Local image with Hass.io %}
+
+You can show an static image with this platform. Just place the image here: `/config/www/your_image.png`
+
+```yaml
+camera:
+ - platform: generic
+ name: Some Image
+ still_image_url: https://127.0.0.1:8123/local/your_image.png
+```
diff --git a/source/_components/camera.markdown b/source/_components/camera.markdown
index e0dee527ad6..21629b68d86 100644
--- a/source/_components/camera.markdown
+++ b/source/_components/camera.markdown
@@ -45,6 +45,18 @@ Take a snapshot from a camera.
The path part of `filename` must be an entry in the `whitelist_external_dirs` in your [`homeassistant:`](/docs/configuration/basic/) section of your `configuration.yaml` file.
+For example, the following action in an automation would take a snapshot from "yourcamera" and save it to /tmp with a timestamped filename.
+
+{% raw %}
+```yaml
+action:
+ service: camera.snapshot
+ data:
+ entity_id: camera.yourcamera
+ filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
+```
+{% endraw %}
+
### {% linkable_title Test if it works %}
A simple way to test if you have set up your `camera` platform correctly, is to use
+Currently, version 0.1.4-beta2 of the custom firmware is the highest supported. Firmwares higher than this version use [Pure-FTPd](https://www.pureftpd.org/project/pure-ftpd), which has a bug that prevents FFmpeg from correctly rendering video files.
+
Some alternative Yi firmwares enable an experimental RTSP server, which will allow you to connect to your camera via other Home Assistant camera platforms. However, this RTSP server disables the ability to use the supremely-useful Yi Home app. In order to maintain both Home Assistant compatibility _and_ the native app, this platform retrieves videos via FTP.
+ Please note, the `daikin` platform integrates **ONLY the european versions of Daikin ACs (models BRP069A41, 42, 43, 45)** into Home Assistant.
+ BRP069A42 does not support setting of fan speed or fan swing mode.
+
+The Unix timestamps can be obtained from the input_datetime component. This will allow you to graphically set the start and end date.
+
+Full configuration details can be found on the main [Hive component](/components/hive/) page.
+
Not all climate services may be available for your platform. Be sure to check the available services Home Assistant has enabled by checking
+To get your [NuHeat Signature](http://www.nuheat.com/products/thermostats/signature-thermostat) thermostats working within Home Assistant, please follow the instructions for the general [NuHeat component](/components/nuheat)
+ Only Amazon US is currently supported. Other regions are being certified. The Home Assistant Cloud is currently in open beta and will become part of the upcoming Community Support Package. [Learn more](/blog/2017/12/17/introducing-home-assistant-cloud/)
+ Please note, the Daikin platform integrates **ONLY the european versions of Daikin ACs (models BRP069A41, 42, 43, 45)** into Home Assistant
+
+ Please note that some AC devices may report outside temperature only when they are turned on.
+
+This component requires a [workaround](https://github.com/home-assistant/home-assistant/issues/1258#issuecomment-252469880) when using luci with HTTPS and a self-signed certificate.
+
+ In the example above, `devicename` refers to the detected name of the device. For instance, `my_iphone`.
+
If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fulfilled.
@@ -29,7 +29,7 @@ To use this device tracker in your installation, add the following to your `conf
# Example configuration.yaml entry
device_tracker:
- platform: nmap_tracker
- hosts: 192.168.1.1/24
+ hosts: 192.168.1.0/24
```
Configuration variables:
@@ -47,7 +47,7 @@ A full example for the `nmap` tracker could look like the following sample:
# One whole subnet, and skipping two specific IPs.
device_tracker:
- platform: nmap_tracker
- hosts: 192.168.1.1/24
+ hosts: 192.168.1.0/24
home_interval: 10
exclude:
- 192.168.1.12
@@ -60,7 +60,7 @@ device_tracker:
device_tracker:
- platform: nmap_tracker
hosts:
- - 192.168.1.1/24
+ - 192.168.1.0/24
- 10.0.0.2
- 10.0.0.15
```
diff --git a/source/_components/device_tracker.owntracks.markdown b/source/_components/device_tracker.owntracks.markdown
index 20cf68ab97a..0bd137c0ab7 100644
--- a/source/_components/device_tracker.owntracks.markdown
+++ b/source/_components/device_tracker.owntracks.markdown
@@ -14,7 +14,11 @@ ha_release: 0.7.4
---
-This platform allows you to detect presence using [Owntracks](http://owntracks.org/). OwnTracks allows users to track their location on Android and iOS phones and publish it to an MQTT broker. This platform will connect to the broker and monitor for new locations.
+This platform allows you to detect presence using [Owntracks](http://owntracks.org/). OwnTracks allows users to track their location on iOS phones and publish it to an MQTT broker. This platform will connect to the broker and monitor for new locations.
+
+
+The Android app for OwnTracks is no longer developed or supported, Zanzito is a drop in replacement for OwnTracks MQTT.
+
+The Android app for OwnTracks is no longer developed or supported. Consider [GPS Logger](/components/device_tracker.gpslogger/) as an alternative.
+
Home Assistant must be on the same network as the devices for uPnP discovery to work.
If running Home Assistant in a [Docker container](/docs/installation/docker/) use switch `--net=host` to put it on the host's network.
@@ -94,7 +98,9 @@ If you are on Windows and you're using Python 3.5, download the [Netifaces](http
-If you see `Not initializing discovery because could not install dependency netdisco==0.6.1` in the logs, you will need to install the `python3-dev` or `python3-devel` package on your system manually (eg. `sudo apt-get install python3-dev` or `sudo dnf -y install python3-devel`). On the next restart of home-assistant, discovery should work. If you still get an error, check if you have a compiler (`gcc`) available on your system.
+If you see `Not initializing discovery because could not install dependency netdisco==0.6.1` in the logs, you will need to install the `python3-dev` or `python3-devel` package on your system manually (eg. `sudo apt-get install python3-dev` or `sudo dnf -y install python3-devel`). On the next restart of Home Assistant, the discovery should work. If you still get an error, check if you have a compiler (`gcc`) available on your system.
+
+For DSM/Synology, install via debian-chroot [see this forum post](https://community.home-assistant.io/t/error-starting-home-assistant-on-synology-for-first-time/917/15).
+Enabling `doorbell_events` will delete all other registered push notification services with the device every time Home Assistant starts. This will not affect notifications delivered by the DoorBird mobile app.
+
+Custom slot values with synonyms.
+
@@ -78,26 +80,7 @@ Found Apple TVs:
Note: You must use 'pair' with devices that have home sharing disabled
```
-Just copy and paste the login id from the device you want to add. For more details about `atvremote`, see: [this page](http://pyatv.readthedocs.io/en/master/atvremote.html).
-
-### {% linkable_title My Apple TV turns on when I restart Home Assistant %}
-
-The Apple TV will automatically turn on if a request is sent to it, e.g., if a button is pressed, something is streamed to it via AirPlay or if current state (currently playing) is accessed. This is how Apple has designed it, and it will cause problems if you are using HDMI CEC. Every time Home Assistant is started, a new request is sent to the device to figure out what is currently playing. When using CEC, this will wake up your TV and other devices you have configured.
-
-So, if your TV is randomly turning on, this is probably the reason. As stated, this is by design, and there is no real fix for it. There's also no known way to turn off the Apple TV via the protocol used for communication. You have the following options:
-
-- Do not use this platform
-- Disable HDMI CEC on your Apple TV
-- Use "fake standby"
-
-The first two points are quite obvious. Fake standby is a concept implemented in this platform that disables all requests to the device and makes it appear as being "off" in the web interface. This will make sure that the device is not woken up, but it will of course not show any information or allow you to control it. It is however easy to turn it on (or off) in the web interface or to use an automation with `turn_on`. To make it more useful, you can write automations that turn it on or off depending on some other device, like the input source on your receiver.
-
-To put a device into fake standby when starting Home Assistant, add `start_off: true` to your configuration.
-
-
**Services** from the **Developer Tools**. Choose your service from the dropdown menu **Service**, enter something like the sample below into the **Service Data** field, and hit **CALL SERVICE**.
diff --git a/source/_components/camera.onvif.markdown b/source/_components/camera.onvif.markdown
index fe8561afa32..0cfa7cf4534 100644
--- a/source/_components/camera.onvif.markdown
+++ b/source/_components/camera.onvif.markdown
@@ -13,9 +13,9 @@ ha_release: 0.47
---
-The `ONVIF` platform allows you to use an ONVIF camera in Home Assistant. This requires FFmpeg component to be already configured.
+The `onvif` camera platform allows you to use an ONVIF camera in Home Assistant. This requires the [`ffmpeg` component](/components/ffmpeg/) to be already configured.
-To enable your ONVIF in your installation, add the following to your `configuration.yaml` file:
+To enable your ONVIF camera in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@@ -31,6 +31,6 @@ Configuration variables:
- **username** (*Optional*): The username for the camera.
- **password** (*Optional*): The password for the camera.
- **port** (*Optional*): The port for the camera. This defaults to 5000
-
+- **extra_arguments** (*Optional*): Extra options to pass to `ffmpeg`, e.g. image quality or video filter options. More details in [FFmpeg component](/components/ffmpeg).
If you are running into trouble with this sensor, please refer to the [Troubleshooting section](/components/ffmpeg/#troubleshooting).
diff --git a/source/_components/camera.ring.markdown b/source/_components/camera.ring.markdown
index c383381eaf7..eb7fc031628 100644
--- a/source/_components/camera.ring.markdown
+++ b/source/_components/camera.ring.markdown
@@ -1,6 +1,6 @@
---
layout: page
-title: "Ring Binary Camera"
+title: "Ring Camera"
description: "Instructions on how to integrate your Ring.com devices within Home Assistant."
date: 2017-10-20 10:00
sidebar: true
@@ -13,7 +13,7 @@ ha_release: 0.57
ha_iot_class: "Cloud Polling"
---
-To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring).
+To get your [Ring.com](https://ring.com/) cameras working within Home Assistant, please follow the instructions for the general [Ring component](/components/ring). Please note that downloading and playing Ring video will require a Ring Protect plan.
Once you have enabled the [Ring component](/components/ring), add the following to your `configuration.yaml` file:
@@ -32,19 +32,30 @@ Configuration variables:
Currently it supports doorbell and stickup cameras.
+## {% linkable_title Saving the videos captured by your Ring Door Bell %}
-## {% linkable_title Saving locally the videos captured by your Ring Door Bell %}
+You can save locally the latest video captured by your Ring Door Bell using the [downloader](/components/downloader) along with either an [automation](/components/automation) or [python_script](/components/python_script). First, enable the [downloader](/components/downloader) component in your configuration by adding the following to your `configuration.yaml`.
-You can save locally the latest video captured by your Ring Door Bell by enabling the [downloader](/components/downloader) and the [python_scripts](/components/python_script) components.
-
- - Add to the `configuration.yaml` the `downloader` and `python_scripts`. Visit the component page for further details.
-
-```json
-python_script:
+```yaml
downloader:
download_dir: downloads
```
- - Create a file `ring_downloader.py` in the folder `
**Services**.
@@ -222,6 +222,22 @@ automation:
entity_id: climate.kitchen
swing_mode: 1
```
+### {% linkable_title Service `climate.turn_on` %}
+
+Turn climate device on
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Targets all when omitted.
+
+### {% linkable_title Service `climate.turn_off` %}
+
+Turn climate device off
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Targets all when omitted.
+
#### {% linkable_title Customization %}
The step for the setpoint can be adjusted (default to 0,5 increments) by adding the following line into configuration
diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown
index 7d624b4d9a9..85675df1f62 100644
--- a/source/_components/climate.mqtt.markdown
+++ b/source/_components/climate.mqtt.markdown
@@ -7,7 +7,7 @@ sidebar: true
comments: false
sharing: true
footer: true
-logo: heat-control.png
+logo: mqtt.png
ha_category: Climate
ha_release: 0.55
ha_iot_class: "Local Polling"
@@ -28,39 +28,182 @@ climate:
temperature_command_topic: /sensors/hvac_study/target_temp
```
-Configuration variables *except* for MQTT topics:
+{% configuration %}
+name:
+ description: The name of the HVAC.
+ required: false
+ type: string
+ default: MQTT HVAC
+qos:
+ description: The maximum QoS level to be used when receiving and publishing messages.
+ required: false
+ type: integer
+ default: 0
+retain:
+ description: Defines if published messages should have the retain flag set.
+ required: false
+ type: boolean
+ default: false
+send_if_off:
+ description: "Set to `false` to suppress sending of all MQTT messages when the current mode is `Off`."
+ required: false
+ type: boolean
+ default: true
+initial:
+ description: Set the initial target temperature.
+ required: false
+ type: number
+ default: 21
+payload_on:
+ description: The payload that represents enabled state.
+ required: false
+ type: string
+ default: ON
+payload_off:
+ description: The payload that represents disabled state.
+ required: false
+ type: string
+ default: OFF
+availability_topic:
+ description: The MQTT topic subscribed to receive availability (online/offline) updates.
+ required: false
+ type: string
+payload_available:
+ description: The payload that represents the available state.
+ required: false
+ type: string
+ default: online
+payload_not_available:
+ description: The payload that represents the unavailable state.
+ required: false
+ type: string
+ default: offline
+value_template:
+ description: Default template to render the payloads on *all* `*_state_topic`s with.
+ type: template
+ required: false
+current_temperature_topic:
+ description: The MQTT topic on which to listen for the current temperature.
+ required: false
+ type: string
+power_command_topic:
+ description: The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode.
+ required: false
+ type: string
+mode_command_topic:
+ description: The MQTT topic to publish commands to change the HVAC operation mode.
+ required: false
+ type: string
+mode_state_topic:
+ description: The MQTT topic to subscribe for changes of the HVAC operation mode. If this is not set, the operation mode works in optimistic mode (see below).
+ required: false
+ type: string
+mode_state_template:
+ description: A template to render the value received on the `mode_state_topic` with.
+ required: false
+ type: template
+temperature_command_topic:
+ description: The MQTT topic to publish commands to change the target temperature.
+ required: false
+ type: string
+temperature_state_topic:
+ description: The MQTT topic to subscribe for changes in the target temperature. If this is not set, the target temperature works in optimistic mode (see below).
+ required: false
+ type: string
+temperature_state_template:
+ description: A template to render the value received on the `temperature_state_topic` with.
+ required: false
+ type: template
+fan_mode_command_topic:
+ description: The MQTT topic to publish commands to change the fan mode.
+ required: false
+ type: string
+fan_mode_state_topic:
+ description: The MQTT topic to subscribe for changes of the HVAC fan mode. If this is not set, the fan mode works in optimistic mode (see below).
+ required: false
+ type: string
+fan_mode_state_template:
+ description: A template to render the value received on the `fan_mode_state_topic` with.
+ required: false
+ type: template
+swing_mode_command_topic:
+ description: The MQTT topic to publish commands to change the swing mode.
+ required: false
+ type: string
+swing_mode_state_topic:
+ description: The MQTT topic to subscribe for changes of the HVAC swing mode. If this is not set, the swing mode works in optimistic mode (see below).
+ required: false
+ type: string
+swing_mode_state_template:
+ description: A template to render the value received on the `swing_mode_state_topic` with.
+ required: false
+ type: template
+away_mode_command_topic:
+ description: The MQTT topic to publish commands to change the away mode.
+ required: false
+ type: string
+away_mode_state_topic:
+ description: The MQTT topic to subscribe for changes of the HVAC away mode. If this is not set, the away mode works in optimistic mode (see below).
+ required: false
+ type: string
+away_mode_state_template:
+ description: A template to render the value received on the `away_mode_state_topic` with.
+ required: false
+ type: template
+hold_command_topic:
+ description: The MQTT topic to publish commands to change the hold mode.
+ required: false
+ type: string
+hold_state_topic:
+ description: The MQTT topic to subscribe for changes of the HVAC hold mode. If this is not set, the hold mode works in optimistic mode (see below).
+ required: false
+ type: string
+hold_state_template:
+ description: A template to render the value received on the `hold_state_topic` with.
+ required: false
+ type: template
+aux_command_topic:
+ description: The MQTT topic to publish commands to switch auxiliary heat.
+ required: false
+ type: string
+aux_state_topic:
+ description: The MQTT topic to subscribe for changes of the auxiliary heat mode. If this is not set, the auxiliary heat mode works in optimistic mode (see below).
+ required: false
+ type: string
+aux_state_template:
+ description: A template to render the value received on the `aux_state_topic` with.
+ required: false
+ type: template
+{% endconfiguration %}
-- **name** (*Required*): Name of MQTT HVAC.
-- **qos** (*Optional*): The maximum QoS level of the state topic. Default is `0` and will also be used to publishing messages.
-- **retain** (*Optional*): If the published message should have the retain flag on or not.
-- **send_if_off** (*Optional*): Set to `false` to suppress sending of all MQTT messages when the current mode is `Off`. Defaults to `true`.
-- **initial** (*Optional*): Set the initial target temperature. Defaults to 21 degrees.
-- **payload_on** (*Optional*): For MQTT topics that control an `on` / `off` value (e.g., `aux_command_topic`), set the value that should be sent for `on`. Defaults to 'ON'.
-- **payload_off** (*Optional*): For MQTT topics that control an `on` / `off` value (e.g., `aux_command_topic`), set the value that should be sent for `off`. Defaults to 'OFF'.
-
-Configuration of the MQTT topics:
-
-- **current_temperature_topic** (*Optional*): The MQTT topic on which to listen for the current temperature
-- **power_command_topic** (*Optional*): The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode.
-- **mode_command_topic** (*Optional*): The MQTT topic to publish commands to change the HVAC operation mode.
-- **mode_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the HVAC operation mode. If this is not set, the operation mode works in optimistic mode (see below).
-- **temperature_command_topic** (*Optional*): The MQTT topic to publish commands to change the target temperature.
-- **temperature_state_topic** (*Optional*): The MQTT topic to subscribe for changes in the target temperature. If this is not set, the target temperature works in optimistic mode (see below).
-- **fan_mode_command_topic** (*Optional*): The MQTT topic to publish commands to change the fan mode.
-- **fan_mode_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the HVAC fan mode. If this is not set, the fan mode works in optimistic mode (see below).
-- **swing_mode_command_topic** (*Optional*): The MQTT topic to publish commands to change the swing mode.
-- **swing_mode_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the HVAC swing mode. If this is not set, the swing mode works in optimistic mode (see below).
-- **away_mode_command_topic** (*Optional*): The MQTT topic to publish commands to change the away mode.
-- **away_mode_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the HVAC away mode. If this is not set, the away mode works in optimistic mode (see below).
-- **hold_command_topic** (*Optional*): The MQTT topic to publish commands to change the hold mode.
-- **hold_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the HVAC hold mode. If this is not set, the hold mode works in optimistic mode (see below).
-- **aux_command_topic** (*Optional*): The MQTT topic to publish commands to switch auxiliary heat.
-- **aux_state_topic** (*Optional*): The MQTT topic to subscribe for changes of the auxiliary heat mode. If this is not set, the auxiliary heat mode works in optimistic mode (see below).
-
-#### Optimistic mode
+#### {% linkable_title Optimistic mode %}
If a property works in *optimistic mode* (when the corresponding state topic is not set), home assistant will assume that any state changes published to the command topics did work and change the internal state of the entity immediately after publishing to the command topic. If it does not work in optimistic mode, the internal state of the entity is only updated when the requested update is confirmed by the device through the state topic.
+#### {% linkable_title Using Templates %}
+
+For all `*_state_topic`s, a template can be specified that will be used to render the incoming payloads on these topics. Also, a default template that applies to all state topis can be specified as `value_template`. This can be useful if you received payloads are e.g. in JSON format. Since in JSON, a quoted string (e.g. `"foo"`) is just a string, this can also be used for unquoting.
+
+Say you receive the operation mode `"auto"` via your `mode_state_topic`, but the mode is actually called just `auto`, here's what you could do:
+
+{% raw %}
+```yaml
+climate:
+ - platform: mqtt
+ name: Study
+ modes:
+ - off
+ - on
+ - auto
+ mode_command_topic: "study/ac/mode/set"
+ mode_state_topic: "study/ac/mode/state"
+ mode_state_template: "{{ value_json }}"
+```
+{% endraw %}
+
+This will parse the incoming `"auto"` as JSON, resulting in `auto`. Obvisouly, in this case you could also just set `value_template: {% raw %}"{{ value_json }}"{% endraw %}`.
+
+
### {% linkable_title Example %}
A full configuration example looks like the one below.
diff --git a/source/_components/climate.nuheat.markdown b/source/_components/climate.nuheat.markdown
new file mode 100644
index 00000000000..51ffd6fee4b
--- /dev/null
+++ b/source/_components/climate.nuheat.markdown
@@ -0,0 +1,139 @@
+---
+layout: page
+title: "NuHeat Thermostat"
+description: "Instructions how to integrate your NuHeat Signature thermostats within Home Assistant."
+date: 2017-11-11 18:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: nuheat.png
+ha_category: Climate
+ha_release: 0.61
+ha_iot_class: "Cloud Polling"
+---
+
+
-At this time `emulated_hue` doesn't appear to be working for new Google Home users. +
+Be aware that `emulated_hue` doesn't work for new **Google Home** users. If you're a new user of Google Home, use the [Google Assistant component](https://home-assistant.io/components/google_assistant/).
The `emulated_hue` component provides a virtual Philips Hue bridge, written entirely in software, that allows services that work with the Hue API to interact with Home Assistant @@ -22,7 +22,7 @@ entities. The driving use case behind this functionality is to allow Home Assist The virtual bridge has the ability to turn entities on or off, or change the brightness of dimmable lights. The volume level of media players can be controlled as brightness.-A physical Hue Bridge is required for the lights to function - this virtual bridge will not replace a physical bridge. +A physical Hue Bridge is required for Philips Hue lights to function - this virtual bridge will not replace a physical bridge. Instead, it allows Home Assistant to represent non-Philips Hue devices to Amazon Echo as Philips Hue devices, which Amazon Echo can control with built-in support.
diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index 3a10858445e..4e38d204446 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -13,7 +13,7 @@ ha_release: 0.21 ha_iot_class: "Local Push" --- -The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are unnecessary. +The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are necessary. The `enocean` component adds support for some of these devices. You will need a controller like the [USB300](https://www.enocean.com/en/enocean_modules/usb-300-oem/) in order for it to work. diff --git a/source/_components/fan.insteon_local.markdown b/source/_components/fan.insteon_local.markdown index 8476fc43d06..359f099477b 100644 --- a/source/_components/fan.insteon_local.markdown +++ b/source/_components/fan.insteon_local.markdown @@ -14,21 +14,4 @@ ha_version: 0.48 The `insteon_local` fan component lets you control your fan connected to an [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant. -To integrate add a fan, configure your hub Insteon(local) with Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml platform entry -insteon_local: - host: YOUR HUB IP - username: YOUR HUB USERNAME - password: YOUR HUB PASSWORD - timeout: 10 - port: 25105 -``` - -To add fans to your set-up, add the platform to your light configuration: -```yaml -fan: - - platform: insteon_local -``` - +To get your insteon fans working with Home Assistant, follow the instructions for the general [Insteon local component](/components/insteon_local/). The fans will be automatically disovered and added to Home Assistant. The device names will be the Insteon address of the fans. diff --git a/source/_components/fan.mqtt.markdown b/source/_components/fan.mqtt.markdown index 82c5193ba30..1a0329404f8 100644 --- a/source/_components/fan.mqtt.markdown +++ b/source/_components/fan.mqtt.markdown @@ -30,30 +30,117 @@ fan: command_topic: "bedroom_fan/on/set" ``` -Configuration variables: - -- **command_topic** (*Required*): The MQTT topic to publish commands to change the fan state. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. -- **name** (*Optional*): The name of the fan. Default is 'MQTT Fan'. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. -- **payload_on** (*Optional*): The payload that represents the running state. Default is "ON". -- **payload_off** (*Optional*): The payload that represents the stop state. Default is "OFF". -- **state_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the state. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. -- **optimistic** (*Optional*): Flag that defines if lock works in optimistic mode. Default is `true` if no state topic defined, else `false`. -- **retain** (*Optional*): If the published message should have the retain flag on or not. -- **oscillation_state_topic** (*Optional*): The MQTT topic subscribed to receive oscillation state updates. -- **oscillation_command_topic** (*Optional*): The MQTT topic to publish commands to change the oscillation state. -- **payload_oscillation_on** (*Optional*): The payload that represents the oscillation on state. Default is "oscillate_on". -- **payload_oscillation_off** (*Optional*): The payload that presents the oscillation off state. Default is "oscillate_off". -- **oscillation_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the oscillation. -- **speed_state_topic** (*Optional*): The MQTT topic subscribed to receive speed state updates. -- **speed_command_topic** (*Optional*): The MQTT topic to publish commands to change speed state. -- **payload_low_speed** (*Optional*): The payload that represents the fan's low speed. -- **payload_medium_speed** (*Optional*): The payload that represents the fan's medium speed. -- **payload_high_speed** (*Optional*): The payload that represents the fan's high speed. -- **speed_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the speed payload. -- **speeds** array (*Optional*): Valid entries for the list are `off`, `low`, `medium`, and `high`. +{% configuration %} +name: + description: The name of the fan. + required: false + type: string + default: MQTT Fan +command_topic: + description: The MQTT topic to publish commands to change the fan state. + required: true + type: string +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: false + type: string +payload_on: + description: The payload that represents the running state. + required: false + type: string + default: ON +payload_off: + description: The payload that represents the stop state. + required: false + type: string + default: OFF +state_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the state." + required: false + type: string +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +optimistic: + description: Flag that defines if lock works in optimistic mode + required: false + type: boolean + default: "`true` if no state topic defined, else `false`." +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: true +oscillation_state_topic: + description: The MQTT topic subscribed to receive oscillation state updates. + required: false + type: string +oscillation_command_topic: + description: The MQTT topic to publish commands to change the oscillation state. + required: false + type: string +payload_oscillation_on: + description: The payload that represents the oscillation on state. + required: false + type: string + default: oscillate_on +payload_oscillation_off: + description: The payload that represents the oscillation off state. + required: false + type: string + default: oscillate_off +oscillation_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the oscillation." + required: false + type: string +speed_state_topic: + description: The MQTT topic subscribed to receive speed state updates. + required: false + type: string +speed_command_topic: + description: The MQTT topic to publish commands to change speed state. + required: false + type: string +payload_low_speed: + description: The payload that represents the fan's low speed. + required: false + type: string + default: low +payload_medium_speed: + description: The payload that represents the fan's medium speed. + required: false + type: string + default: medium +payload_high_speed: + description: The payload that represents the fan's high speed. + required: false + type: string + default: high +speed_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the speed payload." + required: false + type: string +speeds: + description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium`, and `high`." + required: false + type: string list +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline +{% endconfiguration %}
Make sure that your topics match exactly. `some-topic/` and `some-topic` are different topics. diff --git a/source/_components/fan.xiaomi_miio.markdown b/source/_components/fan.xiaomi_miio.markdown index 7acf1291e45..23110f63028 100644 --- a/source/_components/fan.xiaomi_miio.markdown +++ b/source/_components/fan.xiaomi_miio.markdown @@ -8,36 +8,38 @@ comments: false sharing: true footer: true logo: xiaomi.png -ha_category: Switch +ha_category: Fan ha_version: 0.57 ha_iot_class: "Local Polling" --- -The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier 2. The Air Purifier Pro isn't supported right now. +The `xiaomi_miio` fan platform allows you to control the Xiaomi Air Purifier 2, Air Purifier 2S and Air Purifier Pro. Currently, the supported features are * On, Off * Operation modes (auto, silent, favorite, idle) * Buzzer (on, off) +* Child lock (on, off) * LED (on, off), LED brightness (bright, dim, off) -* Favorite Level -* States +* Favorite Level (0...16) +* Attributes - power - aqi + - average_aqi - humidity - temperature - mode + - favorite_level - led - led_brightness - buzzer - child_lock - - brightness - - favorite_level - - filter1_life - - f1_hour_used - - use_time - - motor1_speed + - purify_volume + - filter_life_remaining + - filter_hours_used + - motor_speed + ## {% linkable_title Setup %} @@ -66,7 +68,7 @@ Turn the buzzer on. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | ### Service fan/xiaomi_miio_set_buzzer_off @@ -74,7 +76,7 @@ Turn the buzzer off. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | ### Service fan/xiaomi_miio_set_led_on @@ -82,7 +84,7 @@ Turn the led on. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | ### Service fan/xiaomi_miio_set_led_off @@ -90,7 +92,23 @@ Turn the led off. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | + +### Service fan/xiaomi_miio_set_child_lock_on + +Turn the child lock on. + +| Service data attribute | Optional | Description | +|---------------------------|----------|-------------------------------------------------------| +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | + +### Service fan/xiaomi_miio_set_child_lock_off + +Turn the child lock off. + +| Service data attribute | Optional | Description | +|---------------------------|----------|-------------------------------------------------------| +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | ### Service fan/xiaomi_miio_set_led_brightness @@ -98,7 +116,7 @@ Set the led brightness. Supported values are 0 (Bright), 1 (Dim), 2 (Off). | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | | `brightness` | no | Brightness, between 0 and 2. | ### Service fan/xiaomi_miio_set_favorite_level @@ -107,5 +125,5 @@ Set the favorite level of the operation mode "favorite". | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| -| `entity_id` | yes | Only act on specific air purifier. Else targets all. | +| `entity_id` | yes | Only act on a specfici air purifier. Else targets all. | | `level` | no | Level, between 0 and 16. | diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index dc48dd837fb..92c0e8d8dd4 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -19,6 +19,11 @@ frontend: ``` {% configuration %} + javascript_version: + description: "Version of the JavaScript to serve to clients. Options: `es5` - transpiled so old browsers understand it. `latest` - not transpiled, so will work on recent browsers only. `auto` - select a version according to the browser user-agent. The value in the config can be overiden by putting `es5` or `latest` in the URL. For example `http://localhost:8123/states?es5` " + required: false + type: string + default: auto themes: description: Allow to define different themes. See below for further details. required: false @@ -34,7 +39,11 @@ frontend: required: true type: [list, string] extra_html_url: - description: "List of addtional [resources](/developers/frontend_creating_custom_ui/) to load." + description: "List of addtional [resources](/developers/frontend_creating_custom_ui/) to load in `latest` javascript mode." + required: false + type: list + extra_html_url_es5: + description: "List of addtional [resources](/developers/frontend_creating_custom_ui/) to load in `es5` javascript mode." required: false type: list development_repo: @@ -101,8 +110,12 @@ automation: ### {% linkable_title Manual Theme Selection %} -When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under `configuration.yaml` called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under **General** called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +
+
+ Set a theme
+
+
+ Choose a Language
+
-To use Google Assistant your Home Assistant configuration has to be externally accessible, with a hostname and SSL certificate. If you haven't already configured that you should do so before continuing. +To use Google Assistant, your Home Assistant configuration has to be externally accessible, with a hostname and SSL certificate. If you haven't already configured that you should do so before continuing.
-### {% linkable_title Configuration %} +To enable this, add the following lines to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -28,57 +29,95 @@ google_assistant: project_id: someproject-2d0b8 client_id: [long URL safe random string] access_token: [a different long URL safe random string] + agent_user_id: [a string to identify user] + api_key: [a Homegraph API Key generated for the Google Actions project] exposed_domains: - switch - light - group -``` - -*Note:* It's very important that you use very long strings for `client_id` and `access_token`. Those are essentially the credentials to your Home Assistant instance. You can generate them with the following command: - -`cat /dev/urandom|fold -w 120|head -n 1|base64 -w 0|tr -dc '0-9A-Za-z'|cut -c -80` - -*Configuration Variables:* -* *expose_by_default* (Optional): Expose devices in all supported domains by default. -* *project_id* (Required): Project ID from the Google Developer console (looks like `words-2ab12`) -* *client_id* (Required): A long random URL safe string (no spaces or special characters) that will be used for Implicit OAuth. -* *access_token* (Required): Another different long random URL safe string. -* *exposed_domains* (Optional): An array of Home Assistant domains to expose to Google Assistant. Options include: - - `switch` - - `light` - - `cover` - - `media_player` - - `group` - - `fan` - - `scene` - - `script` - -You can also customize your devices similar to other components by adding keys to entities: - -```yaml -homeassistant: - customize: - master_bedroom_light: - google_assistant: true - google_assistant_name: bedroom light - bedroom_blinds: + entity_config: + switch.kitchen: + name: Custom Name for Google Assistant aliases: - - bedroom shades - - bedroom covers - hallway_ceiling_switch: - google_assistant: true - google_assistant_type: light + - bright lights + - entry lights + type: light + light.living_room: + expose: false ``` -*Entity Customization Keys:* -* *google_assistant*: True exposes entity, false will hide it -* *google_assistant_name*: Can be used to override the primary name of an entity. By default the `friendly_name` of an entity is used. -* *google_assistant_type*: Can be used to override the domain/type of an entity. For example a switch can be treated as a light -* *aliases*: Provides "nicknames" to Google Assistant. These function as alternate names for an entity that Assistant will understand when spoken. +Configuration variables: + +{% configuration %} + +project_id: + description: Project ID from the Google Developer console (looks like `words-2ab12`) + required: true + type: string +client_id: + description: A long random URL safe string (no spaces or special characters) that will be used for Implicit OAuth (example `aBcDeFgHiJkLmNoP`) + required: true + type: string +access_token: + description: Another different long random URL safe string (example `aBcDeFgHiJkLmNoP`) + required: true + type: string +agent_user_id: + description: A string to identify the user, e.g., email address. If not provided, the component will generate one. + required: false + type: string +api_key: + description: An API Key generated for the project from [Google Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview) which allows you to update devices without unlinking and relinking an account (see setup below). If not provided then the request_sync service is not exposed. + required: false + type: string +expose_by_default: + description: Expose devices in all supported domains by default. + required: false + default: True + type: boolean +exposed_domains: + description: List of entity domains to expose to Google Assistant. + required: false + type: list +entity_config: + description: Entity specific configuration for Google Assistant + required: false + type: map + keys: + '`+Don't use option `server_host` on a hass.io installation! +
+ ```yaml # Example configuration.yaml entry http: @@ -61,9 +65,9 @@ http: The [Set up encryption using Let's Encrypt](/blog/2015/12/13/setup-encryption-using-lets-encrypt/) blog post gives you details about the encryption of your traffic using free certificates from [Let's Encrypt](https://letsencrypt.org/). -Or use a self signed certificate following the instructions here [Self-signed certificate for SSL/TLS](/docs/ecosystem/certificates/tls_self_signed_certificate/) +Or use a self signed certificate following the instructions here [Self-signed certificate for SSL/TLS](/docs/ecosystem/certificates/tls_self_signed_certificate/). -On top of the `http` component is a [REST API](/developers/rest_api/) and a [Python API](/developers/python_api/) available. There is also support for [Server-sent events](/developers/server_sent_events/). +On top of the `http` component is a [REST API](/developers/rest_api/), [Python API](/developers/python_api/) and [WebSocket API](/developers/websocket_api/) available. There is also support for [Server-sent events](/developers/server_sent_events/). The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP. diff --git a/source/_components/hue.markdown b/source/_components/hue.markdown new file mode 100644 index 00000000000..46d8f2cc9f3 --- /dev/null +++ b/source/_components/hue.markdown @@ -0,0 +1,144 @@ +--- +layout: page +title: "Philips Hue" +description: "Instructions on setting up Philips Hue within Home Assistant." +date: 2017-11-29 23:51 +sidebar: true +comments: false +sharing: true +footer: true +logo: philips_hue.png +ha_category: Hub +ha_iot_class: "Local Polling" +featured: true +ha_release: 0.60 +--- + +Philips Hue support is integrated into Home Assistant as a Hub that can drive the light platform. The preferred way to setup the Philips Hue platform is by enabling the [discovery component](/components/discovery/). + +Once discovered, if you have a custom default view, locate `configurator.philips_hue` in the entities list ( < > ) and add it to a group in `configuration.yaml`. Restart Home Assistant so that the configurator is visible in the Home Assistant dashboard. Once Home Assistant is restarted, locate and click on `configurator.philips_hue` to bring up the initiation dialog. This will prompt you to press the Hue button to register the Hue hub in Home Assistant. Once complete, the configurator entity isn't needed anymore and can be removed from any visible group in `configuration.yaml`. + +When you configure the Hue bridge from Home Assistant, it writes a token to a file in your Home Assistant [configuration directory](/docs/configuration/). That token authenticates the communication with the Hue bridge. This token uses the Address of the Hue Bridge. If the IP address for the Hue Bridge changes, you will need to register the Hue Bridge with Home Assistant again. To avoid this you may set up DHCP registration for your Hue Bridge, so that it always has the same IP address. + +Once registration is complete you should see the Hue lights listed as "light" entities; if you don't you may have to restart Home Assistant once more. Add these light entities to configuration.yaml and restart Home Assistant once more to complete the installation. + +If you want to enable the component without relying on the [discovery component](/components/discovery/), add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +hue: + bridges: + - host: DEVICE_IP_ADDRESS +``` + +Configuration variables: + +- **host** (*Optional*): IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges. +- **allow_unreachable** (*Optional*): (true/false) This will allow unreachable bulbs to report their state correctly. +- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs. +- **allow_in_emulated_hue** (*Optional*): (true/false) Enable this to block all Hue entities from being added to the `emulated_hue` component. +- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge. + +### {% linkable_title Migrating from older configuration %} + +In previous versions of the Hue component the configuration looked different: + +```yaml +# Example configuration.yaml entry +light: + - platform: hue + host: DEVICE_IP_ADDRESS +``` + +You will need to convert each bridge into an entry in the new configuration style. See above for an example. + +### {% linkable_title Multiple Hue bridges %} + +Multiple Hue bridges work transparently with discovery, you don't have to do anything. If you prefer to configure them manually and use multiple Hue bridges then it's needed that you provide a configuration file for every bridge. The bridges can't share a single configuration file. + +Add `filename` to your Hue configuration entry in your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +hue: + bridges: + - host: BRIDGE1_IP_ADDRESS + filename: phue.conf + - host: BRIDGE2_IP_ADDRESS + filename: phue2.conf +``` + +### {% linkable_title Using Hue Groups in Home Assistant %} + +The Hue API allows you to group lights. Home Assistant also supports grouping of entities natively, but sometimes it can be useful to use Hue Groups to group light bulbs. By doing so, Home Assistant only needs to send one API call to change the state of all the bulbs in those groups instead of one call for every light in the group. This causes all the bulbs to change state simultaneously. + +These Hue Groups can be a `Luminaire`, `Lightsource`, `LightGroup` or `Room`. The `Luminaire` and `Lightsource` can't be created manually since the Hue bridge manages these automatically based on the discovered bulbs. The `Room` and `LightGroup` can be created manually through the API, or the mobile app. A bulb can only exist in one `Room`, but can exist in multiple `LightGroup`. The `LightGroup` can be useful to link certain bulbs together since. + +The 2nd generation Hue app only allows to create a `Room`. You need to use the first generation app or the API to create a `LightGroup`. + +Example: + +To create a `LightGroup` named `Ceiling lights` that contains the lights 1, 2 and 3, execute the following command: + +```bash +$ curl -XPOST -d '{"name": "Ceiling lights", "lights": ["1", "2", "3"]}' http://+ To support Hue Light Groups, your bridge needs to have at least firmware 1.13 (released on June 3, 2016). +
+ +More information can be found on the [Philips Hue API documentation](https://www.developers.meethue.com/documentation/groups-api#22_create_group) website. + + +### {% linkable_title Using Hue Scenes in Home Assistant %} + +The Hue platform has it's own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named. + +To avoid user interface overload we don't expose scenes directly. Instead there is a hue.hue_activate_scene service which can be used by `automation` or `script` components. +This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant. + +For instance: + +```yaml +script: + porch_on: + sequence: + - service: hue.hue_activate_scene + data: + group_name: "Porch" + scene_name: "Porch Orange" +``` + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `group_name` | no | The group/room name of the lights. Find this in the Hue official app. +| `scene_name` | no | The name of the scene. Find this in the Hue official app. + +*Note*: `group_name` is not linked to Home Assistant group name. + +### {% linkable_title Finding Group and Scene Names %} + +How do you find these names? + +The easiest way to do this is only use the scenes from the 2nd generation Hue app. That is organized by room (group) and scene Name. Use the values of room name and scene name that you see in the app. You can test these work on the `dev-service` console of your Home Assistant instance. + +Alternatively, you can dump all rooms and scene names using this [gist](https://gist.github.com/sdague/5479b632e0fce931951c0636c39a9578). This does **not** tell you which groups and scenes work together but it's sufficient to get values that you can test in the `dev-service` console. + +### {% linkable_title Caveats %} + +The Hue API doesn't activate scenes directly, only on a Hue Group (typically rooms, especially if using the 2nd gen app). But Hue Scenes don't actually reference their group. So heuristic matching is used. + +Neither group names or scene names are guaranteed unique in Hue. If you are getting non deterministic behavior, adjust your Hue scenes via the App to be more identifying. + +The Hue hub has limited spaces for scenes, and will delete scenes if new ones get created that would overflow that space. The API docs say this is based on "Least Recently Used". diff --git a/source/_components/ifttt.markdown b/source/_components/ifttt.markdown index fc330b5f799..764138d2725 100644 --- a/source/_components/ifttt.markdown +++ b/source/_components/ifttt.markdown @@ -64,6 +64,7 @@ Choose "Webhooks" as service. You need to setup a unique trigger for each event you sent to IFTTT. +{% raw %} ```yaml # Example configuration.yaml Automation entry automation: @@ -75,9 +76,11 @@ automation: service: ifttt.trigger data: {"event":"TestHA_Trigger", "value1":"Hello World!"} ``` +{% endraw %} IFTTT can also be used in scripts and with `data_template`. Here is the above automation broken into an automation and script using variables and data_templates. +{% raw %} ```yaml # Example configuration.yaml Automation entry automation: @@ -89,10 +92,12 @@ automation: service: script.ifttt_notify data_template: value1: 'HA Status:' - value2: {% raw %}"{{ trigger.event.data.entity_id.split('_')[1] }} is "{% endraw %} - value3: {% raw %}"{{ trigger.event.data.to_state.state }}"{% endraw %} + value2: "{{ trigger.event.data.entity_id.split('_')[1] }} is " + value3: "{{ trigger.event.data.to_state.state }}" ``` +{% endraw %} +{% raw %} ```yaml #Example Script to send TestHA_Trigger to IFTTT but with some other data (homeassistant UP). ifttt_notify: @@ -100,6 +105,7 @@ ifttt_notify: - service: ifttt.trigger data_template: {"event":"TestHA_Trigger", "value1":"{{ value1 }}", "value2":"{{ value2 }}", "value3":"{{ value3 }}"} ``` +{% endraw %} ### {% linkable_title Sending events from IFTTT to Home Assistant %} diff --git a/source/_components/image_processing.seven_segments.markdown b/source/_components/image_processing.seven_segments.markdown index db0ebf4f1b7..13249bc52b1 100644 --- a/source/_components/image_processing.seven_segments.markdown +++ b/source/_components/image_processing.seven_segments.markdown @@ -93,6 +93,7 @@ image_processing: With the help of a [template sensor](/components/sensor.template/), the value can be shown as badge. +{% raw %} ```yaml sensor: - platform: template @@ -102,4 +103,4 @@ sensor: friendly_name: 'Ampere' unit_of_measurement: 'A' ``` - +{% endraw %} diff --git a/source/_components/influxdb.markdown b/source/_components/influxdb.markdown index 60bd6cac432..f2291bda29d 100644 --- a/source/_components/influxdb.markdown +++ b/source/_components/influxdb.markdown @@ -34,6 +34,8 @@ Configuration variables: - **database** (*Optional*): Name of the database to use. Defaults to `home_assistant`. The database must already exist. - **ssl** (*Optional*): Use https instead of http to connect. Defaults to false. - **verify_ssl** (*Optional*): Verify SSL certificate for https request. Defaults to false. +- **max_retries** (*Optional*): Allow the component to retry if there was a network error when transmitting data +- **retry_queue_limit** (*Optional*): If retry enabled, specify how much calls are allowed to be queued for retry. - **default_measurement** (*Optional*): Measurement name to use when an entity doesn't have a unit. Defaults to entity id. - **override_measurement** (*Optional*): Measurement name to use instead of unit or default measurement. This will store all data points in a single measurement. - **component_config**, **component_config_domain**, **component_config_glob** (*Optional*): These attributes contains component-specific override values. See [Customizing devices and services](https://home-assistant.io/getting-started/customizing-devices/) for format. @@ -175,6 +177,7 @@ influxdb: password: MY_PASSWORD ssl: true verify_ssl: true + max_retries: 3 default_measurement: state exclude: entities: diff --git a/source/_components/input_boolean.markdown b/source/_components/input_boolean.markdown index 61e82ff846c..ff2aa46ca85 100644 --- a/source/_components/input_boolean.markdown +++ b/source/_components/input_boolean.markdown @@ -24,16 +24,34 @@ input_boolean: icon: mdi:car ``` -Configuration variables: +{% configuration %} + input_boolean: + description: Alias for the input. Multiple entries are allowed. + required: true + type: map + keys: + name: + description: Friendly name of the input. + required: false + type: String + initial: + description: Initial value when Home Assistant starts. + required: false + type: boolean + default: false + icon: + description: Icon to display for the component. Refer to the [Customizing devices](/docs/configuration/customizing-devices/#possible-values) page for possible values. + required: false + type: icon +{% endconfiguration %} -- **[alias]** (*Required*): Alias for the input. - - **name** (*Optional*): Friendly name of the input. - - **initial** (*Optional*): Initial value when Home Assistant starts. Defaults to `False`. - - **icon** (*Optional*): Icon for entry. +### {% linkable_title Restore State %} -Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`. +This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. -Here's an example of an automation using the above input_boolean. This action will only occur if the switch is on. +## {% linkable_title Automation Examples %} + +Here's an example of an automation using the above `input_boolean`. This action will only occur if the switch is on. ```yaml automation: diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown index f9351f09848..4b9d9ae568a 100644 --- a/source/_components/input_datetime.markdown +++ b/source/_components/input_datetime.markdown @@ -33,18 +33,45 @@ input_datetime: has_time: true ``` -Configuration variables: +{% configuration %} + input_datetime: + description: Alias for the datetime input. Multiple entries are allowed. + required: true + type: map + keys: + name: + description: Friendly name of the datetime input. + required: false + type: String + has_time: + description: Set to `true` if the input should have a time. At least one `has_time` or `has_date` must be defined. + required: false + type: Boolean + default: false + has_date: + description: Set to `true` if the input should have a date. At least one `has_time` or `has_date` must be defined. + required: false + type: Boolean + default: false + initial: + description: Set the initial value of this input, depending on `has_time` and `has_date`. + required: false + type: datetime | time | date + default: 1970-01-01 00:00 | 1970-01-01 | 00:00 +{% endconfiguration %} -- **[alias]** (*Required*): Alias for the datetime input. Multiple entries are allowed. - - **name** (*Optional*): Friendly name of the datetime input. - - **has_time** (*Optional*): Set to `true` if this input should have time. Defaults to `false`. - - **has_date** (*Optional*): Set to `true` if this input should have a date. Defaults to `false`. - - **initial** (*Optional*): Set the initial value of this input. Defaults to '1970-01-01 00:00'. +### {% linkable_title Attributes %} -A datetime input entity's state exports several attributes that can be useful in automations and templates: +A datetime input entity's state exports several attributes that can be useful in automations and templates. -- **has_time**: `true` if this entity has time. -- **has_date**: `true` if this entity has a date. -- **year**, **month**, **day** (Only available if *has_date* is true): The year, month and day of the date. -- **hour**, **minute**, **second** (Only available if *has_time* is true): The hour, minute and second of the time. -- **timestamp**: A timestamp representing the time held in the input. If *has_date* is true, this is the UNIX timestamp of the date / time held by the input. Otherwise (i.e., if only *has_time* is true) the number of seconds since midnight representing the time held by the input. +| Attribute | Description | +| --------- | ----------- | +| `has_time` | `true` if this entity has a time. +| `has_date` | `true` if this entity has a date. +| `year`Because YAML defines [booleans](http://yaml.org/type/bool.html) as equivalent, any variations of 'On', 'Yes', 'Y', 'Off', 'No', or 'N' (regardless of case) used as option names will be replaced by True and False unless they are defined in quotation marks.
+### {% linkable_title Restore State %} + +This component supports the `restore_state` function which restores the state after Home Assistant has started to the value it has been before Home Assistant stopped. To use this feature please make sure that the [`recorder`](/components/recorder/) component is enabled and your entity does not have a value set for `initial`. Additional information can be found in the [Restore state](/components/recorder/#restore-state) section of the [`recorder`](/components/recorder/) component documentation. + ### {% linkable_title Services %} -This components provide three services to modify the state of the `input_select`: +This components provide three services to modify the state of the `input_select`. -- `input_select.select_option`: This can be used to select a specific option. The option is passed as `option` attribute in the service data. -- `input_select.select_previous`: Select the previous option. -- `input_select.select_next`: Select the next option. +| Service | Data | Description | +| ------- | ---- | ----------- | +| `select_option` | `option` | This can be used to select a specific option. +| `set_options` | `options`+ Please note, the `knx` platform does not support Windows and needs at least python version 3.5. +
+ There is currently support for the following device types within Home Assistant: - [Binary Sensor](/components/binary_sensor.knx) @@ -79,6 +83,7 @@ knx: - **fire_event** (*Optional*): If set to True, platform will write all received KNX messages to event bus - **fire_event_filter** (*Optional*): If `fire_event` is set `fire_event_filter` has to be specified. `fire_event_filter` defines a list of patterns for filtering KNX addresses. Only telegrams which match this pattern are sent to the HOme Assistant event bus. - **state_updater** (*Optional*): The component will collect the current state of each configured device from the KNX bus to display it correctly within Home-Assistant. Set this option to False to prevent this behaviour. +- **time_address** (*Optional*): Broadcast current local time to KNX bus with configured group address. ### {% linkable_title Services %} diff --git a/source/_components/light.ads.markdown b/source/_components/light.ads.markdown new file mode 100644 index 00000000000..b5188cf33e8 --- /dev/null +++ b/source/_components/light.ads.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "ADS Light" +description: Instructions how to set up ADS lights within Home Assistant +date: 2017-10-25 10:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: beckhoff.png +ha_category: Light +ha_release: "0.60" +ha_iot_class: "Local Push" +--- + +The `ads` light platform allows you to control your connecte ADS lights. + +To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml` +file: + +```yaml +# Example configuration.yaml entry +light: + - platform: ads + adsvar: GVL.enable_light + adsvar_brightness: GVL.brightness +``` + +{% configuration %} + adsvar: + required: true + description: The name of the boolean variable that switches the light on + type: string + adsvar_brightness: + required: false + description: The name of the variable that controls the brightness, use an unsigned integer on the PLC side + type: integer + name: + required: false + description: An identifier for the Light in the frontend + type: string +{% endconfiguration %} diff --git a/source/_components/light.deconz.markdown b/source/_components/light.deconz.markdown new file mode 100644 index 00000000000..7ee2d591950 --- /dev/null +++ b/source/_components/light.deconz.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "deCONZ lights" +description: "Instructions on how to integrate Zigbee lights from deCONZ into Home Assistant." +date: 2017-11-12 16:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: deconz.jpeg +ha_category: Light +ha_release: "0.61" +ha_iot_class: "Local Push" +--- + +See the [deCONZ main component](/components/deconz/) for configuration instructions. + +Entity Ids names will be light.device_name, where device_name is defined in deCONZ. Light groups created in deCONZ will be created in Home Assistant as lights named light.group_name_in_deconz, allowing the user to control groups of lights with only a single API call to deCONZ. + +#### {% linkable_title Verified to be supported sensors %} + +- IKEA Trådfri bulb E14 WS opal 400lm +- IKEA Trådfri Bulb E27 WS Opal 980lm +- IKEA Trådfri Bulb E27 WS Opal 1000lm +- IKEA Trådfri Bulb GU10 W 400lm +- OSRAM Flex RGBW +- OSRAM Gardenpole RGBW +- Philips Hue White A19 +- Philips Hue White Ambiance A19 diff --git a/source/_components/light.decora_wifi.markdown b/source/_components/light.decora_wifi.markdown index 85dbcd0e575..48ce82aa3aa 100644 --- a/source/_components/light.decora_wifi.markdown +++ b/source/_components/light.decora_wifi.markdown @@ -17,7 +17,8 @@ Support for [Leviton Decora Wi-Fi](http://www.leviton.com/en/products/lighting-c Supported devices (tested): -- [DW6HD1-BZ](https://www.leviton.com/en/products/dw6hd) (Decora Smart Wi-Fi 600W Dimmer) +- [DW6HD1-BZ](https://www.leviton.com/en/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer) +- [DW15S-1BZ](https://www.leviton.com/en/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch) To enable these lights, add the following lines to your `configuration.yaml` file: diff --git a/source/_components/light.greenwave.markdown b/source/_components/light.greenwave.markdown new file mode 100644 index 00000000000..a0cba942d4c --- /dev/null +++ b/source/_components/light.greenwave.markdown @@ -0,0 +1,41 @@ +--- +layout: page +title: Greenwave Reality (TCP Connected) Lights +description: "Instructions on how to set up Greenwave Reality lights within Home Assistant." +date: 2017-11-17 18:50 +sidebar: true +comments: false +sharing: true +footer: true +logo: greenwavereality.png +ha_category: Light +ha_release: 0.61 +ha_iot_class: "Local Polling" +--- + +This component communicates with the Greenwave Reality (TCP Connected) Gateway to allow control of all lights and fixtures registered to the gateway. Bulbs and Fixtures can be created and modified inside the TCP Lighting App for Android and iOS. + +This component has been tested on firmware revisions: + +- 2.0.105 + +To configure the connection to the gateway, add the following to your `configuration.yaml` file: + +```yaml +light: + - platform: greenwave + host: XXX.XXX.XXX.XXX + version: 3 +``` +The version option is the major revision of your firmware, which should be 2 or 3. If you are running Version 2, there are no extra steps. If you are running Version 3, you must press the Sync button on the gateway prior to the first launch of Home Assistant, so a token can be grabbed. Once home assistant has started, you can either press the Sync button again or wait for it to time out manually. + +{% configuration %} +host: + description: The IP Address of your Gateway + required: true + type: string +version: + description: Major version of the gateway firmware + required: true + type: integer +{% endconfiguration %} diff --git a/source/_components/light.hive.markdown b/source/_components/light.hive.markdown new file mode 100644 index 00000000000..89f55459fb0 --- /dev/null +++ b/source/_components/light.hive.markdown @@ -0,0 +1,29 @@ +--- +layout: page +title: "Hive Light" +description: "Instructions on how to integrate Hive lights with Home Assistant." +date: 2017-09-24 21:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: hive.png +ha_category: Light +ha_release: 0.59 +ha_iot_class: "Cloud Polling" +--- + + +The 'hive' light component integrates your Hive lights into Home Assistant, enabling control of various settings, depending on the model light. + +The Hive light component supports the following Hive products: +- **Hive Active Light Dimmable** +- **Hive Active Light Cool to Warm White** +- **Hive Active Light Colour Changing** + + ++Full configuration details can be found on the main [Hive component](/components/hive/) page. +
+ + diff --git a/source/_components/light.hue.markdown b/source/_components/light.hue.markdown index 871972d4f0c..d4d37548b6b 100644 --- a/source/_components/light.hue.markdown +++ b/source/_components/light.hue.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Philips Hue" -description: "Instructions how to setup Philips Hue within Home Assistant." +title: "Philips Hue Light" +description: "Instructions how to integrate Philips Hue lights into Home Assistant." date: 2015-03-23 20:09 sidebar: true comments: false @@ -14,119 +14,8 @@ featured: true ha_release: pre 0.7 --- -Philips Hue support is integrated into Home Assistant as a light platform. The preferred way to setup the Philips Hue platform is by enabling the [discovery component](/components/discovery/). +The Philips Hue light platform allows you to control your Philips Hue lights. -Once discovered, if you have a custom default view, locate `configurator.philips_hue` in the entities list ( < > ) and add it to a group in `configuration.yaml`. Restart Home Assistant so that the configurator is visible in the Home Assistant dashboard. Once Home Assistant is restarted, locate and click on `configurator.philips_hue` to bring up the initiation dialog. This will prompt you to press the Hue button to register the Hue hub in Home Assistant. Once complete, the configurator entity isn't needed anymore and can be removed from any visible group in `configuration.yaml`. +This component will automatically add `Lights` configured on your Hue bridges. -When you configure the Hue bridge from Home Assistant, it writes a token to a file in your Home Assistant [configuration directory](/docs/configuration/). That token authenticates the communication with the Hue bridge. This token uses the IP Address of the Hue Bridge. If the IP address for the Hue Bridge changes, you will need to register the Hue Bridge with Home Assistant again. To avoid this you may set up DHCP registration for your Hue Bridge, so that it always has the same IP address. - -Restarting Home Assistant once more should result in the Hue lights listed as "light" entities. Add these light entities to configuration.yaml and restart Home Assistant once more to complete the installation. - -If you want to enable the component without relying on the [discovery component](/components/discovery/), add the following lines to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: hue - host: DEVICE_IP_ADDRESS -``` - -Configuration variables: - -- **host** (*Optional*): IP address of the device, eg. 192.168.1.10. Required if not using the `discovery` component to discover Hue bridges. -- **allow_unreachable** (*Optional*): (true/false) This will allow unreachable bulbs to report their state correctly. -- **filename** (*Optional*): Make this unique if specifying multiple Hue hubs. -- **allow_in_emulated_hue** (*Optional*): )true/false) Enable this to block all Hue entities from being added to the `emulated_hue` component. -- **allow_hue_groups** (*Optional*): (true/false) Enable this to stop Home Assistant from importing the groups defined on the Hue bridge. - -### {% linkable_title Multiple Hue bridges %} - -If you use multiple Hue bridges then it's needed that you provide a configuration file for every bridge. The bridges can't share a single configuration file. - -Add `filename` to your Hue configuration entry in your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -light: - - platform: hue - host: BRIDGE1_IP_ADDRESS - filename: phue.conf - - platform: hue - host: BRIDGE2_IP_ADDRESS - filename: phue2.conf -``` - -### {% linkable_title Using Hue Groups in Home Assistant %} - -The Hue API allows you to group lights. Home Assistant also supports grouping of entities natively, but sometimes it can be useful to use Hue Groups to group light bulbs. By doing so, Home Assistant only needs to send one API call to change the state of all the bulbs in those groups instead of one call for every light in the group. This causes all the bulbs to change state simultaneously. - -These Hue Groups can be a `Luminaire`, `Lightsource`, `LightGroup` or `Room`. The `Luminaire` and `Lightsource` can't be created manually since the Hue bridge manages these automatically based on the discovered bulbs. The `Room` and `LightGroup` can be created manually through the API, or the mobile app. A bulb can only exist in one `Room`, but can exist in multiple `LightGroup`. The `LightGroup` can be useful to link certain bulbs together since. - -The 2nd generation Hue app only allows to create a `Room`. You need to use the first generation app or the API to create a `LightGroup`. - -Example: - -To create a `LightGroup` named `Ceiling lights` that contains the lights 1, 2 and 3, execute the following command: - -```bash -$ curl -XPOST -d '{"name": "Ceiling lights", "lights": ["1", "2", "3"]}' http://- To support Hue Light Groups, your bridge needs to have at least firmware 1.13 (released on June 3, 2016). -
- -More information can be found on the [Philips Hue API documentation](https://www.developers.meethue.com/documentation/groups-api#22_create_group) website. - - -### {% linkable_title Using Hue Scenes in Home Assistant %} - -The Hue platform has it's own concept of scenes for setting the colors of a group of lights at once. Hue Scenes are very cheap, get created by all kinds of apps (as it is the only way to have 2 or more lights change at the same time), and are rarely deleted. A typical Hue hub might have hundreds of scenes stored in them, many that you've never used, almost all very poorly named. - -To avoid user interface overload we don't expose scenes directly. Instead there is a [light.hue_activate_scene](/components/light/#service-lighthue_activate_scene) service which can be used by `automation` or `script` components. -This will have all the bulbs transitioned at once, instead of one at a time using standard scenes in Home Assistant. - -For instance: - -```yaml -script: - porch_on: - sequence: - - service: light.hue_activate_scene - data: - group_name: "Porch" - scene_name: "Porch Orange" -``` - -| Service data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `group_name` | no | The group/room name of the lights. Find this in the Hue official app. -| `scene_name` | no | The name of the scene. Find this in the Hue official app. - -*Note*: `group_name` is not linked to Home Assistant group name. - -*** Finding Group and Scene Names *** - -How do you find these names? - -The easiest way to do this is only use the scenes from the 2nd generation Hue app. That is organized by room (group) and scene Name. Use the values of room name and scene name that you see in the app. You can test these work on the `dev-service` console of your Home Assistant instance. - -Alternatively, you can dump all rooms and scene names using this [gist](https://gist.github.com/sdague/5479b632e0fce931951c0636c39a9578). This does **not** tell you which groups and scenes work together but it's sufficient to get values that you can test in the `dev-service` console. - -*** Caveats *** - -The Hue API doesn't activate scenes directly, only on a Hue Group (typically rooms, especially if using the 2nd gen app). But Hue Scenes don't actually reference their group. So heuristic matching is used. - -Neither group names or scene names are guaranteed unique in Hue. If you are getting non deterministic behavior, adjust your Hue scenes via the App to be more identifying. - -The Hue hub has limited spaces for scenes, and will delete scenes if new ones get created that would overflow that space. The API docs say this is based on "Least Recently Used". +The requirement is that you have setup your [Philips Hue bridge](/components/hue/). diff --git a/source/_components/light.hyperion.markdown b/source/_components/light.hyperion.markdown index eccb243e37d..7f3b23ad6c3 100644 --- a/source/_components/light.hyperion.markdown +++ b/source/_components/light.hyperion.markdown @@ -29,5 +29,7 @@ Configuration variables: - **host** (*Required*): The IP address of the device the Hyperion service is running on. - **port** (*Optional*): The port used to communicate with the Hyperion service. Defaults to `19444`. - **name** (*Optional*): The name of the device used in the frontend. -- **priority** (*Optional*): The priority of the hyperion instance. Defaults to `128`. +- **priority** (*Optional*): The priority of the Hyperion instance. Defaults to `128`. +- **hdmi_priority** (*Optional*): The priority of the HDMI grabber of this Hyperion instance, note that this priority must be higher than all other priorities used for correct behavior. Defaults to `880`. - **default_color** (*Optional*): The color of the light. Defaults to `[255, 255, 255]`. +- **effect_list** (*Optional*): The list of effects that can be used. Defaults to `['HDMI', 'Cinema brighten lights', 'Cinema dim lights', 'Knight rider', 'Blue mood blobs', 'Cold mood blobs', 'Full color mood blobs', 'Green mood blobs', 'Red mood blobs', 'Warm mood blobs', 'Police Lights Single', 'Police Lights Solid', 'Rainbow mood', 'Rainbow swirl fast', 'Rainbow swirl', 'Random', 'Running dots', 'System Shutdown', 'Snake', 'Sparks Color', 'Sparks', 'Strobe blue', 'Strobe Raspbmc', 'Strobe white', 'Color traces', 'UDP multicast listener', 'UDP listener', 'X-Mas']`. diff --git a/source/_components/light.iglo.markdown b/source/_components/light.iglo.markdown new file mode 100644 index 00000000000..5bc12ba1d64 --- /dev/null +++ b/source/_components/light.iglo.markdown @@ -0,0 +1,42 @@ +--- +layout: page +title: "iGlo" +description: "Instructions on how to integrate iGlo lights into Home Assistant." +date: 2017-12-17 08:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: iglo.png +ha_category: Light +ha_iot_class: "Local Polling" +ha_release: 0.61 +--- + +The `iglo` platform allows you to integrate your [iGlo Lights](https://www.youtube.com/watch?v=oHTS9ji_v-s) into Home Assistant. + +To use your iGlo light in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +light: + - platform: iglo + host: 192.168.1.10 +``` + +{% configuration %} +host: + required: true + description: The IP address for connecting to the light. + type: string +name: + required: false + description: The name for this light. + default: iGlo Light + type: string +port: + required: false + description: The port used to connect to the light. + default: 8080 + type: integer +{% endconfiguration %} diff --git a/source/_components/light.insteon_local.markdown b/source/_components/light.insteon_local.markdown index 14f91598c91..06af902dfd7 100644 --- a/source/_components/light.insteon_local.markdown +++ b/source/_components/light.insteon_local.markdown @@ -15,22 +15,4 @@ ha_iot_class: "Local Push" The `insteon_local` light component lets you control your lights connected to an [Insteon Hub](http://www.insteon.com/insteon-hub/) with Home Assistant. -To integrate add a light, configure your hub Insteon(local) with Home Assistant, add the following section to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml platform entry -insteon_local: - host: YOUR HUB IP - username: YOUR HUB USERNAME - password: YOUR HUB PASSWORD - timeout: 10 - port: 25105 -``` - -To add lights (dimmers) to your set-up, add the platform to your light configuration: - -```yaml -light: - - platform: insteon_local -``` - +To get your insteon lights working with Home Assistant, follow the instructions for the general [Insteon local component](/components/insteon_local/). The lights will be automatically disovered and added to Home Assistant. The device names will be the Insteon address of the lights. diff --git a/source/_components/light.mochad.markdown b/source/_components/light.mochad.markdown index 0bf8b817fe6..2902cb71be0 100644 --- a/source/_components/light.mochad.markdown +++ b/source/_components/light.mochad.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Mochad Light" -description: "Instructions how to integrate X10 Mochad switches into Home Assistant." +description: "Instructions how to integrate X10 Mochad lights into Home Assistant." date: 2017-07-14 11:29 sidebar: true comments: false @@ -11,7 +11,7 @@ ha_category: Light ha_release: 0.51 --- -The `mochad` switch platform lets you control an X10 enabled dimmer/light +The `mochad` light platform lets you control an X10 enabled dimmer/light device. To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file: @@ -28,5 +28,7 @@ light: Configuration variables: - **address** (*Required*): The X10 address of the light. -- **name** (*Optional*): The name of the switch. Default is: x10_light_dev_*address*. +- **name** (*Optional*): The name of the light. Default is: x10_light_dev_*address*. - **comm_type** (*Optional*): pl (powerline) or rf (radio frequency). Default is pl. +- **brightness_levels** (*Optional*): The number of brightness levels the X10 light device supports. This can either be 32, 64, or 256 (note that the max +value sent to the device will be n-1 because it starts at 0) diff --git a/source/_components/light.mqtt.markdown b/source/_components/light.mqtt.markdown index 99a1746623c..33f76eb5cc1 100644 --- a/source/_components/light.mqtt.markdown +++ b/source/_components/light.mqtt.markdown @@ -27,39 +27,153 @@ light: command_topic: "office/rgb1/light/switch" ``` -Configuration variables: - -- **command_topic** (*Required*): The MQTT topic to publish commands to change the switch state. -- **brightness_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's brightness. -- **brightness_scale** (*Optional*): Defines the maximum brightness value (i.e. 100%) of the MQTT device (defaults to 255). -- **brightness_state_topic** (*Optional*): The MQTT topic subscribed to receive brightness state updates. -- **brightness_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the brightness value. -- **color_temp_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's color temperature state. The color temperature command slider has a range of 157 to 500 mireds (micro reciprocal degrees). -- **color_temp_state_topic** (*Optional*): The MQTT topic subscribed to receive color temperature state updates. -- **color_temp_value_template** (*Optional*): Defines a [template](/topics/templating/) to extract the color temperature value. -- **effect_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's effect state. -- **effect_state_topic** (*Optional*): The MQTT topic subscribed to receive effect state updates. -- **effect_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the effect value. -- **effect_list** (*Optional*): The list of effects the light supports. -- **name** (*Optional*): The name of the switch. Default is 'MQTT Switch'. -- **on_command_type** (*Optional*): Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on. -- **optimistic** (*Optional*): Flag that defines if switch works in optimistic mode. Default is true if no state topic defined, else false. -- **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF". -- **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON". -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. -- **retain** (*Optional*): If the published message should have the retain flag on or not. -- **rgb_command_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to compose message which will be sent to `rgb_command_topic`. Available variables: `red`, `green` and `blue`. -- **rgb_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's RGB state. -- **rgb_state_topic** (*Optional*): The MQTT topic subscribed to receive RGB state updates. -- **rgb_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the RGB value. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. -- **state_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the state value. -- **white_value_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's white value. -- **white_value_state_topic** (*Optional*): The MQTT topic subscribed to receive white value updates. -- **white_value_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the white value. -- **xy_command_topic** (*Optional*): The MQTT topic to publish commands to change the light's XY state. -- **xy_state_topic** (*Optional*): The MQTT topic subscribed to receive XY state updates. -- **xy_value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the XY value. +{% configuration %} +name: + description: The name of the light. + required: false + type: string + default: MQTT Light +command_topic: + description: The MQTT topic to publish commands to change the switch state. + required: true + type: string +brightness_command_topic: + description: The MQTT topic to publish commands to change the light’s brightness. + required: false + type: string +brightness_scale: + description: "Defines the maximum brightness value (i.e. 100%) of the MQTT device." + required: false + type: integer + default: 255 +brightness_state_topic: + description: The MQTT topic subscribed to receive brightness state updates. + required: false + type: string +brightness_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the brightness value." + required: false + type: string +color_temp_command_topic: + description: The MQTT topic to publish commands to change the light’s color temperature state. The color temperature command slider has a range of 157 to 500 mireds (micro reciprocal degrees). + required: false + type: string +color_temp_state_topic: + description: The MQTT topic subscribed to receive color temperature state updates. + required: false + type: string +color_temp_value_template: + description: "Defines a [template](/topics/templating/) to extract the color temperature value." + required: false + type: string +effect_command_topic: + description: "The MQTT topic to publish commands to change the light's effect state." + required: false + type: string +effect_state_topic: + description: The MQTT topic subscribed to receive effect state updates. + required: false + type: string +effect_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the effect value." + required: false + type: string +effect_list: + description: The list of effects the light supports. + required: false + type: string list +on_command_type: + description: "Defines when on the payload_on is sent. Using `last` (the default) will send any style (brightness, color, etc) topics first and then a `payload_on` to the `command_topic`. Using `first` will send the `payload_on` and then any style topics. Using `brightness` will only send brightness commands instead of the `payload_on` to turn the light on." + required: false + type: string +optimistic: + description: Flag that defines if switch works in optimistic mode. + required: false + type: boolean + default: "`true` if no state topic defined, else `false`." +payload_on: + description: The payload that represents enabled state. + required: false + type: string + default: ON +payload_off: + description: The payload that represents disabled state. + required: false + type: string + default: OFF +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: false +rgb_command_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to compose message which will be sent to `rgb_command_topic`. Available variables: `red`, `green` and `blue`." + required: false + type: string +rgb_command_topic: + description: "The MQTT topic to publish commands to change the light's RGB state." + required: false + type: string +rgb_state_topic: + description: The MQTT topic subscribed to receive RGB state updates. + required: false + type: string +rgb_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the RGB value." + required: false + type: string +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: false + type: string +state_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the state value. The template should match the payload `on` and `off` values, so if your light uses `power on` to turn on, your `state_value_template` string should return `power on` when the switch is on. For example if the message is just `on`, your `state_value_template` should be `power {{ value }}`." + required: false + type: string +white_value_command_topic: + description: "The MQTT topic to publish commands to change the light's white value." + required: false + type: string +white_value_state_topic: + description: The MQTT topic subscribed to receive white value updates. + required: false + type: string +white_value_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the white value." + required: false + type: string +xy_command_topic: + description: "The MQTT topic to publish commands to change the light's XY state." + required: false + type: string +xy_state_topic: + description: The MQTT topic subscribed to receive XY state updates. + required: false + type: string +xy_value_template: + description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the XY value." + required: false + type: string +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline +{% endconfiguration %}Make sure that your topics match exactly. `some-topic/` and `some-topic` are different topics. diff --git a/source/_components/light.mqtt_json.markdown b/source/_components/light.mqtt_json.markdown index 54732fe5bff..d14f58001a4 100644 --- a/source/_components/light.mqtt_json.markdown +++ b/source/_components/light.mqtt_json.markdown @@ -48,23 +48,99 @@ light: command_topic: "home/rgb1/set" ``` -Configuration variables: - -- **command_topic** (*Required*): The MQTT topic to publish commands to change the light's state. -- **brightness** (*Optional*): Flag that defines if the light supports brightness. Default is false. -- **color_temp** (*Optional*): Flag that defines if the light supports color temperature. Default is false. -- **effect** (*Optional*): Flag that defines if the light supports effects. Default is false. -- **effect_list** (*Optional*): The list of effects the light supports. -- **flash_time_long** (*Optional*): The duration, in seconds, of a "long" flash. Default is 10. -- **flash_time_short** (*Optional*): The duration, in seconds, of a "short" flash. Default is 2. -- **name** (*Optional*): The name of the light. Default is "MQTT JSON Light." -- **optimistic** (*Optional*): Flag that defines if the light works in optimistic mode. Default is true if no state topic defined, else false. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. -- **retain** (*Optional*): If the published message should have the retain flag on or not. -- **rgb** (*Optional*): Flag that defines if the light supports RGB colors. Default is false. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. -- **white_value** (*Optional*): Flag that defines if the light supports white values. Default is false. -- **xy** (*Optional*): Flag that defines if the light supports XY colors. Default is false. +{% configuration %} +name: + description: The name of the light. + required: false + type: string + default: MQTT JSON Light +command_topic: + description: The MQTT topic to publish commands to change the light’s state. + required: true + type: string +brightness: + description: Flag that defines if the light supports brightness. + required: false + type: boolean + default: false +brightness_scale: + description: "Defines the maximum brightness value (i.e. 100%) of the MQTT device." + required: false + type: integer + default: 255 +color_temp: + description: Flag that defines if the light supports color temperature. + required: false + type: boolean + default: false +effect: + description: Flag that defines if the light supports effects. + required: false + type: boolean + default: false +effect_list: + description: The list of effects the light supports. + required: false + type: string list +flash_time_long: + description: The duration, in seconds, of a “long” flash. + required: false + type: integer + default: 10 +flash_time_short: + description: The duration, in seconds, of a “short” flash. + required: false + type: integer + default: 2 +optimistic: + description: Flag that defines if the light works in optimistic mode. + required: false + type: boolean + default: "`true` if no state topic defined, else `false`." +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +retain: + description: If the published message should have the retain flag on or not. + required: false + type: boolean + default: false +rgb: + description: Flag that defines if the light supports RGB colors. + required: false + type: boolean + default: false +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: false + type: string +white_value: + description: Flag that defines if the light supports white values. + required: false + type: boolean + default: false +xy: + description: Flag that defines if the light supports XY colors. + required: false + type: boolean + default: false +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline +{% endconfiguration %}
Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics. @@ -120,6 +196,29 @@ light: brightness: true ``` +### {% linkable_title Brightness Scaled %} + +To enable a light using a brightness scale other than 8bit the `brightness_scale` option may be added to denote the "fully on" value: +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt_json + name: mqtt_json_light_1 + state_topic: "home/light" + command_topic: "home/light/set" + brightness: true + brightness_scale: 4095 +``` + +Home Assistant will then convert its 8bit value in the message to and from the device: + +```json +{ + "brightness": 4095, + "state": "ON", +} +``` + ### {% linkable_title Implementations %} - A full example of custom lighting using this platform and an ESP8266 microcontroller can be found [here](https://github.com/corbanmailloux/esp-mqtt-rgb-led). It supports on/off, brightness, transitions, RGB colors, and flashing. diff --git a/source/_components/light.mqtt_template.markdown b/source/_components/light.mqtt_template.markdown index 3eed0fa3445..5a13ea9dfb6 100644 --- a/source/_components/light.mqtt_template.markdown +++ b/source/_components/light.mqtt_template.markdown @@ -33,24 +33,89 @@ light: command_off_template: "off" ``` -Configuration variables: - -- **name** (*Optional*): The name of the light. Default is "MQTT Template Light." -- **effect_list** (*Optional*): List of possible effects. -- **command_topic** (*Required*): The MQTT topic to publish commands to change the light's state. -- **state_topic** (*Optional*): The MQTT topic subscribed to receive state updates. -- **command_on_template** (*Required*): The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `flash`, `transition` and `effect`. -- **command_off_template** (*Required*): The [template](/docs/configuration/templating/#processing-incoming-data) for *off* state changes. Available variables: `state` and `transition`. -- **state_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract state from the state payload value. -- **brightness_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value. -- **red_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value. -- **green_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value. -- **blue_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value. -- **color_temp_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value. -- **effect_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract effect from the state payload value. -- **white_value_template** (*Optional*): [Template](/docs/configuration/templating/#processing-incoming-data) to extract white value from the state payload value. -- **optimistic** (*Optional*): Flag that defines if the light works in optimistic mode. Default is true if no state topic or state template is defined, else false. -- **qos** (*Optional*): The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages. +{% configuration %} +name: + description: The name of the light. + required: false + type: string + default: MQTT Template Light +effect_list: + description: List of possible effects. + required: false + type: string list +command_topic: + description: The MQTT topic to publish commands to change the light’s state. + required: true + type: string +state_topic: + description: The MQTT topic subscribed to receive state updates. + required: false + type: string +command_on_template: + description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `flash`, `transition` and `effect`." + required: true + type: string +command_off_template: + description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *off* state changes. Available variables: `state` and `transition`." + required: true + type: string +state_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract state from the state payload value." + required: false + type: string +brightness_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value." + required: false + type: string +red_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value." + required: false + type: string +green_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value." + required: false + type: string +blue_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value." + required: false + type: string +color_temp_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value." + required: false + type: string +effect_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract effect from the state payload value." + required: false + type: string +white_value_template: + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract white value from the state payload value." + required: false + type: string +optimistic: + description: Flag that defines if the light works in optimistic mode. + required: false + type: string + default: "`true` if no state topic or state template is defined, else `false`." +qos: + description: The maximum QoS level of the state topic. + required: false + type: integer + default: 0 +availability_topic: + description: The MQTT topic subscribed to receive availability (online/offline) updates. + required: false + type: string +payload_available: + description: The payload that represents the available state. + required: false + type: string + default: online +payload_not_available: + description: The payload that represents the unavailable state. + required: false + type: string + default: offline +{% endconfiguration %}
Make sure that your topics match exact. `some-topic/` and `some-topic` are different topics. diff --git a/source/_components/light.mystrom.markdown b/source/_components/light.mystrom.markdown index ea1334c3f97..f9ceacdb226 100644 --- a/source/_components/light.mystrom.markdown +++ b/source/_components/light.mystrom.markdown @@ -26,11 +26,21 @@ light: mac: MAC_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The IP address of your myStrom WiFi Bulb, eg. `192.168.1.32`. -- **mac** (*Required*): The MAC address of your myStrom WiFi Bulb, eg. `5AAC8CA542F3`. -- **name** (*Optional*): The name to use when displaying this light. +{% configuration %} +host: + description: "The IP address of your myStrom WiFi Bulb, e.g., `192.168.1.32`." + required: true + type: string +mac: + description: "The MAC address of your myStrom WiFi Bulb, e.g., `5AAC8CA542F3`." + required: true + type: string +name: + description: The name to use when displaying this bulb. + required: false + type: string + default: myStrom Bulb +{% endconfiguration %} Check if you are able to access the light located at `IP_ADRRESS`. The details about your light is provided as a JSON response. diff --git a/source/_components/light.template.markdown b/source/_components/light.template.markdown index 69f0315c940..58648b4735b 100755 --- a/source/_components/light.template.markdown +++ b/source/_components/light.template.markdown @@ -42,7 +42,7 @@ light: {% endraw %} {% configuration %} - switches: + lights: description: List of your lights. required: true type: map @@ -51,10 +51,6 @@ light: description: Name to use in the frontend. required: false type: string - entity_id: - description: Add a list of entity IDs so the switch only reacts to state changes of these entities. This will reduce the number of times the light will try to update its state. - required: false - type: [string, list] value_template: description: Defines a template to get the state of the light. required: false diff --git a/source/_components/light.tplink.markdown b/source/_components/light.tplink.markdown index 68fff983950..71fc4e97171 100644 --- a/source/_components/light.tplink.markdown +++ b/source/_components/light.tplink.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "TPLink Bulb" -description: "Instructions how to integrate TPLink bulbs into Home Assistant." +title: "TP-Link Bulb" +description: "Instructions how to integrate TP-Link bulbs into Home Assistant." date: 2017-07-25 08:00 sidebar: true comments: false @@ -14,7 +14,7 @@ ha_release: "0.50" --- -The `tplink` light platform allows you to control the state of your [TPLink smart bulb](http://www.tp-link.com/en/products/list-5609.html). +The `tplink` light platform allows you to control the state of your [TP-Link smart bulb](http://www.tp-link.com/en/products/list-5609.html). Supported units: @@ -23,7 +23,7 @@ Supported units: - LB120 - LB130 -To use your TPLink light in your installation, add the following to your `configuration.yaml` file: +To use your TP-Link light in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -32,9 +32,15 @@ light: host: IP_ADDRESS ``` -Configuration variables: - -- **host** (*Required*): The IP address of your TP-Link bulb, eg. `192.168.1.32`. -- **name** (*Optional*): The name to use when displaying this bulb. - +{% configuration %} +name: + description: The name to use when displaying this bulb. + required: false + type: string + default: TP-Link Light +host: + description: "The IP address of your TP-Link bulb, eg. `192.168.1.32`." + required: true + type: string +{% endconfiguration %} diff --git a/source/_components/light.wemo.markdown b/source/_components/light.wemo.markdown index a2ff553aada..df44818d044 100644 --- a/source/_components/light.wemo.markdown +++ b/source/_components/light.wemo.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Belkin WeMo Lights" -description: "Instructions how to integrate Belkin WeMo LED lights into Home Assistant." +description: "Instructions how to integrate Belkin WeMo LED lights and WeMo Dimmer Switch into Home Assistant." date: 2016-02-20 00:45 sidebar: true comments: false @@ -14,7 +14,7 @@ ha_release: 0.14 --- -The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F5Z0489/) LED lights from within Home Assistant. +The `wemo` platform allows you to control your Belkin WeMo [LED lights](http://www.belkin.com/us/p/P-F5Z0489/) and [Smart Dimmer Switch](http://www.belkin.com/us/F7C059-Belkin/p/P-F7C059/) from within Home Assistant. They will be automatically discovered if the discovery component is enabled. diff --git a/source/_components/light.x10.markdown b/source/_components/light.x10.markdown index 7e0a52fd58a..b79a8814413 100644 --- a/source/_components/light.x10.markdown +++ b/source/_components/light.x10.markdown @@ -25,6 +25,7 @@ light: - platform: x10 devices: - id: a2 + name: Guest Room - id: a3 name: Bedroom Lamp ``` @@ -32,4 +33,4 @@ light: Configuration variables: - **id** (*Required*): Device identifier. Composed of house code and unit id. -- **name** (*Optional*): A friendly name for the device. By default *id* from the device is used. +- **name** (*Required*): A friendly name for the device. diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown index 426b4754b0b..2d836c596a9 100644 --- a/source/_components/light.yeelight.markdown +++ b/source/_components/light.yeelight.markdown @@ -47,8 +47,9 @@ Per default the bulb limits the amount of requests per minute to 60, a limitatio ### {% linkable_title Initial setup %}
Before trying to control your light through Home Assistant, you have to setup your bulb using Yeelight app. ( [Android](https://play.google.com/store/apps/details?id=com.yeelight.cherry&hl=fr), [IOS](https://itunes.apple.com/us/app/yeelight/id977125608?mt=8) ). -In the bulb property, you have to enable "Developer Mode" Developer mode may only be available with the latest firmware installed on your bulb. Firmware can be updated in the application after connecting the bulb. -Determine your bulb IP (using router, software, ping ...) +In the bulb property, you have to enable "LAN Mode" (previously called "Developer mode"). LAN mode may only be available with the latest firmware installed on your bulb. Firmware can be updated in the application after connecting the bulb. +Determine your bulb IP (using router, software, ping ...). +Information on how to enable "LAN Mode" can be found [here](https://getyeti.co/posts/how-to-control-yeelight-and-your-smarthome-with-yeti).
@@ -58,6 +59,7 @@ This component is tested to work with the following models. If you have a differ
- **YLDP01YL**: LED Bulb (White)
- **YLDP02YL**: LED Bulb (Color)
- **YLDP03YL**: LED Bulb (Color) - E26
+- **YLDD01YL**: Lightstrip (Color)
- **YLDD02YL**: Lightstrip (Color)
diff --git a/source/_components/linode.markdown b/source/_components/linode.markdown
index 49336ba74a1..623132c0448 100644
--- a/source/_components/linode.markdown
+++ b/source/_components/linode.markdown
@@ -13,7 +13,7 @@ ha_release: 0.57
ha_iot_class: "Cloud Polling"
---
-The `linode` component allows you to access the information about your [Linode](https://www.linode.com) systems from Home Assistant.
+The `linode` component allows you to access the information about your [Linode](https://linode.com) systems from Home Assistant.
Obtain your oAuth2 Access Token from Linode account.
*
-If you are configuring on a Raspberry Pi, there are excellent instructions with GPIO schematics and driver configurations [here](http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/). Consider following these.
+If you are configuring on a Raspberry Pi, there are excellent instructions with GPIO schematics and driver configurations [here](http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/). Take notice, the instructions in this blog are valid for Raspian Jesse where lirc 0.9.0 was included in the debian package. In Raspian Stretch lirc 0.9.4 is included in the Debian package.
+The configuration is slightly different :
+
+ - The `hardware.conf` file is not supported, obsoleted by a new `lirc_options.conf` file and systemd unit definitions.
+ - The former single `lirc` service is replaced with the three systemd services `lircd.service`, `lircmd.service` and `irexec.service`. There is no counterpart to the 0.9.0 `lirc` service which covered all of these. Using a separate transmitter device requires yet another service.
+ - 0.9.4 defaults to using systemd for controlling the services. This is not just start/stop functionality, systemd is used to implement new features and to address shortcomings in 0.9.0. However, traditional systemV scripts are also installed and could be used although this is less tested and not really documented.
+
+For more infomation have a look at `/usr/share/doc/lirc/README.Debian.gz` where the update process is explained when you have updated from jessie to stretch.
Make sure that your topics match exactly. `some-topic/` and `some-topic` are different topics.
@@ -58,7 +105,7 @@ The example below shows a full configuration for a MQTT lock.
# Example configuration.yml entry
lock:
- platform: mqtt
- name: Frontdoor
+ name: Frontdoor
state_topic: "home-assistant/frontdoor/"
command_topic: "home-assistant/frontdoor/set"
payload_lock: "LOCK"
@@ -69,7 +116,7 @@ lock:
value_template: '{% raw %}{{ value.x }}{% endraw %}'
```
-Keep an eye on retaining messages to keep the state as you don't want to unlock your door by accident when you restart something.
+Keep an eye on retaining messages to keep the state as you don't want to unlock your door by accident when you restart something.
For a check you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your lock manually:
diff --git a/source/_components/lock.sesame.markdown b/source/_components/lock.sesame.markdown
index 121d337cefb..01d9910fdac 100644
--- a/source/_components/lock.sesame.markdown
+++ b/source/_components/lock.sesame.markdown
@@ -17,7 +17,7 @@ The `sesame` platform allows you to control your [Sesame](https://candyhouse.co/
Your Sesame needs to be paired with a mobile device running the app in *virtual station* mode, or a standalone [Wi-Fi Access Point](https://candyhouse.co/collections/frontpage/products/wi-fi-access-point).
-Once you have remote access enabled, add the following to your `configuration.yaml` file:
+Once you have remote access enabled using one of the above AND the Integration - cloud option enabled on the Sesame app for that lock settings, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
lock:
diff --git a/source/_components/logentries.markdown b/source/_components/logentries.markdown
index e14b908b871..b365e57f63d 100644
--- a/source/_components/logentries.markdown
+++ b/source/_components/logentries.markdown
@@ -11,7 +11,9 @@ footer: true
ha_category: "History"
---
-The `logentries` component makes it possible to log all state changes to [your Logentries account](http://logentries.com/) using Logentries Webhook endpoint and a token based log
+The `logentries` component makes it possible to log all state changes to [Logentries](http://logentries.com/) using Logentries Webhook endpoint.
+
+Open the **Add a Log** page and choose **Manual**. Enter a name for your log in **Log Name**, add a group in **Select Log Set**, set **Token TCP - logs are identified by a token.** and press **Create Log Token**. The generated token is required for the Home Assistant configuration.
To use the `logentries` component in your installation, add the following to your `configuration.yaml` file:
@@ -21,6 +23,10 @@ logentries:
token: TOKEN
```
-Configuration variables:
+{% configuration %}
+token:
+ description: The token for the log to use.
+ required: true
+ type: string
+{% endconfiguration %}
-- **token** (*Required*): Your Logentries log token.
diff --git a/source/_components/lutron_caseta.markdown b/source/_components/lutron_caseta.markdown
index c2a3f41f7c6..912bd82dc41 100644
--- a/source/_components/lutron_caseta.markdown
+++ b/source/_components/lutron_caseta.markdown
@@ -27,17 +27,25 @@ The currently supported Caseta devices are:
When configured, the `lutron_caseta` component will automatically discover the currently supported devices as setup in the Lutron Smart Bridge. The name assigned in the Lutron mobile app will be used to form the `entity_id` used in Home Assistant. e.g. a dimmer called 'Bedroom Lamp' becomes `light.bedroom_lamp` in Home Assistant.
-To use Lutron Caseta devices in your installation, add the following to your `configuration.yaml` file using the IP of your Smart Bridge:
+To use Lutron Caseta devices in your installation, you must first log in to your Lutron account and generate a certificate that allows Home Assistant to connect to your bridge. This can be accomplished by downloading and executing [this script](/assets/get_lutron_cert.zip), which will generate three files: caseta.key, caseta.crt, caseta-bridge.crt when you run it. See the instructions at the top of the script for more information.
+
+Once you have the three necessary files, place them in your configuration directory and add the following to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
lutron_caseta:
host: IP_ADDRESS
+ keyfile: caseta.key
+ certfile: caseta.crt
+ ca_certs: caseta-bridge.crt
```
Configuration variables:
- **host** (*Required*): The IP address of the Lutron Smart Bridge.
+- **keyfile** (*Required*): The private key that Home Assistant will use to authenticate to the bridge.
+- **certfile** (*Required*): The certificate chain that Home Assistant will use to authenticate to the bridge.
+- **ca_certs** (*Required*): The list of certificate authorities (usually only one) that Home Assistant will expect when connecting to the bridge.
It is recommended to assign a static IP address to your Lutron Smart Bridge. This ensures that it won't change IP address, so you won't have to change the `host` if it reboots and comes up with a different IP address.
diff --git a/source/_components/maxcube.markdown b/source/_components/maxcube.markdown
index c26cbe114bc..c9645e9fc59 100644
--- a/source/_components/maxcube.markdown
+++ b/source/_components/maxcube.markdown
@@ -30,7 +30,7 @@ A `maxcube` section must be present in the `configuration.yaml` file and contain
```yaml
# Example configuration.yaml entry
maxcube:
- host: 192.168.0.20
+ host: 192.168.0.20
```
Configuration variables:
- **host** (*Required*): The IP address of the eQ-3 MAX! Cube to use.
diff --git a/source/_components/media_player.aquostv.markdown b/source/_components/media_player.aquostv.markdown
index 2c764f46873..0e3dbcba7e0 100644
--- a/source/_components/media_player.aquostv.markdown
+++ b/source/_components/media_player.aquostv.markdown
@@ -52,5 +52,7 @@ Currently known supported models:
- LC-52LE925UN
- LC-60LE925UN
- LC-60LE857U
+- LC-60EQ10U
+- LC-60SQ15U
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.aquostv.markdown).
diff --git a/source/_components/media_player.cast.markdown b/source/_components/media_player.cast.markdown
index 52d0e1d39c0..63271c16760 100644
--- a/source/_components/media_player.cast.markdown
+++ b/source/_components/media_player.cast.markdown
@@ -17,7 +17,7 @@ ha_iot_class: "Local Polling"
Google Cast devices like Android TVs and Chromecasts will be automatically discovered if you enable [the discovery component]({{site_root}}/components/discovery/). There is a issue where Chromecasts can only be discovered if your device is connected to the same subnet as your Chromecast.
-Chromecast platform can also be forced to load by adding the following lines to your `configuration.yaml`:
+The Chromecast platform can also be forced to load by adding the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
@@ -28,4 +28,15 @@ media_player:
Configuration variables:
- **host** (*Optional*): Use only if you don't want to scan for devices.
-- **ignore_cec** (*Optional*) A list of chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information.](https://github.com/balloob/pychromecast#ignoring-cec-data)
+- **ignore_cec** (*Optional*) A list of Chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information.](https://github.com/balloob/pychromecast#ignoring-cec-data)
+
+## {% linkable_title Example %}
+
+By setting `host:` you can specify the Chromecast to use.
+
+```yaml
+# Example configuration.yaml entry
+media_player:
+ - platform: cast
+ host: 192.168.1.10
+```
diff --git a/source/_components/media_player.denonavr.markdown b/source/_components/media_player.denonavr.markdown
index a64c85c44b3..9d9e50da1d4 100644
--- a/source/_components/media_player.denonavr.markdown
+++ b/source/_components/media_player.denonavr.markdown
@@ -18,6 +18,7 @@ The `denonavr` platform allows you to control a [Denon Network Receivers](http:/
Supported devices:
+- Denon AVR-X1300W
- Denon AVR-X2000
- Denon AVR-X2100W
- Denon AVR-X4100W
diff --git a/source/_components/media_player.markdown b/source/_components/media_player.markdown
index 18350ce1326..62c1af3a4cc 100644
--- a/source/_components/media_player.markdown
+++ b/source/_components/media_player.markdown
@@ -14,7 +14,7 @@ Interacts with media players on your network. Please check the sidebar for a ful
## {% linkable_title Services %}
### {% linkable_title Media control services %}
-Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`
+Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------ |
@@ -58,11 +58,11 @@ Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`,
#### {% linkable_title Service `media_player/shuffle_set` %}
-Currently only supported on [Spotify](/components/media_player.spotify/), [MPD](/components/media_player.mpd/), [Kodi](/components/media_player.kodi/), and [Universal](/components/media_player.universal/).
+Currently only supported on [Spotify](/components/media_player.spotify/), [MPD](/components/media_player.mpd/), [Kodi](/components/media_player.kodi/), [Squeezebox](/components/media_player.squeezebox/) and [Universal](/components/media_player.universal/).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | no | Target a specific media player. For example `media_player.spotify`|
-| `shuffle` | no | `true`/`false` for enabling/disabling shuffle |
+| `shuffle` | no | `true`/`false` for enabling/disabling shuffle |
diff --git a/source/_components/media_player.monoprice.markdown b/source/_components/media_player.monoprice.markdown
index 7487e75b1e8..75e41d9b631 100644
--- a/source/_components/media_player.monoprice.markdown
+++ b/source/_components/media_player.monoprice.markdown
@@ -47,3 +47,25 @@ Configuration variables:
- **port** (*Required*): The serial port to which Monoprice amplifier is connected
- **zones** (*Required*): This is the list of zones available. Valid zones are 11,12,13,14,15,16. In case multiple Monoprice devices are stacked together the list of valid zones is extended by 21,22,23,24,25,26 for the second device and 31,32,33,34,35,36 for the third device. Each zone must have a name assigned to it.
- **sources** (*Required*): The list of sources available. Valid source numbers are 1,2,3,4,5,6. Each source number corresponds to the input number on the Monoprice amplifier. Similar to zones, each source must have a name assigned to it.
+
+### {% linkable_title Service `snapshot` %}
+
+Take a snapshot of one or more zones' states. This service, and the following one are useful if you want to play a doorbell or notification sound and resume playback afterward. If no `entity_id` is provided, all zones are snapshotted.
+
+The following attributes are stored in a snapshot:
+- Power status (On/Off)
+- Mute status (On/Off)
+- Volume level
+- Source
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of zones.
+
+### {% linkable_title Service `restore` %}
+
+Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all zones are restored.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of zones.
diff --git a/source/_components/media_player.samsungtv.markdown b/source/_components/media_player.samsungtv.markdown
index 511bdeee001..c743a692698 100644
--- a/source/_components/media_player.samsungtv.markdown
+++ b/source/_components/media_player.samsungtv.markdown
@@ -38,6 +38,7 @@ Configuration variables:
Currently known supported models:
- C7700
+- D5500
- D6500
- D7000
- D8000
@@ -55,17 +56,22 @@ Currently known supported models:
- U6300 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
- K6500AF (port must be set to 8001)
- KS8005 (port must be set to 8001, and `pip3 install websocket-client` must be executed)
+- KU6290 (port must be set to 8001)
+- MU6170UXZG (port must be set to 8001, and `pip3 install websocket-client` must be executed)
- KS7502 (port must be set to 8001, and `pip3 install websocket-client` must be executed, turn on doesn't work, turn off works fine)
- K5600AK (partially supported, turn on works but state is not updated)
+- UE65KS8005 (port must be set to 8001, On/Off, Forward/Backward, Volume are OK, but no Play button)
+- UE6199UXZG (port must be set to 8001, On/Off, Forward/Backward, Volume control, but no Play button)
Currently tested but not working models:
- J5200 - Unable to see state and unable to control
+- J5500 - State is always "on" and unable to control (but port 8001 *is* open)
- JU7000 - Unable to see state and unable to control (but port 8001 *is* open)
- JU7500 - Unable to see state and unable to control
- JS9000 - State is always "on" and unable to control (but port 8001 *is* open)
- JS9500 - State is always "on" and unable to control (but port 8001 *is* open)
-- MU6170UXZG (port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on).)
+- MU6300 - Port set to 8001, `pip3 install websocket-client` must be executed, turning on works, status not working reliably, turning off is not permanent (it comes back on)
If your model is not on the list then give it a test, if everything works correctly then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.github.io/tree/current/source/_components/media_player.samsungtv.markdown).
The first letter (U, P, L, H & K) represent the screen type, e.g. LED or Plasma. The second letter represents the region, E is Europe, N is North America and A is Asia & Australia. The two numbers following that represent the screen size.
diff --git a/source/_components/media_player.sonos.markdown b/source/_components/media_player.sonos.markdown
index 9f54fa81732..3afe420ff4d 100644
--- a/source/_components/media_player.sonos.markdown
+++ b/source/_components/media_player.sonos.markdown
@@ -109,7 +109,7 @@ Clear the sleep timer on a speaker, if one is set.
### {% linkable_title Service `sonos_update_alarm` %}
-Update an existing sonos alarm.
+Update an existing Sonos alarm.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
@@ -119,3 +119,15 @@ Update an existing sonos alarm.
| `volume` | yes | Float for volume level.
| `enabled` | yes | Boolean for whether or not to enable this alarm.
| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players.
+
+### {% linkable_title Service `sonos_set_option` %}
+
+Set Sonos speaker options.
+
+Night Sound and Speech Enhancement modes are only supported on Sonos PLAYBAR and PLAYBASE speakers when playing from the TV source. Other speaker types will ignore these options.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of `entity_id`s that will have their options set.
+| `night_sound` | yes | Boolean to control Night Sound mode.
+| `speech_enhance` | yes | Boolean to control Speech Enhancement mode.
diff --git a/source/_components/media_player.squeezebox.markdown b/source/_components/media_player.squeezebox.markdown
index d091d13b6d9..b226960e31b 100644
--- a/source/_components/media_player.squeezebox.markdown
+++ b/source/_components/media_player.squeezebox.markdown
@@ -33,3 +33,25 @@ Configuration variables:
- **password** (*Optional*): The password, if password protection is enabled.
This platform now uses the web interface of the Logitech Media Server to send commands. The default port of the web interface is 9000. It is the same port that you use to access the LMS through your web browser. Originally, this platform used the telnet interface, which defaults to 9090. If you previously specified the port in your configuration file, you will likely need to update it.
-The Home Assistant Neato platform has only be tested with a Botvac Connected. There is no support for the Botvac D3 Connected and Botvac D5 Connected robots at this time.
+After the update to firmware 4.0 (which adds cleaning maps) there is also support for displaying the maps of the Botvac D3 Connected and Botvac D5 Connected robots. The start/stop functionality does not work. More information on how to update here: https://support.neatorobotics.com/hc/en-us/articles/115004320694-Software-Update-4-0-for-Neato-Botvac-Connected-D3-D5-
-The Home Assistant Netatmo platform has only be tested with the classic indoor, outdoor module and rain meter. There is no support for the wind meter module at this time because developers does not own these modules. -
diff --git a/source/_components/notify.ciscospark.markdown b/source/_components/notify.ciscospark.markdown index 96bc67c4968..cf2449fac42 100644 --- a/source/_components/notify.ciscospark.markdown +++ b/source/_components/notify.ciscospark.markdown @@ -18,6 +18,9 @@ To use this notification platform you need to get a developer token. To obtain a At this time you also need to specify the `Cisco Spark` `roomid`. The `roomid` can also be found at [Spark for Developers](https://developer.ciscospark.com/index.html). Just look in the Documentation under Rooms. +In order to get notified for all new messages in the room you will need to create a bot. This will post the messages from the bot and mark them as new for you which will alert you. If you use your own personal token the messages are added to the room but no notification is triggered. +Once you have created the bot through the new App menu you will need to add the bot to the room that you are a member of as well. Now use the bot access token in your configuration below. + To enable the Cisco Spark notification in your installation, add the following to your `configuration.yaml` file: ```yaml diff --git a/source/_components/notify.clicksend.markdown b/source/_components/notify.clicksend.markdown index 96a43adfe12..e7eb8acc816 100644 --- a/source/_components/notify.clicksend.markdown +++ b/source/_components/notify.clicksend.markdown @@ -18,10 +18,10 @@ The `clicksend` platform uses [ClickSend](https://clicksend.com) to deliver noti ### Get your ClickSend API Credentials Go to your [ClickSend Dashboard](https://dashboard.clicksend.com) section and create your new project. After creating your project, you should now be able to obtain your `username` and `api_key`. -### Configuration To add ClickSend to your installation, add the following to your Home Assistant `configuration.yaml` file: ```yaml +# Example configuration.yaml entry notify: - platform: clicksend name: ClickSend @@ -30,12 +30,28 @@ notify: recipient: PHONE_NO ``` -Configuration variables: - -* **name** (Optional): Setting the optional parameter name allows multiple notifiers to be created. The default value is `ClickSend`. The notifier will bind to the service notify.NOTIFIER_NAME. -* **username** (Required): Your `Username`. -* **api_key** (Required): Your `API Key`. -* **recipient** (Required): Your phone no. This is where you want to send your notification SMS messages. eg: `09171234567` - +{% configuration %} +name: + description: "Setting the optional parameter name allows multiple notifiers to be created. The default value is `ClickSend`. The notifier will bind to the service `notify.NOTIFIER_NAME`." + required: false + type: string +username: + description: Your Clicksend username. + required: true + type: string +api_key: + description: Your Clicksend API Key. + required: true + type: string +recipient: + description: "Your phone number. This is where you want to send your notification SMS messages, e.g., `09171234567`." + required: true + type: string +sender: + description: The name or number of the sender. + required: false + type: string + default: recipient +{% endconfiguration %} To use notifications, please see the [getting started with automation page](https://home-assistant.io/getting-started/automation/). diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 34547169778..1adf5f015e1 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -21,14 +21,14 @@ To enable this platform, add the following lines to your `configuration.yaml` fi notify: - name: NOTIFIER_NAME platform: html5 - gcm_api_key: 'gcm-sender-key' + gcm_api_key: 'gcm-server-key' gcm_sender_id: 'gcm-sender-id' ``` Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. -- **gcm_api_key** (*Required if pushing to Chrome*): The API key provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. +- **gcm_api_key** (*Required if pushing to Chrome*): The API Server key provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. - **gcm_sender_id** (*Required if pushing to Chrome*): The sender ID provided to you by Google for Google Cloud Messaging (GCM). Required to push to Chrome. ### {% linkable_title Getting ready for Chrome %} @@ -41,11 +41,12 @@ Configuration variables: #### {% linkable_title Verify your domain with Hass.io %} -1. For verifying your domain you need to download a file in step 2. -2. Create a dictionary named "www" in you Hass.io configuration dictionary. -3. Place the file (something like this: google*.html) in the "www" directory. -4. You can open it by going to **https://yourdomain/local/exact_file_name.html** -5. Proceed with step 3. +1. Set `https://yourdomain/local/` as URL. +2. For verifying your domain you need to download a file in step 2. +3. Create a directory named "www" in you Hass.io configuration directory. +4. Place the file (something like this: google*.html) in the "www" directory. +5. Verify the domain. +6. Proceed with step 3. ### {% linkable_title Requirements %} @@ -65,7 +66,7 @@ The `html5` platform can only function if all of the following requirements are Assuming you have already added the platform to your configuration: 1. Open Home Assistant in Chrome or Firefox. -2. Assuming you have met all the [requirements](#requirements) above, you should see a new slider in the sidebar labeled Push Notifications. +2. Assuming you have met all the [requirements](#requirements) above, you should see a new slider for Push Notifications through the sidebar Configuration > General. 3. Slide it to the on position. 4. Within a few seconds you should be prompted to allow notifications from Home Assistant. 5. Assuming you accept, that's all there is to it! diff --git a/source/_components/notify.lametric.markdown b/source/_components/notify.lametric.markdown index 8adb8c094eb..cf50cffaa2e 100644 --- a/source/_components/notify.lametric.markdown +++ b/source/_components/notify.lametric.markdown @@ -12,17 +12,71 @@ ha_category: Notifications ha_release: 0.49 --- -This component allows to send notification to a LaMetric device. It need the LaMetric platform to be configured first. +The `lametric` notification platform allows to send notification to a LaMetric device. It needs the LaMetric platform to be configured first. + +To enable LaMetric notifications in your installation, add the following to your `configuration.yaml` file: ```yaml +# Example configuration.yaml entry notify: - name: lametric1 + name: NOTIFIER_NAME platform: lametric - display_time: 20 - icon: i555 ``` -- **name** (*Optional*): The name of the LaMetric device. Usually it is "My Lametric" -- **display_time** (*Optional*): Defines how long the message should be displayed (in seconds). -- **icon** (*Optional*): An icon or animation. Check out the list of all icons her: https://developer.lametric.com/icons -Note that icons always begin with "i" while animations begin with "a". This is part of the name, you can't just use the number. +{% configuration %} +name: + description: "The optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`." + required: false + type: string + default: notify +lifetime: + description: Defines how long the message remains in LaMetric notification queue (in seconds). + required: false + type: int + default: 10 +icon: + description: An icon or animation. + required: false + type: string +cycles: + description: Defines how often the notification is displayed. + required: false + type: int + default: 1 +{% endconfiguration %} + +Check out the list of all icons at [https://developer.lametric.com/icons](https://developer.lametric.com/icons). Note that icons always begin with "i" while animations begin with "a". This is part of the name, you can't just use the number! + +## {% linkable_title Examples %} + +### {% linkable_title Full configuration example %} + +```yaml +# Example configuration.yaml entry +notify: + name: NOTIFIER_NAME + platform: lametric + lifetime: 20 + icon: a7956 + cycles: 3 +``` + +### {% linkable_title Changing sounds and icons %} + +To add a notification sound or an icon override, it has to be done via service data. + +```yaml +- alias: "Send notification on arrival at school" + trigger: + platform: state + entity_id: device_tracker.son_mobile + from: 'not_home' + to: 'school' + action: + service: notify.lametric + data: + message: "Son has arrived at school!" + data: + sound: 'notification' + icon: 'i51' + ``` diff --git a/source/_components/notify.nfandroidtv.markdown b/source/_components/notify.nfandroidtv.markdown index 3a91a7cba0e..79b3096a7de 100644 --- a/source/_components/notify.nfandroidtv.markdown +++ b/source/_components/notify.nfandroidtv.markdown @@ -14,9 +14,11 @@ ha_iot_class: "Local Polling" --- -Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google&hl=en) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). +Notification platform for [Notifications for Android TV](https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google) and [Notifications for FireTV](https://play.google.com/store/apps/details?id=de.cyberdream.firenotifications.google). + The notifications are in the global scope of your Android TV device. They will be displayed regardless of which application is running. -The In-App purchases only apply to the client for Android smartphones, so there isn't any limit when pushing notifications from Home Assistant. + +When setting this up be aware, that there are two apps: one for your smartphone to send notifications (not required for this platform) and one for your Android TV device to receive the notifications. The app available in the store of your target device is the one that is needed to display notifications sent from Home Assistant. The In-App purchases only apply to the client for Android smartphones, so there isn't any limit when pushing notifications from Home Assistant. To enable the notification platform, add the following to your `configuration.yaml` file: @@ -50,7 +52,7 @@ This is a fully customized JSON you can use to test how the final notification w "duration":2, "transparency":"0%", "color": "red", - "interrupt": 1 + "interrupt": 1, } } ``` diff --git a/source/_components/notify.pushover.markdown b/source/_components/notify.pushover.markdown index b9b2dce48a3..67e7db1098a 100644 --- a/source/_components/notify.pushover.markdown +++ b/source/_components/notify.pushover.markdown @@ -37,12 +37,15 @@ Configuration variables: Example Automation: ```yaml - service: notify.entity_id - data: + data: message: "This is the message" title: "Title of message" - sound: pianobar - priority: 0 + data: + url: "https://home-assistant.io/" + sound: pianobar + priority: 0 ``` +Component specific values in the nested `data` section are optional. This is a quote from the Pushover website regarding free/open source apps: @@ -54,7 +57,7 @@ When setting up the application you can use this [icon](https://home-assistant.i To use notifications, please see the [getting started with automation page](/getting-started/automation/). -When sending a notification, optional parameters can also be set as per the pushover [API documentation](https://pushover.net/api). +When sending a notification, optional parameters can also be set as per the pushover [API documentation](https://pushover.net/api). Example notification triggered from the Alexa component for an intents is shown below which also uses [Automation Templating](/getting-started/automation-templating/) for the message: @@ -67,8 +70,9 @@ alexa: service: notify.notify data_template: message: "The location of {% raw %}{{ User }}{% endraw %} has been queried via Alexa." + data: + title: "Home Assistant" data: - title: "Home Assistant" sound: falling device: pixel url: "https://home-assistant.io/" diff --git a/source/_components/notify.pushsafer.markdown b/source/_components/notify.pushsafer.markdown index 4b003d97d82..a62e213e747 100644 --- a/source/_components/notify.pushsafer.markdown +++ b/source/_components/notify.pushsafer.markdown @@ -2,7 +2,7 @@ layout: page title: "Pushsafer" description: "Instructions how to add Pushsafer notifications to Home Assistant." -date: 2017-02-17 20:46 +date: 2018-01-05 11:15 sidebar: true comments: false sharing: true @@ -27,11 +27,78 @@ notify: private_key: ABCDEFGHJKLMNOPQRSTUVXYZ ``` -Configuration variables: +**Configuration variables:** - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **private_key** (*Required*): Your private or alias key. Private key = send the notification to all devices with standard params, alias key send the notification to the devices stored in the alias with predefined params. +### {% linkable_title Examples %} + +Message to two devices with formated text. + +```json +{ + "title": "Test to 2 devices", + "message": "Attention [b]bold[/b] text[br][url=https://www.pushsafer.com]Link to Pushsafer[/url]", + "target": ["1111", "2222"], + "data": { + "icon": "2", + "iconcolor": "#FF0000", + "sound": "2", + "vibration": "1", + "url": "https://home-assistant.io/", + "urltitle": "Open Home Assistant", + "time2live": "0" + } +} +``` + +Message to one device with formated text and image from an external URL. + +```json +{ + "title": "Test to 1 device with image from an url", + "message": "Attention [i]italic[/i] Text[br][url=https://home-assistant.io/]Testlink[/url]", + "target": ["1111"], + "data": { + "icon": "14", + "iconcolor": "#FFFF00", + "sound": "22", + "vibration": "3", + "url": "https://home-assistant.io/", + "urltitle": "Open Home Assistant", + "time2live": "60", + "picture1": { + "url":"https://home-assistant.io/images/components/alexa/alexa-512x512.png" + } + } +} +``` + +Message to two devices and one device group with formated text and local image. + +```json +{ + "title": "Test to 3 devices with local image", + "message": "Attention [i]italic[/i] Text[br][url=https://home-assistant.io/]Testlink[/url]", + "target": ["1111","2222","gs3333"], + "data": { + "icon": "20", + "iconcolor": "#FF00FF", + "sound": "33", + "vibration": "0", + "url": "https://home-assistant.io/", + "urltitle": "Open Home Assistant", + "time2live": "10", + "picture1": { + "path":"C:\\Users\\Kevin\\AppData\\Roaming\\.homeassistant\\image-760-testimage.jpg" + } + } +} +``` + +To customize your push-notification you can take a look at the [Pushsafer API description](https://www.pushsafer.com/en/pushapi). + When setting up the application you can use this [icon](https://home-assistant.io/images/favicon-192x192.png). To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/_components/notify.slack.markdown b/source/_components/notify.slack.markdown index 0445d1df821..75b5419f59a 100644 --- a/source/_components/notify.slack.markdown +++ b/source/_components/notify.slack.markdown @@ -36,13 +36,13 @@ Configuration variables: - **name** (*Optional*): Setting the optional parameter `name` allows multiple notifiers to be created. The default value is `notify`. The notifier will bind to the service `notify.NOTIFIER_NAME`. - **api_key** (*Required*): The Slack API token to use for sending Slack messages. -- **default_channel** (*Required*): The default channel to post to if no channel is explicitly specified when sending the notification message. +- **default_channel** (*Required*): The default channel to post to if no channel is explicitly specified when sending the notification message. A channel can be specified adding a target attribute to the json at the same level as "message" - **username** (*Optional*): Setting username will allow Home Assistant to post to Slack using the username specified. By default not setting this will post to Slack using the user account or botname that you generated the api_key as. - **icon** (*Optional*): Use one of the Slack emojis as an Icon for the supplied username. Slack uses the standard emoji sets used [here](http://www.webpagefx.com/tools/emoji-cheat-sheet/). ### {% linkable_title Slack service data %} -The following attributes can be placed `data` for extended functionality. +The following attributes can be placed inside `data` for extended functionality. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -60,6 +60,7 @@ Example for posting file from URL: { "message":"Message that will be added as a comment to the file.", "title":"Title of the file.", + "target": ["#channelname"], "data":{ "file":{ "url":"http://[url to file, photo, security camera etc]", diff --git a/source/_components/notify.telegram.markdown b/source/_components/notify.telegram.markdown index 7df967d6289..ac89f6f23c7 100644 --- a/source/_components/notify.telegram.markdown +++ b/source/_components/notify.telegram.markdown @@ -156,6 +156,35 @@ homeassistant: ``` +### {% linkable_title Video support %} + +```yaml +... +action: + service: notify.NOTIFIER_NAME + data: + title: Send a video + message: That's an example that sends a video. + data: + video: + - url: http://192.168.1.28/camera.mp4 + username: admin + password: secrete + - file: /tmp/video.mp4 + caption: Video Title xy + - url: http://somebla.ie/video.mp4 + caption: I.e. for a Title +``` + +Configuration variables: + +- **url** or **file** (*Required*): For local or remote path to a video. +- **caption** (*Optional*): The title of the video. +- **username** (*Optional*): Username for a URL which require HTTP authentication. +- **password** (*Optional*): Username for a URL which require HTTP authentication. +- **authentication** (*Optional*): Set to 'digest' to use HTTP digest authentication, defaults to 'basic'. +- **keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom keyboard. +- **inline_keyboard** (*Optional*): List of rows of commands, comma-separated, to make a custom inline keyboard with buttons with associated callback data. ### {% linkable_title Document support %} diff --git a/source/_components/notify.telstra.markdown b/source/_components/notify.telstra.markdown index e60260b6361..4297cfc69f1 100644 --- a/source/_components/notify.telstra.markdown +++ b/source/_components/notify.telstra.markdown @@ -15,7 +15,7 @@ ha_release: 0.31 The `telstra` notification platform allows you to deliver Home Assistant notifications to Australian phone numbers over the [Telstra SMS API](https://dev.telstra.com/content/sms-api-0). -To enable the Telstra notifications in your installation, you must first create an account and API app over at [dev.telstra.com](https://dev.telstra.com/). The free tier allows for 1000 notifications to be sent per month. +To enable the Telstra notifications in your installation, you must first create an account and API app over at [dev.telstra.com](https://dev.telstra.com/). The free tier allows for a maximum of 1000 free messages. After your API app is approved, add the following to your `configuration.yaml` file: diff --git a/source/_components/notify.twilio_sms.markdown b/source/_components/notify.twilio_sms.markdown index 1e35c14866e..ec5002258ce 100644 --- a/source/_components/notify.twilio_sms.markdown +++ b/source/_components/notify.twilio_sms.markdown @@ -47,6 +47,6 @@ automation: data: message: 'The sun has set' target: - - +14151234567 - - +15105555555 + - '+14151234567' + - '+15105555555' ``` diff --git a/source/_components/notify.webostv.markdown b/source/_components/notify.webostv.markdown index 408c31eef02..8064c8fbf85 100644 --- a/source/_components/notify.webostv.markdown +++ b/source/_components/notify.webostv.markdown @@ -33,7 +33,7 @@ Configuration variables: - **host** (*Required*): The IP of the LG WebOS Smart TV, e.g. 192.168.0.10 - **name** (*Required*): The name you would like to give to the LG WebOS Smart TV. - **filename** (*Optional*): The filename where the pairing key with the TV should be stored. This path is relative to Home Assistant's config directory. It defaults to `webostv.conf`. -- **icon** (*Optional*): The path to an image file to use as the icon in notifications. If provided, this image will override the Home Assistant logo. +- **icon** (*Optional*): The path to an image file to use as the icon in notifications. A possible automation could be: diff --git a/source/_components/nuheat.markdown b/source/_components/nuheat.markdown new file mode 100644 index 00000000000..a261aececba --- /dev/null +++ b/source/_components/nuheat.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "NuHeat" +description: "Instructions how to integrate your NuHeat Signature thermostats within Home Assistant." +date: 2017-11-11 18:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: nuheat.png +ha_category: Hub +ha_release: 0.61 +ha_iot_class: "Cloud Polling" +--- + +The `nuheat` component lets you control connected floor heating thermostats from [NuHeat](http://www.nuheat.com/). + +First, you will need to obtain your thermostat's numeric serial number or ID by logging into [MyNuHeat.com](https://mynuheat.com/) and selecting your thermostat(s). + +Once you have the Thermostat ID(s), add the following information to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +nuheat: + username: you@example.com + password: very-secure-password + devices: 12345 + +# Example configuration.yaml entry with multiple thermostats +nuheat: + username: you@example.com + password: very-secure-password + devices: + - 12345 + - 67890 +``` + +{% configuration %} +username: + description: The username for accessing your MyNuHeat account. + required: true + type: string +password: + description: The password for accessing your MyNuHeat account. + required: true + type: string +devices: + description: The serial number/ID of each thermostat you would like to integrate. + required: true + type: [string, int] +{% endconfiguration %} diff --git a/source/_components/pilight.markdown b/source/_components/pilight.markdown index 2b7f8577019..fcb1cf875b4 100644 --- a/source/_components/pilight.markdown +++ b/source/_components/pilight.markdown @@ -13,9 +13,9 @@ ha_release: 0.26 ha_iot_class: "Local Push" --- -[Pilight](https://www.pilight.org/) is a modular and open source solution to communicate with 433 MHz devices and runs on various small form factor computers. A lot of common [protocols](https://wiki.pilight.org/doku.php/protocols) are already available. +[Pilight](https://www.pilight.org/) is a modular and open source solution to communicate with 433 MHz devices and runs on various small form factor computers. A lot of common [protocols](https://manual.pilight.org/protocols/index.html) are already available. -This pilight hub connects to the [pilight-daemon](https://wiki.pilight.org/doku.php/pdaemon) via a socket connection to receive and send codes. Thus Home Assistant does not have to run on the computer in charge of the RF communication. +This pilight hub connects to the [pilight-daemon](https://manual.pilight.org/programs/daemon.html) via a socket connection to receive and send codes. Thus Home Assistant does not have to run on the computer in charge of the RF communication. The received and supported RF codes are put on the event bus of Home Assistant and are therefore directly usable by other components (e.g. automation). Additionally a send service is provided to send RF codes. @@ -31,11 +31,11 @@ pilight: Configuration variables: - **host** (*Required*): The IP address of the computer running the pilight-daemon, e.g. 192.168.1.32. -- **port** (*Required*): The network port to connect to. The usual port is [5000](https://www.pilight.org/development/api/). +- **port** (*Required*): The network port to connect to. The usual port is [5000](https://manual.pilight.org/development/api.html). - **send_delay** (*Optional*): You can define a send delay as a fraction of seconds if you experience transmission problems when you try to switch multiple switches at once. This can happen when you use a [pilight USB Nano](https://github.com/pilight/pilight-usb-nano) as hardware and switches a whole group of multiple switches on or off. Tested values are between 0.3 and 0.8 seconds depending on the hardware. - **whitelist** (*Optional*): You can define a whitelist to prevent that too many unwanted RF codes (e.g. the neighbours weather station) are put on your HA event bus. All defined subsections have to be matched. A subsection is matched if one of the items are true. -In this example only received RF codes using a daycom or Intertechno protocol are put on the event bus and only when the device id is 42. For more possible settings please look at the receiver section of the pilight [API](https://www.pilight.org/development/api/). +In this example only received RF codes using a daycom or Intertechno protocol are put on the event bus and only when the device id is 42. For more possible settings please look at the receiver section of the pilight [API](https://manual.pilight.org/development/api.html). A full configuration sample could look like the sample below: @@ -55,9 +55,9 @@ pilight: ## {% linkable_title Troubleshooting %} -- A list of tested RF transceiver hardware is available [here](https://wiki.pilight.org/doku.php/electronics). This might be useful before buying. +- A list of tested RF transceiver hardware is available [here](https://manual.pilight.org/electronics/index.html). This might be useful before buying. - Sending commands is simple when the protocol is known by pilight, but receiving commands can be rather difficult. It can happen that the code is not correctly recognized due to different timings in the sending hardware or the RF receiver. If this happens follow these steps: -1. [Install](https://www.pilight.org/get-started/installation/) pilight from source (do not worry that is very easy) and only activate the protocols you are expecting in the pop up menu. This reduces false positives. +1. [Install](https://manual.pilight.org/installation.html) pilight from source (do not worry that is very easy) and only activate the protocols you are expecting in the pop up menu. This reduces false positives. 2. Check the real timings of your device + RF receiver by running `pilight-debug`. Remember the `pulslen` parameter. 3. Go to the `libs/pilight/protocols/433.92` subfolder of the pilight source code and open the .c file of your protocol. Search for `MIN_PULSE_LENGTH`, `MAX_PULSE_LENGTH ` and `AVG_PULSE_LENGTH`. Change the pulse lengths to match your measured one. Recompile and install pilight by re-running `$ sudo ./setup.sh`. diff --git a/source/_components/plant.markdown b/source/_components/plant.markdown index b1c5ec976bc..80fccc281d4 100644 --- a/source/_components/plant.markdown +++ b/source/_components/plant.markdown @@ -45,22 +45,25 @@ Configuration variables: - **max_conductivity** (*Optional*): Maximum conductivity level before triggering a problem. Typical value: 3000 - **min_temperature** (*Optional*): Minimum temperature before triggering a problem. - **max_temperature** (*Optional*): Maximum temperature before triggering a problem. - - **min_brightness** (*Optional*): Minimum brightness before triggering a problem. + - **min_brightness** (*Optional*): Minimum brightness before triggering a problem. In contrast to the other values, this check is *not* looking at the current situation, but rather at the last days. A problem is only reported if the maximum brightness over the last days was lower than min_brightness. You can use this to check if the plant gets enough light during the course of the day. - **max_brightness** (*Optional*): Maximum brightness before triggering a problem. + - **check_days** (*Optional*): time interval (in days) used when checking **min_brightness**, if not set, the default value is 3 ## {% linkable_title Examples %} ### Using plain MQTT sensor to get the data This is a practical example that uses a multiple of `MQTT sensors` to supply the readings used by the `plant` sensor. -Another good source of this data would be the [Mi Flora](https://home-assistant.io/components/sensor.miflora/) component. +Another good source of this data would be the [Mi Flora](/components/sensor.miflora/) component. If the sensor data is within the min/max values the status will be `ok`, if not the status will be `problem`. You can use this to trigger a notification, if there is a problem with your plant. Of course you can only monitor attributes of your plant, where the sensor is configured and is providing the data. ## Data Source -The main sources of the data will usually be a [MiFlora sensor](sensor.miflora) or a [MQTT sensor](sensor.mqtt) receiving the data from a [PlantGateway](https://github.com/ChristianKuehnel/plantgateway). +The main sources of the data will usually be a [MiFlora sensor](/components/sensor.miflora/) or a [MQTT sensor](/components/sensor.miflora/) receiving the data from a [PlantGateway](https://github.com/ChristianKuehnel/plantgateway). If you want to get the date via a PlantGateway, this is a typical configuration for the MQTT sensors: + +{% raw %} ```yaml # Example configuration.yaml entry plant: @@ -99,5 +102,6 @@ sensor: state_topic: my_plant_topic value_template: '{{ value_json.brightness }}' ``` +{% endraw %} You have to replace the `state_topic` with the value that you configured in the PlantGateway. It also depends on the global configuration of your MQTT server. diff --git a/source/_components/rainbird.markdown b/source/_components/rainbird.markdown new file mode 100644 index 00000000000..4257826b7d4 --- /dev/null +++ b/source/_components/rainbird.markdown @@ -0,0 +1,33 @@ +--- +layout: page +title: "Rain Bird" +description: "Instructions on how to integrate your Rain Bird LNK WiFi Module within Home Assistant." +date: 2017-12-07 12:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: rainbird.png +ha_category: Hub +ha_release: 0.61 +ha_iot_class: "Local Polling" +--- + +This `rainbird` component allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant. + +To enable it, add the following to your `configuration.yaml` file: + +```yaml +rainbird: + host: '1.1.1.1' + password: 'XXXXXXX' +``` + +Configuration variables: + +- **host** (*Required*): The IP address of your LNK WiFi Module. +- **password** (*Required*): The password for accessing the module. + +Finish its configuration by visiting the [Rain Bird sensor](/components/sensor.rainbird/) and [Rain Bird switch](/components/switch.rainbird/) documentation. + +Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active). diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 6531fdf71a0..48ada639fde 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -25,18 +25,51 @@ To setup the `recorder` component in your installation, add the following to you recorder: ``` -Configuration variables: - -- **purge_interval** (*Optional*): (days) Enable scheduled purge of older events and states. The purge task runs every x days from when the `recorder component` is first enabled. If a scheduled purge is missed (e.g. if Home Assistant was not running) then the schedule will resume soon after Home Assistant restarts. You can use [service](#service-purge) call `recorder.purge` when required without impacting the purge schedule. -- **purge_keep_days** (*Required with `purge_interval`*): Specify number of history days to keep in recorder database after purge. -- **exclude** (*Optional*): Configure which components should be excluded from recordings. - - **entities** (*Optional*): The list of entity ids to be excluded from recordings. - - **domains** (*Optional*): The list of domains to be excluded from recordings. -- **include** (*Optional*): Configure which components should be included in recordings. If set, all other entities will not be recorded. - - **entities** (*Optional*): The list of entity ids to be included from recordings. - - **domains** (*Optional*): The list of domains to be included from recordings. -- **db_url** (*Optional*): The URL which point to your database. - +{% configuration %} + recorder: + description: Enables the recorder component. Only allowed once. + required: true + type: map + keys: + db_url: + description: The URL which points to your database. + required: false + type: URL + purge_interval: + description: Enable scheduled purge of older events and states. The purge task runs every `purge_interval` days from when the `recorder component` is first enabled. If a scheduled purge is missed (e.g if Home Assistant was not running), the schedule will resume soon after Home Assistant restarts. You can use the [service](#service-purge) call `purge` when required without impacting the purge schedule. If `purge_interval` is set, `purge_keep_days` needs to be set as well. + required: Inclusive + type: int + purge_keep_days: + description: Specify the number of history days to keep in recorder database after purge. If `purge_interval` is set, `purge_keep_days` needs to be set as well. + required: Inclusive + type: int + exclude: + description: Configure which components should be excluded + required: false + type: map + keys: + domains: + description: The list of domains to be excluded from recordings. + required: false + type: List + entities: + description: The list of entity ids to be excluded from recordings. + required: false + type: List + include: + description: Configure which components should be included in recordings. If set, all other entities will not be recorded. + required: false + type: map + keys: + domains: + description: The list of domains to be included in the recordings. + required: false + type: List + entities: + description: The list of entity ids to be included in the recordings. + required: false + type: List +{% endconfiguration %} Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`). @@ -100,26 +133,37 @@ action: keep_days: 5 ``` -## Custom database engines +### {% linkable_title Restore State %} + +If the `recorder` component is activated then some components support `restore_state` which will restore the state of the entity after Home Assistant is started to the state before Home Assistant was stopped. Please make sure that you do not exclude the entities for which you want the state to be restored from your recordings. An incomplete list of components that currently support `restore_state`: + +* [`input_boolean`](/components/input_boolean/#restore-state) +* [`input_number`](/components/input_number/#restore-state) +* [`input_select`](/components/input_select/#restore-state) +* [`input_datetime`](/components/input_datetime/#restore-state) +* [`input_text`](/components/input_text/#restore-state) + + +## {% linkable_title Custom database engines %} | Database engine | `db_url` | | :---------------|:---------------------------------------------------------| | SQLite | `sqlite:///PATH/TO/DB_NAME` | -| MariaDB | `mysql://SERVER_IP/DB_NAME` | -| MariaDB | `mysql://user:password@SERVER_IP/DB_NAME` | -| MySQL | `mysql://SERVER_IP/DB_NAME` | -| MySQL | `mysql://user:password@SERVER_IP/DB_NAME` | -| MySQL (pymysql) | `mysql+pymysql://SERVER_IP/DB_NAME` | -| MySQL (pymysql) | `mysql+pymysql://user:password@SERVER_IP/DB_NAME` | +| MariaDB | `mysql://SERVER_IP/DB_NAME?charset=utf8` | +| MariaDB | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | +| MySQL | `mysql://SERVER_IP/DB_NAME?charset=utf8` | +| MySQL | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | +| MySQL (pymysql) | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8` | +| MySQL (pymysql) | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8` | | PostgreSQL | `postgresql://SERVER_IP/DB_NAME` | | PostgreSQL | `postgresql://scott:tiger@SERVER_IP/DB_NAME` | -| MS SQL Server | `mssql+pymssql://user:pass@SERVER_IP/DB_NAME?charset=utf8` | +| MS SQL Server | `mssql+pymssql://user:pass@SERVER_IP/DB_NAME?charset=utf8` | ## {% linkable_title Installation notes %} Not all Python bindings for the chosen database engine can be installed directly. This section contains additional details which should help you to get it working. -### {% linkable_title MariDB and MySQL %} +### {% linkable_title MariaDB and MySQL %} For MariaDB you may have to install a few dependencies. On the Python side we use the `mysqlclient`: diff --git a/source/_components/remember_the_milk.markdown b/source/_components/remember_the_milk.markdown index d4cc22fa10d..1c3169028b1 100644 --- a/source/_components/remember_the_milk.markdown +++ b/source/_components/remember_the_milk.markdown @@ -59,12 +59,61 @@ If the registration was successful, the Configuration panel will disappear from In the background Home Assistant downloaded a "token" from the Remember The Milk server which is stored in the `remember_the_milk.conf` file locally. So you only need to register once. After that the token is used to authenticate with the server. -## {% linkable_title Creating tasks %} +## {% linkable_title Creating/updating tasks with service ```create_task```%} -This component offers a new service domain ```remember_the_milk``` with the service ```create_task```. You can call this service with the argument ```name``` to create a new task in your Remember The Milk account. You can call this service from your usual automations. +This component offers a new service domain ```remember_the_milk``` with the services ```You will need to install the `python3-dev` or `python3-devel` and the development files for CUPS (`libcups2-dev` or`cups-devel`) package on your system manually (eg. `sudo apt-get install python3-dev libcups2-dev` or `sudo dnf -y install python3-devel cups-devel`) along with a compiler (`gcc`). diff --git a/source/_components/sensor.currencylayer.markdown b/source/_components/sensor.currencylayer.markdown index d26955ba01d..2c59a2a8b9b 100644 --- a/source/_components/sensor.currencylayer.markdown +++ b/source/_components/sensor.currencylayer.markdown @@ -31,8 +31,20 @@ sensor: - INR ``` -Configuration variables: +{% configuration %} +api_key: + description: "The API Key from [Currencylayer](https://currencylayer.com/)." + required: true + type: string +quote: + description: The symbol(s) of the quote or target currencies. + required: false + type: string, list + default: Exchange rate +base: + description: The symbol of the base currency. + required: false + type: string + default: USD +{% endconfiguration %} -- **api_key** (*Required*): API Key from [Currencylayer](https://currencylayer.com/). -- **base** (*Optional*): The symbol of the base currency. Defaults to USD. -- **quote** (*Required*): The symbol(s) of the quote or target currencies. diff --git a/source/_components/sensor.daikin.markdown b/source/_components/sensor.daikin.markdown new file mode 100644 index 00000000000..5e8967f99b6 --- /dev/null +++ b/source/_components/sensor.daikin.markdown @@ -0,0 +1,62 @@ +--- +layout: page +title: "Daikin AC" +description: "Instructions on how to integrate Daikin AC(s) with Home Assistant." +date: 2017-12-03 05:00 +sidebar: false +comments: false +sharing: true +footer: true +logo: N/A +ha_category: Climate +ha_release: 0.59 +ha_iot_class: "Local Polling" +--- + +### Description ### + +The sensor component integrates Daikin air conditioning systems into Home Assistant, enabling displaying the following parameters: +- **inside temperature** +- **outside temperature** + +
+ Please note, the `daikin` platform integrates **ONLY the european versions of Daikin ACs (models BRP069A41, 42, 43, 45)** into Home Assistant +
+ +### Configuration ### + +The component has been integrated with discovery so all your Daikin AC's climate devices can be automatically discovered. +Manual configuration and customization is also possible by using the sample configuration from below: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: daikin + host: 10.0.0.1 + name: optional name + monitored_conditions: + - inside_temperature + - outside_temperature + +``` + +{% configuration %} +host: + description: IP or hostname of the device. + required: true + type: string +monitored_conditions: + description: List of items you want to monitor for each device. + required: false + detault: All conditions + type: list + keys: + inside_temperature: + description: The current temperature measured inside the house. + outside_temperature: + description: The current temperature measured outside the house. +{% endconfiguration %} + ++ Please note that some AC devices may report outside temperature only when they are turned on. +
diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index ee366dfa66e..427d5afb683 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -1,6 +1,6 @@ --- layout: page -title: "Dark Sky" +title: "Dark Sky Sensor" description: "How to integrate Dark Sky within Home Assistant." date: 2016-09-26 08:00 sidebar: true @@ -20,7 +20,7 @@ The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as You need an API key which is free but requires [registration](https://darksky.net/dev/register). You can make up to 1000 calls per day for free which means that you could make one approximately every 86 seconds.-[Dark Sky](https://darksky.net/) will charge you $0.0001 per API call if you enter your credit card details and create more than 1000 calls per day. +[Dark Sky](https://darksky.net/dev/) will charge you $0.0001 per API call if you enter your credit card details and create more than 1000 calls per day.
To add Dark Sky to your installation, add the following to your `configuration.yaml` file: @@ -67,7 +67,7 @@ Configuration variables: - **apparent_temperature_min**: Today's expected apparent low temperature. - **precip_intensity_max**: Today's expected maximum intensity of precipitation. - **uv_index**: The current UV index. -- **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, and `uk2`. +- **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, `uk` and `uk2`. `auto` will let Dark Sky decide the unit system based on location. - **update_interval** (*Optional*): Minimum time interval between updates. Default is 2 minutes. Supported formats: - `update_interval: 'HH:MM:SS'` diff --git a/source/_components/sensor.deconz.markdown b/source/_components/sensor.deconz.markdown new file mode 100644 index 00000000000..6844c88d833 --- /dev/null +++ b/source/_components/sensor.deconz.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: deCONZ Sensor +description: "Instructions on how to integrate Zigbee sensors from deCONZ into Home Assistant." +date: 2017-11-12 16:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: deconz.jpeg +ha_category: Sensor +ha_release: "0.61" +ha_iot_class: "Local Push" +--- + +See the [deCONZ main component](/components/deconz/) for configuration instructions. + +The following sensor types are supported: + + * Humidity sensor + * Light level sensor + * Pressure sensor + * Switches + * Temperature sensor + +Entity ids will be sensor.device_name, where device_name is defined in deCONZ. Switches aren't exposed as ordinary entities, see the [deCONZ main component](/components/deconz/) for more details. + +#### {% linkable_title Verified to be supported sensors %} + +- Humidity Sensor + - Xiaomi Aqara Humidity/Temperature Sensor + - Xiaomi MiJia Smart Temperature & Humidity Sensor +- Light Level Sensor +- Pressure Sensor +- Switches + - IKEA Trådfri Wireless Dimmer + - Philips Hue Motion Sensor + - IKEA Trådfri Remote + - Philips Hue Dimmer Switch + - Xiaomi Cube + - Xiaomi Aqara Smart Light Switch + - Xiaomi Aqara Smart Wireless Switch + - Xiaomi Smart Home Wireless Switch +- Temperature Sensor + - Xiaomi Temperature/Humidity Sensor diff --git a/source/_components/sensor.discogs.markdown b/source/_components/sensor.discogs.markdown new file mode 100644 index 00000000000..281852abc79 --- /dev/null +++ b/source/_components/sensor.discogs.markdown @@ -0,0 +1,40 @@ +--- +layout: page +title: Discogs Sensor +description: "Instructions on how to set up Discogs sensors within Home Assistant." +date: 2017-12-04 22:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: https://www.magneticmag.com/.image/t_share/MTQ5OTE1NzU4NTczMzk3OTYw/discogs-vinyl-record-mark.png +ha_category: Sensor +ha_release: 0.61 +logo: discogs.png +ha_iot_class: "Cloud Polling" +--- + +The `discogs` platform allows you to see the current amount of records in your [Discogs](https://discogs.com) collection. + +First, you'll need to get a personal access token from your Discogs account. +You can generate a token from your profile's [Developer settings](https://www.discogs.com/settings/developers). + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: discogs + token: YOUR_TOKEN +``` + +{% configuration %} +token: + description: The Discogs API token to use as identification to get your collection. + required: true + type: string +name: + description: Name to use in the frontend. + required: false + type: string +{% endconfiguration %} diff --git a/source/_components/sensor.dsmr.markdown b/source/_components/sensor.dsmr.markdown index 326057c7996..a83d5a8ac0e 100644 --- a/source/_components/sensor.dsmr.markdown +++ b/source/_components/sensor.dsmr.markdown @@ -107,6 +107,11 @@ Optional configuration example for ser2net: # Example /etc/ser2net.conf for proxying USB/serial connections to DSMRv4 smart meters 2001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS ``` +or +```sh +# Example /etc/ser2net.conf for proxying USB/serial connections to DSMRv2.2 smart meters +2001:raw:600:/dev/ttyUSB0:9600 EVEN 1STOPBIT 7DATABITS XONXOFF LOCAL -RTSCTS +``` [HASSbian](/getting-started/installation-raspberry-pi-image/) users have to give dialout permission to the user `homeassistant`: diff --git a/source/_components/sensor.dublin_bus_transport.markdown b/source/_components/sensor.dublin_bus_transport.markdown index 3b3161cdf10..c44a9f593e6 100644 --- a/source/_components/sensor.dublin_bus_transport.markdown +++ b/source/_components/sensor.dublin_bus_transport.markdown @@ -7,7 +7,7 @@ sidebar: true comments: false sharing: true footer: true -logo: dublin_bus.jpg +logo: dublin_bus.png ha_category: Transport ha_iot_class: "Cloud Polling" ha_release: 0.36 diff --git a/source/_components/sensor.eliqonline.markdown b/source/_components/sensor.eliqonline.markdown index cfa071e3079..87dd5ac8fd6 100644 --- a/source/_components/sensor.eliqonline.markdown +++ b/source/_components/sensor.eliqonline.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling" --- -Integrate your [ELIQ Online](http://eliq.se) smart meter information into Home Assistant. To get an [access token](https://my.eliq.se/user/settings/api) and the [Channel ID](https://my.eliq.se/user/settings/data), log in to your account. +Integrate your [ELIQ Online](http://eliq.io) smart meter information into Home Assistant. To get an [access token](https://my.eliq.io/user/settings/api) and the [Channel ID](https://my.eliq.io/user/settings/locations), log in to your account. To enable this sensor in your installation, add the following to your `configuration.yaml` file: @@ -23,13 +23,14 @@ To enable this sensor in your installation, add the following to your `configura sensor: - platform: eliqonline access_token: ACCESS_TOKEN + channel_id: CHANNEL_ID ``` Configuration variables: - **access_token** (*Required*): The Access Token for your account. -- **channel_id** (*Optional*): Channel ID (as integer) of your device. Needed if you have more than one device. +- **channel_id** (*Required*): Channel ID (as integer) of your device. - **name** (*Optional*): The name of the sensor, eg. the city. -For details please check the [API documentation](https://my.eliq.se/knowledge/sv-SE/49-eliq-online/299-eliq-online-api). +For details please check the [API documentation](https://eliq.zendesk.com/hc/en-us/articles/115002708449-API-Eliq-Online). diff --git a/source/_components/sensor.etherscan.markdown b/source/_components/sensor.etherscan.markdown index 8200f531779..fcdc5387059 100644 --- a/source/_components/sensor.etherscan.markdown +++ b/source/_components/sensor.etherscan.markdown @@ -25,7 +25,15 @@ sensor: address: '0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359' ``` -Configuration variables: +{% configuration %} +address: + description: Ethereum wallet address to watch. + required: true + type: string +name: + description: The name of the sensor used in the frontend. + required: false + type: string + default: Ethereum Balance +{% endconfiguration %} -- **address** (*Required*): Ethereum wallet address to watch. -- **name** (*Optional*): The name of the sensor used in the frontend. diff --git a/source/_components/sensor.fail2ban.markdown b/source/_components/sensor.fail2ban.markdown index c96b3109910..5fb8c141f4a 100644 --- a/source/_components/sensor.fail2ban.markdown +++ b/source/_components/sensor.fail2ban.markdown @@ -14,10 +14,10 @@ ha_release: 0.57 --- -The `fail2ban` sensor allows for IPs banned by [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to be displayed in the Home Assistant front-end. +The `fail2ban` sensor allows for IPs banned by [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to be displayed in the Home Assistant frontend.-Your system must have fail2ban installed and correctly configured for this sensor to work. In addition, Home Assistant must be able to read the fail2ban log file. +Your system must have `fail2ban` installed and correctly configured for this sensor to work. In addition, Home Assistant must be able to read the `fail2ban` log file.
To enable this sensor, add the following lines to your `configuration.yaml`: @@ -29,29 +29,38 @@ sensor: jails: - ssh - hass-iptables - file_path: /var/log/fail2ban.log ``` -Configuration variables: - -- **jails** (*Required*): List of configured jails you want to display (each jail is its own sensor). -- **name** (*Optional*): Name of the sensor. Defaults to `fail2ban`. -- **file_path** (*Optional*): Path to the fail2ban log. Defaults to `/var/log/fail2ban.log`. -- **scan_interval** (*Optional*): Used to limit how often log file is read and must be a positive integer (representing number of seconds to wait). Defaults to 120. +{% configuration %} +jails: + description: List of configured jails you want to display. + required: true + type: list +name: + description: Name of the sensor. + required: false + type: string + default: fail2ban +file_path: + description: Path to the fail2ban log. + required: false + type: string + default: /var/log/fail2ban.log +{% endconfiguration %} ### {% linkable_title Set up Fail2Ban %} -For most set-ups, you can follow [this tutorial](https://home-assistant.io/cookbook/fail2ban/) to set up fail2ban on your system. It will walk you through creating jails and filters, allowing you to monitor IPs that have been banned for too many failed ssh login attempts, as well as too many failed Home Assistant log in attempts. +For most setups, you can follow [this tutorial](/cookbook/fail2ban/) to set up `fail2ban` on your system. It will walk you through creating jails and filters, allowing you to monitor IP addresses that have been banned for too many failed SSH login attempts, as well as too many failed Home Assistant login attempts. ### {% linkable_title Fail2Ban with Docker %}-These steps assume you already have the Home Assistant docker running behind nginx and that it is externally accessible. It also assumes the docker is running with the `--net='host'` flag. +These steps assume you already have the Home Assistant docker running behind NGINX and that it is externally accessible. It also assumes the docker is running with the `--net='host'` flag.
-For those of us using Docker, the above tutorial may not be sufficient. The following steps specifically outline how to set up `fail2ban` and Home Assistant when running Home Assistant within a Docker behind nginx. The setup this was tested on was an unRAID server using the [let's encrypt docker](https://github.com/linuxserver/docker-letsencrypt) from linuxserver.io. +For those of us using Docker, the above tutorial may not be sufficient. The following steps specifically outline how to set up `fail2ban` and Home Assistant when running Home Assistant within a Docker behind NGINX. The setup this was tested on was an unRAID server using the [let's encrypt docker](https://github.com/linuxserver/docker-letsencrypt) from linuxserver.io. -#### Set http logger +#### {% linkable_title Set http logger %} In your `configuration.yaml` file, add the following to the `logger` component to ensure that Home Assistant prints failed login attempts to the log. @@ -61,7 +70,7 @@ logger: homeassistant.components.http.ban: warning ``` -#### Edit the `jail.local` file +#### {% linkable_title Edit the `jail.local` file %} Next, we need to edit the `jail.local` file that is included with the Let's Encrypt docker linked above. Note, for this tutorial, we'll only be implementing the `[hass-iptables]` jail from the [previously linked tutorial](https://home-assistant.io/cookbook/fail2ban/). @@ -76,7 +85,7 @@ logpath = /hass/home-assistant.log maxretry = 5 ``` -#### Create a filter for the Home Assistant jail +#### {% linkable_title Create a filter for the Home Assistant jail %} Now we need to create a filter for `fail2ban` so that it can properly parse the log. This is done with a `failregex`. Create a file called `hass.local` within the `filter.d` directory in `/mnt/user/appdata/letsencrypt/fail2ban` and add the following: @@ -93,7 +102,7 @@ ignoreregex = datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S ``` -#### Map log file directories +#### {% linkable_title Map log file directories %} First, we need to make sure that fail2ban log can be passed to Home Assistant and that the Home Assistant log can be passed to fail2ban. When starting the Let's Encrypt docker, you need to add the following argument (adjust paths based on your setup): @@ -110,20 +119,20 @@ Now do the same for the Home Assistant docker, but this time we'll be mapping th ``` -#### Send client IP to Home Assistant +#### {% linkable_title Send client IP to Home Assistant %} By default, the IP address that Home Assistant sees will be that of the container (something like `172.17.0.16`). What this means is that for any failed login attempt, assuming you have correctly configured `fail2ban`, the Docker IP will be logged as banned, but the originating IP is still allowed to make attempts. We need `fail2ban` to recognize the originating IP to properly ban it. First, we have to add the following to the nginx configuration file located in `/mnt/user/appdata/letsencrypt/nginx/site-confs/default`. -``` +```bash proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ``` This snippet should be added within your Home Assistant server config, so you have something like the following: -``` +```bash server { ... location / { @@ -158,7 +167,7 @@ http: At this point, once the Let's Encrypt and Home Assistant dockers are restarted, Home Assistant should be correctly logging the originating IP of any failed login attempt. Once that's done and verified, we can move onto the final step. -#### Add the fail2ban sensor +#### {% linkable_title Add the fail2ban sensor %} Now that we've correctly set everything up for Docker, we can add our sensors to `configuration.yaml` with the following: @@ -174,7 +183,7 @@ Assuming you've followed all of the steps, you should have one fail2ban sensor, ### {% linkable_title Other debug tips %} -If, after following these steps, you're unable to get the fail2ban sensor working, here are some other steps you can take that may help: +If, after following these steps, you're unable to get the `fail2ban` sensor working, here are some other steps you can take that may help: - Add `logencoding = utf-8` to the `[hass-iptables]` entry - Ensure the `failregex` you added to `filter.d/hass.local` matches the output within `home-assistant.log` diff --git a/source/_components/sensor.fixer.markdown b/source/_components/sensor.fixer.markdown index 3a555f2c254..220619cf301 100644 --- a/source/_components/sensor.fixer.markdown +++ b/source/_components/sensor.fixer.markdown @@ -27,9 +27,19 @@ sensor: target: CHF ``` -Configuration variables: - -- **target** (*Required*): The symbol of the target currency. -- **name** (*Optional*): Name to use in the frontend. -- **base** (*Optional*): The symbol of the base currency. Default to USD - +{% configuration %} +target: + description: The symbol of the target currency. + required: true + type: string +name: + description: Name to use in the frontend. + required: false + type: string + default: Exchange rate +base: + description: The symbol of the base currency. + required: false + type: string + default: USD +{% endconfiguration %} diff --git a/source/_components/sensor.fritzbox_netmonitor.markdown b/source/_components/sensor.fritzbox_netmonitor.markdown index d6c8a3e9842..9842499a1ac 100644 --- a/source/_components/sensor.fritzbox_netmonitor.markdown +++ b/source/_components/sensor.fritzbox_netmonitor.markdown @@ -34,16 +34,18 @@ Configuration variables: The following statistics will be exposed as attributes. -|Attribute |Description | -|:-----------------|:------------------------------------------------------------| -|is_linked |True if the FritzBox is physically linked to the provider | -|is_connected |True if the FritzBox has established an internet-connection | -|wan_access_type |Connection-type, can be `DSL` or `Cable` | -|external_ip |External ip address | -|uptime |Uptime in seconds | -|bytes_sent |Bytes sent | -|bytes_received |Bytes received | -|max_byte_rate_up |Maximum upstream-rate in bytes/s | -|max_byte_rate_down|Maximum downstream-rate in bytes/s | +|Attribute |Description | +|:----------------------|:------------------------------------------------------------| +|is_linked |True if the FritzBox is physically linked to the provider | +|is_connected |True if the FritzBox has established an internet-connection | +|wan_access_type |Connection-type, can be `DSL` or `Cable` | +|external_ip |External ip address | +|uptime |Uptime in seconds | +|bytes_sent |Bytes sent | +|bytes_received |Bytes received | +|transmission_rate_up |Current upstream speed in bytes/s | +|transmission_rate_down |Current downstream speed in bytes/s | +|max_byte_rate_up |Maximum upstream-rate in bytes/s | +|max_byte_rate_down |Maximum downstream-rate in bytes/s | The sensor's state corresponds to the `is_linked` attribute and is either `online`, `offline`, or `unavailable` (in case connection to the router is lost). diff --git a/source/_components/sensor.gearbest.markdown b/source/_components/sensor.gearbest.markdown new file mode 100644 index 00000000000..31803acb752 --- /dev/null +++ b/source/_components/sensor.gearbest.markdown @@ -0,0 +1,72 @@ +--- +layout: page +title: "Gearbest" +description: "Instructions on how to integrate a Gearbest sensor into Home Assistant." +date: 2017-11-13 09:08 +sidebar: true +comments: false +sharing: true +footer: true +logo: gearbest.png +ha_category: Sensor +ha_iot_class: "Cloud Polling" +ha_release: "0.60" +--- + + +The `gearbest` sensor will track the price of a product from [Gearbest](https://www.gearbest.com). This information can be used in, e.g., automations to notify you when a price drops. The update interval for every item is currently set to 2 hours. + +To enable this sensor, add the following lines to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: gearbest + currency: EUR + items: + - url: https://www.gearbest.com/.... +``` + +{% configuration %} +currency: + description: "The currency in which the products should be tracked. Currently supported: USD, EUR, GBP, AUD, CAD, CHF, HKD, CNY, NZD, JPY, RUB, BRL, CLP, NOK, DKK, SEK, KRW, ILS, COP, MXN, PEN, THB, IDR, UAH, PLN, INR, BGN, HUF, RON, TRY, CZK, HRK, MAD, AED, SAR, ZAR, SGD, MYR, TWD, RSD, NGN - if the currency could not be found in the conversion rate list, USD will be used as default. Either an ID or an URL must be present." + required: true + type: string +items: + description: List of products that should be tracked. + required: true + type: map + keys: + id: + description: The ID of the product. + required: false + type: int + url: + description: The URL of the product. + required: false + type: string + name: + description: The name of the item. If not set, it is parsed from the website. + required: false + type: string + currency: + description: Overwrite the currency for the current item. + required: false + type: string +{% endconfiguration %} + +### {% linkable_title Extended example %} + +```yaml +# Example configuration.yaml entry +sensor: + - platform: gearbest + currency: EUR + items: + - url: https://www.gearbest.com/3d-printers-3d-printer-kits/pp_779174.html?wid=21 + name: Creality CR-10 upgraded + currency: USD + - id: 779174 + name: Creality CR-10 upgraded #2 + currency: EUR +``` diff --git a/source/_components/sensor.gtfs.markdown b/source/_components/sensor.gtfs.markdown index 00243470ada..874617d87b6 100644 --- a/source/_components/sensor.gtfs.markdown +++ b/source/_components/sensor.gtfs.markdown @@ -24,6 +24,7 @@ Here are some examples: - [Metropolitan Transit Authority of New York City (MTA)](http://www.bart.gov/schedules/developers/gtfs) - Provides separate data feeds for subway, bus, LIRR and Metro-North of the greater New York City metropolitan region. - [GBRail.info](http://www.gbrail.info/) - Provides data feeds for most if not all rail companies in Britain. - [Official Timetable Switzerland](http://www.fahrplanfelder.ch/en/timetable-data.html) - The official timetable data for Switzerland. +- [Public Transport Victoria (Australia)](https://www.data.vic.gov.au/data/dataset/ptv-timetable-and-geographic-information-2015-gtfs) - Official PTV GTFS dataset. You need to download a GTFS ZIP file and put it into a folder named `gtfs` in your configuration directory. For ease of use, it is suggested that you rename the file to just the agency/data source name (i.e. `bart.zip` instead of `google_transit_20160328_v1.zip`). You can also unzip and place a folder in the `gtfs` folder. diff --git a/source/_components/sensor.hive.markdown b/source/_components/sensor.hive.markdown new file mode 100644 index 00000000000..3e7350e147c --- /dev/null +++ b/source/_components/sensor.hive.markdown @@ -0,0 +1,24 @@ +--- +layout: page +title: "Hive Sensor" +description: "Instructions on how to integrate Hive Sensors with Home Assistant." +date: 2017-09-24 21:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: hive.png +ha_category: Sensor +ha_release: 0.59 +ha_iot_class: "Cloud Polling" +--- + + +The 'hive' sensor component can expose as a sensor the current online status of your Hive Hub. + + ++Full configuration details can be found on the main [Hive component](/components/hive/) page. +
+ + diff --git a/source/_components/sensor.imap_email_content.markdown b/source/_components/sensor.imap_email_content.markdown index cb639b436cf..35f9d2d694a 100644 --- a/source/_components/sensor.imap_email_content.markdown +++ b/source/_components/sensor.imap_email_content.markdown @@ -38,7 +38,7 @@ Configuration variables: - **username** (*Required*): Username for the IMAP server. - **password** (*Required*): Password for the IMAP server. - **senders** (*Required*): A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed. -- **value_template** (*Optional*): If specified this template will be used to render the state of sensor. If a template is not supplied the raw message body will be used for the sensor value. The following attributes will be supplied to the template: +- **value_template** (*Optional*): If specified this template will be used to render the state of the sensor. If a template is not supplied the message subject will be used for the sensor value. The following attributes will be supplied to the template: * **from**: The from address of the email * **body**: The body of the email diff --git a/source/_components/sensor.lacrosse.markdown b/source/_components/sensor.lacrosse.markdown index d024d174403..c9005581f75 100644 --- a/source/_components/sensor.lacrosse.markdown +++ b/source/_components/sensor.lacrosse.markdown @@ -25,7 +25,7 @@ The `lacrosse` sensor platform is using the data provided by a [Jeelink](https:/ Since the sensor change their ID after each powercycle/battery change you can check what sensor IDs are availble by using the command-line tool `pylacrosse` from the pylacrosse package. ```bash -$ sudo pylacrosse -D /dev/ttyUSB0 scan +$ sudo pylacrosse -d /dev/ttyUSB0 scan ``` To use your `lacrosse` compatible sensor in your installation, add the following to your `configuration.yaml` file: @@ -41,7 +41,7 @@ sensor: {% configuration %} device: - description: The serial baudrate. + description: The serial device. required: true type: string default: /dev/ttyUSB0 @@ -50,6 +50,26 @@ sensor: required: true type: int default: 57600 + led: + description: Activate or deactivate the Jeelink LED. + required: false + type: boolean + frequency: + description: Initial frequency in 5kHz steps. + required: false + type: int + datarate: + description: "Set the data rate in kbps. Special values for well-known settings are: `0`: 17.241 kbps, `1`: 9.579 kbps, `2`: 8.842 kbps." + required: false + type: int + toggle_mask: + description: "The following values can be combined bitwise: `1` = 17.241 kbps, `2` = 9.579 kbps, `4` = 8.842 kbps" + required: false + type: int + toggle_interval: + description: Enable the toggle mode and set the interval in seconds. + required: false + type: int sensors: description: A list of your sensors. required: true diff --git a/source/_components/sensor.luftdaten.markdown b/source/_components/sensor.luftdaten.markdown index 486b10e5f2a..6417ee5e0a5 100644 --- a/source/_components/sensor.luftdaten.markdown +++ b/source/_components/sensor.luftdaten.markdown @@ -45,16 +45,6 @@ sensor: required: false default: Luftdaten Sensor type: string - resource: - description: The URL of the API endpoint. Usually this has not to be changed. - required: false - default: https://api.luftdaten.info/v1/sensor/ - type: string - verify_ssl: - description: Verify SSL connection. - required: false - default: true - type: boolean monitored_conditions: description: A list of conditions you want to monitor. required: true @@ -65,8 +55,15 @@ sensor: P2: description: Show the particle sensors (particles 2.5 microns and below). temperature: - description: Display the temperature from a weather sensor. + description: Display the temperature from the sensor. humidity: - description: Display the humidity from a weather sensor. + description: Display the humidity from the sensor. + pressure: + description: Display the pressure from the sensor. {% endconfiguration %} +Not all sensors provide all conditions. Also, it's possible that the sensor values are not available all the time. To check what a sensor is publishing use `curl`: + +```bash +$ curl https://api.luftdaten.info/v1/sensor/[sensorid]/ +``` diff --git a/source/_components/sensor.metoffice.markdown b/source/_components/sensor.metoffice.markdown index fc47f5f5c9b..ff622357718 100644 --- a/source/_components/sensor.metoffice.markdown +++ b/source/_components/sensor.metoffice.markdown @@ -15,8 +15,8 @@ ha_iot_class: "Cloud Polling" The `metoffice` sensor platform uses the Met Office's [DataPoint API][datapoint] for weather data. -- Each sensor will be given the `device_id` of "Met Office [condition]" -- The sensor checks for new data every minute, starting 30 minutes after the timestamp of the most recent data as the data is updated every half-hour. +- Each sensor will be given the `device_id` of "Met Office [condition]" if `name:` is not set. +- The sensor checks for new data every minute, starting 30 minutes after the timestamp of the most recent data as the data is updated every half hour. To add the Met Office weather to your installation you'll need to register for a free api key at the link above and then add the following to your `configuration.yaml` file: @@ -24,7 +24,7 @@ To add the Met Office weather to your installation you'll need to register for a # Example configuration.yaml entry sensor: - platform: metoffice - api_key: "my-api-key" + api_key: YOUR_API_KEY monitored_conditions: - weather - temperature @@ -43,11 +43,25 @@ Your location will be detected from your home `latitude` and `longitude` setting Configuration variables: -- **api_key** (*Required*): Your personal API key from the [Datapoint website][datapoint]. +- **api_key** (*Required*): Your personal API key from the [Datapoint website](http://www.metoffice.gov.uk/datapoint). +- **name** (*Optional*): Additional name for the sensors. Default to platform name. +- **latitude** (*Optional*): Latitude coordinate to monitor weather of (required if **longitude** is specified), defaults to coordinates defined in your `configuration.yaml`. +- **longitude** (*Optional*): Longitude coordinate to monitor weather of (required if **latitude** is specified), defaults to coordinates defined in your `configuration.yaml`. +- **monitored_conditions** array (*Required*): Conditions to display in the frontend. + - **weather**: A human-readable text summary of the current conditions. + - **temperature**: The current temperature. + - **feels_like_temperature**: A numerical value representing the apparent (or "feels like") temperature. + - **wind_speed**: The wind speed. + - **wind_direction**: Where the wind is coming from. + - **wind_gust**: If there are wind gusts. + - **visibility**: The average visibility. + - **visibility_distance**: The visibility distance. + - **uv**: The UV index. + - **precipitation**: The average expected intensity of precipitation occurring. + - **humidity**: The relative humidity.This sensor is an alternative to the [`metoffice`](/components/weather.metoffice/) weather platform. The weather platform is easier to configure but less customizable.
-[datapoint]: http://www.metoffice.gov.uk/datapoint diff --git a/source/_components/sensor.miflora.markdown b/source/_components/sensor.miflora.markdown index 67f6ecd25f3..4d15463a1c7 100644 --- a/source/_components/sensor.miflora.markdown +++ b/source/_components/sensor.miflora.markdown @@ -13,8 +13,18 @@ ha_release: 0.29 ha_iot_class: "Local Polling" --- -The `miflora` sensor platform allows one to monitor to plants. The [Mi Flora plant sensor](https://www.aliexpress.com/item/Newest-Original-Xiaomi-Flora-Monitor-Digital-Plants-Flowers-Soil-Water-Light-Tester-Sensor-Monitor-for-Aquarium/32685750372.html) is a small Bluetooth Low Energy device that monitors not only the moisture, but also light, temperature and conductivity. As only a single BLE device can be polled at the same time, the library implements locking to make sure this is the case. +The `miflora` sensor platform allows one to monitor plants. The [Mi Flora plant sensor](https://xiaomi-mi.com/sockets-and-sensors/xiaomi-huahuacaocao-flower-care-smart-monitor/) is a small Bluetooth Low Energy device that monitors not only the moisture but also light, temperature, and conductivity. As only a single BLE device can be polled at the same time, the library implements locking to make sure this is the case. +# Installation +Depending on the operating system you're running, you have to configure the proper Bluetooth backend on your system: + +- On [Hass.io](https://home-assistant.io/hassio/installation/): Miflora will work out of the box. +- On other Linux systems: + - Prefered solution: Install the `bluepy` library (via pip). When using a virtual environment, make sure to use install the library in the right one. + - Fallback solution: Install `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth`, `bluez-deprecated` +- Windows and MacOS are currently not supported by the [miflora library](https://github.com/open-homeautomation/miflora/). + +# Configuration Start a scan to determine the MAC addresses of the sensor: ```bash @@ -25,6 +35,17 @@ C4:D3:8C:12:4C:57 Flower mate [...] ``` +Or if your distribution is using bluetoothctl: + +```bash +$ bluetoothctl +[bluetooth]# scan on +[NEW] Controller
Make sure that the URL exactly matches your endpoint or resource.
@@ -67,9 +113,7 @@ In this section you find some real life examples of how to use this sensor.
### {% linkable_title External IP address %}
-You can find your external IP address using the service [JSON Test](http://www.jsontest.com) at their http://ip.jsontest.com/ endpoint.
-
-To display the IP address, the entry for a sensor in the `configuration.yaml` file will look like this.
+You can find your external IP address using the service [JSON Test](http://www.jsontest.com) at their [http://ip.jsontest.com/](http://ip.jsontest.com/) URL.
```yaml
sensor:
@@ -83,8 +127,6 @@ sensor:
The [glances](/components/sensor.glances/) sensor is doing the exact same thing for all exposed values.
-Add something similar to the entry below to your `configuration.yaml` file:
-
```yaml
sensor:
- platform: rest
@@ -154,3 +196,63 @@ sensor:
User-Agent: Home Assistant REST sensor
```
+### {% linkable_title Fetch multiple JSON values and present them as attibutes %}
+
+[JSON Test](http://www.jsontest.com) returns the current time, date and milliseconds since epoch from [http://date.jsontest.com/](http://date.jsontest.com/).
+
+{% raw %}
+```yaml
+sensor:
+ - platform: rest
+ name: JSON time
+ json_attributes:
+ - date
+ - milliseconds_since_epoch
+ resource: http://date.jsontest.com/
+ value_template: '{{ value_json.time }}'
+ - platform: template
+ sensors:
+ date:
+ friendly_name: 'Date'
+ value_template: '{{ states.sensor.json_time.attributes["date"] }}'
+ milliseconds:
+ friendly_name: 'milliseconds'
+ value_template: '{{ states.sensor.json_time.attributes["milliseconds_since_epoch"] }}'
+```
+{% endraw %}
+
+This sample fetches a weather report from [OpenWeatherMap](http://openweathermap.org/), maps the resulting data into attributes of the RESTful sensor and then creates a set of [template](/components/sensor.template/) sensors that monitor the attributes and present the values in a usable form.
+
+{% raw %}
+```yaml
+sensor:
+ - platform: rest
+ name: OWM_report
+ json_attributes:
+ - main
+ - weather
+ value_template: '{{ value_json["weather"][0]["description"].title() }}'
+ resource: http://api.openweathermap.org/data/2.5/weather?zip=80302,us&APPID=VERYSECRETAPIKEY
+ - platform: template
+ sensors:
+ owm_weather:
+ value_template: '{{ states.sensor.owm_report.attributes.weather[0]["description"].title() }}'
+ icon_template: '{{ "http://openweathermap.org/img/w/"+states.sensor.owm_report.attributes.weather[0]["icon"]+".png" }}'
+ entity_id: sensor.owm_report
+ owm_temp:
+ friendly_name: 'Outside temp'
+ value_template: '{{ states.sensor.owm_report.attributes.main["temp"]-273.15 }}'
+ unit_of_measurement: "°C"
+ entity_id: sensor.owm_report
+ owm_pressure:
+ friendly_name: 'Outside pressure'
+ value_template: '{{ states.sensor.owm_report.attributes.main["pressure"] }}'
+ unit_of_measurement: "hP"
+ entity_id: sensor.owm_report
+ owm_humidity:
+ friendly_name: 'Outside humidity'
+ value_template: '{{ states.sensor.owm_report.attributes.main["humidity"] }}'
+ unit_of_measurement: "%"
+ entity_id: sensor.owm_report
+```
+{% endraw %}
diff --git a/source/_components/sensor.ripple.markdown b/source/_components/sensor.ripple.markdown
index 1db3abc0979..ad960c30e53 100644
--- a/source/_components/sensor.ripple.markdown
+++ b/source/_components/sensor.ripple.markdown
@@ -25,7 +25,15 @@ sensor:
address: 'r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV'
```
-Configuration variables:
+{% configuration %}
+address:
+ description: Ripple wallet address to watch.
+ required: true
+ type: string
+name:
+ description: Name for the sensor to use in the frontend.
+ required: false
+ type: string
+ default: Ripple Balance
+{% endconfiguration %}
-- **address** (*Required*): Ripple wallet address to watch
-- **name** (*Optional*): Name for the sensor to use in the frontend.
diff --git a/source/_components/sensor.sabnzbd.markdown b/source/_components/sensor.sabnzbd.markdown
index ffa7310c2e1..47680c4e1af 100644
--- a/source/_components/sensor.sabnzbd.markdown
+++ b/source/_components/sensor.sabnzbd.markdown
@@ -40,6 +40,7 @@ sensor:
- 'queue_remaining'
- 'disk_size'
- 'disk_free'
+ - 'queue_count'
```
Configuration variables:
@@ -56,6 +57,7 @@ Configuration variables:
- **queue_remaining**: Remaining elements in the queue
- **disk_size**: Disk size of the storage location
- **disk_free**: Free disk space at the storage location
+ - **queue_count**: Number of items in the queue
Note that this will create the following sensors:
@@ -66,6 +68,7 @@ Note that this will create the following sensors:
- sensor.sabnzbd_left
- sensor.sabnzbd_disk
- sensor.sabnzbd_disk_free
+ - sensor.sabnzdb_queue_count
```
As always, you can determine the names of sensors by looking at the dev-state page `< >` in the web interface.
diff --git a/source/_components/sensor.scrape.markdown b/source/_components/sensor.scrape.markdown
index 2ab59be72c6..41e77ec52be 100644
--- a/source/_components/sensor.scrape.markdown
+++ b/source/_components/sensor.scrape.markdown
@@ -45,6 +45,7 @@ In this section you find some real life examples of how to use this sensor. Ther
The current release Home Assistant is published on [https://home-assistant.io/](https://home-assistant.io/)
+{% raw %}
```yaml
sensor:
# Example configuration.yaml entry
@@ -52,13 +53,15 @@ sensor:
resource: https://home-assistant.io
name: Release
select: ".current-version h1"
- value_template: '{% raw %}{{ value.split(":")[1] }}{% endraw %}'
+ value_template: '{{ value.split(":")[1] }}'
```
+{% endraw %}
### {% linkable_title Available implementations %}
Get the counter for all our implementations from the [Component overview](/components/) page.
+{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
@@ -66,8 +69,9 @@ sensor:
resource: https://home-assistant.io/components/
name: Home Assistant impl.
select: 'a[href="#all"]'
- value_template: '{% raw %}{{ value.split("(")[1].split(")")[0] }}{% endraw %}'
+ value_template: '{{ value.split("(")[1].split(")")[0] }}'
```
+{% endraw %}
### {% linkable_title Get a value out of a tag %}
@@ -109,3 +113,20 @@ sensor:
select: 'enclosure:nth-of-type(1)'
attribute: url
```
+
+### {% linkable_title Energy price %}
+
+This example tries to retrieve the price for electricity.
+
+{% raw %}
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: scrape
+ resource: https://elen.nu/timpriser-pa-el-for-elomrade-se3-stockholm/
+ name: Electricity price
+ select: ".elspot-content"
+ value_template: '{{ value.split(" ")[0] }}'
+ unit_of_measurement: "öre/kWh"
+```
+{% endraw %}
diff --git a/source/_components/sensor.serial.markdown b/source/_components/sensor.serial.markdown
index 52646cf648a..ea1ad91a0b7 100644
--- a/source/_components/sensor.serial.markdown
+++ b/source/_components/sensor.serial.markdown
@@ -31,19 +31,23 @@ sensor:
```
{% configuration %}
- serial_port:
- description: Local serial port where the sensor is connected and access is granted.
- required: true
- type: string
- name:
- description: Friendly name to use for the frontend. Default to "Serial sensor".
- required: false
- type: string
- baudrate:
- description: Baudrate of the serial port.
- required: false
- default: 9600 Bps
- type: int
+serial_port:
+ description: Local serial port where the sensor is connected and access is granted.
+ required: true
+ type: string
+name:
+ description: Friendly name to use for the frontend. Default to "Serial sensor".
+ required: false
+ type: string
+baudrate:
+ description: Baudrate of the serial port.
+ required: false
+ default: 9600 Bps
+ type: int
+value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the serial line."
+ required: false
+ type: template
{% endconfiguration %}
diff --git a/source/_components/sensor.sochain.markdown b/source/_components/sensor.sochain.markdown
new file mode 100644
index 00000000000..77bf1c78364
--- /dev/null
+++ b/source/_components/sensor.sochain.markdown
@@ -0,0 +1,50 @@
+---
+layout: page
+title: "SoChain"
+description: "Instructions how to integrate chain.so data within Home Assistant."
+date: 2017-06-01 16:20
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: sochain.png
+ha_category: Finance
+ha_release: 0.61
+ha_iot_class: "Cloud Polling"
+---
+
+
+The `SoChain` sensor platform displays supported cryptocurrency wallet balances from [SoChain](https://chain.so).
+
+To add the SoChain sensor to your installation, specify a network and address to watch in the `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: sochain
+ network: LTC
+ address: 'M9m37h3dVkLDS13wYK7vcs7ck6MMMX6yhK'
+```
+
+{% configuration %}
+network:
+ description: The network or blockchain of the cryptocurrency to watch.
+ required: true
+ type: string
+address:
+ description: Cryptocurrency wallet address to watch.
+ required: true
+ type: string
+name:
+ description: The name of the sensor used in the frontend. (recommended)
+ required: false
+ type: string
+ default: Crypto Balance
+{% endconfiguration %}
+
+Supported networks (which can also be found [here](https://chain.so/api#networks-supported)) are:
+
+* BTC
+* LTC
+* DOGE
+* DASH
diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown
index d9c25821a8a..bc1e8bf9884 100644
--- a/source/_components/sensor.speedtest.markdown
+++ b/source/_components/sensor.speedtest.markdown
@@ -113,3 +113,5 @@ automation:
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
- Entries under `monitored_conditions` only control what entities are available under home-assistant, it does not disable the condition from running.
+- If ran frequently, this component has the capability of using a very large amount of data. Frequent updates should be avoided on bandwidth capped connections.
+- While running, network usage is fully utilized. This may have a negative affect on other devices in use the network such as gaming consoles or streaming boxes.
diff --git a/source/_components/sensor.systemmonitor.markdown b/source/_components/sensor.systemmonitor.markdown
index 283e302217f..0cc01b8ade6 100644
--- a/source/_components/sensor.systemmonitor.markdown
+++ b/source/_components/sensor.systemmonitor.markdown
@@ -67,6 +67,7 @@ The table contains types and their argument to use in your `configuration.yaml`
| memory_free | sensor.ram_available |
| memory_use_percent | sensor.ram_used |
| processor_use | sensor.cpu_used |
+| disk_use | sensor.disk_used |
## {% linkable_title Linux specific %}
diff --git a/source/_components/sensor.tahoma.markdown b/source/_components/sensor.tahoma.markdown
new file mode 100644
index 00000000000..80cf6bc4ebb
--- /dev/null
+++ b/source/_components/sensor.tahoma.markdown
@@ -0,0 +1,21 @@
+---
+layout: page
+title: "Tahoma Sensor"
+description: "Instructions how to integrate Tahoma sensors into Home Assistant."
+date: 2017-07-18 12:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tahoma.png
+ha_category: Cover
+ha_release: 0.59
+---
+
+To use your tahoma sensors in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yml entry
+sensor:
+ platform: tahoma
+```
diff --git a/source/_components/sensor.teksavvy.markdown b/source/_components/sensor.teksavvy.markdown
new file mode 100644
index 00000000000..2181e4273de
--- /dev/null
+++ b/source/_components/sensor.teksavvy.markdown
@@ -0,0 +1,77 @@
+---
+layout: page
+title: "TekSavvy"
+description: "Instructions on how to integrate TekSavvy data usage within Home Assistant."
+date: 2017-12-17 00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: teksavvy.png
+ha_category: Sensor
+ha_release: 0.62
+ha_iot_class: "Cloud Polling"
+---
+
+Integrate your [TekSavvy](https://myaccount.teksavvy.com/) account information into Home Assistant.
+
+You can get your API key from
+https://myaccount.teksavvy.com/ApiKey/ApiKeyManagement
+
+To use your TekSavvy sensor in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: teksavvy
+ api_key: API_KEY
+ total_bandwidth: 400
+ monitored_variables:
+ - usage
+ - usage_gb
+ - limit
+ - onpeak_download
+ - onpeak_upload
+ - onpeak_total
+ - offpeak_download
+ - offpeak_upload
+ - offpeak_total
+ - onpeak_remaining
+```
+
+{% configuration %}
+api_key:
+ description: The TekSavvy API key to access the service.
+ required: true
+ type: string
+total_bandwidth:
+ description: Your bandwidth limit in gigabytes.
+ required: true
+ type: string
+monitored_conditions:
+ description: Conditions to display in the frontend.
+ required: true
+ type: list
+ keys:
+ usage:
+ description: Bandwidth usage (percentage).
+ usage_gb:
+ description: Bandwidth usage (gigabytes).
+ limit:
+ description: Monthly bandwidth limit (gigabytes).
+ onpeak_download:
+ description: Bandwidth used by download outside the unmetered period (gigabytes).
+ onpeak_upload:
+ description: Bandwidth used by upload outside the unmetered period (gigabytes).
+ onpeak_total:
+ description: Total bandwidth used outside the unmetered period (gigabytes).
+ offpeak_download:
+ description: Bandwidth used by download during the unlimited period (gigabytes).
+ offpeak_upload:
+ description: Bandwidth used by upload during the unlimited period (gigabytes).
+ offpeak_total:
+ description: Total bandwidth used during the unlimited period (gigabytes).
+ onpeak_remaining:
+ description: Remaining bandwidth (gigabytes).
+{% endconfiguration %}
+
diff --git a/source/_components/sensor.temper.markdown b/source/_components/sensor.temper.markdown
index 37229ebed40..227cc42f80a 100644
--- a/source/_components/sensor.temper.markdown
+++ b/source/_components/sensor.temper.markdown
@@ -22,18 +22,30 @@ sensor:
- platform: temper
```
-Configuration option:
-
-- **name** (*Optional*): The name you would like to give the sensor in Home Assistant.
-- **scale** (*Optional*): The scale for the sensor.
-- **offset** (*Optional*): The offset to fix reported vales.
+{% configuration %}
+offset:
+ description: The offset to fix reported vales.
+ required: false
+ type: int
+ default: o
+scale:
+ description: The scale for the sensor.
+ required: false
+ type: int
+ default: 1
+name:
+ description: The name to use when displaying this switch.
+ required: false
+ type: string
+ default: myStrom Switch
+{% endconfiguration %}
Since some of these sensors consistently show higher temperatures the scale and offset values can be used to fine-tune your sensor.
The calculation follows the formula `scale * sensor value + offset`.
The TEMPer sensors can only be accessed as root by default. To fix the USB permissions on your system create the file `/etc/udev/rules.d/99-tempsensor.rules` and add the following line to it:
-```
+```text
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="7401", MODE="666"
```
diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown
index 0811978b617..3c865a2ee2a 100644
--- a/source/_components/sensor.template.markdown
+++ b/source/_components/sensor.template.markdown
@@ -45,10 +45,6 @@ sensor:
description: Name to use in the frontend.
required: false
type: string
- entity_id:
- description: Add a list of entity IDs so the sensor only reacts to state changes of these entities. This will reduce the number of times the sensor will try to update its state.
- required: false
- type: string, list
unit_of_measurement:
description: Defines the units of measurement of the sensor, if any.
required: false
@@ -70,12 +66,11 @@ sensor:
## {% linkable_title Considerations %}
If you are using the state of a platform that takes extra time to load, the
-Template Sensor may get an `unknown` state during startup. This results
-in error messages in your log file until that platform has completed loading.
-If you use `is_state()` function in your template, you can avoid this situation.
+Template Sensor may get an `unknown` state during startup. To avoid this (and the resulting
+error messages in your log file), you can use `is_state()` function in your template.
For example, you would replace
{% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %}
-with this equivalent that returns `true`/`false` and never gives an unknown
+with this equivalent that returns `true`/`false` and never gives an `unknown`
result:
{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
diff --git a/source/_components/sensor.thethingsnetwork.markdown b/source/_components/sensor.thethingsnetwork.markdown
index 76870e368ec..6dac17958f2 100644
--- a/source/_components/sensor.thethingsnetwork.markdown
+++ b/source/_components/sensor.thethingsnetwork.markdown
@@ -62,7 +62,7 @@ sensor:
- platform: thethingsnetwork
device_id: ha-demo
values:
- sensor_value: unit of measurment
+ sensor_value: unit of measurement
voltage: V
```
diff --git a/source/_components/sensor.travisci.markdown b/source/_components/sensor.travisci.markdown
index a3944d69a82..82698ab737a 100644
--- a/source/_components/sensor.travisci.markdown
+++ b/source/_components/sensor.travisci.markdown
@@ -26,7 +26,7 @@ sensor:
Configuration variables:
-- **api_key** (*Required*): GitHub [access token](https://github.com/settings/applications) with the following scopes: *read:org*, *user:email*, *repo_deployment*, *repo:status*, *write:repo_hook*.
+- **api_key** (*Required*): GitHub [access token](https://github.com/settings/tokens) with the following scopes: *read:org*, *user:email*, *repo_deployment*, *repo:status*, *write:repo_hook*.
- **branch** (*Optional*): Determine which default branch should be used by the **state** condition. Defaults to *master*.
- **scan_interval** (*Optional*): How frequently to query for new data. Defaults to 30 seconds.
- **monitored_conditions** array (*Optional*): Conditions to display in the frontend. If not specified, all conditions below will be enabled by default. The following conditions can be monitored.
diff --git a/source/_components/sensor.viaggiatreno.markdown b/source/_components/sensor.viaggiatreno.markdown
new file mode 100644
index 00000000000..d8ad4e16a00
--- /dev/null
+++ b/source/_components/sensor.viaggiatreno.markdown
@@ -0,0 +1,62 @@
+---
+layout: page
+title: "ViaggiaTreno Italian Railroads"
+description: "Instructions on how to integrate Italian Railroads data (from ViaggiaTreno API) into Home Assistant."
+date: 2017-11-07 14:35
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: train.png
+ha_category: Transport
+ha_iot_class: "Cloud Polling"
+ha_release: 0.58
+---
+
+The `viaggiatreno` sensor will give you information about configured train ids and stations using the public [ViaggiaTreno](http://viaggiatreno.it) API.
+
+To activate the sensor you need at least two parameters: the `train_id` and the `station_id`.
+
+The first is available just looking at the [ViaggiaTreno](http://viaggiatreno.it/) timetable, the latter can be obtained using the dedicated API endpoint:
+`http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/
+Note that the `station_id` is referred to the train's **departing station**. If a train number does not match with the station id, no data will be returned to the sensor.
+
+In a future implementation, the station name could be used to automatically search best-matching station id, without the need to specify it.
+
+Instructions (in Italian) for the API are available at:
+https://github.com/bluviolin/TrainMonitor/wiki/API-del-sistema-Viaggiatreno
+
+ This sensor doesn't work anymore as [Yahoo!](https://yahoo.uservoice.com/forums/382977-finance/suggestions/32103877-yahoo-stock-quote-api-please-bring-back) decommissioned the service in early November 2017. A repleacement is the [`alpha_vantage` sensor](/components/sensor.alpha_vantage/).
+
+Full configuration details can be found on the main [Hive component](/components/hive/) page.
+
Make sure that your topic matches exactly. `some-topic/` and `some-topic` are different topics.
diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown
index a9a4e3d7b0c..6fafcbbb783 100644
--- a/source/_components/switch.mystrom.markdown
+++ b/source/_components/switch.mystrom.markdown
@@ -25,10 +25,17 @@ switch:
host: IP_ADRRESS
```
-Configuration variables:
-
-- **host** (*Required*): The IP address of your myStrom switch, eg. `http://192.168.1.32`.
-- **name** (*Optional*): The name to use when displaying this switch.
+{% configuration %}
+host:
+ description: "The IP address of your myStrom switch, e.g., `http://192.168.1.32`."
+ required: true
+ type: string
+name:
+ description: The name to use when displaying this switch.
+ required: false
+ type: string
+ default: myStrom Switch
+{% endconfiguration %}
Check if you are able to access the device located at `http://IP_ADRRESS`. The details about your switch is provided as a JSON response.
@@ -46,3 +53,20 @@ or change its state:
$ curl -G -X GET http://IP_ADDRESS/relay -d 'state=1'
```
+### {% linkable_title Get the current power consumption %}
+
+The switch is measuring the current power consumption. To expose this as a sensor use a [`template` sensor](/components/sensor.template/).
+
+{% raw %}
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: template
+ sensors:
+ power:
+ friendly_name: "Current Power"
+ unit_of_measurement: "W"
+ value_template: "{{ states.switch.office.attributes.current_power_w }}"
+```
+{% endraw %}
+
diff --git a/source/_components/switch.rainbird.markdown b/source/_components/switch.rainbird.markdown
index 44134393a61..eee1d471b9e 100644
--- a/source/_components/switch.rainbird.markdown
+++ b/source/_components/switch.rainbird.markdown
@@ -1,46 +1,41 @@
----
-layout: page
-title: "Rain Bird Switch"
-description: "Instructions on how to integrate your Rain Bird LNK WiFi Module as Switches within Home Assistant."
-date: 2017-08-25 12:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: rainbird.png
-ha_category: Hub
-ha_release: 0.57
-ha_iot_class: "Local Polling"
----
-
-This `rainbird` switch platform allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant.
-
-To enable stations as switches inside Home Assistant, add the following to your `configuration.yaml` file:
-
-```yaml
-switch:
- platform: rainbird
- host: '1.1.1.1'
- password: 'secretpassword'
- sprinkler_1:
- zone: 1
- friendly_name: "Front sprinklers"
- trigger_time: 20
- scan_interval: 10
- sprinkler_2:
- friendly_name: "Back sprinklers"
- zone: 2
- trigger_time: 20
- scan_interval: 10
-```
-
-Configuration variables:
-
-- **stickip** (*Required*): The IP address of your LNK WiFi Module.
-- **password** (*Required*): The password for accessing the module.
-- **zone** (*Required*): Station zone identifier.
-- **friendly_name** (*Optional*): Just a friendly name for the station.
-- **trigger_time** (*Required*): The default duration to sprinkle the zone.
-- **scan_interval** (*Optional*): How fast to refresh the switch.
-
-Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active).
+---
+layout: page
+title: "Rain Bird Switch"
+description: "Instructions on how to integrate your Rain Bird LNK WiFi Module as Switches within Home Assistant."
+date: 2017-08-25 12:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: rainbird.png
+ha_category: Hub
+ha_release: 0.57
+ha_iot_class: "Local Polling"
+---
+
+This `rainbird` switch platform allows interacting with [LNK WiFi](http://www.rainbird.com/landscape/products/controllers/LNK-WiFi.htm) module of the Rain Bird Irrigation system in Home Assistant.
+
+Once you have enabled the [Rain Bird component](/components/rainbird), add the following to your `configuration.yaml` file:
+
+```yaml
+switch:
+ sprinkler_1:
+ zone: 1
+ friendly_name: "Front sprinklers"
+ trigger_time: 20
+ scan_interval: 10
+ sprinkler_2:
+ friendly_name: "Back sprinklers"
+ zone: 2
+ trigger_time: 20
+ scan_interval: 10
+```
+
+Configuration variables:
+
+- **zone** (*Required*): Station zone identifier.
+- **friendly_name** (*Optional*): Just a friendly name for the station.
+- **trigger_time** (*Required*): The default duration to sprinkle the zone.
+- **scan_interval** (*Optional*): How fast to refresh the switch.
+
+Please note that due to the implementation of the API within the LNK Module, there is a concurrency issue. For example, the Rain Bird app will give connection issues (like already a connection active).
diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown
index d9e22107b6e..776882cd54b 100644
--- a/source/_components/switch.rest.markdown
+++ b/source/_components/switch.rest.markdown
@@ -25,16 +25,50 @@ switch:
resource: http://IP_ADDRESS/ENDPOINT
```
-Configuration variables:
-
-- **resource** (*Required*): The resource or endpoint that contains the value.
-- **name** (*Optional*): Name of the REST switch.
-- **method** (*Optional*): HTTP method to use (`post` or `put`). Defaults to `post`.
-- **username** (*Optional*): The username for accessing the REST endpoint.
-- **password** (*Optional*): The password for accessing the REST endpoint.
-- **body_on** (*Optional*): The body of the POST request that commands the switch to become enabled. Default is "ON". This value can be a [template](/topics/templating/).
-- **body_off** (*Optional*): The body of the POST request that commands the switch to become disabled. Default is "OFF". This value can also be a [template](/topics/templating/).
-- **is_on_template** (*Optional*): A [template](/docs/configuration/templating/#processing-incoming-data) that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable `value_json`. Default is equivalent to `'{% raw %}{{ value_json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches .
+{% configuration %}
+resource:
+ description: The resource or endpoint that contains the value.
+ required: true
+ type: string
+ default: string
+method:
+ description: "The method of the request. Supported `post` or `put`."
+ required: false
+ type: string
+ default: POST
+name:
+ description: Name of the REST Switch.
+ required: false
+ type: string
+ default: REST Binary Switch
+timeout:
+ description: Timeout for the request.
+ required: false
+ type: int
+ default: 10
+body_on:
+ description: "The body of the POST request that commands the switch to become enabled. This value can be a [template](/topics/templating/)."
+ required: false
+ type: string
+ default: ON
+body_off:
+ description: "The body of the POST request that commands the switch to become disabled. This value can also be a [template](/topics/templating/)."
+ required: false
+ type: string
+ default: OFF
+is_on_template:
+ description: "A [template](/docs/configuration/templating/#processing-incoming-data) that determines the state of the switch from the value returned by the GET request on the resource URL. This template should compute to a boolean (True or False). If the value is valid JSON, it will be available in the template as the variable `value_json`. Default is equivalent to `'{% raw %}{{ value_json == body_on }}{% endraw %}'`. This means that by default, the state of the switch is on if and only if the response to the GET request matches."
+ required: false
+ type: string
+username:
+ description: The username for accessing the REST endpoint.
+ required: false
+ type: string
+password:
+ description: The password for accessing the REST endpoint.
+ required: false
+ type: string
+{% endconfiguration %}
Make sure that the URL matches exactly your endpoint or resource.
diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown
index 73902df97f2..434a4c45639 100644
--- a/source/_components/switch.rfxtrx.markdown
+++ b/source/_components/switch.rfxtrx.markdown
@@ -51,7 +51,7 @@ Configuration variables:
- **fire_event** (*Optional*): Fires an event even if the state is the same as before, for example a doorbell switch. Can also be used for automations.
-This component and the [rfxtrx binary sensor](/components/binary_sensor/rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
+This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
+If you are upgrading from 0.58 or older, you need to remove all Telldus configuration from your `configuration.yaml` file before continuing.
+
With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration.
@@ -25,7 +25,7 @@ To add a timer to your installation, add the following to your `configuration.ya
```yaml
# Example configuration.yaml entry
timer:
- timer:
+ laundry:
duration: '00:01:00'
```
@@ -92,3 +92,42 @@ Select
+
+Please make sure you have `autoconf` installed (`apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1h) on slow devices. You might have to use `sudo` when installing `autoconf`.
+
+
This platform is an alternative to the [`bom`](/components/sensor.bom/) sensor.
diff --git a/source/_components/weather.darksky.markdown b/source/_components/weather.darksky.markdown
new file mode 100644
index 00000000000..0352ef6074e
--- /dev/null
+++ b/source/_components/weather.darksky.markdown
@@ -0,0 +1,70 @@
+---
+layout: page
+title: "Dark Sky"
+description: "Instructions how to integrate Dark Sky within Home Assistant."
+date: 2016-09-29 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: dark_sky.png
+ha_category: Weather
+ha_release: 0.61
+ha_iot_class: "Cloud Polling"
+---
+
+The `darksky` platform uses the [Dark Sky](https://darksky.net/) web service as
+a source for meteorological data for your location.
+
+You need an API key which is free but requires
+[registration](https://darksky.net/dev/register). The free tier allows up to
+1000 calls per day, this platform updates at most every 3 minutes, using up to
+480 of those calls.
+
+
+[Dark Sky](https://darksky.net/dev/) will charge you $0.0001 per API call if you
+enter your credit card details and create more than 1000 calls per day.
+
+This platform is an alternative to the [`darksky`](/components/sensor.darksky/)
+sensor.
+
This platform is an alternative to the [`metoffice`](/components/sensor.metoffice/) sensor.
The weather platform is easier to configure but less customizable.
+It is HIGHLY recommended that you set the `api_password`, especially if you are planning to expose your installation to the internet.
+
-Following on from Step 4 your SSH will still be in the certbot folder. If you edit your configuration files over SSH you will need to change to your `homeassistant` folder:
+Following on from Step 4 your SSH will still be in the certbot folder. If you edit your configuration files over SSH you will need to change to our `homeassistant` folder:
```
$ cd ~/.homeassistant
```
-If you use samba shares to edit your files you can exit your SSH now.
+If you use Samba shares to edit your files you can exit your SSH now.
+
+Beginners should check our [Getting started guide](/getting-started/) first. This is for users that require advanced installations.
+
+If you want to use a USB Bluetooth adapter or Z-Wave USB Stick with Home Assistant on Synology Docker these instructions do not correctly configure the container to access the USB devices. To configure these devices on your Synology Docker Home Assistant you can follow the instructions provided [here](https://philhawthorne.com/installing-home-assistant-io-on-a-synology-diskstation-nas/) by Phil Hawthorne.
+
-Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/help/faqs/#powerReqs) with your Pi. Mobile chargers may not be suitable, since some are designed to only provide the full power with that manufacturer's handsets.
-
-Note that as of 2016-11-30 SSH is disabled by default in the official Raspbian images. Adding an empty file called `ssh` to `/boot/` on the FAT32 partition will enable it. More information is on the Raspberry Pi Foundation [Blog](https://www.raspberrypi.org/blog/page/2/?fish#a-security-update-for-raspbian-pixel).
-
- This command is a one-liner and not run as sudo.
+ The All-In-One Installer is deprecated, you will have problems updating Home Assistant in 2018. Please move to another [installation method](https://home-assistant.io/getting-started/).
- *Windows users*: Setting up WinSCP to allow this seemlessly is at the end of this page.
-
- If OZWCP is running really slow verify that your not running Home Assistant or have another page running OZWCP open or strange errors might occur.
-
-Don't check the USB box regardless of using a USB based device.
-
+When you run the `hass` command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get "site cannot be reached" error when accessing the web interface. This will only happen for the first time, and subsequent restarts will be much faster.
+
-The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/common-tasks/#update-home-assistant), [Raspberry Pi All-In-One Installer](/docs/installation/raspberry-pi-all-in-one/#upgrading), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
+The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/common-tasks/#update-home-assistant), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
-To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [HASSIO](/hassio/), [HASSbian](/docs/hassbian/installation/), [Raspberry Pi All-In-One Installer](/docs/installation/raspberry-pi-all-in-one/), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv).
+To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [Hass.io](/hassio/), [HASSbian](/docs/hassbian/installation/), [Vagrant](/docs/installation/vagrant/), or [Virtualenv](/docs/installation/virtualenv).
+Looking for more advanced guides? Check our [Rasbian guide](/docs/installation/raspberry-pi/) or the [other installation guides](/docs/installation/).
+
+There may be alpha or beta releases of Python listed on that download page (marked by the letters `a` or `b` in the version number. Do not use these versions.
+
-The Microsoft Windows platform is not a primary target to install home Assistant. Also, not all tools and third-party modules will work.
+The Microsoft Windows platform is not a primary target to install Home Assistant. Also, not all tools and third-party modules will work.
-Don't use the OpenZWave control panel (OZWCP), or the physical button on a controller, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.
+Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.
+ If you've installed the Z-Way software, you'll need to ensure you disable it before you install Home Assistant or you won't be able to access the board. Do this with `sudo /etc/init.d/z-way-server stop; sudo update-rc.d z-way-server disable`.
+
-The installation of python-openzwave can take half an hour or more on a Raspbery Pi.
+The installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi.
+
+On Raspberry Pi you will need to enable the serial interface in the raspbi-config tool before you can add Z-Wave to Home Assistant.
+The Hass.io release of 0.58 will be delayed by a couple of days because Pascal is moving this weekend.
+
+For Custom UI users: your custom UI will need to be updated before it can work with the new version of the frontend.
+
+
+
+
+
Do not use the `api_key` variable. The key is only needed once at initial setup.
+Screenshot of the HASS Configurator.
+
+
(Beginner friendly)
+
diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown
index 4b3d8de4633..0b327c90076 100644
--- a/source/_docs/installation/docker.markdown
+++ b/source/_docs/installation/docker.markdown
@@ -54,9 +54,10 @@ The steps would be:
* Set "Enable auto-restart" if you like
* Within "Volume" click on "Add Folder" and choose either an existing folder or add a new folder. The "mount point" has to be "/config", so that Home Assistant will use it for the configs and logs.
* Within "Network" select "Use same network as Docker Host"
+* To ensure that Home Assistant displays the correct timezone go to the "Environment" tab and click the plus sign then add `variable` = `TZ` & `value` = `Europe/London` choosing [your correct timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
* Confirm the "Advanced Settings"
* Click on "Next" and then "Apply"
-* Your Home Assistant within Docker should now run
+* Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Synology NAS IP address - for example `http://192.168.1.10:8123`)
Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following:
* Go to the Docker-app and move to "Image"-section
@@ -64,14 +65,68 @@ Remark: to update your Home Assistant on your Docker within Synology NAS, you ju
* wait until the system-message/-notification comes up, that the download is finished (there is no progress bar)
* Move to "Container"-section
* Stop your container if it's running
-* Right-click on it and select "Action"->"Clear". You won't loose any data, as all files are stored in your config-directory
+* Right-click on it and select "Action"->"Clear". You won't lose any data, as all files are stored in your config-directory
* Start the container again - it will then boot up with the new Home Assistant image
-### {% linkable_title Restart %}
+Remark: to restart your Home Assistant within Synology NAS, you just have to do the following:
+* Go to the Docker-app and move to "Container"-section
+* Right-click on it and select "Action"->"Restart".
-This will launch Home Assistant and serve the web interface from port 8123 on your Docker host.
+
service developer tools, select the service `homeassistant/restart` and click "Call Service".
- 2. Or you can restart it from an terminal by running `docker restart home-assistant`
+ 2. Or you can restart it from a terminal by running `docker restart home-assistant`
+
+### {% linkable_title Docker Compose %}
+
+As the docker command becomes more complex, switching to `docker-compose` can be preferable and support automatically restarting on failure or system restart. Create a `docker-compose.yml` file:
+
+```yaml
+ version: '3'
+ services:
+ web:
+ image: homeassistant/home-assistant
+ volumes:
+ - /path/to/your/config:/config
+ - /etc/localtime:/etc/localtime:ro
+ restart: always
+ network_mode: host
+```
+
+Then start the container with:
+
+```bash
+$ docker-compose up -d
+```
+
+### {% linkable_title Exposing Devices %}
+
+In order to use z-wave, zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
+
+```bash
+$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 --net=host homeassistant/home-assistant
+```
+
+or in a `docker-compose.yml` file:
+
+```yaml
+ version: '3'
+ services:
+ web:
+ image: homeassistant/home-assistant
+ volumes:
+ - /path/to/your/config:/config
+ - /etc/localtime:/etc/localtime:ro
+ devices:
+ - /dev/ttyUSB0:/dev/ttyUSB0
+ - /dev/ttyUSB1:/dev/ttyUSB1
+ - /dev/ttyACM0:/dev/ttyACM0
+ restart: always
+ network_mode: host
+```
diff --git a/source/_docs/installation/freenas.markdown b/source/_docs/installation/freenas.markdown
index acf67bb0b88..6679275764c 100644
--- a/source/_docs/installation/freenas.markdown
+++ b/source/_docs/installation/freenas.markdown
@@ -33,7 +33,7 @@ Create an `/etc/rc.local` file to enable Home Assistant to start when the jail s
```bash
-# cd / && mkdir /home && /home/.homeassistant/
+# cd / && mkdir -p /home/.homeassistant
```
```bash
diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown
index 68a544461db..dd33b47401c 100644
--- a/source/_docs/installation/hassbian/customization.markdown
+++ b/source/_docs/installation/hassbian/customization.markdown
@@ -21,8 +21,8 @@ To view the available packages run `hassbian-config show` and `sudo hassbian-con
- Install Libcec. Adds local [HDMI CEC support][cec]. *This scipt is currently brooken upstream since it currently doesn't build properly for Python >3.4*
- Install Samba. Allows anyone on your network to edit your configuration from any computer. This share is unsecured and it's usage is not recommended if you share your network with others.
- Install Tradfri. Installs dependencies for using IKEA Trådfri.
- - Install Duck DNS auto renewal. This script adds an cron job to auto update you the WAN IP address for the defined domain. Before running this script you should already have an Duck DNS account, during the installation you will be asked to supply your domain name and the token for your account.
- - Install an web terminal for easy access to ssh in an web browser. This script installs an web terminal called 'shellinabox' to you system that give you SSH access in you web browser.
+ - Install Duck DNS auto renewal. This script adds a cron job to auto update the WAN IP address for the defined domain. Before running this script you should already have an Duck DNS account. During the installation you will be asked to supply your domain name and the token for your account.
+ - Install a web terminal for easy access to ssh in any web browser. This script installs a web terminal called 'shellinabox' on your system that gives you SSH access in your web browser.
#### Upgrade scripts
To view the available packages run `hassbian-config show` and `sudo hassbian-config upgrade PACKAGENAME`.
diff --git a/source/_docs/installation/python.markdown b/source/_docs/installation/python.markdown
index e0603a076c1..a7dda882e25 100644
--- a/source/_docs/installation/python.markdown
+++ b/source/_docs/installation/python.markdown
@@ -22,7 +22,7 @@ Running these commands will:
- Install Home Assistant
- Launch Home Assistant and serve the web interface on [http://localhost:8123](http://localhost:8123)
-If you're running a Linux-based platform, we suggest you follow the [VirtualEnv instructions](/docs/installation/virtualenv/) to avoid using `root`.
+If you're running a Linux-based platform, we suggest you follow the instructions for a [virtual environment](/docs/installation/virtualenv/) to avoid using `root`.
Video tutorials of this process for various operating systems are available here:
@@ -30,3 +30,4 @@ Video tutorials of this process for various operating systems are available here
- [macOS](https://www.youtube.com/watch?v=hej6ipN86ls)
- [Ubuntu 14.04](https://www.youtube.com/watch?v=SXaAG1lGNH0)
+Keep in mind that the used operating systems and the shown software releases may be outdated.
diff --git a/source/_docs/installation/raspberry-pi-all-in-one.markdown b/source/_docs/installation/raspberry-pi-all-in-one.markdown
index 485fc64ffdb..6039ffed440 100644
--- a/source/_docs/installation/raspberry-pi-all-in-one.markdown
+++ b/source/_docs/installation/raspberry-pi-all-in-one.markdown
@@ -8,124 +8,6 @@ footer: true
redirect_from: /getting-started/installation-raspberry-pi-all-in-one/
---
-The [Raspberry Pi All-In-One Installer](https://github.com/home-assistant/fabric-home-assistant) deploys a complete Home Assistant server including support for MQTT with websockets, Z-Wave, and the OpenZWave Control Panel.
-
-
+
+
+ Screenshot of the about screen showing the system log.
+
+ Hass.io virtual machine in Virtual Machine Manager
+
+ Hass.io overview
+
+
+Keep in mind that there are limitations with this approach. Not all [add-ons](/addons/) will work and some don't make sense to use as the hardware is not present. E.g., use the [SSH community add-on](https://github.com/hassio-addons/addon-ssh) instead of the default [SSH add-on](/addons/ssh/).
+
diff --git a/source/_posts/2017-12-03-release-59.markdown b/source/_posts/2017-12-03-release-59.markdown
new file mode 100644
index 00000000000..98c4d669b2f
--- /dev/null
+++ b/source/_posts/2017-12-03-release-59.markdown
@@ -0,0 +1,431 @@
+---
+layout: post
+title: "0.59: Order pizza, Entity Picker, Color Wheel"
+description: "If you don't want to create items on our shopping list with HTTP requests, just order pizza!"
+date: 2017-12-03 02:00:00
+date_formatted: "December 3, 2017"
+author: Fabian Affolter
+author_twitter: fabaff
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2017-12-0.59/components.png
+---
+
+
+
+We are proud to announce the availability of Home Assistant 0.59. To keep you in the loop: This is the second last release in 2017. We have stuck to our bi-weekly release cycle for another year but we decided that we will take a little break between Christmas and New Year.
+
+## {% linkable_title Dominos Pizza platform %}
+With the Dominos Pizza integration made by [@wardcraigj] your home is now taking care that you don't starve. In combination with a [Skybell](/components/skybell/) or a [DoorBird](/components/doorbird/) you will know exactly when the pizza is in front of your door.
+
+## {% linkable_title Color picker %}
+[@NovapaX] created a new color picker. While dragging the color badge with your finger, a badge will appear above your finger so you can see the current color.
+
+
+ Screenshot of the color wheel.
+
+ Screenshot of the of the Enitity Picker.
+
+
+The biggest change for 0.60 will be covered in a separate [blog post](/blog/2017/12/17/introducing-home-assistant-cloud/). Thus, we will keep it short here. Just one thing: This is the last release in 2017. We will be back to our bi-weekly release cycle in 2018.
+
+A big "Thank you" to all people who supported us to make this release possible.
+
+## {% linkable_title TwinCAT %}
+With the brand-new [ADS (automation device specification)][ads docs] component by [@stlehmann] allows you to hook Home Assistant into this fieldbus independent interface which is often used between Beckhoff devices running with TwinCAT.
+
+## {% linkable_title WebDav calendar %}
+Thanks to [@maxlaverse] Home Assistant support now [WebDav calendars][calendar.caldav docs].
+
+## {% linkable_title Tracking prices %}
+With the new [`gearbest` sensor][sensor.gearbest docs] there is now an additional sensor available to track the price of a product.
+
+## {% linkable_title Financial details %}
+Yahoo! has discontinued their financial service. To fill this gap we have now the [`alpha_vantage` sensor][sensor.alpha_vantage docs] which is intruded in this release and allows you to monitor the stock market.
+
+## {% linkable_title New Platforms %}
+
+- Add iAlarm support ([@RyuzakiKK] - [#10878]) ([alarm_control_panel.ialarm docs]) (new-platform)
+- Add Alpha Vantage sensor ([@fabaff] - [#10873]) ([sensor.alpha_vantage docs]) (new-platform)
+- Add ADS component ([@stlehmann] - [#10142]) ([ads docs]) ([binary_sensor.ads docs]) ([light.ads docs]) ([sensor.ads docs]) ([switch.ads docs]) (new-platform)
+- Gearbest sensor ([@HerrHofrat] - [#10556]) ([sensor.gearbest docs]) (new-platform)
+- Add Ziggo Mediabox XL media_player ([@b10m] - [#10514]) ([media_player.ziggo_mediabox_xl docs]) (new-platform)
+- Meraki AP Device tracker ([@masarliev] - [#10971]) ([device_tracker.meraki docs]) (new-platform)
+- Added Vera scenes ([@alanfischer] - [#10424]) ([vera docs]) ([scene.vera docs]) (new-platform)
+- Add support for Canary component and platforms ([@snjoetw] - [#10306]) ([canary docs]) ([camera.canary docs]) ([sensor.canary docs]) (new-platform)
+- Add support for Logitech UE Smart Radios. ([@GreenTurtwig] - [#10077]) ([media_player.ue_smart_radio docs]) (new-platform)
+- Added support for cover in tellstick ([@perfalk] - [#10858]) ([tellstick docs]) ([cover.tellstick docs]) (new-platform)
+- Add a caldav calendar component ([@maxlaverse] - [#10842]) ([calendar.caldav docs]) (new-platform)
+- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
+
+## {% linkable_title Release 0.60.1 - January 6 %}
+
+- Fix async IO in Sesame lock component. ([@veleek] - [#11054]) ([lock.sesame docs])
+- Fix webdav calendar schema ([@maxlaverse] - [#11185]) ([calendar.caldav docs])
+- homematic: add username and password to interface config schema ([@jannau] - [#11214]) ([homematic docs])
+- Fix webostv select source ([@OddBloke] - [#11227]) ([media_player.webostv docs])
+- Fix detection of if a negative node is in use ([@OverloadUT] - [#11255]) ([binary_sensor.isy994 docs])
+- Bugfix homematic available modus ([@pvizeli] - [#11256]) ([homematic docs])
+- Support multiple Hue bridges with lights of the same id ([@andreacampi] - [#11259]) ([light.hue docs])
+- Fix inverted sensors on the concord232 binary sensor component ([@CTLS] - [#11261]) ([binary_sensor.concord232 docs])
+- Fix handling zero values for state_on/state_off ([@ziotibia81] - [#11264]) ([switch.modbus docs])
+- Fix allday events in custom_calendars ([@maxlaverse] - [#11272]) ([calendar.caldav docs])
+- Fix unpredictable entity names in concord232 binary_sensor ([@rwa] - [#11292]) ([binary_sensor.concord232 docs])
+- Fix leak sensors always showing Unknown until Wet ([@OverloadUT] - [#11313]) ([binary_sensor.isy994 docs])
+- Don't block on sevice call for alexa ([@pvizeli] - [#11358]) ([alexa.smart_home docs])
+- iOS 10 should be served javascript_version:es5 ([@mnoorenberghe] - [#11387])
+
+## {% linkable_title If you need help... %}
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
+
+## {% linkable_title Reporting Issues %}
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
+
+
+
+## {% linkable_title Breaking Changes %}
+
+- Update snips to listen on new mqtt topic and utilize rawValue ([@tschmidty69] - [#11020]) ([snips docs]) (breaking change)
+- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
+- Use luftdaten module ([@fabaff] - [#10970]) ([sensor.luftdaten docs]) (breaking change)
+- ISY994 sensor improvements ([@OverloadUT] - [#10805]) ([isy994 docs]) ([binary_sensor.isy994 docs]) (breaking change)
+- Homematic next ([@pvizeli] - [#11156]) ([homematic docs]) (breaking change)
+
+## {% linkable_title All changes %}
+
+- Update ecobee version to fix stack-trace issue ([@PhracturedBlue] - [#10894]) ([ecobee docs])
+- Pybotvac multi ([@raymccarthy] - [#10843]) ([neato docs])
+- More declarative timeout syntax for manual alarm control panel. ([@bonzini] - [#10738]) ([alarm_control_panel.manual docs]) ([alarm_control_panel.manual_mqtt docs])
+- Unpacking RESTful sensor JSON results into attributes. ([@nickovs] - [#10753]) ([sensor.rest docs])
+- Bump dev to 0.60.0.dev0 ([@fabaff] - [#10912])
+- Update eliqonline.py ([@molobrakos] - [#10914]) ([sensor.eliqonline docs])
+- Add iAlarm support ([@RyuzakiKK] - [#10878]) ([alarm_control_panel.ialarm docs]) (new-platform)
+- Correction of Samsung Power OFF behaviour ([@RiRomain] - [#10907]) ([media_player.samsungtv docs])
+- Add Alpha Vantage sensor ([@fabaff] - [#10873]) ([sensor.alpha_vantage docs]) (new-platform)
+- Don't repeat getting receiver name on each update / pushed to denonavr 0.5.5 ([@scarface-4711] - [#10915]) ([media_player.denonavr docs])
+- Add Min and Event Count Metrics To Prometheus ([@bah2830] - [#10530]) ([prometheus docs])
+- Update coveragerc ([@balloob] - [#10931])
+- Report availability of TP-Link smart sockets ([@DanNixon] - [#10933]) ([switch.tplink docs])
+- Set percent unit for battery level so that history displays properly; edited variable name for consistency ([@nbougues] - [#10932]) ([sensor.tesla docs])
+- Export climate status and target temperature to Prometheus ([@hudashot] - [#10919]) ([prometheus docs])
+- Tado ignore invalid devices ([@dasos] - [#10927]) ([climate.tado docs])
+- don't ignore voltage data if sensor data changed ([@PaulAnnekov] - [#10925]) ([xiaomi_aqara docs])
+- Add ADS component ([@stlehmann] - [#10142]) ([ads docs]) ([binary_sensor.ads docs]) ([light.ads docs]) ([sensor.ads docs]) ([switch.ads docs]) (new-platform)
+- Gearbest sensor ([@HerrHofrat] - [#10556]) ([sensor.gearbest docs]) (new-platform)
+- Add Ziggo Mediabox XL media_player ([@b10m] - [#10514]) ([media_player.ziggo_mediabox_xl docs]) (new-platform)
+- Generic thermostat initial_operation_mode ([@ziotibia81] - [#10690]) ([climate.generic_thermostat docs])
+- Use new build path for dev translations ([@armills] - [#10937])
+- Add option to set default hide if away for new devices ([@masarliev] - [#10762]) ([device_tracker docs])
+- Allow disabling the LEDs on TP-Link smart plugs ([@DanNixon] - [#10980]) ([switch.tplink docs])
+- Meraki AP Device tracker ([@masarliev] - [#10971]) ([device_tracker.meraki docs]) (new-platform)
+- Update tradfri.py ([@pvizeli] - [#10991]) ([light.tradfri docs])
+- webostv: Ensure source exists before use ([@OddBloke] - [#10959]) ([media_player.webostv docs])
+- Ensure Docker script files uses LF line endings to support Docker for Windows. ([@R1chardTM] - [#10067])
+- Added Vera scenes ([@alanfischer] - [#10424]) ([vera docs]) ([scene.vera docs]) (new-platform)
+- Fix Egardia alarm status shown as unknown after restart ([@jeroenterheerdt] - [#11010]) ([alarm_control_panel.egardia docs])
+- Handle OSError when forcibly turning off media_player.samsungtv ([@lwis] - [#10997]) ([media_player.samsungtv docs])
+- Shuffle support in Sonos ([@mar-schmidt] - [#10875]) ([media_player.sonos docs])
+- Add support for Canary component and platforms ([@snjoetw] - [#10306]) ([canary docs]) ([camera.canary docs]) ([sensor.canary docs]) (new-platform)
+- Ignore Sonos players with unknown hostnames ([@amelchio] - [#11013])
+- Support LIFX Mini products ([@amelchio] - [#10996]) ([light.lifx docs])
+- Update snips to listen on new mqtt topic and utilize rawValue ([@tschmidty69] - [#11020]) ([snips docs]) (breaking change)
+- Change default js version to auto ([@andrey-git] - [#10999])
+- Serialize mochad requests ([@mtreinish] - [#11029]) ([mochad docs]) ([light.mochad docs]) ([switch.mochad docs])
+- In dev mode expose only relevant sources ([@andrey-git] - [#11026])
+- Added force_update for REST sensor ([@foxel] - [#11016]) ([sensor.miflora docs]) ([sensor.mqtt docs]) ([sensor.rest docs])
+- Add support for Logitech UE Smart Radios. ([@GreenTurtwig] - [#10077]) ([media_player.ue_smart_radio docs]) (new-platform)
+- Make notify.html5 depend on config ([@balloob] - [#11052]) ([notify.html5 docs])
+- This change fixes the error `OSError: [WinError 193]` on Windows debuggers (i.e. PyCharm) ([@tringler] - [#11034])
+- Added support for cover in tellstick ([@perfalk] - [#10858]) ([tellstick docs]) ([cover.tellstick docs]) (new-platform)
+- Add a caldav calendar component ([@maxlaverse] - [#10842]) ([calendar.caldav docs]) (new-platform)
+- Add GPS coords to meraki ([@addelovein] - [#10998]) ([device_tracker.meraki docs])
+- Refactor hue to split bridge support from light platform ([@andreacampi] - [#10691]) ([hue docs]) ([light.hue docs]) (breaking change) (new-platform)
+- add custom bypass status to total connect ([@uchagani] - [#11042]) ([alarm_control_panel.totalconnect docs])
+- Volvo on call: Optional use of Scandinavian miles. Also add average fuel consumption property ([@molobrakos] - [#11051]) ([volvooncall docs]) ([sensor.volvooncall docs])
+- Allow tradfri to read the available state of the device ([@pvizeli] - [#11056]) ([light.tradfri docs])
+- Upgrade aiohttp to 2.3.6 ([@fabaff] - [#11079])
+- Upgrade yarl to 0.16.0 ([@fabaff] - [#11078])
+- Upgrade psutil to 5.4.2 ([@fabaff] - [#11083]) ([sensor.systemmonitor docs])
+- Upgrade youtube_dl to 2017.12.10 ([@fabaff] - [#11080]) ([media_extractor docs])
+- Upgrade shodan to 1.7.7 ([@fabaff] - [#11084]) ([sensor.shodan docs])
+- Update tellcore-net to 0.4 ([@pvizeli] - [#11087]) ([tellstick docs])
+- Bump pymusiccast to version 0.1.6 ([@jalmeroth] - [#11091]) ([media_player.yamaha_musiccast docs])
+- Use luftdaten module ([@fabaff] - [#10970]) ([sensor.luftdaten docs]) (breaking change)
+- Bump pyatv to 0.3.9 ([@postlund] - [#11104]) ([apple_tv docs])
+- Report availability for TP-Link smart bulbs ([@DanNixon] - [#10976]) ([light.tplink docs])
+- Fix incorrect comment. ([@emosenkis] - [#11111])
+- Update Warrant ([@balloob] - [#11101]) ([cloud docs])
+- Fixed typo in automation.py ([@ryanm101] - [#11116]) ([config.automation docs])
+- Add media position properties ([@pschmitt] - [#10076]) ([media_player.liveboxplaytv docs])
+- update pyripple ([@nkgilley] - [#11122]) ([sensor.ripple docs])
+- Skip HASS emulated Hue bridges from detection. ([@andreacampi] - [#11128]) ([hue docs])
+- Always consume the no_throttle keyword argument. ([@andreacampi] - [#11126])
+- Add problem device class ([@armills] - [#11130]) ([binary_sensor docs])
+- set default utc offset to 0 ([@pollett] - [#11114]) ([sensor.efergy docs])
+- Allow using more than one keyboard remote ([@BryanJacobs] - [#11061]) ([keyboard_remote docs])
+- ISY994 sensor improvements ([@OverloadUT] - [#10805]) ([isy994 docs]) ([binary_sensor.isy994 docs]) (breaking change)
+- Disable html5 notify dependency ([@balloob] - [#11135]) ([notify.html5 docs])
+- Upgrade Homematic ([@danielperna84] - [#11149]) ([homematic docs])
+- Fix X10 commands for mochad light turn on ([@mtreinish] - [#11146]) ([light.mochad docs])
+- Homematic next ([@pvizeli] - [#11156]) ([homematic docs]) (breaking change)
+- Resolve hostnames ([@pvizeli] - [#11160]) ([homematic docs])
+- Perform logbook filtering on the worker thread ([@armills] - [#11161]) ([logbook docs])
+- Don't connect to cloud if subscription expired ([@balloob] - [#11163]) ([cloud docs]) ([cloud.const docs])
+- Add install mode to homematic ([@pvizeli] - [#11164]) ([homematic docs])
+- convert alarmdecoder interface from async to sync ([@PhracturedBlue] - [#11168]) ([alarmdecoder docs])
+- Remove logging ([@cmsimike] - [#11173]) ([sensor.octoprint docs])
+- Revbump to SoCo 0.13 and add support for Night Sound and Speech Enhancement. ([@rbdixon] - [#10765]) ([media_player.sonos docs])
+
+[#10067]: https://github.com/home-assistant/home-assistant/pull/10067
+[#10076]: https://github.com/home-assistant/home-assistant/pull/10076
+[#10077]: https://github.com/home-assistant/home-assistant/pull/10077
+[#10142]: https://github.com/home-assistant/home-assistant/pull/10142
+[#10306]: https://github.com/home-assistant/home-assistant/pull/10306
+[#10424]: https://github.com/home-assistant/home-assistant/pull/10424
+[#10514]: https://github.com/home-assistant/home-assistant/pull/10514
+[#10530]: https://github.com/home-assistant/home-assistant/pull/10530
+[#10556]: https://github.com/home-assistant/home-assistant/pull/10556
+[#10690]: https://github.com/home-assistant/home-assistant/pull/10690
+[#10691]: https://github.com/home-assistant/home-assistant/pull/10691
+[#10738]: https://github.com/home-assistant/home-assistant/pull/10738
+[#10753]: https://github.com/home-assistant/home-assistant/pull/10753
+[#10762]: https://github.com/home-assistant/home-assistant/pull/10762
+[#10765]: https://github.com/home-assistant/home-assistant/pull/10765
+[#10805]: https://github.com/home-assistant/home-assistant/pull/10805
+[#10842]: https://github.com/home-assistant/home-assistant/pull/10842
+[#10843]: https://github.com/home-assistant/home-assistant/pull/10843
+[#10858]: https://github.com/home-assistant/home-assistant/pull/10858
+[#10873]: https://github.com/home-assistant/home-assistant/pull/10873
+[#10875]: https://github.com/home-assistant/home-assistant/pull/10875
+[#10878]: https://github.com/home-assistant/home-assistant/pull/10878
+[#10894]: https://github.com/home-assistant/home-assistant/pull/10894
+[#10907]: https://github.com/home-assistant/home-assistant/pull/10907
+[#10912]: https://github.com/home-assistant/home-assistant/pull/10912
+[#10914]: https://github.com/home-assistant/home-assistant/pull/10914
+[#10915]: https://github.com/home-assistant/home-assistant/pull/10915
+[#10919]: https://github.com/home-assistant/home-assistant/pull/10919
+[#10925]: https://github.com/home-assistant/home-assistant/pull/10925
+[#10927]: https://github.com/home-assistant/home-assistant/pull/10927
+[#10931]: https://github.com/home-assistant/home-assistant/pull/10931
+[#10932]: https://github.com/home-assistant/home-assistant/pull/10932
+[#10933]: https://github.com/home-assistant/home-assistant/pull/10933
+[#10937]: https://github.com/home-assistant/home-assistant/pull/10937
+[#10959]: https://github.com/home-assistant/home-assistant/pull/10959
+[#10970]: https://github.com/home-assistant/home-assistant/pull/10970
+[#10971]: https://github.com/home-assistant/home-assistant/pull/10971
+[#10976]: https://github.com/home-assistant/home-assistant/pull/10976
+[#10980]: https://github.com/home-assistant/home-assistant/pull/10980
+[#10991]: https://github.com/home-assistant/home-assistant/pull/10991
+[#10996]: https://github.com/home-assistant/home-assistant/pull/10996
+[#10997]: https://github.com/home-assistant/home-assistant/pull/10997
+[#10998]: https://github.com/home-assistant/home-assistant/pull/10998
+[#10999]: https://github.com/home-assistant/home-assistant/pull/10999
+[#11010]: https://github.com/home-assistant/home-assistant/pull/11010
+[#11013]: https://github.com/home-assistant/home-assistant/pull/11013
+[#11016]: https://github.com/home-assistant/home-assistant/pull/11016
+[#11020]: https://github.com/home-assistant/home-assistant/pull/11020
+[#11026]: https://github.com/home-assistant/home-assistant/pull/11026
+[#11029]: https://github.com/home-assistant/home-assistant/pull/11029
+[#11034]: https://github.com/home-assistant/home-assistant/pull/11034
+[#11042]: https://github.com/home-assistant/home-assistant/pull/11042
+[#11051]: https://github.com/home-assistant/home-assistant/pull/11051
+[#11052]: https://github.com/home-assistant/home-assistant/pull/11052
+[#11056]: https://github.com/home-assistant/home-assistant/pull/11056
+[#11061]: https://github.com/home-assistant/home-assistant/pull/11061
+[#11078]: https://github.com/home-assistant/home-assistant/pull/11078
+[#11079]: https://github.com/home-assistant/home-assistant/pull/11079
+[#11080]: https://github.com/home-assistant/home-assistant/pull/11080
+[#11083]: https://github.com/home-assistant/home-assistant/pull/11083
+[#11084]: https://github.com/home-assistant/home-assistant/pull/11084
+[#11087]: https://github.com/home-assistant/home-assistant/pull/11087
+[#11091]: https://github.com/home-assistant/home-assistant/pull/11091
+[#11101]: https://github.com/home-assistant/home-assistant/pull/11101
+[#11104]: https://github.com/home-assistant/home-assistant/pull/11104
+[#11111]: https://github.com/home-assistant/home-assistant/pull/11111
+[#11114]: https://github.com/home-assistant/home-assistant/pull/11114
+[#11116]: https://github.com/home-assistant/home-assistant/pull/11116
+[#11122]: https://github.com/home-assistant/home-assistant/pull/11122
+[#11126]: https://github.com/home-assistant/home-assistant/pull/11126
+[#11128]: https://github.com/home-assistant/home-assistant/pull/11128
+[#11130]: https://github.com/home-assistant/home-assistant/pull/11130
+[#11135]: https://github.com/home-assistant/home-assistant/pull/11135
+[#11146]: https://github.com/home-assistant/home-assistant/pull/11146
+[#11149]: https://github.com/home-assistant/home-assistant/pull/11149
+[#11156]: https://github.com/home-assistant/home-assistant/pull/11156
+[#11160]: https://github.com/home-assistant/home-assistant/pull/11160
+[#11161]: https://github.com/home-assistant/home-assistant/pull/11161
+[#11163]: https://github.com/home-assistant/home-assistant/pull/11163
+[#11164]: https://github.com/home-assistant/home-assistant/pull/11164
+[#11168]: https://github.com/home-assistant/home-assistant/pull/11168
+[#11173]: https://github.com/home-assistant/home-assistant/pull/11173
+[@BryanJacobs]: https://github.com/BryanJacobs
+[@DanNixon]: https://github.com/DanNixon
+[@GreenTurtwig]: https://github.com/GreenTurtwig
+[@HerrHofrat]: https://github.com/HerrHofrat
+[@OddBloke]: https://github.com/OddBloke
+[@OverloadUT]: https://github.com/OverloadUT
+[@PaulAnnekov]: https://github.com/PaulAnnekov
+[@PhracturedBlue]: https://github.com/PhracturedBlue
+[@R1chardTM]: https://github.com/R1chardTM
+[@RiRomain]: https://github.com/RiRomain
+[@RyuzakiKK]: https://github.com/RyuzakiKK
+[@addelovein]: https://github.com/addelovein
+[@alanfischer]: https://github.com/alanfischer
+[@amelchio]: https://github.com/amelchio
+[@andreacampi]: https://github.com/andreacampi
+[@andrey-git]: https://github.com/andrey-git
+[@armills]: https://github.com/armills
+[@b10m]: https://github.com/b10m
+[@bah2830]: https://github.com/bah2830
+[@balloob]: https://github.com/balloob
+[@bonzini]: https://github.com/bonzini
+[@cmsimike]: https://github.com/cmsimike
+[@danielperna84]: https://github.com/danielperna84
+[@dasos]: https://github.com/dasos
+[@emosenkis]: https://github.com/emosenkis
+[@fabaff]: https://github.com/fabaff
+[@foxel]: https://github.com/foxel
+[@hudashot]: https://github.com/hudashot
+[@jalmeroth]: https://github.com/jalmeroth
+[@jeroenterheerdt]: https://github.com/jeroenterheerdt
+[@lwis]: https://github.com/lwis
+[@mar-schmidt]: https://github.com/mar-schmidt
+[@masarliev]: https://github.com/masarliev
+[@maxlaverse]: https://github.com/maxlaverse
+[@molobrakos]: https://github.com/molobrakos
+[@mtreinish]: https://github.com/mtreinish
+[@nbougues]: https://github.com/nbougues
+[@nickovs]: https://github.com/nickovs
+[@nkgilley]: https://github.com/nkgilley
+[@perfalk]: https://github.com/perfalk
+[@pollett]: https://github.com/pollett
+[@postlund]: https://github.com/postlund
+[@pschmitt]: https://github.com/pschmitt
+[@pvizeli]: https://github.com/pvizeli
+[@raymccarthy]: https://github.com/raymccarthy
+[@rbdixon]: https://github.com/rbdixon
+[@ryanm101]: https://github.com/ryanm101
+[@scarface-4711]: https://github.com/scarface-4711
+[@snjoetw]: https://github.com/snjoetw
+[@stlehmann]: https://github.com/stlehmann
+[@tringler]: https://github.com/tringler
+[@tschmidty69]: https://github.com/tschmidty69
+[@uchagani]: https://github.com/uchagani
+[@ziotibia81]: https://github.com/ziotibia81
+[ads docs]: https://home-assistant.io/components/ads/
+[alarm_control_panel.egardia docs]: https://home-assistant.io/components/alarm_control_panel.egardia/
+[alarm_control_panel.ialarm docs]: https://home-assistant.io/components/alarm_control_panel.ialarm/
+[alarm_control_panel.manual docs]: https://home-assistant.io/components/alarm_control_panel.manual/
+[alarm_control_panel.manual_mqtt docs]: https://home-assistant.io/components/alarm_control_panel.manual_mqtt/
+[alarm_control_panel.totalconnect docs]: https://home-assistant.io/components/alarm_control_panel.totalconnect/
+[alarmdecoder docs]: https://home-assistant.io/components/alarmdecoder/
+[apple_tv docs]: https://home-assistant.io/components/apple_tv/
+[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/
+[binary_sensor.ads docs]: https://home-assistant.io/components/binary_sensor.ads/
+[binary_sensor.isy994 docs]: https://home-assistant.io/components/binary_sensor.isy994/
+[calendar.caldav docs]: https://home-assistant.io/components/calendar.caldav/
+[camera.canary docs]: https://home-assistant.io/components/camera.canary/
+[canary docs]: https://home-assistant.io/components/canary/
+[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/
+[climate.tado docs]: https://home-assistant.io/components/climate.tado/
+[cloud docs]: https://home-assistant.io/components/cloud/
+[cloud.const docs]: https://home-assistant.io/components/cloud.const/
+[config.automation docs]: https://home-assistant.io/components/config.automation/
+[cover.tellstick docs]: https://home-assistant.io/components/cover.tellstick/
+[device_tracker docs]: https://home-assistant.io/components/device_tracker/
+[device_tracker.meraki docs]: https://home-assistant.io/components/device_tracker.meraki/
+[ecobee docs]: https://home-assistant.io/components/ecobee/
+[homematic docs]: https://home-assistant.io/components/homematic/
+[hue docs]: https://home-assistant.io/components/hue/
+[isy994 docs]: https://home-assistant.io/components/isy994/
+[keyboard_remote docs]: https://home-assistant.io/components/keyboard_remote/
+[light.ads docs]: https://home-assistant.io/components/light.ads/
+[light.hue docs]: https://home-assistant.io/components/light.hue/
+[light.lifx docs]: https://home-assistant.io/components/light.lifx/
+[light.mochad docs]: https://home-assistant.io/components/light.mochad/
+[light.tplink docs]: https://home-assistant.io/components/light.tplink/
+[light.tradfri docs]: https://home-assistant.io/components/light.tradfri/
+[logbook docs]: https://home-assistant.io/components/logbook/
+[media_extractor docs]: https://home-assistant.io/components/media_extractor/
+[media_player.denonavr docs]: https://home-assistant.io/components/media_player.denonavr/
+[media_player.liveboxplaytv docs]: https://home-assistant.io/components/media_player.liveboxplaytv/
+[media_player.samsungtv docs]: https://home-assistant.io/components/media_player.samsungtv/
+[media_player.sonos docs]: https://home-assistant.io/components/media_player.sonos/
+[media_player.ue_smart_radio docs]: https://home-assistant.io/components/media_player.ue_smart_radio/
+[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/
+[media_player.yamaha_musiccast docs]: https://home-assistant.io/components/media_player.yamaha_musiccast/
+[media_player.ziggo_mediabox_xl docs]: https://home-assistant.io/components/media_player.ziggo_mediabox_xl/
+[mochad docs]: https://home-assistant.io/components/mochad/
+[neato docs]: https://home-assistant.io/components/neato/
+[notify.html5 docs]: https://home-assistant.io/components/notify.html5/
+[prometheus docs]: https://home-assistant.io/components/prometheus/
+[scene.vera docs]: https://home-assistant.io/components/scene.vera/
+[sensor.ads docs]: https://home-assistant.io/components/sensor.ads/
+[sensor.alpha_vantage docs]: https://home-assistant.io/components/sensor.alpha_vantage/
+[sensor.canary docs]: https://home-assistant.io/components/sensor.canary/
+[sensor.efergy docs]: https://home-assistant.io/components/sensor.efergy/
+[sensor.eliqonline docs]: https://home-assistant.io/components/sensor.eliqonline/
+[sensor.gearbest docs]: https://home-assistant.io/components/sensor.gearbest/
+[sensor.luftdaten docs]: https://home-assistant.io/components/sensor.luftdaten/
+[sensor.miflora docs]: https://home-assistant.io/components/sensor.miflora/
+[sensor.mqtt docs]: https://home-assistant.io/components/sensor.mqtt/
+[sensor.octoprint docs]: https://home-assistant.io/components/sensor.octoprint/
+[sensor.rest docs]: https://home-assistant.io/components/sensor.rest/
+[sensor.ripple docs]: https://home-assistant.io/components/sensor.ripple/
+[sensor.shodan docs]: https://home-assistant.io/components/sensor.shodan/
+[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/
+[sensor.tesla docs]: https://home-assistant.io/components/sensor.tesla/
+[sensor.volvooncall docs]: https://home-assistant.io/components/sensor.volvooncall/
+[snips docs]: https://home-assistant.io/components/snips/
+[switch.ads docs]: https://home-assistant.io/components/switch.ads/
+[switch.mochad docs]: https://home-assistant.io/components/switch.mochad/
+[switch.tplink docs]: https://home-assistant.io/components/switch.tplink/
+[tellstick docs]: https://home-assistant.io/components/tellstick/
+[vera docs]: https://home-assistant.io/components/vera/
+[volvooncall docs]: https://home-assistant.io/components/volvooncall/
+[xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/
+[#11054]: https://github.com/home-assistant/home-assistant/pull/11054
+[#11185]: https://github.com/home-assistant/home-assistant/pull/11185
+[#11214]: https://github.com/home-assistant/home-assistant/pull/11214
+[#11227]: https://github.com/home-assistant/home-assistant/pull/11227
+[#11255]: https://github.com/home-assistant/home-assistant/pull/11255
+[#11256]: https://github.com/home-assistant/home-assistant/pull/11256
+[#11259]: https://github.com/home-assistant/home-assistant/pull/11259
+[#11261]: https://github.com/home-assistant/home-assistant/pull/11261
+[#11264]: https://github.com/home-assistant/home-assistant/pull/11264
+[#11272]: https://github.com/home-assistant/home-assistant/pull/11272
+[#11292]: https://github.com/home-assistant/home-assistant/pull/11292
+[#11313]: https://github.com/home-assistant/home-assistant/pull/11313
+[#11358]: https://github.com/home-assistant/home-assistant/pull/11358
+[#11387]: https://github.com/home-assistant/home-assistant/pull/11387
+[@CTLS]: https://github.com/CTLS
+[@OddBloke]: https://github.com/OddBloke
+[@OverloadUT]: https://github.com/OverloadUT
+[@andreacampi]: https://github.com/andreacampi
+[@jannau]: https://github.com/jannau
+[@maxlaverse]: https://github.com/maxlaverse
+[@mnoorenberghe]: https://github.com/mnoorenberghe
+[@pvizeli]: https://github.com/pvizeli
+[@rwa]: https://github.com/rwa
+[@veleek]: https://github.com/veleek
+[@ziotibia81]: https://github.com/ziotibia81
+[alexa.smart_home docs]: https://home-assistant.io/components/alexa.smart_home/
+[binary_sensor.concord232 docs]: https://home-assistant.io/components/binary_sensor.concord232/
+[binary_sensor.isy994 docs]: https://home-assistant.io/components/binary_sensor.isy994/
+[calendar.caldav docs]: https://home-assistant.io/components/calendar.caldav/
+[homematic docs]: https://home-assistant.io/components/homematic/
+[light.hue docs]: https://home-assistant.io/components/light.hue/
+[lock.sesame docs]: https://home-assistant.io/components/lock.sesame/
+[media_player.webostv docs]: https://home-assistant.io/components/media_player.webostv/
+[switch.modbus docs]: https://home-assistant.io/components/switch.modbus/
diff --git a/source/_posts/2017-12-28-thank-you.markdown b/source/_posts/2017-12-28-thank-you.markdown
new file mode 100644
index 00000000000..f5632f7d6fe
--- /dev/null
+++ b/source/_posts/2017-12-28-thank-you.markdown
@@ -0,0 +1,44 @@
+---
+layout: post
+title: "Thank You"
+description: "Thanks to all our contributors, dependencies and companies that help make Home Assistant awesome."
+date: 2017-12-28 22:00:00 UTC
+date_formatted: "December 28, 2017"
+author: Fabian affolter
+author_twitter: fabaff
+comments: true
+categories: Community
+og_image:
+---
+
+2017 is almost over and this means it's time to do a little recap of our 2017. This was a great year for Home Assistant. Again, we were able to stick to our bi-weekly release cycle. There were 25 releases over the year and each release included the work of around 60 contributors.
+
+We got 10.000 stars on [GitHub], reached 10.000 commits in the main repo (over 4300 were made in 2017), got a [Thomas-Krenn award], participated in [Hacktoberfest], we have now almost 1000 integrations (the exact number is 938), we [moved to Discord] and we are up to over 2 million pageviews per month on our forum. Beside that we announced the [Home Assistant cloud] and have regular [Home Assistant Podcasts].
+
+We also do not want to forget to mention [Hass.io] and all the great Hass.io add-ons.
+
+Uff, what a year...Thank you, dear community for being so helpful, supportive and awesome 🙇.
+
+A very big thanks goes out to the developers of the Python language and all the open source libraries and tools that Home Assistant depends on. You are the foundation for our success and all of you can be proud of yourself.
+
+We would also like to thanks all the companies that offer their services for free to open source projects. Without these we would not be able to operate at our speed or scale. Thank you [GitHub], [TravisCI], [CloudFlare], [Discord] and [Discourse]!
+
+Some of us are taking a break and spending some quality time with family and loved ones.
+
+Stay tuned for more Home Assistant awesomeness in 2018. We will keep the pace but first: Happy New Year!
+
+-- Home Assistant Organization
+
+[CloudFlare]: https://CloudFlare.com
+[Discord]: https://discordapp.com
+[Discourse]: https://Discourse.com
+[forum]: https://community.home-assistant.io
+[GitHub]: https://GitHub.com
+[Hacktoberfest]: /blog/2017/11/04/release-57/#hacktoberfest
+[Hass.io]: https://home-assistant.io/hassio/
+[Home Assistant cloud]: /blog/2017/12/17/introducing-home-assistant-cloud/
+[Home Assistant Podcasts]: https://hasspodcast.io/
+[moved to Discord]: /blog/2017/07/03/home-assistant-is-moving-to-discord/
+[Thomas-Krenn award]: /blog/2017/04/01/thomas-krenn-award/
+[TravisCI]: https://Travis-ci.org
+
diff --git a/source/_posts/2018-01-14-release-61.markdown b/source/_posts/2018-01-14-release-61.markdown
new file mode 100644
index 00000000000..f83e933ee79
--- /dev/null
+++ b/source/_posts/2018-01-14-release-61.markdown
@@ -0,0 +1,797 @@
+---
+layout: post
+title: "0.61: Coinbase, Discogs, iGlo, Sochain"
+description: "New crypto currency sensors and other new stuff including breaking changes."
+date: 2018-01-14 18:00:00
+date_formatted: "January 14, 2018"
+author: Fabian Affolter
+author_twitter: fabaff
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2018-01-0.61/components.png
+---
+
+
+
+Almost a 100 contributors to this release 🎉 That's what you get when you skip a release. It's a little late but "Happy New Year" and welcome to 0.61 the first release 2018.
+
+This release contain some breaking changes. Please make sure that you check the section below if you are running into trouble.
+
+## {% linkable_title Assistant configs %}
+
+We made a mistake in the foundation of both the Google Assistant and Alexa integrations: they were storing their config inside customize. This is not the right place and we moved them to be under the components itself. See the breaking changes section on how to migrate.
+
+## {% linkable_title Hass.io updates %}
+
+[@pvizeli] has made it easier to create and restore snapshots for Hass.io by calling the new services. This way it will be easy to automate the creation of a snapshot at night. The updater has also been fixed and will now report on new versions of Hass.io that are available.
+
+## {% linkable_title Improved loading speed %}
+
+[@amelchio] has made startup of Home Assistant _even_ faster. All service descriptions are now loaded only when needed by the frontend instead of during startup. This did mean that we had to enforce our service convention. We found a few platforms that didn't follow this and they have been updated:
+
+```text
+todoist.new_task -> calendar.todoist_new_task
+
+snapcast.snapcast_snapshot -> media_player.snapcast_snapshot
+snapcast.snapcast_restore -> media_player.snapcast_restore
+
+mopar.remote_command -> sensor.mopar_remote_command
+
+broadlink.learn_command_192_168_0_107 -> switch.broadlink_learn_command_192_168_0_107
+broadlink.send_packet_192_168_0_107 -> switch.broadlink_send_packet_192_168_0_107
+```
+
+## {% linkable_title New Platforms %}
+
+- Add Discogs Sensor platform ([@thibmaek] - [#10957]) ([sensor.discogs docs]) (new-platform)
+- Greenwave Reality (TCP Connected) Lighting Component ([@dfiel] - [#11282]) ([light.greenwave docs]) (new-platform)
+- Added rainsensor ([@jbarrancos] - [#11023]) ([rainbird docs]) ([sensor.rainbird docs]) ([switch.rainbird docs]) (new-platform)
+- Sochain cryptocurrency sensor ([@Klathmon] - [#11335]) ([sensor.sochain docs]) (new-platform)
+- Support for EcoNet water heaters ([@w1ll1am23] - [#11260]) ([climate.econet docs]) (new-platform)
+- Add deCONZ component ([@Kane610] - [#10321]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) (new-platform)
+- Added new climate component from Daikin ([@rofrantz] - [#10983]) ([climate.daikin docs]) (new-platform)
+- Add Touchline climate platform ([@abondoe] - [#10547]) ([climate.touchline docs]) (new-platform)
+- Add new iGlo component ([@jesserockz] - [#11171]) ([light.iglo docs]) (new-platform)
+- Add Dark Sky weather component ([@DanNixon] - [#11435]) ([weather.darksky docs]) (new-platform)
+- Coinbase.com sensor platform ([@nkgilley] - [#11036]) ([coinbase docs]) ([sensor.coinbase docs]) (new-platform)
+
+## {% linkable_title Release 0.61.1 - January 16 %}
+
+- Fix zha color probe ([@rcloran] - [#11670]) ([zha docs]) ([light.zha docs])
+- Move several local services to their right domain ([@amelchio] - [#11677]) ([calendar.todoist docs]) ([media_player.snapcast docs]) ([media_player.soundtouch docs]) ([sensor.mopar docs]) ([switch.broadlink docs]) ([switch.scsgate docs]) (breaking change)
+- Rfxtrx fix ([@danielhiversen] - [#11678]) ([rfxtrx docs]) ([binary_sensor.rfxtrx docs])
+- History order bugfix and opt-in option ([@rwa] - [#11686]) ([history docs])
+- Fix purge with MariaDB / MySQL ([@tinloaf] - [#11713])
+
+## {% linkable_title If you need help... %}
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
+
+## {% linkable_title Reporting Issues %}
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
+
+
+
+## {% linkable_title Breaking Changes %}
+
+- Extend Threshold binary sensor to support ranges. This means that you can now set `up` and `lower`. ([@DanNixon] - [#11110]) ([binary_sensor.threshold docs]) (breaking change)
+- The Steam game platform contains changes:
+ - `game` attribute no longer set in `device_state_attributes` if no game is currently being played as the string "None" is no longer passed if no current game is being played, instead the `game` attribute is not present.
+ - States now use lower snake case.
+ - The "Play" and "Trade" states has been renamed to "looking_to_play" and "looking_to_trade".
+ ([@frwickst] - [#11182]) ([sensor.steam_online docs]) (breaking change)
+- The [`tile`][device_tracker.tile docs] platform now shows only active Tiles by default; to show all Tiles, including expired/inactive ones, `show_inactive` must be `True`. The following state attributes have been removed: `last_seen` and `last_updated`. ([@bachya] - [#11172]) ([device_tracker.tile docs]) (breaking change)
+- The `hidden_string` feature has been removed from the isy994 component. Previously, this allowed entities to be "hidden" in Home Assistant if a configured string was present in an ISY device's name or folder path. This was removed because hiding devices is now done via the customization feature.
+Note however, that this feature was replaced by a new ignore_string config option, which will now cause Home Assistant to completely ignore devices with the matching string so that they will not be imported as a Home Assistant device at all. This can be helpful if you have nodes in the ISY that aren't useful at all in Hass (IR transmitter nodes are a good example.) ([@OverloadUT] - [#11243]) ([isy994 docs]) ([binary_sensor.isy994 docs]) ([cover.isy994 docs]) ([fan.isy994 docs]) ([light.isy994 docs]) ([lock.isy994 docs]) ([sensor.isy994 docs]) ([switch.isy994 docs]) (breaking change)
+- The [`egardia` alarm panel][alarm_control_panel.egardia docs] platform no longer a need the users to run a separate Egardiaserver component. It can now also run on HASS.io. ([@jeroenterheerdt] - [#11344]) ([alarm_control_panel.egardia docs]) (breaking change)
+- The binary sensor platform of the DoorBird integration has been deleted, so remove DoorBird from your `binary_sensor` configuration. Instead, set the `doorbell_events` option of the `doorbird` component to `True`. The `last_visitor` option has been removed from the camera component, as it is now always added as an entity. ([@Klikini] - [#11193]) ([camera.doorbird docs]) (breaking change)
+- The following attributes of the TP-Link switch and light platform have been renamed:
+ - Light: `current_consumption` -> `current_power_w`, `daily_consumption` -> `daily_energy_kwh` and `monthly_consumption` -> `monthly_energy_kwh`
+ - Switch: `current` -> `current_a`, `current_consumption` -> `current_power_w`, `total_consumption` -> `total_energy_kwh` and `daily_consumption` -> `today_energy_kwh` ([@DanNixon] - [#10979]) ([light.tplink docs]) ([switch.tplink docs]) (breaking change)
+- Move IMAP Email Content body to an attribute ([@notoriousbdg] - [#11096]) ([sensor.imap_email_content docs]) (breaking change)
+- Automations which were using `state` that was returning `target_temperature` of the `netatmo` climate platform needs an update. ([@ciotlosm] - [#11345]) ([climate.netatmo docs]) (breaking change)
+- The default availability payloads for the `MQTT` switch platform have changed from "ON" and "OFF" to "online" and "offline" (in order to match the majority of MQTT platforms that already supported availability reporting). ([@DanNixon] - [#11336]) (breaking change)
+- Customizations for how entities are exposed to Alexa are no longer set via `customize`. Instead they are set via the configuration of the cloud component:
+
+ ```yaml
+ cloud:
+ alexa:
+ entity_config:
+ switch.kitchen:
+ name: 'Name for Alexa'
+ description: 'Description for Alexa'
+ display_categories: 'LIGHT'
+ ```
+ ([@balloob] - [#11461]) ([cloud docs]) ([alexa.smart_home docs]) (breaking change)
+- The extension of the `alpha_vantage` requires an update of the configuration as now are exchange data available as well. ([@ChristianKuehnel] - [#11427]) ([sensor.alpha_vantage docs]) (breaking change)
+- The `prometheus` component now supports pushing all sensors and fixes wrong metrics. If may require that you update your configuration. ([@michaelkuty] - [#11159]) ([prometheus docs]) (breaking change)
+- Insteon local devices will now use their address as the `entity_id` and `name`. The friendly name can be customized using the [standard customization configuration](https://home-assistant.io/docs/configuration/customizing-devices/). ([@camrun91] - [#11088]) ([insteon_local docs]) ([fan.insteon_local docs]) ([light.insteon_local docs]) ([switch.insteon_local docs]) (breaking change)
+- Google Assistant is no longer configured via `customize` but instead has its configuration under the `google_assistant` entry in your `configuration.yaml`. The attributes will no longer have to be prefixed with `google_assistant_` either.
+
+ | Old option | New option |
+ | ---------- | ------------ |
+ | google_assistant | expose |
+ | aliases | aliases |
+ | google_assistant_name | name |
+ | google_assistant_type | type |
+
+ Before:
+
+ ```yaml
+ homeassistant:
+ customize:
+ switch.kitchen:
+ google_assistant: false
+ google_assistant_name: nice lights
+ google_assistant_type: light
+ aliases:
+ - roof lights
+
+ google_assistant:
+ ```
+
+ After:
+
+ ```yaml
+ google_assistant:
+ entity_config:
+ switch.kitchen:
+ expose: false
+ alias: roof lights
+ name: nice lights
+ type: light
+ ```
+([@balloob] - [#11499]) ([cloud docs]) ([google_assistant docs]) (breaking change)
+- The `climate.set_aux_heat` service is no longer available for the Sensibo climate platform. Now call `climate.turn_on` or `climate.turn_off`. ([@andrey-git] - [#11579]) ([climate.sensibo docs]) (breaking change)
+- Release 0.61.0 introduced a lazy service loading strategy that relied on all components and platforms following our naming convention. After the release we realized that not all services did, which have been addressed by this fix. This results in certain services changing names:
+
+ ```
+ todoist.new_task -> calendar.todoist_new_task
+
+ snapcast.snapcast_snapshot -> media_player.snapcast_snapshot
+ snapcast.snapcast_restore -> media_player.snapcast_restore
+
+ mopar.remote_command -> sensor.mopar_remote_command
+
+ broadlink.learn_command_192_168_0_107 -> switch.broadlink_learn_command_192_168_0_107
+ broadlink.send_packet_192_168_0_107 -> switch.broadlink_send_packet_192_168_0_107
+ ```
+ ([@amelchio] - [#11677]) ([calendar.todoist docs]) ([media_player.snapcast docs]) ([media_player.soundtouch docs]) ([sensor.mopar docs]) ([switch.broadlink docs]) ([switch.scsgate docs]) (breaking change)
+
+
+## {% linkable_title All changes %}
+
+- Try multiple methods of getting data in asuswrt. ([@PeWu] - [#11140]) ([device_tracker.asuswrt docs])
+- Hydroquebec component use now asyncio ([@titilambert] - [#10795]) ([sensor.hydroquebec docs])
+- Hive Component Release Two ([@KJonline] - [#11053]) ([hive docs]) ([climate.hive docs]) ([light.hive docs])
+- Add Discogs Sensor platform ([@thibmaek] - [#10957]) ([sensor.discogs docs]) (new-platform)
+- Fix statistics sensor mean and median when only one sample is available. ([@markferry] - [#11180]) ([sensor.statistics docs])
+- Extend Threshold binary sensor to support ranges ([@DanNixon] - [#11110]) ([binary_sensor.threshold docs]) (breaking change)
+- Bump python-miio version ([@djchen] - [#11232]) ([fan.xiaomi_miio docs]) ([light.xiaomi_miio docs]) ([switch.xiaomi_miio docs]) ([vacuum.xiaomi_miio docs])
+- Backup configuration files before overwriting ([@cgarwood] - [#11216])
+- Upgrade to new miflora version 0.2.0 ([@ChristianKuehnel] - [#11250]) ([sensor.miflora docs])
+- Add workaround for running tox on Windows platforms ([@veleek] - [#11188])
+- added myself to become code owner for miflora and plant ([@ChristianKuehnel] - [#11251])
+- Proper Steam game names and small fixes ([@frwickst] - [#11182]) ([sensor.steam_online docs]) (breaking change)
+- Bugfix: 10509 - http is hard coded in plex sensor ([@ryanm101] - [#11072]) ([sensor.plex docs])
+- Adding MotionIP to BinarySensors for HMIP-SMI ([@schnoetz] - [#11268]) ([homematic docs])
+- Revert "Backup configuration files before overwriting" ([@pvizeli] - [#11269])
+- Functinality to save/restore snapshots for monoprice platform ([@etsinko] - [#10296]) ([media_player.monoprice docs])
+- Change manifest path to /states as this is the path / actually sets. ([@andrey-git] - [#11274])
+- Report Sensibo as off when it is off ([@andrey-git] - [#11281]) ([climate.sensibo docs])
+- Added password for GPS logger endpoint ([@foxel] - [#11245]) ([device_tracker.gpslogger docs])
+- Greenwave Reality (TCP Connected) Lighting Component ([@dfiel] - [#11282]) ([light.greenwave docs]) (new-platform)
+- Adds support for disabled Tiles and automatic session renewal ([@bachya] - [#11172]) ([device_tracker.tile docs]) (breaking change)
+- Plex refactor ([@ryanm101] - [#11235]) ([media_player.plex docs])
+- alexa: Add handling for covers ([@philk] - [#11242]) ([alexa.smart_home docs])
+- Added rainsensor ([@jbarrancos] - [#11023]) ([rainbird docs]) ([sensor.rainbird docs]) ([switch.rainbird docs]) (new-platform)
+- Store raw state of RF sensors from alarmdecoder ([@PhracturedBlue] - [#10841]) ([alarmdecoder docs]) ([binary_sensor.alarmdecoder docs])
+- Add Chime status and control to Alarm Decoder component ([@goyney] - [#11271]) ([alarm_control_panel.alarmdecoder docs])
+- Better error handling ([@rofrantz] - [#11297]) ([sensor.transmission docs]) ([switch.transmission docs])
+- Removed error log used as debug ([@cmsimike] - [#11301]) ([octoprint docs])
+- Huge ISY994 platform cleanup, fixes support for 5.0.10 firmware ([@OverloadUT] - [#11243]) ([isy994 docs]) ([binary_sensor.isy994 docs]) ([cover.isy994 docs]) ([fan.isy994 docs]) ([light.isy994 docs]) ([lock.isy994 docs]) ([sensor.isy994 docs]) ([switch.isy994 docs]) (breaking change)
+- Add heartbeat to websocket connections ([@balloob] - [#11298]) ([cloud.iot docs])
+- Fix typo in bitcoin.py component for mined blocks. ([@awkwardDuck] - [#11318]) ([sensor.bitcoin docs])
+- xiaomi_aqara: Fix covers never being closed ([@cnrd] - [#11319]) ([cover.xiaomi_aqara docs])
+- Fix for track_new_devices BC ([@masarliev] - [#11202]) ([device_tracker docs])
+- Upgrade aiohttp_cors to 0.6.0 ([@fabaff] - [#11310]) ([http docs])
+- Upgrade pysnmp to 4.4.3 ([@fabaff] - [#11317]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) ([switch.snmp docs])
+- Upgrade luftdaten to 0.1.3 ([@fabaff] - [#11316]) ([sensor.luftdaten docs])
+- Upgrade yahooweather to 0.10 ([@fabaff] - [#11309]) ([weather.yweather docs])
+- Upgrade distro to 1.2.0 ([@fabaff] - [#11312]) ([updater docs])
+- Upgrade python-digitalocean to 1.13.2 ([@fabaff] - [#11311]) ([digital_ocean docs])
+- Upgrade youtube_dl to 2017.12.23 ([@fabaff] - [#11308]) ([media_extractor docs])
+- Upgrade alpha_vantage to 1.6.0 ([@fabaff] - [#11307]) ([sensor.alpha_vantage docs])
+- Bugfix for HA Issue 7292, 9412 - switch to gamertag to receive ssl image url ([@ReneNulschDE] - [#11315]) ([sensor.xbox_live docs])
+- closes #11314 by not restricting the voice to anything but a string ([@Human] - [#11326]) ([tts.marytts docs])
+- Additional device classes for binary sensors ([@schmittx] - [#11280]) ([binary_sensor docs])
+- Remove need for separate EgardiaServer setup ([@jeroenterheerdt] - [#11344]) ([alarm_control_panel.egardia docs]) (breaking change)
+- Add default names and validation for TP-Link devices ([@DanNixon] - [#11346]) ([light.tplink docs]) ([switch.tplink docs])
+- Sochain cryptocurrency sensor ([@Klathmon] - [#11335]) ([sensor.sochain docs]) (new-platform)
+- pass stops_at to get_station_by_name ([@ttroy50] - [#11304]) ([sensor.irish_rail_transport docs])
+- Move data instance to setup ([@fabaff] - [#11350]) ([sensor.swiss_public_transport docs])
+- Update modbus.py ([@goldminenine] - [#11238]) ([modbus docs])
+- DoorBird feature update ([@Klikini] - [#11193]) ([camera.doorbird docs]) (breaking change)
+- Upgrade aiohttp to 2.3.7 ([@fabaff] - [#11329])
+- Upgrade fuzzywuzzy to 0.16.0 ([@fabaff] - [#11331]) ([conversation docs])
+- Upgrade pyowm to 2.8.0 ([@fabaff] - [#11332]) ([sensor.openweathermap docs]) ([weather.openweathermap docs])
+- Upgrade sqlalchemy to 1.2.0 ([@fabaff] - [#11333])
+- Upgrade mypy to 0.560 ([@fabaff] - [#11334])
+- Upgrade python-telegram-bot to 9.0.0 ([@fabaff] - [#11341]) ([telegram_bot docs])
+- Upgrade youtube_dl to 2017.12.28 ([@fabaff] - [#11357]) ([media_extractor docs])
+- Correct units used in TP-Link energy monioring ([@DanNixon] - [#10979]) ([light.tplink docs]) ([switch.tplink docs]) (breaking change)
+- Add HTTP endpoint for resending email confirmation ([@balloob] - [#11354]) ([cloud.auth_api docs]) ([cloud.http_api docs])
+- Fix RGB template ordering in MQTT Light ([@DanNixon] - [#11362]) ([light.mqtt docs])
+- Ping device tracker now respects interval_seconds ([@tschmidty69] - [#11348]) ([device_tracker.ping docs])
+- Fido component use now asyncio ([@titilambert] - [#11244]) ([sensor.fido docs])
+- Support for EcoNet water heaters ([@w1ll1am23] - [#11260]) ([climate.econet docs]) (new-platform)
+- Remember the Milk - updating and completing tasks ([@ChristianKuehnel] - [#11069]) ([remember_the_milk docs])
+- Reverts unit conversions in TP-Link bulb ([@DanNixon] - [#11381]) ([light.tplink docs])
+- Clean up Google Assistant ([@balloob] - [#11375]) ([google_assistant docs]) ([google_assistant.http docs]) ([google_assistant.smart_home docs])
+- Adding support for Egardia / Woonveilig version GATE-03 ([@jeroenterheerdt] - [#11397]) ([alarm_control_panel.egardia docs])
+- Add deCONZ component ([@Kane610] - [#10321]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([sensor.deconz docs]) (new-platform)
+- Fix broken tests ([@balloob] - [#11395])
+- Upgrade pychromecast to 1.0.3 ([@OttoWinter] - [#11410]) ([media_player.cast docs])
+- Bump pywemo to fix request include problems. ([@pavoni] - [#11401]) ([wemo docs])
+- Log exceptions that happen during service call ([@balloob] - [#11394])
+- Move IMAP Email Content body to an attribute ([@notoriousbdg] - [#11096]) ([sensor.imap_email_content docs]) (breaking change)
+- Notify webos timeout error fix ([@masarliev] - [#11027]) ([notify.webostv docs])
+- Removed status block to allow https://github.com/home-assistant/home-assistant-polymer/pull/766 with no impact ([@ciotlosm] - [#11345]) ([climate.netatmo docs]) (breaking change)
+- More support for availability reporting on MQTT components ([@DanNixon] - [#11336]) (breaking change)
+- Do not purge the most recent state for an entity ([@tinloaf] - [#11039])
+- Performance optimization of TP-Link switch ([@amelchio] - [#11416]) ([switch.tplink docs])
+- Fixing OpenWeatherMap Sensor. Current weather is 'unknown' if forecast: false. It was reported as #8640. ([@tomaszduda23] - [#11417]) ([sensor.openweathermap docs])
+- Silence redundant warnings about slow setup ([@amelchio] - [#11352])
+- Account for User-Agent being non-existent, causing a TypeError ([@akatrevorjay] - [#11064])
+- Cloud Updates ([@balloob] - [#11404]) ([cloud docs])
+- Add support for the renaming of Yamaha Receiver Zones via configuration file. Added a test to cover the change, plus previously untested options. ([@dfinlay] - [#11402]) ([media_player.yamaha docs])
+- Plex api update ([@ryanm101] - [#11423]) ([media_player.plex docs]) ([sensor.plex docs])
+- fix: hmip-etrv-2 now working with homeassistant ([@daenny] - [#11175]) ([homematic docs]) ([climate.homematic docs])
+- Fix errors in zigbee push state ([@SteveEasley] - [#11386]) ([zigbee docs])
+- Add on/off supported feature to climate ([@andrey-git] - [#11379]) ([climate docs]) ([climate.demo docs]) ([climate.sensibo docs])
+- Fix CONF_FRIENDLY_NAME ([@cdce8p] - [#11438]) ([cover.template docs]) ([light.template docs])
+- Climate: fix missing "|" ([@andrey-git] - [#11441]) ([climate.demo docs])
+- Google Assistant -> Google Actions ([@balloob] - [#11442]) ([cloud.iot docs])
+- Added new climate component from Daikin ([@rofrantz] - [#10983]) ([climate.daikin docs]) (new-platform)
+- Updated generic thermostat to respect operation_mode and added away mode ([@ciotlosm] - [#11445]) ([climate.generic_thermostat docs])
+- Reconnect to alarmdecoder on disconnect ([@PhracturedBlue] - [#11383]) ([alarmdecoder docs])
+- Set tahoma cover scan interval to 60 seconds ([@bakedraccoon] - [#11447]) ([cover.tahoma docs])
+- Add some tests to the cloud component ([@balloob] - [#11460]) ([cloud docs]) ([cloud.iot docs])
+- Input Select - Added service description ([@cdce8p] - [#11456]) ([input_select docs])
+- Input Boolean - Deleted 'DEFAULT_INITIAL' ([@cdce8p] - [#11453]) ([input_boolean docs])
+- Updated gitignore file ([@cdce8p] - [#11452])
+- Update hydroquebec component to use hass httpsession ([@titilambert] - [#11412]) ([sensor.hydroquebec docs])
+- Catch everything when calling to OctoPrint API to fix #10557 ([@w1ll1am23] - [#11457]) ([octoprint docs])
+- Update PULL_REQUEST_TEMPLATE.md ([@danielhiversen] - [#11465])
+- Alexa to not use customize for entity config ([@balloob] - [#11461]) ([cloud docs]) ([alexa.smart_home docs]) (breaking change)
+- Don't duplicate html5 registrations ([@Chris-V] - [#11451]) ([notify.html5 docs])
+- AlarmDecoder remove icon function as BinarySensorDevice handles it correctly now ([@hawk259] - [#11467]) ([binary_sensor.alarmdecoder docs])
+- Upgrade psutil to 5.4.3 ([@fabaff] - [#11468]) ([sensor.systemmonitor docs])
+- Upgrade alpha_vantage to 1.8.0 ([@fabaff] - [#11476]) ([sensor.alpha_vantage docs])
+- Fix vultr tests ([@balloob] - [#11477])
+- Upgrade yarl to 0.17.0 ([@fabaff] - [#11478])
+- Add Touchline climate platform ([@abondoe] - [#10547]) ([climate.touchline docs]) (new-platform)
+- Upgrade pysnmp to 4.4.4 ([@fabaff] - [#11485]) ([device_tracker.snmp docs]) ([sensor.snmp docs]) ([switch.snmp docs])
+- Add new iGlo component ([@jesserockz] - [#11171]) ([light.iglo docs]) (new-platform)
+- Add missing configuration variables ([@fabaff] - [#11390]) ([sensor.metoffice docs])
+- Clean up Alexa.intent and DialogFlow.intent ([@balloob] - [#11492]) ([alexa.intent docs])
+- Fix time functions would throw errors in python scripts ([@tomwaters] - [#11414]) ([python_script docs])
+- Upgrade pywebpush to 1.5.0 ([@Chris-V] - [#11497]) ([notify.html5 docs])
+- upgrade schiene to 0.20 ([@JulianKahnert] - [#11504]) ([sensor.deutsche_bahn docs])
+- timer: include the remaining time in the state attributes ([@Julio-Guerra] - [#11510]) ([timer docs])
+- More tolerant KNX component if gateway cant be connected ([@Julius2342] - [#11511]) ([knx docs]) ([binary_sensor.knx docs]) ([climate.knx docs]) ([cover.knx docs]) ([light.knx docs]) ([sensor.knx docs]) ([switch.knx docs])
+- Snips (new) added speech response, parse snips/duration ([@tschmidty69] - [#11513]) ([snips docs])
+- Add Dark Sky weather component ([@DanNixon] - [#11435]) ([weather.darksky docs]) (new-platform)
+- Lazy loading of service descriptions ([@amelchio] - [#11479]) ([api docs]) ([websocket_api docs]) ([light.lifx docs])
+- Fix canary flaky test ([@balloob] - [#11519])
+- Address missed review comments for Dark Sky weather ([@DanNixon] - [#11520]) ([weather.darksky docs])
+- New features for Owntracks device_tracker ([@cpcowart] - [#11480]) ([device_tracker.owntracks docs])
+- Reconnect before mochad switch send command ([@aosadchyy] - [#11296]) ([switch.mochad docs])
+- Fix Kodi channels media type ([@florianj1] - [#11505]) ([media_player.kodi docs])
+- Extension sensor alpha_vantage ([@ChristianKuehnel] - [#11427]) ([sensor.alpha_vantage docs]) (breaking change)
+- MQTT json attributes ([@timstanley1985] - [#11439]) ([sensor.mqtt docs])
+- Support pushing all sensors and fix wrong metrics. ([@michaelkuty] - [#11159]) ([prometheus docs]) (breaking change)
+- Add options feature to Baidu TTS. ([@yienxu] - [#11462]) ([tts.baidu docs])
+- Insteon local update ([@camrun91] - [#11088]) ([insteon_local docs]) ([fan.insteon_local docs]) ([light.insteon_local docs]) ([switch.insteon_local docs]) (breaking change)
+- Snips: (fix) support new intentName format ([@tschmidty69] - [#11509]) ([snips docs])
+- Upgrade numpy to 1.14.0 ([@fabaff] - [#11542]) ([binary_sensor.trend docs]) ([image_processing.opencv docs])
+- Upgrade python-etherscan-api to 0.0.2 ([@fabaff] - [#11535]) ([sensor.etherscan docs])
+- Upgrade Sphinx to 1.6.6 ([@fabaff] - [#11534])
+- ZoneMinder event sensor updates ([@swilson] - [#11369]) ([sensor.zoneminder docs])
+- Move Google Assistant entity config out of customize ([@balloob] - [#11499]) ([cloud docs]) ([google_assistant docs]) (breaking change)
+- Upgrade lightify to 1.0.6.1 ([@fabaff] - [#11545]) ([light.osramlightify docs])
+- Improved test runtime ([@cdce8p] - [#11553]) ([binary_sensor.workday docs])
+- Add 2 media_player services and 1 custom service to Squeezebox platform ([@ericpignet] - [#10969]) ([media_player.squeezebox docs])
+- Fix error on entity_config missing ([@philk] - [#11561]) ([google_assistant.http docs])
+- Upgrade keyring to 10.3.2 ([@fabaff] - [#11531])
+- Coinbase.com sensor platform ([@nkgilley] - [#11036]) ([coinbase docs]) ([sensor.coinbase docs]) (new-platform)
+- Try to fix crashes after Hue refactoring ([@andreacampi] - [#11270]) ([light.hue docs])
+- Remove execution file perm ([@balloob] - [#11563])
+- Deprecate explicit entity_id in template platforms ([@amelchio] - [#11123]) ([binary_sensor.template docs]) ([cover.template docs]) ([light.template docs]) ([sensor.template docs]) ([switch.template docs])
+- Test tweaks ([@balloob] - [#11560])
+- Add Velux Windows to Tahoma ([@bakedraccoon] - [#11538]) ([tahoma docs]) ([cover.tahoma docs])
+- Extend hass.io services / updater ([@pvizeli] - [#11549]) ([hassio docs])
+- Add sensibo_assume_state service to Sensibo climate ([@andrey-git] - [#11567]) ([climate.sensibo docs])
+- Tracking all groups to allow changing of existing groups ([@randellhodges] - [#11444]) ([group docs])
+- Fix new squeezebox service descriptions for lazy loading ([@amelchio] - [#11574]) ([media_player.squeezebox docs])
+- Mark REST binary_sensor unavailable if request fails ([@DanNixon] - [#11506]) ([binary_sensor.rest docs])
+- Tado improvements - hot water zone sensors and climate precision ([@andersonshatch] - [#11521]) ([climate.tado docs]) ([sensor.tado docs])
+- Make the rpi_rf component thread-safe using an RLock ([@ulido] - [#11487]) ([switch.rpi_rf docs])
+- Update pyhomematic, support new devices ([@danielperna84] - [#11578]) ([homematic docs])
+- Alarmdecoder add validation of the zone types ([@hawk259] - [#11488]) ([alarmdecoder docs])
+- Support OSRAM lights on ZHA ([@armills] - [#11522]) ([light.zha docs])
+- Fix bluetooth tracker source ([@swilson] - [#11469]) ([device_tracker docs]) ([device_tracker.bluetooth_le_tracker docs]) ([device_tracker.bluetooth_tracker docs])
+- Fix for asuswrt, telnet not working and presence-detection for router mode ([@kennedyshead] - [#11422]) ([device_tracker.asuswrt docs])
+- Remove aux_heat support from Sensibo now that UI supports on/off ([@andrey-git] - [#11579]) ([climate.sensibo docs]) (breaking change)
+- Changed device type of media player and cover to switch ([@Laqoore] - [#11483]) ([google_assistant.smart_home docs])
+- Control ordering of display in history component ([@rwa] - [#11340]) ([history docs])
+- Pr/11430 ([@balloob] - [#11587])
+- Cast return values and add unit tests for the yahoo weather component. ([@cgtobi] - [#10699]) ([weather.yweather docs])
+- add velux roller shutter to tahoma ([@bakedraccoon] - [#11586]) ([tahoma docs])
+- Added support for enable/disable motion detection ([@abjorshammar] - [#11583]) ([camera.uvc docs])
+- Avoid returning empty media_image_url string ([@JackWindows] - [#11557]) ([media_player.cast docs])
+- Core support for hass.io calls & Bugfix check_config ([@pvizeli] - [#11571]) ([__init__ docs]) ([hassio docs]) ([updater docs])
+- Fix Tahoma stop command for 2 types of shutters ([@bakedraccoon] - [#11588]) ([cover.tahoma docs])
+- Pushbullet email support (fix) ([@tschmidty69] - [#11590]) ([notify.pushbullet docs])
+- Fix state for trigger with forced updates ([@armills] - [#11595]) ([automation.state docs])
+- Snips add say and say_actions services (new) ([@tschmidty69] - [#11596]) ([snips docs])
+- Concord232 alarm arm away fix ([@rwa] - [#11597]) ([alarm_control_panel.concord232 docs]) ([binary_sensor.concord232 docs])
+- Bugfix and cleanup for Rfxtrx ([@danielhiversen] - [#11600])
+- Xiaomi lib upgrade ([@danielhiversen] - [#11603])
+- Upgrade yarl to 0.18.0 ([@fabaff] - [#11609])
+- patch stop command ([@bakedraccoon] - [#11612]) ([cover.tahoma docs])
+- Use kelvin/mireds correctly for setting iglo white ([@jesserockz] - [#11622])
+- Update Pyarlo to 0.1.2 ([@arsaboo] - [#11626])
+
+[#10296]: https://github.com/home-assistant/home-assistant/pull/10296
+[#10321]: https://github.com/home-assistant/home-assistant/pull/10321
+[#10547]: https://github.com/home-assistant/home-assistant/pull/10547
+[#10699]: https://github.com/home-assistant/home-assistant/pull/10699
+[#10795]: https://github.com/home-assistant/home-assistant/pull/10795
+[#10841]: https://github.com/home-assistant/home-assistant/pull/10841
+[#10957]: https://github.com/home-assistant/home-assistant/pull/10957
+[#10969]: https://github.com/home-assistant/home-assistant/pull/10969
+[#10979]: https://github.com/home-assistant/home-assistant/pull/10979
+[#10983]: https://github.com/home-assistant/home-assistant/pull/10983
+[#11023]: https://github.com/home-assistant/home-assistant/pull/11023
+[#11027]: https://github.com/home-assistant/home-assistant/pull/11027
+[#11036]: https://github.com/home-assistant/home-assistant/pull/11036
+[#11039]: https://github.com/home-assistant/home-assistant/pull/11039
+[#11053]: https://github.com/home-assistant/home-assistant/pull/11053
+[#11064]: https://github.com/home-assistant/home-assistant/pull/11064
+[#11069]: https://github.com/home-assistant/home-assistant/pull/11069
+[#11072]: https://github.com/home-assistant/home-assistant/pull/11072
+[#11088]: https://github.com/home-assistant/home-assistant/pull/11088
+[#11096]: https://github.com/home-assistant/home-assistant/pull/11096
+[#11110]: https://github.com/home-assistant/home-assistant/pull/11110
+[#11123]: https://github.com/home-assistant/home-assistant/pull/11123
+[#11140]: https://github.com/home-assistant/home-assistant/pull/11140
+[#11159]: https://github.com/home-assistant/home-assistant/pull/11159
+[#11171]: https://github.com/home-assistant/home-assistant/pull/11171
+[#11172]: https://github.com/home-assistant/home-assistant/pull/11172
+[#11175]: https://github.com/home-assistant/home-assistant/pull/11175
+[#11180]: https://github.com/home-assistant/home-assistant/pull/11180
+[#11182]: https://github.com/home-assistant/home-assistant/pull/11182
+[#11188]: https://github.com/home-assistant/home-assistant/pull/11188
+[#11193]: https://github.com/home-assistant/home-assistant/pull/11193
+[#11202]: https://github.com/home-assistant/home-assistant/pull/11202
+[#11216]: https://github.com/home-assistant/home-assistant/pull/11216
+[#11232]: https://github.com/home-assistant/home-assistant/pull/11232
+[#11235]: https://github.com/home-assistant/home-assistant/pull/11235
+[#11238]: https://github.com/home-assistant/home-assistant/pull/11238
+[#11242]: https://github.com/home-assistant/home-assistant/pull/11242
+[#11243]: https://github.com/home-assistant/home-assistant/pull/11243
+[#11244]: https://github.com/home-assistant/home-assistant/pull/11244
+[#11245]: https://github.com/home-assistant/home-assistant/pull/11245
+[#11250]: https://github.com/home-assistant/home-assistant/pull/11250
+[#11251]: https://github.com/home-assistant/home-assistant/pull/11251
+[#11260]: https://github.com/home-assistant/home-assistant/pull/11260
+[#11268]: https://github.com/home-assistant/home-assistant/pull/11268
+[#11269]: https://github.com/home-assistant/home-assistant/pull/11269
+[#11270]: https://github.com/home-assistant/home-assistant/pull/11270
+[#11271]: https://github.com/home-assistant/home-assistant/pull/11271
+[#11274]: https://github.com/home-assistant/home-assistant/pull/11274
+[#11280]: https://github.com/home-assistant/home-assistant/pull/11280
+[#11281]: https://github.com/home-assistant/home-assistant/pull/11281
+[#11282]: https://github.com/home-assistant/home-assistant/pull/11282
+[#11296]: https://github.com/home-assistant/home-assistant/pull/11296
+[#11297]: https://github.com/home-assistant/home-assistant/pull/11297
+[#11298]: https://github.com/home-assistant/home-assistant/pull/11298
+[#11301]: https://github.com/home-assistant/home-assistant/pull/11301
+[#11304]: https://github.com/home-assistant/home-assistant/pull/11304
+[#11307]: https://github.com/home-assistant/home-assistant/pull/11307
+[#11308]: https://github.com/home-assistant/home-assistant/pull/11308
+[#11309]: https://github.com/home-assistant/home-assistant/pull/11309
+[#11310]: https://github.com/home-assistant/home-assistant/pull/11310
+[#11311]: https://github.com/home-assistant/home-assistant/pull/11311
+[#11312]: https://github.com/home-assistant/home-assistant/pull/11312
+[#11315]: https://github.com/home-assistant/home-assistant/pull/11315
+[#11316]: https://github.com/home-assistant/home-assistant/pull/11316
+[#11317]: https://github.com/home-assistant/home-assistant/pull/11317
+[#11318]: https://github.com/home-assistant/home-assistant/pull/11318
+[#11319]: https://github.com/home-assistant/home-assistant/pull/11319
+[#11326]: https://github.com/home-assistant/home-assistant/pull/11326
+[#11329]: https://github.com/home-assistant/home-assistant/pull/11329
+[#11331]: https://github.com/home-assistant/home-assistant/pull/11331
+[#11332]: https://github.com/home-assistant/home-assistant/pull/11332
+[#11333]: https://github.com/home-assistant/home-assistant/pull/11333
+[#11334]: https://github.com/home-assistant/home-assistant/pull/11334
+[#11335]: https://github.com/home-assistant/home-assistant/pull/11335
+[#11336]: https://github.com/home-assistant/home-assistant/pull/11336
+[#11340]: https://github.com/home-assistant/home-assistant/pull/11340
+[#11341]: https://github.com/home-assistant/home-assistant/pull/11341
+[#11344]: https://github.com/home-assistant/home-assistant/pull/11344
+[#11345]: https://github.com/home-assistant/home-assistant/pull/11345
+[#11346]: https://github.com/home-assistant/home-assistant/pull/11346
+[#11348]: https://github.com/home-assistant/home-assistant/pull/11348
+[#11350]: https://github.com/home-assistant/home-assistant/pull/11350
+[#11352]: https://github.com/home-assistant/home-assistant/pull/11352
+[#11354]: https://github.com/home-assistant/home-assistant/pull/11354
+[#11357]: https://github.com/home-assistant/home-assistant/pull/11357
+[#11362]: https://github.com/home-assistant/home-assistant/pull/11362
+[#11369]: https://github.com/home-assistant/home-assistant/pull/11369
+[#11375]: https://github.com/home-assistant/home-assistant/pull/11375
+[#11379]: https://github.com/home-assistant/home-assistant/pull/11379
+[#11381]: https://github.com/home-assistant/home-assistant/pull/11381
+[#11383]: https://github.com/home-assistant/home-assistant/pull/11383
+[#11386]: https://github.com/home-assistant/home-assistant/pull/11386
+[#11390]: https://github.com/home-assistant/home-assistant/pull/11390
+[#11394]: https://github.com/home-assistant/home-assistant/pull/11394
+[#11395]: https://github.com/home-assistant/home-assistant/pull/11395
+[#11397]: https://github.com/home-assistant/home-assistant/pull/11397
+[#11401]: https://github.com/home-assistant/home-assistant/pull/11401
+[#11402]: https://github.com/home-assistant/home-assistant/pull/11402
+[#11404]: https://github.com/home-assistant/home-assistant/pull/11404
+[#11410]: https://github.com/home-assistant/home-assistant/pull/11410
+[#11412]: https://github.com/home-assistant/home-assistant/pull/11412
+[#11414]: https://github.com/home-assistant/home-assistant/pull/11414
+[#11416]: https://github.com/home-assistant/home-assistant/pull/11416
+[#11417]: https://github.com/home-assistant/home-assistant/pull/11417
+[#11422]: https://github.com/home-assistant/home-assistant/pull/11422
+[#11423]: https://github.com/home-assistant/home-assistant/pull/11423
+[#11427]: https://github.com/home-assistant/home-assistant/pull/11427
+[#11435]: https://github.com/home-assistant/home-assistant/pull/11435
+[#11438]: https://github.com/home-assistant/home-assistant/pull/11438
+[#11439]: https://github.com/home-assistant/home-assistant/pull/11439
+[#11441]: https://github.com/home-assistant/home-assistant/pull/11441
+[#11442]: https://github.com/home-assistant/home-assistant/pull/11442
+[#11444]: https://github.com/home-assistant/home-assistant/pull/11444
+[#11445]: https://github.com/home-assistant/home-assistant/pull/11445
+[#11447]: https://github.com/home-assistant/home-assistant/pull/11447
+[#11451]: https://github.com/home-assistant/home-assistant/pull/11451
+[#11452]: https://github.com/home-assistant/home-assistant/pull/11452
+[#11453]: https://github.com/home-assistant/home-assistant/pull/11453
+[#11456]: https://github.com/home-assistant/home-assistant/pull/11456
+[#11457]: https://github.com/home-assistant/home-assistant/pull/11457
+[#11460]: https://github.com/home-assistant/home-assistant/pull/11460
+[#11461]: https://github.com/home-assistant/home-assistant/pull/11461
+[#11462]: https://github.com/home-assistant/home-assistant/pull/11462
+[#11465]: https://github.com/home-assistant/home-assistant/pull/11465
+[#11467]: https://github.com/home-assistant/home-assistant/pull/11467
+[#11468]: https://github.com/home-assistant/home-assistant/pull/11468
+[#11469]: https://github.com/home-assistant/home-assistant/pull/11469
+[#11476]: https://github.com/home-assistant/home-assistant/pull/11476
+[#11477]: https://github.com/home-assistant/home-assistant/pull/11477
+[#11478]: https://github.com/home-assistant/home-assistant/pull/11478
+[#11479]: https://github.com/home-assistant/home-assistant/pull/11479
+[#11480]: https://github.com/home-assistant/home-assistant/pull/11480
+[#11483]: https://github.com/home-assistant/home-assistant/pull/11483
+[#11485]: https://github.com/home-assistant/home-assistant/pull/11485
+[#11487]: https://github.com/home-assistant/home-assistant/pull/11487
+[#11488]: https://github.com/home-assistant/home-assistant/pull/11488
+[#11492]: https://github.com/home-assistant/home-assistant/pull/11492
+[#11497]: https://github.com/home-assistant/home-assistant/pull/11497
+[#11499]: https://github.com/home-assistant/home-assistant/pull/11499
+[#11504]: https://github.com/home-assistant/home-assistant/pull/11504
+[#11505]: https://github.com/home-assistant/home-assistant/pull/11505
+[#11506]: https://github.com/home-assistant/home-assistant/pull/11506
+[#11509]: https://github.com/home-assistant/home-assistant/pull/11509
+[#11510]: https://github.com/home-assistant/home-assistant/pull/11510
+[#11511]: https://github.com/home-assistant/home-assistant/pull/11511
+[#11513]: https://github.com/home-assistant/home-assistant/pull/11513
+[#11519]: https://github.com/home-assistant/home-assistant/pull/11519
+[#11520]: https://github.com/home-assistant/home-assistant/pull/11520
+[#11521]: https://github.com/home-assistant/home-assistant/pull/11521
+[#11522]: https://github.com/home-assistant/home-assistant/pull/11522
+[#11531]: https://github.com/home-assistant/home-assistant/pull/11531
+[#11534]: https://github.com/home-assistant/home-assistant/pull/11534
+[#11535]: https://github.com/home-assistant/home-assistant/pull/11535
+[#11538]: https://github.com/home-assistant/home-assistant/pull/11538
+[#11542]: https://github.com/home-assistant/home-assistant/pull/11542
+[#11545]: https://github.com/home-assistant/home-assistant/pull/11545
+[#11549]: https://github.com/home-assistant/home-assistant/pull/11549
+[#11553]: https://github.com/home-assistant/home-assistant/pull/11553
+[#11557]: https://github.com/home-assistant/home-assistant/pull/11557
+[#11560]: https://github.com/home-assistant/home-assistant/pull/11560
+[#11561]: https://github.com/home-assistant/home-assistant/pull/11561
+[#11563]: https://github.com/home-assistant/home-assistant/pull/11563
+[#11567]: https://github.com/home-assistant/home-assistant/pull/11567
+[#11571]: https://github.com/home-assistant/home-assistant/pull/11571
+[#11574]: https://github.com/home-assistant/home-assistant/pull/11574
+[#11578]: https://github.com/home-assistant/home-assistant/pull/11578
+[#11579]: https://github.com/home-assistant/home-assistant/pull/11579
+[#11583]: https://github.com/home-assistant/home-assistant/pull/11583
+[#11586]: https://github.com/home-assistant/home-assistant/pull/11586
+[#11587]: https://github.com/home-assistant/home-assistant/pull/11587
+[#11588]: https://github.com/home-assistant/home-assistant/pull/11588
+[#11590]: https://github.com/home-assistant/home-assistant/pull/11590
+[#11595]: https://github.com/home-assistant/home-assistant/pull/11595
+[#11596]: https://github.com/home-assistant/home-assistant/pull/11596
+[#11597]: https://github.com/home-assistant/home-assistant/pull/11597
+[#11600]: https://github.com/home-assistant/home-assistant/pull/11600
+[#11603]: https://github.com/home-assistant/home-assistant/pull/11603
+[#11609]: https://github.com/home-assistant/home-assistant/pull/11609
+[#11612]: https://github.com/home-assistant/home-assistant/pull/11612
+[#11622]: https://github.com/home-assistant/home-assistant/pull/11622
+[#11626]: https://github.com/home-assistant/home-assistant/pull/11626
+[@Chris-V]: https://github.com/Chris-V
+[@ChristianKuehnel]: https://github.com/ChristianKuehnel
+[@DanNixon]: https://github.com/DanNixon
+[@Human]: https://github.com/Human
+[@JackWindows]: https://github.com/JackWindows
+[@JulianKahnert]: https://github.com/JulianKahnert
+[@Julio-Guerra]: https://github.com/Julio-Guerra
+[@Julius2342]: https://github.com/Julius2342
+[@KJonline]: https://github.com/KJonline
+[@Kane610]: https://github.com/Kane610
+[@Klathmon]: https://github.com/Klathmon
+[@Klikini]: https://github.com/Klikini
+[@Laqoore]: https://github.com/Laqoore
+[@OttoWinter]: https://github.com/OttoWinter
+[@OverloadUT]: https://github.com/OverloadUT
+[@PeWu]: https://github.com/PeWu
+[@PhracturedBlue]: https://github.com/PhracturedBlue
+[@ReneNulschDE]: https://github.com/ReneNulschDE
+[@SteveEasley]: https://github.com/SteveEasley
+[@abjorshammar]: https://github.com/abjorshammar
+[@abondoe]: https://github.com/abondoe
+[@akatrevorjay]: https://github.com/akatrevorjay
+[@amelchio]: https://github.com/amelchio
+[@andersonshatch]: https://github.com/andersonshatch
+[@andreacampi]: https://github.com/andreacampi
+[@andrey-git]: https://github.com/andrey-git
+[@aosadchyy]: https://github.com/aosadchyy
+[@armills]: https://github.com/armills
+[@arsaboo]: https://github.com/arsaboo
+[@awkwardDuck]: https://github.com/awkwardDuck
+[@bachya]: https://github.com/bachya
+[@bakedraccoon]: https://github.com/bakedraccoon
+[@balloob]: https://github.com/balloob
+[@camrun91]: https://github.com/camrun91
+[@cdce8p]: https://github.com/cdce8p
+[@cgarwood]: https://github.com/cgarwood
+[@cgtobi]: https://github.com/cgtobi
+[@ciotlosm]: https://github.com/ciotlosm
+[@cmsimike]: https://github.com/cmsimike
+[@cnrd]: https://github.com/cnrd
+[@cpcowart]: https://github.com/cpcowart
+[@daenny]: https://github.com/daenny
+[@danielhiversen]: https://github.com/danielhiversen
+[@danielperna84]: https://github.com/danielperna84
+[@dfiel]: https://github.com/dfiel
+[@dfinlay]: https://github.com/dfinlay
+[@djchen]: https://github.com/djchen
+[@ericpignet]: https://github.com/ericpignet
+[@etsinko]: https://github.com/etsinko
+[@fabaff]: https://github.com/fabaff
+[@florianj1]: https://github.com/florianj1
+[@foxel]: https://github.com/foxel
+[@frwickst]: https://github.com/frwickst
+[@goldminenine]: https://github.com/goldminenine
+[@goyney]: https://github.com/goyney
+[@hawk259]: https://github.com/hawk259
+[@jbarrancos]: https://github.com/jbarrancos
+[@jeroenterheerdt]: https://github.com/jeroenterheerdt
+[@jesserockz]: https://github.com/jesserockz
+[@kennedyshead]: https://github.com/kennedyshead
+[@markferry]: https://github.com/markferry
+[@masarliev]: https://github.com/masarliev
+[@michaelkuty]: https://github.com/michaelkuty
+[@nkgilley]: https://github.com/nkgilley
+[@notoriousbdg]: https://github.com/notoriousbdg
+[@pavoni]: https://github.com/pavoni
+[@philk]: https://github.com/philk
+[@pvizeli]: https://github.com/pvizeli
+[@randellhodges]: https://github.com/randellhodges
+[@rofrantz]: https://github.com/rofrantz
+[@rwa]: https://github.com/rwa
+[@ryanm101]: https://github.com/ryanm101
+[@schmittx]: https://github.com/schmittx
+[@schnoetz]: https://github.com/schnoetz
+[@swilson]: https://github.com/swilson
+[@thibmaek]: https://github.com/thibmaek
+[@timstanley1985]: https://github.com/timstanley1985
+[@tinloaf]: https://github.com/tinloaf
+[@titilambert]: https://github.com/titilambert
+[@tomaszduda23]: https://github.com/tomaszduda23
+[@tomwaters]: https://github.com/tomwaters
+[@tschmidty69]: https://github.com/tschmidty69
+[@ttroy50]: https://github.com/ttroy50
+[@ulido]: https://github.com/ulido
+[@veleek]: https://github.com/veleek
+[@w1ll1am23]: https://github.com/w1ll1am23
+[@yienxu]: https://github.com/yienxu
+[__init__ docs]: https://home-assistant.io/components/__init__/
+[alarm_control_panel.alarmdecoder docs]: https://home-assistant.io/components/alarm_control_panel.alarmdecoder/
+[alarm_control_panel.concord232 docs]: https://home-assistant.io/components/alarm_control_panel.concord232/
+[alarm_control_panel.egardia docs]: https://home-assistant.io/components/alarm_control_panel.egardia/
+[alarmdecoder docs]: https://home-assistant.io/components/alarmdecoder/
+[alexa.intent docs]: https://home-assistant.io/components/alexa.intent/
+[alexa.smart_home docs]: https://home-assistant.io/components/alexa.smart_home/
+[api docs]: https://home-assistant.io/components/api/
+[automation.state docs]: https://home-assistant.io/docs/automation/trigger/#state-trigger
+[binary_sensor docs]: https://home-assistant.io/components/binary_sensor/
+[binary_sensor.alarmdecoder docs]: https://home-assistant.io/components/binary_sensor.alarmdecoder/
+[binary_sensor.concord232 docs]: https://home-assistant.io/components/binary_sensor.concord232/
+[binary_sensor.deconz docs]: https://home-assistant.io/components/binary_sensor.deconz/
+[binary_sensor.isy994 docs]: https://home-assistant.io/components/binary_sensor.isy994/
+[binary_sensor.knx docs]: https://home-assistant.io/components/binary_sensor.knx/
+[binary_sensor.rest docs]: https://home-assistant.io/components/binary_sensor.rest/
+[binary_sensor.template docs]: https://home-assistant.io/components/binary_sensor.template/
+[binary_sensor.threshold docs]: https://home-assistant.io/components/binary_sensor.threshold/
+[binary_sensor.trend docs]: https://home-assistant.io/components/binary_sensor.trend/
+[binary_sensor.workday docs]: https://home-assistant.io/components/binary_sensor.workday/
+[camera.doorbird docs]: https://home-assistant.io/components/camera.doorbird/
+[camera.uvc docs]: https://home-assistant.io/components/camera.uvc/
+[climate docs]: https://home-assistant.io/components/climate/
+[climate.daikin docs]: https://home-assistant.io/components/climate.daikin/
+[climate.demo docs]: https://home-assistant.io/components/climate.demo/
+[climate.econet docs]: https://home-assistant.io/components/climate.econet/
+[climate.generic_thermostat docs]: https://home-assistant.io/components/climate.generic_thermostat/
+[climate.hive docs]: https://home-assistant.io/components/climate.hive/
+[climate.homematic docs]: https://home-assistant.io/components/climate.homematic/
+[climate.knx docs]: https://home-assistant.io/components/climate.knx/
+[climate.netatmo docs]: https://home-assistant.io/components/climate.netatmo/
+[climate.sensibo docs]: https://home-assistant.io/components/climate.sensibo/
+[climate.tado docs]: https://home-assistant.io/components/climate.tado/
+[climate.touchline docs]: https://home-assistant.io/components/climate.touchline/
+[cloud docs]: https://home-assistant.io/components/cloud/
+[cloud.auth_api docs]: https://home-assistant.io/components/cloud.auth_api/
+[cloud.http_api docs]: https://home-assistant.io/components/cloud.http_api/
+[cloud.iot docs]: https://home-assistant.io/components/cloud.iot/
+[coinbase docs]: https://home-assistant.io/components/coinbase/
+[conversation docs]: https://home-assistant.io/components/conversation/
+[cover.isy994 docs]: https://home-assistant.io/components/cover.isy994/
+[cover.knx docs]: https://home-assistant.io/components/cover.knx/
+[cover.tahoma docs]: https://home-assistant.io/components/cover.tahoma/
+[cover.template docs]: https://home-assistant.io/components/cover.template/
+[cover.xiaomi_aqara docs]: https://home-assistant.io/components/cover.xiaomi_aqara/
+[deconz docs]: https://home-assistant.io/components/deconz/
+[device_tracker docs]: https://home-assistant.io/components/device_tracker/
+[device_tracker.asuswrt docs]: https://home-assistant.io/components/device_tracker.asuswrt/
+[device_tracker.bluetooth_le_tracker docs]: https://home-assistant.io/components/device_tracker.bluetooth_le_tracker/
+[device_tracker.bluetooth_tracker docs]: https://home-assistant.io/components/device_tracker.bluetooth_tracker/
+[device_tracker.gpslogger docs]: https://home-assistant.io/components/device_tracker.gpslogger/
+[device_tracker.owntracks docs]: https://home-assistant.io/components/device_tracker.owntracks/
+[device_tracker.ping docs]: https://home-assistant.io/components/device_tracker.ping/
+[device_tracker.snmp docs]: https://home-assistant.io/components/device_tracker.snmp/
+[device_tracker.tile docs]: https://home-assistant.io/components/device_tracker.tile/
+[digital_ocean docs]: https://home-assistant.io/components/digital_ocean/
+[fan.insteon_local docs]: https://home-assistant.io/components/fan.insteon_local/
+[fan.isy994 docs]: https://home-assistant.io/components/fan.isy994/
+[fan.xiaomi_miio docs]: https://home-assistant.io/components/fan.xiaomi_miio/
+[google_assistant docs]: https://home-assistant.io/components/google_assistant/
+[google_assistant.http docs]: https://home-assistant.io/components/google_assistant.http/
+[google_assistant.smart_home docs]: https://home-assistant.io/components/google_assistant.smart_home/
+[group docs]: https://home-assistant.io/components/group/
+[hassio docs]: https://home-assistant.io/components/hassio/
+[history docs]: https://home-assistant.io/components/history/
+[hive docs]: https://home-assistant.io/components/hive/
+[homematic docs]: https://home-assistant.io/components/homematic/
+[http docs]: https://home-assistant.io/components/http/
+[image_processing.opencv docs]: https://home-assistant.io/components/image_processing.opencv/
+[input_boolean docs]: https://home-assistant.io/components/input_boolean/
+[input_select docs]: https://home-assistant.io/components/input_select/
+[insteon_local docs]: https://home-assistant.io/components/insteon_local/
+[isy994 docs]: https://home-assistant.io/components/isy994/
+[knx docs]: https://home-assistant.io/components/knx/
+[light.deconz docs]: https://home-assistant.io/components/light.deconz/
+[light.greenwave docs]: https://home-assistant.io/components/light.greenwave/
+[light.hive docs]: https://home-assistant.io/components/light.hive/
+[light.hue docs]: https://home-assistant.io/components/light.hue/
+[light.iglo docs]: https://home-assistant.io/components/light.iglo/
+[light.insteon_local docs]: https://home-assistant.io/components/light.insteon_local/
+[light.isy994 docs]: https://home-assistant.io/components/light.isy994/
+[light.knx docs]: https://home-assistant.io/components/light.knx/
+[light.lifx docs]: https://home-assistant.io/components/light.lifx/
+[light.mqtt docs]: https://home-assistant.io/components/light.mqtt/
+[light.osramlightify docs]: https://home-assistant.io/components/light.osramlightify/
+[light.template docs]: https://home-assistant.io/components/light.template/
+[light.tplink docs]: https://home-assistant.io/components/light.tplink/
+[light.xiaomi_miio docs]: https://home-assistant.io/components/light.xiaomi_miio/
+[light.zha docs]: https://home-assistant.io/components/light.zha/
+[lock.isy994 docs]: https://home-assistant.io/components/lock.isy994/
+[media_extractor docs]: https://home-assistant.io/components/media_extractor/
+[media_player.cast docs]: https://home-assistant.io/components/media_player.cast/
+[media_player.kodi docs]: https://home-assistant.io/components/media_player.kodi/
+[media_player.monoprice docs]: https://home-assistant.io/components/media_player.monoprice/
+[media_player.plex docs]: https://home-assistant.io/components/media_player.plex/
+[media_player.squeezebox docs]: https://home-assistant.io/components/media_player.squeezebox/
+[media_player.yamaha docs]: https://home-assistant.io/components/media_player.yamaha/
+[modbus docs]: https://home-assistant.io/components/modbus/
+[notify.html5 docs]: https://home-assistant.io/components/notify.html5/
+[notify.pushbullet docs]: https://home-assistant.io/components/notify.pushbullet/
+[notify.webostv docs]: https://home-assistant.io/components/notify.webostv/
+[octoprint docs]: https://home-assistant.io/components/octoprint/
+[prometheus docs]: https://home-assistant.io/components/prometheus/
+[python_script docs]: https://home-assistant.io/components/python_script/
+[rainbird docs]: https://home-assistant.io/components/rainbird/
+[remember_the_milk docs]: https://home-assistant.io/components/remember_the_milk/
+[sensor.alpha_vantage docs]: https://home-assistant.io/components/sensor.alpha_vantage/
+[sensor.bitcoin docs]: https://home-assistant.io/components/sensor.bitcoin/
+[sensor.coinbase docs]: https://home-assistant.io/components/sensor.coinbase/
+[sensor.deconz docs]: https://home-assistant.io/components/sensor.deconz/
+[sensor.deutsche_bahn docs]: https://home-assistant.io/components/sensor.deutsche_bahn/
+[sensor.discogs docs]: https://home-assistant.io/components/sensor.discogs/
+[sensor.etherscan docs]: https://home-assistant.io/components/sensor.etherscan/
+[sensor.fido docs]: https://home-assistant.io/components/sensor.fido/
+[sensor.hydroquebec docs]: https://home-assistant.io/components/sensor.hydroquebec/
+[sensor.imap_email_content docs]: https://home-assistant.io/components/sensor.imap_email_content/
+[sensor.irish_rail_transport docs]: https://home-assistant.io/components/sensor.irish_rail_transport/
+[sensor.isy994 docs]: https://home-assistant.io/components/sensor.isy994/
+[sensor.knx docs]: https://home-assistant.io/components/sensor.knx/
+[sensor.luftdaten docs]: https://home-assistant.io/components/sensor.luftdaten/
+[sensor.metoffice docs]: https://home-assistant.io/components/sensor.metoffice/
+[sensor.miflora docs]: https://home-assistant.io/components/sensor.miflora/
+[sensor.mqtt docs]: https://home-assistant.io/components/sensor.mqtt/
+[sensor.openweathermap docs]: https://home-assistant.io/components/sensor.openweathermap/
+[sensor.plex docs]: https://home-assistant.io/components/sensor.plex/
+[sensor.rainbird docs]: https://home-assistant.io/components/sensor.rainbird/
+[sensor.snmp docs]: https://home-assistant.io/components/sensor.snmp/
+[sensor.sochain docs]: https://home-assistant.io/components/sensor.sochain/
+[sensor.statistics docs]: https://home-assistant.io/components/sensor.statistics/
+[sensor.steam_online docs]: https://home-assistant.io/components/sensor.steam_online/
+[sensor.swiss_public_transport docs]: https://home-assistant.io/components/sensor.swiss_public_transport/
+[sensor.systemmonitor docs]: https://home-assistant.io/components/sensor.systemmonitor/
+[sensor.tado docs]: https://home-assistant.io/components/sensor.tado/
+[sensor.template docs]: https://home-assistant.io/components/sensor.template/
+[sensor.transmission docs]: https://home-assistant.io/components/sensor.transmission/
+[sensor.xbox_live docs]: https://home-assistant.io/components/sensor.xbox_live/
+[sensor.zoneminder docs]: https://home-assistant.io/components/sensor.zoneminder/
+[snips docs]: https://home-assistant.io/components/snips/
+[switch.insteon_local docs]: https://home-assistant.io/components/switch.insteon_local/
+[switch.isy994 docs]: https://home-assistant.io/components/switch.isy994/
+[switch.knx docs]: https://home-assistant.io/components/switch.knx/
+[switch.mochad docs]: https://home-assistant.io/components/switch.mochad/
+[switch.rainbird docs]: https://home-assistant.io/components/switch.rainbird/
+[switch.rpi_rf docs]: https://home-assistant.io/components/switch.rpi_rf/
+[switch.snmp docs]: https://home-assistant.io/components/switch.snmp/
+[switch.template docs]: https://home-assistant.io/components/switch.template/
+[switch.tplink docs]: https://home-assistant.io/components/switch.tplink/
+[switch.transmission docs]: https://home-assistant.io/components/switch.transmission/
+[switch.xiaomi_miio docs]: https://home-assistant.io/components/switch.xiaomi_miio/
+[tahoma docs]: https://home-assistant.io/components/tahoma/
+[telegram_bot docs]: https://home-assistant.io/components/telegram_bot/
+[timer docs]: https://home-assistant.io/components/timer/
+[tts.baidu docs]: https://home-assistant.io/components/tts.baidu/
+[tts.marytts docs]: https://home-assistant.io/components/tts.marytts/
+[updater docs]: https://home-assistant.io/components/updater/
+[vacuum.xiaomi_miio docs]: https://home-assistant.io/components/vacuum.xiaomi_miio/
+[weather.darksky docs]: https://home-assistant.io/components/weather.darksky/
+[weather.openweathermap docs]: https://home-assistant.io/components/weather.openweathermap/
+[weather.yweather docs]: https://home-assistant.io/components/weather.yweather/
+[websocket_api docs]: https://home-assistant.io/components/websocket_api/
+[wemo docs]: https://home-assistant.io/components/wemo/
+[zigbee docs]: https://home-assistant.io/components/zigbee/
+[#11670]: https://github.com/home-assistant/home-assistant/pull/11670
+[#11677]: https://github.com/home-assistant/home-assistant/pull/11677
+[#11678]: https://github.com/home-assistant/home-assistant/pull/11678
+[#11686]: https://github.com/home-assistant/home-assistant/pull/11686
+[#11713]: https://github.com/home-assistant/home-assistant/pull/11713
+[@amelchio]: https://github.com/amelchio
+[@danielhiversen]: https://github.com/danielhiversen
+[@rcloran]: https://github.com/rcloran
+[@rwa]: https://github.com/rwa
+[@tinloaf]: https://github.com/tinloaf
+[binary_sensor.rfxtrx docs]: https://home-assistant.io/components/binary_sensor.rfxtrx/
+[calendar.todoist docs]: https://home-assistant.io/components/calendar.todoist/
+[history docs]: https://home-assistant.io/components/history/
+[light.zha docs]: https://home-assistant.io/components/light.zha/
+[media_player.snapcast docs]: https://home-assistant.io/components/media_player.snapcast/
+[media_player.soundtouch docs]: https://home-assistant.io/components/media_player.soundtouch/
+[rfxtrx docs]: https://home-assistant.io/components/rfxtrx/
+[sensor.mopar docs]: https://home-assistant.io/components/sensor.mopar/
+[switch.broadlink docs]: https://home-assistant.io/components/switch.broadlink/
+[switch.scsgate docs]: https://home-assistant.io/components/switch.scsgate/
+[zha docs]: https://home-assistant.io/components/zha/
diff --git a/source/_posts/2018-01-21-clarification-emulated-hue.markdown b/source/_posts/2018-01-21-clarification-emulated-hue.markdown
new file mode 100644
index 00000000000..11d57e37c5e
--- /dev/null
+++ b/source/_posts/2018-01-21-clarification-emulated-hue.markdown
@@ -0,0 +1,34 @@
+---
+layout: post
+title: "Clarification about Emulated Hue"
+description: "The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to subscribe to the Community Support Package."
+date: 2018-01-21 01:00:00
+date_formatted: "January 21, 2018"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Public Service Announcement
+---
+
+There are some misconceptions floating around about the future of the Emulated Hue component and I would like to set the record straight. **The Emulated Hue component is not going to be removed nor will we ever remove any functionality from Home Assistant to push you to support the Home Assistant project by subscribing to the Community Support Package.**
+
+The reason people are concerned about the future of the Emulated Hue component is because of a poor choice of words in a deprecation message. This message was [introduced a year ago][pr2] when we deprecated the config option `type: alexa` for the Emulated Hue component:
+
+> Alexa type is deprecated and will be removed in a future version
+
+That config option should never have been called `type: alexa` but instead have been called `mode: legacy`. If you think about it, why would emulating something even have different modes it emulates based on the consumer? That means that one of the two emulation modes is incorrect.
+
+The old implementation was not 100% correct. It was correct enough to work with Alexa (the original target) but not with Google Home. When fixing Emulated Hue we added `type: alexa` to re-enable the old implementation so that people did not have to go through the trouble to re-add their Alexa devices. The option was deprecated to indicate that we would remove the incorrect emulation in the future. However, we forgot about actually following through with that.
+
+The mistake we made was calling the correct mode `google_home` although it had nothing to do with Google Home. It confused people and they kept adding `type: alexa` to their configuration, triggering the deprecation warning.
+
+The warning will be updated starting Home Assistant 0.62 and will also include a link to this blog post.
+
+More info:
+
+- To read about what was incorrect in the first version of Emulated Hue, take a look at the PR fixing it: [Re-org emulated_hue and fix google home][pr1].
+- Read the [documentation on how to configure Emulated Hue][eh-conf]
+
+[pr1]: https://github.com/home-assistant/home-assistant/pull/4708
+[pr2]: https://github.com/home-assistant/home-assistant/pull/5549
+[eh-conf]: https://home-assistant.io/components/emulated_hue/#configuration
diff --git a/source/assets/get_lutron_cert.zip b/source/assets/get_lutron_cert.zip
new file mode 100644
index 00000000000..b3849e8a412
Binary files /dev/null and b/source/assets/get_lutron_cert.zip differ
diff --git a/source/assets/jwplayer/glow/controlbar/background.png b/source/assets/jwplayer/glow/controlbar/background.png
index c2824cc432c..e932cb09a99 100644
Binary files a/source/assets/jwplayer/glow/controlbar/background.png and b/source/assets/jwplayer/glow/controlbar/background.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/divider.png b/source/assets/jwplayer/glow/controlbar/divider.png
index 77cd829a4b5..021685f4b0a 100644
Binary files a/source/assets/jwplayer/glow/controlbar/divider.png and b/source/assets/jwplayer/glow/controlbar/divider.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/fullscreenButton.png b/source/assets/jwplayer/glow/controlbar/fullscreenButton.png
index e06aa50ca29..9d3291e8e59 100644
Binary files a/source/assets/jwplayer/glow/controlbar/fullscreenButton.png and b/source/assets/jwplayer/glow/controlbar/fullscreenButton.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png b/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
index d2bc4fc75a8..ef55acc7ca4 100644
Binary files a/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png and b/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/muteButtonOver.png b/source/assets/jwplayer/glow/controlbar/muteButtonOver.png
index 96fe7bb0242..091cc054a2a 100644
Binary files a/source/assets/jwplayer/glow/controlbar/muteButtonOver.png and b/source/assets/jwplayer/glow/controlbar/muteButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/normalscreenButton.png b/source/assets/jwplayer/glow/controlbar/normalscreenButton.png
index 22295074029..f7c23cd5ba1 100644
Binary files a/source/assets/jwplayer/glow/controlbar/normalscreenButton.png and b/source/assets/jwplayer/glow/controlbar/normalscreenButton.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png b/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
index 15db44d4e66..1f6aebd73ae 100644
Binary files a/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png and b/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/pauseButton.png b/source/assets/jwplayer/glow/controlbar/pauseButton.png
index e399bf34cb9..e6ab8aa55a3 100644
Binary files a/source/assets/jwplayer/glow/controlbar/pauseButton.png and b/source/assets/jwplayer/glow/controlbar/pauseButton.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png
index 409d89d29a3..8dcf0c5bfcc 100644
Binary files a/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png and b/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/playButtonOver.png b/source/assets/jwplayer/glow/controlbar/playButtonOver.png
index 3fe284845fa..6898116a3b7 100644
Binary files a/source/assets/jwplayer/glow/controlbar/playButtonOver.png and b/source/assets/jwplayer/glow/controlbar/playButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png
index 73b371abbca..5e151d69c8c 100644
Binary files a/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png and b/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png b/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
index 72322171bd5..e89fc5c6afc 100644
Binary files a/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png and b/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png b/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png
index 626444a66a7..ae47e9018b3 100644
Binary files a/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png and b/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/timeSliderRail.png b/source/assets/jwplayer/glow/controlbar/timeSliderRail.png
index 27851dfdf36..63692be0b75 100644
Binary files a/source/assets/jwplayer/glow/controlbar/timeSliderRail.png and b/source/assets/jwplayer/glow/controlbar/timeSliderRail.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/unmuteButton.png b/source/assets/jwplayer/glow/controlbar/unmuteButton.png
index 3658453cfc1..6433b4d476a 100644
Binary files a/source/assets/jwplayer/glow/controlbar/unmuteButton.png and b/source/assets/jwplayer/glow/controlbar/unmuteButton.png differ
diff --git a/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png b/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png
index 138ebb35ba8..206be887e0a 100644
Binary files a/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png and b/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png differ
diff --git a/source/assets/jwplayer/glow/display/background.png b/source/assets/jwplayer/glow/display/background.png
index 391152f5e2f..eb7c709d39b 100644
Binary files a/source/assets/jwplayer/glow/display/background.png and b/source/assets/jwplayer/glow/display/background.png differ
diff --git a/source/assets/jwplayer/glow/display/bufferIcon.png b/source/assets/jwplayer/glow/display/bufferIcon.png
index a3819c1ef19..10ae39736ad 100644
Binary files a/source/assets/jwplayer/glow/display/bufferIcon.png and b/source/assets/jwplayer/glow/display/bufferIcon.png differ
diff --git a/source/assets/jwplayer/glow/display/muteIcon.png b/source/assets/jwplayer/glow/display/muteIcon.png
index e0408bbda5e..8e078ae4387 100644
Binary files a/source/assets/jwplayer/glow/display/muteIcon.png and b/source/assets/jwplayer/glow/display/muteIcon.png differ
diff --git a/source/assets/jwplayer/glow/display/playIcon.png b/source/assets/jwplayer/glow/display/playIcon.png
index cb384278722..269e4311bcb 100644
Binary files a/source/assets/jwplayer/glow/display/playIcon.png and b/source/assets/jwplayer/glow/display/playIcon.png differ
diff --git a/source/assets/jwplayer/glow/dock/button.png b/source/assets/jwplayer/glow/dock/button.png
index 391152f5e2f..eb7c709d39b 100644
Binary files a/source/assets/jwplayer/glow/dock/button.png and b/source/assets/jwplayer/glow/dock/button.png differ
diff --git a/source/assets/jwplayer/glow/playlist/item.png b/source/assets/jwplayer/glow/playlist/item.png
index 812592c3ce5..825911836fb 100644
Binary files a/source/assets/jwplayer/glow/playlist/item.png and b/source/assets/jwplayer/glow/playlist/item.png differ
diff --git a/source/assets/jwplayer/glow/playlist/itemOver.png b/source/assets/jwplayer/glow/playlist/itemOver.png
index 549f3721d6b..cbb7e34d85f 100644
Binary files a/source/assets/jwplayer/glow/playlist/itemOver.png and b/source/assets/jwplayer/glow/playlist/itemOver.png differ
diff --git a/source/assets/jwplayer/glow/playlist/sliderCapBottom.png b/source/assets/jwplayer/glow/playlist/sliderCapBottom.png
index 048cc623be9..61c6dfbbba0 100644
Binary files a/source/assets/jwplayer/glow/playlist/sliderCapBottom.png and b/source/assets/jwplayer/glow/playlist/sliderCapBottom.png differ
diff --git a/source/assets/jwplayer/glow/playlist/sliderCapTop.png b/source/assets/jwplayer/glow/playlist/sliderCapTop.png
index 65c463a0c04..4d6dae6290f 100644
Binary files a/source/assets/jwplayer/glow/playlist/sliderCapTop.png and b/source/assets/jwplayer/glow/playlist/sliderCapTop.png differ
diff --git a/source/assets/jwplayer/glow/playlist/sliderRail.png b/source/assets/jwplayer/glow/playlist/sliderRail.png
index 121778affdc..2b455a6ff85 100644
Binary files a/source/assets/jwplayer/glow/playlist/sliderRail.png and b/source/assets/jwplayer/glow/playlist/sliderRail.png differ
diff --git a/source/assets/jwplayer/glow/sharing/embedScreen.png b/source/assets/jwplayer/glow/sharing/embedScreen.png
index b4059754baf..dabce156c23 100644
Binary files a/source/assets/jwplayer/glow/sharing/embedScreen.png and b/source/assets/jwplayer/glow/sharing/embedScreen.png differ
diff --git a/source/assets/jwplayer/glow/sharing/shareIcon.png b/source/assets/jwplayer/glow/sharing/shareIcon.png
index eae1d4e7559..b659a20c3b5 100644
Binary files a/source/assets/jwplayer/glow/sharing/shareIcon.png and b/source/assets/jwplayer/glow/sharing/shareIcon.png differ
diff --git a/source/assets/jwplayer/glow/sharing/shareScreen.png b/source/assets/jwplayer/glow/sharing/shareScreen.png
index 695ec949f86..2435d3777eb 100644
Binary files a/source/assets/jwplayer/glow/sharing/shareScreen.png and b/source/assets/jwplayer/glow/sharing/shareScreen.png differ
diff --git a/source/demo/favicon-192x192.png b/source/demo/favicon-192x192.png
index 2959efdf89d..3cd8005a166 100644
Binary files a/source/demo/favicon-192x192.png and b/source/demo/favicon-192x192.png differ
diff --git a/source/demo/favicon-apple-180x180.png b/source/demo/favicon-apple-180x180.png
index 20117d00f22..03b5dd7780c 100644
Binary files a/source/demo/favicon-apple-180x180.png and b/source/demo/favicon-apple-180x180.png differ
diff --git a/source/demo/images/config_philips_hue.jpg b/source/demo/images/config_philips_hue.jpg
index f10d258bf34..fd31dc7bbbf 100644
Binary files a/source/demo/images/config_philips_hue.jpg and b/source/demo/images/config_philips_hue.jpg differ
diff --git a/source/demo/images/thrones.jpg b/source/demo/images/thrones.jpg
index 227a9955380..0c57c03db5d 100644
Binary files a/source/demo/images/thrones.jpg and b/source/demo/images/thrones.jpg differ
diff --git a/source/demo/webcam.jpg b/source/demo/webcam.jpg
index 4d6b94348c4..215a4da7b06 100644
Binary files a/source/demo/webcam.jpg and b/source/demo/webcam.jpg differ
diff --git a/source/developers/api.markdown b/source/developers/api.markdown
index b46b1fdc4d4..999647d0382 100644
--- a/source/developers/api.markdown
+++ b/source/developers/api.markdown
@@ -12,7 +12,10 @@ footer: true
Home Assistant provides various APIs. For detail please refer to [Home Assistant API](https://dev-docs.home-assistant.io/en/dev/) documentation.
* [Python API](https://dev-docs.home-assistant.io/)
- * [Websocket API](/developers/websocket_api/)
+ * [WebSocket API](/developers/websocket_api/)
* [REST API](/developers/rest_api/)
* [Python REST API](/developers/python_api/)
* [Server-sent events](/developers/server_sent_events/)
+
+If you are not using the [`frontend`](/components/frontend/) in your setup then you need to enable the components by adding them to your `configuration.yaml` file. E.g., [`websocket_api:`](/components/websocket_api/) for the WebSocket API or [`api:`](/components/api/) for the [REST API](/developers/rest_api/) and the [Python REST API](/developers/python_api/).
+
diff --git a/source/developers/architecture_components.markdown b/source/developers/architecture_components.markdown
index 095a4f73781..ac05c93ba03 100644
--- a/source/developers/architecture_components.markdown
+++ b/source/developers/architecture_components.markdown
@@ -51,7 +51,7 @@ In the event of the sun setting:
Turn on the lights
```
-Look [here](https://github.com/home-assistant/home-assistant/blob/master/config/custom_components/example.py) for a comprehensive example of a home automation component.
+Look [here](/python_component_automation/) for a comprehensive example of a home automation component.
### {% linkable_title The full picture %}
diff --git a/source/developers/code_review_component.markdown b/source/developers/code_review_component.markdown
index 4d708290c54..9b7bdff4601 100644
--- a/source/developers/code_review_component.markdown
+++ b/source/developers/code_review_component.markdown
@@ -15,21 +15,22 @@ A checklist of things to do when you're adding a new component.
Not all existing platforms follow the requirements in this checklist. This cannot be used as a reason to not follow them!
-### {% linkable_title Requirements %}
+### {% linkable_title 1. Requirements %}
1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']`
2. We no longer want requirements hosted on GitHub. Please upload to PyPi.
3. Requirements should only be imported inside functions. This is necessary because requirements are installed on the fly.
-### {% linkable_title Configuration %}
+### {% linkable_title 2. Configuration %}
1. Voluptuous schema present for config validation
2. Default parameters specified in voluptuous schema, not in `setup(…)`
3. Schema using as many generic config keys as possible from `homeassistant.const`
- 4. If having platforms, have a `PLATFORM_SCHEMA`, otherwise `CONFIG_SCHEMA`.
- 5. If `PLATFORM_SCHEMA`, import base from `homeassistant.helpers.config_validation`
+ 4. If your component has platforms, define a `PLATFORM_SCHEMA` instead of a `CONFIG_SCHEMA`.
+ 5. If using a `PLATFORM_SCHEMA` to be used with `EntityComponent`, import base from `homeassistant.helpers.config_validation`
+ 6. Never depend on users adding things to `customize` to configure behavior inside your component.
-### {% linkable_title Component/platform communication %}
+### {% linkable_title 3. Component/platform communication %}
1. If you need to share global data with platforms, use the dictionary `hass.data`. `hass.data[DATA_XY]` while `XY` is the component is preferred over `hass.data[DOMAIN]`.
2. If the component fetches data that causes it's related platform entities to update, you can notify them using the dispatcher code in `homeassistant.helpers.dispatcher`.
diff --git a/source/developers/code_review_platform.markdown b/source/developers/code_review_platform.markdown
index 0361d4bfc70..96f78c60a0c 100644
--- a/source/developers/code_review_platform.markdown
+++ b/source/developers/code_review_platform.markdown
@@ -27,28 +27,28 @@ Not all existing platforms follow the requirements in this checklist. This canno
### {% linkable_title 3. Configuration %}
- 1. Volutpuous schema present for config validation
+ 1. Voluptuous schema present for config validation
2. Voluptuous schema extends schema from component
(e.g. `light.hue.PLATFORM_SCHEMA` extends `light.PLATFORM_SCHEMA`)
3. Default parameters specified in voluptuous schema, not in `setup_platform(…)`
- 4. Schema using as many generic config keys as possible from `homeassistant.const`
+ 4. Your `PLATFORM_SCHEMA` should use as many generic config keys as possible from `homeassistant.const`
+ ```python
+ import voluptuous as vol
-```python
-import voluptuous as vol
+ from homeassistant.const import CONF_FILENAME, CONF_HOST
+ from homeassistant.components.light import PLATFORM_SCHEMA
+ import homeassistant.helpers.config_validation as cv
-from homeassistant.const import CONF_FILENAME, CONF_HOST
-from homeassistant.components.light import PLATFORM_SCHEMA
-import homeassistant.helpers.config_validation as cv
+ CONF_ALLOW_UNREACHABLE = 'allow_unreachable'
+ DEFAULT_UNREACHABLE = False
-CONF_ALLOW_UNREACHABLE = 'allow_unreachable'
-DEFAULT_UNREACHABLE = False
-
-PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
- vol.Required(CONF_HOST): cv.string,
- vol.Optional(CONF_ALLOW_UNREACHABLE,
- default=DEFAULT_UNREACHABLE): cv.boolean,
- vol.Optional(CONF_FILENAME): cv.string,
-})
-```
+ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
+ vol.Required(CONF_HOST): cv.string,
+ vol.Optional(CONF_ALLOW_UNREACHABLE,
+ default=DEFAULT_UNREACHABLE): cv.boolean,
+ vol.Optional(CONF_FILENAME): cv.string,
+ })
+ ```
+ 5. Never depend on users adding things to `customize` to configure behavior inside your platform.
### {% linkable_title 4. Setup Platform %}
@@ -61,11 +61,12 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
1. Extend entity from component, e.g. `class HueLight(Light)`
2. Do not call `update()` in constructor, use `add_devices(devices, True)` instead.
3. Do not do any I/O inside properties. Cache values inside `update()` instead.
+ 4. The state and/or attributes should not contain relative time since something happened. Instead it should store UTC timestamps.
### {% linkable_title 6. Communication with devices/services %}
1. All API specific code has to be part of a third party library hosted on PyPi. Home Assistant should only interact with objects and not make direct calls to the API.
-
+
```python
# bad
status = requests.get(url('/status'))
diff --git a/source/developers/component_discovery.markdown b/source/developers/component_discovery.markdown
index bdf66005e86..2911adaa26d 100644
--- a/source/developers/component_discovery.markdown
+++ b/source/developers/component_discovery.markdown
@@ -2,7 +2,7 @@
layout: page
title: "Component Discovery"
description: "How to make component discovery work."
-date: 2016-04-16 14:24 -07:00
+date: 2017-11-23 07:27 +02:00
sidebar: true
comments: false
sharing: true
@@ -23,22 +23,38 @@ To have your device be discovered, you will have to extend the NetDisco library
### {% linkable_title Listening to `SERVICE_DISCOVERED` events %}
-From your component, you will have to set up the listening for specific services. Given below is an example how one would listen for discovered Chromecasts:
+From your component, you will have to set up the listening for specific services. Given below is an example how one would listen for a discovered AwesomeDevice:
```python
-from homeassistant.loader import get_component
+from homeassistant.components.discovery import SERVICE_AWESOMEDEVICE
+from homeassistant.helpers import discovery
+
+DOMAIN = 'awesomedevice'
+
+DEPENDENCIES = ['http']
def setup(hass, config):
- discovery = get_component('discovery')
+ cfg = config.get(DOMAIN)
- def chromecast_discovered(service, info):
- """ Called when a Chromecast has been discovered. """
- print("Discovered a new Chromecast: {}".format(info))
+ def device_discovered(service, info):
+ """ Called when a Awesome device has been discovered. """
+ print("Discovered a new Awesome device: {}".format(info))
discovery.listen(
- hass, discovery.services.GOOGLE_CAST, chromecast_discovered)
+ hass, SERVICE_AWESOMEDEVICE, device_discovered)
+
+ return True
```
### {% linkable_title Auto-loading your component upon discovery %}
-The Discovery component is capable of setting up your components before firing the `SERVICE_DISCOVERD` event. To do this you will have to update the [`SERVICE_HANDLERS`](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py#L29) constant in [the `discovery` component](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py).
+The `discovery` component is capable of setting up your components before firing the `EVENT_PLATFORM_DISCOVERED` event. To do this you will have to update the [`SERVICE_HANDLERS`](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py#L40) constant in [the `discovery` component](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py):
+
+```python
+SERVICE_AWESOMEDEVICE = 'awesomedevice'
+
+SERVICE_HANDLERS = {
+ ...
+ SERVICE_AWESOMEDEVICE: ('awesomedevice', None),
+}
+```
diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown
index 9d447d5b141..9e5a224e4b6 100644
--- a/source/developers/credits.markdown
+++ b/source/developers/credits.markdown
@@ -2,7 +2,7 @@
layout: page
title: "Credits"
description: "Credits for the developers who contributed to Home Assistant."
-date: 2017-10-31 19:14:47 +0000
+date: 2018-01-13 18:07:58 +0000
sidebar: true
comments: false
sharing: true
@@ -13,26 +13,21 @@ This page contains a list of people who have contributed in one way or another t
### {% linkable_title Author %}
-- [Paulus Schoutsen (@balloob)](https://github.com/balloob "5895 total commits to the home-assistant organization, 3516 commits to home-assistant, 1279 commits to home-assistant.github.io, 619 commits to home-assistant-polymer, 244 commits to home-assistant-js, 117 commits to netdisco, 44 commits to home-assistant-js-websocket, 24 commits to hass-release, 14 commits to home-assistant-assets, 8 commits to example-custom-config, 7 commits to micropython-home-assistant, 5 commits to LabelBot, 4 commits to hassio, 3 commits to hassio-addons, 2 commits to issue-bot, 2 commits to hassio-addons-example, 2 commits to python-hassbian, 2 commits to lambda-home-assistant-github, 1 commit to hassio-build, 1 commit to home-assistant-notebooks, 1 commit to home-assistant-iOS")
+- [Paulus Schoutsen (@balloob)](https://github.com/balloob "6125 total commits to the home-assistant organization, 3619 commits to home-assistant, 1332 commits to home-assistant.github.io, 682 commits to home-assistant-polymer, 244 commits to home-assistant-js, 118 commits to netdisco, 44 commits to home-assistant-js-websocket, 26 commits to hass-release, 14 commits to home-assistant-assets, 10 commits to LabelBot, 8 commits to example-custom-config, 7 commits to micropython-home-assistant, 5 commits to hassio, 3 commits to hassio-addons, 2 commits to hassio-addons-example, 2 commits to hassio-build, 2 commits to python-hassbian, 2 commits to issue-bot, 2 commits to lambda-home-assistant-github, 1 commit to home-assistant-notebooks, 1 commit to warrant, 1 commit to home-assistant-iOS")
### {% linkable_title Contributors %}
(in alphabetical order)
- [7even (@hwikene)](https://github.com/hwikene "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [Aaron Bach (@bachya)](https://github.com/bachya "28 total commits to the home-assistant organization, 18 commits to home-assistant, 10 commits to home-assistant.github.io")
+- [Aaron Bach (@bachya)](https://github.com/bachya "36 total commits to the home-assistant organization, 23 commits to home-assistant, 13 commits to home-assistant.github.io")
- [Aaron Linville (@linville)](https://github.com/linville "2 total commits to the home-assistant organization, 2 commits to appdaemon")
-- [Aaron Morris (@Morrisai)](https://github.com/Morrisai "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Aaron Polley (@xarnze)](https://github.com/xarnze "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Abhishek Anand (@aa755)](https://github.com/aa755 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Abílio Costa (@abmantis)](https://github.com/abmantis "18 total commits to the home-assistant organization, 11 commits to home-assistant, 4 commits to home-assistant.github.io, 1 commit to home-assistant-js-websocket, 1 commit to home-assistant-polymer, 1 commit to netdisco")
-- [Adam (@SilvrrGIT)](https://github.com/SilvrrGIT "9 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Adam Baxter (@voltagex)](https://github.com/voltagex "2 total commits to the home-assistant organization, 1 commit to home-assistant-polymer, 1 commit to home-assistant")
-- [Adam Cooper (@GenericStudent)](https://github.com/GenericStudent "6 total commits to the home-assistant organization, 6 commits to home-assistant")
+- [Abílio Costa (@abmantis)](https://github.com/abmantis "20 total commits to the home-assistant organization, 12 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant-js-websocket, 1 commit to home-assistant-polymer")
+- [Adam (@SilvrrGIT)](https://github.com/SilvrrGIT "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
+- [Adam Baxter (@voltagex)](https://github.com/voltagex "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Adam Cooper (@GenericStudent)](https://github.com/GenericStudent "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Adam Dullage (@Dullage)](https://github.com/Dullage "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Adam Garcia (@pancho-villa)](https://github.com/pancho-villa "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Adam Mills (@armills)](https://github.com/armills "228 total commits to the home-assistant organization, 141 commits to home-assistant, 42 commits to home-assistant.github.io, 41 commits to home-assistant-polymer, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant")
-- [Adam Stone (@astone123)](https://github.com/astone123 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Adam Mills (@armills)](https://github.com/armills "286 total commits to the home-assistant organization, 150 commits to home-assistant, 81 commits to home-assistant-polymer, 51 commits to home-assistant.github.io, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant")
- [Adrian Popa (@mad-ady)](https://github.com/mad-ady "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Adrien Ball (@adrienball)](https://github.com/adrienball "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Adrien Brault (@adrienbrault)](https://github.com/adrienbrault "2 total commits to the home-assistant organization, 2 commits to home-assistant")
@@ -40,214 +35,212 @@ This page contains a list of people who have contributed in one way or another t
- [aetolus (@aetolus)](https://github.com/aetolus "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [AHS (@ahofelt)](https://github.com/ahofelt "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Alan Bowman (@alanbowman)](https://github.com/alanbowman "4 total commits to the home-assistant organization, 4 commits to home-assistant")
-- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "18 total commits to the home-assistant organization, 15 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "20 total commits to the home-assistant organization, 16 commits to home-assistant, 4 commits to home-assistant.github.io")
- [Alasdair Nicol (@alasdairnicol)](https://github.com/alasdairnicol "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Albatross (@DyingAlbatross)](https://github.com/DyingAlbatross "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Albert Lee (@trisk)](https://github.com/trisk "13 total commits to the home-assistant organization, 8 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Alberto Arias Maestro (@albertoarias)](https://github.com/albertoarias "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Alessandro Mogavero (@alexmogavero)](https://github.com/alexmogavero "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Alex (@alexrockt)](https://github.com/alexrockt "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Alex (@MungoRae)](https://github.com/MungoRae "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Alex (@asbach)](https://github.com/asbach "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Alex Barcelo (@alexbarcelo)](https://github.com/alexbarcelo "2 total commits to the home-assistant organization, 2 commits to hassio-addons")
-- [Alex Harvey (@infamy)](https://github.com/infamy "25 total commits to the home-assistant organization, 14 commits to home-assistant, 11 commits to home-assistant.github.io")
-- [Alex Mekkering (@AlexMekkering)](https://github.com/AlexMekkering "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
+- [Alex (@asbach)](https://github.com/asbach "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Alex Barcelo (@alexbarcelo)](https://github.com/alexbarcelo "3 total commits to the home-assistant organization, 3 commits to hassio-addons")
+- [Alex Harvey (@infamy)](https://github.com/infamy "29 total commits to the home-assistant organization, 14 commits to home-assistant, 11 commits to home-assistant.github.io, 4 commits to hassio-os")
+- [Alex Mekkering (@AlexMekkering)](https://github.com/AlexMekkering "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Alex MF (@adsmf)](https://github.com/adsmf "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
- [Alex Tzonkov (@attzonko)](https://github.com/attzonko "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Alexander Kratzer (@hexxter)](https://github.com/hexxter "8 total commits to the home-assistant organization, 8 commits to home-assistant")
-- [Alexander Rust (@binarybucks)](https://github.com/binarybucks "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Alexandre Perrin (@kAworu)](https://github.com/kAworu "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Alexis Iglauer (@ax42)](https://github.com/ax42 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Alfie Day (@Azelphur)](https://github.com/Azelphur "12 total commits to the home-assistant organization, 12 commits to home-assistant")
-- [Aliaksandr (@minchik)](https://github.com/minchik "7 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to appdaemon, 2 commits to home-assistant")
-- [Allan Glen (@allanglen)](https://github.com/allanglen "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Alok Saboo (@arsaboo)](https://github.com/arsaboo "102 total commits to the home-assistant organization, 59 commits to home-assistant.github.io, 41 commits to home-assistant, 1 commit to hassio-addons, 1 commit to pi-gen")
+- [Aliaksandr (@minchik)](https://github.com/minchik "7 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant, 2 commits to appdaemon")
+- [Alok Saboo (@arsaboo)](https://github.com/arsaboo "125 total commits to the home-assistant organization, 75 commits to home-assistant.github.io, 45 commits to home-assistant, 3 commits to home-assistant-polymer, 1 commit to pi-gen, 1 commit to hassio-addons")
- [amigian74 (@amigian74)](https://github.com/amigian74 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [amorsillo (@AndrewMorsillo)](https://github.com/AndrewMorsillo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Anders Fogh Eriksen (@Fogh)](https://github.com/Fogh "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "107 total commits to the home-assistant organization, 78 commits to home-assistant, 27 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
+- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "126 total commits to the home-assistant organization, 91 commits to home-assistant, 33 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
+- [Andrea Campi (@andreacampi)](https://github.com/andreacampi "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to home-assistant.github.io")
- [Andrea Falcone (@asfalcone)](https://github.com/asfalcone "5 total commits to the home-assistant organization, 5 commits to issue-bot")
-- [Andreas Cambitsis (@acambitsis)](https://github.com/acambitsis "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Andreas Jacobsen (@andreasjacobsen93)](https://github.com/andreasjacobsen93 "9 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to hassio-addons, 1 commit to home-assistant")
+- [Andreas Björshammar (@abjorshammar)](https://github.com/abjorshammar "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Andreas Jacobsen (@andreasjacobsen93)](https://github.com/andreasjacobsen93 "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to hassio-addons")
- [Andreas Rammhold (@andir)](https://github.com/andir "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Andreas Renberg (@IQAndreas)](https://github.com/IQAndreas "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Andreea-Daniela Ene (@AndreeaEne)](https://github.com/AndreeaEne "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Andrej Friesen (@ajfriesen)](https://github.com/ajfriesen "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Andrew (@aoakeson)](https://github.com/aoakeson "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Andrew (@aneisch)](https://github.com/aneisch "5 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Andrew Cockburn (@acockburn)](https://github.com/acockburn "625 total commits to the home-assistant organization, 494 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 18 commits to home-assistant.github.io")
-- [Andrew LeCody (@aceat64)](https://github.com/aceat64 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Andrej Friesen (@ajfriesen)](https://github.com/ajfriesen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Andrew (@aneisch)](https://github.com/aneisch "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Andrew (@aoakeson)](https://github.com/aoakeson "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Andrew Cockburn (@acockburn)](https://github.com/acockburn "692 total commits to the home-assistant organization, 560 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 19 commits to home-assistant.github.io")
- [Andrew Smith (@andrewmichaelsmith)](https://github.com/andrewmichaelsmith "2 total commits to the home-assistant organization, 2 commits to pi-gen")
- [Andrew Stock (@watchforstock)](https://github.com/watchforstock "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Andrew Thigpen (@andythigpen)](https://github.com/andythigpen "33 total commits to the home-assistant organization, 32 commits to home-assistant, 1 commit to home-assistant-js")
-- [Andrew Williams (@nikdoof)](https://github.com/nikdoof "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [andrew-curtis (@andrew-curtis)](https://github.com/andrew-curtis "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
-- [Andrey (@andrey-git)](https://github.com/andrey-git "195 total commits to the home-assistant organization, 91 commits to home-assistant, 73 commits to home-assistant-polymer, 31 commits to home-assistant.github.io")
-- [Andrey Kupreychik (@foxel)](https://github.com/foxel "4 total commits to the home-assistant organization, 4 commits to home-assistant")
-- [Andrzej (@andriej)](https://github.com/andriej "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
+- [Andrey (@andrey-git)](https://github.com/andrey-git "264 total commits to the home-assistant organization, 116 commits to home-assistant-polymer, 111 commits to home-assistant, 37 commits to home-assistant.github.io")
+- [Andrey Kupreychik (@foxel)](https://github.com/foxel "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Andrzej (@andriej)](https://github.com/andriej "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Andréas Lundgren (@adevade)](https://github.com/adevade "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Andy Castille (@Klikini)](https://github.com/Klikini "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Andy Castille (@Klikini)](https://github.com/Klikini "11 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.github.io")
- [Andy Loughran (@andylockran)](https://github.com/andylockran "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [andyat (@andyat)](https://github.com/andyat "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Anthony Hughes (@tony2nite)](https://github.com/tony2nite "2 total commits to the home-assistant organization, 1 commit to netdisco, 1 commit to home-assistant")
+- [anotherthomas (@anotherthomas)](https://github.com/anotherthomas "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
+- [Anthony Hughes (@tony2nite)](https://github.com/tony2nite "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [Antoine Bertin (@Diaoul)](https://github.com/Diaoul "5 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Anton Glukhov (@toxxin)](https://github.com/toxxin "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Anton Lundin (@glance-)](https://github.com/glance- "7 total commits to the home-assistant organization, 6 commits to home-assistant, 1 commit to netdisco")
- [Anton Sarukhanov (@antsar)](https://github.com/antsar "6 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
-- [Antonio Párraga Navarro (@aparraga)](https://github.com/aparraga "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Antony Messerli (@antonym)](https://github.com/antonym "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Anubhaw Arya (@aarya123)](https://github.com/aarya123 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [apo-mak (@apo-mak)](https://github.com/apo-mak "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Ardetus (@Ardetus)](https://github.com/Ardetus "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Ardi Mehist (@omgapuppy)](https://github.com/omgapuppy "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [arjenfvellinga (@arjenfvellinga)](https://github.com/arjenfvellinga "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Ardi Mehist (@omgapuppy)](https://github.com/omgapuppy "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Ari Lotter (@arilotter)](https://github.com/arilotter "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [arjenfvellinga (@arjenfvellinga)](https://github.com/arjenfvellinga "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Arno (@aetjansen)](https://github.com/aetjansen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [ArrayLabs (@arraylabs)](https://github.com/arraylabs "5 total commits to the home-assistant organization, 5 commits to home-assistant")
-- [arretx (@arretx)](https://github.com/arretx "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Arthur Leonard Andersen (@leoc)](https://github.com/leoc "9 total commits to the home-assistant organization, 9 commits to home-assistant")
- [Arttu mahlakaarto (@amahlaka)](https://github.com/amahlaka "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
- [Ashton Campbell (@AshtonCampbell)](https://github.com/AshtonCampbell "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Assaf Inbal (@shmuelzon)](https://github.com/shmuelzon "12 total commits to the home-assistant organization, 9 commits to homebridge-homeassistant, 3 commits to home-assistant")
-- [Audric Schiltknecht (@chemicalstorm)](https://github.com/chemicalstorm "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to home-assistant")
+- [Assaf Inbal (@shmuelzon)](https://github.com/shmuelzon "11 total commits to the home-assistant organization, 9 commits to homebridge-homeassistant, 2 commits to home-assistant")
+- [Audric Schiltknecht (@chemicalstorm)](https://github.com/chemicalstorm "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Audun Ytterdal (@auduny)](https://github.com/auduny "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [aufano (@aufano)](https://github.com/aufano "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Austin (@trainman419)](https://github.com/trainman419 "8 total commits to the home-assistant organization, 8 commits to home-assistant")
- [Avraham David Gelbfish (@adgelbfish)](https://github.com/adgelbfish "2 total commits to the home-assistant organization, 1 commit to hadashboard, 1 commit to pi-gen")
- [azeroth12 (@azeroth12)](https://github.com/azeroth12 "1 total commits to the home-assistant organization, 1 commit to appdaemon")
+- [baflo (@baflo)](https://github.com/baflo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Balázs Suhajda (@suhajdab)](https://github.com/suhajdab "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Baran Kaynak (@barankaynak)](https://github.com/barankaynak "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Barry Williams (@bazwilliams)](https://github.com/bazwilliams "10 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to netdisco, 2 commits to home-assistant.github.io")
- [Bart274 (@Bart274)](https://github.com/Bart274 "26 total commits to the home-assistant organization, 17 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Bas Schipper (@basschipper)](https://github.com/basschipper "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
- [bastshoes (@bastshoes)](https://github.com/bastshoes "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [Beat (@bdurrer)](https://github.com/bdurrer "12 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 1 commit to home-assistant-polymer, 1 commit to home-assistant")
+- [bcl1713 (@bcl1713)](https://github.com/bcl1713 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Beat (@bdurrer)](https://github.com/bdurrer "11 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Ben (@unixben)](https://github.com/unixben "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ben Bangert (@bbangert)](https://github.com/bbangert "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [Ben Doerr (@bendoerr)](https://github.com/bendoerr "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ben Nuttall (@bennuttall)](https://github.com/bennuttall "1 total commits to the home-assistant organization, 1 commit to pi-gen")
- [Ben Origas (@borigas)](https://github.com/borigas "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Ben Randall (@veleek)](https://github.com/veleek "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Ben Thomas (@wazoo)](https://github.com/wazoo "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [Ben Van Mechelen (@benvm)](https://github.com/benvm "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Benjamin Affolter (@bliemli)](https://github.com/bliemli "31 total commits to the home-assistant organization, 31 commits to home-assistant-ansible")
- [Benjamin Parzella (@bparzella)](https://github.com/bparzella "1 total commits to the home-assistant organization, 1 commit to pi-gen")
-- [Benoit BESSET (@bbesset)](https://github.com/bbesset "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Benji (@bbbenji)](https://github.com/bbbenji "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [bestlibre (@bestlibre)](https://github.com/bestlibre "16 total commits to the home-assistant organization, 8 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to hassio, 1 commit to hassio-build, 1 commit to home-assistant-polymer")
- [BigMoby (@bigmoby)](https://github.com/bigmoby "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Bill Nelson (@xhostplus)](https://github.com/xhostplus "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [BioSehnsucht (@BioSehnsucht)](https://github.com/BioSehnsucht "12 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 3 commits to home-assistant, 2 commits to home-assistant-polymer")
- [Bjarni Ivarsson (@bjarniivarsson)](https://github.com/bjarniivarsson "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant-polymer")
+- [Björn Orri (@bjornorri)](https://github.com/bjornorri "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS")
+- [Björn Ramberg (@bjorne)](https://github.com/bjorne "1 total commits to the home-assistant organization, 1 commit to hassio-build")
- [Blanyal D'Souza (@blanyal)](https://github.com/blanyal "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Blender3D (@Blender3D)](https://github.com/Blender3D "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Bob Anderson (@rwa)](https://github.com/rwa "4 total commits to the home-assistant organization, 4 commits to home-assistant")
+- [Bob Igo (@Human)](https://github.com/Human "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Boced66 (@boced66)](https://github.com/boced66 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [boltgolt (@Boltgolt)](https://github.com/Boltgolt "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [boojew (@boojew)](https://github.com/boojew "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Boris K (@bokub)](https://github.com/bokub "11 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 5 commits to home-assistant")
-- [Boyi C (@fanthos)](https://github.com/fanthos "9 total commits to the home-assistant organization, 4 commits to home-assistant-polymer, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Brad Buran (@bburan)](https://github.com/bburan "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Boyi C (@fanthos)](https://github.com/fanthos "11 total commits to the home-assistant organization, 6 commits to home-assistant-polymer, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [bpoirriez (@bpoirriez)](https://github.com/bpoirriez "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Brad Dixon (@rbdixon)](https://github.com/rbdixon "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Brad Johnson (@bradsk88)](https://github.com/bradsk88 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Brahma Fear (@brahmafear)](https://github.com/brahmafear "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
- [Bram Kragten (@bramkragten)](https://github.com/bramkragten "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Brandon Mathis (@imathis)](https://github.com/imathis "484 total commits to the home-assistant organization, 484 commits to home-assistant.github.io")
- [Brandon Weeks (@brandonweeks)](https://github.com/brandonweeks "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [brburns (@brburns)](https://github.com/brburns "2 total commits to the home-assistant organization, 2 commits to netdisco")
-- [Brendon Baumgartner (@bbrendon)](https://github.com/bbrendon "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io")
-- [Brent Hughes (@bah2830)](https://github.com/bah2830 "26 total commits to the home-assistant organization, 17 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to netdisco")
+- [Brendon Baumgartner (@bbrendon)](https://github.com/bbrendon "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io")
+- [Brent Hughes (@bah2830)](https://github.com/bah2830 "27 total commits to the home-assistant organization, 18 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to netdisco")
- [Brent Kerlin (@bkerlin)](https://github.com/bkerlin "1 total commits to the home-assistant organization, 1 commit to hassio-build")
-- [Brent Saltzman (@brent20)](https://github.com/brent20 "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Brenton Zillins (@bzillins)](https://github.com/bzillins "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Brian Cribbs (@cribbstechnologies)](https://github.com/cribbstechnologies "44 total commits to the home-assistant organization, 27 commits to home-assistant, 15 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
+- [Brent Saltzman (@brent20)](https://github.com/brent20 "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io")
+- [Brian Cribbs (@cribbstechnologies)](https://github.com/cribbstechnologies "43 total commits to the home-assistant organization, 26 commits to home-assistant, 15 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
- [Brian Fitzgerald (@Brianfit)](https://github.com/Brianfit "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Brian Gehrich (@bgehrich)](https://github.com/bgehrich "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Brian Hopkins (@btotharye)](https://github.com/btotharye "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Brian J King (@brianjking)](https://github.com/brianjking "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io")
-- [Brian Karani Ndwiga (@rayrayndwiga)](https://github.com/rayrayndwiga "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Brian Torres-Gil (@btorresgil)](https://github.com/btorresgil "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Brian Jinwright (@bjinwright)](https://github.com/bjinwright "159 total commits to the home-assistant organization, 159 commits to warrant")
- [Britton Clapp (@britton-clapp)](https://github.com/britton-clapp "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [BRUH Automation (@bruhautomation)](https://github.com/bruhautomation "3 total commits to the home-assistant organization, 3 commits to hassbian-scripts")
- [Bruno Adele (@badele)](https://github.com/badele "22 total commits to the home-assistant organization, 22 commits to home-assistant")
- [Bruno Binet (@bbinet)](https://github.com/bbinet "1 total commits to the home-assistant organization, 1 commit to hassio-build")
- [Bryce Edwards (@hoopty)](https://github.com/hoopty "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [c727 (@c727)](https://github.com/c727 "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [c727 (@c727)](https://github.com/c727 "18 total commits to the home-assistant organization, 11 commits to home-assistant-polymer, 7 commits to home-assistant.github.io")
- [Caius Cioran (@caiuspb)](https://github.com/caiuspb "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Caleb (@finish06)](https://github.com/finish06 "7 total commits to the home-assistant organization, 7 commits to home-assistant")
-- [Cameron Bulock (@cbulock)](https://github.com/cbulock "4 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant")
-- [Carlo Costanzo (@CCOSTAN)](https://github.com/CCOSTAN "89 total commits to the home-assistant organization, 81 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to fabric-home-assistant, 1 commit to homebridge-homeassistant, 1 commit to hassbian-scripts")
+- [Cameron Bulock (@cbulock)](https://github.com/cbulock "5 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to netdisco")
+- [Carlo Costanzo (@CCOSTAN)](https://github.com/CCOSTAN "95 total commits to the home-assistant organization, 87 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to fabric-home-assistant, 1 commit to homebridge-homeassistant, 1 commit to hassbian-scripts")
- [carlosmgr (@carlosmgr)](https://github.com/carlosmgr "6 total commits to the home-assistant organization, 6 commits to home-assistant")
-- [Carter (@BluGeni)](https://github.com/BluGeni "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Casper Weiss Bang (@C0DK)](https://github.com/C0DK "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [cdce8p (@cdce8p)](https://github.com/cdce8p "12 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 2 commits to home-assistant-polymer, 2 commits to home-assistant")
+- [Carter (@BluGeni)](https://github.com/BluGeni "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [cdce8p (@cdce8p)](https://github.com/cdce8p "21 total commits to the home-assistant organization, 12 commits to home-assistant.github.io, 7 commits to home-assistant, 2 commits to home-assistant-polymer")
- [Cecron (@Cecron)](https://github.com/Cecron "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [Cenk Gündoğan (@cgundogan)](https://github.com/cgundogan "1 total commits to the home-assistant organization, 1 commit to libcoap")
-- [cgtobi (@cgtobi)](https://github.com/cgtobi "11 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.github.io")
+- [Cezar Sá Espinola (@cezarsa)](https://github.com/cezarsa "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [cgtobi (@cgtobi)](https://github.com/cgtobi "22 total commits to the home-assistant organization, 13 commits to home-assistant, 9 commits to home-assistant.github.io")
- [chanders (@chanders)](https://github.com/chanders "2 total commits to the home-assistant organization, 2 commits to hadashboard")
- [Charles Blonde (@CharlesBlonde)](https://github.com/CharlesBlonde "19 total commits to the home-assistant organization, 12 commits to home-assistant, 7 commits to home-assistant.github.io")
-- [Charles Garwood (@cgarwood)](https://github.com/cgarwood "15 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 4 commits to home-assistant")
+- [Charles Garwood (@cgarwood)](https://github.com/cgarwood "17 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 6 commits to home-assistant")
- [Charles Spirakis (@srcLurker)](https://github.com/srcLurker "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Chayoung You (@yous)](https://github.com/yous "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Check your git settings! (@invalid-email-address)](https://github.com/invalid-email-address "1 total commits to the home-assistant organization, 1 commit to libcoap")
-- [Chema García (@sch3m4)](https://github.com/sch3m4 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Chia-liang Kao (@clkao)](https://github.com/clkao "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Chris (@firstof9)](https://github.com/firstof9 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Chris (@chennin)](https://github.com/chennin "15 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 4 commits to home-assistant")
- [Chris Aloi (@ctaloi)](https://github.com/ctaloi "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Chris Baumgartner (@mchrisb03)](https://github.com/mchrisb03 "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Chris Huegle (@chuegle)](https://github.com/chuegle "1 total commits to the home-assistant organization, 1 commit to netdisco")
-- [Chris Kacerguis (@chriskacerguis)](https://github.com/chriskacerguis "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [Chris Monteiro (@cmonteiro128)](https://github.com/cmonteiro128 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Chris Mulder (@chrisvis)](https://github.com/chrisvis "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Chris Smolen (@smolz)](https://github.com/smolz "10 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 4 commits to appdaemon")
-- [Chris Thorn (@chris-thorn)](https://github.com/chris-thorn "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
+- [Chris Thorn (@chris-thorn)](https://github.com/chris-thorn "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [ChrisS85 (@ChrisS85)](https://github.com/ChrisS85 "1 total commits to the home-assistant organization, 1 commit to hassio-build")
-- [Christiaan Blom (@Deinara)](https://github.com/Deinara "7 total commits to the home-assistant organization, 7 commits to home-assistant")
+- [Christiaan Blom (@Deinara)](https://github.com/Deinara "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Christian Brædstrup (@LinuxChristian)](https://github.com/LinuxChristian "8 total commits to the home-assistant organization, 8 commits to home-assistant")
- [Christian Lasarczyk (@ChrisLasar)](https://github.com/ChrisLasar "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Christian Studer (@cstuder)](https://github.com/cstuder "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [ChristianKuehnel (@ChristianKuehnel)](https://github.com/ChristianKuehnel "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
-- [Christoph Wagner (@Christoph-Wagner)](https://github.com/Christoph-Wagner "5 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 1 commit to home-assistant")
-- [Christopher Viel (@Chris-V)](https://github.com/Chris-V "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant")
+- [Christian Studer (@cstuder)](https://github.com/cstuder "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [ChristianKuehnel (@ChristianKuehnel)](https://github.com/ChristianKuehnel "15 total commits to the home-assistant organization, 8 commits to home-assistant, 7 commits to home-assistant.github.io")
+- [Christoffer Kylvåg (@christoe)](https://github.com/christoe "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Christoph Wagner (@Christoph-Wagner)](https://github.com/Christoph-Wagner "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Christopher Viel (@Chris-V)](https://github.com/Chris-V "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
- [chrysn (@chrysn)](https://github.com/chrysn "65 total commits to the home-assistant organization, 65 commits to libcoap")
- [chz^3 (@chzchzchz)](https://github.com/chzchzchz "1 total commits to the home-assistant organization, 1 commit to pi-gen")
- [Ciquattro (@CiquattroFPV)](https://github.com/CiquattroFPV "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [clach04 (@clach04)](https://github.com/clach04 "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Claus F. Strasburger (@cfstras)](https://github.com/cfstras "1 total commits to the home-assistant organization, 1 commit to pi-gen")
-- [Clemens Wolff (@c-w)](https://github.com/c-w "1 total commits to the home-assistant organization, 1 commit to home-assistant")
-- [Colin Dunn (@colindunn)](https://github.com/colindunn "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [cogneato (@cogneato)](https://github.com/cogneato "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Colin Dunn (@colindunn)](https://github.com/colindunn "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Colin O'Dell (@colinodell)](https://github.com/colinodell "24 total commits to the home-assistant organization, 13 commits to home-assistant, 11 commits to home-assistant.github.io")
-- [Conrad Juhl Andersen (@cnrd)](https://github.com/cnrd "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Colin Teubner (@netopiax)](https://github.com/netopiax "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Conrad Juhl Andersen (@cnrd)](https://github.com/cnrd "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Constantine Grantcharov (@conz27)](https://github.com/conz27 "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Constantine Poltyrev (@shprota)](https://github.com/shprota "1 total commits to the home-assistant organization, 1 commit to appdaemon")
-- [Corban Mailloux (@corbanmailloux)](https://github.com/corbanmailloux "19 total commits to the home-assistant organization, 18 commits to home-assistant.github.io, 1 commit to home-assistant")
+- [Corban Mailloux (@corbanmailloux)](https://github.com/corbanmailloux "18 total commits to the home-assistant organization, 18 commits to home-assistant.github.io")
+- [Corey Pauley (@devspacenine)](https://github.com/devspacenine "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [corneyl (@corneyl)](https://github.com/corneyl "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Craig J. Ward (@wardcraigj)](https://github.com/wardcraigj "14 total commits to the home-assistant organization, 9 commits to home-assistant, 5 commits to home-assistant.github.io")
-- [CTLS (@CTLS)](https://github.com/CTLS "1 total commits to the home-assistant organization, 1 commit to home-assistant")
+- [Craig J. Ward (@wardcraigj)](https://github.com/wardcraigj "23 total commits to the home-assistant organization, 17 commits to home-assistant, 6 commits to home-assistant.github.io")
+- [CTLS (@CTLS)](https://github.com/CTLS "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [cxlwill (@cxlwill)](https://github.com/cxlwill "2 total commits to the home-assistant organization, 2 commits to home-assistant-polymer")
- [Dale Higgs (@dale3h)](https://github.com/dale3h "33 total commits to the home-assistant organization, 21 commits to home-assistant.github.io, 10 commits to home-assistant, 1 commit to hassbot, 1 commit to homebridge-homeassistant")
- [Dan (@danieljkemp)](https://github.com/danieljkemp "23 total commits to the home-assistant organization, 16 commits to home-assistant, 7 commits to home-assistant.github.io")
+- [Dan Chen (@djchen)](https://github.com/djchen "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Dan Cinnamon (@Cinntax)](https://github.com/Cinntax "14 total commits to the home-assistant organization, 12 commits to home-assistant, 2 commits to home-assistant.github.io")
- [Dan Faulknor (@danielfaulknor)](https://github.com/danielfaulknor "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Dan Nixon (@DanNixon)](https://github.com/DanNixon "17 total commits to the home-assistant organization, 12 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Dan Ports (@drkp)](https://github.com/drkp "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [Dan Sarginson (@dansarginson)](https://github.com/dansarginson "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Dan Smith (@kk7ds)](https://github.com/kk7ds "84 total commits to the home-assistant organization, 68 commits to home-assistant, 14 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
- [Dan Sullivan (@dansullivan86)](https://github.com/dansullivan86 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Dani (@danichispa)](https://github.com/danichispa "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io")
+- [Daniel (@delneet)](https://github.com/delneet "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Daniel Escoz (@Darkhogg)](https://github.com/Darkhogg "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Daniel Høyer Iversen (@Danielhiversen)](https://github.com/Danielhiversen "362 total commits to the home-assistant organization, 241 commits to home-assistant, 119 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
-- [Daniel Perna (@danielperna84)](https://github.com/danielperna84 "65 total commits to the home-assistant organization, 34 commits to home-assistant.github.io, 29 commits to home-assistant, 2 commits to hassio-addons")
+- [Daniel Høyer Iversen (@Danielhiversen)](https://github.com/Danielhiversen "367 total commits to the home-assistant organization, 245 commits to home-assistant, 119 commits to home-assistant.github.io, 3 commits to home-assistant-polymer")
+- [Daniel Perna (@danielperna84)](https://github.com/danielperna84 "77 total commits to the home-assistant organization, 38 commits to home-assistant.github.io, 35 commits to home-assistant, 4 commits to hassio-addons")
- [Daniel Peukert (@dpeukert)](https://github.com/dpeukert "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Daniel Schaal (@schaal)](https://github.com/schaal "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Daniel Stone (@daniel-stoneuk)](https://github.com/daniel-stoneuk "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Daniel Trnka (@trnila)](https://github.com/trnila "2 total commits to the home-assistant organization, 2 commits to appdaemon")
-- [Daniel Watkins (@OddBloke)](https://github.com/OddBloke "4 total commits to the home-assistant organization, 4 commits to home-assistant-ansible")
+- [Daniel Watkins (@OddBloke)](https://github.com/OddBloke "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Daniel Welch (@danielwelch)](https://github.com/danielwelch "2 total commits to the home-assistant organization, 2 commits to homebridge-homeassistant")
- [DanielXYZ2000 (@DanielXYZ2000)](https://github.com/DanielXYZ2000 "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to hassio-addons")
- [Daniyar Yeralin (@yeralin)](https://github.com/yeralin "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
-- [dasos (@dasos)](https://github.com/dasos "10 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to netdisco")
+- [dasos (@dasos)](https://github.com/dasos "11 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to netdisco")
- [datafx (@datafx)](https://github.com/datafx "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Dave (@d4v3d)](https://github.com/d4v3d "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Dave Banks (@djbanks)](https://github.com/djbanks "2 total commits to the home-assistant organization, 2 commits to appdaemon")
- [Dave J (@kxtcd950)](https://github.com/kxtcd950 "3 total commits to the home-assistant organization, 3 commits to hassbian-scripts")
- [DaveSergeant (@dethpickle)](https://github.com/dethpickle "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [David (@fanaticDavid)](https://github.com/fanaticDavid "12 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 2 commits to home-assistant")
-- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [David Grant (@davegravy)](https://github.com/davegravy "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [David (@fanaticDavid)](https://github.com/fanaticDavid "13 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 2 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
+- [David Grant (@davegravy)](https://github.com/davegravy "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant")
- [David Jackson (@David-Jackson)](https://github.com/David-Jackson "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [David McNett (@nugget)](https://github.com/nugget "10 total commits to the home-assistant organization, 5 commits to home-assistant, 5 commits to home-assistant.github.io")
- [David Ohayon (@ohayon)](https://github.com/ohayon "3 total commits to the home-assistant organization, 3 commits to issue-bot")
@@ -258,94 +251,106 @@ This page contains a list of people who have contributed in one way or another t
- [Dawid Wróbel (@wrobelda)](https://github.com/wrobelda "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Dean Camera (@abcminiuser)](https://github.com/abcminiuser "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
- [deisi (@deisi)](https://github.com/deisi "10 total commits to the home-assistant organization, 10 commits to home-assistant")
+- [Delio Castillo (@jangeador)](https://github.com/jangeador "2 total commits to the home-assistant organization, 2 commits to hassio-addons")
+- [Demid Lupin (@lupin-de-mid)](https://github.com/lupin-de-mid "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Denix (@denics)](https://github.com/denics "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Dennis de Greef (@dennisdegreef)](https://github.com/dennisdegreef "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Dennis Karpienski (@TheRealLink)](https://github.com/TheRealLink "24 total commits to the home-assistant organization, 15 commits to home-assistant-polymer, 6 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to netdisco")
- [Dennis Sutch (@sutch)](https://github.com/sutch "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Derek (@itchaboy)](https://github.com/itchaboy "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Derek (@itchaboy)](https://github.com/itchaboy "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [Derek Brooks (@broox)](https://github.com/broox "39 total commits to the home-assistant organization, 30 commits to home-assistant, 9 commits to home-assistant.github.io")
- [dersger (@dersger)](https://github.com/dersger "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to home-assistant-polymer")
- [devdelay (@devdelay)](https://github.com/devdelay "16 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 5 commits to home-assistant, 4 commits to homebridge-homeassistant")
-- [Diogo Gomes (@dgomes)](https://github.com/dgomes "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Devon Peet (@dpeet)](https://github.com/dpeet "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [Diogo Gomes (@dgomes)](https://github.com/dgomes "10 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [DoloresHA (@DoloresHA)](https://github.com/DoloresHA "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Domantas (@Dohxis)](https://github.com/Dohxis "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Dougal Matthews (@d0ugal)](https://github.com/d0ugal "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
- [dramamoose (@dramamoose)](https://github.com/dramamoose "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [DrewSK (@dzsquared)](https://github.com/dzsquared "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
-- [DubhAd (@DubhAd)](https://github.com/DubhAd "47 total commits to the home-assistant organization, 47 commits to home-assistant.github.io")
+- [DubhAd (@DubhAd)](https://github.com/DubhAd "107 total commits to the home-assistant organization, 107 commits to home-assistant.github.io")
- [Duoxilian (@Duoxilian)](https://github.com/Duoxilian "11 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 5 commits to home-assistant")
+- [ebpetway (@ebpetway)](https://github.com/ebpetway "55 total commits to the home-assistant organization, 55 commits to warrant")
- [Edwin Smulders (@Dutchy-)](https://github.com/Dutchy- "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Egor Tsinko (@etsinko)](https://github.com/etsinko "7 total commits to the home-assistant organization, 5 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Egor Tsinko (@etsinko)](https://github.com/etsinko "12 total commits to the home-assistant organization, 9 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Eitan Mosenkis (@emosenkis)](https://github.com/emosenkis "6 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to netdisco")
+- [eldanb (@eldanb)](https://github.com/eldanb "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
- [Eleftherios Chamakiotis (@lexam79)](https://github.com/lexam79 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ellis Percival (@flyte)](https://github.com/flyte "31 total commits to the home-assistant organization, 25 commits to home-assistant, 6 commits to home-assistant.github.io")
- [Emil Horpen Hetty (@emilhetty)](https://github.com/emilhetty "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [emlt (@emlt)](https://github.com/emlt "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [endor-force (@endor-force)](https://github.com/endor-force "9 total commits to the home-assistant organization, 4 commits to hassio-addons, 4 commits to home-assistant.github.io, 1 commit to hassio-build")
- [engrbm87 (@engrbm87)](https://github.com/engrbm87 "3 total commits to the home-assistant organization, 3 commits to appdaemon")
-- [Eric Hagan (@ehagan)](https://github.com/ehagan "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Eric Hagan (@ehagan)](https://github.com/ehagan "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer")
- [Eric Oosting (@eoosting)](https://github.com/eoosting "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Eric Rolf (@xrolfex)](https://github.com/xrolfex "13 total commits to the home-assistant organization, 13 commits to home-assistant")
- [Eric Thompson (@er0ck)](https://github.com/er0ck "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Erik Eriksson (@molobrakos)](https://github.com/molobrakos "98 total commits to the home-assistant organization, 90 commits to home-assistant, 5 commits to home-assistant.github.io, 3 commits to netdisco")
+- [Erik Eriksson (@molobrakos)](https://github.com/molobrakos "111 total commits to the home-assistant organization, 97 commits to home-assistant, 11 commits to home-assistant.github.io, 3 commits to netdisco")
- [Erik-jan Riemers (@riemers)](https://github.com/riemers "13 total commits to the home-assistant organization, 13 commits to home-assistant.github.io")
- [ettisan (@ettisan)](https://github.com/ettisan "8 total commits to the home-assistant organization, 8 commits to home-assistant")
-- [Eugenio Panadero (@azogue)](https://github.com/azogue "73 total commits to the home-assistant organization, 44 commits to home-assistant, 23 commits to home-assistant.github.io, 3 commits to homebridge-homeassistant, 3 commits to home-assistant-polymer")
-- [Fabian Affolter (@fabaff)](https://github.com/fabaff "4325 total commits to the home-assistant organization, 2710 commits to home-assistant.github.io, 1411 commits to home-assistant, 61 commits to home-assistant-ansible, 29 commits to home-assistant-dev-helper, 29 commits to home-assistant-notebooks, 24 commits to home-assistant-assets, 24 commits to home-assistant-cli, 11 commits to hassio-build, 10 commits to home-assistant-polymer, 8 commits to netdisco, 5 commits to hassio-addons, 2 commits to hassio, 1 commit to home-assistant-js-websocket")
+- [Eugenio Panadero (@azogue)](https://github.com/azogue "76 total commits to the home-assistant organization, 45 commits to home-assistant, 25 commits to home-assistant.github.io, 3 commits to homebridge-homeassistant, 3 commits to home-assistant-polymer")
+- [Ezra Bowden (@bn0)](https://github.com/bn0 "2 total commits to the home-assistant organization, 2 commits to warrant")
+- [Fabian Affolter (@fabaff)](https://github.com/fabaff "4452 total commits to the home-assistant organization, 2870 commits to home-assistant.github.io, 1483 commits to home-assistant, 32 commits to home-assistant-assets, 30 commits to home-assistant-notebooks, 11 commits to hassio-build, 10 commits to home-assistant-polymer, 8 commits to netdisco, 5 commits to hassio-addons, 2 commits to hassio, 1 commit to home-assistant-js-websocket")
- [Fabian Heredia Montiel (@fabianhjr)](https://github.com/fabianhjr "4 total commits to the home-assistant organization, 4 commits to home-assistant")
+- [Fabrizio Furnari (@fabfurnari)](https://github.com/fabfurnari "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [fakezeta (@fakezeta)](https://github.com/fakezeta "7 total commits to the home-assistant organization, 7 commits to home-assistant")
- [Fares Rihani (@anchepiece)](https://github.com/anchepiece "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Felix (@xifle)](https://github.com/xifle "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Felix Krause (@KrauseFx)](https://github.com/KrauseFx "48 total commits to the home-assistant organization, 48 commits to issue-bot")
+- [Felix Krause (@KrauseFx)](https://github.com/KrauseFx "27 total commits to the home-assistant organization, 27 commits to issue-bot")
- [Ferry van Zeelst (@StaticCube)](https://github.com/StaticCube "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Finbarr Brady (@fbradyirl)](https://github.com/fbradyirl "8 total commits to the home-assistant organization, 8 commits to home-assistant")
-- [Florian Holzapfel (@florianholzapfel)](https://github.com/florianholzapfel "11 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 4 commits to home-assistant, 3 commits to netdisco")
-- [Florian Klien (@flowolf)](https://github.com/flowolf "11 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 3 commits to home-assistant")
-- [florincosta (@florincosta)](https://github.com/florincosta "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
+- [Florian Holzapfel (@florianholzapfel)](https://github.com/florianholzapfel "11 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to netdisco")
+- [Florian Klien (@flowolf)](https://github.com/flowolf "16 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 3 commits to home-assistant")
+- [florianj1 (@florianj1)](https://github.com/florianj1 "1 total commits to the home-assistant organization, 1 commit to hassio")
+- [florincosta (@florincosta)](https://github.com/florincosta "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Fonta (@f0nt4)](https://github.com/f0nt4 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
-- [Franck Nijhof (@frenck)](https://github.com/frenck "13 total commits to the home-assistant organization, 12 commits to home-assistant.github.io, 1 commit to hassio")
+- [Franck Nijhof (@frenck)](https://github.com/frenck "17 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 2 commits to hassio, 2 commits to home-assistant-polymer")
- [Frank (@syphernl)](https://github.com/syphernl "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [Frantz (@rofrantz)](https://github.com/rofrantz "2 total commits to the home-assistant organization, 2 commits to netdisco")
-- [François Martin (@martinfrancois)](https://github.com/martinfrancois "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Frantz (@rofrantz)](https://github.com/rofrantz "7 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to netdisco, 2 commits to home-assistant.github.io")
- [Frederic Hemberger (@fhemberger)](https://github.com/fhemberger "93 total commits to the home-assistant organization, 93 commits to home-assistant.github.io")
- [Fredrik Fjeld (@fredrikfjeld)](https://github.com/fredrikfjeld "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Fredrik Lindqvist (@Landrash)](https://github.com/Landrash "175 total commits to the home-assistant organization, 74 commits to hassbian-scripts, 69 commits to home-assistant.github.io, 27 commits to pi-gen, 4 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Fredrik Lindqvist (@Landrash)](https://github.com/Landrash "176 total commits to the home-assistant organization, 74 commits to hassbian-scripts, 70 commits to home-assistant.github.io, 27 commits to pi-gen, 4 commits to home-assistant, 1 commit to home-assistant-polymer")
- [freol35241 (@freol35241)](https://github.com/freol35241 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [froz (@froz)](https://github.com/froz "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [fuga2136 (@fuga2136)](https://github.com/fuga2136 "13 total commits to the home-assistant organization, 13 commits to home-assistant.github.io")
-- [Gabor Gulyas (@gaborgulyas)](https://github.com/gaborgulyas "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Gabor SZOLLOSI (@szogi)](https://github.com/szogi "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to appdaemon")
- [GadgetReactor (@GadgetReactor)](https://github.com/GadgetReactor "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Gavin Mogan (@halkeye)](https://github.com/halkeye "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Geoff Norton (@kangaroo)](https://github.com/kangaroo "14 total commits to the home-assistant organization, 14 commits to home-assistant")
- [George.M (@nodinosaur)](https://github.com/nodinosaur "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant")
-- [Georgi Kirichkov (@kirichkov)](https://github.com/kirichkov "16 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to appdaemon")
-- [Georgi Yanev (@jumpalottahigh)](https://github.com/jumpalottahigh "4 total commits to the home-assistant organization, 2 commits to home-assistant-polymer, 2 commits to home-assistant.github.io")
+- [Georgi Kirichkov (@kirichkov)](https://github.com/kirichkov "17 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to appdaemon")
+- [Georgi Yanev (@jumpalottahigh)](https://github.com/jumpalottahigh "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
- [Georgii Staroselskii (@staroselskii)](https://github.com/staroselskii "1 total commits to the home-assistant organization, 1 commit to pi-gen")
+- [gerard33 (@gerard33)](https://github.com/gerard33 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Gergely Imreh (@imrehg)](https://github.com/imrehg "16 total commits to the home-assistant organization, 11 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Gianluca Barbaro (@MrMep)](https://github.com/MrMep "24 total commits to the home-assistant organization, 16 commits to home-assistant, 8 commits to home-assistant.github.io")
- [Gianpaolo Macario (@gmacario)](https://github.com/gmacario "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Giel Janssens (@gieljnssns)](https://github.com/gieljnssns "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Giel Janssens (@gieljnssns)](https://github.com/gieljnssns "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 commits to home-assistant.github.io")
- [githubbuh (@githubbuh)](https://github.com/githubbuh "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [gitmopp (@gitmopp)](https://github.com/gitmopp "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [GMFalka (@GMFalka)](https://github.com/GMFalka "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Gopal Kildoliya (@gopalkildoliya)](https://github.com/gopalkildoliya "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 commits to home-assistant.github.io")
- [Graeme Smith (@Instagraeme)](https://github.com/Instagraeme "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [GreenTurtwig (@GreenTurtwig)](https://github.com/GreenTurtwig "80 total commits to the home-assistant organization, 73 commits to home-assistant.github.io, 7 commits to home-assistant")
-- [Greg Dowling (@pavoni)](https://github.com/pavoni "250 total commits to the home-assistant organization, 223 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to netdisco")
-- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Grant McConnaughey (@grantmcconnaughey)](https://github.com/grantmcconnaughey "8 total commits to the home-assistant organization, 8 commits to warrant")
+- [GreenTurtwig (@GreenTurtwig)](https://github.com/GreenTurtwig "83 total commits to the home-assistant organization, 75 commits to home-assistant.github.io, 8 commits to home-assistant")
+- [Greg Dowling (@pavoni)](https://github.com/pavoni "251 total commits to the home-assistant organization, 224 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to netdisco")
+- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Greg MacLellan (@gregmac)](https://github.com/gregmac "1 total commits to the home-assistant organization, 1 commit to pi-gen")
- [Greg Stengel (@theCMack)](https://github.com/theCMack "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Greg Stevenson (@gstevenson)](https://github.com/gstevenson "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Greg. A. (@gautric)](https://github.com/gautric "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [groth-its (@groth-its)](https://github.com/groth-its "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [GTH (@gunnarhelgason)](https://github.com/gunnarhelgason "2 total commits to the home-assistant organization, 2 commits to appdaemon")
+- [Guillaume Rischard (@grischard)](https://github.com/grischard "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Gustav Ahlberg (@Gyran)](https://github.com/Gyran "20 total commits to the home-assistant organization, 20 commits to home-assistant")
- [gwendalg (@gwendalg)](https://github.com/gwendalg "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Hajime Morrita (@omo)](https://github.com/omo "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Hamid (@hamid-elaosta)](https://github.com/hamid-elaosta "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Hamid (@hamid-elaosta)](https://github.com/hamid-elaosta "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Hao Hu (@howiehu)](https://github.com/howiehu "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [happyleavesaoc (@happyleavesaoc)](https://github.com/happyleavesaoc "109 total commits to the home-assistant organization, 86 commits to home-assistant, 22 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Harald Nagel (@haraldnagel)](https://github.com/haraldnagel "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to home-assistant.github.io")
- [Hari Menon (@floydpink)](https://github.com/floydpink "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Harris Borawski (@hborawski)](https://github.com/hborawski "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [hawk259 (@hawk259)](https://github.com/hawk259 "8 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [hawk259 (@hawk259)](https://github.com/hawk259 "10 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Heath Paddock (@heathbar)](https://github.com/heathbar "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Heiko Rothe (@mKeRix)](https://github.com/mKeRix "20 total commits to the home-assistant organization, 15 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Hellowlol (@Hellowlol)](https://github.com/Hellowlol "4 total commits to the home-assistant organization, 3 commits to netdisco, 1 commit to appdaemon")
@@ -354,21 +359,20 @@ This page contains a list of people who have contributed in one way or another t
- [Henrik Aronsson (@heennkkee)](https://github.com/heennkkee "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Henrik Nicolaisen (@hmn)](https://github.com/hmn "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Hernán Rossetto (@hmronline)](https://github.com/hmronline "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [hexa- (@mweinelt)](https://github.com/mweinelt "17 total commits to the home-assistant organization, 9 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [heytcass (@heytcass)](https://github.com/heytcass "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Hillary Fraley (@hillaryfraley)](https://github.com/hillaryfraley "12 total commits to the home-assistant organization, 12 commits to home-assistant.github.io")
-- [honcheng (@honcheng)](https://github.com/honcheng "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
-- [Hugo Dupras (@jabesq)](https://github.com/jabesq "27 total commits to the home-assistant organization, 19 commits to home-assistant, 8 commits to home-assistant.github.io")
-- [Hugo Gresse (@HugoGresse)](https://github.com/HugoGresse "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
+- [honcheng (@honcheng)](https://github.com/honcheng "2 total commits to the home-assistant organization, 2 commits to homebridge-homeassistant")
+- [Hugo Dupras (@jabesq)](https://github.com/jabesq "28 total commits to the home-assistant organization, 20 commits to home-assistant, 8 commits to home-assistant.github.io")
+- [Hugo Gresse (@HugoGresse)](https://github.com/HugoGresse "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
- [Hung Le (@hungle)](https://github.com/hungle "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Huw Davies (@beardedgeek)](https://github.com/beardedgeek "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Hydreliox (@HydrelioxGitHub)](https://github.com/HydrelioxGitHub "45 total commits to the home-assistant organization, 34 commits to home-assistant, 11 commits to home-assistant.github.io")
+- [Hydreliox (@HydrelioxGitHub)](https://github.com/HydrelioxGitHub "46 total commits to the home-assistant organization, 34 commits to home-assistant, 12 commits to home-assistant.github.io")
- [Iain Matchett (@matchett808)](https://github.com/matchett808 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ian Copp (@icopp)](https://github.com/icopp "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [ianj001 (@ianj001)](https://github.com/ianj001 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
-- [icovada (@icovada)](https://github.com/icovada "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
-- [Igor Shults (@ishults)](https://github.com/ishults "11 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
-- [Ioan Loosley (@ioangogo)](https://github.com/ioangogo "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [icovada (@icovada)](https://github.com/icovada "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Igor Shults (@ishults)](https://github.com/ishults "12 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Ioan Loosley (@ioangogo)](https://github.com/ioangogo "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [IoTmessenger (@IoTmessenger)](https://github.com/IoTmessenger "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Issac Kelly (@issackelly)](https://github.com/issackelly "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [J-CMartin (@J-CMartin)](https://github.com/J-CMartin "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
@@ -385,19 +389,19 @@ This page contains a list of people who have contributed in one way or another t
- [James Cole (@jamespcole)](https://github.com/jamespcole "94 total commits to the home-assistant organization, 93 commits to home-assistant, 1 commit to home-assistant-js")
- [Jamie van Dyke (@fearoffish)](https://github.com/fearoffish "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-iOS")
- [JammyDodger231 (@JammyDodger231)](https://github.com/JammyDodger231 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
-- [Jan Almeroth (@jalmeroth)](https://github.com/jalmeroth "6 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Jan Almeroth (@jalmeroth)](https://github.com/jalmeroth "8 total commits to the home-assistant organization, 5 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Jan Harkes (@jaharkes)](https://github.com/jaharkes "110 total commits to the home-assistant organization, 100 commits to home-assistant, 10 commits to netdisco")
-- [Jan Losinski (@janLo)](https://github.com/janLo "18 total commits to the home-assistant organization, 14 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [Jan Losinski (@janLo)](https://github.com/janLo "21 total commits to the home-assistant organization, 16 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Jan Pobořil (@iBobik)](https://github.com/iBobik "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Jan Wh (@janwh)](https://github.com/janwh "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Janne Grunau (@jannau)](https://github.com/jannau "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Jared Beckham (@jtbeckha)](https://github.com/jtbeckha "4 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 2 commits to home-assistant")
+- [Jan Willhaus (@janwh)](https://github.com/janwh "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Janne Grunau (@jannau)](https://github.com/jannau "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Jared Beckham (@jtbeckha)](https://github.com/jtbeckha "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
- [Jared J. (@jjensn)](https://github.com/jjensn "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [Jason Carter (@JasonCarter80)](https://github.com/JasonCarter80 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Jason Hite (@jasonmhite)](https://github.com/jasonmhite "6 total commits to the home-assistant organization, 6 commits to appdaemon")
- [Javier González Calleja (@gonzalezcalleja)](https://github.com/gonzalezcalleja "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Jay Stevens (@Jay2645)](https://github.com/Jay2645 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [jbarrancos (@jbarrancos)](https://github.com/jbarrancos "39 total commits to the home-assistant organization, 39 commits to home-assistant")
+- [JAYMAN-ATX (@JAYMAN-ATX)](https://github.com/JAYMAN-ATX "2 total commits to the home-assistant organization, 2 commits to homebridge-homeassistant")
- [Jean Regisser (@jeanregisser)](https://github.com/jeanregisser "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Jean-Michel Julien (@KurdyMalloy)](https://github.com/KurdyMalloy "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Jean-Philippe Bouillot (@Jypy)](https://github.com/Jypy "2 total commits to the home-assistant organization, 2 commits to home-assistant")
@@ -408,32 +412,35 @@ This page contains a list of people who have contributed in one way or another t
- [Jens (@jhoepken)](https://github.com/jhoepken "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Jeremiah Wuenschel (@jer)](https://github.com/jer "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Jeremy (@Wutname1)](https://github.com/Wutname1 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Jeremy Williams (@jwillaz)](https://github.com/jwillaz "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Jeremy Williams (@jwillaz)](https://github.com/jwillaz "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [jeremysv (@jeremysv)](https://github.com/jeremysv "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Jeroen ter Heerdt (@jeroenterheerdt)](https://github.com/jeroenterheerdt "19 total commits to the home-assistant organization, 12 commits to home-assistant, 7 commits to home-assistant.github.io")
+- [Jeroen ter Heerdt (@jeroenterheerdt)](https://github.com/jeroenterheerdt "29 total commits to the home-assistant organization, 16 commits to home-assistant, 13 commits to home-assistant.github.io")
- [Jerold Albertson (@jeroldalbertson-wf)](https://github.com/jeroldalbertson-wf "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [Jerry Workman (@JerryWorkman)](https://github.com/JerryWorkman "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Jesse Hills (@jesserockz)](https://github.com/jesserockz "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Jesse Newland (@jnewland)](https://github.com/jnewland "14 total commits to the home-assistant organization, 11 commits to home-assistant, 3 commits to hubot-home-assistant")
-- [JesseWebDotCom (@JesseWebDotCom)](https://github.com/JesseWebDotCom "16 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 8 commits to home-assistant")
+- [JesseWebDotCom (@JesseWebDotCom)](https://github.com/JesseWebDotCom "16 total commits to the home-assistant organization, 8 commits to home-assistant, 8 commits to home-assistant.github.io")
- [jgrieger1 (@jgrieger1)](https://github.com/jgrieger1 "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [jgriff2 (@jgriff2)](https://github.com/jgriff2 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Jim Rollenhagen (@jimrollenhagen)](https://github.com/jimrollenhagen "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [jimbob1001 (@jimbob1001)](https://github.com/jimbob1001 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [Joakim Nohlgård (@gebart)](https://github.com/gebart "2 total commits to the home-assistant organization, 2 commits to libcoap")
-- [Joakim Sørensen (@ludeeus)](https://github.com/ludeeus "27 total commits to the home-assistant organization, 14 commits to hassbian-scripts, 13 commits to home-assistant.github.io")
+- [Joakim Sørensen (@ludeeus)](https://github.com/ludeeus "28 total commits to the home-assistant organization, 15 commits to hassbian-scripts, 13 commits to home-assistant.github.io")
- [Job (@jmvermeulen)](https://github.com/jmvermeulen "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [jodur (@jodur)](https://github.com/jodur "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Joe Lee (@xnoodle)](https://github.com/xnoodle "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Joe Lu (@snjoetw)](https://github.com/snjoetw "10 total commits to the home-assistant organization, 8 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Joe Lu (@snjoetw)](https://github.com/snjoetw "12 total commits to the home-assistant organization, 9 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Joe McMonagle (@joemcmonagle)](https://github.com/joemcmonagle "12 total commits to the home-assistant organization, 12 commits to home-assistant.github.io")
- [joe248 (@joe248)](https://github.com/joe248 "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Joeboyc2 (@Joeboyc2)](https://github.com/Joeboyc2 "15 total commits to the home-assistant organization, 15 commits to home-assistant.github.io")
-- [joemcmonagle (@joemcmonagle)](https://github.com/joemcmonagle "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
- [Johan Bloemberg (@aequitas)](https://github.com/aequitas "43 total commits to the home-assistant organization, 35 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to netdisco")
-- [Johan Haals (@jhaals)](https://github.com/jhaals "1 total commits to the home-assistant organization, 1 commit to appdaemon")
+- [Johan Haals (@jhaals)](https://github.com/jhaals "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to appdaemon")
- [Johan Klintberg (@moogblob)](https://github.com/moogblob "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Johan van der Kuijl (@Rubyan)](https://github.com/Rubyan "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to appdaemon")
+- [Johan van der Kuijl (@Rubyan)](https://github.com/Rubyan "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to appdaemon")
- [Johann Kellerman (@kellerza)](https://github.com/kellerza "144 total commits to the home-assistant organization, 114 commits to home-assistant, 30 commits to home-assistant.github.io")
- [Johannes K. (@roadrash2108)](https://github.com/roadrash2108 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [John (@J-C-B)](https://github.com/J-C-B "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [John Arild Berentsen (@turbokongen)](https://github.com/turbokongen "185 total commits to the home-assistant organization, 143 commits to home-assistant, 33 commits to home-assistant.github.io, 9 commits to home-assistant-polymer")
+- [John Arild Berentsen (@turbokongen)](https://github.com/turbokongen "200 total commits to the home-assistant organization, 148 commits to home-assistant, 37 commits to home-assistant.github.io, 15 commits to home-assistant-polymer")
- [John Coggeshall (@coogle)](https://github.com/coogle "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [John Lindley (@jwl17330536)](https://github.com/jwl17330536 "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [John McLaughlin (@loghound)](https://github.com/loghound "2 total commits to the home-assistant organization, 2 commits to home-assistant")
@@ -441,24 +448,27 @@ This page contains a list of people who have contributed in one way or another t
- [Johnny Chadda (@joch)](https://github.com/joch "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Jon (@JonMurphy)](https://github.com/JonMurphy "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Jon Caruana (@joncar)](https://github.com/joncar "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Jon Griffith (@arretx)](https://github.com/arretx "11 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 1 commit to appdaemon")
- [Jon Maddox (@maddox)](https://github.com/maddox "102 total commits to the home-assistant organization, 78 commits to home-assistant, 16 commits to homebridge-homeassistant, 8 commits to home-assistant.github.io")
- [Jonas Pedersen (@JonasPed)](https://github.com/JonasPed "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [Jonatan Castro (@jcastro)](https://github.com/jcastro "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [Jonathan Baginski (@patchedsoul)](https://github.com/patchedsoul "115 total commits to the home-assistant organization, 87 commits to fabric-home-assistant, 28 commits to home-assistant.github.io")
- [joopert (@joopert)](https://github.com/joopert "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Jordi (@hokus15)](https://github.com/hokus15 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Jordy (@jbarrancos)](https://github.com/jbarrancos "40 total commits to the home-assistant organization, 40 commits to home-assistant")
- [Jose Juan Montes (@jjmontesl)](https://github.com/jjmontesl "9 total commits to the home-assistant organization, 6 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Joseph Carter (@iKarith)](https://github.com/iKarith "9 total commits to the home-assistant organization, 9 commits to pi-gen")
- [Joseph Piron (@eagleamon)](https://github.com/eagleamon "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Josh (@karlw00t)](https://github.com/karlw00t "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Josh Anderson (@andersonshatch)](https://github.com/andersonshatch "6 total commits to the home-assistant organization, 3 commits to homebridge-homeassistant, 3 commits to home-assistant")
-- [Josh Nichols (@technicalpickles)](https://github.com/technicalpickles "24 total commits to the home-assistant organization, 15 commits to home-assistant, 9 commits to home-assistant.github.io")
+- [Josh Anderson (@andersonshatch)](https://github.com/andersonshatch "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to homebridge-homeassistant")
+- [Josh Nichols (@technicalpickles)](https://github.com/technicalpickles "28 total commits to the home-assistant organization, 15 commits to home-assistant, 13 commits to home-assistant.github.io")
- [Josh Wright (@JshWright)](https://github.com/JshWright "28 total commits to the home-assistant organization, 20 commits to home-assistant, 8 commits to home-assistant.github.io")
- [jpcomtois (@jpcomtois)](https://github.com/jpcomtois "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [JudgeDredd (@JudgeDreddKLC)](https://github.com/JudgeDreddKLC "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io")
- [Juggels (@Juggels)](https://github.com/Juggels "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io")
-- [Julian Kahnert (@JulianKahnert)](https://github.com/JulianKahnert "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Julius Mittenzwei (@Julius2342)](https://github.com/Julius2342 "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Julian Kaffke (@jaykay)](https://github.com/jaykay "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
+- [Julian Kahnert (@JulianKahnert)](https://github.com/JulianKahnert "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
+- [Julius Mittenzwei (@Julius2342)](https://github.com/Julius2342 "18 total commits to the home-assistant organization, 12 commits to home-assistant, 6 commits to home-assistant.github.io")
- [jumpkick (@jumpkick)](https://github.com/jumpkick "15 total commits to the home-assistant organization, 12 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Justin Dray (@justin8)](https://github.com/justin8 "9 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Justin Hayes (@GussyH)](https://github.com/GussyH "7 total commits to the home-assistant organization, 7 commits to hadashboard")
@@ -466,7 +476,7 @@ This page contains a list of people who have contributed in one way or another t
- [Justyn Shull (@justyns)](https://github.com/justyns "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [Jürgen W (@jurgenweber)](https://github.com/jurgenweber "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Kai (@luxus)](https://github.com/luxus "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Kane610 (@Kane610)](https://github.com/Kane610 "13 total commits to the home-assistant organization, 6 commits to home-assistant, 6 commits to home-assistant.github.io, 1 commit to netdisco")
+- [Kane610 (@Kane610)](https://github.com/Kane610 "18 total commits to the home-assistant organization, 8 commits to home-assistant, 8 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant-polymer")
- [Karen Goode (@kfgoode)](https://github.com/kfgoode "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [karlkar (@karlkar)](https://github.com/karlkar "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Keaton Taylor (@keatontaylor)](https://github.com/keatontaylor "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
@@ -474,318 +484,300 @@ This page contains a list of people who have contributed in one way or another t
- [Keith Lamprecht (@Nixon506E)](https://github.com/Nixon506E "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Ken Bannister (@kb2ma)](https://github.com/kb2ma "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Ken Davidson (@kwdavidson)](https://github.com/kwdavidson "13 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 2 commits to appdaemon")
+- [Kenny Millington (@kmdm)](https://github.com/kmdm "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Kevin (@Mister-Espria)](https://github.com/Mister-Espria "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Kevin Christensen (@nivekmai)](https://github.com/nivekmai "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Kevin Fronczak (@fronzbot)](https://github.com/fronzbot "18 total commits to the home-assistant organization, 11 commits to home-assistant, 7 commits to home-assistant.github.io")
+- [Kevin Delaney (@kevindelaney)](https://github.com/kevindelaney "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Kevin Fronczak (@fronzbot)](https://github.com/fronzbot "19 total commits to the home-assistant organization, 11 commits to home-assistant, 8 commits to home-assistant.github.io")
- [Kevin Gisi (@gisikw)](https://github.com/gisikw "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Kevin Gottsman (@gottsman)](https://github.com/gottsman "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
-- [Kevin Panaro (@kevinpanaro)](https://github.com/kevinpanaro "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Kevin Siml (@appzer)](https://github.com/appzer "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Keyasha Brothern (@KMBrothern)](https://github.com/KMBrothern "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [kfcook (@kfcook)](https://github.com/kfcook "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [kireyeu (@kireyeu)](https://github.com/kireyeu "4 total commits to the home-assistant organization, 4 commits to home-assistant-notebooks")
-- [Klaas Hoekema (@KlaasH)](https://github.com/KlaasH "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [Klaas Hoekema (@KlaasH)](https://github.com/KlaasH "12 total commits to the home-assistant organization, 5 commits to home-assistant, 5 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
- [Klaus (@k-laus)](https://github.com/k-laus "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [Krasimir Chariyski (@Chariyski)](https://github.com/Chariyski "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [Krasimir Zhelev (@zhelev)](https://github.com/zhelev "1 total commits to the home-assistant organization, 1 commit to netdisco")
-- [Kyle Decot (@kyledecot)](https://github.com/kyledecot "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Kyle Gordon (@kylegordon)](https://github.com/kylegordon "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [kroimon (@kroimon)](https://github.com/kroimon "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [Kyle Hendricks (@kylehendricks)](https://github.com/kylehendricks "6 total commits to the home-assistant organization, 6 commits to home-assistant")
-- [Kyle R (@qcryptic)](https://github.com/qcryptic "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [lamiskin (@lamiskin)](https://github.com/lamiskin "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [lamiskin (@lamiskin)](https://github.com/lamiskin "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Lars Englund (@larsenglund)](https://github.com/larsenglund "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [lee-js (@lee-js)](https://github.com/lee-js "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Leon99 (@Leon99)](https://github.com/Leon99 "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to appdaemon")
+- [Leon99 (@Leon99)](https://github.com/Leon99 "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [Leonardo Saraiva (@vyper)](https://github.com/vyper "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Lev Aronsky (@aronsky)](https://github.com/aronsky "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io")
-- [Lewis Juggins (@lwis)](https://github.com/lwis "61 total commits to the home-assistant organization, 48 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Lewis Juggins (@lwis)](https://github.com/lwis "64 total commits to the home-assistant organization, 51 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [lichtteil (@lichtteil)](https://github.com/lichtteil "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Lindsay Ward (@lindsaymarkward)](https://github.com/lindsaymarkward "17 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 4 commits to home-assistant")
- [linuxlurak (@linuxlurak)](https://github.com/linuxlurak "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to hadashboard")
+- [linvinus (@linvinus)](https://github.com/linvinus "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [lrmate (@lrmate)](https://github.com/lrmate "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Luar Roji (@cyberplant)](https://github.com/cyberplant "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant")
- [luca-angemi (@luca-angemi)](https://github.com/luca-angemi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [LucaSoldi (@LucaSoldi)](https://github.com/LucaSoldi "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Lucien Guimier (@guimier)](https://github.com/guimier "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Ludovic (@ldvc)](https://github.com/ldvc "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Ludovico de Nittis (@RyuzakiKK)](https://github.com/RyuzakiKK "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Lukas (@lukas-hetzenecker)](https://github.com/lukas-hetzenecker "14 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.github.io")
-- [Lukas Barth (@tinloaf)](https://github.com/tinloaf "15 total commits to the home-assistant organization, 7 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Lukas Barth (@tinloaf)](https://github.com/tinloaf "27 total commits to the home-assistant organization, 15 commits to home-assistant, 10 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
+- [Lukas Ecklmayr (@outrun0506)](https://github.com/outrun0506 "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Lukas Porubcan (@Luc3as)](https://github.com/Luc3as "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Luke Armstrong (@lukearmstrong)](https://github.com/lukearmstrong "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Lupin Demid (@lupin-de-mid)](https://github.com/lupin-de-mid "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
-- [Luuk (@Maharball1)](https://github.com/Maharball1 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [LvivEchoes (@LvivEchoes)](https://github.com/LvivEchoes "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
-- [Maciej Bieniek (@bieniu)](https://github.com/bieniu "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to home-assistant-polymer")
-- [Maciej Sokołowski (@matemaciek)](https://github.com/matemaciek "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to hassio-build")
+- [LvivEchoes (@LvivEchoes)](https://github.com/LvivEchoes "8 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Maarten Groeneweg (@lazytesting)](https://github.com/lazytesting "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
+- [Maciej Bieniek (@bieniu)](https://github.com/bieniu "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Maciej Sokołowski (@matemaciek)](https://github.com/matemaciek "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to hassio-build")
- [Maciej Wasilak (@mwasilak)](https://github.com/mwasilak "1 total commits to the home-assistant organization, 1 commit to libcoap")
- [Magnus Ihse Bursie (@magicus)](https://github.com/magicus "16 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to netdisco, 3 commits to home-assistant.github.io")
- [Magnus Lyckå (@magnus-lycka)](https://github.com/magnus-lycka "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [MagnusKnutas (@MagnusKnutas)](https://github.com/MagnusKnutas "29 total commits to the home-assistant organization, 29 commits to home-assistant")
-- [Mahasri Kalavala (@skalavala)](https://github.com/skalavala "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
+- [Mahasri Kalavala (@skalavala)](https://github.com/skalavala "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io")
- [Maikel Wever (@maikelwever)](https://github.com/maikelwever "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Malte Franken (@exxamalte)](https://github.com/exxamalte "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Manu (@matrixagent)](https://github.com/matrixagent "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Marc Egli (@frog32)](https://github.com/frog32 "9 total commits to the home-assistant organization, 7 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Marc Forth (@mf-social)](https://github.com/mf-social "11 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 1 commit to fabric-home-assistant")
+- [Marc Egli (@frog32)](https://github.com/frog32 "7 total commits to the home-assistant organization, 7 commits to home-assistant")
+- [Marc Forth (@mf-social)](https://github.com/mf-social "13 total commits to the home-assistant organization, 12 commits to home-assistant.github.io, 1 commit to fabric-home-assistant")
- [Marc Pabst (@mxtra)](https://github.com/mxtra "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Marc Plano-Lesay (@Kernald)](https://github.com/Kernald "12 total commits to the home-assistant organization, 10 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Marcel030nl (@Marcel030nl)](https://github.com/Marcel030nl "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Marcelo Moreira de Mello (@tchellomello)](https://github.com/tchellomello "132 total commits to the home-assistant organization, 72 commits to home-assistant, 58 commits to home-assistant.github.io, 1 commit to home-assistant-assets, 1 commit to home-assistant-polymer")
+- [Marcelo Moreira de Mello (@tchellomello)](https://github.com/tchellomello "140 total commits to the home-assistant organization, 77 commits to home-assistant, 61 commits to home-assistant.github.io, 1 commit to home-assistant-assets, 1 commit to home-assistant-polymer")
- [Marcin Jaworski (@yawor)](https://github.com/yawor "12 total commits to the home-assistant organization, 12 commits to appdaemon")
-- [Marijn Giesen (@marijngiesen)](https://github.com/marijngiesen "7 total commits to the home-assistant organization, 5 commits to hadashboard, 2 commits to home-assistant.github.io")
+- [Marcus Schmidt (@mar-schmidt)](https://github.com/mar-schmidt "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Marijn Giesen (@marijngiesen)](https://github.com/marijngiesen "5 total commits to the home-assistant organization, 5 commits to hadashboard")
+- [Marius (@ciotlosm)](https://github.com/ciotlosm "6 total commits to the home-assistant organization, 4 commits to home-assistant-polymer, 2 commits to home-assistant")
+- [Mark Coombes (@marthoc)](https://github.com/marthoc "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Mark Grosen (@mgsb)](https://github.com/mgsb "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [Mark Huson (@mehuman)](https://github.com/mehuman "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io")
-- [Mark Oude Veldhuis (@markoudev)](https://github.com/markoudev "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Markus (@iMarkus)](https://github.com/iMarkus "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to hassio")
- [Markus Becker (@markushx)](https://github.com/markushx "6 total commits to the home-assistant organization, 6 commits to libcoap")
-- [Markus Lipp (@LightIsLife)](https://github.com/LightIsLife "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Markus Peter (@bimbar)](https://github.com/bimbar "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Markus Peter (@bimbar)](https://github.com/bimbar "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Markus Stenberg (@fingon)](https://github.com/fingon "6 total commits to the home-assistant organization, 6 commits to home-assistant")
-- [marthoc (@marthoc)](https://github.com/marthoc "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Martin Berg (@mbrrg)](https://github.com/mbrrg "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Martin Donlon (@wickerwaka)](https://github.com/wickerwaka "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Martin Eberhardt (@DarkFox)](https://github.com/DarkFox "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "138 total commits to the home-assistant organization, 112 commits to home-assistant, 26 commits to home-assistant.github.io")
-- [Martin Rowan (@shortbloke)](https://github.com/shortbloke "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Martin Berg (@mbrrg)](https://github.com/mbrrg "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Martin Donlon (@wickerwaka)](https://github.com/wickerwaka "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Martin Eberhardt (@DarkFox)](https://github.com/DarkFox "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "143 total commits to the home-assistant organization, 114 commits to home-assistant, 29 commits to home-assistant.github.io")
- [Martin Vacula (@MatoKafkac)](https://github.com/MatoKafkac "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Martin Weinelt (@mweinelt)](https://github.com/mweinelt "17 total commits to the home-assistant organization, 9 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Martokk (@martokk)](https://github.com/martokk "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Mathew Peterson (@mathewpeterson)](https://github.com/mathewpeterson "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to homebridge-homeassistant")
-- [Matt N. (@mnoorenberghe)](https://github.com/mnoorenberghe "47 total commits to the home-assistant organization, 23 commits to home-assistant-iOS, 16 commits to home-assistant.github.io, 7 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Mateusz Drab (@mateuszdrab)](https://github.com/mateuszdrab "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Mathew Peterson (@mathewpeterson)](https://github.com/mathewpeterson "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
+- [Matt N. (@mnoorenberghe)](https://github.com/mnoorenberghe "52 total commits to the home-assistant organization, 24 commits to home-assistant-iOS, 17 commits to home-assistant.github.io, 9 commits to home-assistant, 1 commit to homebridge-homeassistant, 1 commit to home-assistant-polymer")
- [Matt Rogers (@rogersmj)](https://github.com/rogersmj "20 total commits to the home-assistant organization, 20 commits to hadashboard")
-- [Matt Schmitt (@schmittx)](https://github.com/schmittx "26 total commits to the home-assistant organization, 19 commits to homebridge-homeassistant, 5 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Matt White (@mw-white)](https://github.com/mw-white "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
-- [matt2005 (@matt2005)](https://github.com/matt2005 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Matt Schmitt (@schmittx)](https://github.com/schmittx "37 total commits to the home-assistant organization, 23 commits to homebridge-homeassistant, 7 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to home-assistant-polymer")
+- [Matt White (@mw-white)](https://github.com/mw-white "10 total commits to the home-assistant organization, 5 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Matteo Lampugnani (@t30)](https://github.com/t30 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [Matthew Bowen (@mgbowen)](https://github.com/mgbowen "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Matthew Garrett (@mjg59)](https://github.com/mjg59 "10 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Matthew Schick (@mattsch)](https://github.com/mattsch "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Matthew Treinish (@mtreinish)](https://github.com/mtreinish "16 total commits to the home-assistant organization, 10 commits to home-assistant, 6 commits to home-assistant.github.io")
+- [Matthew Treinish (@mtreinish)](https://github.com/mtreinish "20 total commits to the home-assistant organization, 13 commits to home-assistant, 7 commits to home-assistant.github.io")
- [mattie47 (@mattie47)](https://github.com/mattie47 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [mauriciobonani (@mauriciobonani)](https://github.com/mauriciobonani "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
+- [mauriciobonani (@mauriciobonani)](https://github.com/mauriciobonani "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [Max Rumpf (@Maxr1998)](https://github.com/Maxr1998 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [maxlaverse (@maxlaverse)](https://github.com/maxlaverse "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [mboeru (@mboeru)](https://github.com/mboeru "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS")
+- [Menno Blom (@b10m)](https://github.com/b10m "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant, 1 commit to netdisco")
- [mertenats (@mertenats)](https://github.com/mertenats "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [Micha LaQua (@milaq)](https://github.com/milaq "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Michael (@hartmms)](https://github.com/hartmms "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Michael Auchter (@auchter)](https://github.com/auchter "13 total commits to the home-assistant organization, 13 commits to home-assistant")
-- [Michael Buffington (@elbowdonkey)](https://github.com/elbowdonkey "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Michael Fester (@michaelfester)](https://github.com/michaelfester "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Michael Furtak (@mfurtak)](https://github.com/mfurtak "5 total commits to the home-assistant organization, 5 commits to issue-bot")
- [Michael Gilbert (@Zyell)](https://github.com/Zyell "8 total commits to the home-assistant organization, 8 commits to home-assistant")
- [Michael Heinemann (@heinemml)](https://github.com/heinemml "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Michael Kutý (@michaelkuty)](https://github.com/michaelkuty "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Michael Luggen (@l00mi)](https://github.com/l00mi "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [Michael Prokop (@mika)](https://github.com/mika "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Michael Requeny (@requenym)](https://github.com/requenym "14 total commits to the home-assistant organization, 14 commits to home-assistant.github.io")
- [Michael Shim (@shimeez)](https://github.com/shimeez "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant")
- [Michaël Arnauts (@michaelarnauts)](https://github.com/michaelarnauts "61 total commits to the home-assistant organization, 31 commits to home-assistant, 26 commits to home-assistant.github.io, 3 commits to home-assistant-polymer, 1 commit to netdisco")
-- [Michel Settembrino (@MS-Informatique)](https://github.com/MS-Informatique "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Michel Settembrino (@Michel-Settembrino)](https://github.com/Michel-Settembrino "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [micw (@micw)](https://github.com/micw "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io")
-- [Miha Lunar (@SmilyOrg)](https://github.com/SmilyOrg "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Mikael Bergemalm (@bergemalm)](https://github.com/bergemalm "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Mikayla Hutchinson (@mhutch)](https://github.com/mhutch "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Mike Christianson (@MikeChristianson)](https://github.com/MikeChristianson "6 total commits to the home-assistant organization, 6 commits to home-assistant")
-- [Mike G Chambers (@mikegchambers)](https://github.com/mikegchambers "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Mike Megally (@cmsimike)](https://github.com/cmsimike "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Mike Megally (@cmsimike)](https://github.com/cmsimike "7 total commits to the home-assistant organization, 7 commits to home-assistant")
- [Mike Nestor (@mnestor)](https://github.com/mnestor "6 total commits to the home-assistant organization, 5 commits to home-assistant, 1 commit to home-assistant-polymer")
- [Mike Roberts (@m-roberts)](https://github.com/m-roberts "1 total commits to the home-assistant organization, 1 commit to pi-gen")
-- [mikey (@pfista)](https://github.com/pfista "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Mikkel Høgh (@mikl)](https://github.com/mikl "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Milan V. (@milanvo)](https://github.com/milanvo "11 total commits to the home-assistant organization, 5 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
-- [MinchinWeb (@MinchinWeb)](https://github.com/MinchinWeb "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Milan V. (@milanvo)](https://github.com/milanvo "18 total commits to the home-assistant organization, 10 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [miniconfig (@miniconfig)](https://github.com/miniconfig "27 total commits to the home-assistant organization, 20 commits to home-assistant, 7 commits to home-assistant.github.io")
- [Minims (@Minims)](https://github.com/Minims "3 total commits to the home-assistant organization, 3 commits to homebridge-homeassistant")
-- [Mister Wil (@MisterWil)](https://github.com/MisterWil "16 total commits to the home-assistant organization, 10 commits to home-assistant, 6 commits to home-assistant.github.io")
-- [Mitchell Cash (@mitchellcash)](https://github.com/mitchellcash "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Mister Wil (@MisterWil)](https://github.com/MisterWil "17 total commits to the home-assistant organization, 11 commits to home-assistant, 6 commits to home-assistant.github.io")
- [Mitesh Patel (@gurumitts)](https://github.com/gurumitts "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io")
-- [Mitko Masarliev (@masarliev)](https://github.com/masarliev "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [mje-nz (@mje-nz)](https://github.com/mje-nz "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Mitko Masarliev (@masarliev)](https://github.com/masarliev "10 total commits to the home-assistant organization, 7 commits to home-assistant, 3 commits to home-assistant.github.io")
- [mjj4791 (@mjj4791)](https://github.com/mjj4791 "22 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 7 commits to home-assistant")
+- [mmmmmtasty (@mmmmmtasty)](https://github.com/mmmmmtasty "8 total commits to the home-assistant organization, 8 commits to appdaemon")
- [Molodax (@Molodax)](https://github.com/Molodax "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [Moon Shot (@moonshot)](https://github.com/moonshot "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [moose51789 (@moose51789)](https://github.com/moose51789 "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
- [motir (@motir)](https://github.com/motir "1 total commits to the home-assistant organization, 1 commit to appdaemon")
-- [mtl010957 (@mtl010957)](https://github.com/mtl010957 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Mārtiņš Grunskis (@grunskis)](https://github.com/grunskis "1 total commits to the home-assistant organization, 1 commit to netdisco")
-- [Naren Salem (@naren8642)](https://github.com/naren8642 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Nate (@BillyNate)](https://github.com/BillyNate "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Nathan Flynn (@eperdeme)](https://github.com/eperdeme "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
-- [Nathan Henrie (@n8henrie)](https://github.com/n8henrie "18 total commits to the home-assistant organization, 8 commits to home-assistant, 6 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant, 1 commit to appdaemon, 1 commit to home-assistant-polymer")
+- [Nathan Henrie (@n8henrie)](https://github.com/n8henrie "19 total commits to the home-assistant organization, 9 commits to home-assistant, 6 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant, 1 commit to home-assistant-polymer, 1 commit to appdaemon")
- [Neil Lathwood (@laf)](https://github.com/laf "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Nelis Willers (@NelisW)](https://github.com/NelisW "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant")
-- [NeLLyMerC (@NeLLyMerC)](https://github.com/NeLLyMerC "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Nemanja Stefanovic (@nemik)](https://github.com/nemik "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [NeLLyMerC (@NeLLyMerC)](https://github.com/NeLLyMerC "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [neonbunny (@neonbunny)](https://github.com/neonbunny "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Nicholas Amadori (@namadori)](https://github.com/namadori "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Nicholas Griffin (@nicholasgriffintn)](https://github.com/nicholasgriffintn "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
-- [Nicholas Sielicki (@sielicki)](https://github.com/sielicki "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Nick (@quadportnick)](https://github.com/quadportnick "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Nick Vella (@nvella)](https://github.com/nvella "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to homebridge-homeassistant")
-- [Nick Waring (@nickwaring)](https://github.com/nickwaring "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Nicholas Sielicki (@sielicki)](https://github.com/sielicki "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Nick (@quadportnick)](https://github.com/quadportnick "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Nick Touran (@partofthething)](https://github.com/partofthething "38 total commits to the home-assistant organization, 25 commits to home-assistant, 13 commits to home-assistant.github.io")
+- [Nick Waring (@nickwaring)](https://github.com/nickwaring "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Nicolas Graziano (@ngraziano)](https://github.com/ngraziano "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Nicolas Martignoni (@martignoni)](https://github.com/martignoni "1 total commits to the home-assistant organization, 1 commit to pi-gen")
-- [Niklas (@niklaswa)](https://github.com/niklaswa "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Niklas Morberg (@morberg)](https://github.com/morberg "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Nikolas Beutler (@biacz)](https://github.com/biacz "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Nils Uliczka (@darookee)](https://github.com/darookee "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [NMA (@nma83)](https://github.com/nma83 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [nodomain (@nodomain)](https://github.com/nodomain "9 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant")
-- [Nolan Gilley (@nkgilley)](https://github.com/nkgilley "116 total commits to the home-assistant organization, 91 commits to home-assistant, 25 commits to home-assistant.github.io")
+- [Nigel Rook (@NigelRook)](https://github.com/NigelRook "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
+- [Niklas (@niklaswa)](https://github.com/niklaswa "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Nikolas Beutler (@biacz)](https://github.com/biacz "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Nolan Gilley (@nkgilley)](https://github.com/nkgilley "119 total commits to the home-assistant organization, 93 commits to home-assistant, 26 commits to home-assistant.github.io")
- [NotoriousBDG (@notoriousbdg)](https://github.com/notoriousbdg "3 total commits to the home-assistant organization, 3 commits to hassio-addons")
-- [ntalekt (@ntalekt)](https://github.com/ntalekt "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Nuno Sousa (@nunofgs)](https://github.com/nunofgs "7 total commits to the home-assistant organization, 4 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to homebridge-homeassistant")
+- [NovapaX (@NovapaX)](https://github.com/NovapaX "9 total commits to the home-assistant organization, 4 commits to home-assistant-polymer, 4 commits to home-assistant, 1 commit to home-assistant-assets")
+- [ntalekt (@ntalekt)](https://github.com/ntalekt "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
+- [Nuno Sousa (@nunofgs)](https://github.com/nunofgs "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to homebridge-homeassistant")
- [obgm (@obgm)](https://github.com/obgm "480 total commits to the home-assistant organization, 480 commits to libcoap")
-- [Olav Alexander Mjelde (@olavxxx)](https://github.com/olavxxx "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [OLD PROFILE! Go to /dennisreimann (@dbloete)](https://github.com/dbloete "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [Ole-Kenneth (@olekenneth)](https://github.com/olekenneth "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
-- [Oleksii Serdiuk (@leppa)](https://github.com/leppa "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [Oleksii Serdiuk (@leppa)](https://github.com/leppa "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Oliv3rDog (@Oliv3rDog)](https://github.com/Oliv3rDog "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Oliver (@scarface-4711)](https://github.com/scarface-4711 "23 total commits to the home-assistant organization, 13 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to netdisco")
+- [Oliver (@scarface-4711)](https://github.com/scarface-4711 "24 total commits to the home-assistant organization, 14 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to netdisco")
- [Oliver van Porten (@mcdeck)](https://github.com/mcdeck "10 total commits to the home-assistant organization, 10 commits to home-assistant")
-- [olskar (@olskar)](https://github.com/olskar "5 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 1 commit to hassbian-scripts")
-- [Omar Usman (@omarusman)](https://github.com/omarusman "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Open Home Automation (@open-homeautomation)](https://github.com/open-homeautomation "41 total commits to the home-assistant organization, 29 commits to home-assistant, 12 commits to home-assistant.github.io")
+- [Otto Winter (@OttoWinter)](https://github.com/OttoWinter "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [oznu (@oznu)](https://github.com/oznu "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
-- [Parker Moore (@parkr)](https://github.com/parkr "62 total commits to the home-assistant organization, 62 commits to home-assistant.github.io")
+- [Parker Moore (@parkr)](https://github.com/parkr "60 total commits to the home-assistant organization, 60 commits to home-assistant.github.io")
- [pascal (@passie)](https://github.com/passie "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer")
- [Pascal Bach (@bachp)](https://github.com/bachp "10 total commits to the home-assistant organization, 9 commits to home-assistant, 1 commit to netdisco")
-- [Pascal Vizeli (@pvizeli)](https://github.com/pvizeli "2154 total commits to the home-assistant organization, 840 commits to hassio, 411 commits to home-assistant, 300 commits to hassio-addons, 298 commits to hassio-build, 287 commits to home-assistant.github.io, 16 commits to hassio-addons-example, 1 commit to home-assistant-js-websocket, 1 commit to netdisco")
-- [patkap (@patkap)](https://github.com/patkap "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Pascal Vizeli (@pvizeli)](https://github.com/pvizeli "2335 total commits to the home-assistant organization, 917 commits to hassio, 446 commits to home-assistant, 323 commits to hassio-build, 315 commits to hassio-addons, 305 commits to home-assistant.github.io, 16 commits to hassio-addons-example, 10 commits to hassio-cli, 1 commit to netdisco, 1 commit to home-assistant-js-websocket, 1 commit to hassio-os")
- [Patrick Aikens (@duckpuppy)](https://github.com/duckpuppy "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Patrick Easters (@patrickeasters)](https://github.com/patrickeasters "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Patrick White (@pw)](https://github.com/pw "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Patrik (@ggravlingen)](https://github.com/ggravlingen "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Paul Jimenez (@pjz)](https://github.com/pjz "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Patrik (@ggravlingen)](https://github.com/ggravlingen "8 total commits to the home-assistant organization, 5 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Paul Hendry (@pshendry)](https://github.com/pshendry "1 total commits to the home-assistant organization, 1 commit to warrant")
- [Paul Sokolovsky (@pfalcon)](https://github.com/pfalcon "6 total commits to the home-assistant organization, 3 commits to netdisco, 3 commits to home-assistant")
- [Pavel Ponomarev (@awsum)](https://github.com/awsum "2 total commits to the home-assistant organization, 2 commits to home-assistant-polymer")
- [PawelWMS (@PawelWMS)](https://github.com/PawelWMS "12 total commits to the home-assistant organization, 12 commits to libcoap")
- [Pedro Navarro (@pedronavf)](https://github.com/pedronavf "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Pedro Pombeiro (@PombeirP)](https://github.com/PombeirP "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Per Osbäck (@perosb)](https://github.com/perosb "5 total commits to the home-assistant organization, 5 commits to home-assistant")
+- [Per Osbäck (@perosb)](https://github.com/perosb "12 total commits to the home-assistant organization, 12 commits to home-assistant")
- [Per Sandström (@persandstrom)](https://github.com/persandstrom "124 total commits to the home-assistant organization, 98 commits to home-assistant, 14 commits to home-assistant.github.io, 12 commits to home-assistant-polymer")
- [Pete Peterson (@petey)](https://github.com/petey "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [PetePriority (@PetePriority)](https://github.com/PetePriority "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Peter Epley (@epleypa)](https://github.com/epleypa "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [PeteBa (@PeteBa)](https://github.com/PeteBa "6 total commits to the home-assistant organization, 5 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Peter Epley (@epleypa)](https://github.com/epleypa "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
- [Petr Vraník (@konikvranik)](https://github.com/konikvranik "11 total commits to the home-assistant organization, 6 commits to home-assistant, 5 commits to home-assistant.github.io")
- [pezinek (@pezinek)](https://github.com/pezinek "8 total commits to the home-assistant organization, 8 commits to home-assistant")
- [Phil (@godloth)](https://github.com/godloth "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io")
- [Phil Cole (@filcole)](https://github.com/filcole "8 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 3 commits to home-assistant")
- [Phil Haack (@Haacked)](https://github.com/Haacked "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Phil Hawthorne (@philhawthorne)](https://github.com/philhawthorne "23 total commits to the home-assistant organization, 17 commits to home-assistant.github.io, 6 commits to home-assistant")
-- [Phil Kates (@philk)](https://github.com/philk "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Phileep (@Phileep)](https://github.com/Phileep "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Phil Hawthorne (@philhawthorne)](https://github.com/philhawthorne "24 total commits to the home-assistant organization, 18 commits to home-assistant.github.io, 6 commits to home-assistant")
+- [Phil Kates (@philk)](https://github.com/philk "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [Philip Hofstetter (@pilif)](https://github.com/pilif "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
- [Philip Lundrigan (@philipbl)](https://github.com/philipbl "65 total commits to the home-assistant organization, 56 commits to home-assistant, 9 commits to home-assistant.github.io")
-- [Philipp Schmitt (@pschmitt)](https://github.com/pschmitt "36 total commits to the home-assistant organization, 23 commits to home-assistant, 11 commits to home-assistant.github.io, 1 commit to appdaemon, 1 commit to hassio-build")
-- [Phill Price (@phillprice)](https://github.com/phillprice "10 total commits to the home-assistant organization, 10 commits to home-assistant.github.io")
-- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "15 total commits to the home-assistant organization, 7 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
-- [Pierre Ståhl (@postlund)](https://github.com/postlund "37 total commits to the home-assistant organization, 25 commits to home-assistant, 8 commits to home-assistant.github.io, 4 commits to netdisco")
+- [Philipp Schmitt (@pschmitt)](https://github.com/pschmitt "37 total commits to the home-assistant organization, 24 commits to home-assistant, 11 commits to home-assistant.github.io, 1 commit to hassio-build, 1 commit to appdaemon")
+- [Phill Price (@phillprice)](https://github.com/phillprice "11 total commits to the home-assistant organization, 11 commits to home-assistant.github.io")
+- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "25 total commits to the home-assistant organization, 15 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Pierre Ståhl (@postlund)](https://github.com/postlund "45 total commits to the home-assistant organization, 30 commits to home-assistant, 9 commits to home-assistant.github.io, 4 commits to netdisco, 2 commits to home-assistant-polymer")
- [Piratonym (@Piratonym)](https://github.com/Piratonym "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [pkonnekermetametrics (@pkonnekermetametrics)](https://github.com/pkonnekermetametrics "5 total commits to the home-assistant organization, 5 commits to warrant")
- [PuckStar (@PuckStar)](https://github.com/PuckStar "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
-- [R Huish (@Genestealer)](https://github.com/Genestealer "19 total commits to the home-assistant organization, 19 commits to home-assistant.github.io")
-- [rbflurry (@rbflurry)](https://github.com/rbflurry "14 total commits to the home-assistant organization, 11 commits to home-assistant.github.io, 3 commits to home-assistant")
-- [RBHR (@rbhr)](https://github.com/rbhr "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [R Huish (@Genestealer)](https://github.com/Genestealer "20 total commits to the home-assistant organization, 20 commits to home-assistant.github.io")
+- [Rasmus (@rasmusbe)](https://github.com/rasmusbe "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [rbflurry (@rbflurry)](https://github.com/rbflurry "16 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 3 commits to home-assistant")
- [Reed Riley (@reedriley)](https://github.com/reedriley "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Rene Tode (@ReneTode)](https://github.com/ReneTode "25 total commits to the home-assistant organization, 25 commits to appdaemon")
+- [Rendili (@Rendili)](https://github.com/Rendili "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Rene Tode (@ReneTode)](https://github.com/ReneTode "38 total commits to the home-assistant organization, 38 commits to appdaemon")
- [René Kliment (@renekliment)](https://github.com/renekliment "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Rev Michael Greb (@mikegrb)](https://github.com/mikegrb "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Reza Moallemi (@moallemi)](https://github.com/moallemi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [rhooper (@rhooper)](https://github.com/rhooper "30 total commits to the home-assistant organization, 25 commits to home-assistant, 3 commits to home-assistant.github.io, 2 commits to hadashboard")
+- [rhooper (@rhooper)](https://github.com/rhooper "27 total commits to the home-assistant organization, 25 commits to home-assistant, 2 commits to hadashboard")
- [Riccardo Canta (@commento)](https://github.com/commento "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Richard Arends (@Mosibi)](https://github.com/Mosibi "8 total commits to the home-assistant organization, 8 commits to home-assistant")
- [Richard Cox (@Khabi)](https://github.com/Khabi "15 total commits to the home-assistant organization, 9 commits to home-assistant, 6 commits to home-assistant.github.io")
-- [Richard Cunningham (@rythie)](https://github.com/rythie "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Richard Leurs (@R1chardTM)](https://github.com/R1chardTM "13 total commits to the home-assistant organization, 7 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
+- [Richard Leurs (@R1chardTM)](https://github.com/R1chardTM "15 total commits to the home-assistant organization, 8 commits to home-assistant, 6 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [rkabadi (@rkabadi)](https://github.com/rkabadi "17 total commits to the home-assistant organization, 17 commits to home-assistant")
- [Rob Capellini (@capellini)](https://github.com/capellini "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Rob Slifka (@rslifka)](https://github.com/rslifka "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
-- [Robbie Trencheny (@robbiet480)](https://github.com/robbiet480 "1223 total commits to the home-assistant organization, 553 commits to home-assistant-iOS, 255 commits to home-assistant, 247 commits to home-assistant.github.io, 90 commits to homebridge-homeassistant, 15 commits to home-assistant-polymer, 9 commits to hubot-home-assistant, 8 commits to Analytics-Receiver, 6 commits to netdisco, 3 commits to hadashboard, 3 commits to hassbot, 3 commits to scenegen, 3 commits to home-assistant-cli, 3 commits to home-assistant-js, 3 commits to appdaemon, 3 commits to home-assistant-js-websocket, 3 commits to organization, 2 commits to home-assistant-ansible, 2 commits to home-assistant-dev-helper, 2 commits to home-assistant-notebooks, 2 commits to lambda-home-assistant-github, 2 commits to fabric-home-assistant, 2 commits to home-assistant-assets, 2 commits to micropython-home-assistant, 2 commits to LabelBot")
+- [Robbie Trencheny (@robbiet480)](https://github.com/robbiet480 "1315 total commits to the home-assistant organization, 646 commits to home-assistant-iOS, 259 commits to home-assistant, 248 commits to home-assistant.github.io, 91 commits to homebridge-homeassistant, 15 commits to home-assistant-polymer, 9 commits to hubot-home-assistant, 8 commits to Analytics-Receiver, 6 commits to netdisco, 3 commits to hassbot, 3 commits to hadashboard, 3 commits to home-assistant-js-websocket, 3 commits to appdaemon, 3 commits to home-assistant-js, 3 commits to scenegen, 3 commits to organization, 2 commits to LabelBot, 2 commits to home-assistant-assets, 2 commits to fabric-home-assistant, 2 commits to home-assistant-notebooks, 2 commits to micropython-home-assistant, 2 commits to lambda-home-assistant-github")
- [Robby Grossman (@freerobby)](https://github.com/freerobby "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Robin (@robmarkcole)](https://github.com/robmarkcole "13 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 5 commits to home-assistant")
+- [Robin (@robmarkcole)](https://github.com/robmarkcole "16 total commits to the home-assistant organization, 9 commits to home-assistant.github.io, 6 commits to home-assistant, 1 commit to home-assistant-assets")
- [Robin Laurén (@llauren)](https://github.com/llauren "1 total commits to the home-assistant organization, 1 commit to appdaemon")
- [Roddie Hasan (@eiddor)](https://github.com/eiddor "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io")
- [Roi Dayan (@roidayan)](https://github.com/roidayan "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [roiff (@roiff)](https://github.com/roiff "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
- [Ron Klinkien (@cyberjunky)](https://github.com/cyberjunky "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
-- [Ronald Dehuysser (@rdehuyss)](https://github.com/rdehuyss "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Ron Miller (@brainyron)](https://github.com/brainyron "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
- [roqeer (@roqeer)](https://github.com/roqeer "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Ross Dargan (@rossdargan)](https://github.com/rossdargan "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ross Schulman (@rschulman)](https://github.com/rschulman "1 total commits to the home-assistant organization, 1 commit to pi-gen")
- [rpitera (@rpitera)](https://github.com/rpitera "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
- [rubund (@rubund)](https://github.com/rubund "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [runningman84 (@runningman84)](https://github.com/runningman84 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
-- [RunOnGitHub (@RunOnGitHub)](https://github.com/RunOnGitHub "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Ruslan Kiianchuk (@zoresvit)](https://github.com/zoresvit "1 total commits to the home-assistant organization, 1 commit to pi-gen")
-- [Russell Cloran (@rcloran)](https://github.com/rcloran "21 total commits to the home-assistant organization, 15 commits to home-assistant, 4 commits to homebridge-homeassistant, 2 commits to home-assistant.github.io")
+- [Ruslan Kiyanchuk (@zoresvit)](https://github.com/zoresvit "1 total commits to the home-assistant organization, 1 commit to pi-gen")
+- [Russell Cloran (@rcloran)](https://github.com/rcloran "19 total commits to the home-assistant organization, 15 commits to home-assistant, 4 commits to homebridge-homeassistant")
- [Ryan Bahm (@rdbahm)](https://github.com/rdbahm "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Ryan Borstelmann (@SlothCroissant)](https://github.com/SlothCroissant "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Ryan Bray (@rbray89)](https://github.com/rbray89 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Ryan Daigle (@rwdaigle)](https://github.com/rwdaigle "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Ryan Kraus (@rmkraus)](https://github.com/rmkraus "195 total commits to the home-assistant organization, 163 commits to home-assistant, 17 commits to home-assistant.github.io, 14 commits to home-assistant-polymer, 1 commit to home-assistant-notebooks")
-- [Ryan McLean (@ryanm101)](https://github.com/ryanm101 "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [Ryan Parrish (@stickystyle)](https://github.com/stickystyle "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Ryan Kraus (@rmkraus)](https://github.com/rmkraus "193 total commits to the home-assistant organization, 163 commits to home-assistant, 15 commits to home-assistant.github.io, 14 commits to home-assistant-polymer, 1 commit to home-assistant-notebooks")
+- [Ryan McLean (@ryanm101)](https://github.com/ryanm101 "47 total commits to the home-assistant organization, 35 commits to hassio-cli, 7 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Ryan Turner (@turnrye)](https://github.com/turnrye "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Sabesto (@Sabesto)](https://github.com/Sabesto "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Sacha Telgenhof (@stelgenhof)](https://github.com/stelgenhof "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [Sam Birch (@hotplot)](https://github.com/hotplot "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Sam Holmes (@sam3d)](https://github.com/sam3d "4 total commits to the home-assistant organization, 4 commits to pi-gen")
-- [Sam Jongenelen (@SamJongenelen)](https://github.com/SamJongenelen "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [Sam Whited (@SamWhited)](https://github.com/SamWhited "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
- [sam-io (@sam-io)](https://github.com/sam-io "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Samuel Bétrisey (@betrisey)](https://github.com/betrisey "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [sander76 (@sander76)](https://github.com/sander76 "40 total commits to the home-assistant organization, 36 commits to home-assistant, 4 commits to home-assistant.github.io")
-- [Schmackos (@Schmackos)](https://github.com/Schmackos "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
-- [schneefux (@schneefux)](https://github.com/schneefux "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Scott Bradshaw (@swbradshaw)](https://github.com/swbradshaw "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io")
+- [sander76 (@sander76)](https://github.com/sander76 "41 total commits to the home-assistant organization, 37 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [Scott Bradshaw (@swbradshaw)](https://github.com/swbradshaw "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Scott Griffin (@scottocs11)](https://github.com/scottocs11 "7 total commits to the home-assistant organization, 7 commits to home-assistant.github.io")
- [Scott O'Neil (@americanwookie)](https://github.com/americanwookie "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Scott Reston (@ih8gates)](https://github.com/ih8gates "9 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 1 commit to home-assistant-polymer")
- [Sean Dague (@sdague)](https://github.com/sdague "64 total commits to the home-assistant organization, 44 commits to home-assistant, 11 commits to home-assistant.github.io, 5 commits to home-assistant-polymer, 3 commits to netdisco, 1 commit to home-assistant-js")
- [Sean Gollschewsky (@gollo)](https://github.com/gollo "17 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.github.io, 3 commits to hassio-build")
+- [Sean Wilson (@swilson)](https://github.com/swilson "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Sebastian (@sebk-666)](https://github.com/sebk-666 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Sebastian (@sgso)](https://github.com/sgso "3 total commits to the home-assistant organization, 3 commits to libcoap")
-- [Sebastian Muszynski (@syssi)](https://github.com/syssi "32 total commits to the home-assistant organization, 16 commits to home-assistant, 14 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
+- [Sebastian Muszynski (@syssi)](https://github.com/syssi "42 total commits to the home-assistant organization, 21 commits to home-assistant, 19 commits to home-assistant.github.io, 2 commits to home-assistant-polymer")
- [Sebastian von Minckwitz (@teodoc)](https://github.com/teodoc "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Semir Patel (@analogue)](https://github.com/analogue "2 total commits to the home-assistant organization, 2 commits to appdaemon")
-- [Sergey Isachenko (@zabuldon)](https://github.com/zabuldon "8 total commits to the home-assistant organization, 6 commits to home-assistant, 2 commits to home-assistant.github.io")
-- [sfam (@sfam)](https://github.com/sfam "65 total commits to the home-assistant organization, 58 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to home-assistant-polymer, 1 commit to netdisco")
-- [sharukins (@sharukins)](https://github.com/sharukins "2 total commits to the home-assistant organization, 2 commits to hassio-build")
-- [Shawna O'Neal (@cherrykoda)](https://github.com/cherrykoda "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Sergey Isachenko (@zabuldon)](https://github.com/zabuldon "6 total commits to the home-assistant organization, 6 commits to home-assistant")
+- [Sergey Vishnikin (@armicron)](https://github.com/armicron "33 total commits to the home-assistant organization, 33 commits to warrant")
+- [sfam (@sfam)](https://github.com/sfam "65 total commits to the home-assistant organization, 58 commits to home-assistant, 5 commits to home-assistant.github.io, 1 commit to netdisco, 1 commit to home-assistant-polymer")
+- [sharukins (@sharukins)](https://github.com/sharukins "3 total commits to the home-assistant organization, 3 commits to hassio-build")
- [Shiny (@Br3nda)](https://github.com/Br3nda "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [siebert (@siebert)](https://github.com/siebert "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Simon Elsbrock (@else)](https://github.com/else "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io")
+- [Simon (@echox)](https://github.com/echox "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Simon Szustkowski (@simonszu)](https://github.com/simonszu "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant")
- [Sjors Spoorendonk (@sjorsjes)](https://github.com/sjorsjes "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [sjoshi10 (@sjoshi10)](https://github.com/sjoshi10 "1 total commits to the home-assistant organization, 1 commit to warrant")
- [snizzleorg (@snizzleorg)](https://github.com/snizzleorg "5 total commits to the home-assistant organization, 5 commits to hadashboard")
- [St. John Johnson (@stjohnjohnson)](https://github.com/stjohnjohnson "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io")
-- [Stefan Jonasson (@stefan-jonasson)](https://github.com/stefan-jonasson "10 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [Stefan Jonasson (@stefan-jonasson)](https://github.com/stefan-jonasson "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io")
- [Stefano Scipioni (@scipioni)](https://github.com/scipioni "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Stephen Edgar (@ntwb)](https://github.com/ntwb "1 total commits to the home-assistant organization, 1 commit to fabric-home-assistant")
- [Stephen Hoekstra (@shoekstra)](https://github.com/shoekstra "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Stephen Yeargin (@stephenyeargin)](https://github.com/stephenyeargin "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Steven Looman (@StevenLooman)](https://github.com/StevenLooman "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Stu Gott (@stu-gott)](https://github.com/stu-gott "9 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 4 commits to home-assistant")
- [Stuart Mumford (@Cadair)](https://github.com/Cadair "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [swanwila (@swanwila)](https://github.com/swanwila "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [System Tester (@systemtester)](https://github.com/systemtester "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Sytone (@sytone)](https://github.com/sytone "11 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant-cli, 2 commits to home-assistant, 1 commit to hassio-build")
+- [Sytone (@sytone)](https://github.com/sytone "9 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 2 commits to home-assistant, 1 commit to hassio-build")
- [Sébastien RAMAGE (@doudz)](https://github.com/doudz "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Sören Oldag (@soldag)](https://github.com/soldag "15 total commits to the home-assistant organization, 8 commits to home-assistant.github.io, 7 commits to home-assistant")
-- [Taylor Peet (@RePeet13)](https://github.com/RePeet13 "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io")
+- [Taylor Peet (@RePeet13)](https://github.com/RePeet13 "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io")
- [Teagan Glenn (@Teagan42)](https://github.com/Teagan42 "59 total commits to the home-assistant organization, 49 commits to home-assistant, 9 commits to home-assistant.github.io, 1 commit to home-assistant-js")
-- [Ted Drain (@TD22057)](https://github.com/TD22057 "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Ted Drain (@TD22057)](https://github.com/TD22057 "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [tedstriker (@tedstriker)](https://github.com/tedstriker "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [Teemu Mikkonen (@T3m3z)](https://github.com/T3m3z "3 total commits to the home-assistant organization, 3 commits to home-assistant")
- [Teemu Patja (@tpatja)](https://github.com/tpatja "2 total commits to the home-assistant organization, 2 commits to home-assistant")
-- [Teemu R. (@rytilahti)](https://github.com/rytilahti "42 total commits to the home-assistant organization, 33 commits to home-assistant, 7 commits to home-assistant.github.io, 2 commits to netdisco")
+- [Teemu R. (@rytilahti)](https://github.com/rytilahti "44 total commits to the home-assistant organization, 35 commits to home-assistant, 7 commits to home-assistant.github.io, 2 commits to netdisco")
- [Teguh Sobirin (@tjstyle)](https://github.com/tjstyle "2 total commits to the home-assistant organization, 2 commits to pi-gen")
- [Tentoe (@Tentoe)](https://github.com/Tentoe "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Theb-1 (@Theb-1)](https://github.com/Theb-1 "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [thecynic (@thecynic)](https://github.com/thecynic "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [Theodor Lindquist (@theolind)](https://github.com/theolind "25 total commits to the home-assistant organization, 25 commits to home-assistant")
- [Thiago Oliveira (@chilicheech)](https://github.com/chilicheech "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [Thibault Cohen (@titilambert)](https://github.com/titilambert "36 total commits to the home-assistant organization, 23 commits to home-assistant, 13 commits to home-assistant.github.io")
-- [Thibault Maekelbergh (@thibmaek)](https://github.com/thibmaek "1 total commits to the home-assistant organization, 1 commit to hassio-addons")
+- [Thibault Cohen (@titilambert)](https://github.com/titilambert "41 total commits to the home-assistant organization, 28 commits to home-assistant, 13 commits to home-assistant.github.io")
+- [Thibault Maekelbergh (@thibmaek)](https://github.com/thibmaek "4 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 1 commit to hassio-addons")
+- [Thijs de Jong (@bakedraccoon)](https://github.com/bakedraccoon "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [ThinkPadNL (@ThinkPadNL)](https://github.com/ThinkPadNL "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
-- [Thom Troy (@ttroy50)](https://github.com/ttroy50 "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
+- [Thom Troy (@ttroy50)](https://github.com/ttroy50 "11 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 4 commits to home-assistant")
- [Thomas Friedel (@tfriedel)](https://github.com/tfriedel "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Thomas Petazzoni (@tpetazzoni)](https://github.com/tpetazzoni "1 total commits to the home-assistant organization, 1 commit to libcoap")
-- [Thomas Phillips (@thomas-teknique)](https://github.com/thomas-teknique "2 total commits to the home-assistant organization, 2 commits to pi-gen")
+- [Thomas Phillips (@thomas-phillips-nz)](https://github.com/thomas-phillips-nz "2 total commits to the home-assistant organization, 2 commits to pi-gen")
- [Thomas Purchas (@thomaspurchas)](https://github.com/thomaspurchas "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
- [Thomas Pötsch (@thp-comnets)](https://github.com/thp-comnets "7 total commits to the home-assistant organization, 7 commits to libcoap")
- [thrawnarn (@thrawnarn)](https://github.com/thrawnarn "1 total commits to the home-assistant organization, 1 commit to netdisco")
@@ -805,51 +797,60 @@ This page contains a list of people who have contributed in one way or another t
- [Tom Usher (@tomusher)](https://github.com/tomusher "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [Tomi Salmi (@tomppasalmi)](https://github.com/tomppasalmi "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Tomi Tuhkanen (@ttu)](https://github.com/ttu "3 total commits to the home-assistant organization, 3 commits to home-assistant")
-- [TopdRob (@TopdRob)](https://github.com/TopdRob "4 total commits to the home-assistant organization, 4 commits to home-assistant")
+- [TopdRob (@TopdRob)](https://github.com/TopdRob "7 total commits to the home-assistant organization, 7 commits to home-assistant")
- [Torkild Retvedt (@torkildr)](https://github.com/torkildr "2 total commits to the home-assistant organization, 2 commits to appdaemon")
- [Toshik (@Toshik)](https://github.com/Toshik "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
+- [Touliloup (@RiRomain)](https://github.com/RiRomain "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [tradiuz (@tradiuz)](https://github.com/tradiuz "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [travislreno (@travislreno)](https://github.com/travislreno "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
- [trbs (@trbs)](https://github.com/trbs "1 total commits to the home-assistant organization, 1 commit to netdisco")
-- [Trevor (@tboyce021)](https://github.com/tboyce021 "14 total commits to the home-assistant organization, 10 commits to home-assistant, 4 commits to home-assistant.github.io")
+- [Trevor (@tboyce021)](https://github.com/tboyce021 "15 total commits to the home-assistant organization, 10 commits to home-assistant, 5 commits to home-assistant.github.io")
- [Trey Hunner (@treyhunner)](https://github.com/treyhunner "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
-- [Tristan Caulfield (@Bahnburner)](https://github.com/Bahnburner "1 total commits to the home-assistant organization, 1 commit to home-assistant")
- [trollkarlen (@trollkarlen)](https://github.com/trollkarlen "5 total commits to the home-assistant organization, 5 commits to home-assistant")
+- [tschmidty69 (@tschmidty69)](https://github.com/tschmidty69 "6 total commits to the home-assistant organization, 6 commits to home-assistant")
- [Tsvi Mostovicz (@tsvi)](https://github.com/tsvi "9 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 4 commits to home-assistant")
-- [Tyler Page (@iamtpage)](https://github.com/iamtpage "2 total commits to the home-assistant organization, 2 commits to home-assistant")
+- [Tyler Page (@iamtpage)](https://github.com/iamtpage "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 commits to home-assistant")
- [Tõnis Tobre (@tobre6)](https://github.com/tobre6 "1 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant")
-- [Uli (@uehler)](https://github.com/uehler "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [uchagani (@uchagani)](https://github.com/uchagani "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to home-assistant-polymer")
+- [Uli (@uehler)](https://github.com/uehler "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [UnrealKazu (@UnrealKazu)](https://github.com/UnrealKazu "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [upsert (@upsert)](https://github.com/upsert "1 total commits to the home-assistant organization, 1 commit to netdisco")
- [User5981 (@User5981)](https://github.com/User5981 "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [Valentin Alexeev (@valentinalexeev)](https://github.com/valentinalexeev "11 total commits to the home-assistant organization, 8 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Viet Dzung (@dzungpv)](https://github.com/dzungpv "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
-- [Vignesh Venkat (@vickyg3)](https://github.com/vickyg3 "4 total commits to the home-assistant organization, 4 commits to home-assistant")
+- [Vignesh Venkat (@vickyg3)](https://github.com/vickyg3 "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io")
- [viswa-swami (@viswa-swami)](https://github.com/viswa-swami "9 total commits to the home-assistant organization, 9 commits to home-assistant")
- [Vlad Korniev (@vkorn)](https://github.com/vkorn "3 total commits to the home-assistant organization, 2 commits to home-assistant, 1 commit to hassio-build")
- [vllungu (@vllungu)](https://github.com/vllungu "3 total commits to the home-assistant organization, 3 commits to libcoap")
- [vrs01 (@vrs01)](https://github.com/vrs01 "20 total commits to the home-assistant organization, 14 commits to home-assistant.github.io, 6 commits to appdaemon")
- [Wagner Sartori Junior (@trunet)](https://github.com/trunet "1 total commits to the home-assistant organization, 1 commit to netdisco")
+- [Wesley Young (@wesdyoung)](https://github.com/wesdyoung "1 total commits to the home-assistant organization, 1 commit to warrant")
- [Wilco Land (@Wilco89)](https://github.com/Wilco89 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io")
+- [Will Boyce (@wrboyce)](https://github.com/wrboyce "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Will Heid (@bassclarinetl2)](https://github.com/bassclarinetl2 "20 total commits to the home-assistant organization, 19 commits to home-assistant.github.io, 1 commit to fabric-home-assistant")
- [Will W. (@tiktok7)](https://github.com/tiktok7 "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [Willems Davy (@joyrider3774)](https://github.com/joyrider3774 "7 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 3 commits to home-assistant")
- [William Johansson (@radhus)](https://github.com/radhus "1 total commits to the home-assistant organization, 1 commit to hassio")
-- [William Scanlon (@w1ll1am23)](https://github.com/w1ll1am23 "92 total commits to the home-assistant organization, 63 commits to home-assistant, 27 commits to home-assistant.github.io, 2 commits to netdisco")
+- [William Scanlon (@w1ll1am23)](https://github.com/w1ll1am23 "106 total commits to the home-assistant organization, 71 commits to home-assistant, 33 commits to home-assistant.github.io, 2 commits to netdisco")
- [williamlehman (@williamlehman)](https://github.com/williamlehman "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer")
- [wind-rider (@wind-rider)](https://github.com/wind-rider "5 total commits to the home-assistant organization, 5 commits to home-assistant")
- [wokar (@wokar)](https://github.com/wokar "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io")
-- [Wolf-Bastian Pöttner (@BastianPoe)](https://github.com/BastianPoe "6 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 3 commits to home-assistant")
+- [Wolf-Bastian Pöttner (@BastianPoe)](https://github.com/BastianPoe "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io")
- [Wolfgang Malgadey (@wmalgadey)](https://github.com/wmalgadey "4 total commits to the home-assistant organization, 4 commits to home-assistant")
- [XECDesign (@XECDesign)](https://github.com/XECDesign "97 total commits to the home-assistant organization, 97 commits to pi-gen")
- [Xorso (@Xorso)](https://github.com/Xorso "22 total commits to the home-assistant organization, 21 commits to home-assistant, 1 commit to hassio-addons")
-- [Yannick POLLART (@ypollart)](https://github.com/ypollart "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io")
+- [Yannick POLLART (@ypollart)](https://github.com/ypollart "8 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io")
- [Yasin Soliman (@yasinS)](https://github.com/yasinS "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [yingzong (@yingzong)](https://github.com/yingzong "1 total commits to the home-assistant organization, 1 commit to warrant")
- [Yum (@goofz)](https://github.com/goofz "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Zac Hatfield Dodds (@Zac-HD)](https://github.com/Zac-HD "2 total commits to the home-assistant organization, 2 commits to home-assistant")
- [Zen Tormey (@xehn)](https://github.com/xehn "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
- [Zhao Lu (@zlu)](https://github.com/zlu "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
-- [ziotibia81 (@ziotibia81)](https://github.com/ziotibia81 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io")
+- [Zio Tibia (@ziotibia81)](https://github.com/ziotibia81 "14 total commits to the home-assistant organization, 7 commits to home-assistant, 7 commits to home-assistant.github.io")
+- [Zorks (@Zorks)](https://github.com/Zorks "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io")
+- [Åskar Andersson (@olskar)](https://github.com/olskar "5 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 1 commit to hassbian-scripts")
This page is irregularly updated using the [`credits_generator` tool](https://github.com/home-assistant/home-assistant.github.io/tree/next/credits_generator). If you think that you are missing, please let us know.
-This page was last updated Tuesday, October 31st 2017, 7:14:47 pm UTC.
+This page was last updated Saturday, January 13th 2018, 6:07:58 pm UTC.
diff --git a/source/developers/development_environment.markdown b/source/developers/development_environment.markdown
index 21d7651f031..0ff14d5c567 100644
--- a/source/developers/development_environment.markdown
+++ b/source/developers/development_environment.markdown
@@ -16,11 +16,13 @@ You'll need to set up a development environment if you want to develop a new fea
#### {% linkable_title Developing on Linux %}
Install the core dependencies.
+
```bash
$ sudo apt-get install python3-pip python3-dev python3-venv
```
In order to run `script/setup` below you will need some more dependencies.
+
```bash
$ sudo apt-get install libssl-dev libxml2-dev libxslt1-dev libjpeg-dev libffi-dev libudev-dev zlib1g-dev
```
@@ -33,7 +35,28 @@ Additional dependencies exist if you plan to perform Frontend Development, pleas
#### {% linkable_title Developing on Windows %}
-If you are using Windows as a development platform, make sure that you have the correct Microsoft Visual C++ build tools installed. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details. Validation using `tox` will fail if this is not done correctly.
+If you are using Windows as a development platform, make sure that you have the correct Microsoft [Visual C++ build tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) installed. The installation of the most requirements and validation using `tox` will fail if this is not done correctly. Check the [Windows Compilers](https://wiki.python.org/moin/WindowsCompilers) section on the [Python website](https://www.python.org/) for details.
+
+Due to Home Assistant is mainly designed and developed on Linux distributions it is not recommended to develop on Windows machines. However on Windows 10 machines you should decide to set up a [Linux subsystem](https://docs.microsoft.com/de-de/windows/wsl/install-win10).
+
+Setup Linux subsystem.
+
+```bash
+$ apt-get update
+$ apt-get upgrade
+$ echo 'export DISPLAY=:0' >> ~/.bashrc && . ~/.bashrc
+$ sudo apt-get install xubuntu-desktop -y
+```
+
+It is recommended using [PyCharm](https://www.jetbrains.com/pycharm/download/) as debugger. Download and start PyCharm.
+
+```bash
+$ wget https://download.jetbrains.com/python/pycharm-community-20XX.X.tar.gz
+$ tar -xzf pycharm-community-20XX.X
+$ ./pycharm.sh
+```
+
+In order to display the PyCharm GUI on Windows you need to run a X-Server like [VcXserv](https://sourceforge.net/projects/vcxsrv/).
Also, make sure to install or upgrade the `setuptools` Python package. It contains compatibility improvements and adds automatic use of compilers:
@@ -62,27 +85,26 @@ $ git remote add upstream https://github.com/home-assistant/home-assistant.git
### {% linkable_title Setting up virtual environment %}
-If you plan on providing isolation to your environment using [`venv`](https://docs.python.org/3.4/library/venv.html). Within the `home-assistant` directory, create and activate your virtual environment.
+To isolate your environment from the rest of the system, set up a [`venv`](https://docs.python.org/3.4/library/venv.html). Within the `home-assistant` directory, create and activate your virtual environment.
```bash
-$ python3 -m venv venv
-$ source venv/bin/activate
+$ python3 -m venv .
+$ source bin/activate
```
-
-### {% linkable_title Setup and Run %}
+Install the requirements with a provided script named `setup`.
```bash
-$ cd home-assistant
$ script/setup
```
-* Run `hass` to invoke your local installation.
+Invoke your installation.
+
+```bash
+$ hass
+```
### {% linkable_title Logging %}
-By default logging in home-assistant is tuned for operating in
-production (set to INFO by default, with some modules set to even less
-verbose logging levels).
+By default logging in home-assistant is tuned for operating in production (set to INFO by default, with some modules set to even less verbose logging levels).
-You can use the [logger](/components/logger/) component to adjust
-logging to DEBUG to see even more details about what is going on.
+You can use the [logger](/components/logger/) component to adjust logging to DEBUG to see even more details about what is going on.
diff --git a/source/developers/documentation/create_page.markdown b/source/developers/documentation/create_page.markdown
index db3ca834c6a..f2bf29dcef1 100644
--- a/source/developers/documentation/create_page.markdown
+++ b/source/developers/documentation/create_page.markdown
@@ -86,7 +86,7 @@ required: inclusive #=> Inclusive
required: exclusive #=> Exclusive
required: any string here #=> Any string here
```
-- **`type:`**: The type of the variable. Allowed entries: `string`, `int` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example).
+- **`type:`**: The type of the variable. Allowed entries: `string`, `int`, `time`, `template` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example).
- **`default:`**: The default value for the variable.
### {% linkable_title Embedding Code %}
diff --git a/source/developers/documentation/index.markdown b/source/developers/documentation/index.markdown
index f2306b2b5aa..33dd22d859f 100644
--- a/source/developers/documentation/index.markdown
+++ b/source/developers/documentation/index.markdown
@@ -20,7 +20,7 @@ For larger changes, we suggest that you clone the website repository. This way,
To test your changes locally, you need to install **Ruby** and its dependencies (gems):
-- [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) if you don't have it already.
+- [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) if you don't have it already. Ruby version 2.3.0 or higher is required.
- Install `bundler`, a dependency manager for Ruby: `$ gem install bundler`
- In your home-assistant.github.io root directory, run `$ bundle` to install the gems you need.
diff --git a/source/developers/frontend.markdown b/source/developers/frontend.markdown
index 98e88c7f26d..0fb71208d9a 100755
--- a/source/developers/frontend.markdown
+++ b/source/developers/frontend.markdown
@@ -27,7 +27,7 @@ First step is to configure Home Assistant to use the development mode for the fr
```yaml
frontend:
- development_repo: ../home-assistant-polymer
+ development_repo: Alexa, turn on the lights
+ Use Alexa to control Home Assistant.
+
+
-
+
+
+