From 5a9d5c54275cdd5bf8d39ab0b948e03eeead3d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20=C3=98stergaard=20Nielsen?= Date: Sat, 5 May 2018 19:11:47 +0200 Subject: [PATCH 01/39] Added update_interval to maxcube (#5265) * Added update_interval to maxcube * Renamed update_interval to scan_interval * Update maxcube.markdown --- source/_components/maxcube.markdown | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/_components/maxcube.markdown b/source/_components/maxcube.markdown index 69713a6469f..7439d2d19fe 100644 --- a/source/_components/maxcube.markdown +++ b/source/_components/maxcube.markdown @@ -58,4 +58,9 @@ maxcube: required: false type: int default: 62910 + scan_interval: + description: The update interval in seconds + required: false + type: int + default: 300 {% endconfiguration %} From 78f19d989a247e2bcb3b368a85ac94ff067ef25b Mon Sep 17 00:00:00 2001 From: Jason Kingsbury Date: Sat, 5 May 2018 18:12:10 +0100 Subject: [PATCH 02/39] Add max_volume option to Onkyo media player (#5153) * Update media_player.onkyo.markdown * onkyo: removed optional value from sample config, update max_volume documentation to include required volume range --- source/_components/media_player.onkyo.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index 13a50152dc1..19854cfe609 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -39,6 +39,10 @@ name: description: Name of the device. (*Required if host is specified*) required: false type: string +max_volume: + description: Maximum volume. Defaults to 80. + required: false + type: number sources: description: A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified. required: false From e46a4d4f3f1fa5b67021e89bd11dbc25f3bcad8f Mon Sep 17 00:00:00 2001 From: Tom Harris Date: Sat, 5 May 2018 15:08:41 -0400 Subject: [PATCH 03/39] Describe the new services added (#5239) * Describe the new services added * Edits per review * UTF-8 error * UTF-8 Error * Convert to utf-8 --- source/_components/insteon_plm.markdown | 55 ++++++++++++++++++------- 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/source/_components/insteon_plm.markdown b/source/_components/insteon_plm.markdown index 58a1bad12cc..9e15bb0f7d0 100644 --- a/source/_components/insteon_plm.markdown +++ b/source/_components/insteon_plm.markdown @@ -63,26 +63,52 @@ a responder or a controller. In order for any two Insteon devices to talk with one another, they must be linked. For an overview of device linking please read the Insteon page on -[understanding linking]. Currently Insteon PLM does not support software -linking of devices. If you need software that can link your devices (if you -are using a USB Stick PLM for example), you can download [HouseLinc] which runs -on any Windows PC, or you can use [Insteon Terminal] which is open source and -runs on most platforms. HouseLinc is no longer supported by SmartHome but it -still works. Insteon Terminal is a very useful tool but please read the -disclaimers carefully, they are important. +[understanding linking]. The Insteon PLM module supports All-Linking through +[Development Tools] service calls. The following services are available: + +In order for any two Insteon devices to talk with one another, they must be +linked. For an overview of device linking, please read the Insteon page on +[understanding linking]. The Insteon PLM module supports All-Linking through +[Development Tools] service calls. The following services are available: +- **insteon_plm.add_all_link**: Tells the Insteon Modem (IM) start All-Linking +mode. Once the IM is in All-Linking mode, press the link button on the device +to complete All-Linking. +- **insteon_plm.delete_all_link**: Tells the Insteon Modem (IM) to remove an +All-Link record from the All-Link Database of the IM and a device. Once the IM +is set to delete the link, press the link button on the corresponding device +to complete the process. +- **insteon_plm.load_all_link_database**: Load the All-Link Database for a +device. WARNING - Loading a device All-Link database is very time consuming +and inconsistent. This may take a LONG time and may need to be repeated to +obtain all records. +- **insteon_plm.print_all_link_database**: Print the All-Link Database for a +device. Requires that the All-Link Database is loaded into memory. +- **insteon_plm.print_im_all_link_database**: Print the All-Link Database for +the INSTEON Modem (IM). + +If you are looking for more advanced options, you can use the +[insteonplm_interactive] command line tool that is distributed with the +[insteonplm] Python module. Please see the documentation on the [insteonplm] +GitHub site. Alternatively, you can download [HouseLinc] which runs on any +Windows PC, or you can use [Insteon Terminal] which is open source and runs +on most platforms. SmartHome no longer supports HouseLinc, but it still +works. Insteon Terminal is a very useful tool but please read the disclaimers +carefully, they are important. [understanding linking]: http://www.insteon.com/support-knowledgebase/2015/1/28/understanding-linking +[Development Tools]: https://www.home-assistant.io/docs/tools/dev-tools/ [HouseLinc]: https://www.smarthome.com/houselinc.html [Insteon Terminal]: https://github.com/pfrommerd/insteon-terminal +[insteonplm_interactive]: https://github.com/nugget/python-insteonplm#command-line-interface ### {% linkable_title Customization %} -The only configuration item that is absolutely necessary is the port so that -Home Assistant can connect to the PLM. This will expose all the supported INSTEON -devices which exist in the modem's ALL-Link database. However, devices will -only be shown by their INSTEON hex address (e.g., "1A.2B.3C") which can be a bit -unwieldy. As you link and unlink devices using the 'Set' buttons, they'll be -added and removed from Home Assistant automatically. +The only configuration item that is absolutely necessary is the port so that +Home Assistant can connect to the PLM. This will expose all the supported +INSTEON devices which exist in the modem’s ALL-Link database. However, devices +will only be shown by their INSTEON hex address (e.g., “1A.2B.3C”) which can +be a bit unwieldy. As you link and unlink devices using the ‘Set’ buttons, +they’ll be added and removed from Home Assistant automatically. You can use the normal Home Assistant [device customization] section of your configuration to assign friendly names and special icons to your devices. This @@ -123,7 +149,9 @@ insteon_plm: cat: 0x10 subcat: 0x11 ``` + ### {% linkable_title What NOT to do %} + Insteon PLM is a top level component and device discovery will identify the Home Assistant platform the device belongs in. As such, do not declare Insteon devices in other platforms. For example, this configuration @@ -134,4 +162,3 @@ light: - platform: insteon_plm address: 1a2b3c ``` - From 9dce793b65e4c3d82850714193945520f7445daf Mon Sep 17 00:00:00 2001 From: Evgeniy <592652+evgeniy-khatko@users.noreply.github.com> Date: Tue, 8 May 2018 14:45:03 -0700 Subject: [PATCH 04/39] Improving icloud device tracker (#5240) * Improving icloud device tracker Updating documentation for new pull request to main HA codebase: "Improving icloud device tracker" * Update device_tracker.icloud.markdown --- source/_components/device_tracker.icloud.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_components/device_tracker.icloud.markdown b/source/_components/device_tracker.icloud.markdown index f2f902bd30b..a57ba44d4b4 100644 --- a/source/_components/device_tracker.icloud.markdown +++ b/source/_components/device_tracker.icloud.markdown @@ -33,9 +33,11 @@ Configuration variables: - **username** (*Required*): The username for the iCloud account. - **password** (*Required*): The password for your given username. - **account_name** (*Optional*): The friendly name for the account_name. If this isn't given, it will use the account_name of the username (so the part before the `@` in the email address). +- **max_interval** (*Optional*): Maximum interval in minutes between subsequent location upates. This tracker uses dynamic intervals for requesting location updates. When iphone is stationary, interval will eventually be set to `max_interval` to save battery. When iphone starts moving again interval will be dynamically updated to 1 min. Note that updating interval to 1 min might be delayed by maximum `max_interval` minutes. Default is 30 min. Minimum value is 1 min. +- **gps_accuracy_threshold** (*Optional*): iCloud location updates come with some gps_accuracy varying from 10 to 5000 meters. This setting defines the accuracy threshold in meters for a location update. Less accurate updates will be discarded by this tracker. This allows more precise location monitoring and fewer false positive zone changes. Default is 1000 meters.

-This may cause battery drainage as it wakes up your device to get the current location. +Low `max_interval` may cause battery drainage as it wakes up your device to get the current location.

@@ -48,7 +50,7 @@ To disable the drainage of the battery, a dynamic interval is being used for eac 2 Factor Authentication is the improved version of 2 Steps Authentication, this is still not supported by the pyicloud library. Therefore it's not possible to use it with the device_tracker yet. 4 services are available for this component: -- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. +- **icloud_update**: This service can be used to ask for an update of a certain iDevice. The `account_name` and `device_name` are optional. Request will result in new Home Assistant [state_changed](/docs/configuration/events/#event-state_changed) event describing current iphone location. Can be used in automations when manual location update is needed, e.g. to check if anyone is home when door's been opened. - **icloud_lost_iphone**: This service will play the Lost iPhone sound on a certain iDevice. The `account_name` and `device_name` are optional. - **icloud_set_interval**: This service will change the dynamic interval of an iDevice. The `account_name` and `device_name` are optional. If `interval` is used in the service_data, the iDevice will be updated with that new interval. That interval will be fixed until the iDevice changes zone or if this service is called again. If `interval` isn't used in the service_data, the interval for that iDevice will revert back to its default dynamic interval based on its current zone, its distance towards home and its battery level. - **icloud_reset_account**: This service can be used to reset an iCloud account. This is helpful when not all devices are being found by the component or if you have added a new iDevice to your account. The `account_name` is optional. From e06c9adce7ff4166cd22b20616e910d4d761f780 Mon Sep 17 00:00:00 2001 From: Mario Di Raimondo Date: Wed, 9 May 2018 00:35:12 +0200 Subject: [PATCH 05/39] Waze Travel Time: optional inclusive/exclusive filters (#5208) * Waze Travel Time: optional inclusive/exclusive filters documentation update about the new optional filtering params * Update --- source/_components/sensor.waze_travel_time.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/_components/sensor.waze_travel_time.markdown b/source/_components/sensor.waze_travel_time.markdown index 2440930b9f1..db3e3f0418f 100644 --- a/source/_components/sensor.waze_travel_time.markdown +++ b/source/_components/sensor.waze_travel_time.markdown @@ -48,4 +48,12 @@ name: required: false default: "Waze Travel Time" type: string +incl_filter: + description: A substring that has to be present in the description of the selected route (a simple case-insensitive matching). + required: false + type: string +excl_filter: + description: A substring that has to be NOT present in the description of the selected route (a simple case-insensitive matching). + required: false + type: string {% endconfiguration %} From b2c52c50d84b0d45d8a98f150cecbf84085f065c Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Wed, 9 May 2018 09:08:46 +0200 Subject: [PATCH 06/39] Add link to a video of a talk at foss-north 2018 (#5332) I gave a talk at foss-north, which is a free / open source conference covering both software and hardware from the technical perspective. They recorded it and put it on YouTube. This patch adds a link to that talk on the help page under "Videos, talks, workshops and alike". --- source/help/index.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/help/index.markdown b/source/help/index.markdown index 105bf916132..881204f0475 100644 --- a/source/help/index.markdown +++ b/source/help/index.markdown @@ -31,6 +31,7 @@ Have you found an issue in your Home Assistant installation? Please report it. R ### {% linkable_title Videos, talks, workshops and alike %} +- [Automate your home with Home Assistant](https://www.youtube.com/watch?v=SSrgi4iHGbs) at [foss-north 2018](http://foss-north.se/2018/speakers-and-talks.html#jparadies) - March 2018 - [Home Assistant](https://github.com/home-assistant/home-assistant-assets/tree/master/english/2017-qecampX) at QECampX 2017 - October 2017 - [Open Source Heimautomation mit Home Assistant](https://github.com/home-assistant/home-assistant-assets/tree/master/german/2017-maker-faire-zurich) at [Mini Maker Faire Zurich 2017](https://www.makerfairezurich.ch/en/) - September 2017 - [Why we can't have the Internet of Nice Things: A home automation primer](https://www.openwest.org/custom/description.php?id=92) at [OpenWest 2017](https://www.openwest.org) - July 2017 From 3827962be49440018458d0a25fc91bc6fa9f2e80 Mon Sep 17 00:00:00 2001 From: Gaetan Semet Date: Wed, 9 May 2018 09:54:42 +0200 Subject: [PATCH 07/39] synology reverse proxy: add template patch (#5316) * synology reverse proxy: add template patch instruction from orobardet/dsm-reverse-proxy-websocket works * Minor changes --- source/_docs/ecosystem/synology.markdown | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/source/_docs/ecosystem/synology.markdown b/source/_docs/ecosystem/synology.markdown index c5c436da588..20cf14f98fb 100644 --- a/source/_docs/ecosystem/synology.markdown +++ b/source/_docs/ecosystem/synology.markdown @@ -10,13 +10,33 @@ footer: true redirect_from: /ecosystem/synology/ --- -Synology NAS are the perfect companion to running Home Assistant. +Synology NAS are the perfect companion to running Home Assistant. But by default, the DSM Reverse Proxy does not configure its NGINX settings to allow WebSocket, and some extra configuration will be required to get the Home Assistant frontend working with the DSM. -### {% linkable_title HTTP Configuration %} +### {% linkable_title Template change %} -Synology will require some extra configuration to get the Home Assistant frontend working. +To allow WebSocket by default for all service exposed by NGINX, you can enable it in the template file located in `/usr/syno/share/nginx/Portal.mustache`. Please be really careful in editing this file since you may break access to the DSM UI. Please backup this file before any edition. -- Copy the Home Assistant specific Reverse Proxy settings from the existing `/etc/nginx/app.d/server.ReverseProxy.conf` to `/usr/local/etc/nginx/conf.d/http.HomeAssistant.conf` +Open `/usr/syno/share/nginx/Portal.mustache` and add the followings in the `Location` section: + +``` + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_read_timeout 86400; +``` + +Then restart the NGINX daemon: + +```bash +sudo synoservicecfg --restart nginx +``` + +This will restart the running HTTP service, not only reverse proxy, as a single instance of NGINX runs everything. + +You can find more information [here](https://github.com/orobardet/dsm-reverse-proxy-websocket). + +#### {% linkable_title HTTP Configuration %} + +- Copy the Home Assistant specific Reverse Proxy settings from the existing `/etc/nginx/app.d/server.ReverseProxy.conf` file to `/usr/local/etc/nginx/conf.d/http.HomeAssistant.conf`. - Include these lines in the location declaration: ``` From 7f39a8f6f952c046f1b49c22424a07c4933f1936 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Wed, 9 May 2018 11:18:18 +0200 Subject: [PATCH 08/39] Add SpaceAPI documentation --- source/_components/spaceapi.markdown | 149 ++++++++++++++++++++ source/images/supported_brands/spaceapi.png | Bin 0 -> 9022 bytes 2 files changed, 149 insertions(+) create mode 100644 source/_components/spaceapi.markdown create mode 100644 source/images/supported_brands/spaceapi.png diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown new file mode 100644 index 00000000000..2253c2e3bfc --- /dev/null +++ b/source/_components/spaceapi.markdown @@ -0,0 +1,149 @@ +--- +layout: page +title: "SpaceAPI" +description: "Instructions on how to configure the SpaceAPI for Home Assistant." +date: 2018-05-08 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: spaceapi.png +ha_category: Other +ha_release: "0.70" +--- + +The `spaceapi` component allow Hackerspaces to expose information to web apps or any other application with the [SpaceAPI](http://spaceapi.net/). + +## {% linkable_title Configuration %} + +To setup the `spaceapi` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +spaceapi: + space: HACKERSPACE_NAME + logo: URL_FOR_LOGO + url: URL + location: + address: ADDRESS + contact: + email: EMAIL_ADDRESS + issue_report_channels: + - email + state: + entity_id: binary_sensor.front_door +``` + +{% configuration %} +space: + description: Name of the Hackerspace. + required: true + type: string +logo: + description: URL which is publicly accessible of the logo. + required: true + type: URL +logo: + description: URL of the hackerspace's web site. + required: true + type: URL +location: + description: Location of the Hackerspace. + required: true + type: map + keys: + address: + description: The physical address of the Hackerspace. + required: true + type: String +contact: + description: Contact information of the Hackerspace. + required: true + type: map + keys: + email: + description: The email address of the Hackerspace. + required: true + type: String + irc: + description: The IRC channel of the Hackerspace + required: false + type: String + mailing_list: + description: The mailing list of the Hackerspace. + required: false + type: String + twitter: + description: The Twitter account of the Hackerspace. + required: false + type: String +issue_report_channels: + description: "The reporting channel for issues. Pick an entity from `contact:`." + required: true + type: List +state: + description: Contact information of the Hackerspace. + required: true + type: list + keys: + entity_id: + description: The Twitter account of the Hackerspace. + required: true + type: entity_id + icon_open: + description: The URL which is publicly accessible of the icon for the open Hackerspace. + required: false + type: URL + icon_closed: + description: The URL which is publicly accessible of the icon for the closed Hackerspace. + required: false + type: URL +sensors: + description: List of sensors to expose. + required: false + type: list + keys: + temperature: + description: List of temperature sensors. + required: true + type: entity_id + humidity: + description: The Twitter account of the Hackerspace. + required: true + type: entity_id +{% endconfiguration %} + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this component. + +### {% linkable_title Eastermundigen %} + +A possible configuration entry for [Eastermundigen](http://www.eastermundigen.ch/), a Hackerspace in Switzerland, could look like this. + +```yaml +# Example configuration.yaml entry +spaceapi: + space: Eastermundigen + logo: https://eastermundigen.ch/logo.png + url: https://eastermundigen.ch + location: + address: "Steinbruchweg 16, 3072 Ostermundigen, Schweiz" + contact: + phone: "+41311111111" + twitter: "@eastermundigen" + email: "info@eastermundigen.ch" + issue_report_channels: + - email + state: + entity_id: binary_sensor.front_door" + icon_open: https://eastermundigen.ch/open.png + icon_closed: https://eastermundigen.ch/close.png + sensors: + temperature: + - "sensor.temperature_in" + - "sensor.temperature_out" + humidity: + - "sensor.humidity_in" + - "sensor.humidity_out" +``` diff --git a/source/images/supported_brands/spaceapi.png b/source/images/supported_brands/spaceapi.png new file mode 100644 index 0000000000000000000000000000000000000000..e84a7f892d6c21add8a600bcbbee28dfdc268128 GIT binary patch literal 9022 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 Date: Wed, 9 May 2018 11:22:00 +0200 Subject: [PATCH 09/39] Revert "Add SpaceAPI documentation" This reverts commit 7f39a8f6f952c046f1b49c22424a07c4933f1936. --- source/_components/spaceapi.markdown | 149 -------------------- source/images/supported_brands/spaceapi.png | Bin 9022 -> 0 bytes 2 files changed, 149 deletions(-) delete mode 100644 source/_components/spaceapi.markdown delete mode 100644 source/images/supported_brands/spaceapi.png diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown deleted file mode 100644 index 2253c2e3bfc..00000000000 --- a/source/_components/spaceapi.markdown +++ /dev/null @@ -1,149 +0,0 @@ ---- -layout: page -title: "SpaceAPI" -description: "Instructions on how to configure the SpaceAPI for Home Assistant." -date: 2018-05-08 09:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: spaceapi.png -ha_category: Other -ha_release: "0.70" ---- - -The `spaceapi` component allow Hackerspaces to expose information to web apps or any other application with the [SpaceAPI](http://spaceapi.net/). - -## {% linkable_title Configuration %} - -To setup the `spaceapi` component in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -spaceapi: - space: HACKERSPACE_NAME - logo: URL_FOR_LOGO - url: URL - location: - address: ADDRESS - contact: - email: EMAIL_ADDRESS - issue_report_channels: - - email - state: - entity_id: binary_sensor.front_door -``` - -{% configuration %} -space: - description: Name of the Hackerspace. - required: true - type: string -logo: - description: URL which is publicly accessible of the logo. - required: true - type: URL -logo: - description: URL of the hackerspace's web site. - required: true - type: URL -location: - description: Location of the Hackerspace. - required: true - type: map - keys: - address: - description: The physical address of the Hackerspace. - required: true - type: String -contact: - description: Contact information of the Hackerspace. - required: true - type: map - keys: - email: - description: The email address of the Hackerspace. - required: true - type: String - irc: - description: The IRC channel of the Hackerspace - required: false - type: String - mailing_list: - description: The mailing list of the Hackerspace. - required: false - type: String - twitter: - description: The Twitter account of the Hackerspace. - required: false - type: String -issue_report_channels: - description: "The reporting channel for issues. Pick an entity from `contact:`." - required: true - type: List -state: - description: Contact information of the Hackerspace. - required: true - type: list - keys: - entity_id: - description: The Twitter account of the Hackerspace. - required: true - type: entity_id - icon_open: - description: The URL which is publicly accessible of the icon for the open Hackerspace. - required: false - type: URL - icon_closed: - description: The URL which is publicly accessible of the icon for the closed Hackerspace. - required: false - type: URL -sensors: - description: List of sensors to expose. - required: false - type: list - keys: - temperature: - description: List of temperature sensors. - required: true - type: entity_id - humidity: - description: The Twitter account of the Hackerspace. - required: true - type: entity_id -{% endconfiguration %} - -## {% linkable_title Examples %} - -In this section you find some real life examples of how to use this component. - -### {% linkable_title Eastermundigen %} - -A possible configuration entry for [Eastermundigen](http://www.eastermundigen.ch/), a Hackerspace in Switzerland, could look like this. - -```yaml -# Example configuration.yaml entry -spaceapi: - space: Eastermundigen - logo: https://eastermundigen.ch/logo.png - url: https://eastermundigen.ch - location: - address: "Steinbruchweg 16, 3072 Ostermundigen, Schweiz" - contact: - phone: "+41311111111" - twitter: "@eastermundigen" - email: "info@eastermundigen.ch" - issue_report_channels: - - email - state: - entity_id: binary_sensor.front_door" - icon_open: https://eastermundigen.ch/open.png - icon_closed: https://eastermundigen.ch/close.png - sensors: - temperature: - - "sensor.temperature_in" - - "sensor.temperature_out" - humidity: - - "sensor.humidity_in" - - "sensor.humidity_out" -``` diff --git a/source/images/supported_brands/spaceapi.png b/source/images/supported_brands/spaceapi.png deleted file mode 100644 index e84a7f892d6c21add8a600bcbbee28dfdc268128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9022 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 Date: Wed, 9 May 2018 04:26:51 -0500 Subject: [PATCH 10/39] Documentation for #14296: Support control of away mode and hold mode in Venstar component. Correctly detect humidifiers. (#5298) --- source/_components/climate.venstar.markdown | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/_components/climate.venstar.markdown b/source/_components/climate.venstar.markdown index f054465f729..253e8700675 100644 --- a/source/_components/climate.venstar.markdown +++ b/source/_components/climate.venstar.markdown @@ -25,7 +25,13 @@ Currently supported functionality: - Setting heat/cool temperature when the thermostat is in the appropriate mode. - Changing the operation mode of the thermostat (heat/cool/off/auto) - Turning the fan on/off -- Setting the humidity level +- Reading and setting the humidity level and limits +- Turning away mode on/off +- Turning hold mode on/off + +The following values are supported for the hold_mode state attribute: +- `off`: *Enables* the scheduling functionality. +- `temperature`: *Disables* the schedule and holds the set temperature indefinitely. Note - Please ensure you update your thermostat to the latest firmware. Currently tested on firmware 5.10. @@ -61,6 +67,11 @@ timeout: required: false type: int default: 5 +humidifier: + description: Report humidity and expose humidifier setpoints. + required: false + type: boolean + default: true {% endconfiguration %} ## {% linkable_title Full configuration sample %} @@ -74,4 +85,5 @@ climate: username: OPTIONAL_AUTH_USER_HERE password: OPTIONAL_AUTH_PASS_HERE timeout: 5 + humidifier: False ``` From 680f45967b7097dc8434b63c22008367ed84cf19 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 10 May 2018 23:43:37 +0200 Subject: [PATCH 11/39] Remove Domain expiry documentation (#5345) --- .../_components/sensor.domain_expiry.markdown | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 source/_components/sensor.domain_expiry.markdown diff --git a/source/_components/sensor.domain_expiry.markdown b/source/_components/sensor.domain_expiry.markdown deleted file mode 100644 index a70306909a8..00000000000 --- a/source/_components/sensor.domain_expiry.markdown +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: page -title: "Domain Expiry" -description: "Instructions on how to set up Domain expiry sensors within Home Assistant." -date: 2018-04-24 14:14 -sidebar: true -comments: false -sharing: true -footer: true -logo: home-assistant.png -ha_category: System Monitor -ha_release: 0.69 -ha_iot_class: "depends" ---- - -The `domain_expiry` sensor gets whois information about domain and displays the expiry in days. - -To add the Domain Expiry sensor to your installation, add these options to `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: domain_expiry - domain: home-assistant.io -``` - -{% configuration %} -domain: - description: Domain name to track - required: true - type: string -name: - description: The friendly name for the certificate. - required: false - type: string - default: Domain Expiry -{% endconfiguration %} \ No newline at end of file From 55aee475fef8bdc8b758150cc8aac1c5c9acb0ef Mon Sep 17 00:00:00 2001 From: Martin Hjelmare Date: Fri, 11 May 2018 09:45:52 +0200 Subject: [PATCH 12/39] Update mysensors docs (#5090) * Update mysensors docs * Explain the change regarding smartsleep and heartbeats in mysensors version 2.2.0. * Fix config options. * Use minimum config section at the top. * :pencil2: Minor improvements --- source/_components/mysensors.markdown | 79 +++++++++++++++------------ 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown index f9e9388c679..3cd360e2d26 100644 --- a/source/_components/mysensors.markdown +++ b/source/_components/mysensors.markdown @@ -24,27 +24,6 @@ Integrate your Serial, Ethernet or MQTT Client MySensors Gateway by adding the f mysensors: gateways: - device: '/dev/ttyUSB0' - persistence_file: 'path/mysensors.json' - baud_rate: 38400 - nodes: - 1: - name: 'kitchen' - 3: - name: 'living_room' - - device: '/dev/ttyACM0' - persistence_file: 'path/mysensors2.json' - baud_rate: 115200 - - device: '192.168.1.18' - persistence_file: 'path/mysensors3.json' - tcp_port: 5003 - - device: mqtt - persistence_file: 'path/mysensors4.json' - topic_in_prefix: 'mygateway1-out' - topic_out_prefix: 'mygateway1-in' - optimistic: false - persistence: true - retain: true - version: '2.0' ``` {% configuration %} @@ -62,6 +41,11 @@ mysensors: required: false type: int default: 115200 + persistence_file: + description: The path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. + required: false + type: string + default: path/to/config/directory/mysensors.pickle tcp_port: description: Specifies the port of the connected TCP Ethernet gateway. required: false @@ -83,23 +67,14 @@ mysensors: type: map keys: name: - description: The name the node will be renamed to. This nodename becomes part of the entity_id. Default entity_id is [sketch_name]\_[node_id]\_[child_id] and when this name is set, the entity_id becomes [name]\_[child_id]. + description: The name the node will be renamed to. This node name becomes part of the entity_id. Default entity_id is [sketch_name]\_[node_id]\_[child_id] and when this name is set, the entity_id becomes [name]\_[child_id]. required: true type: string - debug: - description: This option has been deprecated. Please remove this from your config if you have it included. Use the [logger component](/components/logger/) to filter log messages on log level. - required: false - type: int persistence: description: Enable or disable local persistence of sensor information. If this is disabled, then each sensor will need to send presentation messages after Home Assistant starts. required: false type: int default: true - persistence_file: - description: The path to a file to save sensor information. The file extension determines the file type. Currently supported file types are 'pickle' and 'json'. - required: false - type: string - default: path/to/config/directory/mysensors.pickle version: description: Specifies the MySensors protocol version to use. Supports 1.4, 1.5 and 2.0. required: false @@ -138,17 +113,47 @@ mqtt: The MQTT gateway requires MySensors version 2.0 and only the MQTT client gateway is supported.

+### {% linkable_title Extended configuration example %} + +```yaml +# Example configuration.yaml entry +mysensors: + gateways: + - device: '/dev/ttyUSB0' + persistence_file: 'path/mysensors.json' + baud_rate: 38400 + nodes: + 1: + name: 'kitchen' + 3: + name: 'living_room' + - device: '/dev/ttyACM0' + persistence_file: 'path/mysensors2.json' + baud_rate: 115200 + - device: '192.168.1.18' + persistence_file: 'path/mysensors3.json' + tcp_port: 5003 + - device: mqtt + persistence_file: 'path/mysensors4.json' + topic_in_prefix: 'mygateway1-out' + topic_out_prefix: 'mygateway1-in' + optimistic: false + persistence: true + retain: true + version: '2.0' +``` + ### {% linkable_title Presentation %} Present a MySensors sensor or actuator, by following these steps: 1. Connect the serial gateway to your computer or the Ethernet or MQTT gateway to your network. 2. Configure the MySensors component in `configuration.yaml`. -3. Start hass. +3. Start Home Assistant. 4. Write and upload your MySensors sketch to the sensor. Make sure you: - Send sketch name. - Present the sensor's S_TYPE. - - Send at least one initial value per V_TYPE. In version 2.0 of MySensors this has to be done in the loop function. See below for an example in 2.0 of how to make sure the initial value has been received by the controller. + - Send at least one initial value per V_TYPE. In version 2.0 of MySensors, this has to be done in the loop function. See below for an example in 2.0 of how to make sure the initial value has been received by the controller. 5. Start the sensor. ```cpp @@ -231,9 +236,11 @@ void receive(const MyMessage &message) { } ``` -### {% linkable_title Heartbeats %} +### {% linkable_title SmartSleep %} -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. +Sending a heartbeat, `I_HEARTBEAT_RESPONSE`, from the MySensors device to Home Assistant, using MySensors version 2.0 - 2.1, 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 the device. + +In MySensors version 2.2 the serial API changed from using `I_HEARTBEAT_RESPONSE` to signal SmartSleep, to using `I_PRE_SLEEP_NOTIFICATION` and `I_POST_SLEEP_NOTIFICATION`. Home Assistant has been upgraded to support the new message types and will activate SmartSleep when receiving a message of type `I_PRE_SLEEP_NOTIFICATION`, if using MySensors version 2.2.x or higher. If Home Assistant is configured to use MySensors version 2.0 - 2.1 the old SmartSleep behavior is retained. ### {% linkable_title Message validation %} @@ -247,7 +254,7 @@ logger: homeassistant.components.mysensors: debug mysensors: debug ``` -The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. Eg. the S_BARO child type supports both V_PRESSURE and V_FORECAST value types. If you only send a V_PRESSURE value, an S_BARO entity with V_PRESSURE value will be set up for the sensor platform. But the log will inform of a sensor platform that failed validation due to missing V_FORECAST value type for the S_BARO child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. +The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. Eg. the S_BARO child type supports both V_PRESSURE and V_FORECAST value types. If you only send a V_PRESSURE value, an S_BARO entity with V_PRESSURE value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing V_FORECAST value type for the S_BARO child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level. Message validation was introduced in version 0.52 of Home Assistant. From 0b7a47d3e8179239c3d3476db6a9574736ec1ce0 Mon Sep 17 00:00:00 2001 From: Matt Schmitt Date: Fri, 11 May 2018 12:14:37 -0400 Subject: [PATCH 13/39] Allow HomeKit name to be customized (#5314) --- source/_components/homekit.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 7ab434c8902..2b48b4a488f 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -74,6 +74,10 @@ The `HomeKit` component allows you to forward entities from Home Assistant to Ap required: false type: map keys: + name: + description: Name of entity to show in HomeKit. HomeKit will cache the name on the first run so a device must be removed and then re-added for any change to take effect. + required: false + type: string code: description: Code to arm or disarm the alarm in the frontend. required: false From fa520535fd2a07c6c4e97d4030543f006b2fd51f Mon Sep 17 00:00:00 2001 From: Robin Date: Sat, 12 May 2018 09:25:37 +0100 Subject: [PATCH 14/39] Adds Facebox (#5355) * Adds Machine box * Update image_processing.facebox.markdown --- .../image_processing.facebox.markdown | 60 ++++++++++++++++++ .../images/supported_brands/machine-box.png | Bin 0 -> 19590 bytes 2 files changed, 60 insertions(+) create mode 100644 source/_components/image_processing.facebox.markdown create mode 100644 source/images/supported_brands/machine-box.png diff --git a/source/_components/image_processing.facebox.markdown b/source/_components/image_processing.facebox.markdown new file mode 100644 index 00000000000..d4f20fc2b7b --- /dev/null +++ b/source/_components/image_processing.facebox.markdown @@ -0,0 +1,60 @@ +--- +layout: page +title: "Facebox" +description: "Detect and recognise faces with Facebox." +date: 2018-05-03 00:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: machine-box.png +ha_category: Image Processing +featured: false +ha_release: 0.70 +--- + +The `facebox` image processing platform allows you to detect and recognise faces in a camera image using [Facebox](https://machinebox.io/docs/facebox). The state of the entity is the number of faces detected, and recognised faces are listed in the `matched_faces` attribute. Facebox runs in a Docker container, and it is recommended that you run this container on a machine with a minimum of 2 GB RAM. On your machine with Docker, run the Facebox container with: +``` +MB_KEY="INSERT-YOUR-KEY-HERE" + +sudo docker run --name=facebox --restart=always 8080:8080 -e "MB_KEY=$MB_KEY" machinebox/facebox +``` + +If you only require face detection (number of faces) you can disable face recognition by adding ```-e "MB_FACEBOX_DISABLE_RECOGNITION=true"``` to the `docker run` command. + +To enable this platform in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +image_processing: + - platform: facebox + ip_address: 192.168.0.1 + port: 8080 + source: + - entity_id: camera.local_file + name: my_custom_name +``` + +{% configuration %} +ip_address: + description: The IP address of your machine hosting Facebox. + required: true + type: string +port: + description: The port which Facebox is exposed on. + required: true + type: string +source: + description: The list of image sources. + required: true + type: map + keys: + entity_id: + description: A camera entity id to get picture from. + required: true + type: string + name: + description: This parameter allows you to override the name of your `image_processing` entity. + required: false + type: string +{% endconfiguration %} diff --git a/source/images/supported_brands/machine-box.png b/source/images/supported_brands/machine-box.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ac60376c0e4fcd961e8bd91dca331c21768371 GIT binary patch literal 19590 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 z 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 g5HQwZHOoKy@ Date: Mon, 14 May 2018 09:14:17 +0200 Subject: [PATCH 15/39] Add SpaceAPI documentation (#5336) * Add SpaceAPI documentation * Update description --- source/_components/spaceapi.markdown | 149 ++++++++++++++++++++ source/images/supported_brands/spaceapi.png | Bin 0 -> 9022 bytes 2 files changed, 149 insertions(+) create mode 100644 source/_components/spaceapi.markdown create mode 100644 source/images/supported_brands/spaceapi.png diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown new file mode 100644 index 00000000000..c5d8c452bc2 --- /dev/null +++ b/source/_components/spaceapi.markdown @@ -0,0 +1,149 @@ +--- +layout: page +title: "SpaceAPI" +description: "Instructions on how to configure the SpaceAPI for Home Assistant." +date: 2018-05-08 09:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: spaceapi.png +ha_category: Other +ha_release: "0.70" +--- + +The `spaceapi` component allow Hackerspaces to expose information to web apps or any other application with the [SpaceAPI](http://spaceapi.net/). + +## {% linkable_title Configuration %} + +To setup the `spaceapi` component in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +spaceapi: + space: HACKERSPACE_NAME + logo: URL_FOR_LOGO + url: URL + location: + address: ADDRESS + contact: + email: EMAIL_ADDRESS + issue_report_channels: + - email + state: + entity_id: binary_sensor.front_door +``` + +{% configuration %} +space: + description: Name of the Hackerspace. + required: true + type: string +logo: + description: URL which is publicly accessible of the logo. + required: true + type: URL +logo: + description: URL of the hackerspace's web site. + required: true + type: URL +location: + description: Location of the Hackerspace. + required: true + type: map + keys: + address: + description: The physical address of the Hackerspace. + required: true + type: String +contact: + description: Contact information of the Hackerspace. + required: true + type: map + keys: + email: + description: The email address of the Hackerspace. + required: true + type: String + irc: + description: The IRC channel of the Hackerspace + required: false + type: String + mailing_list: + description: The mailing list of the Hackerspace. + required: false + type: String + twitter: + description: The Twitter account of the Hackerspace. + required: false + type: String +issue_report_channels: + description: "The reporting channel for issues. Pick an entity from `contact:`." + required: true + type: List +state: + description: The current state of the Hackerspace. + required: true + type: list + keys: + entity_id: + description: "The `entity_id` of a binary sensor that represents the current state." + required: true + type: entity_id + icon_open: + description: The URL which is publicly accessible of the icon for the open Hackerspace. + required: false + type: URL + icon_closed: + description: The URL which is publicly accessible of the icon for the closed Hackerspace. + required: false + type: URL +sensors: + description: List of sensors to expose. + required: false + type: list + keys: + temperature: + description: List of temperature sensors. + required: true + type: entity_id + humidity: + description: The Twitter account of the Hackerspace. + required: true + type: entity_id +{% endconfiguration %} + +## {% linkable_title Examples %} + +In this section you find some real life examples of how to use this component. + +### {% linkable_title Eastermundigen %} + +A possible configuration entry for [Eastermundigen](http://www.eastermundigen.ch/), a Hackerspace in Switzerland, could look like this. + +```yaml +# Example configuration.yaml entry +spaceapi: + space: Eastermundigen + logo: https://eastermundigen.ch/logo.png + url: https://eastermundigen.ch + location: + address: "Steinbruchweg 16, 3072 Ostermundigen, Schweiz" + contact: + phone: "+41311111111" + twitter: "@eastermundigen" + email: "info@eastermundigen.ch" + issue_report_channels: + - email + state: + entity_id: binary_sensor.front_door" + icon_open: https://eastermundigen.ch/open.png + icon_closed: https://eastermundigen.ch/close.png + sensors: + temperature: + - "sensor.temperature_in" + - "sensor.temperature_out" + humidity: + - "sensor.humidity_in" + - "sensor.humidity_out" +``` diff --git a/source/images/supported_brands/spaceapi.png b/source/images/supported_brands/spaceapi.png new file mode 100644 index 0000000000000000000000000000000000000000..364516a240cea08ddec1ce052e78d935f2cd3d13 GIT binary patch literal 9022 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 literal 0 HcmV?d00001 From 8f835ce456165c7672c8c660e8383e71ef3bb068 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 14 May 2018 22:35:54 +0200 Subject: [PATCH 16/39] Update and switch to new style (#5363) --- source/_components/sensor.skybeacon.markdown | 26 +++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/source/_components/sensor.skybeacon.markdown b/source/_components/sensor.skybeacon.markdown index d4e95bb97ff..01d34fe65ba 100644 --- a/source/_components/sensor.skybeacon.markdown +++ b/source/_components/sensor.skybeacon.markdown @@ -14,6 +14,8 @@ ha_iot_class: "Local Polling" The `skybeacon` sensor platform supports [CR2477](http://cnsky9.en.alibaba.com)-powered [iBeacon](https://en.wikipedia.org/wiki/IBeacon)/eddystone sensors that come with temperature/sensor module. +## {% linkable_title Configuration %} + To use your Skybeacon sensor in your installation, add the following to your `configuration.yaml` file: ```yaml @@ -26,8 +28,24 @@ sensor: - humidity ``` -- **mac** (*Required*): The MAC address of your sensor. You can find this be running `hcitool lescan` from command line. -- **monitored_conditions** array (*Required*): The parameters that should be monitored. - - **temperature**: Temperature at the sensor's location. - - **humidity**: Humidity at the sensor's location. +{% configuration %} +mac: + description: "The MAC address of your sensor. You can find this be running `hcitool lescan` from command line." + required: true + type: string +name: + description: The name of the Skybeacon sensor. + required: false + type: string + default: Skybeacon +monitored_conditions: + description: The parameters that should be monitored. + required: false + type: map + keys: + temperature: + description: Temperature at the sensor's location. + humidity: + description: Humidity at the sensor's location. +{% endconfiguration %} From 2db10cf5fef41b3dfc4b3d65162a235fda3c0854 Mon Sep 17 00:00:00 2001 From: Matt Schmitt Date: Mon, 14 May 2018 16:38:38 -0400 Subject: [PATCH 17/39] Add support for direction to fan template (#5342) * Update docs * Add missing quotes --- source/_components/fan.template.markdown | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/source/_components/fan.template.markdown b/source/_components/fan.template.markdown index 5ebd6665948..b7822ce308f 100644 --- a/source/_components/fan.template.markdown +++ b/source/_components/fan.template.markdown @@ -14,8 +14,8 @@ logo: home-assistant.png --- The `template` platform creates fans that combine components and provides the -ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, and -set_oscillating commands of a fan. +ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, +set_oscillating, and set_direction commands of a fan. To enable Template Fans in your installation, add the following to your `configuration.yaml` file: @@ -31,6 +31,7 @@ fan: value_template: "{{ states('input_boolean.state') }}" speed_template: "{{ states('input_select.speed') }}" oscillating_template: "{{ states('input_select.osc') }}" + direction_template: "{{ states('input_select.direction') }}" turn_on: service: script.fan_on turn_off: @@ -43,6 +44,10 @@ fan: service: script.fan_oscillating data_template: oscillating: "{{ oscillating }}" + set_direction: + service: script.fan_direction + data_template: + direction: "{{ direction }}" speeds: - '1' - '2' @@ -72,6 +77,10 @@ fan: description: "Defines a template to get the osc state of the fan. Valid value: True/False" required: false type: template + direction_template: + description: "Defines a template to get the direction of the fan. Valid value: 'forward'/'reverse'" + required: false + type: template turn_on: description: Defines an action to run when the fan is turned on. required: true @@ -88,6 +97,10 @@ fan: description: Defines an action to run when the fan is given a osc state command. required: false type: action + set_direction: + description: Defines an action to run when the fan is given a direction command. + required: false + type: action speeds: description: List of speeds the fan is capable of running at. required: false From 980d0219ad842a616efbbe382624b7185eacd266 Mon Sep 17 00:00:00 2001 From: Gregory Benner Date: Mon, 14 May 2018 16:52:44 -0400 Subject: [PATCH 18/39] Add docs for Family Hub camera for Samsung Refrigerators (#5364) * added docs and image * fix docs * change docs to use the correct key for the IP address * Update style and add 'ha_release' --- source/_components/camera.familyhub.markdown | 34 +++++++++++++++++++ source/images/supported_brands/familyhub.png | Bin 0 -> 29149 bytes 2 files changed, 34 insertions(+) create mode 100644 source/_components/camera.familyhub.markdown create mode 100644 source/images/supported_brands/familyhub.png diff --git a/source/_components/camera.familyhub.markdown b/source/_components/camera.familyhub.markdown new file mode 100644 index 00000000000..20f888a63d9 --- /dev/null +++ b/source/_components/camera.familyhub.markdown @@ -0,0 +1,34 @@ +--- +layout: page +title: "Family Hub Camera" +description: "Instructions on how to integrate Samsung Family Hub refrigerator cameras within Home Assistant." +date: 2018-05-04 09:44 +sidebar: true +comments: false +sharing: true +footer: true +logo: familyhub.png +ha_category: Camera +ha_release: "0.70" +ha_iot_class: "Local Polling" +--- + +The `familyhub` platform allows you to get images of the inside of your [Samsung Family Hub refrigerator](https://www.samsung.com/us/explore/family-hub-refrigerator/connected-hub/) in Home Assistant. + +## {% linkable_title Configuration %} + +To enable your Family Hub camera in your installation, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +camera: + - platform: familyhub + ip_address: 'IP_ADDRESS' +``` + +{% configuration %} +ip_address: + description: The IP address of your refrigerator. + required: true + type: string +{% endconfiguration %} diff --git a/source/images/supported_brands/familyhub.png b/source/images/supported_brands/familyhub.png new file mode 100644 index 0000000000000000000000000000000000000000..3314eb8627047130ea173a94d1441d21ffafc09c GIT binary patch literal 29149 zcmV)HK)t_-P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 Date: Mon, 14 May 2018 15:39:14 -0600 Subject: [PATCH 19/39] Update LaMetric notify documentation (#5358) This documents home-assistant/home-assistant/pull/14414 --- source/_components/notify.lametric.markdown | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/_components/notify.lametric.markdown b/source/_components/notify.lametric.markdown index cf50cffaa2e..a7c635a3ad2 100644 --- a/source/_components/notify.lametric.markdown +++ b/source/_components/notify.lametric.markdown @@ -43,6 +43,11 @@ cycles: required: false type: int default: 1 +priority: + description: Defines the priority of the notification. + required: False + type: string + default: warning {% endconfiguration %} Check out the list of all icons at [https://developer.lametric.com/icons](https://developer.lametric.com/icons). Note that icons always begin with "i" while animations begin with "a". This is part of the name, you can't just use the number! @@ -59,11 +64,12 @@ notify: lifetime: 20 icon: a7956 cycles: 3 + priority: info ``` ### {% linkable_title Changing sounds and icons %} -To add a notification sound or an icon override, it has to be done via service data. +To add a notification sound, icon, cycles, or priority override, it has to be done via service data. ```yaml - alias: "Send notification on arrival at school" @@ -79,4 +85,6 @@ To add a notification sound or an icon override, it has to be done via service d data: sound: 'notification' icon: 'i51' + cycles: 0 + priority: 'critical' ``` From 57b41019a2719bc029161a729c4215f18e7f7861 Mon Sep 17 00:00:00 2001 From: c727 Date: Tue, 15 May 2018 19:07:50 +0200 Subject: [PATCH 20/39] Remove simplepush.io (#5372) --- source/_components/notify.simplepush.markdown | 57 ------------------ source/images/supported_brands/simplepush.png | Bin 5474 -> 0 bytes 2 files changed, 57 deletions(-) delete mode 100644 source/_components/notify.simplepush.markdown delete mode 100644 source/images/supported_brands/simplepush.png diff --git a/source/_components/notify.simplepush.markdown b/source/_components/notify.simplepush.markdown deleted file mode 100644 index 2556c820373..00000000000 --- a/source/_components/notify.simplepush.markdown +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: page -title: "Simplepush" -description: "Instructions on how to add Simplepush notifications to Home Assistant." -date: 2016-09-11 18:00 -sidebar: true -comments: false -sharing: true -footer: true -logo: simplepush.png -ha_category: Notifications -ha_release: 0.29 ---- - - -The `simplepush` platform uses [Simplepush](https://simplepush.io/) to delivery notifications from Home Assistant to your Android device. Unlike similar apps the Simplepush app requires no registration. - -To add Simplepush to your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -notify: - - name: NOTIFIER_NAME - platform: simplepush - device_key: ABCDE -``` - -{% configuration %} - name: - description: 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`. - required: false - type: string - device_key: - description: The device key of your device. - required: true - type: string - event: - description: The event for the events. - required: false - type: string - password: - description: The password of the encryption used by your device. - required: inclusive - type: string - salt: - description: The salt used by your device. - required: inclusive - type: string -{% endconfiguration %} - -To test if the service works, just send a message with `curl` from the command-line. - -```bash -$ curl 'https://api.simplepush.io/send/device_key/title/message' -``` - -To use notifications, please see the [getting started with automation page](/getting-started/automation/). diff --git a/source/images/supported_brands/simplepush.png b/source/images/supported_brands/simplepush.png deleted file mode 100644 index fa8d789d417ae391f272b4364586bd3bccebc9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5474 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 Date: Tue, 15 May 2018 14:04:06 -0400 Subject: [PATCH 21/39] Add Konnected component (#5102) --- .../binary_sensor.konnected.markdown | 45 ++++++++ source/_components/konnected.markdown | 102 ++++++++++++++++++ source/_components/switch.konnected.markdown | 46 ++++++++ source/images/supported_brands/konnected.png | Bin 0 -> 15134 bytes 4 files changed, 193 insertions(+) create mode 100644 source/_components/binary_sensor.konnected.markdown create mode 100644 source/_components/konnected.markdown create mode 100644 source/_components/switch.konnected.markdown create mode 100644 source/images/supported_brands/konnected.png diff --git a/source/_components/binary_sensor.konnected.markdown b/source/_components/binary_sensor.konnected.markdown new file mode 100644 index 00000000000..727cc4e9440 --- /dev/null +++ b/source/_components/binary_sensor.konnected.markdown @@ -0,0 +1,45 @@ +--- +layout: page +title: "Konnected Binary Sensor" +description: "Connect wired open/close sensors to Home Assistant with Konnected and a NodeMCU ESP8266" +date: 2018-04-03 12:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: konnected.png +ha_category: Binary Sensor +ha_release: "0.70" +ha_iot_class: "Local Push" +--- + +The `konnected` binary sensor allows you to monitor wired door sensors, window sensors, motion sensors, smoke detectors, +CO detectors, glass-break sensors, water leak sensors or any other simple wired open/close circuit attached to a +NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). + +See the [`konnected`](/components/konnected/) component for configuration and setup instructions. Please visit the +[Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible +hardware. + +This component supports all of the built-in device classes of the generic [Binary Sensor](/components/binary_sensor/) +component. + +{% configuration %} + +pin: + description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 9. + required: exclusive +zone: + description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board. Valid values are 1, 2, 3, 4, 5 and 6. + required: exclusive +type: + description: Any [binary sensor](/components/binary_sensor/) class, typically `door`, `window`, `motion` or `smoke`. + required: true +name: + description: The name of the device used in the front end. + required: false + default: automatically generated + +{% endconfiguration%} + +**Note:** Either **pin** or **zone** is required for each sensor. Do not use both in the same sensor definition. \ No newline at end of file diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown new file mode 100644 index 00000000000..f9e9a5e9a07 --- /dev/null +++ b/source/_components/konnected.markdown @@ -0,0 +1,102 @@ +--- +layout: page +title: "Konnected" +description: "Connect wired alarm sensors and siren using the NodeMCU based Konnected Alarm Panel" +date: 2018-04-03 12:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: konnected.png +ha_category: Alarm +ha_release: "0.70" +--- + +The `konnected` component lets you connect wired sensors and switches to a NodeMCU ESP8226 based device running the +[open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and +siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. + +Visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and +compatible hardware. + +The component currently supports the following device types in Home Assistant: +- [Binary Sensor](/components/binary_sensor.konnected/): Wired door and window sensors, motion detectors, glass-break +detectors, leak sensors, smoke & CO detectors or any open/close switch. +- [Switch](/components/switch.konnected/): Actuate a siren, strobe, buzzer, or relay module. + +This component requires the [`discovery`](https://www.home-assistant.io/components/discovery) component to be enabled. + +A `konnected` section must be present in the `configuration.yml` file that specifies the Konnected devices on the network +and the sensors or actuators attached to them: + +```yaml +# Example configuration.yaml entry +konnected: + access_token: REPLACE_ME_WITH_A_RANDOM_STRING + devices: + - id: 8bcd53 + binary_sensors: + - zone: 1 + type: door + name: 'Front Door' + - zone: 3 + type: motion + name: 'Test Motion' + switches: + - zone: out + name: siren + - id: 438a38 + binary_sensors: + - pin: 1 + type: motion + name: 'Office Motion' + - pin: 2 + type: door + name: 'Office Door' + switches: + - pin: 5 + name: 'Garage Door' + activation: low +``` + +{% configuration %} + +access_token: + description: Any random string. This is used to ensure that only those devices which you have configured can authenticate to Home Assistant to change a device state. For security, we recommend using `secrets.yml` to specify this. + required: true + type: string +devices: + description: A list of Konnected devices that you have on your network. + required: true + type: list + keys: + id: + description: The MAC address of the WiFi module with colons/punctuation removed. You can either use the full 12-character MAC address or only the last 6 characters. This is visible in the device's WiFi SSID and hostname. + required: true + type: string + binary_sensors: + description: A list of binary sensors connected to the device. See [Konnected Binary Sensor](/components/binary_sensor.konnected/) for configuration variables. + required: false + type: list + switches: + description: A list of actuators (on/off switches) connected to the device. See [Konnected Switch](/components/switch.konnected/) for configuration variables. + required: false + type: list + +{% endconfiguration%} + +### {% linkable_title Pin Mapping %} + +Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly used with the NodeMCU dev kit WiFi module and +optionally Konnected's Alarm Panel hardware. The following table shows the pin mapping between the Konnected hardware +labeled zones, the NodeMCU labeled pins, and the ESP8266 GPIO pins. + +| Konnected Alarm Panel Zone | NodeMCU pin | IO Index | ESP8266 GPIO | +|---|---|---|---| +| 1 | D1 | 1 | GPIO5 | +| 2 | D2 | 2 | GPIO4 | +| 3 | D5 | 5 | GPIO14 | +| 4 | D6 | 6 | GPIO12 | +| 5 | D7 | 7 | GPIO13 | +| 6 | RX | 9 | GPIO3 | +| ALARM or OUT | D8 | 8 | GPIO15 | diff --git a/source/_components/switch.konnected.markdown b/source/_components/switch.konnected.markdown new file mode 100644 index 00000000000..224ce8af5f3 --- /dev/null +++ b/source/_components/switch.konnected.markdown @@ -0,0 +1,46 @@ +--- +layout: page +title: "Konnected Switch" +description: "Connect wired actuators to Home Assistant with Konnected and a NodeMCU ESP8266" +date: 2018-04-03 12:30 +sidebar: true +comments: false +sharing: true +footer: true +logo: konnected.png +ha_category: Switch +ha_release: "0.70" +ha_iot_class: "Local Push" +--- + +The `konnected` switch allows you to actuate an alarm system siren, strobe light, buzzer, or any other wired device using +a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the +[open source Konnected software](https://github.com/konnected-io/konnected-security). + +Please visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible +hardware. + +See the [`konnected`](/components/konnected/) component for configuration and setup instructions. + +{% configuration %} + +pin: + description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 8. + required: exclusive +zone: + description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board, or the word `out` to specify the dedicated ALARM/OUT terminal on the Konnected board. Valid values are 1, 2, 3, 4, 5 and out. + required: exclusive +name: + description: The name of the device used in the front end. + required: false + default: automatically generated +activation: + description: Either "low" or "high" to specify the state when the switch is turned on. + default: high + required: false + +{% endconfiguration%} + +#### Configuration Notes +- Either **pin** or **zone** is required for each actuator. Do not use both in the same definition. +- Pin `D8` or the `out` zone will only work when activation is set to high (the default). diff --git a/source/images/supported_brands/konnected.png b/source/images/supported_brands/konnected.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6ebbf7970ee1550e6127b485b6e5109e0ef97d GIT binary patch literal 15134 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 Date: Tue, 15 May 2018 15:26:56 -0400 Subject: [PATCH 22/39] Updated temperature max/min to high/low (#4613) --- source/_components/sensor.darksky.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/_components/sensor.darksky.markdown b/source/_components/sensor.darksky.markdown index 6b110a6c726..2480baeb92e 100644 --- a/source/_components/sensor.darksky.markdown +++ b/source/_components/sensor.darksky.markdown @@ -102,10 +102,10 @@ Configuration variables: - **minutely_summary**: A human-readable text summary for the next hour. - **hourly_summary**: A human-readable text summary for the next 24 hours. - **daily_summary**: A human-readable text summary for the next 7 days. - - **temperature_max**: Today's expected high temperature. - - **temperature_min**: Today's expected low temperature. - - **apparent_temperature_max**: Today's expected apparent high temperature. - - **apparent_temperature_min**: Today's expected apparent low temperature. + - **temperature_high**: Today's daytime expected high temperature. + - **temperature_low**: Today's overnight expected low temperature. + - **apparent_temperature_high**: Today's daytime expected apparent high temperature. + - **apparent_temperature_low**: Today's overnight expected apparent low temperature. - **precip_intensity_max**: Today's expected maximum intensity of precipitation. - **uv_index**: The current UV index. - **units** (*Optional*): Specify the unit system. Default to `si` or `us` based on the temperature preference in Home Assistant. Other options are `auto`, `us`, `si`, `ca`, `uk` and `uk2`. From 0cf73827b729160e9babcbb5a2e0a698ce6ac144 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Tue, 15 May 2018 23:22:15 +0200 Subject: [PATCH 23/39] Update docs (#5373) --- .../binary_sensor.konnected.markdown | 30 +---- source/_components/konnected.markdown | 127 ++++++++++++------ source/_components/switch.konnected.markdown | 29 +--- 3 files changed, 92 insertions(+), 94 deletions(-) diff --git a/source/_components/binary_sensor.konnected.markdown b/source/_components/binary_sensor.konnected.markdown index 727cc4e9440..b530f097158 100644 --- a/source/_components/binary_sensor.konnected.markdown +++ b/source/_components/binary_sensor.konnected.markdown @@ -13,33 +13,9 @@ ha_release: "0.70" ha_iot_class: "Local Push" --- -The `konnected` binary sensor allows you to monitor wired door sensors, window sensors, motion sensors, smoke detectors, -CO detectors, glass-break sensors, water leak sensors or any other simple wired open/close circuit attached to a -NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). +The `konnected` binary sensor allows you to monitor wired door sensors, window sensors, motion sensors, smoke detectors, CO detectors, glass-break sensors, water leak sensors or any other simple wired open/close circuit attached to a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). -See the [`konnected`](/components/konnected/) component for configuration and setup instructions. Please visit the -[Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible -hardware. +See the [`konnected`](/components/konnected/) component for configuration and setup instructions. -This component supports all of the built-in device classes of the generic [Binary Sensor](/components/binary_sensor/) -component. +This component supports all of the built-in device classes of the generic [Binary Sensor](/components/binary_sensor/) component. -{% configuration %} - -pin: - description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 9. - required: exclusive -zone: - description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board. Valid values are 1, 2, 3, 4, 5 and 6. - required: exclusive -type: - description: Any [binary sensor](/components/binary_sensor/) class, typically `door`, `window`, `motion` or `smoke`. - required: true -name: - description: The name of the device used in the front end. - required: false - default: automatically generated - -{% endconfiguration%} - -**Note:** Either **pin** or **zone** is required for each sensor. Do not use both in the same sensor definition. \ No newline at end of file diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown index f9e9a5e9a07..b2265308c7c 100644 --- a/source/_components/konnected.markdown +++ b/source/_components/konnected.markdown @@ -12,22 +12,99 @@ ha_category: Alarm ha_release: "0.70" --- -The `konnected` component lets you connect wired sensors and switches to a NodeMCU ESP8226 based device running the -[open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and -siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. +The `konnected` component lets you connect wired sensors and switches to a NodeMCU ESP8226 based device running the [open source Konnected software](https://github.com/konnected-io/konnected-security). Reuse the wired sensors and siren from an old or pre-wired alarm system installation and integrate them directly into Home Assistant. -Visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and -compatible hardware. +Visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible hardware. The component currently supports the following device types in Home Assistant: -- [Binary Sensor](/components/binary_sensor.konnected/): Wired door and window sensors, motion detectors, glass-break -detectors, leak sensors, smoke & CO detectors or any open/close switch. -- [Switch](/components/switch.konnected/): Actuate a siren, strobe, buzzer, or relay module. + +- [Binary Sensor](/components/binary_sensor.konnected/): Wired door and window sensors, motion detectors, glass-break detectors, leak sensors, smoke & CO detectors or any open/close switch. +- [Switch](/components/switch.konnected/): Actuate a siren, strobe, buzzer or relay module. This component requires the [`discovery`](https://www.home-assistant.io/components/discovery) component to be enabled. -A `konnected` section must be present in the `configuration.yml` file that specifies the Konnected devices on the network -and the sensors or actuators attached to them: +## {% linkable_title Configuration %} + +A `konnected` section must be present in the `configuration.yml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them: + +```yaml +# Example configuration.yaml entry +konnected: + access_token: REPLACE_ME_WITH_A_RANDOM_STRING + devices: + - id: 8bcd53 + binary_sensors: + - zone: 1 + type: door + switches: + - zone: out + - id: 438a38 + binary_sensors: + - pin: 2 + type: door + switches: + - pin: 5 +``` + +{% configuration %} +access_token: + description: Any random string. This is used to ensure that only those devices which you have configured can authenticate to Home Assistant to change a device state. + required: true + type: string +devices: + description: A list of Konnected devices that you have on your network. + required: true + type: list + keys: + id: + description: The MAC address of the WiFi module with colons/punctuation removed. You can either use the full 12-character MAC address or only the last 6 characters. This is visible in the device's WiFi SSID and hostname. + required: true + type: string + binary_sensors: + description: A list of binary sensors connected to the device. See [Konnected Binary Sensor](/components/binary_sensor.konnected/) for configuration variables. + required: false + type: list + keys: + pin: + description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 9. + required: exclusive + zone: + description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board. Valid values are 1, 2, 3, 4, 5 and 6. + required: exclusive + type: + description: Any [binary sensor](/components/binary_sensor/) class, typically `door`, `window`, `motion` or `smoke`. + required: true + name: + description: The name of the device used in the front end. + required: false + default: automatically generated + switches: + description: A list of actuators (on/off switches) connected to the device. See [Konnected Switch](/components/switch.konnected/) for configuration variables. + required: false + type: list + keys: + pin: + description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 8. + required: exclusive + zone: + description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board or the word `out` to specify the dedicated ALARM/OUT terminal on the Konnected board. Valid values are 1, 2, 3, 4, 5 and out. + required: exclusive + name: + description: The name of the device used in the front end. + required: false + default: automatically generated + activation: + description: Either "low" or "high" to specify the state when the switch is turned on. + default: high + required: false +{% endconfiguration%} + +#### Configuration Notes + +- Either **pin** or **zone** is required for each actuator or sensor. Do not use both in the same definition. +- Pin `D8` or the `out` zone will only work when activation is set to high (the default). + +## {% linkable_title Full configuration %} ```yaml # Example configuration.yaml entry @@ -58,38 +135,10 @@ konnected: name: 'Garage Door' activation: low ``` - -{% configuration %} - -access_token: - description: Any random string. This is used to ensure that only those devices which you have configured can authenticate to Home Assistant to change a device state. For security, we recommend using `secrets.yml` to specify this. - required: true - type: string -devices: - description: A list of Konnected devices that you have on your network. - required: true - type: list - keys: - id: - description: The MAC address of the WiFi module with colons/punctuation removed. You can either use the full 12-character MAC address or only the last 6 characters. This is visible in the device's WiFi SSID and hostname. - required: true - type: string - binary_sensors: - description: A list of binary sensors connected to the device. See [Konnected Binary Sensor](/components/binary_sensor.konnected/) for configuration variables. - required: false - type: list - switches: - description: A list of actuators (on/off switches) connected to the device. See [Konnected Switch](/components/switch.konnected/) for configuration variables. - required: false - type: list - -{% endconfiguration%} ### {% linkable_title Pin Mapping %} -Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly used with the NodeMCU dev kit WiFi module and -optionally Konnected's Alarm Panel hardware. The following table shows the pin mapping between the Konnected hardware -labeled zones, the NodeMCU labeled pins, and the ESP8266 GPIO pins. +Konnected runs on an ESP8266 board with the NodeMCU firmware. It is commonly used with the NodeMCU dev kit WiFi module and optionally Konnected's Alarm Panel hardware. The following table shows the pin mapping between the Konnected hardware labeled zones, the NodeMCU labeled pins and the ESP8266 GPIO pins. | Konnected Alarm Panel Zone | NodeMCU pin | IO Index | ESP8266 GPIO | |---|---|---|---| diff --git a/source/_components/switch.konnected.markdown b/source/_components/switch.konnected.markdown index 224ce8af5f3..8eecdd41801 100644 --- a/source/_components/switch.konnected.markdown +++ b/source/_components/switch.konnected.markdown @@ -13,34 +13,7 @@ ha_release: "0.70" ha_iot_class: "Local Push" --- -The `konnected` switch allows you to actuate an alarm system siren, strobe light, buzzer, or any other wired device using -a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the -[open source Konnected software](https://github.com/konnected-io/konnected-security). - -Please visit the [Konnected.io website](https://konnected.io) for more information about the Konnected Alarm Panel board and compatible -hardware. +The `konnected` switch platform allows you to actuate an alarm system siren, strobe light, buzzer or any other wired device using a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security). See the [`konnected`](/components/konnected/) component for configuration and setup instructions. -{% configuration %} - -pin: - description: The number corresponding to the _IO index_ of the labeled pin on the NodeMCU dev board. See the [NodeMCU GPIO documentation](https://nodemcu.readthedocs.io/en/master/en/modules/gpio/) for more details. Valid values are 1, 2, 5, 6, 7 and 8. - required: exclusive -zone: - description: The number corresponding to the labeled zone on the [Konnected Alarm Panel](https://konnected.io) board, or the word `out` to specify the dedicated ALARM/OUT terminal on the Konnected board. Valid values are 1, 2, 3, 4, 5 and out. - required: exclusive -name: - description: The name of the device used in the front end. - required: false - default: automatically generated -activation: - description: Either "low" or "high" to specify the state when the switch is turned on. - default: high - required: false - -{% endconfiguration%} - -#### Configuration Notes -- Either **pin** or **zone** is required for each actuator. Do not use both in the same definition. -- Pin `D8` or the `out` zone will only work when activation is set to high (the default). From 910086656a2ad933344965a23612c23e0114af0d Mon Sep 17 00:00:00 2001 From: Matt Schmitt Date: Wed, 16 May 2018 07:16:34 -0400 Subject: [PATCH 24/39] Add HomeKit support for fans (#5346) --- source/_components/homekit.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 2b48b4a488f..50f68ff229a 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -214,6 +214,7 @@ The following components are currently supported: | cover | WindowCovering | All covers that support `open_cover` and `close_cover` through value mapping. (`open` -> `>=50`; `close` -> `<50`) | | cover | WindowCovering | All covers that support `open_cover`, `stop_cover` and `close_cover` through value mapping. (`open` -> `>70`; `close` -> `<30`; `stop` -> every value in between) | | device_tracker | Sensor | Support for `occupancy` device class. | +| fan | Fan | Support for `on / off`, `direction` and `oscillating`. | | light | Light | Support for `on / off`, `brightness` and `rgb_color`. | | lock | DoorLock | Support for `lock / unlock`. | | sensor | TemperatureSensor | All sensors that have `Celsius` or `Fahrenheit` as their `unit_of_measurement` or `temperature` as their `device_class`. | From 929715085767fc7b5703011662481e538582ce6a Mon Sep 17 00:00:00 2001 From: Jerad Meisner Date: Wed, 16 May 2018 10:34:05 -0700 Subject: [PATCH 25/39] Updated documentation for SABnzbd. (#4836) * Updated documentation for SABnzbd. * Added a period * :pencil2: Tweaks * :arrow_up: ha_release -> 0.68 * Keep sensor page with link to component. Fix merge conflict from #5230 * :arrow_up: ha_release -> 0.70 --- source/_components/sabnzbd.markdown | 117 +++++++++++++++++++++ source/_components/sensor.sabnzbd.markdown | 63 +---------- 2 files changed, 121 insertions(+), 59 deletions(-) create mode 100644 source/_components/sabnzbd.markdown diff --git a/source/_components/sabnzbd.markdown b/source/_components/sabnzbd.markdown new file mode 100644 index 00000000000..16e665b6002 --- /dev/null +++ b/source/_components/sabnzbd.markdown @@ -0,0 +1,117 @@ +--- +layout: page +title: "SABnzbd" +description: "Instructions on how to integrate SABnzbd with Home Assistant." +date: 2018-03-03 19:09 +sidebar: true +comments: false +sharing: true +footer: true +logo: sabnzbd.png +ha_category: Downloading +ha_release: 0.70 +ha_iot_class: "Local Polling" +--- + +The `sabnzbd` component will allow you to monitor and control your downloads with [SABnzbd](https://sabnzbd.org) from +within Home Assistant and setup automations based on the information. + +If SABnzbd is discovered on your network, you can enter your API Key in the Configurator. Press "CONFIGURE" to do it. + +

+ +

+ +This will create services for interacting with SABnzbd in scripts and automations, but no sensors will be created. + + +To configure SABnzbd, add the following to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +sabnzbd: + api_key: YOUR_SABNZBD_API_KEY +``` + +{% configuration %} +api_key: + description: The API key used to interact with your SABnzbd instance + required: true + type: string +host: + description: The hostname of your SABnzbd instance, e.g., 192.168.1.32. + required: false + default: localhost + type: string +name: + description: The name of your SABnzbd instance (this will be the prefix for all created sensors). + required: false + default: SABnzbd + type: string +port: + description: The port on which your SABnzbd instance is listening. + required: false + default: 8080 + type: integer +sensors: + description: List of variables for which to create sensor entities. + required: false + type: list +ssl: + description: Set to true to use SSL (https) to access SABnzbd. + required: false + default: false + type: boolean +{% endconfiguration %} + +Available sensors are: + + * `current_status`: The current status of SABnzbd (Idle, Paused, etc.) + * `speed`: The current download speed + * `queue_size`: The total size of the download queue + * `queue_remaining`: The remaining size of the download queue + * `disk_size`: The total disk size at SABnzbd's download location + * `disk_free`: The available disk space at SABnzbd's download location + * `queue_count`: The number of items in the download queue + * `day_size`: GB downloaded today + * `week_size`: GB downloaded this week + * `month_size`: GB downloaded this month + * `total_size`: Total GB downloaded + +## {% linkable_title Full examples %} + +```yaml +# Example configuration.yaml entry +sabnzbd: + api_key: YOUR_SABNZBD_API_KEY + host: 192.168.1.32 + name: sab + port: 9090 + ssl: true + sensors: + - current_status + - speed + - queue_size + - queue_remaining + - disk_size + - disk_free + - queue_count + - day_size + - week_size + - month_size + - total_size +``` +This will attempt to access your SABnzbd instance at https://192.168.1.32:9090 and will create sensors named +`sensor.sab_status`, `sensor.sab_speed`, etc. + +## {% linkable_title Services %} + +### {% linkable_title Media control services %} +Available services: `pause`, `resume`, `set_speed`. + +#### {% linkable_title Service `sabnzbd/set_speed` %} + +| Service data attribute | Optional | Description | +|------------------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `speed` | yes | Sets the download speed limit. If specified as a number with no units, will be interpreted as a percent. If units are provided (e.g., 500K) will be interpreted absolutely. Defaults to 100 | + diff --git a/source/_components/sensor.sabnzbd.markdown b/source/_components/sensor.sabnzbd.markdown index 27766435fd9..627379399ec 100644 --- a/source/_components/sensor.sabnzbd.markdown +++ b/source/_components/sensor.sabnzbd.markdown @@ -1,7 +1,7 @@ --- layout: page -title: "SABnzbd" -description: "Instructions on how to integrate SABnzbd within Home Assistant." +title: "SABnzbd Sensor" +description: "Instructions on how to integrate SABnzbd with Home Assistant." date: 2015-03-23 19:59 sidebar: true comments: false @@ -14,61 +14,6 @@ ha_iot_class: "Local Polling" --- -The `sabnzbd` platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant and setup automation based on the information. +The `sabnzbd` sensor platform will allow you to monitor your downloads with [SABnzbd](http://sabnzbd.org) from within Home Assistant. -If SABnzbd is discovered on your network you can enter your API Key in the Configurator Press "CONFIGURE" to do it. - -

- -

- -This will enable a minimal setup where `sensor.sabnzbd_status` is enabled. - - -For more advanced usage, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -sensor: - platform: sabnzbd - host: YOUR_SABNZBD_HOST - api_key: YOUR_API_KEY - monitored_variables: - - 'current_status' - - 'speed' - - 'queue_size' - - 'queue_remaining' - - 'disk_size' - - 'disk_free' - - 'queue_count' -``` - -Configuration variables: - -- **host** (*Required*): The host where your SABnzbd instance is running, eg. 192.168.1.32 -- **port** (*Optional*): The port to use with SABnzbd instance. Defaults to `8080`. -- **api_key** (*Required*): Name that will be used in the frontend for the pin. -- **name** (*Optional*): The name to use when displaying this SABnzbd instance. -- **ssl** (*Optional*): Use `https` instead of `http` to connect. Defaults to False. -- **monitored_variables** array (*Required*): List of the monitored variables. - - **current_status**: Current status of the SABnzbd instance - - **speed**: Current speed. - - **queue_size**: Size of the queue - - **queue_remaining**: Remaining elements in the queue - - **disk_size**: Disk size of the storage location - - **disk_free**: Free disk space at the storage location - - **queue_count**: Number of items in the queue - -Note that this will create the following sensors: - -``` - - sensor.sabnzbd_status - - sensor.sabnzbd_speed - - sensor.sabnzbd_queue - - sensor.sabnzbd_left - - sensor.sabnzbd_disk - - sensor.sabnzbd_disk_free - - sensor.sabnzbd_queue_count -``` - -As always, you can determine the names of sensors by looking at the dev-state page `< >` in the web interface. +To add SABnzbd sensors, please follow the instructions for the [SABnzbd component](/components/sabnzbd). From 263b73e0830a28717474ab8ba5214c94f6fd37b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Wed, 16 May 2018 18:35:11 +0100 Subject: [PATCH 26/39] add "framerate" parameter to generic camera (#5245) --- source/_components/camera.generic.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index bec1ec5ffe1..b9bf15bf46a 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -36,6 +36,7 @@ Configuration variables: - **authentication** (*Optional*): Type for authenticating the requests `basic` (default) or `digest`. - **limit_refetch_to_url_change** (*Optional*): True/false value (default: false). Limits re-fetching of the remote image to when the URL changes. Only relevant if using a template to fetch the remote image. - **content_type** (*Optional*): Set the content type for the IP camera if it is not a jpg file (default: `image/jpeg`). Use `image/svg+xml` to add a dynamic svg file. +- **framerate** (*Optional*): The number of frames-per-second (FPS) of the stream (setting this too high may cause too much traffic on the network or be heavy on the camera).

From ab7f2a3746dfcf0602dae2f230a1e2145c25ee35 Mon Sep 17 00:00:00 2001 From: Mal Curtis Date: Thu, 17 May 2018 06:03:28 +1200 Subject: [PATCH 27/39] Add documentation for Onkyo media player zone 3 (#5310) --- source/_components/media_player.onkyo.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index 19854cfe609..1b67f77fdca 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -51,6 +51,10 @@ zone2: description: Enables control for the receiver's second zone. required: false type: bool +zone3: + description: Enables control for the receiver's third zone. + required: false + type: bool {% endconfiguration %} List of source names: From dad7bbeed9eaa3ff58ac733d9eab242619db5b8e Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 16 May 2018 12:52:13 -0600 Subject: [PATCH 28/39] Update docs for hitron_coda for Shaw support (#5321) --- source/_components/device_tracker.hitron_coda.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/_components/device_tracker.hitron_coda.markdown b/source/_components/device_tracker.hitron_coda.markdown index fecdc2fd5ed..70910428cfc 100644 --- a/source/_components/device_tracker.hitron_coda.markdown +++ b/source/_components/device_tracker.hitron_coda.markdown @@ -13,7 +13,7 @@ ha_release: 0.58 --- This component offers presence detection by examining devices connected to a [Rogers Hitron CODA](https://www.rogers.com/customer/support/article/wi-fi-password-hitron-coda4582-cgn3amr-cgnm3552-cgn3acr-cgn3) -Router. +or [Shaw Hitron CGNM](https://community.shaw.ca/docs/DOC-4066) Router. To use a Hitron router in your installation, add the following to your `configuration.yaml` file: @@ -24,6 +24,7 @@ device_tracker: host: !secret router_ip username: !secret router_username password: !secret router_password + type: rogers ``` {% configuration %} @@ -39,6 +40,10 @@ password: description: The password for the specified username. Usually your WiFi password. required: true type: string +type: + description: The internet provider for the modem; "rogers" or "shaw". Defaults to "rogers". + required: false + type: string {% endconfiguration %} See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. From 9497e562ee7aba9d4ea12d59c520c412cc1b7120 Mon Sep 17 00:00:00 2001 From: ChristianKuehnel Date: Thu, 17 May 2018 02:49:44 +0200 Subject: [PATCH 29/39] Documentation for new sensor FinTS (#5016) --- source/_components/sensor.fints.markdown | 74 ++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 source/_components/sensor.fints.markdown diff --git a/source/_components/sensor.fints.markdown b/source/_components/sensor.fints.markdown new file mode 100644 index 00000000000..79351f765e3 --- /dev/null +++ b/source/_components/sensor.fints.markdown @@ -0,0 +1,74 @@ +--- +layout: page +title: "FinTS Sensor" +description: "Instructions on how to use the FinTS sensor." +date: 2018-03-25 13:00 +sidebar: true +comments: false +sharing: true +footer: true +ha_category: Sensor +ha_release: 0.70 +ha_iot_class: "Local Push" +logo: home-assistant.png +--- + +With the FinTS sensor, you can fetch your account information from your bank. This only works with banks that support the FinTS (aka. HBCI) standard. The FinTS standard used by many German banks. So if you do not have a German bank account, this will most likely not work for you. To find out if your bank supports FinTS, check the bank's website or call their hotline. + +For each account you have with the bank, a separate sensor is created. If you have several accounts with a bank, you can select which ones you want to have, and you can also give the accounts a name. + +{% raw %} +```yaml +# Example configuration.yaml entry +sensor: + - platform: fints + bank_identification_number: + username: + pin: + url: +``` +{% endraw %} + +To find out the configuration for your bank, check their website or call their hotline. Do not use random information you find on the Internet! As you're storing your bank account information in the Home Assistant configuration: make sure that this configuration is not accessible to anyone. + +{% configuration %} + sensors: + description: List of your sensors. + required: true + type: map + keys: + name: + description: (optional) name of the bank. + required: false + type: string + bank_identification_number: + description: Bank identification number, in most cases the "Bankleitzahl". + required: true + type: string + username: + description: Your FinTS username. + required: true + type: string + pin: + description: Your FinTS PIN or password. + required: true + type: string + url: + description: URL of your bank's FinTS server. + required: true + type: string + accounts: + description: (optional) You can configure with of the accounts of your bank shall be shown in Home Assistant. If this attribute is set, only the accounts listed here are shown. + required: false + type: list + keys: + account: + description: For balance accounts use the IBAN of the account for holdings accounts use the classic account number. + required: true + type: string + name: + description: (optional) Use this field to give the account a meaningful name. + required: false + type: string + +{% endconfiguration %} From 11cf6f8226d0089f68effccce7e8bb2b11d7e81a Mon Sep 17 00:00:00 2001 From: Mal Curtis Date: Thu, 17 May 2018 19:28:48 +1200 Subject: [PATCH 30/39] Onkyo media player zones are now auto detected (#5383) --- source/_components/media_player.onkyo.markdown | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/source/_components/media_player.onkyo.markdown b/source/_components/media_player.onkyo.markdown index 1b67f77fdca..630182ba6df 100644 --- a/source/_components/media_player.onkyo.markdown +++ b/source/_components/media_player.onkyo.markdown @@ -30,6 +30,8 @@ media_player: pc: 'HTPC' ``` + If your receiver has second or third zone’s available, they are displayed as additional media players with the same functionality as the main zone. + {% configuration %} host: description: IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers. @@ -47,14 +49,6 @@ sources: description: A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified. required: false type: list -zone2: - description: Enables control for the receiver's second zone. - required: false - type: bool -zone3: - description: Enables control for the receiver's third zone. - required: false - type: bool {% endconfiguration %} List of source names: From a83ba64ef5e2365fb3b8b45236d0ccd855a3f951 Mon Sep 17 00:00:00 2001 From: Malte Franken Date: Fri, 18 May 2018 15:25:35 +1000 Subject: [PATCH 31/39] Feedreader configurable update interval and max entries (#5382) * new configuration parameters for feedreader * keep simple and complex configuration examples separate --- source/_components/feedreader.markdown | 31 ++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/source/_components/feedreader.markdown b/source/_components/feedreader.markdown index 5a06cd41712..b5a6b9b3ea5 100644 --- a/source/_components/feedreader.markdown +++ b/source/_components/feedreader.markdown @@ -25,9 +25,36 @@ feedreader: - https://hasspodcast.io/feed/podcast ``` -Configuration variables: +{% configuration %} + urls: + description: List of URLS for your feeds. + required: true + type: list + scan_interval: + description: Defines the update interval of the feeds. + required: false + default: 1 hour + type: interval + max_entries: + description: The maximum number of entries to extract from each feed. + required: false + default: 20 + type: int +{% endconfiguration %} -- **urls** (*Required*): List of URLS for your feeds. +The following configuration example shows how to configure update interval and maximum number of entries: + +```yaml +# Example configuration.yaml entry with optional parameters +feedreader: + urls: + - https://www.home-assistant.io/atom.xml + - https://github.com/blog.atom + - https://hasspodcast.io/feed/podcast + scan_interval: + minutes: 30 + max_entries: 5 +``` Feedreader events can be used out of the box to trigger automation actions, e.g.: From b2c5eb78a6d0b7bbfb40167a672d912b27062567 Mon Sep 17 00:00:00 2001 From: William Scanlon Date: Fri, 18 May 2018 09:42:43 -0400 Subject: [PATCH 32/39] Updated aREST switch doc for invert (#5377) * Updated aREST switch doc for invert * Updated to configuration block * :pencil2: Changed values of required configuration keys * :pencil2: Language tweak --- source/_components/switch.arest.markdown | 50 ++++++++++++++++++------ 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/source/_components/switch.arest.markdown b/source/_components/switch.arest.markdown index 603949d5c13..e0b63695371 100644 --- a/source/_components/switch.arest.markdown +++ b/source/_components/switch.arest.markdown @@ -13,7 +13,7 @@ ha_iot_class: "Local Polling" ha_release: 0.16 --- -The `arest` switch platform allows you to toggle pins of your devices (like Arduino boards with a Ethernet/Wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. +The `arest` switch platform allows you to toggle pins of your devices (like Arduino boards with an Ethernet/Wifi connection, ESP8266 based devices, and the Raspberry Pi) running the [aREST](http://arest.io/) RESTful framework. To use your aREST enabled device with pins in your installation, add the following to your `configuration.yaml` file: @@ -25,6 +25,9 @@ switch: pins: 11: name: Fan + 13: + name: Switch + invert: True ``` If you want to use custom functions, then add the following to your `configuration.yaml` file: @@ -39,18 +42,39 @@ switch: function1: name: Light Desk ``` - -Configuration variables: - -- **resource** (*Required*): IP address and schema of the device that is exposing an aREST API, eg. http://192.168.1.10 (no-trailing slash) -- **name** (*Optional*): Let you overwrite the name of the device. By default *name* from the device is used. -- **pins** array (*Optional*): An array with all used pins. - - **name** (*Required*): The name of the pin to use in the frontend. - -or - -- **functions** array (*Optional*): An array with all used functions. - - **name** (*Required*): The name to use in the frontend. +{% configuration %} +resource: + description: IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10 (no-trailing slash) + required: true + type: string +name: + description: Let you overwrite the name of the device. By default *name* from the device is used. + required: optional + type: string +pins: + description: An array with all used pins. + required: false + type: map + keys: + name: + description: The name of the pin to use in the frontend. + required: true + type: string + invert: + description: If the logic for on/off should be inverted. + required: false + type: boolean + default: false +functions: + description: An array with all used functions. + required: false + type: map + keys: + name: + description: The name to use in the frontend. + required: true + type: string +{% endconfiguration %} You can still switch your pins with a web browser or a command line tool. Use the URL http://192.168.1.10/digital/8/1 to set pin 8 to high/on, the JSON response will give you the feedback. From bd2428285596980ed53876f8270683161285d0e9 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 May 2018 16:15:48 +0200 Subject: [PATCH 33/39] Update documentation --- .../_components/sensor.transmission.markdown | 87 +++++++++++++------ 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown index e76da08026e..2fbbef26e8c 100644 --- a/source/_components/sensor.transmission.markdown +++ b/source/_components/sensor.transmission.markdown @@ -16,33 +16,7 @@ ha_iot_class: "Local Polling" The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. -To enable this sensor, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: transmission - host: IP_ADDRESS - monitored_variables: - - 'current_status' - - 'download_speed' - - 'upload_speed' - - 'active_torrents' -``` - -Configuration variables: - -- **host** (*Required*): This is the IP address of your Transmission daemon, eg. 192.168.1.32. -- **port** (*Optional*): The port your Transmission daemon uses, defaults to 9091. -- **name** (*Optional*): The name to use when displaying this Transmission instance. -- **username** (*Optional*): Your Transmission username, if you use authentication. -- **password** (*Optional*): Your Transmission password, if you use authentication. -- **monitored_variables** array (*Required*): Conditions to display in the frontend. - - **current_status**: The status of your Transmission daemon. - - **download_speed**: The current download speed. - - **upload_speed**: The current upload speed. - - **active_torrents**: The current number of active torrents. - +## {% linkable_title Setup %} To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. @@ -56,3 +30,62 @@ If everything is setup correctly, the details will show up in the frontend.

+## {% linkable_title Configuration %} + +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: transmission + host: IP_ADDRESS + monitored_variables: + - 'current_status' + - 'download_speed' + - 'upload_speed' + - 'active_torrents' + - 'paused_torrents' + - 'total_torrents' +``` + +{% configuration %} +host: + description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. + required: true + type: string +port: + description: The port your Transmission daemon uses. + required: false + type: int + default: 9091 +name: + description: The name to use when displaying this Transmission instance in the frontend. + required: false + type: string +username: + description: Your Transmission username, if you use authentication. + required: false + type: string +password: + description: Your Transmission password, if you use authentication. + required: false + type: string +monitored_variables: + description: Conditions to display in the frontend. + required: false + type: map + keys: + current_status: + description: The status of your Transmission daemon. + download_speed: + description: The current download speed. + upload_speed: + description: The current upload speed. + active_torrents: + description: The current number of active torrents. + paused_torrents: + description: The current number of paused torrents. + total_torrents: + description: The total number of torrents present in the client. +{% endconfiguration %} + From 9e825a6f44d9a6f6c6f2fb65e08006343e9d351f Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 18 May 2018 16:17:26 +0200 Subject: [PATCH 34/39] Revert "Update documentation" This reverts commit bd2428285596980ed53876f8270683161285d0e9. --- .../_components/sensor.transmission.markdown | 87 ++++++------------- 1 file changed, 27 insertions(+), 60 deletions(-) diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown index 2fbbef26e8c..e76da08026e 100644 --- a/source/_components/sensor.transmission.markdown +++ b/source/_components/sensor.transmission.markdown @@ -16,7 +16,33 @@ ha_iot_class: "Local Polling" The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information. -## {% linkable_title Setup %} +To enable this sensor, add the following lines to your `configuration.yaml`: + +```yaml +# Example configuration.yaml entry +sensor: + - platform: transmission + host: IP_ADDRESS + monitored_variables: + - 'current_status' + - 'download_speed' + - 'upload_speed' + - 'active_torrents' +``` + +Configuration variables: + +- **host** (*Required*): This is the IP address of your Transmission daemon, eg. 192.168.1.32. +- **port** (*Optional*): The port your Transmission daemon uses, defaults to 9091. +- **name** (*Optional*): The name to use when displaying this Transmission instance. +- **username** (*Optional*): Your Transmission username, if you use authentication. +- **password** (*Optional*): Your Transmission password, if you use authentication. +- **monitored_variables** array (*Required*): Conditions to display in the frontend. + - **current_status**: The status of your Transmission daemon. + - **download_speed**: The current download speed. + - **upload_speed**: The current upload speed. + - **active_torrents**: The current number of active torrents. + To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed. @@ -30,62 +56,3 @@ If everything is setup correctly, the details will show up in the frontend.

-## {% linkable_title Configuration %} - -To enable this sensor, add the following lines to your `configuration.yaml`: - -```yaml -# Example configuration.yaml entry -sensor: - - platform: transmission - host: IP_ADDRESS - monitored_variables: - - 'current_status' - - 'download_speed' - - 'upload_speed' - - 'active_torrents' - - 'paused_torrents' - - 'total_torrents' -``` - -{% configuration %} -host: - description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32. - required: true - type: string -port: - description: The port your Transmission daemon uses. - required: false - type: int - default: 9091 -name: - description: The name to use when displaying this Transmission instance in the frontend. - required: false - type: string -username: - description: Your Transmission username, if you use authentication. - required: false - type: string -password: - description: Your Transmission password, if you use authentication. - required: false - type: string -monitored_variables: - description: Conditions to display in the frontend. - required: false - type: map - keys: - current_status: - description: The status of your Transmission daemon. - download_speed: - description: The current download speed. - upload_speed: - description: The current upload speed. - active_torrents: - description: The current number of active torrents. - paused_torrents: - description: The current number of paused torrents. - total_torrents: - description: The total number of torrents present in the client. -{% endconfiguration %} - From d1b19b1fea14e61e5874a1d51e76671ae7da6400 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 18 May 2018 19:47:44 -0400 Subject: [PATCH 35/39] Draft release post 0.70 --- _config.yml | 8 +- source/_posts/2018-05-18-release-70.markdown | 390 +++++++++++++++++++ 2 files changed, 394 insertions(+), 4 deletions(-) create mode 100644 source/_posts/2018-05-18-release-70.markdown diff --git a/_config.yml b/_config.yml index 82cc130a69d..be76764511b 100644 --- a/_config.yml +++ b/_config.yml @@ -139,14 +139,14 @@ social: # Home Assistant release details current_major_version: 0 -current_minor_version: 69 -current_patch_version: 1 -date_released: 2018-05-12 +current_minor_version: 70 +current_patch_version: 0 +date_released: 2018-05-25 # 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-0691---may-12" +patch_version_notes: "#" # Minor release (Example #release-0431---april-25): # Date we moved to Discourse for comments diff --git a/source/_posts/2018-05-18-release-70.markdown b/source/_posts/2018-05-18-release-70.markdown new file mode 100644 index 00000000000..730ce2eb80a --- /dev/null +++ b/source/_posts/2018-05-18-release-70.markdown @@ -0,0 +1,390 @@ +--- +layout: post +title: "0.70: TBD - ALSO UPDATE DATE" +description: "TBD" +date: 2018-05-18 00:01:00 +date_formatted: "May 25, 2018" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Release-Notes +og_image: /images/blog/2018-05-0.70/components.png +--- + +
+ +This release includes a major overhaul of how our frontend is build (technical blog with more details coming soon). Please test in various browsers and let us know if you see any issues (that's why this is a beta release after all). + +## {% linkable_title New Platforms %} + +- Converted SABnzbd to a component ([@jeradM] - [#12915]) ([sabnzbd docs]) ([sensor.sabnzbd docs]) (breaking change) (new-platform) +- Add more homematicip cloud components ([@mxworm] - [#14084]) ([homematicip_cloud docs]) ([binary_sensor.homematicip_cloud docs]) ([light.homematicip_cloud docs]) ([switch.homematicip_cloud docs]) (new-platform) +- Adds facebox ([@robmarkcole] - [#14356]) ([image_processing.facebox docs]) (new-platform) +- Add SpaceAPI support ([@fabaff] - [#14204]) ([spaceapi docs]) (new-platform) +- Samsung Family hub camera component ([@Klathmon] - [#14458]) ([camera.familyhub docs]) (new-platform) +- Add Konnected component with support for discovery, binary sensor and switch ([@heythisisnate] - [#13670]) ([konnected docs]) ([binary_sensor.konnected docs]) ([switch.konnected docs]) (new-platform) +- New Sensor FinTS ([@ChristianKuehnel] - [#14334]) ([sensor.fints docs]) (new-platform) + +## {% linkable_title New Features %} + +- Allow HomeKit name to be customized ([@schmittx] - [#14159]) ([homekit docs]) (new-feature) +- Add HomeKit support for fans ([@schmittx] - [#14351]) ([homekit docs]) (new-feature) + +## {% linkable_title If you need help... %} + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. + +## {% linkable_title Reporting Issues %} + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template. + + +## {% linkable_title Breaking Changes %} + +- Converted SABnzbd to a component ([@jeradM] - [#12915]) ([sabnzbd docs]) ([sensor.sabnzbd docs]) (breaking change) (new-platform) +- Add sensors for BMW electric cars ([@gerard33] - [#14293]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (breaking change) +- Remove simplepush.io ([@c727] - [#14358]) ([notify docs]) (breaking change) +- Added temperature (apparent) high/low, deprecated max/min ([@nordlead2005] - [#12233]) ([sensor.darksky docs]) (breaking change) + +## {% linkable_title All changes %} + +- Add unique_id to MQTT switch ([@thepotoo] - [#13719]) ([switch.mqtt docs]) +- zha: Bump to zigpy 0.1.0 ([@rcloran] - [#14305]) ([zha docs]) +- Converted SABnzbd to a component ([@jeradM] - [#12915]) ([sabnzbd docs]) ([sensor.sabnzbd docs]) (breaking change) (new-platform) +- Adds unique ID to Roku for entity registry inclusion ([@bachya] - [#14325]) ([media_player.roku docs]) +- Update hitron_coda.py to fix login for Shaw modems ([@mikedm139] - [#14306]) ([device_tracker docs]) +- Add sensors for BMW electric cars ([@gerard33] - [#14293]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (breaking change) +- Add more homematicip cloud components ([@mxworm] - [#14084]) ([homematicip_cloud docs]) ([binary_sensor.homematicip_cloud docs]) ([light.homematicip_cloud docs]) ([switch.homematicip_cloud docs]) (new-platform) +- add 2 devices ([@m4dmin] - [#14321]) ([tahoma docs]) ([cover.tahoma docs]) +- Gogogate2 0.1.1 ([@dlbroadfoot] - [#14294]) ([cover.gogogate2 docs]) +- Snips: Added slot values for siteId and probability ([@tschmidty69] - [#14315]) ([snips docs]) +- Add help for conversation/process service ([@stephanerosi] - [#14323]) +- Fix BOM weather '-' value ([@nickw444] - [#14042]) ([sensor.bom docs]) ([weather.bom docs]) +- Make sure zwave nodes/entities enter the registry is proper state. ([@andrey-git] - [#14251]) ([zwave docs]) +- Improving icloud device tracker ([@evgeniy-khatko] - [#14078]) ([device_tracker docs]) +- Adds useful attributes to RainMachine programs and zones ([@bachya] - [#14087]) ([switch.rainmachine docs]) +- Waze Travel Time: optional inclusive/exclusive filters ([@diraimondo] - [#14000]) ([sensor.waze_travel_time docs]) +- Add zone 3 for Onkyo media player ([@snikch] - [#14295]) ([media_player.onkyo docs]) +- Support control of away mode and hold mode in Venstar component. Correctly detect humidifiers. ([@nkaminski] - [#14256]) ([climate.venstar docs]) +- Upgrade keyring to 12.2.0 and keyrings.alt to 3.1 ([@fabaff] - [#14355]) +- debug++ for multiple volume controls ([@rytilahti] - [#14349]) ([media_player.songpal docs]) +- Backend tweaks to make authorization work ([@balloob] - [#14339]) ([api docs]) ([auth docs]) ([frontend docs]) ([http docs]) ([websocket_api docs]) +- script/lint: Ensure there are files to test with pylint ([@cdce8p] - [#14363]) +- Update .coveragerc ([@pvizeli] - [#14368]) +- Fix binary_sensor async_update ([@damarco] - [#14376]) ([zha docs]) ([binary_sensor.zha docs]) +- Add local auth provider ([@balloob] - [#14365]) +- Update to sensibo 1.0.3 with better error reporting ([@andrey-git] - [#14380]) ([climate.sensibo docs]) +- Fix binary_sensor device_state_attributes ([@damarco] - [#14375]) ([binary_sensor.zha docs]) +- Add support for pressure sensors ([@damarco] - [#14361]) ([zha docs]) ([sensor.zha docs]) +- Add "framerate" parameter to generic camera ([@abmantis] - [#14079]) ([camera docs]) ([camera.generic docs]) +- Rewritten HomeKit tests ([@cdce8p] - [#14377]) ([homekit docs]) +- Update sensor state before adding device ([@damarco] - [#14357]) ([sensor.zha docs]) +- Make mysensors component async ([@MartinHjelmare] - [#13641]) ([mysensors docs]) ([notify docs]) ([climate.mysensors docs]) ([cover.mysensors docs]) ([light.mysensors docs]) ([switch.mysensors docs]) +- Adds facebox ([@robmarkcole] - [#14356]) ([image_processing.facebox docs]) (new-platform) +- more detailed error message ([@exxamalte] - [#14385]) ([sensor.rest docs]) +- Allow HomeKit name to be customized ([@schmittx] - [#14159]) ([homekit docs]) (new-feature) +- Xiaomi Aqara: Add new cube model (sensor_cube.aqgl01) ([@syssi] - [#14393]) ([binary_sensor.xiaomi_aqara docs]) +- Bump pycmus version ([@mtreinish] - [#14395]) ([media_player.cmus docs]) +- Fix name of tox pylint env ([@MartinHjelmare] - [#14402]) +- Use None as initial state in zha component ([@damarco] - [#14389]) ([sensor.zha docs]) +- Bump PyXiaomiGateway version ([@syssi] - [#14412]) ([xiaomi_aqara docs]) +- Homekit test cleanup ([@cdce8p] - [#14416]) ([homekit docs]) +- Update pylint to 1.8.4 ([@scop] - [#14421]) +- Bring back typing check. Meanwhile just for homeassistant/*.py ([@andrey-git] - [#14410]) +- Look at registry before pulling zwave config values ([@andrey-git] - [#14408]) ([zwave docs]) +- Add Bulgarian to Google TTS ([@Chariyski] - [#14422]) ([tts docs]) +- Remove extra quotes from docstrings ([@scop] - [#14431]) ([folder_watcher docs]) ([sensor.sigfox docs]) ([sensor.simulated docs]) +- Spelling, grammar etc fixes ([@scop] - [#14432]) ([hassio docs]) ([homekit docs]) ([media_player.yamaha docs]) ([sensor.buienradar docs]) ([sensor.hive docs]) ([sensor.statistics docs]) ([switch.tahoma docs]) +- Invoke pytest instead of py.test per upstream recommendation, #dropthedot ([@scop] - [#14434]) +- Fix fan service description ([@cdce8p] - [#14423]) +- Clean up some Python 3.4 remnants ([@scop] - [#14433]) ([system_log docs]) +- Remove universal wheel setting ([@MartinHjelmare] - [#14445]) +- Upgrade requests_mock to 1.5 ([@fabaff] - [#14444]) +- Upgrade pyota to 2.0.5 ([@fabaff] - [#14442]) ([iota docs]) ([sensor.iota docs]) +- Upgrade python-telegram-bot to 10.1.0 ([@fabaff] - [#14441]) ([telegram_bot docs]) +- Upgrade Sphinx to 1.7.4 ([@fabaff] - [#14439]) +- Upgrade youtube_dl to 2018.05.09 ([@fabaff] - [#14438]) ([media_extractor docs]) +- Upgrade distro to 1.3.0 ([@fabaff] - [#14436]) ([updater docs]) +- Add priority and cycles to LaMetric ([@PhilRW] - [#14414]) ([notify docs]) +- Allow qwikswitch sensors as part of devices ([@kellerza] - [#14454]) ([qwikswitch docs]) +- Bump requirement to pydeconz v38 ([@Kane610] - [#14452]) ([deconz docs]) +- Add SpaceAPI support ([@fabaff] - [#14204]) ([spaceapi docs]) (new-platform) +- Use ATTR_NAME from const.py ([@fabaff] - [#14450]) +- zha: Fix cluster class check in single-cluster device type ([@rcloran] - [#14303]) ([zha docs]) +- Upgrade pygatt to 3.2.0 ([@fabaff] - [#14447]) ([sensor.skybeacon docs]) +- Add support for direction to fan template ([@schmittx] - [#14371]) ([fan.template docs]) +- Samsung Family hub camera component ([@Klathmon] - [#14458]) ([camera.familyhub docs]) (new-platform) +- Fix key error upon missing node ([@MartinHjelmare] - [#14460]) ([mysensors docs]) +- Bump lakeside version ([@mjg59] - [#14471]) ([eufy docs]) +- Minor Wink fixes ([@w1ll1am23] - [#14468]) ([climate.wink docs]) ([light.wink docs]) +- Don't poll the Samsung Family hub camera ([@syssi] - [#14473]) ([camera.familyhub docs]) +- Optimistic MQTT light ([@dgomes] - [#14401]) ([light.mqtt docs]) +- Remove simplepush.io ([@c727] - [#14358]) ([notify docs]) (breaking change) +- Add Konnected component with support for discovery, binary sensor and switch ([@heythisisnate] - [#13670]) ([konnected docs]) ([binary_sensor.konnected docs]) ([switch.konnected docs]) (new-platform) +- Make Feedreader component more extendable ([@exxamalte] - [#14342]) ([feedreader docs]) +- BMW code cleanup ([@gerard33] - [#14424]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) +- Don't add a url to built-in panels ([@balloob] - [#14456]) ([frontend docs]) +- Added temperature (apparent) high/low, deprecated max/min ([@nordlead2005] - [#12233]) ([sensor.darksky docs]) (breaking change) +- Improve handling of offline Sonos devices ([@amelchio] - [#14479]) ([media_player.sonos docs]) +- "unavailable" Media players should be considered off in Universal player ([@OverloadUT] - [#14466]) ([media_player.universal docs]) +- Added option to invert aREST pin switch logic for active low relays ([@w1ll1am23] - [#14467]) ([switch.arest docs]) +- Use "Returns" consistently to avoid being treated as section ([@scop] - [#14448]) +- Add HomeKit support for fans ([@schmittx] - [#14351]) ([homekit docs]) (new-feature) +- Add stdout and stderr to debug output for shell_command ([@n8henrie] - [#14465]) ([shell_command docs]) +- New Sensor FinTS ([@ChristianKuehnel] - [#14334]) ([sensor.fints docs]) (new-platform) +- Update hitron_coda.py ([@mikedm139] - [#14506]) ([device_tracker docs]) +- Konnected component follow up ([@heythisisnate] - [#14491]) ([konnected docs]) +- Adjust LimitlessLED properties for running effects ([@amelchio] - [#14481]) ([light.limitlessled docs]) +- Bump locationsharinglib to 2.0.2 ([@thelittlefireman] - [#14359]) ([device_tracker docs]) +- Update frontend to 20180518.0 ([@balloob] - [#14510]) ([frontend docs]) +- Feedreader configurable update interval and max entries ([@exxamalte] - [#14487]) ([feedreader docs]) +- Flux bug fix ([@oblogic7] - [#14476]) ([light.flux_led docs]) ([switch.flux docs]) +- Show warning if no locations are shared (fixes #14177) ([@fabaff] - [#14511]) ([device_tracker docs]) +- Add code to HomeKit lock ([@cdce8p] - [#14524]) ([homekit docs]) +- Set pytz to >=2018.04 ([@fabaff] - [#14520]) +- Add Homematic IP RotaryHandleSensor support ([@hanzoh] - [#14522]) ([homematic docs]) +- Update HAP-python to 2.1.0 ([@cdce8p] - [#14528]) ([homekit docs]) +- Fix some ISY sensors not getting detected as binary sensors ([@OverloadUT] - [#14497]) ([isy994 docs]) +- Update mychevy to 0.4.0 ([@sdague] - [#14372]) ([mychevy docs]) ([binary_sensor.mychevy docs]) ([sensor.mychevy docs]) +- Set certifi to >=2018.04.16 ([@fabaff] - [#14536]) + +[#12233]: https://github.com/home-assistant/home-assistant/pull/12233 +[#12915]: https://github.com/home-assistant/home-assistant/pull/12915 +[#13641]: https://github.com/home-assistant/home-assistant/pull/13641 +[#13670]: https://github.com/home-assistant/home-assistant/pull/13670 +[#13719]: https://github.com/home-assistant/home-assistant/pull/13719 +[#14000]: https://github.com/home-assistant/home-assistant/pull/14000 +[#14042]: https://github.com/home-assistant/home-assistant/pull/14042 +[#14078]: https://github.com/home-assistant/home-assistant/pull/14078 +[#14079]: https://github.com/home-assistant/home-assistant/pull/14079 +[#14084]: https://github.com/home-assistant/home-assistant/pull/14084 +[#14087]: https://github.com/home-assistant/home-assistant/pull/14087 +[#14159]: https://github.com/home-assistant/home-assistant/pull/14159 +[#14204]: https://github.com/home-assistant/home-assistant/pull/14204 +[#14251]: https://github.com/home-assistant/home-assistant/pull/14251 +[#14256]: https://github.com/home-assistant/home-assistant/pull/14256 +[#14293]: https://github.com/home-assistant/home-assistant/pull/14293 +[#14294]: https://github.com/home-assistant/home-assistant/pull/14294 +[#14295]: https://github.com/home-assistant/home-assistant/pull/14295 +[#14303]: https://github.com/home-assistant/home-assistant/pull/14303 +[#14305]: https://github.com/home-assistant/home-assistant/pull/14305 +[#14306]: https://github.com/home-assistant/home-assistant/pull/14306 +[#14315]: https://github.com/home-assistant/home-assistant/pull/14315 +[#14321]: https://github.com/home-assistant/home-assistant/pull/14321 +[#14323]: https://github.com/home-assistant/home-assistant/pull/14323 +[#14325]: https://github.com/home-assistant/home-assistant/pull/14325 +[#14334]: https://github.com/home-assistant/home-assistant/pull/14334 +[#14339]: https://github.com/home-assistant/home-assistant/pull/14339 +[#14342]: https://github.com/home-assistant/home-assistant/pull/14342 +[#14349]: https://github.com/home-assistant/home-assistant/pull/14349 +[#14351]: https://github.com/home-assistant/home-assistant/pull/14351 +[#14355]: https://github.com/home-assistant/home-assistant/pull/14355 +[#14356]: https://github.com/home-assistant/home-assistant/pull/14356 +[#14357]: https://github.com/home-assistant/home-assistant/pull/14357 +[#14358]: https://github.com/home-assistant/home-assistant/pull/14358 +[#14359]: https://github.com/home-assistant/home-assistant/pull/14359 +[#14361]: https://github.com/home-assistant/home-assistant/pull/14361 +[#14363]: https://github.com/home-assistant/home-assistant/pull/14363 +[#14365]: https://github.com/home-assistant/home-assistant/pull/14365 +[#14368]: https://github.com/home-assistant/home-assistant/pull/14368 +[#14371]: https://github.com/home-assistant/home-assistant/pull/14371 +[#14372]: https://github.com/home-assistant/home-assistant/pull/14372 +[#14375]: https://github.com/home-assistant/home-assistant/pull/14375 +[#14376]: https://github.com/home-assistant/home-assistant/pull/14376 +[#14377]: https://github.com/home-assistant/home-assistant/pull/14377 +[#14380]: https://github.com/home-assistant/home-assistant/pull/14380 +[#14385]: https://github.com/home-assistant/home-assistant/pull/14385 +[#14389]: https://github.com/home-assistant/home-assistant/pull/14389 +[#14393]: https://github.com/home-assistant/home-assistant/pull/14393 +[#14395]: https://github.com/home-assistant/home-assistant/pull/14395 +[#14401]: https://github.com/home-assistant/home-assistant/pull/14401 +[#14402]: https://github.com/home-assistant/home-assistant/pull/14402 +[#14408]: https://github.com/home-assistant/home-assistant/pull/14408 +[#14410]: https://github.com/home-assistant/home-assistant/pull/14410 +[#14412]: https://github.com/home-assistant/home-assistant/pull/14412 +[#14414]: https://github.com/home-assistant/home-assistant/pull/14414 +[#14416]: https://github.com/home-assistant/home-assistant/pull/14416 +[#14421]: https://github.com/home-assistant/home-assistant/pull/14421 +[#14422]: https://github.com/home-assistant/home-assistant/pull/14422 +[#14423]: https://github.com/home-assistant/home-assistant/pull/14423 +[#14424]: https://github.com/home-assistant/home-assistant/pull/14424 +[#14431]: https://github.com/home-assistant/home-assistant/pull/14431 +[#14432]: https://github.com/home-assistant/home-assistant/pull/14432 +[#14433]: https://github.com/home-assistant/home-assistant/pull/14433 +[#14434]: https://github.com/home-assistant/home-assistant/pull/14434 +[#14436]: https://github.com/home-assistant/home-assistant/pull/14436 +[#14438]: https://github.com/home-assistant/home-assistant/pull/14438 +[#14439]: https://github.com/home-assistant/home-assistant/pull/14439 +[#14441]: https://github.com/home-assistant/home-assistant/pull/14441 +[#14442]: https://github.com/home-assistant/home-assistant/pull/14442 +[#14444]: https://github.com/home-assistant/home-assistant/pull/14444 +[#14445]: https://github.com/home-assistant/home-assistant/pull/14445 +[#14447]: https://github.com/home-assistant/home-assistant/pull/14447 +[#14448]: https://github.com/home-assistant/home-assistant/pull/14448 +[#14450]: https://github.com/home-assistant/home-assistant/pull/14450 +[#14452]: https://github.com/home-assistant/home-assistant/pull/14452 +[#14454]: https://github.com/home-assistant/home-assistant/pull/14454 +[#14456]: https://github.com/home-assistant/home-assistant/pull/14456 +[#14458]: https://github.com/home-assistant/home-assistant/pull/14458 +[#14460]: https://github.com/home-assistant/home-assistant/pull/14460 +[#14465]: https://github.com/home-assistant/home-assistant/pull/14465 +[#14466]: https://github.com/home-assistant/home-assistant/pull/14466 +[#14467]: https://github.com/home-assistant/home-assistant/pull/14467 +[#14468]: https://github.com/home-assistant/home-assistant/pull/14468 +[#14471]: https://github.com/home-assistant/home-assistant/pull/14471 +[#14473]: https://github.com/home-assistant/home-assistant/pull/14473 +[#14476]: https://github.com/home-assistant/home-assistant/pull/14476 +[#14479]: https://github.com/home-assistant/home-assistant/pull/14479 +[#14481]: https://github.com/home-assistant/home-assistant/pull/14481 +[#14487]: https://github.com/home-assistant/home-assistant/pull/14487 +[#14491]: https://github.com/home-assistant/home-assistant/pull/14491 +[#14497]: https://github.com/home-assistant/home-assistant/pull/14497 +[#14506]: https://github.com/home-assistant/home-assistant/pull/14506 +[#14510]: https://github.com/home-assistant/home-assistant/pull/14510 +[#14511]: https://github.com/home-assistant/home-assistant/pull/14511 +[#14520]: https://github.com/home-assistant/home-assistant/pull/14520 +[#14522]: https://github.com/home-assistant/home-assistant/pull/14522 +[#14524]: https://github.com/home-assistant/home-assistant/pull/14524 +[#14528]: https://github.com/home-assistant/home-assistant/pull/14528 +[#14536]: https://github.com/home-assistant/home-assistant/pull/14536 +[@Chariyski]: https://github.com/Chariyski +[@ChristianKuehnel]: https://github.com/ChristianKuehnel +[@Kane610]: https://github.com/Kane610 +[@Klathmon]: https://github.com/Klathmon +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@OverloadUT]: https://github.com/OverloadUT +[@PhilRW]: https://github.com/PhilRW +[@abmantis]: https://github.com/abmantis +[@amelchio]: https://github.com/amelchio +[@andrey-git]: https://github.com/andrey-git +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@c727]: https://github.com/c727 +[@cdce8p]: https://github.com/cdce8p +[@damarco]: https://github.com/damarco +[@dgomes]: https://github.com/dgomes +[@diraimondo]: https://github.com/diraimondo +[@dlbroadfoot]: https://github.com/dlbroadfoot +[@evgeniy-khatko]: https://github.com/evgeniy-khatko +[@exxamalte]: https://github.com/exxamalte +[@fabaff]: https://github.com/fabaff +[@gerard33]: https://github.com/gerard33 +[@hanzoh]: https://github.com/hanzoh +[@heythisisnate]: https://github.com/heythisisnate +[@jeradM]: https://github.com/jeradM +[@kellerza]: https://github.com/kellerza +[@m4dmin]: https://github.com/m4dmin +[@mikedm139]: https://github.com/mikedm139 +[@mjg59]: https://github.com/mjg59 +[@mtreinish]: https://github.com/mtreinish +[@mxworm]: https://github.com/mxworm +[@n8henrie]: https://github.com/n8henrie +[@nickw444]: https://github.com/nickw444 +[@nkaminski]: https://github.com/nkaminski +[@nordlead2005]: https://github.com/nordlead2005 +[@oblogic7]: https://github.com/oblogic7 +[@pvizeli]: https://github.com/pvizeli +[@rcloran]: https://github.com/rcloran +[@robmarkcole]: https://github.com/robmarkcole +[@rytilahti]: https://github.com/rytilahti +[@schmittx]: https://github.com/schmittx +[@scop]: https://github.com/scop +[@sdague]: https://github.com/sdague +[@snikch]: https://github.com/snikch +[@stephanerosi]: https://github.com/stephanerosi +[@syssi]: https://github.com/syssi +[@thelittlefireman]: https://github.com/thelittlefireman +[@thepotoo]: https://github.com/thepotoo +[@tschmidty69]: https://github.com/tschmidty69 +[@w1ll1am23]: https://github.com/w1ll1am23 +[api docs]: /components/api/ +[auth docs]: /components/auth/ +[binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ +[binary_sensor.homematicip_cloud docs]: /components/binary_sensor.homematicip_cloud/ +[binary_sensor.konnected docs]: /components/binary_sensor.konnected/ +[binary_sensor.mychevy docs]: /components/binary_sensor.mychevy/ +[binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ +[binary_sensor.zha docs]: /components/binary_sensor.zha/ +[bmw_connected_drive docs]: /components/bmw_connected_drive/ +[camera docs]: /components/camera/ +[camera.familyhub docs]: /components/camera.familyhub/ +[camera.generic docs]: /components/camera.generic/ +[climate.mysensors docs]: /components/climate.mysensors/ +[climate.sensibo docs]: /components/climate.sensibo/ +[climate.venstar docs]: /components/climate.venstar/ +[climate.wink docs]: /components/climate.wink/ +[cover.gogogate2 docs]: /components/cover.gogogate2/ +[cover.mysensors docs]: /components/cover.mysensors/ +[cover.tahoma docs]: /components/cover.tahoma/ +[deconz docs]: /components/deconz/ +[device_tracker docs]: /components/device_tracker/ +[eufy docs]: /components/eufy/ +[fan.template docs]: /components/fan.template/ +[feedreader docs]: /components/feedreader/ +[folder_watcher docs]: /components/folder_watcher/ +[frontend docs]: /components/frontend/ +[hassio docs]: /components/hassio/ +[homekit docs]: /components/homekit/ +[homematic docs]: /components/homematic/ +[homematicip_cloud docs]: /components/homematicip_cloud/ +[http docs]: /components/http/ +[image_processing.facebox docs]: /components/image_processing.facebox/ +[iota docs]: /components/iota/ +[isy994 docs]: /components/isy994/ +[konnected docs]: /components/konnected/ +[light.flux_led docs]: /components/light.flux_led/ +[light.homematicip_cloud docs]: /components/light.homematicip_cloud/ +[light.limitlessled docs]: /components/light.limitlessled/ +[light.mqtt docs]: /components/light.mqtt/ +[light.mysensors docs]: /components/light.mysensors/ +[light.wink docs]: /components/light.wink/ +[media_extractor docs]: /components/media_extractor/ +[media_player.cmus docs]: /components/media_player.cmus/ +[media_player.onkyo docs]: /components/media_player.onkyo/ +[media_player.roku docs]: /components/media_player.roku/ +[media_player.songpal docs]: /components/media_player.songpal/ +[media_player.sonos docs]: /components/media_player.sonos/ +[media_player.universal docs]: /components/media_player.universal/ +[media_player.yamaha docs]: /components/media_player.yamaha/ +[mychevy docs]: /components/mychevy/ +[mysensors docs]: /components/mysensors/ +[notify docs]: /components/notify/ +[qwikswitch docs]: /components/qwikswitch/ +[sabnzbd docs]: /components/sabnzbd/ +[sensor.bmw_connected_drive docs]: /components/sensor.bmw_connected_drive/ +[sensor.bom docs]: /components/sensor.bom/ +[sensor.buienradar docs]: /components/sensor.buienradar/ +[sensor.darksky docs]: /components/sensor.darksky/ +[sensor.fints docs]: /components/sensor.fints/ +[sensor.hive docs]: /components/sensor.hive/ +[sensor.iota docs]: /components/sensor.iota/ +[sensor.mychevy docs]: /components/sensor.mychevy/ +[sensor.rest docs]: /components/sensor.rest/ +[sensor.sabnzbd docs]: /components/sensor.sabnzbd/ +[sensor.sigfox docs]: /components/sensor.sigfox/ +[sensor.simulated docs]: /components/sensor.simulated/ +[sensor.skybeacon docs]: /components/sensor.skybeacon/ +[sensor.statistics docs]: /components/sensor.statistics/ +[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/ +[sensor.zha docs]: /components/sensor.zha/ +[shell_command docs]: /components/shell_command/ +[snips docs]: /components/snips/ +[spaceapi docs]: /components/spaceapi/ +[switch.arest docs]: /components/switch.arest/ +[switch.flux docs]: /components/switch.flux/ +[switch.homematicip_cloud docs]: /components/switch.homematicip_cloud/ +[switch.konnected docs]: /components/switch.konnected/ +[switch.mqtt docs]: /components/switch.mqtt/ +[switch.mysensors docs]: /components/switch.mysensors/ +[switch.rainmachine docs]: /components/switch.rainmachine/ +[switch.tahoma docs]: /components/switch.tahoma/ +[system_log docs]: /components/system_log/ +[tahoma docs]: /components/tahoma/ +[telegram_bot docs]: /components/telegram_bot/ +[tts docs]: /components/tts/ +[updater docs]: /components/updater/ +[weather.bom docs]: /components/weather.bom/ +[websocket_api docs]: /components/websocket_api/ +[xiaomi_aqara docs]: /components/xiaomi_aqara/ +[zha docs]: /components/zha/ +[zwave docs]: /components/zwave/ From 4ba6acbbd45133a981e7be9b8679c5043e0e57f6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 19 May 2018 10:12:00 -0400 Subject: [PATCH 36/39] Add link to how to upgrade to it --- source/_posts/2018-05-18-release-70.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_posts/2018-05-18-release-70.markdown b/source/_posts/2018-05-18-release-70.markdown index 730ce2eb80a..73963be9356 100644 --- a/source/_posts/2018-05-18-release-70.markdown +++ b/source/_posts/2018-05-18-release-70.markdown @@ -11,6 +11,8 @@ categories: Release-Notes og_image: /images/blog/2018-05-0.70/components.png --- +

Instructions on how to upgrade to the RC release can be found [here](https://www.home-assistant.io/blog/2018/03/24/new-release-schedule/).

+ This release includes a major overhaul of how our frontend is build (technical blog with more details coming soon). Please test in various browsers and let us know if you see any issues (that's why this is a beta release after all). From b574951f727696880326b4658a7bc6fdd193ec5b Mon Sep 17 00:00:00 2001 From: cdce8p <30130371+cdce8p@users.noreply.github.com> Date: Sun, 20 May 2018 00:10:59 +0200 Subject: [PATCH 37/39] Added HomeKit lock pin option (#5400) --- source/_components/homekit.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown index 162ac3b10b9..30ffd8692bc 100644 --- a/source/_components/homekit.markdown +++ b/source/_components/homekit.markdown @@ -91,10 +91,10 @@ homekit: required: false type: string code: - description: Code to arm or disarm the alarm in the frontend. Only applicable for `alarm_control_panel` entities. + description: Code to `arm / disarm` an alarm or `lock / unlock` a lock. Only applicable for `alarm_control_panel` or `lock` entities. required: false type: string - default: '' + default: '``' {% endconfiguration %}

From 5e3d83e97b3cc973830a29c6844126f85a3748e9 Mon Sep 17 00:00:00 2001 From: Mattias Welponer Date: Sun, 27 May 2018 23:31:26 +0200 Subject: [PATCH 38/39] Update homematicip cloud components (#5248) * Rename homematicip to homematicip_cloud * Fix homematicip_cloud naming * Update link and formating * Update of configuration and new componets for homematicip_cloud * Update binary_sensor.homematicip_cloud.markdown * Update light.homematicip_cloud.markdown * Update switch.homematicip_cloud.markdown --- .../binary_sensor.homematicip_cloud.markdown | 21 +++++++++++++++++++ source/_components/homematicip_cloud.markdown | 7 ++++--- .../light.homematicip_cloud.markdown | 21 +++++++++++++++++++ .../sensor.homematicip_cloud.markdown | 2 +- .../switch.homematicip_cloud.markdown | 21 +++++++++++++++++++ 5 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 source/_components/binary_sensor.homematicip_cloud.markdown create mode 100644 source/_components/light.homematicip_cloud.markdown create mode 100644 source/_components/switch.homematicip_cloud.markdown diff --git a/source/_components/binary_sensor.homematicip_cloud.markdown b/source/_components/binary_sensor.homematicip_cloud.markdown new file mode 100644 index 00000000000..ffec7b701ce --- /dev/null +++ b/source/_components/binary_sensor.homematicip_cloud.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "HomematicIP Cloud Binary Sensor" +description: "Instructions on how to integrate HomematicIP binary sensors within Home Assistant." +date: 2018-04-02 13:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Binary Sensor +ha_release: 0.66 +ha_iot_class: "Local Push" +--- + +The `homematicip_cloud` binary_switch platform allows you to control +[HomematicIP](http://www.homematic-ip.com) binary sensors through Home Assistant. + +Devices will be configured automatically. Please refer to the +[component](/components/homematicip_cloud/) configuration on how to setup +HomematicIP Cloud. diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown index c2f5320aa7d..19134916b4f 100644 --- a/source/_components/homematicip_cloud.markdown +++ b/source/_components/homematicip_cloud.markdown @@ -24,12 +24,13 @@ generate_auth_token.py ``` - add the information to your `configuration.yaml` file: - ```yaml homematicip_cloud: - - name: NAME - accesspoint: IDENTIFIER + - accesspoint: IDENTIFIER authtoken: AUTHTOKEN + - name: Location2 + accesspoint: IDENTIFIER2 + authtoken: AUTHTOKEN2 ``` Configuration variables (global): diff --git a/source/_components/light.homematicip_cloud.markdown b/source/_components/light.homematicip_cloud.markdown new file mode 100644 index 00000000000..5ebe9bd823b --- /dev/null +++ b/source/_components/light.homematicip_cloud.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "HomematicIP Cloud Light" +description: "Instructions on how to integrate HomematicIP light switches within Home Assistant." +date: 2018-04-02 13:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Switch +ha_release: 0.66 +ha_iot_class: "Local Push" +--- + +The `homematicip_cloud` light platform allows you to control +[HomematicIP](http://www.homematic-ip.com) light switches through Home Assistant. + +Devices will be configured automatically. Please refer to the +[component](/components/homematicip_cloud/) configuration on how to setup +HomematicIP Cloud. diff --git a/source/_components/sensor.homematicip_cloud.markdown b/source/_components/sensor.homematicip_cloud.markdown index bfb84498909..7903bc55de0 100644 --- a/source/_components/sensor.homematicip_cloud.markdown +++ b/source/_components/sensor.homematicip_cloud.markdown @@ -1,7 +1,7 @@ --- layout: page title: "HomematicIP Cloud Sensor" -description: "Instructions on how to integrate HomematIP sensors within Home Assistant." +description: "Instructions on how to integrate HomematicIP sensors within Home Assistant." date: 2018-04-02 13:40 sidebar: true comments: false diff --git a/source/_components/switch.homematicip_cloud.markdown b/source/_components/switch.homematicip_cloud.markdown new file mode 100644 index 00000000000..d312102bf46 --- /dev/null +++ b/source/_components/switch.homematicip_cloud.markdown @@ -0,0 +1,21 @@ +--- +layout: page +title: "HomematicIP Cloud Switch" +description: "Instructions on how to integrate HomematicIP switches within Home Assistant." +date: 2018-04-02 13:40 +sidebar: true +comments: false +sharing: true +footer: true +logo: homematic.png +ha_category: Switch +ha_release: 0.66 +ha_iot_class: "Local Push" +--- + +The `homematicip_cloud` switch platform allows you to control +[HomematicIP](http://www.homematic-ip.com) switches through Home Assistant. + +Devices will be configured automatically. Please refer to the +[component](/components/homematicip_cloud/) configuration on how to setup +HomematicIP Cloud. From 8595afaebe38dd37176f77a7e7617aa47cfac193 Mon Sep 17 00:00:00 2001 From: Philip Rosenberg-Watt Date: Mon, 14 May 2018 15:39:14 -0600 Subject: [PATCH 39/39] Finish blog post --- _config.yml | 2 +- .../binary_sensor.homematicip_cloud.markdown | 2 +- .../binary_sensor.mychevy.markdown | 16 +++++ .../light.homematicip_cloud.markdown | 2 +- source/_components/sensor.mychevy.markdown | 16 +++++ .../switch.homematicip_cloud.markdown | 2 +- source/_posts/2018-05-18-release-70.markdown | 69 +++++++++++++++---- 7 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 source/_components/binary_sensor.mychevy.markdown create mode 100644 source/_components/sensor.mychevy.markdown diff --git a/_config.yml b/_config.yml index be76764511b..7b67eb4d830 100644 --- a/_config.yml +++ b/_config.yml @@ -141,7 +141,7 @@ social: current_major_version: 0 current_minor_version: 70 current_patch_version: 0 -date_released: 2018-05-25 +date_released: 2018-05-27 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_components/binary_sensor.homematicip_cloud.markdown b/source/_components/binary_sensor.homematicip_cloud.markdown index ffec7b701ce..e3c24a9c4a7 100644 --- a/source/_components/binary_sensor.homematicip_cloud.markdown +++ b/source/_components/binary_sensor.homematicip_cloud.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: homematic.png ha_category: Binary Sensor -ha_release: 0.66 +ha_release: 0.70 ha_iot_class: "Local Push" --- diff --git a/source/_components/binary_sensor.mychevy.markdown b/source/_components/binary_sensor.mychevy.markdown new file mode 100644 index 00000000000..8da9bb52d47 --- /dev/null +++ b/source/_components/binary_sensor.mychevy.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "MyChevy Binary Sensors" +description: "Instructions on how to integrate Chevy Bolt binary sensors car into Home Assistant." +date: 2017-08-28 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: chevy.png +ha_category: Binary Sensor +ha_release: 0.62 +ha_iot_class: "Cloud Polling" +--- + +For configuration instructions, see [main component config](/components/mychecvy/). diff --git a/source/_components/light.homematicip_cloud.markdown b/source/_components/light.homematicip_cloud.markdown index 5ebe9bd823b..f3c76cf01c8 100644 --- a/source/_components/light.homematicip_cloud.markdown +++ b/source/_components/light.homematicip_cloud.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: homematic.png ha_category: Switch -ha_release: 0.66 +ha_release: 0.70 ha_iot_class: "Local Push" --- diff --git a/source/_components/sensor.mychevy.markdown b/source/_components/sensor.mychevy.markdown new file mode 100644 index 00000000000..c31e7927c89 --- /dev/null +++ b/source/_components/sensor.mychevy.markdown @@ -0,0 +1,16 @@ +--- +layout: page +title: "MyChevy Sensors" +description: "Instructions on how to integrate Chevy Bolt sensors car into Home Assistant." +date: 2017-08-28 17:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: chevy.png +ha_category: Sensor +ha_release: 0.62 +ha_iot_class: "Cloud Polling" +--- + +For configuration instructions, see [main component config](/components/mychecvy/). diff --git a/source/_components/switch.homematicip_cloud.markdown b/source/_components/switch.homematicip_cloud.markdown index d312102bf46..b943caf6d0c 100644 --- a/source/_components/switch.homematicip_cloud.markdown +++ b/source/_components/switch.homematicip_cloud.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: homematic.png ha_category: Switch -ha_release: 0.66 +ha_release: 0.70 ha_iot_class: "Local Push" --- diff --git a/source/_posts/2018-05-18-release-70.markdown b/source/_posts/2018-05-18-release-70.markdown index 73963be9356..0c8550c4189 100644 --- a/source/_posts/2018-05-18-release-70.markdown +++ b/source/_posts/2018-05-18-release-70.markdown @@ -1,21 +1,24 @@ --- layout: post -title: "0.70: TBD - ALSO UPDATE DATE" -description: "TBD" -date: 2018-05-18 00:01:00 -date_formatted: "May 25, 2018" +title: "0.70: Facebox, SpaceAPI, Konnected Alarm System" +description: "Complete overhaul of our new frontend. " +date: 2018-05-27 00:01:00 +date_formatted: "May 27, 2018" author: Paulus Schoutsen author_twitter: balloob comments: true categories: Release-Notes -og_image: /images/blog/2018-05-0.70/components.png --- -

Instructions on how to upgrade to the RC release can be found [here](https://www.home-assistant.io/blog/2018/03/24/new-release-schedule/).

+It's time for release 0.70. It's a little later than expected because of a major overhaul of how our frontend is build. It should not have any impact on how the frontend looks or behaves. Thanks to all the people running the beta who helped test this. Right now it looks like Firefox is still having some issues running the Hass.io panel. We're working on releasing a fix for that soon. - +If you're using custom UI or Panels, some changes have been made. Make sure you run the latest version. More info on our [developer blog](https://developers.home-assistant.io/blog/2018/05/22/custom-ui-panels-api.html). -This release includes a major overhaul of how our frontend is build (technical blog with more details coming soon). Please test in various browsers and let us know if you see any issues (that's why this is a beta release after all). +Talking about our developer blog, this is a new blog with accompanying [Twitter account](https://twitter.com/hass_devs). This is part of our ongoing effort of splitting content and interaction for users and developers of Home Assistant. + +One cool new component in this release is [Konnected][konnected docs] ([product page](https://konnected.io/)). It allows you to connect your existing wired alarm systen and plug it … straigt into Home Assistant! + +Another cool one this release is [Facebox][image_processing.facebox docs]. It will allow you to do local face detection on your camera feeds. Can't wait to hear the cool things people will do with this. ## {% linkable_title New Platforms %} @@ -43,10 +46,27 @@ Experiencing issues introduced by this release? Please report them in our [issue ## {% linkable_title Breaking Changes %} -- Converted SABnzbd to a component ([@jeradM] - [#12915]) ([sabnzbd docs]) ([sensor.sabnzbd docs]) (breaking change) (new-platform) -- Add sensors for BMW electric cars ([@gerard33] - [#14293]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (breaking change) -- Remove simplepush.io ([@c727] - [#14358]) ([notify docs]) (breaking change) -- Added temperature (apparent) high/low, deprecated max/min ([@nordlead2005] - [#12233]) ([sensor.darksky docs]) (breaking change) +- Converted SABnzbd to a component. Set it up using the new config: + ```yaml + sabnzbd: + api_key: YOUR_SABNZBD_API_KEY + ``` + ([@jeradM] - [#12915]) ([sabnzbd docs]) ([sensor.sabnzbd docs]) (breaking change) (new-platform) +- For BMW electric cars: The current sensor `remaining_range_fuel` is replaced by `remaining_range_total` for cars with a combustion engine. ([@gerard33] - [#14293]) ([bmw_connected_drive docs]) ([binary_sensor.bmw_connected_drive docs]) ([sensor.bmw_connected_drive docs]) (breaking change) +- Removed simplepush.io becayse website is offline and apps are no longer available. ([@c727] - [#14358]) ([notify docs]) (breaking change) +- DarkSky sensor: Added temperature (apparent) high/low, deprecated max/min ([@nordlead2005] - [#12233]) ([sensor.darksky docs]) (breaking change) + +## {% linkable_title Beta Fixes %} + +- Wait for future mysensors gateway ready ([@MartinHjelmare] - [#14398]) ([mysensors docs]) (beta fix) +- Homekit style cleanup ([@cdce8p] - [#14556]) ([homekit docs]) (beta fix) +- fix nanoleaf aurora lights min and max temperature ([@Oro] - [#14571]) ([light.nanoleaf_aurora docs]) (beta fix) +- Fix ISY moisure sensors showing unknown until a leak is detected ([@OverloadUT] - [#14496]) ([binary_sensor.isy994 docs]) (beta fix) +- Bump insteonplm version to fix device hanging ([@teharris1] - [#14582]) ([insteon_plm docs]) (beta fix) +- Fix hue discovery popping up ([@balloob] - [#14614]) (beta fix) +- Use libsodium18 ([@balloob] - [#14624]) (beta fix) +- No longer use backports for ffmpeg ([@balloob] - [#14626]) (beta fix) +- Allow Hass.io panel dir ([@balloob] - [#14655]) ([hassio docs]) (beta fix) ## {% linkable_title All changes %} @@ -70,7 +90,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - Support control of away mode and hold mode in Venstar component. Correctly detect humidifiers. ([@nkaminski] - [#14256]) ([climate.venstar docs]) - Upgrade keyring to 12.2.0 and keyrings.alt to 3.1 ([@fabaff] - [#14355]) - debug++ for multiple volume controls ([@rytilahti] - [#14349]) ([media_player.songpal docs]) -- Backend tweaks to make authorization work ([@balloob] - [#14339]) ([api docs]) ([auth docs]) ([frontend docs]) ([http docs]) ([websocket_api docs]) +- Backend tweaks to make authorization work ([@balloob] - [#14339]) ([api docs]) ([frontend docs]) ([http docs]) ([websocket_api docs]) - script/lint: Ensure there are files to test with pylint ([@cdce8p] - [#14363]) - Update .coveragerc ([@pvizeli] - [#14368]) - Fix binary_sensor async_update ([@damarco] - [#14376]) ([zha docs]) ([binary_sensor.zha docs]) @@ -149,6 +169,15 @@ Experiencing issues introduced by this release? Please report them in our [issue - Fix some ISY sensors not getting detected as binary sensors ([@OverloadUT] - [#14497]) ([isy994 docs]) - Update mychevy to 0.4.0 ([@sdague] - [#14372]) ([mychevy docs]) ([binary_sensor.mychevy docs]) ([sensor.mychevy docs]) - Set certifi to >=2018.04.16 ([@fabaff] - [#14536]) +- Wait for future mysensors gateway ready ([@MartinHjelmare] - [#14398]) ([mysensors docs]) (beta fix) +- Homekit style cleanup ([@cdce8p] - [#14556]) ([homekit docs]) (beta fix) +- fix nanoleaf aurora lights min and max temperature ([@Oro] - [#14571]) ([light.nanoleaf_aurora docs]) (beta fix) +- Fix ISY moisure sensors showing unknown until a leak is detected ([@OverloadUT] - [#14496]) ([binary_sensor.isy994 docs]) (beta fix) +- Bump insteonplm version to fix device hanging ([@teharris1] - [#14582]) ([insteon_plm docs]) (beta fix) +- Fix hue discovery popping up ([@balloob] - [#14614]) (beta fix) +- Use libsodium18 ([@balloob] - [#14624]) (beta fix) +- No longer use backports for ffmpeg ([@balloob] - [#14626]) (beta fix) +- Allow Hass.io panel dir ([@balloob] - [#14655]) ([hassio docs]) (beta fix) [#12233]: https://github.com/home-assistant/home-assistant/pull/12233 [#12915]: https://github.com/home-assistant/home-assistant/pull/12915 @@ -199,6 +228,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#14389]: https://github.com/home-assistant/home-assistant/pull/14389 [#14393]: https://github.com/home-assistant/home-assistant/pull/14393 [#14395]: https://github.com/home-assistant/home-assistant/pull/14395 +[#14398]: https://github.com/home-assistant/home-assistant/pull/14398 [#14401]: https://github.com/home-assistant/home-assistant/pull/14401 [#14402]: https://github.com/home-assistant/home-assistant/pull/14402 [#14408]: https://github.com/home-assistant/home-assistant/pull/14408 @@ -240,6 +270,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [#14481]: https://github.com/home-assistant/home-assistant/pull/14481 [#14487]: https://github.com/home-assistant/home-assistant/pull/14487 [#14491]: https://github.com/home-assistant/home-assistant/pull/14491 +[#14496]: https://github.com/home-assistant/home-assistant/pull/14496 [#14497]: https://github.com/home-assistant/home-assistant/pull/14497 [#14506]: https://github.com/home-assistant/home-assistant/pull/14506 [#14510]: https://github.com/home-assistant/home-assistant/pull/14510 @@ -249,11 +280,19 @@ Experiencing issues introduced by this release? Please report them in our [issue [#14524]: https://github.com/home-assistant/home-assistant/pull/14524 [#14528]: https://github.com/home-assistant/home-assistant/pull/14528 [#14536]: https://github.com/home-assistant/home-assistant/pull/14536 +[#14556]: https://github.com/home-assistant/home-assistant/pull/14556 +[#14571]: https://github.com/home-assistant/home-assistant/pull/14571 +[#14582]: https://github.com/home-assistant/home-assistant/pull/14582 +[#14614]: https://github.com/home-assistant/home-assistant/pull/14614 +[#14624]: https://github.com/home-assistant/home-assistant/pull/14624 +[#14626]: https://github.com/home-assistant/home-assistant/pull/14626 +[#14655]: https://github.com/home-assistant/home-assistant/pull/14655 [@Chariyski]: https://github.com/Chariyski [@ChristianKuehnel]: https://github.com/ChristianKuehnel [@Kane610]: https://github.com/Kane610 [@Klathmon]: https://github.com/Klathmon [@MartinHjelmare]: https://github.com/MartinHjelmare +[@Oro]: https://github.com/Oro [@OverloadUT]: https://github.com/OverloadUT [@PhilRW]: https://github.com/PhilRW [@abmantis]: https://github.com/abmantis @@ -295,6 +334,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [@snikch]: https://github.com/snikch [@stephanerosi]: https://github.com/stephanerosi [@syssi]: https://github.com/syssi +[@teharris1]: https://github.com/teharris1 [@thelittlefireman]: https://github.com/thelittlefireman [@thepotoo]: https://github.com/thepotoo [@tschmidty69]: https://github.com/tschmidty69 @@ -303,6 +343,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [auth docs]: /components/auth/ [binary_sensor.bmw_connected_drive docs]: /components/binary_sensor.bmw_connected_drive/ [binary_sensor.homematicip_cloud docs]: /components/binary_sensor.homematicip_cloud/ +[binary_sensor.isy994 docs]: /components/binary_sensor.isy994/ [binary_sensor.konnected docs]: /components/binary_sensor.konnected/ [binary_sensor.mychevy docs]: /components/binary_sensor.mychevy/ [binary_sensor.xiaomi_aqara docs]: /components/binary_sensor.xiaomi_aqara/ @@ -331,6 +372,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [homematicip_cloud docs]: /components/homematicip_cloud/ [http docs]: /components/http/ [image_processing.facebox docs]: /components/image_processing.facebox/ +[insteon_plm docs]: /components/insteon_plm/ [iota docs]: /components/iota/ [isy994 docs]: /components/isy994/ [konnected docs]: /components/konnected/ @@ -339,6 +381,7 @@ Experiencing issues introduced by this release? Please report them in our [issue [light.limitlessled docs]: /components/light.limitlessled/ [light.mqtt docs]: /components/light.mqtt/ [light.mysensors docs]: /components/light.mysensors/ +[light.nanoleaf_aurora docs]: /components/light.nanoleaf_aurora/ [light.wink docs]: /components/light.wink/ [media_extractor docs]: /components/media_extractor/ [media_player.cmus docs]: /components/media_player.cmus/