From ce4bfdbdf66dfaae0f57d65f8fce2e8d8554d17e Mon Sep 17 00:00:00 2001 From: Robbie Trencheny Date: Sat, 4 Feb 2017 22:41:07 -0800 Subject: [PATCH 01/31] Spelling fix --- source/getting-started/index.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 64e28ee818..fd1e441c5a 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -31,7 +31,7 @@ You will need to install Home Assistant before we can get started. You can insta For advanced users we have several alternative guides for installing Home Assistant. - [Docker](/getting-started/installation-docker/) -- [Manual Raspberry Pi installtion](/getting-started/installation-raspberry-pi/) (requires existing Raspbian installation) +- [Manual Raspberry Pi installation](/getting-started/installation-raspberry-pi/) (requires existing Raspbian installation) - [Raspberry Pi All-In-One Installer Script](/getting-started/installation-raspberry-pi-all-in-one/) (requires existing Raspbian installation) - [Vagrant](/getting-started/installation-vagrant/) - [Synology NAS](/getting-started/installation-synology/) From 30b3a55344a13a1c91c83ba31ef2954a7067d34d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 4 Feb 2017 22:43:51 -0800 Subject: [PATCH 02/31] Update installation-raspberry-pi.markdown --- .../installation-raspberry-pi.markdown | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/source/getting-started/installation-raspberry-pi.markdown b/source/getting-started/installation-raspberry-pi.markdown index 7c500b9028..e4e7c76f42 100644 --- a/source/getting-started/installation-raspberry-pi.markdown +++ b/source/getting-started/installation-raspberry-pi.markdown @@ -9,20 +9,6 @@ sharing: true footer: true --- -### {% linkable_title Installation %} - -There's currently three documented ways to install Home Assistant on a Raspberry Pi. - - [Manual installation](/getting-started/installation-raspberry-pi/#manual-installation). Following this guide doing each step manually. This is highly recommended as a first installation since you get a good overview of the installation. - - [Hassbian image](/getting-started/installation-raspberry-pi-image). Basic installation with the same settings as following the manual installation guide. Some additional software is preinstalled to make installation quicker and easier. Installation uses `homeassistant` user. - - [All-in-One Installer](/getting-started/installation-raspberry-pi-all-in-one/). Fabric based installation script that installs and compiles many of the things an advanced Home Assistant install is likely to need. Installation uses `homeassistant` user. - -

- Since each installation type uses a different user for Home Assistant, be sure to note and use the correct username for the `adduser` commands listed below for camera and GPIO extensions. -

- - -### {% linkable_title Manual Installation %} - This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). The installation will be installed in a [Virtual Environment](/getting-started/installation-virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite. From 87e7c16ef2b53fc063b594f9224f77740ddd8086 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 5 Feb 2017 08:30:14 +0100 Subject: [PATCH 03/31] Added note regarding dashes in script names (#1518) --- source/_components/script.markdown | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/_components/script.markdown b/source/_components/script.markdown index c3457fd045..b8ad2d156c 100644 --- a/source/_components/script.markdown +++ b/source/_components/script.markdown @@ -25,9 +25,15 @@ script: # This is Home Assistant Script Syntax - service: notify.notify data_template: - message: Current temperature is {% raw %}{{ states.sensor.temperature.state }}{% endraw %} +          message: Current temperature is {% raw %}{{ states.sensor.temperature.state }}{% endraw %} +``` +

+Script names (e.g. `message_temperature` in the example above) are not allowed to contain dash (minus) characters, i.e. `-`. +The preferred way to separate words for better readability is to use underscore (`_`) characters. +

