From e31c433d404c153d9dbd1bb78cb883698a3cad38 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Aug 2017 13:19:09 -0700 Subject: [PATCH 01/67] Update components pic --- .../images/blog/2017-08-0.51/components.png | Bin 39175 -> 48374 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source/images/blog/2017-08-0.51/components.png b/source/images/blog/2017-08-0.51/components.png index 511070a5fdcbf9528fd0babafa388c45cf554a98..9b6931e29e2342577bd12555f100d0e22dbc6602 100644 GIT binary patch literal 48374 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 Date: Sat, 12 Aug 2017 15:03:19 -0700 Subject: [PATCH 02/67] Release 51.1 --- _config.yml | 4 ++-- source/_posts/2017-08-12-release-51.markdown | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 9168c907acc..5c941069f99 100644 --- a/_config.yml +++ b/_config.yml @@ -143,11 +143,11 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 51 -current_patch_version: 0 +current_patch_version: 1 date_released: 2017-08-12 # 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: "#" +patch_version_notes: "#release-0511--august-12" # Minor release (Example #release-0431---april-25): diff --git a/source/_posts/2017-08-12-release-51.markdown b/source/_posts/2017-08-12-release-51.markdown index 9ed257483ee..38d367e624a 100644 --- a/source/_posts/2017-08-12-release-51.markdown +++ b/source/_posts/2017-08-12-release-51.markdown @@ -55,6 +55,10 @@ As we have seen more vacuum cleaners land in Home Assistant, it was time to crea - Add new device tracker for Huawei Routers. ([@abmantis] - [#8488]) ([device_tracker.huawei_router docs]) (new-platform) - Add Shodan sensor ([@fabaff] - [#8902]) ([sensor.shodan docs]) (new-platform) +## {% linkable_title Release 0.51.1 - August 12 %} + + - Fixed a bug in the automation editor that would break if no conditions available in the config file. ([@balloob]) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. From 47914a55d160dd49796126ec8af57e3d9520747b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 12 Aug 2017 18:31:48 -0700 Subject: [PATCH 03/67] Update sensor.shodan.markdown --- source/_components/sensor.shodan.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.shodan.markdown b/source/_components/sensor.shodan.markdown index c7b7bb7ba9a..7d7727ac109 100644 --- a/source/_components/sensor.shodan.markdown +++ b/source/_components/sensor.shodan.markdown @@ -14,7 +14,7 @@ ha_release: 0.51 --- -The `shodan` sensor platform is displaying the total of result of a [Shodan](https://pi-hole.net/) query. +The `shodan` sensor platform is displaying the total of result of a [Shodan](https://www.shodan.io/) query. Use "Show API Key" in the upper right corner when you are logged in or got to your "My Account" page to retrieve your API key. From 9710aae0829d651eeea0e675558a53fe93eb04a2 Mon Sep 17 00:00:00 2001 From: Steve Rhoades Date: Sun, 13 Aug 2017 01:12:34 -0700 Subject: [PATCH 04/67] Documentation for Launch Request support (#3104) --- source/_components/alexa.markdown | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index 501915ee70a..d30584496fe 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -192,6 +192,29 @@ intent_script: Now say `Alexa ask homeassistant to run ` and Alexa will run that script for you. +### {% linkable_title Support for Launch Requests %} +There may be times when you want to respond to a launch request initiated from a command such as "Alexa, Red Alert!". + +To start you need to get the skill id: + + - Log in to [Amazon developer console][amazon-dev-console] + - Click the Alexa button at the top of the console + - Click the Alexa Skills Kit Get Started button + - Locate the skill for which you would like Launch Request support + - Click the "View Skill ID" link and copy the ID + +The configuration is the same as an intent with the exception being you will use your skill ID instead of the intent name. +```yaml +intent_script: + amzn1.ask.skill.08888888-7777-6666-5555-444444444444: + action: + service: script.turn_on + entity_id: script.red_alert + speech: + type: plain + text: OK +``` + ## {% linkable_title Giving Alexa Some Personality %} In the examples above, we told Alexa to say `OK` when she successfully completed the task. This is effective but a little dull! We can again use [templates] to spice things up a little. From b84495cd3ab26a7fb19b37dff8a947522567195b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Sun, 13 Aug 2017 15:20:15 +0200 Subject: [PATCH 05/67] Update switch.broadlink.markdown --- source/_components/switch.broadlink.markdown | 4 ---- 1 file changed, 4 deletions(-) diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 9bca1dcf3ef..1eb034fcaa6 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -23,10 +23,6 @@ switch: - platform: broadlink host: IP_ADDRESS mac: 'MAC_ADDRESS' - switches: - reciever: - command_on: 'switch_packet on' - command_off: 'switch_packet off' ``` Configuration variables: From 34513b7bec123dacb4edae5a076b85e27fed35d5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 14:50:50 -0700 Subject: [PATCH 06/67] Update code_review_component.markdown --- source/developers/code_review_component.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/code_review_component.markdown b/source/developers/code_review_component.markdown index fcc47210669..c47d184083e 100644 --- a/source/developers/code_review_component.markdown +++ b/source/developers/code_review_component.markdown @@ -19,6 +19,7 @@ Not all existing platforms follow the requirements in this checklist. This canno 1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']` 2. We no longer want requirements hosted on GitHub. Please upload to PyPi. + 3. Requirements only imported inside functions. This is necessary because requirements are installed on the fly. ### {% linkable_title Configuration %} From d7502179b2c7f4a85d526b46dac724fa7f6f345a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 14:54:32 -0700 Subject: [PATCH 07/67] Update code_review_platform.markdown --- source/developers/code_review_platform.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/code_review_platform.markdown b/source/developers/code_review_platform.markdown index edf5ab5c3c7..0361d4bfc70 100644 --- a/source/developers/code_review_platform.markdown +++ b/source/developers/code_review_platform.markdown @@ -19,6 +19,7 @@ Not all existing platforms follow the requirements in this checklist. This canno 1. Requirement version should be 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 2. Dependencies %} From 18e0039d7b27cd83156cb3d232028cee3fed012f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 14:54:41 -0700 Subject: [PATCH 08/67] Update code_review_component.markdown --- source/developers/code_review_component.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/code_review_component.markdown b/source/developers/code_review_component.markdown index c47d184083e..4d708290c54 100644 --- a/source/developers/code_review_component.markdown +++ b/source/developers/code_review_component.markdown @@ -19,7 +19,7 @@ Not all existing platforms follow the requirements in this checklist. This canno 1. Requirement version pinned: `REQUIREMENTS = ['phue==0.8.1']` 2. We no longer want requirements hosted on GitHub. Please upload to PyPi. - 3. Requirements only imported inside functions. This is necessary because requirements are installed on the fly. + 3. Requirements should only be imported inside functions. This is necessary because requirements are installed on the fly. ### {% linkable_title Configuration %} From 2b09e77c592641fa63bba2a7d4ea652a5450e1cd Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 13 Aug 2017 22:20:37 -0700 Subject: [PATCH 09/67] Release 0.51.2 --- _config.yml | 6 +++--- source/_posts/2017-08-12-release-51.markdown | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 5c941069f99..77f78049d6b 100644 --- a/_config.yml +++ b/_config.yml @@ -143,11 +143,11 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 51 -current_patch_version: 1 -date_released: 2017-08-12 +current_patch_version: 2 +date_released: 2017-08-14 # 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-0511--august-12" +patch_version_notes: "#release-0512--august-14" # Minor release (Example #release-0431---april-25): diff --git a/source/_posts/2017-08-12-release-51.markdown b/source/_posts/2017-08-12-release-51.markdown index 38d367e624a..36b32d9ad93 100644 --- a/source/_posts/2017-08-12-release-51.markdown +++ b/source/_posts/2017-08-12-release-51.markdown @@ -59,6 +59,18 @@ As we have seen more vacuum cleaners land in Home Assistant, it was time to crea - Fixed a bug in the automation editor that would break if no conditions available in the config file. ([@balloob]) +## {% linkable_title Release 0.51.2 - August 14 %} + +- Fix zwave power_consumption attribute ([@andrey-git] - [#8968]) ([zwave docs]) +- Turn foscam verbose mode off ([@andrey-git] - [#8967]) ([camera.foscam docs]) +- fix stack trace in pushbullet ([@Danielhiversen] - [#8965]) ([notify.pushbullet docs]) +- Harmoney remote: Fix call to ha_send_commands ([@MartinHjelmare] - [#8956]) ([remote.harmony docs]) +- fix DeviceException handling when updating xiaomi vacuum ([@azogue] - [#8954]) ([vacuum.xiaomi docs]) +- Sabnzbd: do not assume discovery info is a dict ([@balloob] - [#8951]) ([sensor.sabnzbd docs]) +- Fix login button ([@balloob]) +- Add workaround for broken toggles in Safari ([@balloob]) +- Fix weblink opening twice ([@azogue]) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums][forum] or join us for a little [chat][discord]. The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -445,3 +457,10 @@ vacuum: [forum]: https://community.home-assistant.io/ [issue]: https://github.com/home-assistant/home-assistant/issues [discord]: https://discord.gg/c5DvZ4e +[#8951]: https://github.com/home-assistant/home-assistant/pull/8951 +[#8954]: https://github.com/home-assistant/home-assistant/pull/8954 +[#8956]: https://github.com/home-assistant/home-assistant/pull/8956 +[#8965]: https://github.com/home-assistant/home-assistant/pull/8965 +[#8967]: https://github.com/home-assistant/home-assistant/pull/8967 +[#8968]: https://github.com/home-assistant/home-assistant/pull/8968 +[@Danielhiversen]: https://github.com/Danielhiversen From 567c32be235521e17e143ceb84c5fdf67640a92a Mon Sep 17 00:00:00 2001 From: DrewSK Date: Mon, 14 Aug 2017 07:35:30 -0500 Subject: [PATCH 10/67] adding section of devices known to use port 80 (#3177) --- source/_components/device_tracker.netgear.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/device_tracker.netgear.markdown b/source/_components/device_tracker.netgear.markdown index 4a5a94f638a..351e001b2ea 100644 --- a/source/_components/device_tracker.netgear.markdown +++ b/source/_components/device_tracker.netgear.markdown @@ -34,4 +34,7 @@ Configuration variables: - **password** (*Required*): The password for your given admin account. - **port** (*Optional*): The port your router communicates with (defaults to 5000, but 80 is also known to be used on some models) +List of models that are known to use port 80: +- Nighthawk X4S - AC2600 (R7800) + See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. From aa465c5ba295e54574c6cadc9c1b77e556010837 Mon Sep 17 00:00:00 2001 From: Ioan Loosley Date: Mon, 14 Aug 2017 22:05:30 +0100 Subject: [PATCH 11/67] Fixed typo (#3179) --- source/_components/mailbox.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/mailbox.markdown b/source/_components/mailbox.markdown index 5e840303850..88ff203523f 100644 --- a/source/_components/mailbox.markdown +++ b/source/_components/mailbox.markdown @@ -12,7 +12,7 @@ footer: true Mailboxes provide an list of messages with short information about each. Mailbox messages appear on a separate panel in the frontend. -Home Assistant currently supports only the [Asterisk Vaoicemail](/component/mailbox.asterisk_mbox) mailbox. +Home Assistant currently supports only the [Asterisk Voicemail](/component/mailbox.asterisk_mbox) mailbox. Each mailbox also provides an entity to indicate the number of messages available on the main page. From 4cae830b66b3c962b30cc5e23a96c3bdaf8cbaf5 Mon Sep 17 00:00:00 2001 From: BigMoby Date: Mon, 14 Aug 2017 23:06:53 +0200 Subject: [PATCH 12/67] Updating moon fase values according current source code (#3178) --- source/_components/sensor.moon.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.moon.markdown b/source/_components/sensor.moon.markdown index bcd2c780121..327d2214312 100644 --- a/source/_components/sensor.moon.markdown +++ b/source/_components/sensor.moon.markdown @@ -24,4 +24,4 @@ sensor: - platform: moon ``` This sensor will return one of the following values: -`Full moon`, `Last quarter`, `First quarter` or `New moon`. +`New moon`, `Waxing crescent`, `First quarter`, `Waxing gibbous`, `Full moon`, `Waning gibbous`, `Last quarter` or `Waning crescent` . From 12dfa9ac729abf68cfa480289cdfc171275e6297 Mon Sep 17 00:00:00 2001 From: vanviegen Date: Mon, 14 Aug 2017 23:47:30 -0700 Subject: [PATCH 13/67] Update zha.markdown (#3181) --- source/_components/zha.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown index 2f7e0f8ad73..a3f5fabf83d 100644 --- a/source/_components/zha.markdown +++ b/source/_components/zha.markdown @@ -42,4 +42,4 @@ Configuration variables: - **usb_path** (*Required*): Path to the serial device for the radio. - **database_path** (*Required*): Path to the database which will keep persistent network data. -To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions. +To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: https://github.com/vanviegen/hue-thief From 238032351b91dad36ed5e78100633cf1638326b9 Mon Sep 17 00:00:00 2001 From: David Jackson Date: Tue, 15 Aug 2017 09:53:52 -0400 Subject: [PATCH 14/67] Update media_player.bluesound.markdown (#3183) Fix formatting for display on site. --- source/_components/media_player.bluesound.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/media_player.bluesound.markdown b/source/_components/media_player.bluesound.markdown index ff387ec1775..e0d81be772a 100644 --- a/source/_components/media_player.bluesound.markdown +++ b/source/_components/media_player.bluesound.markdown @@ -35,8 +35,8 @@ Configuration variables: - **port** (*Optional*): Port of communication to the device (default: 11000) ## Advanced configuration example - - ```yaml + +```yaml # Example configuration.yaml entry with manually specified addresses media_player: - platform: bluesound From 56e6f01c9f08734aba1f2b13ecb6db441d48d413 Mon Sep 17 00:00:00 2001 From: Will Heid Date: Tue, 15 Aug 2017 10:03:03 -0700 Subject: [PATCH 15/67] grammar --- source/_docs/automation/trigger.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index ad97a001315..1d6c2cb57ba 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -186,7 +186,7 @@ automation: ### {% linkable_title Multiple triggers %} -When your want your automation rule to have multiple triggers, just prefix the first line of each trigger with a dash (-) and indent the lines following accordingly. Whenever one of the triggers fires, your rule is executed. +When your want your automation rule to have multiple triggers, just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, your rule is executed. ```yaml automation: From cb416a65e88b1cc20516a5cdf00fe022234fe004 Mon Sep 17 00:00:00 2001 From: Henrik Aronsson Date: Wed, 16 Aug 2017 10:14:11 +0200 Subject: [PATCH 16/67] Update tradfri.markdown (#3185) Added a warning for windows users that the Tradfri component doesn't work. Source: https://github.com/home-assistant/home-assistant/issues/7735#issuecomment-304460322 If anyone has a more technical source it would be neat. --- source/_components/tradfri.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown index 512a427eebb..8505d4b21e1 100644 --- a/source/_components/tradfri.markdown +++ b/source/_components/tradfri.markdown @@ -18,6 +18,9 @@ The `tradfri` component supports for the IKEA Trådfri (Tradfri) gateway. The ga For this to work, you need to install a modified lib-coap library. +

+This component does **not** work on Windows, as the modified lib-coap doesn't exists for Windows. +

If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fullfilled.

