From 2edea09daa9a04df527ec9ae39b643f750ed7c0c Mon Sep 17 00:00:00 2001 From: Antoni K Date: Sat, 20 Oct 2018 22:55:34 +0800 Subject: [PATCH 1/6] Change MQTT topic names to something more generic (#6979) * Change MQTT topic names to something more generic * Minor changes --- source/_components/sensor.mqtt.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_components/sensor.mqtt.markdown b/source/_components/sensor.mqtt.markdown index 8b8a0fc07b6..d4440864d67 100644 --- a/source/_components/sensor.mqtt.markdown +++ b/source/_components/sensor.mqtt.markdown @@ -33,7 +33,7 @@ state_topic: required: true type: string name: - description: Name of the MQTT sensor. + description: The name of the MQTT sensor. required: false type: string default: MQTT Sensor @@ -47,7 +47,7 @@ unit_of_measurement: required: false type: string icon: - description: Icon for the sensor. + description: The icon for the sensor. required: false type: icon expire_after: @@ -99,18 +99,18 @@ In this section you find some real-life examples of how to use this sensor. ### {% linkable_title JSON attributes configuration %} -The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the availability topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}. +The example sensor below shows a configuration example which uses JSON in the state topic to add extra attributes. It also makes use of the `availability` topic. Attributes can then be extracted in [Templates](/docs/configuration/templating/#attributes). For example, to extract the `ClientName` attribute from the sensor below, use a template similar to: {% raw %}`{{ state_attr('sensor.bs_rssi', 'ClientName') }}`{% endraw %}. {% raw %} ```yaml # Example configuration.yaml entry sensor: - platform: mqtt - name: "BS RSSI" - state_topic: "HUISHS/BunnyShed/NodeHealthJSON" + name: "RSSI" + state_topic: "home/sensor1/infojson" unit_of_measurement: 'dBm' value_template: "{{ value_json.RSSI }}" - availability_topic: "HUISHS/BunnyShed/status" + availability_topic: "home/sensor1/status" payload_available: "online" payload_not_available: "offline" json_attributes: From 5f13e0d4adfc0397c31b6c048844b49b3b7869ae Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 20 Oct 2018 20:44:59 +0200 Subject: [PATCH 2/6] Add 0.80.3 --- _config.yml | 6 +++--- source/_posts/2018-10-12-release-80.markdown | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 94e71e2abac..7ff89f2d248 100644 --- a/_config.yml +++ b/_config.yml @@ -142,13 +142,13 @@ social: # Home Assistant release details current_major_version: 0 current_minor_version: 80 -current_patch_version: 2 -date_released: 2018-10-17 +current_patch_version: 3 +date_released: 2018-10-18 # 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-0802---october-17" +patch_version_notes: "#release-0803---october-18" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_posts/2018-10-12-release-80.markdown b/source/_posts/2018-10-12-release-80.markdown index 6a7a8ec30d8..1f413af08ed 100644 --- a/source/_posts/2018-10-12-release-80.markdown +++ b/source/_posts/2018-10-12-release-80.markdown @@ -84,6 +84,25 @@ On the devices side, we got basic support for the new IKEA TRÅDFRI switches, Ho [sensor.blink docs]: /components/sensor.blink/ [telegram_bot docs]: /components/telegram_bot/ +## {% linkable_title Release 0.80.3 - October 18 %} + +- Update hangups to 0.4.6 and fix Issue #16593 hangouts reconnects. ([@hobbypunk90] - [#17518]) ([hangouts docs]) +- Update to async-upnp-client==0.12.5 ([@StevenLooman] - [#17401]) ([upnp docs]) ([media_player.dlna_dmr docs]) +- Upgrade async_upnp_client to 0.12.6 ([@StevenLooman] - [#17560]) ([upnp docs]) ([media_player.dlna_dmr docs]) +- Update snapcast to 2.0.9 ([@balloob] - [#17573]) ([media_player.snapcast docs]) + +[#17401]: https://github.com/home-assistant/home-assistant/pull/17401 +[#17518]: https://github.com/home-assistant/home-assistant/pull/17518 +[#17560]: https://github.com/home-assistant/home-assistant/pull/17560 +[#17573]: https://github.com/home-assistant/home-assistant/pull/17573 +[@StevenLooman]: https://github.com/StevenLooman +[@balloob]: https://github.com/balloob +[@hobbypunk90]: https://github.com/hobbypunk90 +[hangouts docs]: https://www.home-assistant.io/components/hangouts/ +[media_player.dlna_dmr docs]: https://www.home-assistant.io/components/media_player.dlna_dmr/ +[media_player.snapcast docs]: https://www.home-assistant.io/components/media_player.snapcast/ +[upnp docs]: https://www.home-assistant.io/components/upnp/ + ## {% linkable_title New Features %} - Add faucet, shower, sprinkler, valve to HomeKit ([@cdce8p] - [#17145]) ([homekit docs]) (new-feature) From 0b28e90730d2f3ab0725c633bd5c15000bceeca8 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 20 Oct 2018 22:46:36 +0200 Subject: [PATCH 3/6] Update config variable description (#6981) --- source/_components/openuv.markdown | 153 ++++++++++++++--------------- 1 file changed, 76 insertions(+), 77 deletions(-) diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown index cc66c3df92a..9da2251ce68 100644 --- a/source/_components/openuv.markdown +++ b/source/_components/openuv.markdown @@ -20,99 +20,98 @@ The `openuv` component displays UV and Ozone data from [openuv.io](http://openuv To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google).

-The "Limited" plan (which is what new users are given by default) is limited to 500 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require -you to upgrade to a paid plan (and may disable your access in the meantime). +The "Limited" plan (which is what new users are given by default) is limited to 500 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require you to upgrade to a paid plan (and may disable your access in the meantime).

-## {% linkable_title Base Configuration %} +## {% linkable_title Configuration %} -To retrieve data from OpenUV, add the following to your `configuration.yaml` -file: +To retrieve data from OpenUV, add the following to your `configuration.yaml` file: ```yaml openuv: api_key: YOUR_OPENUV_API_KEY ``` -To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of `configuration.yaml` as below: +{% configuration %} +api_key: + description: The OpenUV API key. + required: true + type: string +scan_interval: + description: the frequency (in seconds) between data updates. + required: false + type: integer + default: 1800 +binary_sensors: + description: The binary sensor-related configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all + keys: + uv_protection_window: + description: Displays if UV protection (sunscreen, etc.) is recommended at the current date and time. +sensors: + description: The sensor-related configuration options. + required: false + type: map + keys: + monitored_conditions: + description: The conditions to create sensors from. + required: false + type: list + default: all + keys: + current_ozone_level: + description: The current ozone level in du (Dobson Units). + current_uv_index: + description: The current UV index. + current_uv_level: + description: "The level of current UV index, which is calculated based on [UV Index Levels & Colors](https://www.openuv.io/kb/uv-index-levels-colors)." + max_uv_index: + description: The maximum UV index that will be encountered that day (at solar noon). + safe_exposure_time_type_1: + description: The approximate exposure time for skin type I. + safe_exposure_time_type_2: + description: The approximate exposure time for skin type II. + safe_exposure_time_type_3: + description: The approximate exposure time for skin type III. + safe_exposure_time_type_4: + description: The approximate exposure time for skin type IV. + safe_exposure_time_type_5: + description: The approximate exposure time for skin type V. + safe_exposure_time_type_6: + description: The approximate exposure time for skin type VI. +{% endconfiguration %} + +The approximate number of minutes of a particular skin type can be exposed to the sun before burning/tanning starts is based on the [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale). + +## {% linkable_title Full example %} + +To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of the `configuration.yaml` file as below: ```yaml openuv: api_key: YOUR_OPENUV_API_KEY binary_sensors: - # binary sensor configuration options... + - uv_protection_window sensors: - # sensor configuration options... + - current_ozone_level + - current_uv_index + - current_uv_level + - max_uv_index + - safe_exposure_time_type_1 + - safe_exposure_time_type_2 + - safe_exposure_time_type_3 + - safe_exposure_time_type_4 + - safe_exposure_time_type_5 + - safe_exposure_time_type_6 ``` -{% configuration %} -api_key: - description: your OpenUV API key - required: true - type: string -scan_interval: - description: the frequency (in seconds) between data updates - required: false - type: integer - default: 1800 -binary_sensors: - description: binary sensor-related configuration options - required: false - type: map - keys: - monitored_conditions: - description: the conditions to create sensors from - required: false - type: list - default: all (`uv_protection_window`) -sensors: - description: sensor-related configuration options - required: false - type: map - keys: - monitored_conditions: - description: the conditions to create sensors from - required: false - type: list - default: all ( `current_ozone_level`, `current_uv_index`, `current_uv_level`, `max_uv_index`, `safe_exposure_time_type_1`, `safe_exposure_time_type_2`, `safe_exposure_time_type_3`, `safe_exposure_time_type_4`, `safe_exposure_time_type_5`, `safe_exposure_time_type_6` ) -{% endconfiguration %} - -## {% linkable_title Binary Sensor Types %} - -### {% linkable_title `uv_protection_window` %} - -This sensor displays `true` if UV protection (sunscreen, etc.) is recommended at the current date and time; displays `false` otherwise. - -## {% linkable_title Sensor Types %} - -### {% linkable_title `current_ozone_level` %} - -This sensor displays the current ozone level in du (Dobson Units). - -### {% linkable_title `current_uv_index` %} - -This sensor displays the current UV index. - -### {% linkable_title `current_uv_level` %} - -This sensor displays the level of current UV index, which is calculated based on [UV Index Levels & Colors](https://www.openuv.io/kb/uv-index-levels-colors). - -### {% linkable_title `max_uv_index` %} - -This sensor displays the maximum UV index that will be encountered that day (at solar noon). - -### {% linkable_title `safe_exposure_time_type_X` %} - -These sensors display the approximate number of minutes a particular skin type can be exposed to the sun before burning/tanning starts. Each sensor depicts a skin type based on the -[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale): - -* Skin Type I -* Skin Type II -* Skin Type III -* Skin Type IV -* Skin Type V -* Skin Type VI -

-The above guidelines constitute estimates and are intended to help informed decision making. They should not replace analysis, advice, or diagnosis from a trained medical professional. +The above guidelines constitute estimates and are intended to help informed decision making. They should not replace analysis, advice or diagnosis from a trained medical professional.

From ff8a183278f9cd6349cf3d05a1cef260290ba7ee Mon Sep 17 00:00:00 2001 From: Diogo Gomes Date: Sun, 21 Oct 2018 10:07:47 +0100 Subject: [PATCH 4/6] Beta version information (#6984) --- source/_docs/installation/updating.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown index a9884322b60..4bc5d375eb1 100644 --- a/source/_docs/installation/updating.markdown +++ b/source/_docs/installation/updating.markdown @@ -44,6 +44,14 @@ In the event that a Home Assistant version doesn't play well with your hardware $ pip3 install homeassistant==0.XX.X ``` +#### {% linkable_title Run the beta version %} + +If you would like to test next release before anyone else, you can install the beta version released every two weeks: + +```bash +$ pip3 install --pre --upgrade homeassistant +``` + #### {% linkable_title Run the development version %} If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`. From 22c9fe99771e2d72ed6ab73d5fd491b0204be9ef Mon Sep 17 00:00:00 2001 From: fortepc Date: Sun, 21 Oct 2018 05:59:46 -0400 Subject: [PATCH 5/6] Added more details to introduction of component (#6678) * Added more details to introduction of component Added more details specifically for the context of a user who may have never heard of Zillow or Zestimates to better understand what this sensor does. * Added more clarity to the config description * Add files via upload * Create temp * Delete temp * Create temp * Add files via upload * Delete temp * Update sensor.zestimate.markdown * Delete zestimate example.png * Fixed image embed * :pencil2: Tweaks --- source/_components/sensor.zestimate.markdown | 14 ++++++++++---- .../components/zestimate/zestimateexample.png | Bin 0 -> 24907 bytes 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 source/images/components/zestimate/zestimateexample.png diff --git a/source/_components/sensor.zestimate.markdown b/source/_components/sensor.zestimate.markdown index 1d24b3f0dfd..aa74b086daf 100644 --- a/source/_components/sensor.zestimate.markdown +++ b/source/_components/sensor.zestimate.markdown @@ -13,11 +13,13 @@ ha_release: 0.65 ha_iot_class: "Cloud Polling" --- -The `zestimate` sensor allows one to track the Zestimate value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). +The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States. + +This component adds one entity per zpid specified, named `sensor.zestimate` with numbers appended if you choose to track more than one Zestimate. ## {% linkable_title Configuration %} -You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. +You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible. For example, the White House zpid is 84074482 and can be found in its Zillow URL: [https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/](https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/) @@ -34,11 +36,11 @@ sensor: {% configuration %} api_key: - description: The API key to access the service. + description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm) required: true type: string zpid: - description: Property IDs to track in the front end. + description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid" required: true type: list {% endconfiguration %} @@ -56,3 +58,7 @@ These attributes are available: - Address - Currency - Amount + +Example screenshot + + diff --git a/source/images/components/zestimate/zestimateexample.png b/source/images/components/zestimate/zestimateexample.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab53b1bb8862572afa4bfec46e2621ef498deb3 GIT binary patch literal 24907 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 ur5Vr$+zmQ$SGZ0mHM5hhC#^~Db3ck>tL Date: Sun, 21 Oct 2018 13:39:53 +0300 Subject: [PATCH 6/6] Refined documentation on how the delay time works (#6987) * Refined documentation on how the delay time works Refined documentation based on issue #14268 (https://github.com/home-assistant/home-assistant/issues/14268) on how the delay time works. Also updated the example config. * :pencil2: Tweaks * :pencil2: Tweak --- .../alarm_control_panel.manual_mqtt.markdown | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/_components/alarm_control_panel.manual_mqtt.markdown b/source/_components/alarm_control_panel.manual_mqtt.markdown index 9fa4f4f2312..751a5e77c59 100644 --- a/source/_components/alarm_control_panel.manual_mqtt.markdown +++ b/source/_components/alarm_control_panel.manual_mqtt.markdown @@ -67,7 +67,7 @@ code_template: required: exclusive type: string delay_time: - description: The time in seconds of the pending time before triggering the alarm. + description: The time in seconds of delay added to the triggered state's **pending_time** before triggering the alarm. required: false type: integer default: 0 @@ -148,9 +148,10 @@ payload_arm_night: In the configuration example below: -- the disarmed state never triggers the alarm; -- the armed_home state will leave no time to leave the building or disarm the alarm; -- while other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back. +- The disarmed state never triggers the alarm; +- The armed_home state will leave no time to leave the building or disarm the alarm; +- While other states state will give 30 seconds to leave the building before triggering the alarm, and 20 seconds to disarm the alarm when coming back; +- Setting pending_time to 0 for triggered state allows the alarm to trigger after previous state's delay time only. If not set, the alarm will be pending for previous state's delay_time plus the default pending_time before triggering. ```yaml # Example configuration.yaml entry @@ -166,6 +167,8 @@ alarm_control_panel: armed_home: pending_time: 0 delay_time: 0 + triggered: + pending_time: 0 ``` Refer to the [Manual Alarm Control page](/components/alarm_control_panel.manual/#examples) for more real-life examples on how to use this panel.