- # Turns on the bedroom lights and then the living room lights 1 minute later +```yaml +  # Turns on the bedroom lights and then the living room lights 1 minute later wakeup: alias: Wake Up sequence: From efd9a5e68da79c55c12753cc69fdef23428ee507 Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Sun, 5 Feb 2017 03:28:13 -0500 Subject: [PATCH 04/31] Added cross linking to Automation templating. (#1965) Trigger templates where not easy to find in the current structure. --- source/_topics/templating.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index 7b71cabebc..58731bef6f 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -22,6 +22,7 @@ Templating is a powerful feature in Home Assistant that allows the user control - Formatting outgoing messages in, for example, the [notify] and [alexa] components. - Process incoming data from sources that provide raw data, like [MQTT], [REST sensor], or the [command line sensor]. +- [Advanced Automation templating](https://home-assistant.io/getting-started/automation-templating/) [notify]: /components/notify/ [alexa]: /components/alexa/ From eab1207db0b21c1b32fdfe091f4ae3fe5b6eef65 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Sun, 5 Feb 2017 12:20:14 +0100 Subject: [PATCH 05/31] Update templating.markdown Fix formatting to be inline with rest of document. --- source/_topics/templating.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_topics/templating.markdown b/source/_topics/templating.markdown index 58731bef6f..cb87e480e1 100644 --- a/source/_topics/templating.markdown +++ b/source/_topics/templating.markdown @@ -22,13 +22,14 @@ Templating is a powerful feature in Home Assistant that allows the user control - Formatting outgoing messages in, for example, the [notify] and [alexa] components. - Process incoming data from sources that provide raw data, like [MQTT], [REST sensor], or the [command line sensor]. -- [Advanced Automation templating](https://home-assistant.io/getting-started/automation-templating/) +- [Advanced Automation templating]auto-template] [notify]: /components/notify/ [alexa]: /components/alexa/ [MQTT]: /components/mqtt/ [REST sensor]: /components/sensor.rest/ [command line sensor]: /components/sensor.command_line/ +[auto-template]: /getting-started/automation-templating/ ## {% linkable_title Building templates %} From eecb79efa2a27cbedf67ff11cbb646ee28fbbcff Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Sun, 5 Feb 2017 10:48:01 -0500 Subject: [PATCH 06/31] Added quotes around the templates. (#1975) --- source/_cookbook/sonos_say.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 9efe5e5008..0591d76550 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -21,22 +21,22 @@ script: sequence: - service: media_player.sonos_snapshot data_template: - entity_id: {% raw %}{{ sonos_entity }}{% endraw %} + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - service: media_player.sonos_unjoin data_template: - entity_id: {% raw %}{{ sonos_entity }}{% endraw %} + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - service: media_player.volume_set data_template: - entity_id: {% raw %}{{ sonos_entity }}{% endraw %} - volume_level: {% raw %}{{ volume }}{% endraw %} + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + volume_level: {% raw %}"{{ volume }}"{% endraw %} - service: tts.voicerss_say data_template: - entity_id: {% raw %}{{ sonos_entity }}{% endraw %} - message: {% raw %}{{ message }}{% endraw %} - - delay: {% raw %}{{ delay }}{% endraw %} + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + message: {% raw %}"{{ message }}"{% endraw %} + - delay: {% raw %}"{{ delay }}"{% endraw %} - service: media_player.sonos_restore data_template: - entity_id: {% raw %}{{ sonos_entity }}{% endraw %} + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} ``` We call this now with: From a382aed9d11d16322c69a37b032e07adc0206388 Mon Sep 17 00:00:00 2001 From: arjenfvellinga Date: Sun, 5 Feb 2017 16:49:27 +0100 Subject: [PATCH 07/31] Update hassbian.markdown (#1974) Typo in url --- source/getting-started/hassbian.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/hassbian.markdown b/source/getting-started/hassbian.markdown index 26669b0e03..969eaad57c 100644 --- a/source/getting-started/hassbian.markdown +++ b/source/getting-started/hassbian.markdown @@ -16,7 +16,7 @@ Hassbian is our customized operating system for the Raspberry Pi 3. It is the ea - [Pi specific integrations][integrations] - [Learn how to perform common tasks][common] -[install]: /getting-started/hassbian-installatino/ +[install]: /getting-started/hassbian-installation/ [customize]: /getting-started/hassbian-customization/ [common]: /getting-started/hassbian-common-tasks/ [integrations]: /getting-started/hassbian-integrations/ From 74fd315660f53797747b6099d2bb59d9925c1d0f Mon Sep 17 00:00:00 2001 From: clach04 Date: Sun, 5 Feb 2017 07:54:50 -0800 Subject: [PATCH 08/31] Clarify CLA signing sequence of events (#1964) * Clarify CLA signing sequence of events. --- source/developers/cla.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/cla.markdown b/source/developers/cla.markdown index 46f9192c0a..f48588f5e1 100644 --- a/source/developers/cla.markdown +++ b/source/developers/cla.markdown @@ -41,7 +41,7 @@ and not mention sign-off. ## Signing -To sign this CLA you must first submit a pull request to a repository under the Home Assistant organization. +If you have not signed the CLA and you submit a pull request to a repository under the Home Assistant organization, a link will be automatically generated. Just follow the link and the instructions in the link. ## Adoption From 44d345faaea95cec31c843809b16b375920082fd Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 5 Feb 2017 12:01:32 -0800 Subject: [PATCH 09/31] Redirect image installation url --- source/getting-started/hassbian-installation.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/getting-started/hassbian-installation.markdown b/source/getting-started/hassbian-installation.markdown index ab3aaf9753..6ed77c5964 100644 --- a/source/getting-started/hassbian-installation.markdown +++ b/source/getting-started/hassbian-installation.markdown @@ -7,6 +7,7 @@ sidebar: true comments: false sharing: true footer: true +redirect_from: /getting-started/installation-raspberry-pi-image/ --- The easiest way to install Home Assistant on your Raspberry Pi is by using HASSbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes). From 79e2d61109834d1c58e26716e00414baea43b3cb Mon Sep 17 00:00:00 2001 From: Duoxilian Date: Sun, 5 Feb 2017 02:26:33 -0600 Subject: [PATCH 10/31] Update climate.ecobee.markdown (#1967) --- source/_components/climate.ecobee.markdown | 247 +++++++++++++++++++++ 1 file changed, 247 insertions(+) diff --git a/source/_components/climate.ecobee.markdown b/source/_components/climate.ecobee.markdown index 48c3100514..7c5884da8c 100644 --- a/source/_components/climate.ecobee.markdown +++ b/source/_components/climate.ecobee.markdown @@ -13,4 +13,251 @@ ha_release: 0.9 ha_iot_class: "Cloud Push" --- +

To get your Ecobee thermostats working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/). +