From b2f40816a188d05571b81d2a7f23460fa05b91d2 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 16 Aug 2017 21:31:51 +0200 Subject: [PATCH 17/67] Review/Edit: Hass.io (#3190) Documentation fixes (spelling, grammar, and punctuations) to the 'Hass.io' section of the website. --- source/_docs/installation.markdown | 2 +- source/hassio/external_storage.markdown | 4 ++-- source/hassio/index.markdown | 2 +- source/hassio/installing_third_party_addons.markdown | 4 ++-- source/hassio/run_local.markdown | 4 ++-- source/hassio/zwave.markdown | 5 +++-- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index 7de9486a425..d0605f7f380 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -10,7 +10,7 @@ footer: true redirect_from: /getting-started/installation/ --- -Home Assistant provides multiple ways to be installed. A requirement is that you have [Python](https://www.python.org/downloads/) installed. For Windows we require at least **Python 3.5** and for other operating systems at least **Python 3.4.2**. +Home Assistant provides multiple ways to be installed. A requirement is that you have [Python](https://www.python.org/downloads/) installed. For Windows, we require at least **Python 3.5** and for other operating systems at least **Python 3.4.2**.
diff --git a/source/hassio/external_storage.markdown b/source/hassio/external_storage.markdown index 201ebbec411..a69b7b8a783 100644 --- a/source/hassio/external_storage.markdown +++ b/source/hassio/external_storage.markdown @@ -12,11 +12,11 @@ footer: true ### {% linkable_title ResinOS / Generic %} -Map the USB drive into add-on with `devices` options. If you need it on multiple add-ons you can use the `/share` folder which is accessible from multiple add-ons. +Map the USB drive into add-on with `devices` options. If you need it on multiple add-ons, you can use the `/share` folder which is accessible from various add-ons. It is also possible to create an add-on that only mounts stuff to `share`. You can format the USB device with multiple volumes and map it to a specific add-on. ### {% linkable_title Generic %} -The `share` is default on `/usr/share/hassio/share` so you can mount your volumes into this folder. +The `share` defaults to `/usr/share/hassio/share` so you can mount your volumes into this folder. diff --git a/source/hassio/index.markdown b/source/hassio/index.markdown index 776ec175b69..c6f15c61fcd 100644 --- a/source/hassio/index.markdown +++ b/source/hassio/index.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Hass.io turns your Raspberry Pi (or other device) into the ultimate home automation hub powered by Home Assistant. With Hass.io you can focus on integrating your devices and writing automations. +Hass.io turns your Raspberry Pi (or another device) into the ultimate home automation hub powered by Home Assistant. With Hass.io you can focus on integrating your devices and writing automations. [Go to the installation instructions »][install] diff --git a/source/hassio/installing_third_party_addons.markdown b/source/hassio/installing_third_party_addons.markdown index f3d8653add3..0bf6cb3166c 100644 --- a/source/hassio/installing_third_party_addons.markdown +++ b/source/hassio/installing_third_party_addons.markdown @@ -9,7 +9,7 @@ sharing: true footer: true --- -Hass.io allows anyone to create add-on repositories to easily share their add-ons for Hass.io. To try this locally, you can use our example add-on repository at +Hass.io allows anyone to create add-on repositories to share their add-ons for Hass.io easily. To try this locally, you can use our example add-on repository at ```text https://github.com/home-assistant/hassio-addons-example @@ -31,4 +31,4 @@ Add the URLs of repositories (one per line) and then press "Save". A new card fo ### {% linkable_title Help: Repository is not showing up %} -If you have added a repository but it's not showing up, it means that the repository contains invalid configuration. Go to the Hass.io panel -> Three dot menu -> Advanced Settings -> Supervisor card -> View logs and scroll to the bottom. It should tell you what went wrong. Report this information to the repository author. +If you have added a repository, but it's not showing up, it means that the repository contains invalid configuration. Go to the Hass.io panel -> Three dot menu -> Advanced Settings -> Supervisor card -> View logs and scroll to the bottom. It should tell you what went wrong. Report this information to the repository author. diff --git a/source/hassio/run_local.markdown b/source/hassio/run_local.markdown index 2b3b51a8430..00751ba6979 100644 --- a/source/hassio/run_local.markdown +++ b/source/hassio/run_local.markdown @@ -9,11 +9,11 @@ sharing: true footer: true --- -Hass.io is a managed environment. This means that you can install applications that can be embedded into Home Assistant using the `command_line` sensor/switch. +Hass.io is a managed environment, which means that you can install applications that can be embedded into Home Assistant using the `command_line` sensor/switch. There are two options if you need to run a script to read data from a sensor or send commands to other devices on Hass.io. -First option is to write a custom component for Home Assistant. Using Python you can communicate with your device. For custom component, take a look at the [developer documentation][custom-component]. +The first option is to write a custom component for Home Assistant. Using Python, you can communicate with your device. For more information about developing a custom component, take a look at the [developer documentation][custom-component]. The second option is to make a local add-on for Hass.io that sends the data to Home Assistant via MQTT. Before we dive into this, read up on [Hass.io add-on development][addons-tutorial] first. diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown index ccd4b8b5a0f..c450e019626 100644 --- a/source/hassio/zwave.markdown +++ b/source/hassio/zwave.markdown @@ -21,11 +21,12 @@ If you need GPIO on raspberry-pi3 for you Z-Wave module add follow line into `co dtoverlay=pi3-miniuart-bt ``` -For very special device, the `/dev/ttyAMA0` will not detect by udev and not mapped with docker. So you need explicit set this device for mapping to Home-Assistant. Execute this command on ssh add-on: +For some exceptional devices, the `/dev/ttyAMA0` will not be detected by udev and are therefor not mapped with docker. +So you need explicit set this device for mapping to Home-Assistant. Execute this command on ssh add-on: ```bash $ curl -d '{"devices": ["ttyAMA0"]}' http://172.17.0.2/homeassistant/options ``` -After that you need change `usb_path` to `/dev/ttyAMA0`. +After that, you need change `usb_path` to `/dev/ttyAMA0`. ### HUSBZB-1: ```yaml From 72a0b18adef533e413a9dc6f1e1345082885411b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Wed, 16 Aug 2017 21:39:20 +0200 Subject: [PATCH 18/67] Update sensor.nest.markdown Fix typo (batter_health -> battery_health) --- source/_components/sensor.nest.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown index f9d08bf2d1f..37e5d83d5a5 100644 --- a/source/_components/sensor.nest.markdown +++ b/source/_components/sensor.nest.markdown @@ -47,6 +47,6 @@ The following conditions are available by device: - Nest Protect: - co\_status - smoke\_status - - batter\_health + - battery\_health - Nest Camera: none From ab20f0677637af310a57e12b772e832970af6a44 Mon Sep 17 00:00:00 2001 From: rbflurry Date: Thu, 17 Aug 2017 03:21:19 -0400 Subject: [PATCH 19/67] Update Numeric State (#3191) * Update Numeric State Add note on using above and below in the same trigger * Changed formating --- source/_docs/automation/trigger.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 1d6c2cb57ba..0a9db0bd5e1 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -70,6 +70,11 @@ automation: below: 25 ``` +

+Listing above and below together means the numeric_state has to be between the two values. +In the example above, a numeric_state that is 17.1-24.9 would fire this trigger. +

+ ### {% linkable_title State trigger %} Triggers when the state of tracked entities change. If only entity_id given will match all state changes, even if only state attributes change. From 3749cda66a83694146e8e09127cb789b8e155e08 Mon Sep 17 00:00:00 2001 From: Jay Stevens Date: Thu, 17 Aug 2017 00:43:43 -0700 Subject: [PATCH 20/67] Clarification about SMTP with Google accounts (#3193) The hint about enabling "Less secure apps" access to your Gmail account is a bit outdated; most people with the technical know-how to set up Home Assistant and edit the configuration files will likely have two-step verification enabled on their Gmail accounts. I added a small clarification about using application-specific passwords in that instance to hopefully save people an internet search. --- source/_components/notify.smtp.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.smtp.markdown b/source/_components/notify.smtp.markdown index 7f94abf4e7d..533129e36cb 100644 --- a/source/_components/notify.smtp.markdown +++ b/source/_components/notify.smtp.markdown @@ -60,7 +60,7 @@ notify: sender_name: My Home Assistant ``` -Keep in mind that Google has some extra layers of protection which need special attention (Hint: 'Less secure apps'). +Keep in mind that Google has some extra layers of protection which need special attention (Hint: 'Less secure apps'). If you have 2-step verification enabled on your Google account, you'll need to use [an application-specific password](https://support.google.com/mail/answer/185833?hl=en). To use the SMTP notification, refer to it in an automation or script like in this example: From b32c99cf445618b2a36ec9fd1b503e4188562a71 Mon Sep 17 00:00:00 2001 From: mauriciobonani Date: Fri, 18 Aug 2017 03:57:44 -0400 Subject: [PATCH 21/67] Distribution name correction (#3195) --- source/_docs/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown index d0605f7f380..5397426820c 100644 --- a/source/_docs/installation.markdown +++ b/source/_docs/installation.markdown @@ -23,7 +23,7 @@ Home Assistant provides multiple ways to be installed. A requirement is that you
-
Rasbian
+
Raspbian
From f62616f8bf27794dc765a406dd02acbb0c89b229 Mon Sep 17 00:00:00 2001 From: Sebastian Muszynski Date: Fri, 18 Aug 2017 14:57:36 +0200 Subject: [PATCH 22/67] IoT class changed. The gateway provides updates immediately as multicast broadcast. (#3197) Device table added for binary sensors. Some glitches removed. --- .../_components/binary_sensor.xiaomi.markdown | 38 ++++++++++++------- source/_components/cover.xiaomi.markdown | 2 +- source/_components/light.xiaomi.markdown | 2 +- source/_components/sensor.xiaomi.markdown | 2 +- source/_components/switch.xiaomi.markdown | 2 +- source/_components/xiaomi.markdown | 12 +++--- 6 files changed, 34 insertions(+), 24 deletions(-) diff --git a/source/_components/binary_sensor.xiaomi.markdown b/source/_components/binary_sensor.xiaomi.markdown index d4f5a7672a4..71da18c7324 100644 --- a/source/_components/binary_sensor.xiaomi.markdown +++ b/source/_components/binary_sensor.xiaomi.markdown @@ -10,7 +10,7 @@ footer: true logo: xiaomi.png ha_category: Binary Sensor ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- @@ -20,12 +20,21 @@ The requirement is that you have setup the [`xiaomi` component](/components/xiao ### {% linkable_title Type of sensors supported %} -- Motion -- Door / Window -- Smoke -- Gas -- Xiaomi Wireless Button -- Xiaomi Cube + +| Name | ZigBee entity | Model no. | States | Event | Event key | Event values | +|-----------------------------------|---------------------|----------------------|----------------------------------------------------|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Motion Sensor (1st gen) | motion | RTCGQ01LM | on, off | `motion` | | | +| Motion Sensor (2nd gen) | sensor_motion.aq2 | RTCGQ11LM | on, off | `motion` | | | +| Door and Window Sensor (1st gen) | magnet | WSDCGQ01LM | on, off | | | | +| Door and Window Sensor (2nd gen) | sensor_magnet.aq2 | MCCGQ11LM | on, off | | | | +| Smoke Detector | smoke | JTYJ-GD-01LM/BW | on, off | | | | +| Gas Leak Detector | natgas | JTQJ-BF-01LM/BW | on, off | | | | +| Button (1st gen) | switch | WXKG01LM | on (thru long_click_press), off | `click` | `click_type` | `long_click_press`, `long_click_release`, `hold`, `single`, `double` | +| Button (2nd gen) | sensor_switch.aq2 | WXKG11LM | off (always) | `click` | `click_type` | `single`, `double` | +| Aqara Wireless Switch (Single) | 86sw1 | WXKG03LM | off (always) | `click` | `click_type` | `single` | +| Aqara Wireless Switch (Double) | 86sw2 | WXKG02LM | off (always) | `click` | `click_type` | `single`, `both` | +| Cube | cube | MFKZQ01LM | off (always) | `cube_action` | `action_type`, `action_value` (rotate) | `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swing`, `alert`, `free_fall`, `rotate` (degrees at action_value) | + ### {% linkable_title Automation examples %} @@ -65,7 +74,7 @@ The requirement is that you have setup the [`xiaomi` component](/components/xiao data: entity_id: automation.Motion_off ``` - + #### {% linkable_title Door and/or Window %} ```yaml @@ -194,8 +203,8 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi platform: event event_type: cube_action event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx - action_type: flip180 + entity_id: binary_sensor.cube_15xxxxxxxxxxxx + action_type: flip180 action: - service: light.turn_on entity_id: light.gateway_light_28xxxxxxxxxx @@ -203,10 +212,10 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi color_name: "darkviolet" - alias: Cube event move trigger: - platform: event + platform: event event_type: cube_action - event_data: - entity_id: binary_sensor.cube_15xxxxxxxxxxxx + event_data: + entity_id: binary_sensor.cube_15xxxxxxxxxxxx action_type: move action: - service: light.turn_on @@ -238,7 +247,8 @@ Available events are `flip90`, `flip180`, `move`, `tap_twice`, `shake_air`, `swi data: color_name: "blue" ``` -#### #### {% linkable_title Aqara Wireless Switch %} + +#### {% linkable_title Aqara Wireless Switch %} The Aqara Wireless Switch is available as single-key and double-key version. Each key behaves like the Wireless Button limited to the click event `single`. The double key version adds a third device called `binary_sensor.wall_switch_both_158xxxxxxxxx12` which reports a click event called `both` if both keys are pressed. diff --git a/source/_components/cover.xiaomi.markdown b/source/_components/cover.xiaomi.markdown index ff2fa683b0e..5c7aa9e4d70 100644 --- a/source/_components/cover.xiaomi.markdown +++ b/source/_components/cover.xiaomi.markdown @@ -10,7 +10,7 @@ footer: true logo: xiaomi.png ha_category: Cover ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- diff --git a/source/_components/light.xiaomi.markdown b/source/_components/light.xiaomi.markdown index 24f84bc6b52..f33a907fc3d 100644 --- a/source/_components/light.xiaomi.markdown +++ b/source/_components/light.xiaomi.markdown @@ -10,7 +10,7 @@ footer: true logo: xiaomi.png ha_category: Light ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- diff --git a/source/_components/sensor.xiaomi.markdown b/source/_components/sensor.xiaomi.markdown index 61336ac1df6..3e9f776380f 100644 --- a/source/_components/sensor.xiaomi.markdown +++ b/source/_components/sensor.xiaomi.markdown @@ -10,7 +10,7 @@ footer: true logo: xiaomi.png ha_category: Sensor ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- diff --git a/source/_components/switch.xiaomi.markdown b/source/_components/switch.xiaomi.markdown index 1e4f1a5767e..f710778f911 100644 --- a/source/_components/switch.xiaomi.markdown +++ b/source/_components/switch.xiaomi.markdown @@ -10,7 +10,7 @@ footer: true logo: xiaomi.png ha_category: Switch ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- diff --git a/source/_components/xiaomi.markdown b/source/_components/xiaomi.markdown index d87d7167faa..a11431147e8 100644 --- a/source/_components/xiaomi.markdown +++ b/source/_components/xiaomi.markdown @@ -10,15 +10,15 @@ footer: true logo: xiaomi.png ha_category: Hub ha_release: "0.50" -ha_iot_class: "Local Polling" +ha_iot_class: "Local Push" --- -The `xiaomi_gw` platform allows you to integrate the following [Xiaomi](http://www.mi.com/en/) devices into Home Assistant. +The `xiaomi` platform allows you to integrate the following [Xiaomi](http://www.mi.com/en/) devices into Home Assistant. -- Temperature and Humidity Sensor (old and new version) -- Motion Sensor (old and new version) -- Door and Window Sensor (old and new version) -- Button (old and new version) +- Temperature and Humidity Sensor (1st and 2nd generation) +- Motion Sensor (1st and 2nd generation) +- Door and Window Sensor (1st and 2nd generation) +- Button (1st and 2nd generation) - Plug aka Socket (ZigBee version, reports power consumed, power load, state and if device in use) - Wall Plug (reports power consumed, power load and state) - Aqara Wall Switch (Single) From c8cd4979171e6f884097b812fdafc61c814d5451 Mon Sep 17 00:00:00 2001 From: Johnny Chadda Date: Fri, 18 Aug 2017 14:58:13 +0200 Subject: [PATCH 23/67] Fix spelling error (#3198) --- source/_components/arlo.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/arlo.markdown b/source/_components/arlo.markdown index 6556ef17b71..51c6b32693e 100644 --- a/source/_components/arlo.markdown +++ b/source/_components/arlo.markdown @@ -40,7 +40,7 @@ The Arlo component also provides a service to enable/disable the motion detectio - alias: Enable Arlo upton HA start' initial_state: 'on' trigger: - platform: homeassitant + platform: homeassistant event: start action: service: camera.enable_motion_detection From b0fc126777a9a721b5464e1229c5e6b06e87fe6e Mon Sep 17 00:00:00 2001 From: Alasdair Nicol Date: Fri, 18 Aug 2017 20:50:40 +0100 Subject: [PATCH 24/67] Fix typo on duck dns addon page (#3199) --- source/_addons/duckdns.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_addons/duckdns.markdown b/source/_addons/duckdns.markdown index 36d2ef0da4a..908a297c744 100644 --- a/source/_addons/duckdns.markdown +++ b/source/_addons/duckdns.markdown @@ -15,7 +15,7 @@ featured: true ```json { "token": "sdfj-2131023-dslfjsd-12321", - "domains": ["my-first-accound.duckdns.org", "my-second-account.duckdns.org"] + "domains": ["my-first-account.duckdns.org", "my-second-account.duckdns.org"] } ``` From 6b3710bdf9d68bc7289475aad0f6d148a3d06294 Mon Sep 17 00:00:00 2001 From: Paul Jimenez Date: Sat, 19 Aug 2017 07:19:00 -0400 Subject: [PATCH 25/67] Add ha_iot_class (#3202) --- source/_components/cover.myq.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/cover.myq.markdown b/source/_components/cover.myq.markdown index 1896f2e42d6..405065d88ab 100644 --- a/source/_components/cover.myq.markdown +++ b/source/_components/cover.myq.markdown @@ -10,6 +10,7 @@ footer: true logo: myq.png ha_category: Cover ha_release: 0.39 +ha_iot_class: Cloud Polling --- The `myq` cover platform lets you control MyQ-Enabled garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your MyQ Device mobile app. From ce01786a556391e4714e2f0b8633b1ee4f05d9c2 Mon Sep 17 00:00:00 2001 From: Ken Davidson Date: Sat, 19 Aug 2017 07:21:23 -0400 Subject: [PATCH 26/67] Add information about selecting a theme. (#3201) --- source/_components/frontend.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index 0fa79d15b31..d04a20945e3 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -55,3 +55,6 @@ automation: data: name: happy ``` +### {% 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. From c1e6f5a0112d0e292eed790e1e9e90129d9ac2b9 Mon Sep 17 00:00:00 2001 From: Ludeeus Date: Sat, 19 Aug 2017 15:17:01 +0200 Subject: [PATCH 27/67] Update sensor.openhardwaremonitor.markdown (#3205) --- source/_components/sensor.openhardwaremonitor.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/sensor.openhardwaremonitor.markdown b/source/_components/sensor.openhardwaremonitor.markdown index 2c511e888f0..af8aed48ce8 100644 --- a/source/_components/sensor.openhardwaremonitor.markdown +++ b/source/_components/sensor.openhardwaremonitor.markdown @@ -30,3 +30,7 @@ Configuration variables: - **host** (*Required*): The IP address or hostname of your Open Hardware Monitor. - **port** (*Optional*): The port of your Open Hardware Monitor API. Default to 8085. +

+OpenHardwareMonitor must be running on the host, with "Remote web server" active.
+You also need to open an inbound port for (TPC 8085) in the advanced firewall settings. +

From df3c4c5a4ea1ea05630e5bd85d9e0c4bb3a33262 Mon Sep 17 00:00:00 2001 From: Andrew Cockburn Date: Sun, 20 Aug 2017 10:43:51 -0400 Subject: [PATCH 28/67] Update updating.markdown --- source/_docs/ecosystem/appdaemon/updating.markdown | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/source/_docs/ecosystem/appdaemon/updating.markdown b/source/_docs/ecosystem/appdaemon/updating.markdown index 8b39e9ccf8b..132b4dc5d2e 100644 --- a/source/_docs/ecosystem/appdaemon/updating.markdown +++ b/source/_docs/ecosystem/appdaemon/updating.markdown @@ -13,14 +13,7 @@ redirect_from: /ecosystem/appdaemon/updating/ To update AppDaemon after I have released new code, just run the following command to update your copy: ```bash -$ git pull origin +$ sudo pip3 install --upgrade appdaemon ``` -If you are using pip3 for the install do this: - -```bash -$ sudo pip3 uninstall appdaemon -$ sudo pip3 install . -``` - -If you are using docker, rerun the steps to create a new docker image. +If you are using docker, rerun the steps to grab the latestdocker image. From b78d2c6948e99275e39b49025fc0154d2093efb4 Mon Sep 17 00:00:00 2001 From: Andrew Cockburn Date: Sun, 20 Aug 2017 11:23:59 -0400 Subject: [PATCH 29/67] Update hadashboard.markdown --- source/_docs/ecosystem/hadashboard.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/ecosystem/hadashboard.markdown b/source/_docs/ecosystem/hadashboard.markdown index ecd636ecc89..c73560401ac 100755 --- a/source/_docs/ecosystem/hadashboard.markdown +++ b/source/_docs/ecosystem/hadashboard.markdown @@ -39,4 +39,4 @@ HADashboard is a modular, skinnable dashboard for [Home Assistant](https://home- -For full installation instructions see the HADashboard section in the [AppDaemon Project Documentation](http://appdaemon.readthedocs.io/en/latest/DASHBOARD/) +For full installation instructions see the HADashboard section in the [AppDaemon Project Documentation](http://appdaemon.readthedocs.io/en/latest/DASHBOARD_INSTALL.html) From 41f8b40bbb9c0aec2ef34c768462ff6d7124f050 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Sun, 20 Aug 2017 14:49:04 -0400 Subject: [PATCH 30/67] Use the right quotes for code (#3214) --- source/_components/switch.template.markdown | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown index d53b6881316..9941cf844bb 100644 --- a/source/_components/switch.template.markdown +++ b/source/_components/switch.template.markdown @@ -13,11 +13,11 @@ ha_iot_class: "Local Push" logo: home-assistant.png --- -The `template` platform creates switches that combine components. +The `template` platform creates switches that combines components. For example, if you have a garage door with a toggle switch that operates the motor and a sensor that allows you know whether the door is open or closed, you can combine these into a switch that knows whether the garage door is open or closed. -This can simplify the gui, and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. +This can simplify the GUI and make it easier to write automations. You can mark the components you have combined as `hidden` so they don't appear themselves. To enable Template switches in your installation, add the following to your `configuration.yaml` file: @@ -48,8 +48,8 @@ Configuration variables: ## {% linkable_title Considerations %} -If you are using the state of a platform that takes extra time to load, the template switch 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. For example, you would replace {% raw %}'{{ states.switch.source.state }}'{% endraw %} with this equivalent that returns true/false and never gives an unknown result: -{% raw %}'{{ is_state('switch.source', 'on') }}'{% endraw %} +If you are using the state of a platform that takes extra time to load, the template switch 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. For example, you would replace {% raw %}`{{ states.switch.source.state }}`{% endraw %} with this equivalent that returns true/false and never gives an unknown result: +{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %} ## {% linkable_title Examples %} @@ -128,4 +128,3 @@ switch: entity_id: cover.garage_door icon_template: {% raw %}"{% if is_state('cover.garage_door', 'open') %}mdi:garage-open{% else %}mdi:garage{% endif %}"{% endraw %} ``` - From 86931b56dea2f67a727934fa4cc28fa612aff694 Mon Sep 17 00:00:00 2001 From: mattie47 Date: Mon, 21 Aug 2017 07:10:14 +1200 Subject: [PATCH 31/67] Update switch.broadlink.markdown (#3212) Have changed "type" from Optional, to "Required for some models". I don't know if this is non-standard for documentation... Regardless, my SP3 would not work without this field configured. I spent a lot of time reading various threads on what to troubleshoot. This post: https://community.home-assistant.io/t/broadlink-rm-pro-and-a1-sensor/3678/305 also implied the friendly_name is required but I found this not to be the case, and instead "Broadlink Switch" was simply displayed. After much googling and trying various things, I believe the following two pip packages were required for broadlink.py to work: sudo pip3 install pycrypto voluptuous Should I also add this to the documentation? Thanks, Matt --- source/_components/switch.broadlink.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown index 1eb034fcaa6..c40d3ebd112 100644 --- a/source/_components/switch.broadlink.markdown +++ b/source/_components/switch.broadlink.markdown @@ -31,7 +31,7 @@ Configuration variables: - **mac** (*Required*): Device MAC address. - **timeout** (*Optional*): Timeout in seconds for the connection to the device. - **friendly_name** (*Optional*): The name used to display the switch in the frontend. -- **type** (*Optional*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2` or `spminiplus`. +- **type** (*Required for some models*): Switch type. Choose one from: `rm`, `rm2`, `rm_mini`, `rm_pro_phicomm`, `rm2_home_plus`, `rm2_home_plus_gdt`, `rm2_pro_plus`, `rm2_pro_plus2`, `rm2_pro_plus_bl`, `rm_mini_shate`, `sp1`, `sp2`, `honeywell_sp2`, `sp3`, `spmini2` or `spminiplus`. - **switches** (*Optional*): The array that contains all switches. - **identifier** (*Required*): Name of the command switch as slug. Multiple entries are possible. - **friendly_name** (*Optional*): The name used to display the switch in the frontend. From c39d784f6dfbea9ccf70ae13ede9fd1413b837e9 Mon Sep 17 00:00:00 2001 From: mauriciobonani Date: Sun, 20 Aug 2017 15:16:18 -0400 Subject: [PATCH 32/67] Correcting some command lines (#3210) --- source/_docs/installation/virtualenv.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index 3b46c19fced..1fb11753b7e 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -19,8 +19,8 @@ Virtualenvs are pretty easy to setup. This example will walk through one method ```bash $ sudo apt-get update $ sudo apt-get upgrade -$ sudo apt-get install python-pip python3-dev -$ sudo pip install --upgrade virtualenv +$ sudo apt-get install python3-pip python3-dev +$ sudo pip3 install --upgrade virtualenv ``` ### {% linkable_title Step 1: Create a Home Assistant user & group %} From 888450cc8fc5c64208bfc11c905e742c7a672219 Mon Sep 17 00:00:00 2001 From: Michael Luggen Date: Sun, 20 Aug 2017 21:17:22 +0200 Subject: [PATCH 33/67] took me 10 min to find the location (#3209) --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index f8b06a9787b..ab268f16177 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -25,7 +25,7 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo

-- Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration (From the UI choose **Hass.io** which is located in the sidebar). +- Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar).

If you copy over your existing Home Assistant configuration, make sure to enable the Hass.io panel by adding either `discovery:` or `hassio:` to your configuration. From b9203f42819bef05a6a23dbaef1786c3e79b3c88 Mon Sep 17 00:00:00 2001 From: Ludeeus Date: Sun, 20 Aug 2017 21:59:20 +0200 Subject: [PATCH 34/67] Update sensor.openhardwaremonitor.markdown (#3207) --- source/_components/sensor.openhardwaremonitor.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/sensor.openhardwaremonitor.markdown b/source/_components/sensor.openhardwaremonitor.markdown index af8aed48ce8..f0080919b0b 100644 --- a/source/_components/sensor.openhardwaremonitor.markdown +++ b/source/_components/sensor.openhardwaremonitor.markdown @@ -31,6 +31,6 @@ Configuration variables: - **port** (*Optional*): The port of your Open Hardware Monitor API. Default to 8085.

-OpenHardwareMonitor must be running on the host, with "Remote web server" active.
+OpenHardwareMonitor must be running on the host, with "Remote web server" active. You also need to open an inbound port for (TPC 8085) in the advanced firewall settings.

From ad5c9df9b8b5fa72b7f23a19f24c6a2bcf16c146 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Sun, 20 Aug 2017 23:12:08 +0200 Subject: [PATCH 35/67] Fix wireless network for hassbian With later versions of wpa_supplicant the conf file needs a little bit more added to it. --- source/_docs/installation/hassbian/installation.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown index afb735832f9..e190860f0fe 100644 --- a/source/_docs/installation/hassbian/installation.markdown +++ b/source/_docs/installation/hassbian/installation.markdown @@ -36,6 +36,10 @@ The following extras are included on the image: After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up Wifi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this: ```conf +country=SE +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev +update_config=1 + network={ ssid="YOUR_SSID" psk="YOUR_PASSWORD" From 914fa8d4ea3c290f1074744e86d27141c2e94411 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 21 Aug 2017 07:30:26 +0200 Subject: [PATCH 36/67] Update --- source/developers/credits.markdown | 214 +++++++++++++++-------------- 1 file changed, 113 insertions(+), 101 deletions(-) diff --git a/source/developers/credits.markdown b/source/developers/credits.markdown index ab2ee56dd4b..5f9f3f1cbfb 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-07-30 19:56:19 +0000 +date: 2017-08-20 20:44:16 +0000 sidebar: true comments: false sharing: true @@ -13,28 +13,28 @@ 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 "5641 total commits to the home-assistant organization, 3411 commits to home-assistant, 1191 commits to home-assistant.github.io, 576 commits to home-assistant-polymer, 244 commits to home-assistant-js, 112 commits to netdisco, 40 commits to home-assistant-js-websocket, 19 commits to hass-release, 12 commits to home-assistant-assets, 8 commits to example-custom-config, 7 commits to micropython-home-assistant, 4 commits to LabelBot, 4 commits to hassio, 2 commits to issue-bot, 2 commits to lambda-home-assistant-github, 2 commits to hassio-addons, 2 commits to python-hassbian, 2 commits to hassio-addons-example, 1 commit to hassio-build, 1 commit to home-assistant-iOS, 1 commit to home-assistant-notebooks") +- [Paulus Schoutsen (@balloob)](https://github.com/balloob "5706 total commits to the home-assistant organization, 3436 commits to home-assistant, 1206 commits to home-assistant.github.io, 596 commits to home-assistant-polymer, 244 commits to home-assistant-js, 113 commits to netdisco, 42 commits to home-assistant-js-websocket, 21 commits to hass-release, 12 commits to home-assistant-assets, 8 commits to example-custom-config, 7 commits to micropython-home-assistant, 4 commits to LabelBot, 4 commits to hassio, 2 commits to lambda-home-assistant-github, 2 commits to python-hassbian, 2 commits to hassio-addons, 2 commits to hassio-addons-example, 2 commits to issue-bot, 1 commit to hassio-build, 1 commit to home-assistant-notebooks, 1 commit to home-assistant-iOS") ### {% linkable_title Contributors %} (in alphabetical order) - [15goudreau (@15goudreau)](https://github.com/15goudreau "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") -- [Aaron Bach (@bachya)](https://github.com/bachya "1 total commits to the home-assistant organization, 1 commit to home-assistant") -- [Aaron Linville (@linville)](https://github.com/linville "1 total commits to the home-assistant organization, 1 commit to appdaemon") +- [Aaron Bach (@bachya)](https://github.com/bachya "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 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 Malone (@aaroncm)](https://github.com/aaroncm "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [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 "2 total commits to the home-assistant organization, 1 commit to home-assistant, 1 commit to home-assistant.github.io") - [Aaron Wolen (@aaronwolen)](https://github.com/aaronwolen "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [Abhishek Anand (@aa755)](https://github.com/aa755 "2 total commits to the home-assistant organization, 1 commit to home-assistant, 1 commit to home-assistant.github.io") -- [Abílio Costa (@abmantis)](https://github.com/abmantis "9 total commits to the home-assistant organization, 7 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Abílio Costa (@abmantis)](https://github.com/abmantis "14 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to home-assistant.github.io, 1 commit to netdisco") - [Achilleas Pipinellis (@axilleas)](https://github.com/axilleas "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [Adam (@SilvrrGIT)](https://github.com/SilvrrGIT "8 total commits to the home-assistant organization, 8 commits to home-assistant.github.io") - [Adam Allport (@AAllport)](https://github.com/AAllport "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [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 Dullage (@Dullage)](https://github.com/Dullage "2 total commits to the home-assistant organization, 2 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 "187 total commits to the home-assistant organization, 122 commits to home-assistant, 32 commits to home-assistant.github.io, 29 commits to home-assistant-polymer, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant") +- [Adam Mills (@armills)](https://github.com/armills "195 total commits to the home-assistant organization, 127 commits to home-assistant, 34 commits to home-assistant.github.io, 30 commits to home-assistant-polymer, 3 commits to home-assistant-js, 1 commit to homebridge-homeassistant") - [ADeeds (@ADeeds)](https://github.com/ADeeds "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [AdithyanI (@AdithyanI)](https://github.com/AdithyanI "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [Aditya Shevade (@adibis)](https://github.com/adibis "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") @@ -43,14 +43,15 @@ This page contains a list of people who have contributed in one way or another t - [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") - [Adrián López (@adrianlzt)](https://github.com/adrianlzt "8 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 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 "5 total commits to the home-assistant organization, 4 commits to home-assistant, 1 commit to home-assistant.github.io") -- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "11 total commits to the home-assistant organization, 9 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Alan Fischer (@alanfischer)](https://github.com/alanfischer "13 total commits to the home-assistant organization, 10 commits to home-assistant, 3 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") - [Aleksey Gureiev (@alg)](https://github.com/alg "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [Alessandro Mogavero (@alexmogavero)](https://github.com/alexmogavero "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant.github.io") -- [Alex (@alexrockt)](https://github.com/alexrockt "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 (@alexrockt)](https://github.com/alexrockt "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Alex Calderon (@AlexCalderon02)](https://github.com/AlexCalderon02 "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [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") @@ -58,22 +59,17 @@ This page contains a list of people who have contributed in one way or another t - [Alex Tzonkov (@attzonko)](https://github.com/attzonko "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [Alex Vernacchia (@vernak2539)](https://github.com/vernak2539 "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [Alexander Bandukwala (@7h3kk1d)](https://github.com/7h3kk1d "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") -- [Alexander Groß (@agross)](https://github.com/agross "1 total commits to the home-assistant organization, 1 commit 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") -- [Alexander Slansky (@aslansky)](https://github.com/aslansky "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") -- [Alexandre Perrin (@kAworu)](https://github.com/kAworu "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") +- [Alexandre Perrin (@kAworu)](https://github.com/kAworu "3 total commits to the home-assistant organization, 3 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 "5 total commits to the home-assistant organization, 3 commits to home-assistant.github.io, 2 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 "72 total commits to the home-assistant organization, 52 commits to home-assistant.github.io, 18 commits to home-assistant, 1 commit to hassio-addons, 1 commit to pi-gen") +- [Alok Saboo (@arsaboo)](https://github.com/arsaboo "76 total commits to the home-assistant organization, 53 commits to home-assistant.github.io, 21 commits to home-assistant, 1 commit to hassio-addons, 1 commit to pi-gen") - [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") -- [Anastasia A. (@Sacret)](https://github.com/Sacret "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") -- [Anders Gjendem (@agjendem)](https://github.com/agjendem "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") -- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "95 total commits to the home-assistant organization, 68 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") +- [Anders Melchiorsen (@amelchio)](https://github.com/amelchio "97 total commits to the home-assistant organization, 70 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") - [Andrea Falcone (@asfalcone)](https://github.com/asfalcone "5 total commits to the home-assistant organization, 5 commits to issue-bot") -- [Andreas Ahrens (@DevvAndreas)](https://github.com/DevvAndreas "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [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 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [Andreas Rammhold (@andir)](https://github.com/andir "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") @@ -81,18 +77,17 @@ This page contains a list of people who have contributed in one way or another t - [Andreea-Daniela Ene (@AndreeaEne)](https://github.com/AndreeaEne "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [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 (@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 Cockburn (@acockburn)](https://github.com/acockburn "454 total commits to the home-assistant organization, 331 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 10 commits to home-assistant.github.io") -- [Andrew LeCody (@aceat64)](https://github.com/aceat64 "2 total commits to the home-assistant organization, 1 commit to home-assistant, 1 commit to home-assistant.github.io") -- [Andrew Patton (@acusti)](https://github.com/acusti "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") +- [Andrew Cockburn (@acockburn)](https://github.com/acockburn "564 total commits to the home-assistant organization, 439 commits to appdaemon, 88 commits to hadashboard, 25 commits to scenegen, 12 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") - [Andrew Smith (@andrewmichaelsmith)](https://github.com/andrewmichaelsmith "2 total commits to the home-assistant organization, 2 commits to pi-gen") -- [Andrew Starr-Bochicchio (@andrewsomething)](https://github.com/andrewsomething "1 total commits to the home-assistant organization, 1 commit to home-assistant.github.io") - [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 "148 total commits to the home-assistant organization, 78 commits to home-assistant, 45 commits to home-assistant-polymer, 25 commits to home-assistant.github.io") +- [Andrey (@andrey-git)](https://github.com/andrey-git "155 total commits to the home-assistant organization, 81 commits to home-assistant, 49 commits to home-assistant-polymer, 25 commits to home-assistant.github.io") +- [Andrey Kupreychik (@foxel)](https://github.com/foxel "1 total commits to the home-assistant organization, 1 commit 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") -- [Andy Castille (@Klikini)](https://github.com/Klikini "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Andy Castille (@Klikini)](https://github.com/Klikini "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 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") @@ -110,11 +105,13 @@ This page contains a list of people who have contributed in one way or another t - [ArrayLabs (@arraylabs)](https://github.com/arraylabs "7 total commits to the home-assistant organization, 5 commits to home-assistant, 2 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") +- [ashev (@ashev)](https://github.com/ashev "2 total commits to the home-assistant organization, 2 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") - [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") - [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") @@ -131,15 +128,17 @@ This page contains a list of people who have contributed in one way or another t - [bergemalm (@bergemalm)](https://github.com/bergemalm "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [bestlibre (@bestlibre)](https://github.com/bestlibre "13 total commits to the home-assistant organization, 7 commits to home-assistant, 4 commits to home-assistant.github.io, 1 commit to hassio, 1 commit to hassio-build") - [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 "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [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") - [bl8rnr (@bl8rnr)](https://github.com/bl8rnr "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Blanyal D'Souza (@blanyal)](https://github.com/blanyal "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [boojew (@boojew)](https://github.com/boojew "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") +- [boojew (@boojew)](https://github.com/boojew "7 total commits to the home-assistant organization, 5 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 "4 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer, 1 commit to home-assistant") +- [Boyi C (@fanthos)](https://github.com/fanthos "7 total commits to the home-assistant organization, 3 commits to home-assistant-polymer, 2 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") - [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") @@ -160,22 +159,22 @@ This page contains a list of people who have contributed in one way or another t - [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 "87 total commits to the home-assistant organization, 79 commits to home-assistant.github.io, 5 commits to home-assistant, 1 commit to hassbian-scripts, 1 commit to fabric-home-assistant, 1 commit to homebridge-homeassistant") +- [Carlo Costanzo (@CCOSTAN)](https://github.com/CCOSTAN "87 total commits to the home-assistant organization, 79 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") -- [cdce8p (@cdce8p)](https://github.com/cdce8p "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") +- [cdce8p (@cdce8p)](https://github.com/cdce8p "5 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 1 commit 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 "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to home-assistant") - [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 "16 total commits to the home-assistant organization, 10 commits to home-assistant, 6 commits to home-assistant.github.io") +- [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 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 (@firstof9)](https://github.com/firstof9 "1 total commits to the home-assistant organization, 1 commit 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") @@ -185,6 +184,7 @@ This page contains a list of people who have contributed in one way or another t - [Chris Thorn (@chris-thorn)](https://github.com/chris-thorn "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") - [Christiaan Blom (@Deinara)](https://github.com/Deinara "7 total commits to the home-assistant organization, 7 commits to home-assistant") - [Christian Brædstrup (@LinuxChristian)](https://github.com/LinuxChristian "7 total commits to the home-assistant organization, 7 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 "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") - [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") @@ -205,24 +205,26 @@ This page contains a list of people who have contributed in one way or another t - [Corey Pauley (@devspacenine)](https://github.com/devspacenine "1 total commits to the home-assistant organization, 1 commit 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") -- [cribbstechnologies (@cribbstechnologies)](https://github.com/cribbstechnologies "40 total commits to the home-assistant organization, 25 commits to home-assistant, 13 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") +- [cribbstechnologies (@cribbstechnologies)](https://github.com/cribbstechnologies "41 total commits to the home-assistant organization, 26 commits to home-assistant, 13 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") - [CTLS (@CTLS)](https://github.com/CTLS "1 total commits to the home-assistant organization, 1 commit to home-assistant") -- [Dale Higgs (@dale3h)](https://github.com/dale3h "26 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 9 commits to home-assistant, 1 commit to hassbot, 1 commit to homebridge-homeassistant") -- [Dan (@danieljkemp)](https://github.com/danieljkemp "22 total commits to the home-assistant organization, 15 commits to home-assistant, 7 commits to home-assistant.github.io") -- [Dan Cinnamon (@Cinntax)](https://github.com/Cinntax "13 total commits to the home-assistant organization, 11 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Dale Higgs (@dale3h)](https://github.com/dale3h "26 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 9 commits to home-assistant, 1 commit to homebridge-homeassistant, 1 commit to hassbot") +- [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 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 Ford (@dpford)](https://github.com/dpford "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Dan Ports (@drkp)](https://github.com/drkp "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Dan Sarginson (@dansarginson)](https://github.com/dansarginson "1 total commits to the home-assistant organization, 1 commit 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 "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant") - [Dan Van Brunt (@iDVB)](https://github.com/iDVB "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 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 "304 total commits to the home-assistant organization, 210 commits to home-assistant, 92 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") +- [Daniel Høyer Iversen (@Danielhiversen)](https://github.com/Danielhiversen "305 total commits to the home-assistant organization, 211 commits to home-assistant, 92 commits to home-assistant.github.io, 2 commits to home-assistant-polymer") - [Daniel Matuschek (@usul27)](https://github.com/usul27 "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Daniel Perna (@danielperna84)](https://github.com/danielperna84 "57 total commits to the home-assistant organization, 32 commits to home-assistant.github.io, 25 commits to home-assistant") - [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") - [Danijel Stojnic (@danijelst)](https://github.com/danijelst "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Daniyar Yeralin (@yeralin)](https://github.com/yeralin "2 total commits to the home-assistant organization, 1 commit to homebridge-homeassistant, 1 commit to home-assistant") @@ -231,10 +233,10 @@ This page contains a list of people who have contributed in one way or another t - [Dave Banks (@djbanks)](https://github.com/djbanks "3 total commits to the home-assistant organization, 2 commits to appdaemon, 1 commit to home-assistant") - [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 "9 total commits to the home-assistant organization, 9 commits to home-assistant.github.io") +- [David (@fanaticDavid)](https://github.com/fanaticDavid "10 total commits to the home-assistant organization, 9 commits to home-assistant.github.io, 1 commit to home-assistant") - [David Baumann (@daBONDi)](https://github.com/daBONDi "1 total commits to the home-assistant organization, 1 commit to home-assistant") -- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") -- [David McNett (@nugget)](https://github.com/nugget "9 total commits to the home-assistant organization, 5 commits to home-assistant.github.io, 4 commits to home-assistant") +- [David De Sloovere (@DavidDeSloovere)](https://github.com/DavidDeSloovere "4 total commits to the home-assistant organization, 4 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") - [David Straub (@DavidMStraub)](https://github.com/DavidMStraub "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") - [David Wang (@dcwangmit01)](https://github.com/dcwangmit01 "2 total commits to the home-assistant organization, 2 commits to pi-gen") @@ -263,20 +265,22 @@ This page contains a list of people who have contributed in one way or another t - [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") - [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 "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant") +- [engrbm87 (@engrbm87)](https://github.com/engrbm87 "2 total commits to the home-assistant organization, 2 commits to appdaemon") - [Eric Clymer (@ericwclymer)](https://github.com/ericwclymer "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Eric Hagan (@ehagan)](https://github.com/ehagan "2 total commits to the home-assistant organization, 1 commit to home-assistant-polymer, 1 commit to home-assistant") - [Eric Jansen (@ej81)](https://github.com/ej81 "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [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 "94 total commits to the home-assistant organization, 86 commits to home-assistant, 5 commits to home-assistant.github.io, 3 commits to netdisco") +- [Erik Eriksson (@molobrakos)](https://github.com/molobrakos "95 total commits to the home-assistant organization, 87 commits to home-assistant, 5 commits to home-assistant.github.io, 3 commits to netdisco") - [Erik-jan Riemers (@riemers)](https://github.com/riemers "11 total commits to the home-assistant organization, 11 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 "54 total commits to the home-assistant organization, 33 commits to home-assistant, 19 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant") -- [Fabian Affolter (@fabaff)](https://github.com/fabaff "3941 total commits to the home-assistant organization, 2479 commits to home-assistant.github.io, 1289 commits to home-assistant, 59 commits to home-assistant-ansible, 23 commits to home-assistant-dev-helper, 22 commits to home-assistant-assets, 22 commits to home-assistant-notebooks, 21 commits to home-assistant-cli, 10 commits to home-assistant-polymer, 8 commits to netdisco, 6 commits to hassio-build, 1 commit to home-assistant-js-websocket, 1 commit to hassio") +- [Eugenio Panadero (@azogue)](https://github.com/azogue "67 total commits to the home-assistant organization, 38 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 "4016 total commits to the home-assistant organization, 2510 commits to home-assistant.github.io, 1322 commits to home-assistant, 59 commits to home-assistant-ansible, 23 commits to home-assistant-dev-helper, 22 commits to home-assistant-notebooks, 22 commits to home-assistant-assets, 21 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") - [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 "1 total commits to the home-assistant organization, 1 commit 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") +- [fedor1210 (@fedor1210)](https://github.com/fedor1210 "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 schwenzel (@diplix)](https://github.com/diplix "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -287,6 +291,7 @@ This page contains a list of people who have contributed in one way or another t - [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") - [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 "1 total commits to the home-assistant organization, 1 commit to hassio") - [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 "3 total commits to the home-assistant organization, 2 commits to netdisco, 1 commit to home-assistant") - [François Martin (@martinfrancois)](https://github.com/martinfrancois "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") @@ -296,12 +301,13 @@ This page contains a list of people who have contributed in one way or another t - [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 SZOLLOSI (@szogi)](https://github.com/szogi "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [GadgetReactor (@GadgetReactor)](https://github.com/GadgetReactor "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [garrettbeachy (@garrettbeachy)](https://github.com/garrettbeachy "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Georgi Kirichkov (@kirichkov)](https://github.com/kirichkov "8 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io") - [Georgi Yanev (@jumpalottahigh)](https://github.com/jumpalottahigh "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Georgii Staroselskii (@staroselskii)](https://github.com/staroselskii "1 total commits to the home-assistant organization, 1 commit to pi-gen") - [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") @@ -320,14 +326,16 @@ This page contains a list of people who have contributed in one way or another t - [GreenTurtwig (@GreenTurtwig)](https://github.com/GreenTurtwig "78 total commits to the home-assistant organization, 71 commits to home-assistant.github.io, 7 commits to home-assistant") - [Greg (@theCMack)](https://github.com/theCMack "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Greg Dowling (@pavoni)](https://github.com/pavoni "245 total commits to the home-assistant organization, 218 commits to home-assistant, 25 commits to home-assistant.github.io, 2 commits to netdisco") -- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [Greg Laabs (@OverloadUT)](https://github.com/OverloadUT "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Greg MacLellan (@gregmac)](https://github.com/gregmac "1 total commits to the home-assistant organization, 1 commit to pi-gen") - [Greg Stevenson (@gstevenson)](https://github.com/gstevenson "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") - [Gregor Gruener (@ggruner)](https://github.com/ggruner "1 total commits to the home-assistant organization, 1 commit 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") - [gsabbe (@gsabbe)](https://github.com/gsabbe "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Gunnar Helgason (@gunnarhelgason)](https://github.com/gunnarhelgason "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [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") +- [Haim Gelfenbeyn (@hageltech)](https://github.com/hageltech "1 total commits to the home-assistant organization, 1 commit 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") - [Hao Hu (@howiehu)](https://github.com/howiehu "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -340,7 +348,7 @@ This page contains a list of people who have contributed in one way or another t - [HBDK (@HBDK)](https://github.com/HBDK "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [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") +- [Hellowlol (@Hellowlol)](https://github.com/Hellowlol "5 total commits to the home-assistant organization, 3 commits to netdisco, 1 commit to appdaemon, 1 commit to home-assistant") - [Helmut Januschka (@hjanuschka)](https://github.com/hjanuschka "3 total commits to the home-assistant organization, 3 commits to issue-bot") - [Henning Dickten (@hensing)](https://github.com/hensing "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Henrik Nicolaisen (@hmn)](https://github.com/hmn "6 total commits to the home-assistant organization, 6 commits to home-assistant") @@ -364,6 +372,7 @@ This page contains a list of people who have contributed in one way or another t - [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") - [J. B. Rainsberger (@jbrains)](https://github.com/jbrains "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Jack (@iamjackg)](https://github.com/iamjackg "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [jack (@jackmakesthings)](https://github.com/jackmakesthings "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [Jack Chapple (@jchapple)](https://github.com/jchapple "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Jack Minardi (@jminardi)](https://github.com/jminardi "8 total commits to the home-assistant organization, 8 commits to home-assistant") @@ -381,7 +390,7 @@ This page contains a list of people who have contributed in one way or another t - [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") - [Jan-Preben Mossin (@jpmossin)](https://github.com/jpmossin "1 total commits to the home-assistant organization, 1 commit to home-assistant") -- [Janne Grunau (@jannau)](https://github.com/jannau "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") +- [Janne Grunau (@jannau)](https://github.com/jannau "4 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 2 commits to home-assistant") - [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 "2 total commits to the home-assistant organization, 1 commit to netdisco, 1 commit to home-assistant") - [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") @@ -398,6 +407,7 @@ This page contains a list of people who have contributed in one way or another t - [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 Volkman (@jvolkman)](https://github.com/jvolkman "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [Jeroen ter Heerdt (@jeroenterheerdt)](https://github.com/jeroenterheerdt "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Jerold Albertson (@jeroldalbertson-wf)](https://github.com/jeroldalbertson-wf "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") - [Jesse Hills (@jesserockz)](https://github.com/jesserockz "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant") - [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") @@ -408,76 +418,68 @@ This page contains a list of people who have contributed in one way or another t - [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") - [jnimmo (@jnimmo)](https://github.com/jnimmo "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Joakim af Sandeberg (@jotunacorn)](https://github.com/jotunacorn "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [Joakim Nohlgård (@gebart)](https://github.com/gebart "2 total commits to the home-assistant organization, 2 commits to libcoap") - [Job Vermeulen (@jmvermeulen)](https://github.com/jmvermeulen "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Joe Lee (@xnoodle)](https://github.com/xnoodle "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Joe Rocklin (@joerocklin)](https://github.com/joerocklin "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [joe248 (@joe248)](https://github.com/joe248 "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [Joeboyc2 (@Joeboyc2)](https://github.com/Joeboyc2 "16 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 1 commit to home-assistant") -- [Joel Asher Friedman (@joelash)](https://github.com/joelash "1 total commits to the home-assistant organization, 1 commit 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 "41 total commits to the home-assistant organization, 33 commits to home-assistant, 7 commits to home-assistant.github.io, 1 commit to netdisco") -- [Johan Carlquist (@theseal)](https://github.com/theseal "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [Johan Haals (@jhaals)](https://github.com/jhaals "1 total commits to the home-assistant organization, 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") - [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 Arild Berentsen (@turbokongen)](https://github.com/turbokongen "180 total commits to the home-assistant organization, 141 commits to home-assistant, 31 commits to home-assistant.github.io, 8 commits to home-assistant-polymer") +- [John Arild Berentsen (@turbokongen)](https://github.com/turbokongen "181 total commits to the home-assistant organization, 142 commits to home-assistant, 31 commits to home-assistant.github.io, 8 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 "18 total commits to the home-assistant organization, 11 commits to hadashboard, 6 commits to home-assistant.github.io, 1 commit to home-assistant") - [John McLaughlin (@loghound)](https://github.com/loghound "2 total commits to the home-assistant organization, 2 commits to home-assistant") -- [John Mihalic (@mezz64)](https://github.com/mezz64 "39 total commits to the home-assistant organization, 27 commits to home-assistant, 11 commits to home-assistant.github.io, 1 commit to hadashboard") -- [John Williams (@Jaidan)](https://github.com/Jaidan "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [John Mihalic (@mezz64)](https://github.com/mezz64 "42 total commits to the home-assistant organization, 29 commits to home-assistant, 12 commits to home-assistant.github.io, 1 commit to hadashboard") - [johnappletree (@johnappletree)](https://github.com/johnappletree "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 Evans (@craftyjon)](https://github.com/craftyjon "1 total commits to the home-assistant organization, 1 commit to home-assistant") - [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") - [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") -- [Jordan Keith (@zeddD1abl0)](https://github.com/zeddD1abl0 "1 total commits to the home-assistant organization, 1 commit 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 Wright (@JshWright)](https://github.com/JshWright "29 total commits to the home-assistant organization, 21 commits to home-assistant, 8 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 (@kentcalero)](https://github.com/kentcalero "10 total commits to the home-assistant organization, 9 commits to home-assistant.github.io, 1 commit to home-assistant") +- [JudgeDredd (@kentcalero)](https://github.com/kentcalero "9 total commits to the home-assistant organization, 9 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 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Julien Danjou (@jd)](https://github.com/jd "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [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 "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [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") -- [Justin Moy (@justincmoy)](https://github.com/justincmoy "1 total commits to the home-assistant organization, 1 commit to home-assistant") -- [Justin Weberg (@justweb1)](https://github.com/justweb1 "28 total commits to the home-assistant organization, 13 commits to home-assistant-polymer, 7 commits to hassbot, 4 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to hassio, 1 commit to home-assistant-js") -- [Justyn Shull (@justyns)](https://github.com/justyns "6 total commits to the home-assistant organization, 6 commits to home-assistant") -- [jwillaz (@jwillaz)](https://github.com/jwillaz "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Kai (@luxus)](https://github.com/luxus "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to home-assistant") +- [Justin Weberg (@justweb1)](https://github.com/justweb1 "28 total commits to the home-assistant organization, 13 commits to home-assistant-polymer, 7 commits to hassbot, 4 commits to home-assistant, 2 commits to home-assistant.github.io, 1 commit to home-assistant-js, 1 commit to hassio") +- [Justyn Shull (@justyns)](https://github.com/justyns "5 total commits to the home-assistant organization, 5 commits to home-assistant") +- [jwillaz (@jwillaz)](https://github.com/jwillaz "3 total commits to the home-assistant organization, 3 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 "7 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io, 1 commit to netdisco") - [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") - [kaustubhphatak (@kaustubhphatak)](https://github.com/kaustubhphatak "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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") - [Keith (@seedzero)](https://github.com/seedzero "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Ken Davidson (@kwdavidson)](https://github.com/kwdavidson "6 total commits to the home-assistant organization, 4 commits to home-assistant.github.io, 2 commits to appdaemon") - [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 "10 total commits to the home-assistant organization, 6 commits to home-assistant, 4 commits to home-assistant.github.io") +- [Kevin Fronczak (@fronzbot)](https://github.com/fronzbot "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 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 "7 total commits to the home-assistant organization, 6 commits to home-assistant.github.io, 1 commit to home-assistant") +- [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 "2 total commits to the home-assistant organization, 2 commits to home-assistant") +- [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 "7 total commits to the home-assistant organization, 4 commits to home-assistant, 3 commits to home-assistant.github.io") -- [Koen Ekelschot (@peckham)](https://github.com/peckham "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [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") @@ -490,7 +492,6 @@ This page contains a list of people who have contributed in one way or another t - [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 "52 total commits to the home-assistant organization, 41 commits to home-assistant, 10 commits to home-assistant.github.io, 1 commit to home-assistant-polymer") - [lichtteil (@lichtteil)](https://github.com/lichtteil "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [LightIsLife (@LightIsLife)](https://github.com/LightIsLife "2 total commits to the home-assistant organization, 2 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") - [lrmate (@lrmate)](https://github.com/lrmate "3 total commits to the home-assistant organization, 3 commits to home-assistant") @@ -517,7 +518,7 @@ This page contains a list of people who have contributed in one way or another t - [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 "114 total commits to the home-assistant organization, 62 commits to home-assistant, 52 commits to home-assistant.github.io") +- [Marcelo Moreira de Mello (@tchellomello)](https://github.com/tchellomello "115 total commits to the home-assistant organization, 62 commits to home-assistant, 53 commits to home-assistant.github.io") - [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") - [mariwing (@mariwing)](https://github.com/mariwing "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -525,22 +526,25 @@ This page contains a list of people who have contributed in one way or another t - [Mark Huson (@mehuman)](https://github.com/mehuman "9 total commits to the home-assistant organization, 9 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 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 Stenberg (@fingon)](https://github.com/fingon "6 total commits to the home-assistant organization, 6 commits to home-assistant") - [Martin Bernstorff (@ryqiem)](https://github.com/ryqiem "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "124 total commits to the home-assistant organization, 99 commits to home-assistant, 25 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.github.io") +- [Martin Hjelmare (@MartinHjelmare)](https://github.com/MartinHjelmare "130 total commits to the home-assistant organization, 105 commits to home-assistant, 25 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 Vacula (@MatoKafkac)](https://github.com/MatoKafkac "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [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 "23 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 7 commits to home-assistant, 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 "3 total commits to the home-assistant organization, 3 commits to homebridge-homeassistant") +- [Matt Schmitt (@schmittx)](https://github.com/schmittx "18 total commits to the home-assistant organization, 14 commits to homebridge-homeassistant, 4 commits to home-assistant") - [matt2005 (@matt2005)](https://github.com/matt2005 "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 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 "13 total commits to the home-assistant organization, 9 commits to home-assistant, 4 commits to home-assistant.github.io") +- [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") - [Max Rumpf (@Maxr1998)](https://github.com/Maxr1998 "5 total commits to the home-assistant organization, 5 commits to home-assistant.github.io") - [mboeru (@mboeru)](https://github.com/mboeru "1 total commits to the home-assistant organization, 1 commit to home-assistant-iOS") - [mertenats (@mertenats)](https://github.com/mertenats "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") @@ -571,18 +575,19 @@ This page contains a list of people who have contributed in one way or another t - [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") -- [mjj4791 (@mjj4791)](https://github.com/mjj4791 "15 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 2 commits to home-assistant") +- [mjj4791 (@mjj4791)](https://github.com/mjj4791 "17 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 4 commits to home-assistant") - [mnestor (@mnestor)](https://github.com/mnestor "6 total commits to the home-assistant organization, 5 commits to home-assistant, 1 commit to home-assistant-polymer") -- [Molodax (@Molodax)](https://github.com/Molodax "6 total commits to the home-assistant organization, 6 commits to home-assistant.github.io") +- [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") -- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [moskovskiy82 (@moskovskiy82)](https://github.com/moskovskiy82 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [motir (@motir)](https://github.com/motir "1 total commits to the home-assistant organization, 1 commit to appdaemon") - [mountainsandcode (@mountainsandcode)](https://github.com/mountainsandcode "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "14 total commits to the home-assistant organization, 6 commits to home-assistant, 6 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant") +- [Nathan Henrie (@n8henrie)](https://github.com/n8henrie "16 total commits to the home-assistant organization, 8 commits to home-assistant, 6 commits to home-assistant.github.io, 2 commits to homebridge-homeassistant") - [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 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -595,21 +600,21 @@ This page contains a list of people who have contributed in one way or another t - [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") - [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 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Niklas (@niklaswa)](https://github.com/niklaswa "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [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 "112 total commits to the home-assistant organization, 87 commits to home-assistant, 25 commits to home-assistant.github.io") - [nordlead2005 (@nordlead2005)](https://github.com/nordlead2005 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [NotoriousBDG (@notoriousbdg)](https://github.com/notoriousbdg "1 total commits to the home-assistant organization, 1 commit to hassio-addons") +- [NotoriousBDG (@notoriousbdg)](https://github.com/notoriousbdg "3 total commits to the home-assistant organization, 3 commits to hassio-addons") - [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") - [nunojusto (@nunojusto)](https://github.com/nunojusto "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "4 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io") +- [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") - [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 "18 total commits to the home-assistant organization, 11 commits to home-assistant, 6 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") @@ -618,7 +623,7 @@ This page contains a list of people who have contributed in one way or another t - [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") - [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 "1789 total commits to the home-assistant organization, 685 commits to hassio, 375 commits to home-assistant, 255 commits to hassio-addons, 229 commits to hassio-build, 229 commits to home-assistant.github.io, 14 commits to hassio-addons-example, 1 commit to home-assistant-js-websocket, 1 commit to netdisco") +- [Pascal Vizeli (@pvizeli)](https://github.com/pvizeli "1870 total commits to the home-assistant organization, 727 commits to hassio, 377 commits to home-assistant, 274 commits to hassio-addons, 238 commits to hassio-build, 238 commits to home-assistant.github.io, 14 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") - [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 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") @@ -634,16 +639,16 @@ This page contains a list of people who have contributed in one way or another t - [PetePriority (@PetePriority)](https://github.com/PetePriority "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [petkov (@petkov)](https://github.com/petkov "2 total commits to the home-assistant organization, 2 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 "6 total commits to the home-assistant organization, 6 commits to home-assistant") +- [pezinek (@pezinek)](https://github.com/pezinek "7 total commits to the home-assistant organization, 7 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 "2 total commits to the home-assistant organization, 2 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 "13 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 6 commits to home-assistant") +- [Phil Hawthorne (@philhawthorne)](https://github.com/philhawthorne "15 total commits to the home-assistant organization, 9 commits to home-assistant.github.io, 6 commits to home-assistant") - [Phileep (@Phileep)](https://github.com/Phileep "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "20 total commits to the home-assistant organization, 13 commits to home-assistant, 7 commits to home-assistant.github.io") -- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "8 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io") +- [Philipp Schmitt (@pschmitt)](https://github.com/pschmitt "28 total commits to the home-assistant organization, 18 commits to home-assistant, 10 commits to home-assistant.github.io") +- [PhracturedBlue (@PhracturedBlue)](https://github.com/PhracturedBlue "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") - [Pierre Ståhl (@postlund)](https://github.com/postlund "34 total commits to the home-assistant organization, 22 commits to home-assistant, 8 commits to home-assistant.github.io, 4 commits to netdisco") - [pinksocks (@pinksocks)](https://github.com/pinksocks "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Piratonym (@Piratonym)](https://github.com/Piratonym "2 total commits to the home-assistant organization, 2 commits to home-assistant") @@ -664,9 +669,9 @@ This page contains a list of people who have contributed in one way or another t - [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 "1191 total commits to the home-assistant organization, 531 commits to home-assistant-iOS, 255 commits to home-assistant, 247 commits to home-assistant.github.io, 80 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 home-assistant-js-websocket, 3 commits to hassbot, 3 commits to organization, 3 commits to home-assistant-cli, 3 commits to scenegen, 3 commits to hadashboard, 3 commits to appdaemon, 3 commits to home-assistant-js, 2 commits to fabric-home-assistant, 2 commits to LabelBot, 2 commits to home-assistant-ansible, 2 commits to micropython-home-assistant, 2 commits to home-assistant-dev-helper, 2 commits to lambda-home-assistant-github, 2 commits to home-assistant-assets, 2 commits to home-assistant-notebooks") +- [Robbie Trencheny (@robbiet480)](https://github.com/robbiet480 "1197 total commits to the home-assistant organization, 531 commits to home-assistant-iOS, 255 commits to home-assistant, 247 commits to home-assistant.github.io, 86 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 home-assistant-cli, 3 commits to hassbot, 3 commits to scenegen, 3 commits to home-assistant-js, 3 commits to home-assistant-js-websocket, 3 commits to appdaemon, 3 commits to organization, 2 commits to LabelBot, 2 commits to fabric-home-assistant, 2 commits to micropython-home-assistant, 2 commits to home-assistant-notebooks, 2 commits to home-assistant-dev-helper, 2 commits to lambda-home-assistant-github, 2 commits to home-assistant-assets, 2 commits to home-assistant-ansible") - [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 "6 total commits to the home-assistant organization, 3 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Robin (@robmarkcole)](https://github.com/robmarkcole "8 total commits to the home-assistant organization, 4 commits to home-assistant, 4 commits to home-assistant.github.io") - [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") @@ -698,15 +703,16 @@ This page contains a list of people who have contributed in one way or another t - [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 "39 total commits to the home-assistant organization, 35 commits to home-assistant, 4 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") +- [Scott Bradshaw (@swbradshaw)](https://github.com/swbradshaw "4 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 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 "58 total commits to the home-assistant organization, 39 commits to home-assistant, 10 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 "9 total commits to the home-assistant organization, 5 commits to home-assistant, 4 commits to home-assistant.github.io") +- [Sean Gollschewsky (@gollo)](https://github.com/gollo "12 total commits to the home-assistant organization, 8 commits to home-assistant, 4 commits to home-assistant.github.io") - [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 Hartnick (@goir)](https://github.com/goir "1 total commits to the home-assistant organization, 1 commit to home-assistant") +- [Sebastian Muszynski (@syssi)](https://github.com/syssi "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Sebastian von Minckwitz (@teodoc)](https://github.com/teodoc "1 total commits to the home-assistant organization, 1 commit to home-assistant-polymer") - [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") - [Shawna (@Nightarrow85)](https://github.com/Nightarrow85 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -721,15 +727,15 @@ This page contains a list of people who have contributed in one way or another t - [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") +- [Steven Looman (@StevenLooman)](https://github.com/StevenLooman "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Steven Webb (@cy1701)](https://github.com/cy1701 "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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") - [Stéphane Bidoul (ACSONE) (@sbidoul)](https://github.com/sbidoul "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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") -- [Sören Oldag (@soldag)](https://github.com/soldag "12 total commits to the home-assistant organization, 7 commits to home-assistant.github.io, 5 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") - [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") -- [techtrails (@techtrails)](https://github.com/techtrails "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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 "5 total commits to the home-assistant organization, 3 commits to home-assistant, 2 commits to home-assistant.github.io") - [Teemu Patja (@tpatja)](https://github.com/tpatja "2 total commits to the home-assistant organization, 2 commits to home-assistant") @@ -744,16 +750,19 @@ This page contains a list of people who have contributed in one way or another t - [Thibault Maekelbergh (@thibmaek)](https://github.com/thibmaek "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [ThinkPadNL (@ThinkPadNL)](https://github.com/ThinkPadNL "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") - [Thomas (@ktpx)](https://github.com/ktpx "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [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 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") +- [thrawnarn (@thrawnarn)](https://github.com/thrawnarn "3 total commits to the home-assistant organization, 2 commits to home-assistant.github.io, 1 commit to netdisco") - [ThUnD3r|Gr33n (@thundergreen)](https://github.com/thundergreen "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") - [tijuca (@tijuca)](https://github.com/tijuca "106 total commits to the home-assistant organization, 106 commits to libcoap") - [Tim (@tinglis1)](https://github.com/tinglis1 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [Tim Gray (@tgray)](https://github.com/tgray "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") +- [Tim Lyakhovetskiy (@tlyakhov)](https://github.com/tlyakhov "2 total commits to the home-assistant organization, 2 commits to home-assistant") - [Tim Wilbrink (@TWilb)](https://github.com/TWilb "14 total commits to the home-assistant organization, 14 commits to home-assistant-iOS") +- [timstanley1985 (@timstanley1985)](https://github.com/timstanley1985 "4 total commits to the home-assistant organization, 4 commits to home-assistant.github.io") - [Tobie Booth (@tobiebooth)](https://github.com/tobiebooth "4 total commits to the home-assistant organization, 3 commits to home-assistant, 1 commit to home-assistant-polymer") - [Toby Gray (@tobygray)](https://github.com/tobygray "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Todd McNeal (@tmcneal)](https://github.com/tmcneal "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -762,7 +771,7 @@ This page contains a list of people who have contributed in one way or another t - [Tom Duijf (@tomduijf)](https://github.com/tomduijf "70 total commits to the home-assistant organization, 53 commits to home-assistant, 9 commits to home-assistant.github.io, 6 commits to home-assistant-polymer, 2 commits to netdisco") - [Tom Hoover (@tomhoover)](https://github.com/tomhoover "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [Tom J Nowell (@tomjn)](https://github.com/tomjn "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Tom Matheussen (@Tommatheussen)](https://github.com/Tommatheussen "10 total commits to the home-assistant organization, 4 commits to home-assistant-polymer, 3 commits to home-assistant, 3 commits to home-assistant.github.io") +- [Tom Matheussen (@Tommatheussen)](https://github.com/Tommatheussen "11 total commits to the home-assistant organization, 4 commits to home-assistant-polymer, 4 commits to home-assistant, 3 commits to home-assistant.github.io") - [Tom Usher (@tomusher)](https://github.com/tomusher "1 total commits to the home-assistant organization, 1 commit to netdisco") - [Tomi Tuhkanen (@ttu)](https://github.com/ttu "3 total commits to the home-assistant organization, 3 commits to home-assistant") - [Tony Torralba (@atorralba)](https://github.com/atorralba "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") @@ -771,24 +780,27 @@ This page contains a list of people who have contributed in one way or another t - [Trevor (@tboyce021)](https://github.com/tboyce021 "10 total commits to the home-assistant organization, 7 commits to home-assistant, 3 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") - [trollkarlen (@trollkarlen)](https://github.com/trollkarlen "5 total commits to the home-assistant organization, 5 commits to home-assistant") -- [Tsvi Mostovicz (@tsvi)](https://github.com/tsvi "3 total commits to the home-assistant organization, 3 commits to home-assistant") +- [Tsvi Mostovicz (@tsvi)](https://github.com/tsvi "4 total commits to the home-assistant organization, 4 commits to home-assistant") - [Tyler Crumpton (@tylercrumpton)](https://github.com/tylercrumpton "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Tyler Page (@iamtpage)](https://github.com/iamtpage "2 total commits to the home-assistant organization, 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") +- [upsert (@upsert)](https://github.com/upsert "1 total commits to the home-assistant organization, 1 commit to netdisco") - [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") - [Valentin VĂLCIU (@axiac)](https://github.com/axiac "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [viswa-swami (@viswa-swami)](https://github.com/viswa-swami "6 total commits to the home-assistant organization, 6 commits to home-assistant") +- [viswa-swami (@viswa-swami)](https://github.com/viswa-swami "7 total commits to the home-assistant organization, 7 commits to home-assistant") - [Vlad Korniev (@vkorn)](https://github.com/vkorn "5 total commits to the home-assistant organization, 2 commits to home-assistant, 2 commits to home-assistant.github.io, 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 "18 total commits to the home-assistant organization, 13 commits to home-assistant.github.io, 5 commits to appdaemon") +- [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") +- [waxhell (@waxhell)](https://github.com/waxhell "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Wilco Land (@Wilco89)](https://github.com/Wilco89 "3 total commits to the home-assistant organization, 3 commits to home-assistant.github.io") - [wildcomputations (@wildcomputations)](https://github.com/wildcomputations "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") -- [Will Heid (@bassclarinetl2)](https://github.com/bassclarinetl2 "15 total commits to the home-assistant organization, 14 commits to home-assistant.github.io, 1 commit to fabric-home-assistant") +- [Will Heid (@bassclarinetl2)](https://github.com/bassclarinetl2 "16 total commits to the home-assistant organization, 15 commits to home-assistant.github.io, 1 commit to fabric-home-assistant") - [Will Hughes (@insertjokehere)](https://github.com/insertjokehere "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [Will W. (@tiktok7)](https://github.com/tiktok7 "6 total commits to the home-assistant organization, 4 commits to home-assistant, 2 commits to home-assistant.github.io") - [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 Scanlon (@w1ll1am23)](https://github.com/w1ll1am23 "73 total commits to the home-assistant organization, 52 commits to home-assistant, 19 commits to home-assistant.github.io, 2 commits to netdisco") +- [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 "79 total commits to the home-assistant organization, 55 commits to home-assistant, 22 commits to home-assistant.github.io, 2 commits to netdisco") - [wind-rider (@wind-rider)](https://github.com/wind-rider "5 total commits to the home-assistant organization, 5 commits to home-assistant") - [Wojciech Bederski (@wuub)](https://github.com/wuub "2 total commits to the home-assistant organization, 2 commits to home-assistant.github.io") - [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") @@ -811,4 +823,4 @@ This page contains a list of people who have contributed in one way or another t 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 Sunday, July 30th 2017, 7:56:19 pm UTC. +This page was last updated Sunday, August 20th 2017, 8:44:16 pm UTC. From 601a78f5664536e5f8237270fe73afbb2b9421ac Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 21 Aug 2017 07:56:55 +0200 Subject: [PATCH 37/67] Add the generation of the credits --- source/developers/releasing.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/developers/releasing.markdown b/source/developers/releasing.markdown index efcbf5cc10c..2d163ffd6ed 100644 --- a/source/developers/releasing.markdown +++ b/source/developers/releasing.markdown @@ -39,7 +39,8 @@ This page describes the steps for publishing a new Home Assistant release. Those 3. Update `config.yml` with link to the new release blog post and version number (at the bottom of the file). 4. Merge `current` into release branch (`$ git checkout release-0-40 && git merge current`) to make the PR mergeable. 5. Merge pull request (blog post, updated frontpage, and all new documentation) to `current`. DO NOT SQUASH! -6. Merge `current` into `next`. +6. Run `credits_generator`. +7. Merge `current` into `next`. ### {% linkable_title Docker Hub %} From 630b264b185c22139b18049962f80787df9b075b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Mon, 21 Aug 2017 11:11:33 +0200 Subject: [PATCH 38/67] Update xiaomi.markdown --- source/_components/xiaomi.markdown | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/source/_components/xiaomi.markdown b/source/_components/xiaomi.markdown index a11431147e8..6ee2f3f811d 100644 --- a/source/_components/xiaomi.markdown +++ b/source/_components/xiaomi.markdown @@ -132,3 +132,18 @@ Automation example data: gw_mac: xxxxxxxxxxxx ``` + + +### {% linkable_title Troubleshooting %} + +**Connection problem** + +``` +2017-08-20 16:51:19 ERROR (SyncWorker_0) [homeassistant.components.xiaomi] No gateway discovered +2017-08-20 16:51:20 ERROR (MainThread) [homeassistant.setup] Setup failed for xiaomi: Component failed to initialize. +``` + +That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall. +- Turn off the firewall on the HA computer +- Try to leave the mac address blank. +- Try to set `discovery_retry: 10` From 1e30350043f1b521e6a62844825437e094a1a41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Mon, 21 Aug 2017 11:40:50 +0200 Subject: [PATCH 39/67] Update xiaomi.markdown --- source/_components/xiaomi.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_components/xiaomi.markdown b/source/_components/xiaomi.markdown index 6ee2f3f811d..4c1d2f8ae89 100644 --- a/source/_components/xiaomi.markdown +++ b/source/_components/xiaomi.markdown @@ -143,7 +143,9 @@ Automation example 2017-08-20 16:51:20 ERROR (MainThread) [homeassistant.setup] Setup failed for xiaomi: Component failed to initialize. ``` -That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall. +That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall. +- Make sure you have enabled LAN access: https://community.home-assistant.io/t/beta-xiaomi-gateway-integration/8213/1832 - Turn off the firewall on the HA computer - Try to leave the mac address blank. - Try to set `discovery_retry: 10` +- Try to disable and then renable LAN access From 04a5561ff7d264b871db24a29b3af94ec566959f Mon Sep 17 00:00:00 2001 From: Ken Davidson Date: Mon, 21 Aug 2017 08:28:05 -0400 Subject: [PATCH 40/67] Minor language edits. (#3215) --- source/_components/rss_feed_template.markdown | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/_components/rss_feed_template.markdown b/source/_components/rss_feed_template.markdown index 9dff1d5ffc5..178f3434b05 100644 --- a/source/_components/rss_feed_template.markdown +++ b/source/_components/rss_feed_template.markdown @@ -12,10 +12,9 @@ ha_category: Front end ha_release: 0.44 --- -The `rss_feed_template` component can export any information from Home Assistant as static RSS feed. This can be used to display those information on several devices using RSS readers. While native apps for Home Assistant are not widely available, native RSS readers exists for almost any platform. - -E.g. on android, the app "Simple RSS Widget" can be used to display temperatures on the home screen. +The `rss_feed_template` component can export any information from Home Assistant as a static RSS feed. This can be used to display that information on many types of devices using an RSS reader. While native apps for Home Assistant are not widely available, native RSS readers exist for almost any platform. +For example, on Android, the app "Simple RSS Widget" can be used to display temperatures on the home screen. ```yaml # Example configuration.yml entry @@ -30,9 +29,9 @@ rss_feed_template: Configuration variables: -- **requires_api_password:** (*Optional*): If true and an api password is set, the password must be passed via '?api_password=...' parameter (Default: True) -- **feed_id** (*Required*): The key is used as id of the feed. The feed can be accessed at /api/rss_template/feed_id (example: 'garden') +- **requires_api_password:** (*Optional*): If true and an API password is set, the password must be passed via '?api_password=...' parameter (Default: True) +- **feed_id** (*Required*): The key is used as the ID of the feed. The feed can be accessed at /api/rss_template/feed_id (example: 'garden') - **title** (*Optional*): The title of the feed, which is parsed as [template](/topics/templating/). -- **items** (*Required*): A list of feed items +- **items** (*Required*): A list of feed items. - **items/title** (*Optional*): The title of the item, which is parsed as [template](/topics/templating/). - **items/description** (*Optional*): The description of the item, which is parsed as [template](/topics/templating/). From 47b6c847f157176dad288ff93f37dcb338a4c83d Mon Sep 17 00:00:00 2001 From: Tsvi Mostovicz Date: Mon, 21 Aug 2017 15:42:24 +0300 Subject: [PATCH 41/67] Usage of file directive for pushbullet (#3216) * Usage of file directive for pushbullet This is the missing documentation for PR#8763 in home assistant * Fix spelling and grammar * Replace sample with link --- source/_components/notify.pushbullet.markdown | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index d1cd11a92c0..83b512b437a 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -59,8 +59,6 @@ To use notifications, please see the [getting started with automation page](/get ### {% linkable_title URL support %} ```yaml -... - action: service: notify.NOTIFIER_NAME data: @@ -70,5 +68,23 @@ action: url: google.com ``` -- **url** (*Required*): Page URL to send with pushbullet. +- **url** (*Required*): Page URL to send with Pushbullet. + +### {% linkable_title File support %} + +```yaml +action: + service: notify.NOTIFIER_NAME + data: + title: Send file + message: This is a file + data: + file: /path/to/my/file +``` + +- **file** (*Required*): File to send with Pushbullet. + +

+Don't forget to [whitelist external directories](/docs/configuration/basic/), so Home Assistant has access to them. +

From bb53abdc6fd9607f8a0affe045c749b7409d8715 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 21 Aug 2017 15:16:01 +0200 Subject: [PATCH 42/67] Add link --- source/_components/notify.ciscospark.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_components/notify.ciscospark.markdown b/source/_components/notify.ciscospark.markdown index f9b915b2cec..21ef7eec806 100644 --- a/source/_components/notify.ciscospark.markdown +++ b/source/_components/notify.ciscospark.markdown @@ -29,5 +29,8 @@ notify: token: roomid: ``` + + + To use notifications, please see the [getting started with automation page](/getting-started/automation/). From 1ba327ce68b0269acbd0da9d158021ec722e2d8c Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 21 Aug 2017 15:27:51 +0200 Subject: [PATCH 43/67] Add link to details --- source/_components/notify.gntp.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/notify.gntp.markdown b/source/_components/notify.gntp.markdown index f319a5980c2..29bda0c15ac 100644 --- a/source/_components/notify.gntp.markdown +++ b/source/_components/notify.gntp.markdown @@ -34,3 +34,5 @@ Configuration variables: - **hostname** (*Optional*): The hostname or IP address of the GNTP server to contact. - **password** (*Optional*): The password to authenticate to the GNTP server with. - **port** (*Optional*): The port that the GNTP server runs on. The specification states that servers should not allow users to use any port other than 23053 but `port` is provided here just in case. + +To use notifications, please see the [getting started with automation page](/getting-started/automation/). From d0e6af2e7cf2bb38b01195e194f0e7da48daa663 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 21 Aug 2017 15:28:55 +0200 Subject: [PATCH 44/67] Add description of configuration variables --- source/_components/notify.ciscospark.markdown | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/_components/notify.ciscospark.markdown b/source/_components/notify.ciscospark.markdown index 21ef7eec806..6892b4192e0 100644 --- a/source/_components/notify.ciscospark.markdown +++ b/source/_components/notify.ciscospark.markdown @@ -12,25 +12,28 @@ ha_category: Notifications ha_release: "0.40" --- -The `Cisco Spark` platform allows you to deliver notifications from Home Assistant to [Cisco Spark](https://ciscospark.com/). +The `ciscospark` notification platform allows you to deliver notifications from Home Assistant to [Cisco Spark](https://ciscospark.com/). To use this notification platform you need to get a developer token. To obtain a token visit [Spark for Devleopers](https://developer.ciscospark.com/index.html) -At this time you also need to specify the `Cisco Spark` `roomid`. The `roomid` can also be found at [Spark for Devleopers](https://developer.ciscospark.com/index.html). -Just look in the Doumentation under Rooms. +At this time you also need to specify the `Cisco Spark` `roomid`. The `roomid` can also be found at [Spark for Devleopers](https://developer.ciscospark.com/index.html). Just look in the Doumentation under Rooms. -To enable the `Cisco Spark` notification in your installation, add the following to your `configuration.yaml` file: +To enable the Cisco Spark notification in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry notify: - name: NOTIFIER_NAME platform: ciscospark - token: - roomid: + token: YOUR_DEVELOPER_TOKEN + roomid: CISCO_SPARK_ROOMID ``` +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`. +- **token** (*Required*): Your development token. +- **roomid** (*Required*): The Room ID. To use notifications, please see the [getting started with automation page](/getting-started/automation/). From 71ab7f941cb0fc20af55dd6a2778c56f401a4bb0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 22 Aug 2017 08:02:09 +0200 Subject: [PATCH 45/67] Add night mode example --- source/_components/frontend.markdown | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index d04a20945e3..34e9021ea3b 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -43,6 +43,8 @@ There are 2 themes-related services: Example in automation: +Set a theme at the startup of Home Assistant: + ```yaml automation: - alias: 'Set theme at startup' @@ -55,6 +57,22 @@ automation: data: name: happy ``` + +To enable "night mode": + +```yaml +automation: + - alias: 'Set dark theme for the night' + initial_state: True + trigger: + - platform: time + at: '21:00' + action: + - service: frontend.set_theme + data: + name: darkred +``` + ### {% 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. From 36366847b7bb52331507cbb46238040bdc75b064 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 22 Aug 2017 10:31:33 +0200 Subject: [PATCH 46/67] Update --- source/help/talking-points.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/help/talking-points.markdown b/source/help/talking-points.markdown index b8675a1abc6..24f587f3928 100644 --- a/source/help/talking-points.markdown +++ b/source/help/talking-points.markdown @@ -12,9 +12,9 @@ footer: true People are starting to present Home Assistant at meetings and get-togethers. Below you find a couple of bullet points for your presentation. - [Numbers, numbers, numbers](/help/trivia/) and other details -- Over 700 implementations +- Over 750 implementations - Not depending on cloud services. We like to keep your privacy private -- Control all your devices from a single, mobile-friendly, interface +- Control all your devices from a single, mobile-friendly interface - Written in Python3 with 94% test coverage - Active and helpful community From 0bfaf3be7f712e752f1b8a26d9e97e489300a1a4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 22 Aug 2017 10:34:28 +0200 Subject: [PATCH 47/67] Add link to hass --- source/help/trivia.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/help/trivia.markdown b/source/help/trivia.markdown index fb985dc2fe2..64089ecf5fd 100644 --- a/source/help/trivia.markdown +++ b/source/help/trivia.markdown @@ -13,7 +13,7 @@ This page contains only irrelevant and unhelpful information about Home Assistan ### {% linkable_title Name %} -Isn't it obvious? Home Assistant is the good soul that is assisting you in your home. It's also common to refer to Home Assistant simply as HA or hass (not to be confused with the German word "Hass", it's more like the abbreviation of **H**ome **A**ssistant **S**erver **S**ervice). +Isn't it obvious? Home Assistant is the good soul that is assisting you in your home. It's common to refer to Home Assistant simply as HA or `hass` (not to be confused with the German word "Hass", it's more like the abbreviation of **H**ome **A**ssistant **S**erver **S**ervice). [`hass`](/docs/tools/hass/) is also the name of the command-line part. ### {% linkable_title Website %} From b7438a4400920445e81a905d87af2f5ddc22c6dd Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 22 Aug 2017 13:06:01 +0200 Subject: [PATCH 48/67] Review/Edit components starting with the letter A (#3220) --- .../alarm_control_panel.alarmdotcom.markdown | 2 +- .../alarm_control_panel.egardia.markdown | 10 ++++----- .../alarm_control_panel.manual.markdown | 2 +- .../alarm_control_panel.manual_mqtt.markdown | 2 +- .../alarm_control_panel.mqtt.markdown | 2 +- .../alarm_control_panel.wink.markdown | 2 +- source/_components/alarmdecoder.markdown | 6 ++--- source/_components/alert.markdown | 6 ++--- source/_components/alexa.markdown | 12 +++++----- source/_components/amcrest.markdown | 6 ++--- source/_components/android_ip_webcam.markdown | 6 ++--- source/_components/apiai.markdown | 8 +++---- source/_components/apple_tv.markdown | 22 +++++++++---------- source/_components/arduino.markdown | 10 ++++----- source/_components/asterisk_mbox.markdown | 12 +++++----- source/_components/axis.markdown | 10 ++++----- 16 files changed, 59 insertions(+), 59 deletions(-) diff --git a/source/_components/alarm_control_panel.alarmdotcom.markdown b/source/_components/alarm_control_panel.alarmdotcom.markdown index fefdcaecff1..ebffcc5c0df 100644 --- a/source/_components/alarm_control_panel.alarmdotcom.markdown +++ b/source/_components/alarm_control_panel.alarmdotcom.markdown @@ -12,7 +12,7 @@ ha_category: Alarm ha_release: 0.11 --- -The `alarmdotcom` platform is consuming the information provided by a [Alarm.com](https://www.alarm.com/). +The `alarmdotcom` platform is consuming the information provided by [Alarm.com](https://www.alarm.com/). To enable this, add the following lines to your `configuration.yaml`: diff --git a/source/_components/alarm_control_panel.egardia.markdown b/source/_components/alarm_control_panel.egardia.markdown index bde37e66bfa..c9a5e285652 100644 --- a/source/_components/alarm_control_panel.egardia.markdown +++ b/source/_components/alarm_control_panel.egardia.markdown @@ -39,11 +39,11 @@ Configuration variables: - **report_server_codes** list (*Optional*): List of codes for the different states. Note that this basic configuration will only enable you to read the armed/armed away/disarmed status of your alarm and will **not** update the status if the alarm is triggered. This is because of how Egardia built their system. The alarm triggers normally go through their servers. -You can change this however, using the following procedure. This is an more advanced configuration. +You can change this, however, using the following procedure. This is a more advanced configuration. -1. Login into your alarm system's control panel. You will need to access http://[ip of your control panel]. You know this already, since you need it in the basic configuration from above. Login to the control panel with your Egardia/Woonveilig username and password +1. Log in into your alarm system's control panel. You will need to access http://[ip of your control panel]. You know this already since you need it in the basic configuration from above. Log in to the control panel with your Egardia/Woonveilig username and password. 2. Once logged in, go to *System Settings*, *Report* and change the Server Address for your primary server to the IP or hostname of your Home Assistant machine. Also, update the port number 85 or to anything you like. The provided software that you will set up in the next steps runs on port 85 by default. **Make sure to change the settings of the primary server otherwise the messages will not come through. Note that this will limit (or fully stop) the number of alarm messages you will get through Egardia's / Woonveilig services.** Maybe, that is just what you want. Make sure to save your settings by selecting 'OK'. -3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, armhome) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to temporarily disable the siren (can be done in Panel Settings).** +3. On your Home Assistant machine run `$ sudo python3 egardiaserver.py`. This will receive status codes from your alarm control panel and display them. You will need the codes to include in your configuration.yaml. Make sure to change the status of your alarm to all states (disarm, arm, armhome) as well as trigger the alarm in all ways possible to get 100% coverage. **Before triggering the alarm it might be good to disable the siren temporarily (can be done in Panel Settings).** 4. Once you have the codes, update your `configuration.yaml`: ```yaml # Example configuration.yaml entry @@ -61,10 +61,10 @@ alarm_control_panel: triggered: XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXXXXXXXXXXX standby: XXXXXXXXXXXXXXXX ``` - Note that your can have more than one code for triggered, since every sensor generates it's own code. arm, disarm, armhome and standby will all be one code. + Note that you can have more than one code for triggered since every sensor generates its own code. arm, disarm, armhome and standby will all be one code. 5. Start the `egardiaserver.py` script on boot of your Home Assistant machine, for example by adding the following to your `/etc/rc.local`: ```bash python3 [path/to/]egardiaserver.py & ``` - **Do not forget the trailing & here, otherwise you will be having a hard time logging back in to the machine.** + **Do not forget the trailing & here; otherwise you will be having a hard time logging back into the machine.** 6. Test your setup and enjoy. The component will update if the alarm status changes, including triggers. You can use this to build your own automations and send notifications as you wish. diff --git a/source/_components/alarm_control_panel.manual.markdown b/source/_components/alarm_control_panel.manual.markdown index b30ceb63a2c..db5de63da78 100644 --- a/source/_components/alarm_control_panel.manual.markdown +++ b/source/_components/alarm_control_panel.manual.markdown @@ -31,7 +31,7 @@ Configuration variables: ## {% linkable_title Examples %} -In this section you find some real life examples of how to use this panel. +In this section, you find some real-life examples of how to use this panel. ### {% linkable_title Sensors %} diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index 0388ee6b4f3..263cac0fb41 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -51,7 +51,7 @@ All configuration variables from the base manual alarm platform are available: Additionally, the following MQTT configuration variables are also available: - **state_topic** (*Required*): The MQTT topic HA will publish state updates to. -- **command_topic** (*Required*): The MQTT topic HA will subscribe to to receive commands from a remote device to change the alarm state. +- **command_topic** (*Required*): The MQTT topic HA will subscribe to, to receive commands from a remote device to change the alarm state. - **qos** (*Optional*): The maximum QoS level for subscribing and publishing to MQTT messages. Default is 0. - **payload_disarm** (*Optional*): The payload to disarm this Alarm Panel. Default is "DISARM". - **payload_arm_home** (*Optional*): The payload to set armed-home mode on this Alarm Panel. Default is "ARM_HOME". diff --git a/source/_components/alarm_control_panel.mqtt.markdown b/source/_components/alarm_control_panel.mqtt.markdown index 20ad19ea290..7e6feaa7a2e 100644 --- a/source/_components/alarm_control_panel.mqtt.markdown +++ b/source/_components/alarm_control_panel.mqtt.markdown @@ -23,7 +23,7 @@ The component will accept the following states from your Alarm Panel (in lower c - 'pending' - 'triggered' -The component is able to control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend. +The component can control your Alarm Panel by publishing to the `command_topic` when a user interacts with the Home Assistant frontend. To enable this platform, add the following lines to your `configuration.yaml`: diff --git a/source/_components/alarm_control_panel.wink.markdown b/source/_components/alarm_control_panel.wink.markdown index e8e394b8d10..032bbd3cb36 100644 --- a/source/_components/alarm_control_panel.wink.markdown +++ b/source/_components/alarm_control_panel.wink.markdown @@ -26,6 +26,6 @@ The requirement is that you have setup [Wink](/components/wink/).

-The above devices are confimed to work, but others may work as well. +The above devices are confirmed to work, but others may work as well.

diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown index ae5b6c03f22..b3b54f2959f 100644 --- a/source/_components/alarmdecoder.markdown +++ b/source/_components/alarmdecoder.markdown @@ -13,7 +13,7 @@ ha_release: 0.43 ha_iot_class: "Local Push" --- -The `alarmdecoder` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and it's sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Nu Tech Software Solutions, known as the AlarmDecoder. The AlarmDecoder devices provide a serial, TCP/IP socket or USB interface to the alarm panel, where it emulates an alarm keypad. +The `alarmdecoder` component will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Nu Tech Software Solutions, known as the AlarmDecoder. The AlarmDecoder devices provide a serial, TCP/IP socket or USB interface to the alarm panel, where it emulates an alarm keypad. Please visit the [AlarmDecoder website](https://www.alarmdecoder.com/) for further information about the AlarmDecoder devices. @@ -46,10 +46,10 @@ alarmdecoder: Configuration variables: -- **type** (*Required*): The type of AlarmDecoder device: socket, serial or usb +- **type** (*Required*): The type of AlarmDecoder device: socket, serial or USB - **host** (*Optional*): The IP address of the AlarmDecoder device on your home network, if using socket type. Default: `localhost` - **port** (*Optional*): The port of the AlarmDecoder device on your home network, if using socket type. Default: `10000` - **path** (*Optional*): The path of the AlarmDecoder device, if using socket type. Default: `/dev/ttyUSB0` - **baud** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200` -- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad dispaly. Default: `off` +- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off` - **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.* diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown index 96901866ebf..2f3f58d5184 100644 --- a/source/_components/alert.markdown +++ b/source/_components/alert.markdown @@ -12,11 +12,11 @@ ha_category: Automation ha_release: 0.38 --- -The `alert` component is designed to notify you when problematic issues arise. For example, if the garage door is left open, the `alert` component can be used remind you of this by sending you repeating notifications at customizable intervals. This is also useful for low battery sensors, water leak sensors, or any condition that may need your attention. +The `alert` component is designed to notify you when problematic issues arise. For example, if the garage door is left open, the `alert` component can be used remind you of this by sending you repeating notifications at customizable intervals. This is also used for low battery sensors, water leak sensors, or any condition that may need your attention. Alerts will add an entity to the front end only when they are firing. This entity allows you to silence an alert until it is resolved. -When using the `alert` component it is important that the timezone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` timezone but the operating system uses `UTC`). +When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match. Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`). ### {% linkable_title Basic Example %} @@ -44,7 +44,7 @@ Configuration variables: - **entity_id** (*Required*): The ID of the entity to watch. - **state** (*Optional*): The problem condition for the entity. Defaults to `on`. - **repeat** (*Required*): Number of minutes before the notification should be repeated. Can be either a number or a list of numbers. -- **can_acknowledge** (*Optional*): Allows the alert to be unacknowledgable. Defaults to `true`. +- **can_acknowledge** (*Optional*): Allows the alert to be unacknowledgeable. Defaults to `true`. - **skip_first** (*Optional*): Controls whether the notification should be sent immediately or after the first delay. Defaults to `false`. - **notifiers** (*Required*): List of `notification` components to use for alerts. diff --git a/source/_components/alexa.markdown b/source/_components/alexa.markdown index d30584496fe..72a3648e481 100644 --- a/source/_components/alexa.markdown +++ b/source/_components/alexa.markdown @@ -99,7 +99,7 @@ When activated, the Alexa component will have Home Assistant's native intent sup One of the most useful applications of Alexa integrations is to call scenes directly. This is easily achieved with some simple setup on the Home Assistant side and by letting Alexa know which scenes you want to run. -First we will configure Alexa. In the Amazon Interaction module add this to the intent schema: +First, we will configure Alexa. In the Amazon Interaction module add this to the intent schema: ```json { @@ -144,7 +144,7 @@ intent_script: Here we are using [templates] to take the name we gave to Alexa e.g. `downstairs on` and replace the space with an underscore so it becomes `downstairs_on` as Home Assistant expects. -Now say `Alexa ask homeassistant to activate ` and Alexa will activate that scene for you. +Now say `Alexa ask Home Assistant to activate ` and Alexa will activate that scene for you. ### {% linkable_title Adding Scripts %} @@ -190,14 +190,14 @@ intent_script: text: OK ``` -Now say `Alexa ask homeassistant to run ` and Alexa will run that script for you. +Now say `Alexa ask Home Assistant to run ` and Alexa will run that script for you. ### {% linkable_title Support for Launch Requests %} There may be times when you want to respond to a launch request initiated from a command such as "Alexa, Red Alert!". -To start you need to get the skill id: +To start, you need to get the skill id: - - Log in to [Amazon developer console][amazon-dev-console] + - Log into [Amazon developer console][amazon-dev-console] - Click the Alexa button at the top of the console - Click the Alexa Skills Kit Get Started button - Locate the skill for which you would like Launch Request support @@ -305,7 +305,7 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf - All other settings are up to you - Hit "Next" - Test - - Having passed all validations to reach this screen you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service. + - Having passed all validations to reach this screen, you can now click on "< Back to All Skills" as your flash briefing is now available as in "Development" service. - To invoke your flash briefing, open the Alexa app on your phone or go to the [Alexa Settings Site][alexa-settings-site], open the "Skills" configuration section, select "Your Skills", scroll to the bottom, tap on the Flash Briefing Skill you just created, enable it, then manage Flash Briefing and adjust ordering as necessary. Finally ask your Echo for your "news","flash briefing", or "briefing". [amazon-dev-console]: https://developer.amazon.com diff --git a/source/_components/amcrest.markdown b/source/_components/amcrest.markdown index 194592081bd..c910e10647e 100644 --- a/source/_components/amcrest.markdown +++ b/source/_components/amcrest.markdown @@ -38,7 +38,7 @@ amcrest: Configuration variables: -- **host** (*Required*): The IP address or hostname of your camera. If using hostname, make sure the DNS works as expected. +- **host** (*Required*): The IP address or hostname of your camera. If using a hostname, make sure the DNS works as expected. - **username** (*Required*): The username for accessing your camera. - **password** (*Required*): The password for accessing your camera. - **name** (*Optional*): This parameter allows you to override the name of your camera. The default is "Amcrest Camera". @@ -46,14 +46,14 @@ Configuration variables: - **resolution** (*Optional*): This parameter allows you to specify the camera resolution. For a high resolution (1080/720p), specify the option `high`. For VGA resolution (640x480p), specify the option `low`. If omitted, it defaults to *high*. - **stream_source** (*Optional*): The data source for the live stream. `mjpeg` will use the camera's native MJPEG stream, whereas `snapshot` will use the camera's snapshot API to create a stream from still images. You can also set the `rtsp` option to generate the streaming via RTSP protocol. If omitted, it defaults to *snapshot*. - **ffmpeg_arguments**: (*Optional*): Extra options to pass to ffmpeg, e.g. image quality or video filter options. -- **authentication**: (*Optional*): Defines which authentication method to use only when **stream_source** is **mjpeg**. Currently *aiohttp* only support *basic*. It defaults to *basic*. +- **authentication**: (*Optional*): Defines which authentication method to use only when **stream_source** is **mjpeg**. Currently, *aiohttp* only support *basic*. It defaults to *basic*. - **scan_interval** (*Optional*): Defines the update interval of the sensor in seconds. The default is 10 seconds. - **sensors** array (*Optional*): Conditions to display in the frontend. By default, *none* of the conditions are enabled. The following conditions can be monitored. - **motion_detector**: Return True/False when a motion is detected - **sdcard**: Return the SD card usage by reporting the total and used space - **ptz_preset**: Return the number of PTZ preset positions configured for the given camera -**Note:** Amcrest cameras with newer firmwares no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firwmares may not work, then **rtsp** is recommended instead. +**Note:** Amcrest cameras with newer firmware no longer have the ability to stream `high` definition video with MJPEG encoding. You may need to use `low` resolution stream or the `snapshot` stream source instead. If the quality seems too poor, lower the `Frame Rate (FPS)` and max out the `Bit Rate` settings in your camera's configuration manager. If you defined the *stream_source* to **mjpeg**, make sure your camera supports *Basic* HTTP authentication. Newer Amcrest firmware may not work, then **rtsp** is recommended instead. **Note:** If you set the `stream_source` option to `rtsp`, make sure to follow the steps mentioned at [FFMPEG](https://home-assistant.io/components/ffmpeg/) documentation to install the `ffmpeg`. diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown index 535a0c760cb..2823143f968 100644 --- a/source/_components/android_ip_webcam.markdown +++ b/source/_components/android_ip_webcam.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Local Polling" The `android_ip_webcam` component turns an Android phone into a network camera with multiple viewing options. -It's setup as a mjpeg camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. +It's setup as an M-JPEG camera and all settings as switches inside of Home Assistant. You can also expose the sensors. If you have multiple phones, you can use all options inside a list. To set it up, download [the IP Webcam app][app], and add the following information to your `configuration.yaml` file: @@ -33,8 +33,8 @@ Configuration variables: - **username** (*Optional*): The username to access the phone. - **password** (*Optional*): The password to access the phone. - **scan_interval** (*Optional*): Default is 10 seconds. Defines the update interval of the phone. -- **sensors** array (*Optional*): Conditions to display sensor in the frontend. See list of supported sensors. -- **switches** array (*Optional*): Conditions to display settings in the frontend. See list of supported settings. +- **sensors** array (*Optional*): Conditions to display sensor in the frontend. See the list of supported sensors. +- **switches** array (*Optional*): Conditions to display settings in the frontend. See the list of supported settings. - **motion_sensor** (*Optional*): Activate motion sensor if auto_discovery is disabled. ### {% linkable_title Supported features %} diff --git a/source/_components/apiai.markdown b/source/_components/apiai.markdown index 08c2857653d..bb77469703a 100644 --- a/source/_components/apiai.markdown +++ b/source/_components/apiai.markdown @@ -13,9 +13,9 @@ featured: false ha_release: 0.38 --- -This component is designed to be used with the "webhook" integration in [api.ai][apiai-web]. When a conversation ends with an user, api.ai sends an action and parameters to the webhook. +This component is designed to be used with the "webhook" integration in [api.ai][apiai-web]. When a conversation ends with a user, api.ai sends an action and parameters to the webhook. -api.ai requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to Internet. api.ai will return fallback answers if your server do not answer, or takes too long (more than 5 seconds). +api.ai requires a public endpoint (HTTPS recommended), so your Home Assistant should be exposed to the Internet. api.ai will return fallback answers if your server does not answer, or takes too long (more than 5 seconds). api.ai could be integrated with many popular messaging, virtual assistant and IoT platforms, eg.: Google Assistant (Google Actions), Skype, Messenger. [See here](https://docs.api.ai/docs/integrations) the complete list. @@ -33,7 +33,7 @@ Using Api.ai will be easy to create conversations like: > > Bot: Turning on kitchen light -To use this integration you should define a conversation (intent) in Api.ai, configure Home Assistant with the speech to return and, optionally, the action to execute. +To use this integration, you should define a conversation (intent) in Api.ai, configure Home Assistant with the speech to return and, optionally, the action to execute. ### {% linkable_title Configuring your api.ai account %} @@ -41,7 +41,7 @@ To use this integration you should define a conversation (intent) in Api.ai, con - Click on "Create Agent" - Select name, language (if you are planning to use it with Google Actions check [here](https://support.google.com/assistant/answer/7108196?hl=en) supported languages) and time zone - Click "Save" -- Go to "Fullfiment" (in the left menu) +- Go to "Fulfillment" (in the left menu) - Enable Webhook and set your Home Assistant URL with the Api.ai endpoint. Eg.: ``https://myhome.duckdns.org/api/apiai?api_password=HA_PASSWORD`` - Click "Save" - Create a new intent diff --git a/source/_components/apple_tv.markdown b/source/_components/apple_tv.markdown index 4adef1bf14a..56bfd96c8bc 100644 --- a/source/_components/apple_tv.markdown +++ b/source/_components/apple_tv.markdown @@ -17,7 +17,7 @@ featured: true The `apple_tv` platform allows you to control an Apple TV (3rd and 4th generation). See the [remote platform](/components/remote.apple_tv/) if you want to send remote control buttons, e.g. arrow keys.

-Currently you must have Home Sharing enabled for this to work. Support for pairing Home Assistant with your device will be supported in a later release. +Currently, you must have Home Sharing enabled for this to work. Support for pairing Home Assistant with your device will be supported in a later release.

To use this component, you must first install some system libraries and a compiler. For Debian or a similar system, this should be enough: @@ -26,7 +26,7 @@ To use this component, you must first install some system libraries and a compil $ sudo apt-get install build-essential libssl-dev libffi-dev python-dev ``` -If you want to automatically discover new devices, just make sure you have `discovery:` in your `configuration.yaml` file. To manually add one or more Apple TVs to your installation, add the following to your `configuration.yaml` file: +If you want to discover new devices automatically, just make sure you have `discovery:` in your `configuration.yaml` file. To manually add one or more Apple TVs to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -48,10 +48,10 @@ Configuration variables: - **host** (*Required*): The IP-address of the device. - **login_id** (*Required*): An identifier used to login to the device, see below. - **name** (*Optional*): The name of the device used in the frontend. -- **start_off** (*Optional*): Set to true if device should start in fake standby. +- **start_off** (*Optional*): Set to true if the device should start in fake standby. - **credentials** (*Optional*): Credentials used for AirPlay playback. -In order to connect to the device you need a *login id*. The easiest way to obtain this identifier is to use the `apple_tv_scan` service (described below). Additional information about `start_off` and `credentials` can also be found under the guides section. +In order to connect to the device, you need a *login id*. The easiest way to obtain this identifier is to use the `apple_tv_scan` service (described below). Additional information about `start_off` and `credentials` can also be found under the guides section. ## {% linkable_title Guides %} @@ -69,7 +69,7 @@ Scanning will be done for three seconds and notification will be shown in the st -Alternatively you may use the application ``atvremote``. Install it with ``pip3 install --upgrade pyatv`` in your Home Assistant environment (note: do *not* use sudo). Then run ``atvremote scan`` to scan for all devices (try again if a device is missing): +Alternatively, you may use the application ``atvremote``. Install it with ``pip3 install --upgrade pyatv`` in your Home Assistant environment (note: do *not* use sudo). Then run ``atvremote scan`` to scan for all devices (try again if a device is missing): ```bash $ atvremote scan @@ -83,20 +83,20 @@ Just copy and paste the login id from the device you want to add. For more detai ### {% 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. +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 procotol used for communication. You basically have the following options: +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 make 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 using an automation with `turn_on`. To make it more useful, you can write automations that turns it on or off depending on some other device, like the input source on your receiver. +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.

-Turning the device on/off in the user interface will *not* turn the physical device on/off according to description above. +Turning the device on/off in the user interface will *not* turn the physical device on/off according to the description above.

@@ -128,13 +128,13 @@ apple_tv: credentials: 1B8C387DDB59BDF6:CF5ABB6A2C070688F5926ADB7C010F6DF847252C15F9BDB6DA3E09D6591E90E5 ``` -Restart Home Assistant and you should now be able to use `play_url` as before. +Restart Home Assistant, and you should now be able to use `play_url` as before. ## {% linkable_title Services %} ### {% linkable_title Service `apple_tv_authenticate` %} -In order to play media on an Apple TV with device authentication enabled (e.g. ATV4 with tvOS 10.2+), Home Assistant must properly authenticated. This method starts the process and presents the credentials needed for playback as a persistent notification. Please see guide above for usage. +To play media on an Apple TV with device authentication enabled (e.g., ATV4 with tvOS 10.2+), Home Assistant must be properly authenticated. This method starts the process and presents the credentials needed for playback as a persistent notification. Please see guide above for usage. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | diff --git a/source/_components/arduino.markdown b/source/_components/arduino.markdown index 9ba29e20e6e..acfd091c727 100644 --- a/source/_components/arduino.markdown +++ b/source/_components/arduino.markdown @@ -14,13 +14,13 @@ ha_release: pre 0.7 ha_iot_class: "Local Polling" --- -The [Arduino](https://www.arduino.cc/) device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the [type](https://www.arduino.cc/en/Main/Products) of board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins. +The [Arduino](https://www.arduino.cc/) device family are microcontroller boards that are often based on the ATmega328 chip. They come with digital input/output pins (some can be used as PWM outputs), analog inputs, and a USB connection. The equipment depends on the [type](https://www.arduino.cc/en/Main/Products) of the board. The most common ones are the Arduino Uno and the Arduino Leonardo with 14 digital input/output pins and 6 analog input pins. -There are a lot of extensions (so called [shields](https://www.arduino.cc/en/Main/ArduinoShields)) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards. +There are a lot of extensions (so-called [shields](https://www.arduino.cc/en/Main/ArduinoShields)) available. Those shields can be plugged-in into the existing connectors and stacked on top of each other. This makes it possible to expand the capabilities of the Arduino boards. The `arduino` component is designed to let you use a directly attached board to your Home Assistant host over USB. -You need to have the [Firmata firmware](https://github.com/firmata/) on your board. Please upload the `StandardFirmata` sketch to your board, please refer to the [Arduino documentation](https://www.arduino.cc/en/Main/Howto) for further information. +You need to have the [Firmata firmware](https://github.com/firmata/) on your board. Please upload the `StandardFirmata` sketch to your board; please refer to the [Arduino documentation](https://www.arduino.cc/en/Main/Howto) for further information. To integrate an Arduino boards with Home Assistant, add the following section to your `configuration.yaml` file: @@ -32,7 +32,7 @@ arduino: Configuration variables: -- **port** (*Required*): The port where your board is connected to your Home Assistant host. If you are using an original Arduino the port will be named `ttyACM*` otherwise `ttyUSB*`. +- **port** (*Required*): The port where your board is connected to your Home Assistant host. If you are using an original Arduino, the port will be named `ttyACM*` otherwise `ttyUSB*`. The exact number can be determined with the command shown below. @@ -40,7 +40,7 @@ The exact number can be determined with the command shown below. $ ls /dev/ttyACM* ``` -If that's not working, check your `dmesg` or `journalctl -f` output. Keep in mind that Arduino clones are often using a different name for the port (eg. `/dev/ttyUSB*`). +If that's not working, check your `dmesg` or `journalctl -f` output. Keep in mind that Arduino clones are often using a different name for the port (e.g. `/dev/ttyUSB*`).

A word of caution: The Arduino boards are not storing states. This means that with every initialization the pins are set to off/low. diff --git a/source/_components/asterisk_mbox.markdown b/source/_components/asterisk_mbox.markdown index 245ef3f8923..b7201ee7571 100644 --- a/source/_components/asterisk_mbox.markdown +++ b/source/_components/asterisk_mbox.markdown @@ -12,11 +12,11 @@ ha_version: 0.51 ha_iot_class: "Local Push" --- -The Asterisk Voicemail integration for Home Assistant allows you to view, listen-to, and delete voicemails from a Asterisk voicemail mailbox. The component includes a panel on the frontend that provides caller-id and speech-to-text transcription (using Google's API) of messages in addition to playback and message deletion. There is also an included sensor that provides an indication of the number of available messages. There is no requirement that the Asterisk PBX and Home Assistant are running on the same machine. +The Asterisk Voicemail integration for Home Assistant allows you to view, listen to, and delete voicemails from an Asterisk voicemail mailbox. The component includes a panel on the frontend that provides caller-id and speech-to-text transcription (using Google's API) of messages in addition to playback and message deletion. There is also an included sensor that indicates of the number of available messages. There is no requirement that the Asterisk PBX and Home Assistant are running on the same machine. -To enable the component, configuration is required in both Home Assistant as well as on the Asterisk server. +To enable the component, a configuration is required in both Home Assistant as well as on the Asterisk server. -First follow the [Asterisk PBX configuration guide](/docs/asterisk_mbox) to setup the necessary server on the Asterisk PBX server (this is necessary even if Asterisk and Home Assistant are running on the same server) +First follow the [Asterisk PBX configuration guide](/docs/asterisk_mbox) to setup the necessary server on the Asterisk PBX server (this is needed even if Asterisk and Home Assistant are running on the same server) Once that is complete, add the the following entry `configuration.yaml` file: @@ -32,11 +32,11 @@ This will add a new 'Mailbox' side-panel, as well as a sensor to indicate # of m Configuration variables: -- **password** (*Required*): The password that was set during Asterisk PBX confguration +- **password** (*Required*): The password that was set during Asterisk PBX configuration - **host** (*Required*): The ip-address of the server that is running the Asterisk PBX -- **port** (*Required*): The port on the Asterisk PBX server that was configured during Asterisk PBX confguration +- **port** (*Required*): The port on the Asterisk PBX server that was configured during Asterisk PBX configuration

-Communication between the Asterisk PBX server and the Home Assistant server is password-protected, but the data transmission is not encrypted. It is recommended to only use this component when communication will be contained within a local area network. +Communication between the Asterisk PBX server and the Home Assistant server is password-protected, but the data transmission is not encrypted. It is recommended to only use this component when communication is contained within a local area network.

diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown index 192c5774803..a312625a730 100644 --- a/source/_components/axis.markdown +++ b/source/_components/axis.markdown @@ -13,7 +13,7 @@ ha_release: "0.45" ha_iot_class: "Local Polling" --- -[Axis Communications](https://www.axis.com/) devices are surveillance cameras and other security related network connected hardware. Sensor API works with firmware 5.50 and newer. +[Axis Communications](https://www.axis.com/) devices are surveillance cameras and other security-related network connected hardware. Sensor API works with firmware 5.50 and newer. Home Assistant will automatically discover their presence on your network. @@ -62,7 +62,7 @@ Configuration variables: - **camera**: Stream MJPEG video to Home Assistant. - **motion**: The built-in motion detection in Axis cameras. - **vmd3**: ACAP Motion Detection app which has better algorithms for motion detection. - - **pir**: PIR sensor that can trigger on motion. + - **pir**: PIR sensor that can trigger on a motion. - **sound**: Sound detector. - **daynight**: Certain cameras have day/night mode if they have built-in IR lights. - **tampering**: Signals when camera believes that it has been tampered with. @@ -88,7 +88,7 @@ axis: ```

-If you are using Python3.6 you might need to replace the 34m with 36m in the _gi.*.so filename in the gi folder. +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.

@@ -96,7 +96,7 @@ Any specific levels for triggers needs to be configured on the device.

- It is recommended that you create a user on your Axis device specifically for Home Assistant. For all current functionality it is enough to create a user belonging to user group viewer. + It is recommended that you create a user on your Axis device specifically for Home Assistant. For all current functionality, it is enough to create a user belonging to user group viewer.

## {% linkable_title Device services %} @@ -109,7 +109,7 @@ Send a command using [Vapix](https://www.axis.com/support/developer-support/vapi |---------------------------|----------|--------------------------------------------------| | `name` | no | Name of device to communicate with. | | `param` | no | What parameter to operate on. | -| `cgi` | yes | Which cgi to call on device. Default is `param.cgi`. | +| `cgi` | yes | Which cgi to call on the device. Default is `param.cgi`. | | `action` | yes | What type of call. Default is `update`. | Response to call can be subscribed to on event `vapix_call_response` From e80b421b3b81669d4a2083c06a7ee91448950797 Mon Sep 17 00:00:00 2001 From: githubbuh <30601455+githubbuh@users.noreply.github.com> Date: Tue, 22 Aug 2017 21:53:12 -0700 Subject: [PATCH 49/67] Include remove -id: for !include_dir_list --- source/_docs/configuration/splitting_configuration.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index a101eb227ef..3a1a9b6e530 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -247,6 +247,8 @@ action: ``` It is important to note that each file must contain only **one** entry when using `!include_dir_list`. +It is also important to note that if you are splitting a file after adding -id: to support the automation UI, +the -id: line must be removed from each of the split files. #### {% linkable_title Example: `!include_dir_named` %} From e9c1684e71f1735f989ea147f3b64817b1815a0e Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 23 Aug 2017 17:20:25 +1000 Subject: [PATCH 50/67] Reverse proxy details for Caddy Server (#3222) * Reverse proxy details for Caddy Server Code snippet to show a working example of using Caddy as a reverse proxy to Home Assistant. * Update docs_navigation to include link to Caddy Update sidebar with link to new doc showing example of Caddy reverse proxy * Update caddy.markdown --- source/_docs/ecosystem/caddy.markdown | 21 ++++++++++++++++++++ source/_includes/asides/docs_navigation.html | 1 + 2 files changed, 22 insertions(+) create mode 100644 source/_docs/ecosystem/caddy.markdown diff --git a/source/_docs/ecosystem/caddy.markdown b/source/_docs/ecosystem/caddy.markdown new file mode 100644 index 00000000000..22879119d91 --- /dev/null +++ b/source/_docs/ecosystem/caddy.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "Caddy Server reverse proxy" +description: "Configure Caddy Server as a reverse proxy to Home Assistant." +date: 2017-08-22 22:20 +sidebar: true +comments: false +sharing: true +footer: true +--- + +Configure [Caddy Server](https://caddyserver.com/) for use as a reverse proxy to Home Assistant. + +``` +hass.example.org { + proxy / localhost:8123 { + websocket + transparent + } +} +``` diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 25b6afd3a58..83fa9419bb0 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -163,6 +163,7 @@ Remote access
  • {% active_link /docs/ecosystem/apache/ Apache %}
  • +
  • {% active_link /docs/ecosystem/caddy/ Caddy Server %}
  • {% active_link /docs/ecosystem/nginx/ NGINX %}
  • {% active_link /docs/ecosystem/nginx_subdomain/ NGINX with subdomain%}
  • {% active_link /docs/ecosystem/tor/ Tor Onion Service %}
  • From 0ac98d7f89d36f2b0de9570a1fc46f7a0efd8739 Mon Sep 17 00:00:00 2001 From: githubbuh <30601455+githubbuh@users.noreply.github.com> Date: Wed, 23 Aug 2017 00:39:49 -0700 Subject: [PATCH 51/67] add WRT1900ACS, note to disable wireless access (#3226) * add WRT1900ACS, note to disable wireless access 1) Added Linksys WRT1900ACS to the list of tested devices. 2) Added note about need to disable Access via wireless * Minor changes --- .../device_tracker.linksys_smart.markdown | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/_components/device_tracker.linksys_smart.markdown b/source/_components/device_tracker.linksys_smart.markdown index 883c60cc3e1..0e1827c6806 100644 --- a/source/_components/device_tracker.linksys_smart.markdown +++ b/source/_components/device_tracker.linksys_smart.markdown @@ -12,10 +12,18 @@ logo: linksys.png ha_release: 0.48 --- -The `linksys_smart` platform offers presence detection by looking at connected devices to a Linksys Smart Wifi based -router. It was tested with a LINKSYS WRT3200ACM MU-MIMO Gigabit Wi-Fi Wireless Router. +The `linksys_smart` platform offers presence detection by looking at connected devices to a Linksys Smart Wifi based router. -To use a Linksys Smart Wifi Router in your installation, add the following to your `configuration.yaml` file: +Tested routers: + LINKSYS WRT3200ACM MU-MIMO Gigabit Wi-Fi Wireless Router + LINKSYS WRT1900ACS Dual-band Wi-Fi Router + + +

    +For this platform to work correctly, it is necessary to disable the "Access via wireless" feature in the Local Management Access section of the router administration page. If "Access via wireless" is not disabled, a connectivity conflict arises because the Home Assistant integration is trying to pass userid and password, but the router is only expecting a password. +

    + +To use a Linksys Smart Wifi Router in your Home Assistant installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry From 71d04a18ec86eab48a2f3fe6b39e2cb6cf0a45fb Mon Sep 17 00:00:00 2001 From: Jordi Date: Wed, 23 Aug 2017 09:42:07 +0200 Subject: [PATCH 52/67] Updated example documentation (#3223) Updated example documentation to match with version 0.50 and later --- source/_components/apiai.markdown | 44 +++++++++++++++++-------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/source/_components/apiai.markdown b/source/_components/apiai.markdown index bb77469703a..4e96645e498 100644 --- a/source/_components/apiai.markdown +++ b/source/_components/apiai.markdown @@ -70,29 +70,33 @@ apiai: intent_script: Temperature: - speech: The temperature at home is {{ states('sensor.home_temp') }} degrees + speech: + text: The temperature at home is {{ states('sensor.home_temp') }} degrees LocateIntent: - speech: > - {%- for state in states.device_tracker -%} - {%- if state.name.lower() == User.lower() -%} - {{ state.name }} is at {{ state.state }} - {%- elif loop.last -%} - I am sorry, I do not know where {{ User }} is. - {%- endif -%} - {%- else -%} - Sorry, I don't have any trackers registered. - {%- endfor -%} + speech: + text: > + {%- for state in states.device_tracker -%} + {%- if state.name.lower() == User.lower() -%} + {{ state.name }} is at {{ state.state }} + {%- elif loop.last -%} + I am sorry, I do not know where {{ User }} is. + {%- endif -%} + {%- else -%} + Sorry, I don't have any trackers registered. + {%- endfor -%} WhereAreWeIntent: - speech: > - {%- if is_state('device_tracker.adri', 'home') and - is_state('device_tracker.bea', 'home') -%} - You are both home, you silly - {%- else -%} - Bea is at {{ states("device_tracker.bea") }} - and Adri is at {{ states("device_tracker.adri") }} - {% endif %} + speech: + text: > + {%- if is_state('device_tracker.adri', 'home') and + is_state('device_tracker.bea', 'home') -%} + You are both home, you silly + {%- else -%} + Bea is at {{ states("device_tracker.bea") }} + and Adri is at {{ states("device_tracker.adri") }} + {% endif %} TurnLights: - speech: Turning {{ Room }} lights {{ OnOff }} + speech: + text: Turning {{ Room }} lights {{ OnOff }} action: - service: notify.pushbullet data_template: From f57f91dda41513e15ec895a3948cd58671befbe0 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 22 Aug 2017 13:20:34 +0200 Subject: [PATCH 53/67] Add link to configuration docs --- source/_docs/configuration/secrets.markdown | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/_docs/configuration/secrets.markdown b/source/_docs/configuration/secrets.markdown index f28edd3433a..ea82a55c217 100644 --- a/source/_docs/configuration/secrets.markdown +++ b/source/_docs/configuration/secrets.markdown @@ -10,11 +10,11 @@ footer: true redirect_from: /topics/secrets/ --- -The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secrets` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/topics/splitting_configuration/). +The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secrets` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/docs/configuration/splitting_configuration/). ### {% linkable_title Using secrets.yaml %} -The workflow for moving private information to `secrets.yaml` is very similar to the [splitting of the configuration](/topics/splitting_configuration/). Create a `secrets.yaml` file in your Home assistant configuration directory (The location of the folder differs between operating systems: on OS X and Linux it's `~/.homeassistant` and on Windows it's `%APPDATA%/.homeassistant`). +The workflow for moving private information to `secrets.yaml` is very similar to the [splitting of the configuration](/docs/configuration/splitting_configuration/). Create a `secrets.yaml` file in your Home Assistant [configuration directory](/docs/configuration/). The entries for password and API keys in the `configuration.yaml` file usually looks like the example below. @@ -39,7 +39,8 @@ http_password: YOUR_PASSWORD ### {% linkable_title Debugging secrets %} When you start splitting your configuration into multiple files, you might end up with configuration in sub folders. Secrets will be resolved in this order: -- A `secrets.yaml` located in the same folder as the yaml file referencing the secret, + +- A `secrets.yaml` located in the same folder as the YAML file referencing the secret, - next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`, - lastly, `keyring` will be queried for the secret (more info below) @@ -55,7 +56,7 @@ This will not print the actual secret's value to the log. *Option 2*: View where secrets are retrieved from and the contents of all `secrets.yaml` files used, you can use the `check_config` script from the command line: ```bash -hass --script check_config --secrets +$ hass --script check_config --secrets ``` This will print all your secrets. From b4f70228ebf62fdc85d256eee0760ff398abb4fb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 23 Aug 2017 11:07:48 +0200 Subject: [PATCH 54/67] Remove one 'your' --- source/_components/weather.openweathermap.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index 400f42d918b..dc8e25bda5c 100644 --- a/source/_components/weather.openweathermap.markdown +++ b/source/_components/weather.openweathermap.markdown @@ -30,7 +30,7 @@ Configuration variables: - **api_key** (*Required*): Your API key for http://openweathermap.org/. - **name** (*Optional*): Name to use in the frontend. -- **latitude** (*Optional*): Latitude of the location to display the weather. Defaults to the latitude in your your `configuration.yaml` file. +- **latitude** (*Optional*): Latitude of the location to display the weather. Defaults to the latitude in your `configuration.yaml` file. - **longitude** (*Optional*): Longitude of the location to display the weather. Defaults to the longitude in your `configuration.yaml` file.

    From 58d8aea75cd3ec5ab943206d6fc59f9b7a75c22e Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 23 Aug 2017 12:12:35 +0200 Subject: [PATCH 55/67] Try a small image --- source/hassio/installation.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index ab268f16177..2a558eba935 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -21,9 +21,7 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo - Insert SD card to Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform). - You will be able to reach your installation at [http://hassio.local:8123][local]. -

    - -

    + - Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar). From b8d2a050219436e5ee7727830d1181f487d43818 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 23 Aug 2017 13:16:22 +0200 Subject: [PATCH 56/67] Move the screenshot up --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index 2a558eba935..ad2f78e1e2f 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -19,10 +19,10 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo - Flash the downloaded image to an SD card using [Etcher]. - Optional - Setup the WiFi or static IP: On the SD-card, edit the `system-connections/resin-sample` file and follow the [ResinOS howto][resinos-network]. - Insert SD card to Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform). -- You will be able to reach your installation at [http://hassio.local:8123][local]. +- You will be able to reach your installation at [http://hassio.local:8123][local]. - Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar).

    From aab1728023096972bc972d9c8807c5f0e09b7732 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 23 Aug 2017 13:37:06 +0200 Subject: [PATCH 57/67] Make image smaller --- source/hassio/installation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown index ad2f78e1e2f..eb93eb47334 100644 --- a/source/hassio/installation.markdown +++ b/source/hassio/installation.markdown @@ -20,7 +20,7 @@ Hass.io images are available for all available Raspberry Pi and Intel NUC platfo - Optional - Setup the WiFi or static IP: On the SD-card, edit the `system-connections/resin-sample` file and follow the [ResinOS howto][resinos-network]. - Insert SD card to Raspberry Pi and turn it on. On first boot, it downloads the latest version of Home Assistant which takes ~20 minutes (slower/faster depending on the platform). - + - You will be able to reach your installation at [http://hassio.local:8123][local]. - Enable either the [Samba add-on][samba] or the [SSH add-on][ssh] to manage your configuration in `/config/` (From the UI choose **Hass.io** which is located in the sidebar). From c07a87b854150572eeb004899267454c3f9ffba2 Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 24 Aug 2017 06:25:53 +0100 Subject: [PATCH 58/67] State that dependencies are from pypi Clarify that dependencies are loaded from and must be available on pypi --- source/developers/development_checklist.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/development_checklist.markdown b/source/developers/development_checklist.markdown index 9982ffaa24e..a7a585701f2 100644 --- a/source/developers/development_checklist.markdown +++ b/source/developers/development_checklist.markdown @@ -12,7 +12,7 @@ footer: true Before you commit any changes, check your work against these requirements: -- All dependencies are included via the `REQUIREMENTS` variable in your platform or component and only imported inside functions that use them +- All dependencies from [pypi](https://pypi.python.org/pypi) are included via the `REQUIREMENTS` variable in your platform or component and only imported inside functions that use them - New dependencies are added to `requirements_all.txt` (if applicable), using `script/gen_requirements_all.py` - The `.coveragerc` file is updated to exclude your platform if there are no tests available or your new code uses a third-party library for communication with the device, service, or sensor - Documentation is developed for [home-assistant.io](https://home-assistant.io/) From a24e142eafb433561a72a7ea8777372ce0387d54 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 24 Aug 2017 08:32:12 +0200 Subject: [PATCH 59/67] Review/Edit components starting with the letter U-Z (#3229) --- source/_components/updater.markdown | 4 +-- source/_components/vacuum.markdown | 2 +- source/_components/vacuum.roomba.markdown | 2 +- source/_components/vacuum.xiaomi.markdown | 14 +++++----- source/_components/vera.markdown | 6 ++-- source/_components/volvooncall.markdown | 2 +- source/_components/wake_on_lan.markdown | 2 +- .../_components/weather.buienradar.markdown | 14 +++++----- source/_components/weather.markdown | 4 +-- source/_components/weather.metoffice.markdown | 2 +- .../weather.openweathermap.markdown | 2 +- source/_components/weather.yweather.markdown | 4 +-- source/_components/wemo.markdown | 8 +++--- source/_components/wink.markdown | 28 +++++++++---------- source/_components/xiaomi.markdown | 4 +-- source/_components/zeroconf.markdown | 2 +- source/_components/zigbee.markdown | 2 +- source/_components/zone.markdown | 8 +++--- 18 files changed, 55 insertions(+), 55 deletions(-) diff --git a/source/_components/updater.markdown b/source/_components/updater.markdown index 89970ce5e1d..86991b94d52 100644 --- a/source/_components/updater.markdown +++ b/source/_components/updater.markdown @@ -11,9 +11,9 @@ logo: home-assistant.png ha_category: Other --- -The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version was found. +The `updater` component will check daily for new releases. It will show a badge in the frontend if a new version is found. -The updater component will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the timezone, Python version and operating system information. No identifiable information (i.e. IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). For further information about the Updater's data please check the [detailed overview](/docs/backend/updater/). +The updater component will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/updater.py#L91). For further information about the Updater's data, please check the [detailed overview](/docs/backend/updater/). To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/vacuum.markdown b/source/_components/vacuum.markdown index c9fe999c4c6..0089cd8e30e 100644 --- a/source/_components/vacuum.markdown +++ b/source/_components/vacuum.markdown @@ -86,7 +86,7 @@ Tell the vacuum cleaner to do a spot clean-up. #### {% linkable_title Service `vacuum/set_fanspeed` %} -Set the fan speed of the botvac. The `fanspeed` can be a label, as `balanced` or `turbo`, or be a number, it depends of the `vacuum` platform. +Set the fan speed of the botvac. The `fanspeed` can be a label, as `balanced` or `turbo`, or be a number; it depends on the `vacuum` platform. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown index f8d40245c0f..54efb74b466 100644 --- a/source/_components/vacuum.roomba.markdown +++ b/source/_components/vacuum.roomba.markdown @@ -15,7 +15,7 @@ ha_release: 0.51 The `roomba` component allows you to control your [Roomba](http://www.irobot.com/For-the-Home/Vacuuming/Roomba.aspx).

    -This platform has only been tested with an iRobot Roomba 980, but should work find +This platform has only been tested with an iRobot Roomba 980 but should work find with any Wi-Fi enabled Roomba like the 690, 890 or the 960.

    diff --git a/source/_components/vacuum.xiaomi.markdown b/source/_components/vacuum.xiaomi.markdown index 851e667aafc..dabdb296276 100644 --- a/source/_components/vacuum.xiaomi.markdown +++ b/source/_components/vacuum.xiaomi.markdown @@ -28,17 +28,17 @@ $ sudo su -s /bin/bash homeassistant $ source /srv/homeassistant/bin/activate ``` -In order to fetch the token follow these instructions depending on your mobile phone platform. +To fetch the token follow these instructions depending on your mobile phone platform. ### Windows and Android 1. Configure the robot with the Mi-Home app. 2. Enable developer mode and USB debugging on the Android phone and plug it into the computer. -3. Get ADB tool for Windows : https://developer.android.com/studio/releases/platform-tools.html +3. Get ADB tool for Windows: https://developer.android.com/studio/releases/platform-tools.html 4. Create a backup of the application com.xiaomi.smarthome: ```bash .\adb backup -noapk com.xiaomi.smarthome -f backup.ab ``` -5. If you have this message : "More than one device or emulator", use this command to list all devices: +5. If you have this message: "More than one device or emulator", use this command to list all devices: ```bash .\adb devices ``` @@ -47,14 +47,14 @@ and execute this command: .\adb -s DEVICEID backup -noapk com.xiaomi.smarthome -f backup.ab # (with DEVICEID the device id from the previous command) ``` 6. On the phone, you must confirm the backup. DO NOT enter any password and press button to make the backup. -7. Get ADB Backup Extractor : https://sourceforge.net/projects/adbextractor/ +7. Get ADB Backup Extractor: https://sourceforge.net/projects/adbextractor/ 8. Extract All files from the backup: ```bash java.exe -jar ../android-backup-extractor/abe.jar unpack backup.ab backup.tar "" ``` 9. Unzip the ".tar" file. -10. Open the sqlite DB miio2.db with a tool like SQLite Manager extension for FireFox. -11. Get token from "devicerecord" table. +10. Open the SQLite DB miio2.db with a tool like SQLite Manager extension for FireFox. +11. Get the token from "devicerecord" table. ### macOS and iOS @@ -116,7 +116,7 @@ Remote control the vacuum cleaner, make sure you first set it in remote control #### {% linkable_title Service `vacuum/xiaomi_remote_control_move_step` %} -Use this call to enter the remote control mode, make one movement, and stop and exit the remote control mode. +Use this call to enter the remote control mode, make one move, and stop and exit the remote control mode. | Service data attribute | Optional | Description | |---------------------------|----------|-------------------------------------------------------| diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown index 036e8da565f..670d0292c84 100644 --- a/source/_components/vera.markdown +++ b/source/_components/vera.markdown @@ -33,9 +33,9 @@ Configuration variables: ### {% linkable_title Configure devices %} -By default your switches will be added to Home Assistant as switches, however if some of them are light switches, you can tell Home Assistant this using the optional `lights` parameter as shown below. +By default your switches will be added to Home Assistant as switches, however, if some of them are light switches, you can tell Home Assistant this using the optional `lights` parameter as shown below. -Vera imports detailed Z-Wave devices into Home Assistant. This can include system devices and other devices that you don't use, you can tell Home Assistant not to load these devices using the `exclude:` parameter as shown below. +Vera imports detailed Z-Wave devices into Home Assistant. This can include system devices and other devices that you don't use; you can tell Home Assistant not to load these devices using the `exclude:` parameter as shown below. You can find the Vera device id either via the advanced properties of the device in the Vera UI or by checking the `Vera Device Id` attribute on each device imported into Home Assistant (under the developer tools). @@ -50,4 +50,4 @@ vera: ### {% linkable_title Using Z-Wave devices in automation %} -If you want to use a Z-Wave device from the Vera controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the service developer tool icon icon of the Developer Tools section. Look for entities that contain 'Vera Device Id' in their attributes, you'll find the entity id on the left. +If you want to use a Z-Wave device from the Vera controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the service developer tool icon icon of the Developer Tools section. Look for entities that contain 'Vera Device Id' in their attributes, and you'll find the entity id on the left. diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown index a8b9d827b99..24a6200f5f9 100644 --- a/source/_components/volvooncall.markdown +++ b/source/_components/volvooncall.markdown @@ -14,7 +14,7 @@ ha_iot_class: "Cloud Polling" --- -The `volvooncall` platform offers integrates with the [Volvo On Call](http://www.volvocars.com/intl/own/connectivity/volvo-on-call) cloud service and offers presence detection as well as sensors such as odometer and fuel level. +The `volvooncall` platform offers integration with the [Volvo On Call](http://www.volvocars.com/intl/own/connectivity/volvo-on-call) cloud service and offers presence detection as well as sensors such as odometer and fuel level. To use Volvo On Call in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/wake_on_lan.markdown b/source/_components/wake_on_lan.markdown index bcf59cd38b4..05d4369f4dd 100644 --- a/source/_components/wake_on_lan.markdown +++ b/source/_components/wake_on_lan.markdown @@ -13,7 +13,7 @@ ha_release: "0.49" ha_iot_class: "Local Push" --- -The `wake_on_lan` component enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices, in order to turn them on. +The `wake_on_lan` component enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices, to them on. To use this component in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown index 682e85c2827..c419bd88727 100644 --- a/source/_components/weather.buienradar.markdown +++ b/source/_components/weather.buienradar.markdown @@ -13,10 +13,10 @@ ha_release: 0.47 ha_iot_class: "Cloud Polling" --- -The `buienradar` platform uses [buienradar.nl](http://buienradar.nl/) as an source for current meteorological data for your location. The weather forecast is delivered by Buienradar, who provides a webservice that provides detailed weather information for users in The Netherlands. -The relevant weatherstation used will be automatically selected based on the location specified in the Home Assistant configuration (or in the buienradar weather/sensor component). A map of all available weatherstations can be found [here](https://www.google.com/maps/d/embed?mid=1NivHkTGQUOs0dwQTnTMZi8Uatj0). +The `buienradar` platform uses [buienradar.nl](http://buienradar.nl/) as a source for current meteorological data for your location. The weather forecast is delivered by Buienradar, who provides a web service that provides detailed weather information for users in The Netherlands. +The relevant weather station used will be automatically selected based on the location specified in the Home Assistant configuration (or in the Buienradar weather/sensor component). A map of all available weather stations can be found [here](https://www.google.com/maps/d/embed?mid=1NivHkTGQUOs0dwQTnTMZi8Uatj0). -To add the buienradar weather to your installation, add the following to your `configuration.yaml` file: +To add the Buienradar weather to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -26,9 +26,9 @@ weather: Configuration variables: -- **name** (*Optional*): You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of 'weather.[name]'; if no name is specified, it will try to set its name to 'weather.BR_[stationname]'. However at the moment in time the entity is created, no data has been retrieved yet, so the entity will get named 'weather.BR_unknown_station'. Later the station name will be known and get updated, but the entity name remains. -- **latitude** (*Optional*): Latitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration, but can be overridden/changed in this component to select a different location for buienradar. -- **longitude**(*Optional*): Longitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration, but can be overridden/changed in this component to select a different location for buienradar. +- **name** (*Optional*): You can specify a name of the component, but do not have to. If you specify a name, the weather component will get an entity name of 'weather.[name]'; if no name is specified, it will try to set its name to 'weather.BR_[stationname]'. However at the moment in time, the entity is created, no data has been retrieved yet, so the entity will get named 'weather.BR_unknown_station'. Later the station name will be known and get updated, but the entity name remains. +- **latitude** (*Optional*): Latitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. +- **longitude**(*Optional*): Longitude to use for selection of data source location. Longitude and latitude will be taken from Home Assistant configuration but can be overridden/changed in this component to select a different location for Buienradar. - **forecast** (*Optional*): 'True' to add a temperature forecast, 'False' to suppress it. @@ -51,4 +51,4 @@ The weather platform is easier to configure but less customisable.

    [Usage statement:](https://www.buienradar.nl/overbuienradar/gratis-weerdata) -> Buienradar makes free weatherdata available for use by individuals and businesses (website/intranet). The use of the weatherdata is allowed for **non-commercial purposes**. Please refer to the full usage statement linked above to confirm your usage or to request permission. +> Buienradar makes free weather data available for use by individuals and businesses (website/intranet). The use of the weather data is allowed for **non-commercial purposes**. Please refer to the full usage statement linked above to confirm your use or to request permission. diff --git a/source/_components/weather.markdown b/source/_components/weather.markdown index cb6b290d278..f0824091392 100644 --- a/source/_components/weather.markdown +++ b/source/_components/weather.markdown @@ -9,8 +9,8 @@ sharing: true footer: true --- -The `weather` platforms are gathering meteorological information from web services and displays the conditions and other details about the weather at the given location. +The `weather` platforms are gathering meteorological information from web services and display the conditions and other details about the weather at the given location. -Home Assistant currently supports free web services and such which requires a registration. Please check the sidebar for a full list of supported `weather` platforms. +Home Assistant currently supports free web services and such which require a registration. Please check the sidebar for a full list of supported `weather` platforms. diff --git a/source/_components/weather.metoffice.markdown b/source/_components/weather.metoffice.markdown index 175c39e3596..a5800fdacd4 100644 --- a/source/_components/weather.metoffice.markdown +++ b/source/_components/weather.metoffice.markdown @@ -15,7 +15,7 @@ ha_iot_class: "Cloud Polling" The `metoffice` weather platform uses the Met Office's [DataPoint API][datapoint] for weather data. -To add the Met Office weather platform 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: +To add the Met Office weather platform 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: ```yaml weather: diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown index dc8e25bda5c..9c0a24f4478 100644 --- a/source/_components/weather.openweathermap.markdown +++ b/source/_components/weather.openweathermap.markdown @@ -13,7 +13,7 @@ ha_release: 0.32 ha_iot_class: "Cloud Polling" --- -The `openweathermap` weather platform uses [OpenWeatherMap](http://openweathermap.org/) as an source for current meteorological data for your location. +The `openweathermap` weather platform uses [OpenWeatherMap](http://openweathermap.org/) as a source for current meteorological data for your location. You need an API key which is free but requires a [registration](http://home.openweathermap.org/users/sign_up). diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown index 743b19ad693..e0875036794 100644 --- a/source/_components/weather.yweather.markdown +++ b/source/_components/weather.yweather.markdown @@ -13,13 +13,13 @@ ha_release: 0.47 --- -The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as an source for current meteorological data. This component will show you the condition and tempratures for max. 10 days. +The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as a source for current meteorological data. This component will show you the condition and temperatures for max. 10 days.

    Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.

    -The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID it generate it from Home Assistant's latitude and longitude. +The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID, it will be generated from Home Assistant's latitude and longitude. To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown index bef84e45338..96821a0032a 100644 --- a/source/_components/wemo.markdown +++ b/source/_components/wemo.markdown @@ -15,14 +15,14 @@ ha_release: pre 0.7 The `wemo` component is the main component to integrate various [Belkin WeMo](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) devices with Home Assistant. -Supported devices will be automatically discovered if the discovery component is enabled. If you are not using the discovery component, loading the `wemo` component will scan for WeMo devices on the local network. +Supported devices will be automatically discovered if the discovery component is enabled. Loading the `wemo` component will scan the local network for WeMo devices, even if you are not using the discovery component ```yaml # Example configuration.yaml entry wemo: ``` -Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, and/or devices in a remote location reachable over a VPN, you will need to manually configure them. This is also useful if you wish to disable discovery for some wemos, even if they are local. Example static configuration: +Alternately, WeMo devices that are not discoverable can be statically configured. If you have WeMo devices on subnets other than where Home Assistant is running, or devices in a remote location reachable over a VPN, you will need to configure them manually. This is also useful if you wish to disable discovery for some WeMo's, even if they are local. Example static configuration: ```yaml wemo: @@ -33,6 +33,6 @@ wemo: Any WeMo devices that are not statically configured but reachable via discovery will still be added automatically. -Note that if you use this, you may want to configure your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. +Note that if you use this, you may want to set up your router (or whatever runs your DHCP server) to force your WeMo devices to use a static IP address. Check the DHCP section of your router configuration for this ability. -If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming request on port 8989 since this is the address to which the WeMo devices sends their update. +If the device doesn't seem to work and all you see is the state "unavailable" on your dashboard, check that your firewall doesn't block incoming request on port 8989 since this is the address to which the WeMo devices send their update. diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown index 339a17cc6f6..318a1619512 100644 --- a/source/_components/wink.markdown +++ b/source/_components/wink.markdown @@ -22,14 +22,14 @@ ha_release: pre 0.7 Home Assistant integrates with the Wink API and automatically sets up any switches, lights, locks, fans, climate devices, covers, sensors, and alarms. -Check the related components pages for actual devices that are support. +Check the related components pages for actual devices that are supported. Home Assistant offers multiple ways to authenticate to the Wink API. Each authentication method is described below. ### Authenticate using [developer.wink.com](https://developer.wink.com) -This method will require you to setup a developer account with Wink. This process can take a few days to get approved, but is the recommended form of authentication. If you would like to use Wink in Home Assistant while you wait, you can use the email and password authentication below. +This method will require you to setup a developer account with Wink. This process can take a few days to get approved but is the recommended form of authentication. If you would like to use Wink in Home Assistant while you wait, you can use the email and password authentication below. This form of authentication doesn't require any settings in the configuration.yaml other than `wink:` this is because you will be guided through setup via the configurator on the frontend. @@ -68,27 +68,27 @@ wink: Configuration variables: -- **email** (*Required for email/password auth or legacy oauth*): Your Wink login email. -- **password** (*Required for email/password auth or legacy oauth*): Your Wink login password. -- **client_id** (*Required for legacy oauth*): Your provided Wink client_id. -- **client_secret** (*Required for legacy oauth*): Your provided Wink client_secret. -- **local_control** (*Optional*): If set to `True` state changes for lights, locks, and switches will be issue to the local hub. +- **email** (*Required for email/password auth or legacy OAuth*): Your Wink login email. +- **password** (*Required for email/password auth or legacy OAuth*): Your Wink login password. +- **client_id** (*Required for legacy OAuth*): Your provided Wink client_id. +- **client_secret** (*Required for legacy OAuth*): Your provided Wink client_secret. +- **local_control** (*Optional*): If set to `True` state changes for lights, locks, and switches will be an issue to the local hub. Local control: -- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `False` +- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `False`. - Using local control doesn't appear to make commands any quicker, but does function in an internet/Wink outage. - Local control is also only available for the Wink hub v1 and v2, not the Wink relay. -- Local control isn't used during startup of Home Assistant, this means initial setup requires an active internet connection. +- Local control isn't used during start-up of Home Assistant; this means initial setup requires an active internet connection. -- Local control requests are first sent to the controlling hub. In the event that a request fails, that request will attempt to go online. +- Local control requests are first sent to the controlling hub. If a request fails, that request will attempt to go online.

    -It is possible for the hub to get into a bad state where it stops accepting local control request. If this happens you will notice requests taking significantly longer as they are redirected online. This doesn't happen often, but when it does, it appears to be resolved by rebooting the hub. +It is possible for the hub to get into a bad state where it stops accepting local control request. If this happens, you will notice requests taking significantly longer as they are redirected online. This doesn't happen often, but when it does, it appears to be resolved by rebooting the hub. -The following error will be logged in the event that the hub is rejecting local requests. +The following error will be logged if the hub is rejecting local requests. ``` Error sending local control request. Sending request online @@ -98,7 +98,7 @@ Error sending local control request. Sending request online ### {% linkable_title Service `refresh_state_from_wink` %} -The Wink component only obtains the device states from the Wink API once, during startup. All updates after that are pushed via a third party called PubNub. On rare occasions were an update isn't pushed device states can be out of sync. +The Wink component only obtains the device states from the Wink API once, during startup. All updates after that are pushed via a third party called PubNub. On rare occasions where an update isn't pushed device states can be out of sync. You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `True` states will be pulled from the devices controlling hub, not the online API. @@ -107,6 +107,6 @@ You can use the service wink/refresh_state_from_wink to pull the most recent sta You can use the service wink/add_new_devices to pull any newly paired Wink devices to an already running instance of Home-Assistant. Any new devices will also be added if Home-Assistant is restarted.

    -The Wink hub, by default can only be accessed via the cloud. This means it requires an active internet connection and you will experience delays when controlling and updating devices (~3s). +The Wink hub, by default, can only be accessed via the cloud. This means it requires an active internet connection and you will experience delays when controlling and updating devices (~3s).

    diff --git a/source/_components/xiaomi.markdown b/source/_components/xiaomi.markdown index 4c1d2f8ae89..10761039c6c 100644 --- a/source/_components/xiaomi.markdown +++ b/source/_components/xiaomi.markdown @@ -96,7 +96,7 @@ Configuration variables: ## {% linkable_title Services %} -The gateway provides two services: `xiaomi.play_ringtone` and `xiaomi.stop_ringtone`. To play ringtones by Home Assistant the version of the gateway firmware must be `1.4.1_145` at least. A `ringtone_id` and `gw_mac` must be supplied. The parameter `ringtone_vol` (percent) is optional. Allowed values of the `ringtone_id` are: +The gateway provides two services: `xiaomi.play_ringtone` and `xiaomi.stop_ringtone`. To play ringtones by Home Assistant, the version of the gateway firmware must be `1.4.1_145` at least. A `ringtone_id` and `gw_mac` must be supplied. The parameter `ringtone_vol` (percent) is optional. Allowed values of the `ringtone_id` are: - alarm ringtones [0-8] - doorbell ring [10-13] @@ -148,4 +148,4 @@ That means that Home Assistant is not getting any response from your Xiaomi gate - Turn off the firewall on the HA computer - Try to leave the mac address blank. - Try to set `discovery_retry: 10` -- Try to disable and then renable LAN access +- Try to disable and then enable LAN access diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown index d4b89f527ac..507b4ac8f56 100644 --- a/source/_components/zeroconf.markdown +++ b/source/_components/zeroconf.markdown @@ -12,7 +12,7 @@ ha_category: "Other" ha_release: 0.18 --- -The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous and Avahi. +The `zeroconf` component exposes your Home Assistant to the local network using [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking). Zeroconf is also sometimes known as Bonjour, Rendezvous, and Avahi. To integrate this into Home Assistant, add the following section to your `configuration.yaml` file: diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown index 1b3c76b2bd4..a7e8b319744 100644 --- a/source/_components/zigbee.markdown +++ b/source/_components/zigbee.markdown @@ -13,7 +13,7 @@ ha_release: 0.12 ha_iot_class: "Local Polling" --- -[ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilise modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected over a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. +[ZigBee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilize modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local ZigBee device to be connected to a serial port. Through this it will send and receive commands to and from other devices on the ZigBee mesh network. There is currently support for the following device types within Home Assistant: diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown index 830ae7c7c15..797b3659da9 100644 --- a/source/_components/zone.markdown +++ b/source/_components/zone.markdown @@ -40,18 +40,18 @@ zone 3: Configuration variables: -- **name** (*Optional*): Friendly name of entry. +- **name** (*Optional*): Friendly name of the zone. - **latitude** (*Required*): Latitude of the center point of the zone. - **longitude** (*Required*): Longitude of the center point of the zone. - **radius** (*Optional*): Optional radius in meters. Defaults to 100 meters. - **icon** (*Optional*): Optional icon to show instead of name. - **passive** (*Optional*): Optional boolean to only use the zone for automation and hide it from the UI and not use the zone for device tracker name. Defaults to false. -To find your latitude / longtitude of a certain place you can use for example [Google Maps](https://www.google.nl/maps/) or [Bing Maps](https://www.bing.com/maps). Just right click and copy the coordinates from there (Bing) or click on the "What is here?" (Google) +To find your latitude/longitude of a certain place you can use for example [Google Maps](https://www.google.nl/maps/) or [Bing Maps](https://www.bing.com/maps). Just right click and copy the coordinates from there (Bing) or click on the "What is here?" (Google) #### {% linkable_title Home zone %} -If no configuration is given, the `zone` component will create a zone for home. This zone will use location given in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**. +If no configuration is given, the `zone` component will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**.

    Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI. @@ -63,4 +63,4 @@ It is preferred to pick an icon to use for your zone. Pick any icon that you can #### State -`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state, all configured zones are `zoning` all the time. +`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state; all configured zones are `zoning` all the time. From f493074f7c5afabad315a03553061647ac2dcc6c Mon Sep 17 00:00:00 2001 From: Mark Huson Date: Thu, 24 Aug 2017 02:38:03 -0400 Subject: [PATCH 60/67] Update sensor.otp.markdown (#2990) * Update sensor.otp.markdown * Minor changes and add container name --- source/_components/sensor.otp.markdown | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/_components/sensor.otp.markdown b/source/_components/sensor.otp.markdown index 9810cf0bc9f..2381fa180d7 100644 --- a/source/_components/sensor.otp.markdown +++ b/source/_components/sensor.otp.markdown @@ -34,11 +34,17 @@ Configuration variables: A simple way to generate a `token` for a new sensor is to run this snippet of python code in your Home Assistant virtual environment: ```shell -$ pip install pyotp -$ python -c 'import pyotp; print("Token: " + pyotp.random_base32())' +$ pip3 install pyotp +$ python3 -c 'import pyotp; print("Token:", pyotp.random_base32())' Token: IHEDPEBEVA2WVHB7 ``` +To run in a Docker container: + +```shell +$ docker exec -it home-assistant python -c 'import pyotp; print("Token:", pyotp.random_base32())' +Token: IHEDPEBEVA2WVHB7 +``` Copy and paste the token into your Home Assistant configuration and add it to your OTP generator. Verify that they generate the same code.

    From 723f78b59fdad16c6fdfed5e6a818b6328b39531 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 24 Aug 2017 08:39:56 +0200 Subject: [PATCH 61/67] Update Chromium and Firefox --- source/_docs/frontend/browsers.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown index 0543c634d5e..a2247be76ac 100644 --- a/source/_docs/frontend/browsers.markdown +++ b/source/_docs/frontend/browsers.markdown @@ -35,9 +35,9 @@ We would appreciate if you help to keep this page up-to-date and add feedback. | Browser | Release | State | Comments | | :-------------------- |:---------------|:-----------|:-------------------------| -| [Firefox] | 49.0 | works | | +| [Firefox] | 55.0 | works | | | [Midori] | 0.5.11 | works | | -| [Chromium] | 53.0.2785.143 | works | | +| [Chromium] | 60.0.3112.90 | works | | | [Conkeror] | 1.0.2 | works | | | [Konqueror] | | unknown | | | [Uzbl] | 0.9.0 | works | | @@ -63,6 +63,7 @@ We would appreciate if you help to keep this page up-to-date and add feedback. | [Safari] | | works | Can also be added to desktop. Some problems with the Map. | | [Chrome] | | works | | +There are reports that devices running with iOS prior to iOS 10, especially old iPads, are having trouble. [Firefox]: https://www.mozilla.org/en-US/firefox/ [Midori]: http://midori-browser.org/ From 932949c9b68b2c004d4769b787a3676daebae534 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 24 Aug 2017 08:43:30 +0200 Subject: [PATCH 62/67] Fix configuration sample --- source/_components/vacuum.roomba.markdown | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/source/_components/vacuum.roomba.markdown b/source/_components/vacuum.roomba.markdown index 54efb74b466..32c1393eb26 100644 --- a/source/_components/vacuum.roomba.markdown +++ b/source/_components/vacuum.roomba.markdown @@ -12,20 +12,18 @@ ha_category: Vacuum ha_release: 0.51 --- -The `roomba` component allows you to control your [Roomba](http://www.irobot.com/For-the-Home/Vacuuming/Roomba.aspx). +The `roomba` component allows you to control your [iRobot Roomba](http://www.irobot.com/For-the-Home/Vacuuming/Roomba.aspx) vacuum.

    -This platform has only been tested with an iRobot Roomba 980 but should work find -with any Wi-Fi enabled Roomba like the 690, 890 or the 960. +This platform has only been tested with an iRobot Roomba 980 but should work find with any Wi-Fi enabled Roomba like the 690, 890 or the 960.

    -To add your roomba vacuum to your installation, add the following to your `configuration.yaml` file: +To add your Roomba vacuum to your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry vacuum: - platform: roomba - name: My Roomba host: IP_ADDRESS_OR_HOSTNAME username: BLID password: PASSWORD @@ -34,16 +32,16 @@ vacuum: Configuration variables: - **host** (*Required*): Hostname or IP address of the Roomba. -- **username** (*Required*): Username (BLID). -- **password** (*Required*): Password. -- **certificate** (*Optional*): Path to your certificate store (Default: `/etc/ssl/certs/ca-certificates.crt`) -- **continuous** (*Optional*): Whether to operate in continuous mode (Default: `True`). +- **username** (*Required*): The username (BLID) fro your device. +- **password** (*Required*): The password for your device. +- **name** (*Optional*): The name of the vacuum. +- **certificate** (*Optional*): Path to your certificate store. Defaults to `/etc/ssl/certs/ca-certificates.crt`. +- **continuous** (*Optional*): Whether to operate in continuous mode. Defaults to `True`.

    -The Roomba's MQTT server only allows a single connection. Enabling continuous -mode will force the App to connect via the cloud to your Roomba. [More info here](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes) +The Roomba's MQTT server only allows a single connection. Enabling continuous mode will force the App to connect via the cloud to your Roomba. [More info here](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes)

    -### Retrieving your credentials +### {% linkable_title Retrieving your credentials %} Please refer to [here](https://github.com/NickWaterton/Roomba980-Python#how-to-get-your-usernameblid-and-password) or [here](https://github.com/koalazak/dorita980#how-to-get-your-usernameblid-and-password) to retrieve both the BLID (username) and the password. From 41e9e87bae50322971c5d07d810dbd2d9d82a5b1 Mon Sep 17 00:00:00 2001 From: Ioan Loosley Date: Thu, 24 Aug 2017 10:37:44 +0100 Subject: [PATCH 63/67] Removed apt command and made the build instructions more inclusive (#3232) * Removed apt command and made the build instructions more inclusive Removed the apt command and added it for other platforms in the main compile sections --- .../image_processing.seven_segments.markdown | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/_components/image_processing.seven_segments.markdown b/source/_components/image_processing.seven_segments.markdown index 35b286e0e12..4385b2e9993 100644 --- a/source/_components/image_processing.seven_segments.markdown +++ b/source/_components/image_processing.seven_segments.markdown @@ -15,18 +15,23 @@ og_image: /images/screenshots/ssocr.png ha_iot_class: "Local Polling" --- -The `seven_segments` image processing platform allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/components/camera/). `ssocr` need to be available on your system. Check the installation instruction for Fedora below or use `$ sudo apt-get install ssocr` on a Debian-based system: +The `seven_segments` image processing platform allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/components/camera/).

    If you are using [Hass.io](/hassio/) then just move forward to the configuration as all requirements are already fullfilled.

    +`ssocr` needs to be available on your system. Check the installation instruction below: + ```bash -$ sudo dnf -y install imlib2-devel +$ sudo dnf -y install imlib2-devel # Fedora +$ sudo apt install libimlib2-dev # Ubuntu +$ brew install imlib2 # macOS $ git clone https://github.com/auerswal/ssocr.git $ cd ssocr $ make -$ sudo make PREFIX=/usr install +$ sudo make PREFIX=/usr install # On most systems +$ make deb # (Optional) This allows you to make a deb so that you apt is aware of ssocr ``` To enable the OCR of a seven segement display in your installation, add the following to your `configuration.yaml` file: From 18bd110cbe523fadb863b692181decace03906bb Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 24 Aug 2017 11:55:15 +0200 Subject: [PATCH 64/67] Add 'ha_iot_class' --- source/_components/switch.mystrom.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown index 9c9c01e493b..a9a4e3d7b0c 100644 --- a/source/_components/switch.mystrom.markdown +++ b/source/_components/switch.mystrom.markdown @@ -9,6 +9,8 @@ sharing: true footer: true logo: mystrom.png ha_category: Switch +ha_release: 0.9 +ha_iot_class: "Local Polling" --- From 28d72cee6d791d7a6845eabc092a776704dd2c2d Mon Sep 17 00:00:00 2001 From: Phil Cole Date: Thu, 24 Aug 2017 13:20:56 +0100 Subject: [PATCH 65/67] Add note about no location data provided by API (#3233) --- source/_components/device_tracker.tado.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.tado.markdown b/source/_components/device_tracker.tado.markdown index fdbba6cdcf7..548b3455a60 100644 --- a/source/_components/device_tracker.tado.markdown +++ b/source/_components/device_tracker.tado.markdown @@ -37,7 +37,7 @@ Configuration variables: After configuration, your device has to be at home at least once before showing up as *home* or *away*. Polling Tado API for presence information will happen at most once every 30 seconds. -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the tado (v2) API does not provide GPS location of devices, only a bearing, therefore home assistant only uses home/not-home status. ### {% linkable_title Finding your `home_id` %} Find your `home_id` by browsing to `https://my.tado.com/api/v2/me?username=YOUR_USERNAME&password=YOUR_PASSWORD`. There you'll see something like the following: From 295688b6ff99113e2f2be9108ee63242266d70a4 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 24 Aug 2017 14:56:16 +0200 Subject: [PATCH 66/67] Improve change from #3233 and update JSON output --- .../_components/device_tracker.tado.markdown | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/source/_components/device_tracker.tado.markdown b/source/_components/device_tracker.tado.markdown index 548b3455a60..446c79131d6 100644 --- a/source/_components/device_tracker.tado.markdown +++ b/source/_components/device_tracker.tado.markdown @@ -14,8 +14,7 @@ ha_release: 0.37 The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and it's support for person presence detection based on smartphone location by geofencing. -This tracker uses the Tado API to determine if a mobile device is at home. -It tracks all devices in your home that Tado knows about. +This tracker uses the Tado API to determine if a mobile device is at home. It tracks all devices in your home that Tado knows about. To use the Tado platform in your installation, add the following to your `configuration.yaml` file: @@ -37,15 +36,25 @@ Configuration variables: After configuration, your device has to be at home at least once before showing up as *home* or *away*. Polling Tado API for presence information will happen at most once every 30 seconds. -See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the tado (v2) API does not provide GPS location of devices, only a bearing, therefore home assistant only uses home/not-home status. +See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the Tado (v2) API does not provide GPS location of devices, only a bearing, therefore Home Assistant only uses `home`/`not-home` status. ### {% linkable_title Finding your `home_id` %} Find your `home_id` by browsing to `https://my.tado.com/api/v2/me?username=YOUR_USERNAME&password=YOUR_PASSWORD`. There you'll see something like the following: ```json -{"name":"Mark","email":"your@email.tld","username":"your@email.tld", -"homes":[{"id":12345,"name":"Home Sweet Home"}],"locale":"en_US", -"mobileDevices":[]} +{ + "name": "Mark", + "email": "your@email.tld", + "username": "your@email.tld", + "homes": [ + { + "id": 12345, + "name": "Home Sweet Home" + } + ], + "locale": "en_US", + "mobileDevices": [] +} ``` In this example `12345` is the `home_id` you'll need to configure. From 1a4231a0d85c44dc9b3b457ce01f539368c2baf3 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 24 Aug 2017 18:21:36 +0200 Subject: [PATCH 67/67] Minor changes --- source/_components/notify.facebook.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/notify.facebook.markdown b/source/_components/notify.facebook.markdown index 3a425016cc5..3dd7ee2fd4a 100644 --- a/source/_components/notify.facebook.markdown +++ b/source/_components/notify.facebook.markdown @@ -26,13 +26,13 @@ notify: Configuration variables: -- **page_access_token** (*Required*): Access token for your facebook page. Checkout [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform/guides/setup) for more information. +- **page_access_token** (*Required*): Access token for your Facebook page. Checkout [Facebook Messenger Platform](https://developers.facebook.com/docs/messenger-platform/guides/setup) for more information. - **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`. ### {% linkable_title Usage %} -With Facebook notify service, you can send your notifications to your facebook messenger with help of your facebook page. You have to create a [Facebook Page and App](https://developers.facebook.com/docs/messenger-platform/guides/quick-start) for this service. You can control it by calling the notify service [as described here](/components/notify/). It will send a message on messenger to user specified by **target** on behalf of your page. See the [quick start](https://developers.facebook.com/docs/messenger-platform/guides/quick-start) guide for more information. -The phone number used in **target** should be registered with facebook messenger. Phone number of the recipient should be in +1(212)555-2368 format. If your app is not approved by facebook then the recipient should by either admin, developer or tester for your facebook app. [More...](https://developers.facebook.com/docs/messenger-platform/send-api-reference#phone_number) +With Facebook notify service, you can send your notifications to your Facebook messenger with help of your Facebook page. You have to create a [Facebook Page and App](https://developers.facebook.com/docs/messenger-platform/guides/quick-start) for this service. You can control it by calling the notify service [as described here](/components/notify/). It will send a message on messenger to user specified by **target** on behalf of your page. See the [quick start](https://developers.facebook.com/docs/messenger-platform/guides/quick-start) guide for more information. +The phone number used in **target** should be registered with Facebook messenger. Phone number of the recipient should be in +1(212)555-2368 format. If your app is not approved by Facebook then the recipient should by either admin, developer or tester for your Facebook app. [More information](https://developers.facebook.com/docs/messenger-platform/send-api-reference#phone_number) about the phone number. ```yaml # Example automation notification entry