+ +## {% linkable_title Concepts %} + +The Ecobee Thermostat supports the following key concepts. + +The _target temperature_ is the temperature that the device attempts +to achieve. The target temperature is either determined by the +currently active climate or it may be overridden by a hold. When the +thermostat is not in auto mode, there is a single target +temperature. When the thermostat is in auto operation mode, there is a +pair of target temperatures: the lower target temperature determines +the lowest desired temperature, while the higher target temperature +determines the highest desired temperature (the thermostat will switch +between heating and cooling to keep the temperature within these +limits). + +A _climate_ is a predefined or user-defined set of states that the +thermostat aims to achieve. The ecobee thermostat provides three predefined +climates: home, away, and sleep. The user can define additional climates. + +A _hold_ is an override of the target temperature defined in the +currently active climate. The temperature targeted in the hold mode may be +explicitly set (temperature hold) or it may be derived from a reference +climate (home or away hold). All holds are temporary. Temperature and +climate holds expire when the thermostat transitions to the next climate +defined in its program. + +When in _away mode_, the target temperature is permanently overridden by +the target temperature defined for the away climate. The away mode is a +simple way to emulate a vacation mode. + +The _operation mode_ of the device is the currently active operational +modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, +auto, and off. + + +## {% linkable_title Attributes %} + +The following attributes are provided by the Ecobee Thermostat: +`name`, `temperature_unit`, `current_temperature`, `target_temperature`, +`target_temperature_low`, `target_temperature_high`, `desired_fan_mode`, +`fan`, `current_hold_mode`, `current_operation`, `operation_list`, +`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`, +`is_away_mode_on`. +The attributes `min_temp` and `max_temp` are meaningless constant values. + + +### {% linkable_title Attribute `name` %} + +Returns the name of the Ecobee Thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the Ecobee Thermostat + +### {% linkable_title Attribute `temperature_unit` %} + +Returns the unit of measurement used for temperature by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Name of the temperature unit + +### {% linkable_title Attribute `current_temperature` %} + +Returns the current temperature measured by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Currenly measured temperature + +### {% linkable_title Attribute `target_temperature` %} + +Returns the target temperature of the thermostat, when the thermostat is +not in auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `target_temperature_low` %} + +Returns the desired heating temperature set in the thermostat when in +auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `target_temperature_high` %} + +Returns the desired cooling temperature set in the thermostat when in +auto operation mode. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Target temperature + +### {% linkable_title Attribute `desired_fan_mode` %} + +Returns the desired fan mode of the current operation. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'on', 'off' + +### {% linkable_title Attribute `fan` %} + +Returns the current fan state. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'on', 'off' + +### {% linkable_title Attribute `current_hold_mode` %} + +Returns the current temperature hold, if any. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'home', 'away', 'temp', None + +### {% linkable_title Attribute `current_operation` %} + +Returns the current operation of the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | 'auto', 'cool', 'heat', 'off' + +### {% linkable_title Attribute `operation_list` %} + +Returns the list of available operation modes. + +| Attribute type | Description | +| ---------------| ----------- | +| List of String | Available operation modes + +### {% linkable_title Attribute `operation_mode` %} + +Returns the current operation mode of the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| String | Currently active operation mode + +### {% linkable_title Attribute `mode` %} + +Returns the climate currently active on the thermostat. + +### {% linkable_title Attribute `fan_min_on_time` %} + +Returns the current fan mimimum on time. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Current fan minimum on time in minutes + +### {% linkable_title Attribute `is_away_mode_on` %} + +Returns whether the thermostat is in away mode (see the corresponding +service for more detail). + +### {% linkable_title Attribute `actual humidity` %} + +Returns the humidity as measured by the thermostat. + +| Attribute type | Description | +| ---------------| ----------- | +| Integer | Current humidity + + +## {% linkable_title Services %} + +The following services are provided by the Ecobee Thermostat: +`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`, +`fan_min_on_time`, `resume_program`. +The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and +`set_swing_mode` offered by the [Climate component](/components/climate/) +are not implemented for this thermostat. + + + +### {% linkable_title Service `set_away_mode` %} + +Turns the away mode on or off for the thermostat. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `away_mode` | no | 'on' or 'off' + + +### {% linkable_title Service `set_hold_mode` %} + +Puts the thermostat into the given hold mode. For 'home' and 'away', the +target temperature is taken from the home or away, climate, respectively. +For 'temp', the current temperature is taken as the target temperature. +When None is provided as parameter, the hold_mode is turned off. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `hold_mode` | no | 'home', 'away', 'temp', None + +### {% linkable_title Service `set_temperature` %} + +Puts the thermostat into a temporary hold at the given temperature. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `target_temp_low` | no | Desired heating target temperature (when in auto mode) +| `target_temp_high` | no | Desired cooling target temperature (when in auto mode) +| `temperature` | no | Desired target temperature (when not in auto mode) + +Only the target temperatures relevant for the current operation mode need to +be provided. + +### {% linkable_title Service `set_operation_mode` %} + +Sets the current operation mode of the thermostat. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off' + +### {% linkable_title Service `fan_min_on_time` %} + +Sets the fan minimum on time. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `fan_min_on_time` | no | Desired fan minimum on time + +### {% linkable_title Service `resume_program` %} + +Resumes the currently active schedule. + +| Service data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. +| `resume_all` | no | true or false From 2b0c208e1fb509041839657a7d17708456e4bde9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sun, 5 Feb 2017 22:13:20 +0100 Subject: [PATCH 11/31] Fix tables --- source/_components/climate.ecobee.markdown | 111 ++++++++------------- 1 file changed, 41 insertions(+), 70 deletions(-) diff --git a/source/_components/climate.ecobee.markdown b/source/_components/climate.ecobee.markdown index 7c5884da8c..cf4835272d 100644 --- a/source/_components/climate.ecobee.markdown +++ b/source/_components/climate.ecobee.markdown @@ -21,45 +21,23 @@ To get your Ecobee thermostats working with Home Assistant, follow the instructi The Ecobee Thermostat supports the following key concepts. -The _target temperature_ is the temperature that the device attempts -to achieve. The target temperature is either determined by the -currently active climate or it may be overridden by a hold. When the -thermostat is not in auto mode, there is a single target -temperature. When the thermostat is in auto operation mode, there is a -pair of target temperatures: the lower target temperature determines -the lowest desired temperature, while the higher target temperature -determines the highest desired temperature (the thermostat will switch -between heating and cooling to keep the temperature within these -limits). +The _target temperature_ is the temperature that the device attempts to achieve. The target temperature is either determined by the +currently active climate or it may be overridden by a hold. When the thermostat is not in auto mode, there is a single target temperature. When the thermostat is in auto operation mode, there is a pair of target temperatures: the lower target temperature determines the lowest desired temperature, while the higher target temperature determines the highest desired temperature (the thermostat will switch between heating and cooling to keep the temperature within these limits). -A _climate_ is a predefined or user-defined set of states that the -thermostat aims to achieve. The ecobee thermostat provides three predefined -climates: home, away, and sleep. The user can define additional climates. +A _climate_ is a predefined or user-defined set of states that the thermostat aims to achieve. The ecobee thermostat provides three predefined climates: home, away, and sleep. The user can define additional climates. -A _hold_ is an override of the target temperature defined in the -currently active climate. The temperature targeted in the hold mode may be -explicitly set (temperature hold) or it may be derived from a reference -climate (home or away hold). All holds are temporary. Temperature and -climate holds expire when the thermostat transitions to the next climate -defined in its program. +A _hold_ is an override of the target temperature defined in the currently active climate. The temperature targeted in the hold mode may be explicitly set (temperature hold) or it may be derived from a reference climate (home or away hold). All holds are temporary. Temperature and climate holds expire when the thermostat transitions to the next climate defined in its program. -When in _away mode_, the target temperature is permanently overridden by -the target temperature defined for the away climate. The away mode is a -simple way to emulate a vacation mode. +When in _away mode_, the target temperature is permanently overridden by the target temperature defined for the away climate. The away mode is a simple way to emulate a vacation mode. -The _operation mode_ of the device is the currently active operational -modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, -auto, and off. +The _operation mode_ of the device is the currently active operational modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool, auto, and off. ## {% linkable_title Attributes %} The following attributes are provided by the Ecobee Thermostat: -`name`, `temperature_unit`, `current_temperature`, `target_temperature`, -`target_temperature_low`, `target_temperature_high`, `desired_fan_mode`, -`fan`, `current_hold_mode`, `current_operation`, `operation_list`, -`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`, -`is_away_mode_on`. +`name`, `temperature_unit`, `current_temperature`, `target_temperature`, `target_temperature_low`, `target_temperature_high`, `desired_fan_mode`, `fan`, `current_hold_mode`, `current_operation`, `operation_list`,`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`, `is_away_mode_on`. + The attributes `min_temp` and `max_temp` are meaningless constant values. @@ -69,7 +47,7 @@ Returns the name of the Ecobee Thermostat. | Attribute type | Description | | ---------------| ----------- | -| String | Name of the Ecobee Thermostat +| String | Name of the Ecobee Thermostat | ### {% linkable_title Attribute `temperature_unit` %} @@ -77,7 +55,7 @@ Returns the unit of measurement used for temperature by the thermostat. | Attribute type | Description | | ---------------| ----------- | -| String | Name of the temperature unit +| String | Name of the temperature unit | ### {% linkable_title Attribute `current_temperature` %} @@ -85,7 +63,7 @@ Returns the current temperature measured by the thermostat. | Attribute type | Description | | ---------------| ----------- | -| Integer | Currenly measured temperature +| Integer | Currenly measured temperature | ### {% linkable_title Attribute `target_temperature` %} @@ -94,7 +72,7 @@ not in auto operation mode. | Attribute type | Description | | ---------------| ----------- | -| Integer | Target temperature +| Integer | Target temperature | ### {% linkable_title Attribute `target_temperature_low` %} @@ -103,7 +81,7 @@ auto operation mode. | Attribute type | Description | | ---------------| ----------- | -| Integer | Target temperature +| Integer | Target temperature | ### {% linkable_title Attribute `target_temperature_high` %} @@ -112,7 +90,7 @@ auto operation mode. | Attribute type | Description | | ---------------| ----------- | -| Integer | Target temperature +| Integer | Target temperature | ### {% linkable_title Attribute `desired_fan_mode` %} @@ -120,7 +98,7 @@ Returns the desired fan mode of the current operation. | Attribute type | Description | | ---------------| ----------- | -| String | 'on', 'off' +| String | 'on', 'off' | ### {% linkable_title Attribute `fan` %} @@ -128,7 +106,7 @@ Returns the current fan state. | Attribute type | Description | | ---------------| ----------- | -| String | 'on', 'off' +| String | 'on', 'off' | ### {% linkable_title Attribute `current_hold_mode` %} @@ -136,7 +114,7 @@ Returns the current temperature hold, if any. | Attribute type | Description | | ---------------| ----------- | -| String | 'home', 'away', 'temp', None +| String | 'home', 'away', 'temp', None | ### {% linkable_title Attribute `current_operation` %} @@ -144,7 +122,7 @@ Returns the current operation of the thermostat. | Attribute type | Description | | ---------------| ----------- | -| String | 'auto', 'cool', 'heat', 'off' +| String | 'auto', 'cool', 'heat', 'off' | ### {% linkable_title Attribute `operation_list` %} @@ -152,7 +130,7 @@ Returns the list of available operation modes. | Attribute type | Description | | ---------------| ----------- | -| List of String | Available operation modes +| List of String | Available operation modes | ### {% linkable_title Attribute `operation_mode` %} @@ -160,7 +138,7 @@ Returns the current operation mode of the thermostat. | Attribute type | Description | | ---------------| ----------- | -| String | Currently active operation mode +| String | Currently active operation mode | ### {% linkable_title Attribute `mode` %} @@ -172,12 +150,11 @@ Returns the current fan mimimum on time. | Attribute type | Description | | ---------------| ----------- | -| Integer | Current fan minimum on time in minutes +| Integer | Current fan minimum on time in minutes | ### {% linkable_title Attribute `is_away_mode_on` %} -Returns whether the thermostat is in away mode (see the corresponding -service for more detail). +Returns whether the thermostat is in away mode (see the corresponding service for more detail). ### {% linkable_title Attribute `actual humidity` %} @@ -185,17 +162,15 @@ Returns the humidity as measured by the thermostat. | Attribute type | Description | | ---------------| ----------- | -| Integer | Current humidity +| Integer | Current humidity | ## {% linkable_title Services %} The following services are provided by the Ecobee Thermostat: -`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`, -`fan_min_on_time`, `resume_program`. -The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and -`set_swing_mode` offered by the [Climate component](/components/climate/) -are not implemented for this thermostat. +`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`, `fan_min_on_time`, `resume_program`. + +The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and `set_swing_mode` offered by the [Climate component](/components/climate/) are not implemented for this thermostat. @@ -205,21 +180,18 @@ Turns the away mode on or off for the thermostat. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `away_mode` | no | 'on' or 'off' +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. | +| `away_mode` | no | 'on' or 'off' | ### {% linkable_title Service `set_hold_mode` %} -Puts the thermostat into the given hold mode. For 'home' and 'away', the -target temperature is taken from the home or away, climate, respectively. -For 'temp', the current temperature is taken as the target temperature. -When None is provided as parameter, the hold_mode is turned off. +Puts the thermostat into the given hold mode. For 'home' and 'away', the target temperature is taken from the home or away, climate, respectively. For 'temp', the current temperature is taken as the target temperature. When None is provided as parameter, the hold_mode is turned off. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `hold_mode` | no | 'home', 'away', 'temp', None +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. | +| `hold_mode` | no | 'home', 'away', 'temp', None | ### {% linkable_title Service `set_temperature` %} @@ -228,12 +200,11 @@ Puts the thermostat into a temporary hold at the given temperature. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `target_temp_low` | no | Desired heating target temperature (when in auto mode) -| `target_temp_high` | no | Desired cooling target temperature (when in auto mode) -| `temperature` | no | Desired target temperature (when not in auto mode) +| `target_temp_low` | no | Desired heating target temperature (when in auto mode) | +| `target_temp_high` | no | Desired cooling target temperature (when in auto mode) | +| `temperature` | no | Desired target temperature (when not in auto mode) | -Only the target temperatures relevant for the current operation mode need to -be provided. +Only the target temperatures relevant for the current operation mode need to be provided. ### {% linkable_title Service `set_operation_mode` %} @@ -241,8 +212,8 @@ Sets the current operation mode of the thermostat. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off' +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. | +| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off' | ### {% linkable_title Service `fan_min_on_time` %} @@ -250,8 +221,8 @@ Sets the fan minimum on time. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `fan_min_on_time` | no | Desired fan minimum on time +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. | +| `fan_min_on_time` | no | Desired fan minimum on time | ### {% linkable_title Service `resume_program` %} @@ -259,5 +230,5 @@ Resumes the currently active schedule. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `resume_all` | no | true or false +| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. | +| `resume_all` | no | true or false | From 2b0557b388c1a55f14ce59aefab22ed1474bb709 Mon Sep 17 00:00:00 2001 From: Duoxilian Date: Sun, 29 Jan 2017 02:24:10 -0600 Subject: [PATCH 12/31] Update climate.markdown (#1898) Add documentation for hold_mode. --- source/_components/climate.markdown | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/_components/climate.markdown b/source/_components/climate.markdown index 24caf95194..d90be5414d 100644 --- a/source/_components/climate.markdown +++ b/source/_components/climate.markdown @@ -54,12 +54,17 @@ automation: ### {% linkable_title Service `climate.set_away_mode` %} -Turn away mode on/off for climate device +This service has been deprecated. Use `climate.set_hold_mode` instead. + + +### {% linkable_title Service `climate.set_hold_mode` %} + +Set hold mode for climate device | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all. -| `away_mode` | no | New value of away mode. +| `hold_mode` | no | New value of hold mode. #### {% linkable_title Automation example %} @@ -69,10 +74,10 @@ automation: platform: time after: "07:15:00" action: - - service: climate.set_away_mode + - service: climate.set_hold_mode data: entity_id: climate.kitchen - away_mode: true + hold_mode: 'away' ``` ### {% linkable_title Service `climate.set_temperature` %} From 0f4865b038e74ae6cf60d98ac7db4f2efb412608 Mon Sep 17 00:00:00 2001 From: Brian J King Date: Mon, 6 Feb 2017 00:49:33 -0600 Subject: [PATCH 13/31] Fix typo in configuration variables for TP-Link Smart Switches (#1982) Page had indicated [MyStrom)(https://mystrom.ch/en/), however, this appears to be another smart switch option, not TP-Link as the page is about. --- source/_components/switch.tplink.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown index 9194054217..d2a6a8053c 100644 --- a/source/_components/switch.tplink.markdown +++ b/source/_components/switch.tplink.markdown @@ -33,7 +33,7 @@ switch: Configuration variables: -- **host** (*Required*): The IP address of your myStrom switch, eg. `http://192.168.1.32`. +- **host** (*Required*): The IP address of your TP-Link switch, eg. `http://192.168.1.32`. - **name** (*Optional*): The name to use when displaying this switch. From 1595a715cb18a381b2149a748c305dc520b107ec Mon Sep 17 00:00:00 2001 From: arjenfvellinga Date: Mon, 6 Feb 2017 18:44:27 +0100 Subject: [PATCH 14/31] Update notify.pushbullet.markdown (#1983) More specific instruction where to retrieve your api key. --- source/_components/notify.pushbullet.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index f7880b7c75..3d6ad9a45d 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -26,7 +26,7 @@ notify: Configuration variables: -- **api_key** (*Required*): Enter the API key for Pushbullet. Go to https://www.pushbullet.com/ to retrieve your API key. +- **api_key** (*Required*): Enter the API key for Pushbullet. Go to https://www.pushbullet.com/#settings/account to retrieve your API key / access token. - **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 %} From e157039ab31bb9ec69d14405465e07d5797b3921 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 6 Feb 2017 08:59:16 +0100 Subject: [PATCH 15/31] Update sample --- source/_components/binary_sensor.mqtt.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index e701a556c4..5ab90a6900 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -46,13 +46,13 @@ An extended configuration for the same sensor could look like this if you want/n ```yaml # Example configuration.yml entry binary_sensor: - platform: mqtt - state_topic: "home-assistant/window/contact" - name: "Windows contact" - qos: 0 - payload_on: "1" - payload_off: "0" - sensor_class: opening - value_template: '{% raw %}{{ value.x }}{% endraw %}' + - platform: mqtt + state_topic: "home-assistant/window/contact" + name: "Windows contact" + qos: 0 + payload_on: "1" + payload_off: "0" + sensor_class: opening + value_template: '{% raw %}{{ value.x }}{% endraw %}' ``` From 87d018214cd7f5fd9088f3b890754eb9f97a2d75 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 6 Feb 2017 21:56:35 +0100 Subject: [PATCH 16/31] Add more examples --- source/developers/websocket_api.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/developers/websocket_api.markdown b/source/developers/websocket_api.markdown index e7a1d974ef..785b907b9f 100644 --- a/source/developers/websocket_api.markdown +++ b/source/developers/websocket_api.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "Websocket API" -description: "Home Assistant Websocket API documentation" +title: "WebSocket API" +description: "Home Assistant WebSocket API documentation" date: 2016-11-26 13:27 sidebar: true comments: false @@ -9,9 +9,11 @@ sharing: true footer: true --- -Home Assistant contains a websocket API. This API can be used to stream information from a Home Assistant instance to any client that implements websockets. Implementations in different languages: +Home Assistant contains a WebSocket API. This API can be used to stream information from a Home Assistant instance to any client that implements WebSocket. Implementations in different languages: - [JavaScript](https://github.com/home-assistant/home-assistant-js-websocket) - powers the frontend + - [Python](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket-client.py) - CLI client using [`asyncws`](https://async-websockets.readthedocs.io/en/latest/) + - [JavaScript/HTML](https://raw.githubusercontent.com/home-assistant/home-assistant-dev-helper/master/ha-websocket.html) - WebSocket connection in your browser Connect your websocket implementation to `ws://localhost:8123/api/websocket`. From 8a16b0d4130222870a3a7ef663206e12469988d6 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Mon, 6 Feb 2017 16:33:06 -0500 Subject: [PATCH 17/31] Update Sonos say script (#1985) --- source/_cookbook/sonos_say.markdown | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 0591d76550..fc1d7c9ff2 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -1,7 +1,7 @@ --- layout: page title: "Sonos say script to speak with text-to-speech" -description: "Sonos say script to speak with text-to-speech." +description: "Sonos say script to use text-to-speech with Sonos" date: 2017-01-18 00:00 sidebar: true comments: false @@ -12,7 +12,7 @@ ha_category: Automation Examples #### {% linkable_title Sonos say script to speak with text-to-speech %} -This script allow you to use TTS on sonos in a easy way with all features. +This script allows you to use [TTS](https://home-assistant.io/components/#text-to-speech) on Sonos. ```yaml script: @@ -22,21 +22,21 @@ script: - service: media_player.sonos_snapshot data_template: entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - - service: media_player.sonos_unjoin - data_template: - entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - - service: media_player.volume_set - data_template: - entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - volume_level: {% raw %}"{{ volume }}"{% endraw %} - - service: tts.voicerss_say - data_template: - entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} - message: {% raw %}"{{ message }}"{% endraw %} - - delay: {% raw %}"{{ delay }}"{% endraw %} - - service: media_player.sonos_restore - data_template: - entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + - service: media_player.sonos_unjoin + data_template: + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + - service: media_player.volume_set + data_template: + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + volume_level: {% raw %}"{{ volume }}"{% endraw %} + - service: tts.voicerss_say + data_template: + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} + message: {% raw %}"{{ message }}"{% endraw %} + - delay: {% raw %}"{{ delay }}"{% endraw %} + - service: media_player.sonos_restore + data_template: + entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %} ``` We call this now with: From 43eafc7a0ceb42ea61dd9a60e9f5eea9251adfe4 Mon Sep 17 00:00:00 2001 From: bbrendon Date: Mon, 6 Feb 2017 13:34:50 -0800 Subject: [PATCH 18/31] fix some syntax errors and made the example more complete (#1981) --- source/_cookbook/sonos_say.markdown | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index fc1d7c9ff2..6c73f0e1bb 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -41,10 +41,16 @@ script: We call this now with: ```yaml -service: script.sonos_say -data: - sonos_entity: media_player.kitchen - volume: 0.3 - message: 'Your husband comming home!' - delay: '00:00:05' +automation: + - alias: 'test' + trigger: + - platform: state + entity_id: input_boolean.mytest + action: + - service: script.sonos_say + data: + sonos_entity: media_player.office + volume: 0.5 + message: 'Your husband comming home!' + delay: '00:00:05' ``` From 00a1b09386e59d96f7631d8cdffdbfd324ecceb3 Mon Sep 17 00:00:00 2001 From: Alok Saboo Date: Mon, 6 Feb 2017 16:35:26 -0500 Subject: [PATCH 19/31] Minor fixes. (#1984) --- source/_components/notify.pushbullet.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.pushbullet.markdown b/source/_components/notify.pushbullet.markdown index 3d6ad9a45d..d1cd11a92c 100644 --- a/source/_components/notify.pushbullet.markdown +++ b/source/_components/notify.pushbullet.markdown @@ -26,7 +26,7 @@ notify: Configuration variables: -- **api_key** (*Required*): Enter the API key for Pushbullet. Go to https://www.pushbullet.com/#settings/account to retrieve your API key / access token. +- **api_key** (*Required*): Enter the API key for Pushbullet. Go to [https://www.pushbullet.com/#settings/account](https://www.pushbullet.com/#settings/account) to retrieve your API key/access token. - **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 %} From 42be2b1e1bdbd6b9e58189f9133d7fdf40262c22 Mon Sep 17 00:00:00 2001 From: Jerry Workman Date: Tue, 7 Feb 2017 02:05:11 -0500 Subject: [PATCH 20/31] fix error in switch/turn_on example (#1988) Corrected CURL bash command ( thanks to David): '$ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ -H "Content-Type: application/json" \ -d '{"entity_id": "switch.christmas_lights", "state": "on"}' \ http://localhost:8123/api/services/switch/turn_on' --- source/developers/rest_api.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/rest_api.markdown b/source/developers/rest_api.markdown index 23f5a2e4c8..27b4392e1a 100644 --- a/source/developers/rest_api.markdown +++ b/source/developers/rest_api.markdown @@ -418,7 +418,7 @@ Sample `curl` command: ```bash $ curl -X POST -H "x-ha-access: YOUR_PASSWORD" \ -H "Content-Type: application/json" \ - -d '{"entity_id": "switch.christmas_lights", "state": "on"}' \ + -d '{"entity_id": "switch.christmas_lights"}' \ http://localhost:8123/api/services/switch/turn_on ``` From a4c695920f73bde6aaaa775dfa335bf8204a678f Mon Sep 17 00:00:00 2001 From: azeroth12 Date: Tue, 7 Feb 2017 12:34:40 -0600 Subject: [PATCH 21/31] Update z-wave-controllers.markdown (#1990) Works solid on my intel xserve running 10.11.6 --- source/getting-started/z-wave-controllers.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/getting-started/z-wave-controllers.markdown b/source/getting-started/z-wave-controllers.markdown index 42699a01ea..694f7263d0 100644 --- a/source/getting-started/z-wave-controllers.markdown +++ b/source/getting-started/z-wave-controllers.markdown @@ -20,7 +20,7 @@ Upon first run, the `zwave` component will take time to initialize entities and | Device | Works on Linux | Works on Windows | Works on OSX | |-------------------------|----------------|------------------|--------------| | Aeotec Z-Stick Series 2 | ✓ | | | -| Aeotec Z-Stick Series 5 | ✓ | | | +| Aeotec Z-Stick Series 5 | ✓ | | ✓ | | Pine64 Z-Wave Module | ✓ | | | | Razberry GPIO Module | ✓ | | | | ZWave.me UZB1 | ✓ | | | From f821cf290033f5aa2807628c2e386760bffeff92 Mon Sep 17 00:00:00 2001 From: R Huish Date: Tue, 7 Feb 2017 18:39:27 +0000 Subject: [PATCH 22/31] Updated to reflect firebase.google.com changes (#1987) firebase.google.com has moved to a new longer key and the regenerate button is no longer present. --- source/_components/notify.html5.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown index 63197a526e..54ae837cfd 100644 --- a/source/_components/notify.html5.markdown +++ b/source/_components/notify.html5.markdown @@ -37,7 +37,7 @@ Configuration variables: - Go to [https://console.cloud.google.com/apis/credentials/domainverification](https://console.cloud.google.com/apis/credentials/domainverification) and verify your domain. - After that, go to [https://console.firebase.google.com](https://console.firebase.google.com) and select import Google project, select the project you created. - Then, click the cogwheel on top left and select "Project settings". -- Select Cloud messaging tab if under server key is button Regenerate key, click that. +- Select 'Cloud Messaging' tab, listed beneath Project Credentials will be your 152 character 'Server Key' and 12 digit ID 'Sender ID'. ### {% linkable_title Requirements %} From 043022647ffc7c9ef9b0ffb8c0059a886fa3a29e Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Tue, 7 Feb 2017 14:41:48 -0500 Subject: [PATCH 23/31] Add in to and from I think due to the rapid changes/reporting of states, a clear delimiter is needed for examples. --- source/_cookbook/dim_lights_when_playing_media.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_cookbook/dim_lights_when_playing_media.markdown b/source/_cookbook/dim_lights_when_playing_media.markdown index 55fe9413b5..89a7700f51 100644 --- a/source/_cookbook/dim_lights_when_playing_media.markdown +++ b/source/_cookbook/dim_lights_when_playing_media.markdown @@ -56,6 +56,7 @@ automation: - platform: state entity_id: media_player.htpc from: 'playing' + to: 'idle' condition: - condition: state entity_id: sun.sun @@ -69,6 +70,7 @@ automation: - platform: state entity_id: media_player.htpc to: 'playing' + from: 'idle' condition: - condition: state entity_id: sun.sun From 883885bd00c7f5b5321fc07e26c3ddcd2cc9f274 Mon Sep 17 00:00:00 2001 From: neonbunny Date: Tue, 7 Feb 2017 21:08:23 +0000 Subject: [PATCH 24/31] Fix markdown in WOL Switch (#1994) Currently the final code example is garbled on the home assistant website (but not github). I suspect it needs a line of whitespace before the code block. --- source/_components/switch.wake_on_lan.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/switch.wake_on_lan.markdown b/source/_components/switch.wake_on_lan.markdown index 510299accb..78df4ddf47 100644 --- a/source/_components/switch.wake_on_lan.markdown +++ b/source/_components/switch.wake_on_lan.markdown @@ -51,6 +51,7 @@ from Home Assistant running on another Linux computer (the **server**). 6. On the **target**, we need to let the hass user execute the program needed to suspend/shut down the target computer. I'm using `pm-suspend`, use `poweroff` to turn off the computer. First, get the full path: `which pm-suspend`. On my system, this is `/usr/sbin/pm-suspend`. 7. On the **target**, using an account with sudo access (typically your main account), `sudo visudo`. Add this line last in the file: `hass ALL=NOPASSWD:/usr/sbin/pm-suspend`, where you replace `hass` with the name of your user on the target, if different, and `/usr/sbin/pm-suspend` with the command of your choice, if different. 8. On the **server**, add the following to your configuration, replacing TARGET with the target's name: + ```yaml switch: - platform: wake_on_lan From 38e6098ad8606d2da45e44dafd92a16998ed7aa1 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Wed, 8 Feb 2017 19:16:32 +0200 Subject: [PATCH 25/31] SMA New factor for units (#1999) --- source/_components/sensor.sma.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_components/sensor.sma.markdown b/source/_components/sensor.sma.markdown index 2744a5a57e..99ef3984a0 100644 --- a/source/_components/sensor.sma.markdown +++ b/source/_components/sensor.sma.markdown @@ -14,7 +14,7 @@ ha_release: 0.36 --- -The `sma` sensor will poll a [SMA][http://www.sma-america.com/] solar inverter and present the values as sensors (or attributes of sensors) in Home Assistant. +The `sma` sensor will poll a [SMA](http://www.sma-solar.com/) [(US)](http://www.sma-america.com/) solar inverter and present the values as sensors (or attributes of sensors) in Home Assistant. To enable this sensor, add the following lines to your `configuration.yaml` file: @@ -60,7 +60,8 @@ Example: custom: yesterday_consumption: key: 6400_00543A01 - unit: W + unit: kWh + factor: 1000 ``` Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L18). Feel free to submit additional sensors on that repository. From daa11ee5504e742800e5539d02785bd929ffac0e Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Wed, 8 Feb 2017 12:30:58 -0500 Subject: [PATCH 26/31] Update example platforms for async conventions (#1998) --- source/developers/platform_example_light.markdown | 11 ++++++++--- source/developers/platform_example_sensor.markdown | 13 ++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/source/developers/platform_example_light.markdown b/source/developers/platform_example_light.markdown index 9e530f6522..a5092db30c 100644 --- a/source/developers/platform_example_light.markdown +++ b/source/developers/platform_example_light.markdown @@ -76,11 +76,14 @@ class AwesomeLight(Light): def __init__(self, light): """Initialize an AwesomeLight.""" self._light = light + self._name = light.name + self._state = None + self._brightness = None @property def name(self): """Return the display name of this light.""" - return self._light.name + return self._name @property def brightness(self): @@ -89,12 +92,12 @@ class AwesomeLight(Light): This method is optional. Removing it indicates to Home Assistant that brightness is not supported for this light. """ - return self._light.brightness + return self._brightness @property def is_on(self): """Return true if light is on.""" - return self._light.is_on() + return self._state def turn_on(self, **kwargs): """Instruct the light to turn on. @@ -115,4 +118,6 @@ class AwesomeLight(Light): This is the only method that should fetch new data for Home Assistant. """ self._light.update() + self._state = self._light.is_on() + self._brightness = self._light.brightness ``` diff --git a/source/developers/platform_example_sensor.markdown b/source/developers/platform_example_sensor.markdown index 2fd29db8fa..94b84f0d37 100644 --- a/source/developers/platform_example_sensor.markdown +++ b/source/developers/platform_example_sensor.markdown @@ -38,6 +38,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None): class ExampleSensor(Entity): """Representation of a Sensor.""" + def __init__(self): + """Initialize the sensor.""" + self._state = None + @property def name(self): """Return the name of the sensor.""" @@ -46,10 +50,17 @@ class ExampleSensor(Entity): @property def state(self): """Return the state of the sensor.""" - return 23 + return self._state @property def unit_of_measurement(self): """Return the unit of measurement.""" return TEMP_CELSIUS + + def update(self): + """Fetch new state data for the sensor. + + This is the only method that should fetch new data for Home Assistant. + """ + self._state = 23 ``` From ba3bfb63f8c112c66fbcf98e1804f822dc41ef42 Mon Sep 17 00:00:00 2001 From: Johann Kellerman Date: Wed, 8 Feb 2017 19:31:41 +0200 Subject: [PATCH 27/31] Update component_generic_discovery.markdown (#2000) --- .../developers/component_generic_discovery.markdown | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/source/developers/component_generic_discovery.markdown b/source/developers/component_generic_discovery.markdown index 7fc39adf8e..cb9ab891b3 100644 --- a/source/developers/component_generic_discovery.markdown +++ b/source/developers/component_generic_discovery.markdown @@ -10,13 +10,13 @@ footer: true --- New controller or hub components often need to add platforms in sub-components (i.e. Lights & Switches) without additional configuration. -This can be achieved using the `homeassistant.components.discovery.load_platform` method: +This can be achieved using the `load_platform` or `async_load_platform` methods from `homeassistant.helpers.discovery`: ```python -def load_platform(hass, component, platform, info=None, hass_config=None) +def load_platform(hass, component, platform, discovered=None, hass_config=None) ``` -From more info on how this works, refer to the [load_platform](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/discovery.py#L78) method. +From more info on how this works, refer to the [load_platform](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/helpers/discovery.py#L136) method. ### {% linkable_title Example %} @@ -40,7 +40,7 @@ The source for your component can be located in your configuration directory for In the hub component `myflashyhub.py` you can call your light and switch components. To pass any non-serializable information to the platforms in the sub-component, you can use a global variable. ```python -from homeassistant.components.discovery import load_platform +from homeassistant.helpers.discovery import load_platform DOMAIN = 'myflashyhub' MFH_GLOBAL = None @@ -77,7 +77,3 @@ The `load_platform` method allows the platforms to be loaded with the need for a #switch: # platform: myflashyhub ``` - -

-In the past, this was achieved by adding your component to the `DISCOVERY_PLATFORMS` in the target sub-component. Generic discovery through `load_platform()` allows you to load any sub-component, including custom components, without changing the sub-component. -

From 355febf56820471098683dd5a9fd84cf0e3ab81b Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 8 Feb 2017 22:02:48 +0200 Subject: [PATCH 28/31] Fix sqlite file name --- source/_components/recorder.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index 1026ecba71..7a23bfee0b 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -16,7 +16,7 @@ The `recorder` component is storing details in a database which then are handled Home Assistant uses [SQLAlchemy](http://www.sqlalchemy.org/) as Object Relational Mapper (ORM). This means that you can now use **any** SQL backend for the recorder that is supported by SQLAlchemy, like [MySQL](https://www.mysql.com/), [MariaDB](https://mariadb.org/), or [PostgreSQL](https://www.postgresql.org/). -The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant`) and called `home-assistant.db`. +The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant`) and called `home-assistant_v2.db`. To setup the `recorder` component in your installation, add the following to your `configuration.yaml` file: From e049b830ef60b57de2c62c631121c717a7cefab2 Mon Sep 17 00:00:00 2001 From: Fredrik Lindqvist Date: Thu, 9 Feb 2017 22:22:54 +0100 Subject: [PATCH 29/31] Fix link to Mysensors API. Fix link to Mysensors API. Missing part of the url tag. --- source/_components/mysensors.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index 37a20d4807..ab5e13f3cc 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -176,6 +176,6 @@ void receive(const MyMessage &message) { Sending a heartbeat from the MySensors device to Home Assistant activates the SmartSleep functionality in Home Assistant. This means that messages are buffered and only sent to the device upon receiving a heartbeat from the device. State changes are stored so that only the last requested state change is sent to the device. Other types of messages are queued in a FIFO queue. SmartSleep is useful for battery powered actuators that are waiting for commands. See the MySensors library API for information on how to send heartbeats and sleep device. -Visit the [library api] of MySensors for more information. +Visit the [library api][MySensors library api] of MySensors for more information. [MySensors library api]: http://www.mysensors.org/download From d7204f461f979479b17129648c30ec98f25db864 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 10 Feb 2017 20:13:06 +0200 Subject: [PATCH 30/31] Add set_wakeup service documentation --- source/getting-started/z-wave.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index 3b657fd31f..be6c4c91c5 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -236,7 +236,8 @@ The `zwave` component exposes multiple services to help maintain the network. | print_config_parameter | Prints Z-wave node's config parameter value to the log. | remove_node | Put the Z-Wave controller in exclusion mode. Allows one to remove a device from the Z-Wave network.| | rename_node | Sets a node's name. Requires an `entity_id` and `name` field. | -| set_config_parameter | Let's the user set a config parameter to a node. +| set_config_parameter | Let's the user set a config parameter to a node.| +| set_wakeup | Sets wakeup interval for battery-operated nodes. Note that in order for the interval to be actually written to the node the node must wake up.| | soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| | start_network | Starts the Z-Wave network.| | stop_network | Stops the Z-Wave network.| From 9d70b2d35ba7d734b98bc82624a4fa285072175b Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 10 Feb 2017 20:18:32 +0200 Subject: [PATCH 31/31] Revert set_wakeup change --- source/getting-started/z-wave.markdown | 1 - 1 file changed, 1 deletion(-) diff --git a/source/getting-started/z-wave.markdown b/source/getting-started/z-wave.markdown index be6c4c91c5..1e02d9d8f3 100644 --- a/source/getting-started/z-wave.markdown +++ b/source/getting-started/z-wave.markdown @@ -237,7 +237,6 @@ The `zwave` component exposes multiple services to help maintain the network. | remove_node | Put the Z-Wave controller in exclusion mode. Allows one to remove a device from the Z-Wave network.| | rename_node | Sets a node's name. Requires an `entity_id` and `name` field. | | set_config_parameter | Let's the user set a config parameter to a node.| -| set_wakeup | Sets wakeup interval for battery-operated nodes. Note that in order for the interval to be actually written to the node the node must wake up.| | soft_reset | Tells the controller to do a "soft reset". This is not supposed to lose any data, but different controllers can behave differently to a "soft reset" command.| | start_network | Starts the Z-Wave network.| | stop_network | Stops the Z-Wave network.|