From 2937ca5308e58aa9a20b5db528ea4c4de904105f Mon Sep 17 00:00:00 2001
From: Fredrik Lindqvist
Date: Sat, 26 Oct 2019 09:53:03 +0200
Subject: [PATCH 01/56] Removal of Hassbian from documentation (#10934)
* R.I.P Hassbian
* Restore device tracker to glosssay
* Remove space
---
source/_docs/authentication.markdown | 4 +-
source/_docs/ecosystem/appdaemon.markdown | 2 +-
.../certificates/lets_encrypt.markdown | 6 +-
.../tls_domain_certificate.markdown | 2 +-
source/_docs/ecosystem/hadashboard.markdown | 2 +-
source/_docs/installation.markdown | 1 -
source/_docs/installation/hassbian.markdown | 17 +--
.../hassbian/common-tasks.markdown | 135 ------------------
.../hassbian/customization.markdown | 55 -------
.../hassbian/installation.markdown | 126 ----------------
.../hassbian/integrations.markdown | 50 -------
.../installation/hassbian/upgrading.markdown | 32 -----
source/_docs/installation/updating.markdown | 4 +-
source/_docs/z-wave/device-specific.markdown | 2 -
source/_docs/z-wave/installation.markdown | 14 +-
source/_includes/asides/docs_navigation.html | 1 -
source/_integrations/dsmr.markdown | 12 --
.../_integrations/environment_canada.markdown | 12 +-
source/_integrations/ffmpeg.markdown | 3 +-
source/_integrations/hdmi_cec.markdown | 2 +-
source/_integrations/logger.markdown | 6 -
source/_integrations/modem_callerid.markdown | 6 +-
source/_integrations/nmap_tracker.markdown | 2 +-
source/_integrations/ps4.markdown | 1 -
source/_integrations/samsungtv.markdown | 9 --
source/_integrations/sensehat.markdown | 4 +-
source/_integrations/tensorflow.markdown | 2 +-
source/_integrations/totalconnect.markdown | 2 +-
source/_integrations/xiaomi.markdown | 2 +-
source/_integrations/yi.markdown | 2 +-
30 files changed, 35 insertions(+), 483 deletions(-)
delete mode 100644 source/_docs/installation/hassbian/common-tasks.markdown
delete mode 100644 source/_docs/installation/hassbian/customization.markdown
delete mode 100644 source/_docs/installation/hassbian/installation.markdown
delete mode 100644 source/_docs/installation/hassbian/integrations.markdown
delete mode 100644 source/_docs/installation/hassbian/upgrading.markdown
diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown
index e50261cee4c..be648d36981 100644
--- a/source/_docs/authentication.markdown
+++ b/source/_docs/authentication.markdown
@@ -97,12 +97,12 @@ This is because we only allow an IP address as a client ID when your IP address
If you don't have a valid domain name for your Home Assistant instance, you can modify the `hosts` file on your computer to fake one. On Windows, edit the `C:\Windows\System32\Drivers\etc\hosts` file with administrator privilege, or on Linux the `/etc/hosts` file, and add following entry:
```text
-12.34.56.78 hassbian.home
+12.34.56.78 homeassistant.home
```
Replace `12.34.56.78` with your Home Assistant's public IP address.
-This will allow you to open Home Assistant at `http://hassbian.home:8123/`
+This will allow you to open Home Assistant at `http://homeassistant.home:8123/`
### Stuck on Loading data
diff --git a/source/_docs/ecosystem/appdaemon.markdown b/source/_docs/ecosystem/appdaemon.markdown
index f4c05863a79..dff067d4042 100755
--- a/source/_docs/ecosystem/appdaemon.markdown
+++ b/source/_docs/ecosystem/appdaemon.markdown
@@ -101,4 +101,4 @@ Of course, if I wanted to make this App or its predecessor reusable, I would hav
In addition, Apps can write to `AppDaemon`'s log files, and there is a system of constraints that allows you to control when and under what circumstances Apps and callbacks are active to keep the logic clean and simple.
-For full installation instructions, see the [AppDaemon Project Documentation pages](http://appdaemon.readthedocs.io/en/stable/). If you're using Hassbian, then the [Hassbian scripts](https://github.com/home-assistant/hassbian-scripts/blob/dev/docs/suites/appdaemon.md) make it easy to install.
+For full installation instructions, see the [AppDaemon Project Documentation pages](http://appdaemon.readthedocs.io/en/stable/).
diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
index 67d777deb09..163ef2fe511 100644
--- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown
+++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
@@ -5,7 +5,7 @@ description: "A guide to remotely accessing Home Assistant and securing the conn
-If you are using Hass.io or Hassbian, do not use this guide. Instead, use the [DuckDNS add-on](/addons/duckdns/) for Hass.io or the [DuckDNS suite](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/duckdns.md) for Hassbian to automatically maintain a subdomain including HTTPS certificates via Let's Encrypt.
+If you are using Hass.io do not use this guide. Instead, use the [DuckDNS add-on](/addons/duckdns/) for Hass.io.
@@ -17,7 +17,7 @@ This guide was added by mf_social on 16/03/2017 and was valid at the time of wri
* You want to access your Home Assistant instance when you are away from home (ie, not connected to your local network) and secure it with a TLS/SSL certificate.
* You have a basic understanding of the phrases I have used so far.
* You are not currently running anything on port 80 on your network (you'd know if you were).
- * If you are not using Home Assistant on a Debian/Raspian/Hassbian system you will be able to convert any of the terminology I use in to the correct syntax for your system.
+ * If you are not using Home Assistant on a Debian/Raspian system you will be able to convert any of the terminology I use in to the correct syntax for your system.
* You understand that this is a 'guide' covering the general application of these things to the general masses and there are things outside of the scope of it, and it does not cover every eventuality (although I have made some notes where people may stumble). Also, I have used some turns of phrase to make it easier to understand for the novice reader which people of advanced knowledge may say is inaccurate. My goal here is to get you through this guide with a satisfactory outcome and have a decent understanding of what you are doing and why, not to teach you advanced internet communication protocols.
* Each step presumes you have fully completed the previous step successfully, so if you did an earlier step following a different guide, please ensure that you have not missed anything out that may affect the step you have jumped to, and ensure that you adapt any commands to take in to account different file placements from other guides.
@@ -266,7 +266,7 @@ wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
```
-You might need to stop Home Assistant before continuing with the next step. You can do this via the Web-UI or use the following command if you are running on Hassbian:
+You might need to stop Home Assistant before continuing with the next step. You can do this via the Web-UI or use the following command if you are running on Raspbian:
```text
sudo systemctl stop home-assistant@homeassistant.service
diff --git a/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown b/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown
index dfe03dd62d8..27563e1a3d7 100644
--- a/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown
+++ b/source/_docs/ecosystem/certificates/tls_domain_certificate.markdown
@@ -63,4 +63,4 @@ http:
ssl_key: /etc/letsencrypt/live/mydomain.com/privkey.pem
```
-Make sure the files are accessible by the user that runs Home Assistant, eg. `homeassistant` for a HASSbian setup.
+Make sure the files are accessible by the user that runs Home Assistant.
diff --git a/source/_docs/ecosystem/hadashboard.markdown b/source/_docs/ecosystem/hadashboard.markdown
index 1f01eb23fda..d0d28079e71 100755
--- a/source/_docs/ecosystem/hadashboard.markdown
+++ b/source/_docs/ecosystem/hadashboard.markdown
@@ -31,4 +31,4 @@ HADashboard is a modular, skinnable dashboard for [Home Assistant](/) that is in
Glassic Theme
-For full installation instructions see the HADashboard section in the [AppDaemon Project Documentation](http://appdaemon.readthedocs.io/en/stable/DASHBOARD_INSTALL.html). If you're using Hassbian, then the [Hassbian scripts](https://github.com/home-assistant/hassbian-scripts/blob/dev/docs/suites/appdaemon.md) make it easy to install AppDaemon.
+For full installation instructions see the HADashboard section in the [AppDaemon Project Documentation](http://appdaemon.readthedocs.io/en/stable/DASHBOARD_INSTALL.html).
\ No newline at end of file
diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown
index 14021f1d3b6..f4ff3b53970 100644
--- a/source/_docs/installation.markdown
+++ b/source/_docs/installation.markdown
@@ -49,7 +49,6 @@ These install options are fully supported by Home Assistant's documentation. For
:-----|:-----|:-----
[Hass.io](/hassio/installation/)|Raspberry Pi VM|Anybody
[Docker](/docs/installation/docker/)|Docker|Anybody already running Docker
-[Hassbian](/docs/hassbian/installation/)|Raspberry Pi|Those who want a more traditional Linux experience and either have experience with Linux, or intend to learn
## Alternative installs
diff --git a/source/_docs/installation/hassbian.markdown b/source/_docs/installation/hassbian.markdown
index 1b26f35791f..513f7fd32b4 100644
--- a/source/_docs/installation/hassbian.markdown
+++ b/source/_docs/installation/hassbian.markdown
@@ -1,21 +1,12 @@
---
title: "Hassbian"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
+description: "Hassbian image for a Raspberry Pi."
redirect_from: /getting-started/hassbian/
---
-Hassbian is our customized operating system for the Raspberry Pi Zero, 2,3 and 3B+. It is one of the easiest ways of installing Home Assistant.
- - [Install Hassbian](/docs/hassbian/installation/)
- - [Customize your installation](/docs/hassbian/customization/)
- - [Pi specific integrations](/docs/hassbian/integrations/)
- - [Learn how to perform common tasks](/docs/hassbian/common-tasks/)
+
-### Activating the virtual environment
+ The Hassbian image is deprecated as of October 2019. Please move to another [installation method](/getting-started/).
-When instructions tell you to activate the virtual environment to install a Python library, or perform some tasks, the following commands will do this:
-
-```bash
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-```
+
\ No newline at end of file
diff --git a/source/_docs/installation/hassbian/common-tasks.markdown b/source/_docs/installation/hassbian/common-tasks.markdown
deleted file mode 100644
index 304e12e17a4..00000000000
--- a/source/_docs/installation/hassbian/common-tasks.markdown
+++ /dev/null
@@ -1,135 +0,0 @@
----
-title: "Common tasks on Hassbian"
-description: "Instructions on how to do common tasks on Hassbian."
-redirect_from: /docs/hassbian/common-tasks/
----
-
-### Login to the Raspberry Pi
-
-To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Mac OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty].
-
-Connect to the Raspberry Pi over ssh. Default user name is `pi` and password is `raspberry`.
-Linux and Mac OS users execute the following command in a terminal.
-
-```bash
-ssh pi@ip-address-of-pi
-```
-
-Windows users start [Putty][ssh-putty], enter the IP address of the Raspberry Pi in the *Host name* field and port 22 in the *Port* field. Then click *Open* and a terminal window will open. Enter the credentials. Default user name is `pi` and password is `raspberry`.
-
-Optionally, starting with Windows 10 anniversary update, you can use the built-in '[Bash on Windows][bash-windows]' to use SSH if you have enabled Developer mode and have installed the "Windows Subsystem for Linux (beta)" feature.
-
-### Start/Stop/Restart Home Assistant
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo systemctl stop home-assistant@homeassistant.service
-```
-
-Replace `stop` with `start` or `restart` to get the desired functionality.
-To get the current state of the `homeassistant.service` replace `stop` with `status`.
-
-### Update Home Assistant
-
-
-
-You can use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade homeassistant`
-
-
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo systemctl stop home-assistant@homeassistant.service
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-pip3 install --upgrade homeassistant
-exit
-sudo systemctl start home-assistant@homeassistant.service
-```
-
-This will in order do the following:
-
-- Stop the Home Assistant service running on Hassbian
-- Open a shell as the `homeassistant` user running the Homeassistant service and that has ownership over the Home Assistant installation.
-- Change into the virtual Python environment at `/srv/homeassistant/` containing the Home Assistant installation.
-- Upgrade the Home Assistant installation to the latest release.
-- Exit the shell and return to the `pi` user.
-- Start the Home Assistant service.
-
-### Manually launch Home Assistant
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-hass
-```
-
-This will start Home Assistant in your shell and output anything that ends up in the log and more into the console. This will fail if the Home Assistant service is already running so don't forget to [stop][stop-homeassistant] it first. If you want the log output to be colored, execute `hass --script check_config` first. This will install the `colorlog` module.
-
-### Check your configuration
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-hass --script check_config
-```
-
-This will output any errors in your configuration files to console.
-
-### Read the Home Assistant log file
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo -u homeassistant -H -s
-cd /home/homeassistant/.homeassistant
-nano home-assistant.log
-```
-
-This will in order do the following:
-
-- Open a shell as the `homeassistant` user.
-- Change directory to the Home Assistant configuration directory.
-- Open the log file in the nano editor.
-
-Optionally, you can also view the log with `journalctl`.
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo journalctl -fu home-assistant@homeassistant.service
-```
-
-### Edit the Home Assistant configuration
-
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo -u homeassistant -H -s
-cd /home/homeassistant/.homeassistant
-nano configuration.yaml
-```
-
-This will in order do the following:
-
-- Open a shell as the `homeassistant` user.
-- Change directory to the Home Assistant configuration directory.
-- Open the configuration file in the nano editor.
-
-It's generally recommended that you read the [Getting started][configuring-homeassistant] guide for how to configure Home Assistant.
-
-### Change locale, timezone and keyboard layout
-
-```bash
-sudo raspi-config
-```
-
-[configuring-homeassistant]: /getting-started/configuration/
-[ssh-putty]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
-[stop-homeassistant]: /docs/installation/hassbian/common-tasks/#startstoprestart-home-assistant
-[bash-windows]: https://msdn.microsoft.com/en-us/commandline/wsl/about
diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown
deleted file mode 100644
index 0785821875b..00000000000
--- a/source/_docs/installation/hassbian/customization.markdown
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: "Customization"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
-redirect_from: /docs/hassbian/customization/
----
-
-To allow you to customize your installation further, we have included a tool called `hassbian-config`. This tool comes with a set of suites that can easily be installed or upgraded for easier customization of your Home Assistant installation.
-The tool is available by running `hassbian-config`.
-
-### Install scripts
-
-To view the available suites run `hassbian-config show` or have a look at the [hassbian-scripts repository][hassbian-repo].
-These are some of the available suites:
-
-- [AppDaemon](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/appdaemon.md)
-- [Cloud9](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/cloud9.md)
-- [Custom Component Store](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/custom-component-store.md)
-- [Fail2Ban](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/fail2ban.md) **This suite can't be installed on Raspberry Pi Zero**
-- [Duck DNS](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/duckdns.md) _This can also be configured to generate Let's Encrypt SSL certificates_
-- [Hue](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/hue.md)
-- [Hassbian Manager](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/manager.md) is a web UI tool that can help you manage your suites.
-- [Mosquitto](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/mosquitto.md)
-- [Pi-hole](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/pihole.md)
-- [Razberry](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/razberry.md)
-- [Samba](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/samba.md)
-- [Trådfri](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/tradfri.md)
-- [Webterminal](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/webterminal.md)
-- [Zigbee2mqtt](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/zigbee2mqtt.md)
-- Various database engines.
- - [MariaDB](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/mariadb.md)
- - [PostgreSQL](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/postgresql.md)
- - [MS SQL](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/mssql.md)
-
-To install any of them simply run `sudo hassbian-config install SUITE`.
-
-### Upgrade scripts
-
-To view the available suites run `hassbian-config show` or have a look at the [hassbian-scripts repository][hassbian-repo].
-These are some of the available suites:
-
-- [AppDaemon](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/appdaemon.md)
-- [Cloud9](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/cloud9.md)
-- [Custom Component Store](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/custom-component-store.md)
-- [Hassbian](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/hassbian.md)
-- [Hassbian Manager](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/manager.md)
-- [Home Assistant](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/homeassistant.md)
-- [hassbian-config (hassbian-scripts)](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/hassbian_config.md)
-- [Python](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/suites/python.md)
-
-To upgrade any of them simply run `sudo hassbian-config upgrade SUITE`.
-
-For more information about this tool have a look at the [hassbian-scripts repository][hassbian-repo].
-
-[hassbian-repo]: https://github.com/home-assistant/hassbian-scripts
-[cec]: /integrations/hdmi_cec/
diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown
deleted file mode 100644
index a5cfce1bf89..00000000000
--- a/source/_docs/installation/hassbian/installation.markdown
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: "Installing Hassbian"
-description: "Instructions to flash the Home Assistant Hassbian image on a Raspberry Pi."
-redirect_from: /docs/hassbian/installation/
----
-
-One of the easiest ways to install Home Assistant on your Raspberry Pi Zero, 2, 3 and 3B+ is by using Hassbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes).
-
- 1. [Download the Hassbian image][image-download]
- 2. Use [balenaEtcher][balenaEtcher] to flash the image to your SD card. We recommend at least a 32 GB SD card to avoid running out of space.
- 3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your [wireless network settings](#wireless-network) **before proceeding to step 4**.
- 4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 10 minutes.
-
-
-
-Please remember to ensure you're using an [appropriate power supply](https://www.raspberrypi.org/documentation/faqs/#pi-power) with your Pi. Mobile chargers may not be suitable since some were only designed to provide just enough power to the device it was designed for by the manufacturer. **Do not** try to power the Pi from the USB port on a TV, computer, or similar.
-
-
-
-These instructions are also available as a [video](https://www.youtube.com/watch?v=iIz6XqDwHEk).
-Additional information is available in this [video](https://www.youtube.com/watch?v=tCGlQSsQ-Mc).
-
-After initial boot an installer will run in the background, this will download and install the newest version of [hassbian-config](https://github.com/home-assistant/hassbian-scripts) and Home-Assistant, this takes around 10 minutes to complete, after it has finished, you will be prompted to login: `hassbian login:`. Installation is complete at this point. The default username is `pi` and the password is `raspberry`.
-
-Open a browser on a device that's connected to the same network as your Raspberry Pi and point it to Home Assistant at `http://hassbian.local:8123`. If you want to login via SSH, the default username is `pi` and password is `raspberry` (please change this by running `passwd`). The Home Assistant configuration is located at `/home/homeassistant/.homeassistant/`.
-
-If you find that the web page is not reachable after 30 minutes or so, check that you have files in `/home/homeassistant/.homeassistant/`, if there are no files in this location then run the installer manually using this command: `sudo systemctl start install_homeassistant.service`.
-
-
-The following extras are included on the image:
-
- - GPIO pins are ready to use.
- - Bluetooth is ready to use (supported models only, no Bluetooth LE).
- - SSH server is enabled.
- - A tool called [`hassbian-config`](https://github.com/home-assistant/hassbian-scripts#hassbian-scripts).
-
-### Wireless Network
-
-After flashing the image to your SD Card open the partition `boot` and create a new file `wpa_supplicant.conf`. Edit the file and enter your network credentials. For more information visit [Setting up WiFi for Raspbian][wifi-setup]. During start the file will automatically be copied in the right folder and the network connection will be established. The file could look like this:
-
-```conf
-country=SE
-ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
-update_config=1
-
-network={
- ssid="YOUR_SSID"
- psk="YOUR_PASSWORD"
-}
-```
-
-You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements).
-
-If you are using a [hidden SSID](https://en.wikipedia.org/wiki/Network_cloaking) for your WiFi network , you must add `scan_ssid=1` to the `network` section to be able to connect.
-
-If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command:
-
-```bash
-$ sudo rfkill list
-0: phy0: Wireless LAN
-Soft blocked: yes
-Hard blocked: no
-```
-
-To unblock it, execute `$ sudo rfkill unblock wifi`.
-
-### Technical Details
-
- - Home Assistant is installed in a virtual Python environment at `/srv/homeassistant/`
- - Home Assistant will be started as a service run by the user `homeassistant`
- - The configuration is located at `/home/homeassistant/.homeassistant`
-
-[image-download]: https://github.com/home-assistant/pi-gen/releases/latest
-[balenaEtcher]: https://www.balena.io/etcher
-[http://hassbian.local:8123]: http://hassbian.local:8123
-[wifi-setup]: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
-
-## Updating
-
-The [Hassbian Scripts](https://github.com/home-assistant/hassbian-scripts) are the easiest way of updating both the host operating system, and Home Assistant.
-
-### Updating Home Assistant
-
-SSH to your system as the user `pi` and run:
-
-```bash
-$ sudo hassbian-config upgrade homeassistant
-```
-
-### Updating the host operating system
-
-SSH to your system as the user `pi` and run:
-
-```bash
-$ sudo hassbian-config upgrade hassbian
-```
-
-## Run a specific version
-
-In the event that a Home Assistant version doesn't play well with your hardware setup, you can downgrade to a previous release. For example:
-
-```bash
-$ sudo hassbian-config upgrade homeassistant=0.XX.X
-```
-
-#### Run the beta version
-
-If you would like to test next release before anyone else, you can install the beta version released every two weeks, for example:
-
-```bash
-$ sudo hassbian-config upgrade homeassistant --beta
-```
-
-## Run the development version
-
-If you want to stay on the bleeding-edge Home Assistant development branch, you can upgrade to `dev`.
-
-
- The "dev" branch is likely to be unstable. Potential consequences include loss of data and instance corruption.
-
-
-For example:
-
-```bash
-$ sudo hassbian-config upgrade homeassistant --dev
-```
diff --git a/source/_docs/installation/hassbian/integrations.markdown b/source/_docs/installation/hassbian/integrations.markdown
deleted file mode 100644
index 5d0679a0ac5..00000000000
--- a/source/_docs/installation/hassbian/integrations.markdown
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: "Raspberry Pi integrations"
-description: "Home Assistant integrations specific to the Raspberry Pi."
-redirect_from: /docs/hassbian/integrations/
----
-
-Some integrations that are specific for the Raspberry Pi can require some further configuration outside of Home Assistant. All commands below are assumed to be executed with the `pi` account. For full documentation of these integrations refer to the [integrations](/components) page.
-
-### Bluetooth Tracker
-
-The Bluetooth tracker will work on a Raspberry Pi 3 with the built-in Bluetooth module or with a USB Bluetooth device on any of the other Raspberry Pi's.
-
-Software needed for the tracker is pre-installed so just follow the [Bluetooth Tracker integration](/integrations/bluetooth_tracker/) and [Device Tracker page](/integrations/device_tracker/) pages.
-
-### Raspberry Pi GPIO
-
-Each of the following devices are connected to the GPIO pins on the Raspberry Pi.
-For more details about the GPIO layout, visit the [documentation](https://www.raspberrypi.org/documentation/usage/gpio/) from the Raspberry Pi foundation.
-
-Permission have been given to the `homeassistant` user to use the GPIO pins and all of the following integrations should require no underlying changes to work.
-Just follow the integration pages for each on how to add them to your Home Assistant installation.
-
- - [DHT Sensor](/integrations/dht/)
- - [Raspberry Pi Cover](/integrations/rpi_gpio/#cover)
- - [Raspberry Pi GPIO Binary Sensor](/integrations/rpi_gpio/#binary-sensor)
- - [Raspberry Pi GPIO Switch](/integrations/rpi_gpio/#switch)
- - [Raspberry Pi RF Switch](/integrations/rpi_rf/)
-
-### Raspberry Pi Camera
-
-The Raspberry Pi Camera is a specific camera for the Raspberry Pi boards. For more information about the camera I suggest reading the [documentation](https://www.raspberrypi.org/documentation/usage/camera/) from the Raspberry Pi foundation.
-
-To use the camera it needs to be enabled with the `raspi-config` utility.
-
-```bash
-$ sudo raspi-config
-```
-
-Go to `Interfacing Options`, select `Enable camera` choose `` and hit `Enter`, then go to `Finish` and you'll be prompted to reboot.
-
-After this follow the [Raspberry Pi Camera integration](/integrations/rpi_camera/) page.
-
-### One wire Sensor
-
-The One wire sensor requires that support for it is enabled on the Raspberry Pi and that the One Wire device is connected to GPIO pin 4.
-To enable One Wire support add the following line to the end of `/boot/config.txt`
-```yaml
-dtoverlay=w1-gpio
-```
-After this follow the [One Wire Sensor integration](/integrations/onewire/) page.
diff --git a/source/_docs/installation/hassbian/upgrading.markdown b/source/_docs/installation/hassbian/upgrading.markdown
deleted file mode 100644
index f9d25d306f3..00000000000
--- a/source/_docs/installation/hassbian/upgrading.markdown
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: "Upgrading Hassbian"
-description: "Instructions on how to upgrade Hassbian to the latest version."
-redirect_from: /docs/hassbian/upgrading/
----
-
-Hassbian is based on Raspbian and uses the same repositories. Any changes to Raspbian will be reflected in Hassbian. To update and upgrade system packages and installed software (excluding Home Assistant) do the following.
-Log in as the `pi` account and execute the following commands:
-
-```bash
-sudo apt-get update
-sudo apt-get -y upgrade
-```
-
-#### Updating Home Assistant
-
-
-
-You can use `hassbian-config` to automate the process by running `sudo hassbian-config upgrade homeassistant`
-
-
-
-To update the Home Assistant installation execute the following command as the `pi` user.
-
-```bash
-sudo systemctl stop home-assistant@homeassistant.service
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-pip3 install --upgrade homeassistant
-exit
-sudo systemctl start home-assistant@homeassistant.service
-```
diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown
index 8e06868f0f2..ff13b539ebf 100644
--- a/source/_docs/installation/updating.markdown
+++ b/source/_docs/installation/updating.markdown
@@ -6,7 +6,7 @@ redirect_from: /getting-started/updating/
-The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/), [Hassbian](/docs/installation/hassbian/common-tasks/#update-home-assistant), or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
+The upgrade process differs depending on the installation you have, so please review the documentation that is specific to your install [Hass.io](/hassio/) or [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant).
@@ -14,7 +14,7 @@ Check what's new in the latest version and potentially impacts your system in [H
-To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [Hass.io](/hassio/), [Hassbian](/docs/hassbian/installation/), or [Virtualenv](/docs/installation/virtualenv).
+To avoid permission errors, the upgrade must be run as the same user as the installation was completed, again review the documentation specific to your install [Hass.io](/hassio/) or [Virtualenv](/docs/installation/virtualenv).
diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown
index f58e205f810..de7ac006618 100644
--- a/source/_docs/z-wave/device-specific.markdown
+++ b/source/_docs/z-wave/device-specific.markdown
@@ -78,8 +78,6 @@ at this point simply add your user (homeassistant) to the dialout group:
$ sudo usermod -a -G dialout homeassistant
```
-Finally, reboot again to make those changes active. It's has been tested on hassbian and has been reported that this is also required on the Pi2.
-
If you've installed the Z-Way software, you'll need to ensure you disable it before you install Home Assistant or you won't be able to access the board. Do this with `sudo /etc/init.d/z-way-server stop; sudo update-rc.d z-way-server disable`.
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index 66d3e410d80..d8c0842ea06 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -142,23 +142,13 @@ ls -1tr /dev/tty*|tail -n 1
The `modemmanager` package will interfere with any Z-Wave (or Zigbee) stick and should be removed or disabled. Failure to do so will result in random failures of those components. For example you can disable with `sudo systemctl disable ModemManager` and remove with `sudo apt-get purge modemmanager`
-### Hassbian
-
-You do not need to install any software to use Z-Wave.
-
-To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run:
-
-```bash
-ls -1tr /dev/tty*|tail -n 1
-```
-
### Community install methods
#### Raspberry Pi specific
On the Raspberry Pi you will need to enable the serial interface in the `raspi-config` tool before you can add Z-Wave to Home Assistant. Make sure to reboot the Raspberry Pi for the setting to take effect.
-#### Linux (except Hassbian)
+#### Linux
On Debian Linux platforms there are dependencies you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems):
@@ -276,7 +266,7 @@ If you're getting errors like:
openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory
-Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux-except-hassbian).
+Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux).
### Random failures
diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html
index 054b60fbf2a..0ce9be273b6 100644
--- a/source/_includes/asides/docs_navigation.html
+++ b/source/_includes/asides/docs_navigation.html
@@ -10,7 +10,6 @@
{% active_link /docs/installation/ Installation %}
diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown
index 6da6374b879..13a7a0ae834 100644
--- a/source/_integrations/dsmr.markdown
+++ b/source/_integrations/dsmr.markdown
@@ -121,18 +121,6 @@ or
2001:raw:600:/dev/ttyUSB0:9600 EVEN 1STOPBIT 7DATABITS XONXOFF LOCAL -RTSCTS
```
-[HASSbian](/docs/installation/hassbian/installation/) users have to give dialout permission to the user `homeassistant`:
-
-```bash
-$ sudo usermod -a -G dialout homeassistant
-```
-
-and after that you need to reboot!
-
-```bash
-$ sudo reboot
-```
-
Docker users have to allow Docker access to the device by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command:
```hass
diff --git a/source/_integrations/environment_canada.markdown b/source/_integrations/environment_canada.markdown
index daaf3397cfd..d4196a79120 100644
--- a/source/_integrations/environment_canada.markdown
+++ b/source/_integrations/environment_canada.markdown
@@ -14,13 +14,15 @@ The `environment_canada` weather platforms provide meteorological data for Canad
The following device types and data are supported:
-- [Weather](#weather) - Current conditions and forecasts
-- [Sensor](#sensor) - Current conditions and alerts
-- [Camera](#camera) - Radar imagery
+- [Location Selection](#location-selection)
+- [Weather](#weather)
+- [Sensor](#sensor)
+ - [Alert TTS Script](#alert-tts-script)
+- [Camera](#camera)
- On Raspbian or Hassbian, you may need to manually install additional prerequisites with the following command:
+ On Raspbian you may need to manually install additional prerequisites with the following command:
`sudo apt-get install libatlas-base-dev libopenjp2-7`
@@ -172,7 +174,7 @@ camera:
```
- On Raspbian or Hassbian, you may need to manually install additional prerequisites with the following command:
+ On Raspbian you may need to manually install additional prerequisites with the following command:
`sudo apt-get install libatlas-base-dev libopenjp2-7`
diff --git a/source/_integrations/ffmpeg.markdown b/source/_integrations/ffmpeg.markdown
index 47082c8b5ec..48219e79d7b 100644
--- a/source/_integrations/ffmpeg.markdown
+++ b/source/_integrations/ffmpeg.markdown
@@ -11,8 +11,7 @@ The `ffmpeg` integration allows other Home Assistant integrations to process vid
-You need the `ffmpeg` binary in your system path. On Hassbian you will need to login as the `pi` user and `sudo apt install ffmpeg`. On Debian 8 or Raspbian (Jessie) you can install it from [debian-backports](https://backports.debian.org/Instructions/). If you want [hardware acceleration](https://trac.ffmpeg.org/wiki/HWAccelIntro) support on a Raspberry Pi, you will need to build from source by yourself. Windows binaries are available on the [FFmpeg](https://www.ffmpeg.org/) website.
-
+You need the `ffmpeg` binary in your system path. On Debian 8 or Raspbian (Jessie) you can install it from [debian-backports](https://backports.debian.org/Instructions/). If you want [hardware acceleration](https://trac.ffmpeg.org/wiki/HWAccelIntro) support on a Raspberry Pi, you will need to build from source by yourself. Windows binaries are available on the [FFmpeg](http://www.ffmpeg.org/) website.
diff --git a/source/_integrations/hdmi_cec.markdown b/source/_integrations/hdmi_cec.markdown
index f77c0d39d76..674509549fa 100644
--- a/source/_integrations/hdmi_cec.markdown
+++ b/source/_integrations/hdmi_cec.markdown
@@ -38,7 +38,7 @@ ln -s /path/to/your/installation/of/_cec.so /path/to/your/venv/lib/python*/site-
##### Symlinking examples:
-For the default virtual environment of a [HASSbian Image for Raspberry Pi](/docs/installation/raspberry-pi/) the command would be as follows.
+For the default virtual environment of a [Manual install for Raspberry Pi](/docs/installation/raspberry-pi/) the command would be as follows.
```bash
ln -s /usr/local/lib/python*/dist-packages/cec.py /srv/homeassistant/lib/python*/site-packages
diff --git a/source/_integrations/logger.markdown b/source/_integrations/logger.markdown
index 91c90ab03d4..261cd6a1ab6 100644
--- a/source/_integrations/logger.markdown
+++ b/source/_integrations/logger.markdown
@@ -121,12 +121,6 @@ The log information are stored in the
and you can read it with the command-line tool `cat` or follow it dynamically
with `tail -f`.
-If you are a Hassbian user you can use the example below:
-
-```bash
-$ tail -f /home/homeassistant/.homeassistant/home-assistant.log
-```
-
If you are a Hass.io user, you can use the example below, when logged in through
the [SSH add-on](/addons/ssh/):
diff --git a/source/_integrations/modem_callerid.markdown b/source/_integrations/modem_callerid.markdown
index c14ff30a8a5..cf395ee921e 100644
--- a/source/_integrations/modem_callerid.markdown
+++ b/source/_integrations/modem_callerid.markdown
@@ -7,7 +7,7 @@ ha_release: "0.40"
ha_iot_class: Local Polling
---
-The `modem_callerid` sensor platform uses an available modem for collecting caller ID information. It requires a Hayes AT compatible modem that supports caller ID detection (via AT+VCID=1).
+The `modem_callerid` integration uses an available modem for collecting caller ID information. It requires a Hayes AT compatible modem that supports caller ID detection (via AT+VCID=1).
When the sensor detects a new call, its state changes to 'ring' for each ring and 'callerid' when caller id information is received. It returns to 'idle' once ringing stops. The state event includes an attribute payload that includes the time of the call, name and number.
@@ -19,7 +19,7 @@ To find the path of your USB modem, run:
ls /dev/ttyACM*
```
-If Home Assistant (`hass`) runs with another user (e.g., `homeassistant` on Hassbian) give access to the stick with:
+If Home Assistant (`hass`) runs with another user (e.g., `homeassistant`) give access to the stick with:
```bash
sudo usermod -a -G dialout homeassistant
@@ -54,7 +54,7 @@ To find the path of your USB modem, run:
`$ ls /dev/ttyACM*`
-If Home Assistant (`hass`) runs with another user (e.g., `homeassistant` on Hassbian) give access to the stick with:
+If Home Assistant (`hass`) runs with another user (e.g., `homeassistant`) give access to the stick with:
`$ sudo usermod -a -G dialout homeassistant`
diff --git a/source/_integrations/nmap_tracker.markdown b/source/_integrations/nmap_tracker.markdown
index bfba601a65a..e64fa16bea9 100644
--- a/source/_integrations/nmap_tracker.markdown
+++ b/source/_integrations/nmap_tracker.markdown
@@ -14,7 +14,7 @@ As an alternative to the router-based device tracking, it is possible to directl
Please keep in mind that modern smart phones will usually turn off WiFi when they are idle. Simple trackers like this may not be reliable on their own.
-You might have to install the packages for `arp` and `nmap`. On Debian based hosts (for example Hassbian and Raspbian) do so by running `$ sudo apt-get install net-tools nmap`. On a Fedora host run `$ sudo dnf -y install nmap`.
+You might have to install the packages for `arp` and `nmap`. On Debian based hosts (for example Raspbian) do so by running `$ sudo apt-get install net-tools nmap`. On a Fedora host run `$ sudo dnf -y install nmap`.
diff --git a/source/_integrations/ps4.markdown b/source/_integrations/ps4.markdown
index bb6795a2e1b..d0f2ca1cd86 100644
--- a/source/_integrations/ps4.markdown
+++ b/source/_integrations/ps4.markdown
@@ -50,7 +50,6 @@ There are varying methods to perform this, dependent on your OS that is running
Home Assistant installed on a Debian-type OS may require configuration. This section is applicable but not limited to the following operating systems:
- Debian
-- Hassbian
- Rassbian
- Armbian
- Ubuntu
diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown
index 42a4a548e20..885e9e98d7f 100644
--- a/source/_integrations/samsungtv.markdown
+++ b/source/_integrations/samsungtv.markdown
@@ -144,15 +144,6 @@ No additional actions are required
No additional actions are required
-### Hassbian
-
-You will need to activate the venv and install the websocket library:
-
-```bash
-sudo -u homeassistant -H -s
-source /srv/homeassistant/bin/activate
-pip3 install websocket-client
-```
### Other install methods
You will need to install the `websocket-client` Python package in your Home Assistant install. This will probably be done with:
diff --git a/source/_integrations/sensehat.markdown b/source/_integrations/sensehat.markdown
index 855577b206d..e605795f352 100644
--- a/source/_integrations/sensehat.markdown
+++ b/source/_integrations/sensehat.markdown
@@ -141,7 +141,7 @@ group:
- group.sense_hat
```
-### Directions for installing on Raspberry Pi All-In-One installer and HASSbian:
+### Directions for installing on Raspberry Pi Raspbian Based installation:
Here are the steps to make the _SenseHAT_ sensor work _successfully_ with the virtual environment versions.
@@ -182,7 +182,7 @@ sudo reboot
```
Unfortunately enabling the SenseHAT Sensor integration for a Virtual Environment install of Home Assistant fails with errors.
-_(The Raspberry Pi All-In-One installer and HASSbian both run Home Assistant in an virtual environment)._
+_(The Raspberry Pi All-In-One installer run Home Assistant in an virtual environment)._
These issues have been discussed in the repository issue [#5093](https://github.com/home-assistant/home-assistant/issues/5093)
This fix has been tested with a clean install of:
diff --git a/source/_integrations/tensorflow.markdown b/source/_integrations/tensorflow.markdown
index 25605ea0743..f68cd5e7358 100644
--- a/source/_integrations/tensorflow.markdown
+++ b/source/_integrations/tensorflow.markdown
@@ -12,7 +12,7 @@ The `tensorflow` image processing platform allows you to detect and recognize ob
- The following packages must be installed on Hassbian/Raspbian before following the setup for the integration to work:
+ The following packages must be installed on Raspbian before following the setup for the integration to work:
`sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5`
diff --git a/source/_integrations/totalconnect.markdown b/source/_integrations/totalconnect.markdown
index fbe62169a24..0116385285c 100644
--- a/source/_integrations/totalconnect.markdown
+++ b/source/_integrations/totalconnect.markdown
@@ -16,7 +16,7 @@ The `triggered` state also provides a state attribute called `triggered_source`
- `Fire/Smoke` is when fire or smoke is detected, or a person pushed the Fire button
- `Carbon Monoxide` is when carbon monoxide is detected
-If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Hassbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo.
+If you have issues running this component, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command `apt install libxml2-dev libxmlsec1-dev` with sudo.
## Configuration
diff --git a/source/_integrations/xiaomi.markdown b/source/_integrations/xiaomi.markdown
index b1440866c1d..5c742048fab 100644
--- a/source/_integrations/xiaomi.markdown
+++ b/source/_integrations/xiaomi.markdown
@@ -30,7 +30,7 @@ Currently, version 0.1.4-beta2 of the custom firmware is the highest supported.
-Hassbian users: Don't forget to install `ffmpeg` support on your platform, otherwise, you'll not see video.
+Raspbian users: Don't forget to install `ffmpeg` support on your platform, otherwise, you'll not see video.
diff --git a/source/_integrations/yi.markdown b/source/_integrations/yi.markdown
index f69d8f25ddb..9c220a1f776 100644
--- a/source/_integrations/yi.markdown
+++ b/source/_integrations/yi.markdown
@@ -38,7 +38,7 @@ If you use a version higher than 0.1.4-beta2, you can simply solve the FTP issue
-Hassbian users: don't forget to install ffmpeg support on your platform, otherwise, you'll not see video.
+Raspbian users: don't forget to install ffmpeg support on your platform, otherwise, you'll not see video.
From f0bc18386fda6147128a47a25989e5540e9cdf1a Mon Sep 17 00:00:00 2001
From: Ernst Klamer
Date: Sat, 26 Oct 2019 11:22:47 +0200
Subject: [PATCH 02/56] Move Solar-Log docs to _integrations folder (#10971)
The Solar-Log documentation was located in the wrong folder (_components). Moved to _integrations folder.
---
source/{_components => _integrations}/solarlog.markdown | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename source/{_components => _integrations}/solarlog.markdown (100%)
diff --git a/source/_components/solarlog.markdown b/source/_integrations/solarlog.markdown
similarity index 100%
rename from source/_components/solarlog.markdown
rename to source/_integrations/solarlog.markdown
From adfdf290b55a9316f56991aca2988632ac4b8afb Mon Sep 17 00:00:00 2001
From: jjlawren
Date: Sat, 26 Oct 2019 06:46:32 -0500
Subject: [PATCH 03/56] Plex supports Local Push (#10993)
---
source/_integrations/plex.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown
index 872fe7e7d87..c87fcfe043d 100644
--- a/source/_integrations/plex.markdown
+++ b/source/_integrations/plex.markdown
@@ -7,7 +7,7 @@ ha_category:
- Sensor
featured: true
ha_release: 0.7.4
-ha_iot_class: Local Polling
+ha_iot_class: Local Push
ha_config_flow: true
---
From 5ddb34abf50e20c2b6778ba9cf1bb0873b48a703 Mon Sep 17 00:00:00 2001
From: gngj
Date: Sat, 26 Oct 2019 15:07:24 +0300
Subject: [PATCH 04/56] Add region config (#10983)
---
source/_integrations/microsoft.markdown | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/microsoft.markdown b/source/_integrations/microsoft.markdown
index d5bce0a8f62..1d2556defbe 100644
--- a/source/_integrations/microsoft.markdown
+++ b/source/_integrations/microsoft.markdown
@@ -37,7 +37,7 @@ gender:
type: string
default: "`Female`"
type:
- description: "The voice type you want to use. Accepted values are listed as the service name mapping [in the documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/Speech/api-reference-rest/bingvoiceoutput)."
+ description: "The voice type you want to use. Accepted values are listed as the service name mapping [in the documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support#text-to-speech)."
required: false
type: string
default: "`ZiraRUS`"
@@ -60,6 +60,11 @@ contour:
description: "Change the contour of the output in percentages. This overrides the pitch setting. See the [W3 SSML specification](https://www.w3.org/TR/speech-synthesis/#pitch_contour) for what it does. Example value: `(0,0) (100,100)`."
required: false
type: string
+region:
+ description: "The region of your API endpoint. See [documentation](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/regions)."
+ required: false
+ type: string
+ default: "`eastus`"
{% endconfiguration %}
@@ -79,4 +84,5 @@ tts:
volume: -50
pitch: high
contour: (0, 0) (100, 100)
+ region: eastus
```
From 0f574d3f5a15494aac8410d611bdfa061c9614c8 Mon Sep 17 00:00:00 2001
From: Robert Van Gorkom
Date: Sat, 26 Oct 2019 05:18:34 -0700
Subject: [PATCH 05/56] =?UTF-8?q?Updating=20withings=20documentation=20to?=
=?UTF-8?q?=20remain=20consistent=20with=20new=E2=80=A6=20(#10970)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
source/_integrations/withings.markdown | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown
index ae66ac8846a..5dce6f9877a 100644
--- a/source/_integrations/withings.markdown
+++ b/source/_integrations/withings.markdown
@@ -22,7 +22,7 @@ Values for your account:
- Logo: Any reasonable picture will do.
- Description: Personal app for collecting my data.
- Contact Email: Your email address
-- Callback Uri: `https://your-domain-name/` - Withings will check if this URL is accessible (HTTP HEAD) upon submitting the form.
+- Callback Uri: `https://your-domain-name/auth/external/callback` - Withings will check if this URL is accessible (HTTP HEAD) upon submitting the form.
- Company: Home Assistant
Once saved, the "Client Id" and "Consumer Secret" fields will be populated. You will need these in the next step.
@@ -33,7 +33,7 @@ Once saved, the "Client Id" and "Consumer Secret" fields will be populated. You
# Example configuration.yaml entry
withings:
client_id: CLIENT_ID
- client_secret: CLIENT_SECRET
+ client_secret: CONSUMER_SECRET
profiles:
- USER_PROFILE_NAME
```
@@ -43,28 +43,27 @@ Withings supports multiple profiles per account. Each profile has a person's nam
### Step 3 - Authorize Home Assistant
- Confirm your YAML configuration is valid by using the `Check Config` tool (see note).
+ - Note: In order for "Check Config" to be visible, you must enable "Advanced Mode" on your user profile. The "Check Config" tool can be found by clicking "Configuration" from the sidebar (cog icon) and then clicking "Server Control".
- Restart Home Assistant.
- Go to the integrations page.
-- Add a Withings integration.
-- Select the profile you intend to pull data. This will take you to the Withings site.
-- On the Withings site, choose the profile you selected in the previous step (if prompted).
- - Note: It's important you select the same profile from the previous step. Choosing a different one will result in Home Assistant displaying data for profile 2, but it will be labeled as profile 1.
-- Authorize the application. Your browser will redirect you to your Home Assistant URL.
+- Add a Withings integration. This will open a new tab/window on the withings site.
+- On the Withings site, choose the profile of the data you want to sync.
+- Authorize the application. Your browser will redirect you to the redirect uri you provided during account setup.
- Note: If you get a browser error saying the site is inaccessible, you can modify the
`http://domain` portion of the URL to something you know is accessible, locally or publically. For example, `http://localhost:8123`.
This occurs when the base URL provided by Home Assistant to Withings is not accessible to the outside world.
Changing the domain will not affect how data is synchronized.
+- Once authorized, the tab/window will close and the integration page will prompt to select a profile. Select the profile you chose while on the withings site.
+ - Note: It's important you select the same profile from the previous step. Choosing a different one will result in Home Assistant displaying the wrong data.
- Data will synchronize immediately and update every 5 minutes.
-Note: In order for "Check Config" to be visible, you must enable "Advanced Mode" on your user profile. The "Check Config" tool can be found by clicking "Configuration" from the sidebar (cog icon) and then clicking "Server Control".
-
## Configuration
```yaml
# Example configuration.yaml entry
withings:
client_id: CLIENT_ID
- client_secret: CLIENT_SECRET
+ client_secret: CONSUMER_SECRET
profiles:
- USER_PROFILE_NAME
```
@@ -81,9 +80,4 @@ profiles:
description: Withings supports multiple profiles per account. Provide the person's name whom you want Home Assistant entities to will be associated with (just a name, it doesn't have to be perfect). During the authorization step, you will be asked to select this user from the Withings website.
required: true
type: map
-base_url:
- description: Overrides Home Assistant's default base URL to use when authorizing with Withings.
- required: false
- type: string
- default: The base URL provided in the Home Assistant `api` component.
{% endconfiguration %}
From 057fb85caf0b1984106e49e301f2e669268b946d Mon Sep 17 00:00:00 2001
From: ZiroNL
Date: Sun, 27 Oct 2019 13:09:01 +0100
Subject: [PATCH 06/56] Adding charset to imap component (#10967)
---
source/_integrations/imap.markdown | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/imap.markdown b/source/_integrations/imap.markdown
index b96c727b69f..06ff98d5891 100644
--- a/source/_integrations/imap.markdown
+++ b/source/_integrations/imap.markdown
@@ -55,6 +55,11 @@ search:
required: false
default: UnSeen UnDeleted
type: string
+charset:
+ description: The characterset used for this connection
+ required: false
+ default: UTF-8
+ type: string
{% endconfiguration %}
### Configuring IMAP Searches
@@ -68,7 +73,7 @@ By default, this integration will count unread emails. By configuring the search
#### Full configuration sample with search
```yaml
-# Example configuration.yaml entry
+# Example configuration.yaml entry for gmail
sensor:
- platform: imap
server: imap.gmail.com
@@ -76,4 +81,15 @@ sensor:
username: YOUR_USERNAME
password: YOUR_PASSWORD
search: FROM , SUBJECT
+ charset: utf-8
+
+# Example configuration.yaml entry for Office 365
+sensor:
+ - platform: imap
+ server: outlook.office365.com
+ port: 993
+ username: email@address.com
+ password: password
+ search: FROM , SUBJECT
+ charset: US-ASCII
```
From b9b241c3a0dfd2ccd3a03d8eee1e6d64b2b04bad Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 27 Oct 2019 20:52:41 +0100
Subject: [PATCH 07/56] Fix typo (#11012)
---
source/_integrations/imap.markdown | 7 +++----
source/_integrations/imap_email_content.markdown | 12 ++++++------
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/source/_integrations/imap.markdown b/source/_integrations/imap.markdown
index 06ff98d5891..418ddab9176 100644
--- a/source/_integrations/imap.markdown
+++ b/source/_integrations/imap.markdown
@@ -8,7 +8,7 @@ ha_release: 0.25
ha_iot_class: Cloud Push
---
-The `imap` sensor platform is observing your [IMAP server](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) and reporting the amount of unread emails.
+The `imap` integration is observing your [IMAP server](https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol) and reporting the amount of unread emails.
## Configuration
@@ -56,9 +56,9 @@ search:
default: UnSeen UnDeleted
type: string
charset:
- description: The characterset used for this connection
+ description: The character set used for this connection.
required: false
- default: UTF-8
+ default: utf-8
type: string
{% endconfiguration %}
@@ -81,7 +81,6 @@ sensor:
username: YOUR_USERNAME
password: YOUR_PASSWORD
search: FROM , SUBJECT
- charset: utf-8
# Example configuration.yaml entry for Office 365
sensor:
diff --git a/source/_integrations/imap_email_content.markdown b/source/_integrations/imap_email_content.markdown
index 4c8908ecec5..c4bce26f23e 100644
--- a/source/_integrations/imap_email_content.markdown
+++ b/source/_integrations/imap_email_content.markdown
@@ -8,7 +8,7 @@ ha_iot_class: Cloud Push
ha_release: 0.25
---
-The `imap_email_content` sensor platform will read emails from an IMAP email server and report them as a state change within Home Assistant. This is useful if you have a device that only reports its state via email.
+The `imap_email_content` integration will read emails from an IMAP email server and report them as a state change within Home Assistant. This is useful if you have a device that only reports its state via email.
## Configuration
@@ -20,9 +20,9 @@ sensor:
- platform: imap_email_content
server: imap.gmail.com
port: 993
- username: USERNAME
- password: PASSWORD
- folder:
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
+ folder: YOUR_FOLDER
senders:
- example@gmail.com
```
@@ -68,7 +68,7 @@ value_template:
body:
description: The body of the email.
subject:
- description: The subject of the email.
+ description: The subject of the email.git.
date:
description: The date and time the email was sent.
{% endconfiguration %}
@@ -97,4 +97,4 @@ sensor:
```
{% endraw %}
-The same template structure can scan the date, body, or sender for matching text before setting the state of the sensor.
+The same template structure can scan the date, body or sender for matching text before setting the state of the sensor.
From 41755f483b0b7dcb1a6e35e5036f171bea2fb0d5 Mon Sep 17 00:00:00 2001
From: fwestenberg <47930023+fwestenberg@users.noreply.github.com>
Date: Mon, 28 Oct 2019 07:55:00 +0100
Subject: [PATCH 08/56] Added new Xiaomi Air Quality Monitor (#11017)
---
.../air_quality.xiaomi_miio.markdown | 54 +++++++++++++++++++
.../_integrations/sensor.xiaomi_miio.markdown | 4 +-
2 files changed, 56 insertions(+), 2 deletions(-)
create mode 100644 source/_integrations/air_quality.xiaomi_miio.markdown
diff --git a/source/_integrations/air_quality.xiaomi_miio.markdown b/source/_integrations/air_quality.xiaomi_miio.markdown
new file mode 100644
index 00000000000..4404e8ba3d1
--- /dev/null
+++ b/source/_integrations/air_quality.xiaomi_miio.markdown
@@ -0,0 +1,54 @@
+---
+title: "Xiaomi Air Quality Monitor"
+description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
+logo: xiaomi.png
+ha_category:
+ - Health
+ha_iot_class: Local Polling
+ha_release: 0.100.4
+---
+
+The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor and reporting the air quality values.
+
+Currently, the supported features are:
+
+- Particulate matter 2.5
+- Attributes
+ - carbon_dioxide_equivalent
+ - relative_humidity
+ - temperature
+ - total_volatile_organic_compounds
+ - manufacturer
+ - model
+ - sw_version
+
+Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
+
+## Configuration
+
+To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+air_quality:
+ - platform: xiaomi_miio
+ name: Xiaomi Air Quality Monitor
+ host: 192.168.130.73
+ token: YOUR_TOKEN
+```
+
+{% configuration %}
+host:
+ description: The IP address of your miio device.
+ required: true
+ type: string
+token:
+ description: The API token of your miio device.
+ required: true
+ type: string
+name:
+ description: The name of your miio device.
+ required: false
+ type: string
+ default: Xiaomi Miio Air Quality Monitor
+{% endconfiguration %}
diff --git a/source/_integrations/sensor.xiaomi_miio.markdown b/source/_integrations/sensor.xiaomi_miio.markdown
index 2c0fc265f9a..b56c4f8ebd4 100644
--- a/source/_integrations/sensor.xiaomi_miio.markdown
+++ b/source/_integrations/sensor.xiaomi_miio.markdown
@@ -1,6 +1,6 @@
---
-title: "Xiaomi Air Quality Monitor"
-description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
+title: "Xiaomi Air Quality Index Monitor"
+description: "Instructions how to integrate your Xiaomi Mi Air Quality Index Monitor within Home Assistant."
logo: xiaomi.png
ha_category:
- Health
From 74c7d237ebf46972386112bdcac5cfd33d0812c7 Mon Sep 17 00:00:00 2001
From: Sebastian Muszynski
Date: Mon, 28 Oct 2019 14:39:49 +0100
Subject: [PATCH 09/56] Revert "Added new Xiaomi Air Quality Monitor" (#11023)
This reverts commit 41755f483b0b7dcb1a6e35e5036f171bea2fb0d5.
---
.../air_quality.xiaomi_miio.markdown | 54 -------------------
.../_integrations/sensor.xiaomi_miio.markdown | 4 +-
2 files changed, 2 insertions(+), 56 deletions(-)
delete mode 100644 source/_integrations/air_quality.xiaomi_miio.markdown
diff --git a/source/_integrations/air_quality.xiaomi_miio.markdown b/source/_integrations/air_quality.xiaomi_miio.markdown
deleted file mode 100644
index 4404e8ba3d1..00000000000
--- a/source/_integrations/air_quality.xiaomi_miio.markdown
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: "Xiaomi Air Quality Monitor"
-description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
-logo: xiaomi.png
-ha_category:
- - Health
-ha_iot_class: Local Polling
-ha_release: 0.100.4
----
-
-The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor and reporting the air quality values.
-
-Currently, the supported features are:
-
-- Particulate matter 2.5
-- Attributes
- - carbon_dioxide_equivalent
- - relative_humidity
- - temperature
- - total_volatile_organic_compounds
- - manufacturer
- - model
- - sw_version
-
-Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
-
-## Configuration
-
-To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-air_quality:
- - platform: xiaomi_miio
- name: Xiaomi Air Quality Monitor
- host: 192.168.130.73
- token: YOUR_TOKEN
-```
-
-{% configuration %}
-host:
- description: The IP address of your miio device.
- required: true
- type: string
-token:
- description: The API token of your miio device.
- required: true
- type: string
-name:
- description: The name of your miio device.
- required: false
- type: string
- default: Xiaomi Miio Air Quality Monitor
-{% endconfiguration %}
diff --git a/source/_integrations/sensor.xiaomi_miio.markdown b/source/_integrations/sensor.xiaomi_miio.markdown
index b56c4f8ebd4..2c0fc265f9a 100644
--- a/source/_integrations/sensor.xiaomi_miio.markdown
+++ b/source/_integrations/sensor.xiaomi_miio.markdown
@@ -1,6 +1,6 @@
---
-title: "Xiaomi Air Quality Index Monitor"
-description: "Instructions how to integrate your Xiaomi Mi Air Quality Index Monitor within Home Assistant."
+title: "Xiaomi Air Quality Monitor"
+description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
logo: xiaomi.png
ha_category:
- Health
From a3af31f20bd1633804f4d0fdec11472b6374085e Mon Sep 17 00:00:00 2001
From: Ian Richardson
Date: Mon, 28 Oct 2019 13:25:11 -0500
Subject: [PATCH 10/56] Lovelace 0.101 (#10966)
* Lovelace 0.101
* Update changelog.markdown
* Update changelog.markdown
* Update changelog.markdown
* Update changelog.markdown
* cleanup
---
source/lovelace/changelog.markdown | 150 ++++++++++++++++++-----------
1 file changed, 93 insertions(+), 57 deletions(-)
diff --git a/source/lovelace/changelog.markdown b/source/lovelace/changelog.markdown
index e78645b89d5..a20db478d2e 100644
--- a/source/lovelace/changelog.markdown
+++ b/source/lovelace/changelog.markdown
@@ -2,30 +2,66 @@
title: "Lovelace Changelog"
description: "Changelog of the Lovelace UI."
---
+## Changes in 0.101.0
+- ❤️ [entities card]: Add actions on rows [#4023](https://github.com/home-assistant/home-assistant-polymer/pull/4023) @iantrich
+- ❤️ [entities card]: New `icon` option for title [#4024](https://github.com/home-assistant/home-assistant-polymer/pull/4024) @iantrich
+- ❤️ [views]: New `visible` option [#3811](https://github.com/home-assistant/home-assistant-polymer/pull/3811) @iantrich
+- ❤️ [views]: Custom badges [#3867](https://github.com/home-assistant/home-assistant-polymer/pull/3867) @iantrich
+- ❤️ [views]: New `entity-filter` badge [#3867](https://github.com/home-assistant/home-assistant-polymer/pull/3867) @iantrich
+- ❤️ [views]: New `state-label` badge [#3867](https://github.com/home-assistant/home-assistant-polymer/pull/3867) @iantrich
+- ❤️ [views]: Add actions to `state-label` badge [#4028](https://github.com/home-assistant/home-assistant-polymer/pull/4028) @iantrich
+- ❤️ [shopping list card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [plant status card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [markdown card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [alarm panel card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [picture card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [picture elements card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [picture elements card]: Add actions to `state-badge` element [#4028](https://github.com/home-assistant/home-assistant-polymer/pull/4028) @iantrich
+- ❤️ [picture entity card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [picture glance card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [picture glance card]: New `show_state` option for entities [#3937](https://github.com/home-assistant/home-assistant-polymer/pull/3937) @iantrich
+- ❤️ [weather forecast card]: New `theme` option [#4057](https://github.com/home-assistant/home-assistant-polymer/pull/4057) @iantrich
+- ❤️ [vertical stack card]: New `title` option [#3839](https://github.com/home-assistant/home-assistant-polymer/pull/3839) @iantrich
+- ❤️ [horizontal stack card]: New `title` option [#3839](https://github.com/home-assistant/home-assistant-polymer/pull/3839) @iantrich
+- ❤️ New `double_tap_action` option [#3879](https://github.com/home-assistant/home-assistant-polymer/pull/3879) @iantrich
+- ❤️ New `confirmation` option for actions [#4006](https://github.com/home-assistant/home-assistant-polymer/pull/4006) @iantrich
+- ❤️ Theming: New CSS switch sytle: `switch-checked-color` [#4017](https://github.com/home-assistant/home-assistant-polymer/pull/4017) @iantrich
+- ❤️ Theming: New CSS switch sytle: `switch-unchecked-color` [#4017](https://github.com/home-assistant/home-assistant-polymer/pull/4017) @iantrich
+- ❤️ Theming: New CSS switch sytle: `switch-unchecked-button-color` [#4017](https://github.com/home-assistant/home-assistant-polymer/pull/4017) @iantrich
+- ❤️ Theming: New CSS switch sytle: `switch-unchecked-track-color` [#4017](https://github.com/home-assistant/home-assistant-polymer/pull/4017) @iantrich
+- 📣 Upgrade MDI icons to 4.5.95 [#3977](https://github.com/home-assistant/home-assistant-polymer/pull/3977) @bonanitech
+- 📣 Display card errors in YAML instead of JSON [#4018](https://github.com/home-assistant/home-assistant-polymer/pull/4018) @iantrich
+- ⚠️ revert lovelace selectable text [#4095](https://github.com/home-assistant/home-assistant-polymer/pull/4095) @iantrich
+- 🔧 [alarm panel card]: Visual accessibility changes [#3991](https://github.com/home-assistant/home-assistant-polymer/pull/3991) @mr-awk
+- 🔧 [entities card]: Fix media row secondary info [#3957](https://github.com/home-assistant/home-assistant-polymer/pull/3957) @iantrich
+- 🔧 [light card]: Fix name wrapping [#3972](https://github.com/home-assistant/home-assistant-polymer/pull/3972) @shbatm
+- 🔧 [map card]: Fix zone icon visibility [#4085](https://github.com/home-assistant/home-assistant-polymer/pull/4085) @springstan
+- 📣 [markdown card]: Add default text to card editor [#3960](https://github.com/home-assistant/home-assistant-polymer/pull/3960) @akargl
+
## Changes in 0.100.0
-- 📣 [picture glance card]: New config `tap_action` and `hold_action` for `entities` (#3807) @iantrich
-- 📣 [entities card]: New config `image` for `entities` (#3832) @iantrich
-- 📣 [entity filter card]: Support for operators in `state_filter` and individual `state_filter` option for `entitites` (#3692) @iantrich
-- 📣 [light card]: New config `icon` (#3771) @iantrich
-- 📣 [picture entity card]: UI Editor (#3708) @iantrich
-- 📣 [picture glance card]: UI Editor (#3709) @iantrich
-- 📣 [history graph card]: UI Editor (#3782) @iantrich
-- 📣 Add support for panels to cast (#3796) @bramkragten
-- 📣 Allow for user text selection (Android Chrome not supported) (#3605) @iantrich
-- 📣 add `state_filter` to picture cards (#3791) @iantrich
-- 📣 Add a setting for vibration (#3813) @bramkragten
-- 📣 Switch paper-toggle-button to mwc-switch (#3683) @iantrich
-- 📣 New Action `url` (#3773) @iantrich
-- 🔧 [map card]: Align background with tiles (#3858) @bramkragten
-- 🔧 [map card]: Fix dark switch for map card editor (#3856) @bramkragten
-- 🔧 [views]: Guard for null badges (#3841) @bramkragten
+- ❤️ [picture glance card]: New config `tap_action` and `hold_action` for `entities` [#3807](https://github.com/home-assistant/home-assistant-polymer/pull/3807) @iantrich
+- ❤️ [entities card]: New config `image` for `entities` [#3832](https://github.com/home-assistant/home-assistant-polymer/pull/3832) @iantrich
+- ❤️ [entity filter card]: Support for operators in `state_filter` and individual `state_filter` option for `entitites` [#3692](https://github.com/home-assistant/home-assistant-polymer/pull/3692) @iantrich
+- ❤️ [light card]: New config `icon` [#3771](https://github.com/home-assistant/home-assistant-polymer/pull/3771) @iantrich
+- ❤️ [picture entity card]: UI Editor [#3708](https://github.com/home-assistant/home-assistant-polymer/pull/3708) @iantrich
+- ❤️ [picture glance card]: UI Editor [#3709](https://github.com/home-assistant/home-assistant-polymer/pull/3709) @iantrich
+- ❤️ [history graph card]: UI Editor [#3782](https://github.com/home-assistant/home-assistant-polymer/pull/3782) @iantrich
+- ❤️ Add `state_filter` to picture cards [#3791](https://github.com/home-assistant/home-assistant-polymer/pull/3791) @iantrich
+- ❤️ Add a setting for vibration [#3813](https://github.com/home-assistant/home-assistant-polymer/pull/3813) @bramkragten
+- ❤️ New Action `url` [#3773](https://github.com/home-assistant/home-assistant-polymer/pull/3773) @iantrich
+- 📣 Add support for panels to cast [#3796](https://github.com/home-assistant/home-assistant-polymer/pull/3796) @bramkragten
+- 📣 Allow for user text selection (Android Chrome not supported) [#3605](https://github.com/home-assistant/home-assistant-polymer/pull/3605) @iantrich
+- ⚠️ Switch paper-toggle-button to mwc-switch [#3683](https://github.com/home-assistant/home-assistant-polymer/pull/3683) @iantrich
+- 🔧 [map card]: Align background with tiles [#3858](https://github.com/home-assistant/home-assistant-polymer/pull/3858) @bramkragten
+- 🔧 [map card]: Fix dark switch for map card editor [#3856](https://github.com/home-assistant/home-assistant-polymer/pull/3856) @bramkragten
+- 🔧 [views]: Guard for null badges [#3841](https://github.com/home-assistant/home-assistant-polymer/pull/3841) @bramkragten
## Changes in 0.99.0
-- 📣 [glance card]: New config `show_last_changed` for `entities`
-- 📣 [glance card]: New config `image` for `entities`
-- 📣 [views]: New config `image` for `badges`
-- 📣 [views]: New config `icon` for `badges`
-- 📣 [views]: New config `name` for `badges`
+- ❤️ [glance card]: New config `show_last_changed` for `entities`
+- ❤️ [glance card]: New config `image` for `entities`
+- ❤️ [views]: New config `image` for `badges`
+- ❤️ [views]: New config `icon` for `badges`
+- ❤️ [views]: New config `name` for `badges`
- 📣 Unused entities: Rewritten into a table view
- 📣 Unused entities: Add entities to Lovelace cards
- 📣 Lovelace background settings moved to theme `--lovelace-background`
@@ -46,17 +82,17 @@ description: "Changelog of the Lovelace UI."
- 🔧 Break long strings in notifications
## Changes in 0.88.0
+- ❤️ Theming: New CSS card style `ha-card-box-shadow` ([#2855](https://github.com/home-assistant/home-assistant-polymer/pull/2855))
- 📣 Disable toast notifications for successful operations ([#2700](https://github.com/home-assistant/home-assistant-polymer/pull/2822))
- 📣 Color Picker: Toggleable between segmented and continuous ([#2806](https://github.com/home-assistant/home-assistant-polymer/pull/2806))
-- 📣 Theming: New CSS card style `ha-card-box-shadow` ([#2855](https://github.com/home-assistant/home-assistant-polymer/pull/2855))
- 🔧 Fix login issue on Firefox ([#2860](https://github.com/home-assistant/home-assistant-polymer/pull/2860))
- 🔧 [light card]: Fix click events ([#2850](https://github.com/home-assistant/home-assistant-polymer/pull/2850))
## Changes in 0.87.0
+- ❤️ Theming: New CSS card style `ha-card-border-radius`
+- ❤️ Theming: New CSS card style `ha-card-background`
+- ❤️ New system-health card in dev-info
- 📣 MDI icons updated to [3.3.92](https://cdn.materialdesignicons.com/3.3.92/)
-- 📣 Theming: New CSS card style `ha-card-border-radius`
-- 📣 Theming: New CSS card style `ha-card-background`
-- 📣 New system-health card in dev-info
- 📣 UI Editor: YAML syntax support
- 📣 UI Editor: Line numbers
- 📣 UI Editor: Now supports columns on wide screens
@@ -67,8 +103,8 @@ description: "Changelog of the Lovelace UI."
- 🔧 Groups are now togglable
## Changes in 0.86.0
-- 📣 Lovelace is now the default UI for Home Assistant!
-- 📣 New Lovelace [demos](https://demo.home-assistant.io/#/lovelace/0) page
+- ❤️ Lovelace is now the default UI for Home Assistant!
+- ❤️ New Lovelace [demos](https://demo.home-assistant.io/#/lovelace/0) page
- 🔧 [thermostat card]: Fix sizing
- 🔧 [gauge card]: Fix sizing
- 🔧 [iframe card]: Fix card size
@@ -80,23 +116,23 @@ description: "Changelog of the Lovelace UI."
- 🔧 The [weblink row] opens links in new tabs
## Changes in 0.85.0
-- 📣 [map card]: New config `geo_location_sources`
+- ❤️ [map card]: New config `geo_location_sources`
+- ❤️ UI Editor for [picture card]
+- ❤️ UI Editor for [weather forecast card]
+- ❤️ UI Editor for [plant status card]
+- ❤️ UI Editor for [media control card]
+- ❤️ UI Editor for [iframe card]
+- ❤️ UI Editor for [sensor card]
+- ❤️ UI Editor for [shopping list card]
+- ❤️ UI Editor for [light card]
+- ❤️ UI Editor for [gauge card]
+- ❤️ UI Editor for [markdown card]
+- ❤️ UI Editor for [alarm panel card]
+- ❤️ UI Editor for [thermostat card]
+- ❤️ UI Editor for [entity button card]
+- ❤️ UI Editor for [map card]
- 📣 [alarm panel card]: Hide keypad if `code_format` attribute is not "Number"
- 📣 [alarm panel card]: Hide code input field if `code_format` attribute is not set
-- 📣 UI Editor for [picture card]
-- 📣 UI Editor for [weather forecast card]
-- 📣 UI Editor for [plant status card]
-- 📣 UI Editor for [media control card]
-- 📣 UI Editor for [iframe card]
-- 📣 UI Editor for [sensor card]
-- 📣 UI Editor for [shopping list card]
-- 📣 UI Editor for [light card]
-- 📣 UI Editor for [gauge card]
-- 📣 UI Editor for [markdown card]
-- 📣 UI Editor for [alarm panel card]
-- 📣 UI Editor for [thermostat card]
-- 📣 UI Editor for [entity button card]
-- 📣 UI Editor for [map card]
- 🔧 [thermostat card] Step logic updated to match more-info behavior
- 🔧 [weather forecast card] Proper RTL support
- 🔧 [thermostat card] Set minimum height of card
@@ -122,11 +158,11 @@ description: "Changelog of the Lovelace UI."
- ⚠️ [picture glance card]: `tap_action` and `hold_action` configurations changed. See docs.
### All Changes
-- 📣 [weather forecast card]: New config `name`
-- 📣 [thermostat card]: New config `name`
-- 📣 [plant status card]: New config `name`
+- ❤️ [weather forecast card]: New config `name`
+- ❤️ [thermostat card]: New config `name`
+- ❤️ [plant status card]: New config `name`
+- ❤️ [picture elements card]: Added `state_image` and `camera_image`
- 📣 [entities card]: Alert entity rows are now displayed as toggles
-- 📣 [picture elements card]: Added `state_image` and `camera_image`
- 📣 Ability to generate a Lovelace config if not present using available entities
- 📣 UI Editor now in Beta with support for adding/removing views/cards
- 🔧 [map card]: Fix `aspect_ratio`
@@ -136,21 +172,21 @@ description: "Changelog of the Lovelace UI."
- ❤️ New card type: `shopping-list`
## Changes in 0.82.0
-- 📣 New card type: `light` ❤️
-- 📣 Alpha release of UI Editor
-- 📣 [entities card]: can be themed
-- 📣 [gauge card]: can be themed
-- 📣 [light card]: can be themed
-- 📣 [thermostat card]: can be themed
+- ❤️ New card type: `light`
+- ❤️ Alpha release of UI Editor
+- ❤️ [entities card]: New `theme` option
+- ❤️ [gauge card]: New `theme` option
+- ❤️ [light card]: New `theme` option
+- ❤️ [thermostat card]: New `theme` option
- 🔧 `!secret` and `!include` usage restored for manual editing, but are not supported with the UI editor
## Changes in 0.81.0
- ❤️ New card type: `alarm-panel`
- ❤️ New card type: `thermostat`
- ❤️ New card type: `entity-button`
-- 📣 [glance card]: can be themed
-- 📣 [glance card]: define columns within
-- 📣 [entity button card]: can be themed
+- ❤️ [glance card]: New `theme` option
+- ❤️ [glance card]: New `columns` option
+- ❤️ [entity button card]: New `theme` option
- 📣 Long press is now supported
- 📣 Update to allow the use of Custom UI. If you run into issues please disable Custom UI and test before reporting them. If the issue goes away without Custom UI please report this to the Custom UI developer as this is not officially supported.
@@ -167,11 +203,11 @@ description: "Changelog of the Lovelace UI."
- ⚠️ [glance card]: `turn-on` replaced with `call-service`
### All changes
-- 📣 Add support for CSS imports
- ❤️ New card type: `conditional-card` (Drop your [entity filter card] hacks)
+- 📣 Add support for CSS imports
- 📣 [picture glance card]: Add support for custom icons
- 📣 [picture entity card]: Supports hiding name and/or state
-- 📣 [glance card]: `turn-on` replaced with `call-service`
+- ⚠️ [glance card]: `turn-on` replaced with `call-service`
- 📣 [glance card]: Allow selectively empty names
- 📣 [picture elements card]: `state-label` now supports prefix and suffix
- 📣 [entities card]: Row dividers
From 37ddc65f5c4f98058ca85ce019692517aa1a5600 Mon Sep 17 00:00:00 2001
From: Eliseo Martelli
Date: Tue, 29 Oct 2019 11:09:21 +0100
Subject: [PATCH 11/56] Delete GTT Documentation (#11022)
* Delete GTT Documentation
* Removed GTT Redirects
* Delete gtt.png
---
source/_integrations/gtt.markdown | 34 -------------------------
source/_redirects | 2 --
source/images/supported_brands/gtt.png | Bin 20260 -> 0 bytes
3 files changed, 36 deletions(-)
delete mode 100644 source/_integrations/gtt.markdown
delete mode 100644 source/images/supported_brands/gtt.png
diff --git a/source/_integrations/gtt.markdown b/source/_integrations/gtt.markdown
deleted file mode 100644
index a4d5e7bb764..00000000000
--- a/source/_integrations/gtt.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: "GTT"
-description: "Instructions on how to integrate timetable data for a GTT stop within Home Assistant."
-ha_category:
- - Transport
-logo: gtt.png
-ha_iot_class: Cloud Polling
-ha_release: 0.85
----
-
-
-The `gtt` sensor will give you the departure time of the next bus at the given stop.
-
-To enable this sensor, add the following lines to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: gtt
- stop: '1080'
- bus_name: '58B'
-```
-{% configuration %}
-stop:
- description: The name of the stop.
- required: true
- type: string
-bus_name:
- description: The name of the chosen bus.
- required: false
- type: string
-{% endconfiguration %}
-
-The data is coming from the [gtt.to.it](http://www.gtt.to.it/cms/) website.
diff --git a/source/_redirects b/source/_redirects
index 59b2ef6626a..508361b8762 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -736,7 +736,6 @@
/components/sensor.gpsd /integrations/gpsd
/components/sensor.greeneye_monitor /integrations/greeneye_monitor
/components/sensor.gtfs /integrations/gtfs
-/components/sensor.gtt /integrations/gtt
/components/sensor.habitica /integrations/habitica
/components/sensor.haveibeenpwned /integrations/haveibeenpwned
/components/sensor.hddtemp /integrations/hddtemp
@@ -1418,7 +1417,6 @@
/components/growatt_server /integrations/growatt_server
/components/gstreamer /integrations/gstreamer
/components/gtfs /integrations/gtfs
-/components/gtt /integrations/gtt
/components/habitica /integrations/habitica
/components/hangouts /integrations/hangouts
/components/harman_kardon_avr /integrations/harman_kardon_avr
diff --git a/source/images/supported_brands/gtt.png b/source/images/supported_brands/gtt.png
deleted file mode 100644
index 33f88ea524863392ab22697485faa1e240fe86fe..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 20260
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Ð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
ximvt30Gk6MZmnIf=KEK_NB`Yoi|Jh6OuI|sMl
From d69973657d91eca4b568370435421bda2e22ff04 Mon Sep 17 00:00:00 2001
From: thoscut
Date: Wed, 30 Oct 2019 08:22:48 +0100
Subject: [PATCH 12/56] Update documentation on folder sensor attributes
(#11044)
---
source/_integrations/folder.markdown | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/folder.markdown b/source/_integrations/folder.markdown
index 23be9c142f3..27b52d18ebd 100644
--- a/source/_integrations/folder.markdown
+++ b/source/_integrations/folder.markdown
@@ -8,7 +8,8 @@ ha_iot_class: Local Polling
ha_release: 0.64
---
-Sensor for monitoring the contents of a folder. Note that folder paths must be added to [whitelist_external_dirs](/docs/configuration/basic/). Optionally a [wildcard filter](https://docs.python.org/3.6/library/fnmatch.html) can be applied to the files considered within the folder. The state of the sensor is the size in MB of files within the folder that meet the filter criteria. The number of filtered files in the folder and total size in bytes of those files are exposed as attributes.
+Sensor for monitoring the contents of a folder. Note that folder paths must be added to [whitelist_external_dirs](/docs/configuration/basic/). Optionally a [wildcard filter](https://docs.python.org/3.6/library/fnmatch.html) can be applied to the files considered within the folder. The state of the sensor is the size in MB of files within the folder that meet the filter criteria.
+The sensor exposes the number of filtered files in the folder, total size in bytes of those files and a comma separated list of the file paths as attributes.
## Configuration
From c90e2f0cb7f926b612a2835cb2622fa98e55f9b9 Mon Sep 17 00:00:00 2001
From: Sebastian Muszynski
Date: Wed, 30 Oct 2019 16:13:09 +0100
Subject: [PATCH 13/56] Add Xiaomi Air Quality Monitor (cgllc.airmonitor.b1)
(#11027)
---
.../air_quality.xiaomi_miio.markdown | 48 +++++++++++++++++++
.../_integrations/sensor.xiaomi_miio.markdown | 7 ++-
2 files changed, 51 insertions(+), 4 deletions(-)
create mode 100644 source/_integrations/air_quality.xiaomi_miio.markdown
diff --git a/source/_integrations/air_quality.xiaomi_miio.markdown b/source/_integrations/air_quality.xiaomi_miio.markdown
new file mode 100644
index 00000000000..84ed346c516
--- /dev/null
+++ b/source/_integrations/air_quality.xiaomi_miio.markdown
@@ -0,0 +1,48 @@
+---
+title: "Xiaomi Air Quality Monitor"
+description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
+logo: xiaomi.png
+ha_category:
+ - Health
+ha_iot_class: Local Polling
+ha_release: 0.102
+---
+
+The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor and reporting the air quality values.
+
+Currently, the supported features are:
+
+- Particulate matter 2.5
+- Attributes
+ - carbon_dioxide_equivalent
+ - total_volatile_organic_compounds
+
+Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token.
+
+## Configuration
+
+To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+air_quality:
+ - platform: xiaomi_miio
+ host: IP_ADDRESS
+ token: YOUR_TOKEN
+```
+
+{% configuration %}
+host:
+ description: The IP address of your miio device.
+ required: true
+ type: string
+token:
+ description: The API token of your miio device.
+ required: true
+ type: string
+name:
+ description: The name of your miio device.
+ required: false
+ type: string
+ default: Xiaomi Miio Air Quality Monitor
+{% endconfiguration %}
diff --git a/source/_integrations/sensor.xiaomi_miio.markdown b/source/_integrations/sensor.xiaomi_miio.markdown
index 2c0fc265f9a..04f18298eeb 100644
--- a/source/_integrations/sensor.xiaomi_miio.markdown
+++ b/source/_integrations/sensor.xiaomi_miio.markdown
@@ -1,6 +1,6 @@
---
-title: "Xiaomi Air Quality Monitor"
-description: "Instructions how to integrate your Xiaomi Mi Air Quality Monitor within Home Assistant."
+title: "Xiaomi Air Quality Index Monitor"
+description: "Instructions how to integrate your Xiaomi Mi Air Quality Index Monitor within Home Assistant."
logo: xiaomi.png
ha_category:
- Health
@@ -29,8 +29,7 @@ To add a Xiaomi Mi Air Quality Monitor to your installation, add the following t
# Example configuration.yaml entry
sensor:
- platform: xiaomi_miio
- name: Xiaomi Air Quality Monitor
- host: 192.168.130.73
+ host: IP_ADDRESS
token: YOUR_TOKEN
```
From 0228fc1f87861cac0a0ed42e2817c6bdc6cb66e2 Mon Sep 17 00:00:00 2001
From: springstan <46536646+springstan@users.noreply.github.com>
Date: Fri, 1 Nov 2019 09:52:17 +0100
Subject: [PATCH 14/56] Updated decora switch documentation (#11051)
---
source/_integrations/decora.markdown | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/source/_integrations/decora.markdown b/source/_integrations/decora.markdown
index 8e3d4e932a8..5357de2a2c4 100644
--- a/source/_integrations/decora.markdown
+++ b/source/_integrations/decora.markdown
@@ -32,15 +32,17 @@ devices:
mac_address:
required: true
description: The bluetooth address of the switch.
- type: string
- name:
- description: The name to use in the frontend.
- required: false
- type: string
- api_key:
- description: The API key to access the device.
- required: true
- type: string
+ type: list
+ keys:
+ name:
+ description: The name to use in the frontend.
+ required: false
+ default: "`mac_address` of this switch"
+ type: string
+ api_key:
+ description: The API key to access the device.
+ required: true
+ type: string
{% endconfiguration %}
From 3615cebb5d86c2b7fcb8e060c5e55dc0298ac616 Mon Sep 17 00:00:00 2001
From: SukramJ
Date: Mon, 4 Nov 2019 09:55:37 +0100
Subject: [PATCH 15/56] Add dump config service to HomematicIP Cloud (#10999)
---
source/_integrations/homematicip_cloud.markdown | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown
index 800d3e9f9a1..f11252f64db 100644
--- a/source/_integrations/homematicip_cloud.markdown
+++ b/source/_integrations/homematicip_cloud.markdown
@@ -160,6 +160,7 @@ Within this delay the device registration should be completed in the App, otherw
- `homematicip_cloud.deactivate_eco_mode`: Deactivates the eco mode immediately.
- `homematicip_cloud.deactivate_vacation`: Deactivates the vacation mode immediately.
- `homematicip_cloud.set_active_climate_profile`: Set the active climate profile index.
+- `homematicip_cloud.dump_hap_config`: Dump the configuration of the Homematic IP Access Point(s).
### Service Examples
@@ -234,6 +235,16 @@ action:
climate_profile_index: 1
```
+Dump the configuration of the Homematic IP Access Point(s).
+
+```yaml
+...
+action:
+ service: homematicip_cloud.dump_hap_config
+ data:
+ anonymize: True
+```
+
## Additional info
From a67e08d9f17bc8c7b6a3ef20d7c0ca5c58f0b656 Mon Sep 17 00:00:00 2001
From: Kevin McCormack
Date: Mon, 4 Nov 2019 04:37:18 -0500
Subject: [PATCH 16/56] Update Vivotek integration (#10899)
Make stream path optionally configurable.
---
source/_integrations/vivotek.markdown | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/source/_integrations/vivotek.markdown b/source/_integrations/vivotek.markdown
index 6cf273bd8ab..63a479470d0 100644
--- a/source/_integrations/vivotek.markdown
+++ b/source/_integrations/vivotek.markdown
@@ -58,6 +58,11 @@ framerate:
required: false
default: 2
type: integer
+stream_path:
+ description: This parameter allows you to override the stream path.
+ required: false
+ default: live.sdp
+ type: string
{% endconfiguration %}
### Advanced configuration
@@ -73,6 +78,7 @@ camera:
password: !secret fd_camera_pwd
verify_ssl: false
framerate: 5
+ stream_path: live2.sdp
```
### Services
From 3d995495988b94f3daef880946250d21a57069ec Mon Sep 17 00:00:00 2001
From: Santobert
Date: Mon, 4 Nov 2019 11:34:53 +0100
Subject: [PATCH 17/56] Add scene.create service (#11030)
* Add service scene.create
* State is mandatory
* Revert out of scope change
* Update format
---
source/_integrations/scene.markdown | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown
index 2745e4825ef..0e52c743523 100644
--- a/source/_integrations/scene.markdown
+++ b/source/_integrations/scene.markdown
@@ -88,3 +88,29 @@ automation:
## Reloading scenes
Whenever you make a change to your scene configuration, you can call the `scene.reload` service to reload the scenes.
+
+## Creating scenes on the fly
+
+Create a new scene without having to configure it by calling the `scene.create` service. This scene will be discarded after reloading the configuration.
+
+You need to pass a `scene_id` in lowercase and with underscores instead of spaces. You also need to specify the entities in the same format as when configuring the scene.
+
+```yaml
+# Example automation
+automation:
+ trigger:
+ platform: homeassistant
+ event: start
+ action:
+ service: scene.create
+ data:
+ scene_id: my_scene
+ entities:
+ light.tv_back_light:
+ state: on
+ brightness: 100
+ light.ceiling: off
+ media_player.sony_bravia_tv:
+ state: on
+ source: HDMI 1
+```
From 50ca49be845d55674da994346308899e9c91a136 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?=
Date: Mon, 4 Nov 2019 22:25:37 +0200
Subject: [PATCH 18/56] =?UTF-8?q?Modernize=20Huawei=20LTE,=20add=20UI=20co?=
=?UTF-8?q?nfig,=20unauthenticated=20mode,=20swi=E2=80=A6=20(#10380)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Modernize Huawei LTE, add config entry support, unauthenticated mode etc
* Note Huawei LTE no longer using known_devices.yaml
* Update info about enabled/disabled entities
* Note Huawei LTE mobile data switch support
* Support Huawei LTE SSDP discovery
* Link to supported integrations from SSDP, tweak deCONZ spelling
* Note mobile data switch is enabled by default
* Remove comma
* Minor changes
* Clarify which are LTE signal sensors
* Remove notify from config example
* Remove username and password from config example
Co-authored-by: Fabian Affolter
---
source/_integrations/device_tracker.markdown | 2 +-
source/_integrations/huawei_lte.markdown | 195 ++++++++-----------
source/_integrations/ssdp.markdown | 5 +-
3 files changed, 80 insertions(+), 122 deletions(-)
diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown
index ed6a3b95280..74fd82bb99e 100644
--- a/source/_integrations/device_tracker.markdown
+++ b/source/_integrations/device_tracker.markdown
@@ -64,7 +64,7 @@ Multiple device trackers can be used in parallel, such as [Owntracks](/integrati
-As of 0.94 `known_devices.yaml` is being phased out, and no longer used by all trackers. Depending on the integration you use this section may no longer apply. This includes the mobile app, OwnTracks, GeoFency, GPSLogger, and Locative.
+As of 0.94 `known_devices.yaml` is being phased out and no longer used by all trackers. Depending on the integration you use this section may no longer apply. This includes the mobile app, OwnTracks, GeoFency, GPSLogger, Locative and Huawei LTE.
diff --git a/source/_integrations/huawei_lte.markdown b/source/_integrations/huawei_lte.markdown
index 601d271afc7..4a8b8585f7c 100644
--- a/source/_integrations/huawei_lte.markdown
+++ b/source/_integrations/huawei_lte.markdown
@@ -1,28 +1,75 @@
---
-title: "Huawei LTE Routers"
-description: "Instructions on how to integrate Huawei LTE routers with Home Assistant."
+title: "Huawei LTE"
+description: "Instructions on how to integrate Huawei LTE router and modem devices with Home Assistant."
logo: huawei.svg
ha_category:
- Network
- Presence Detection
- Notifications
- Sensor
+ - Switch
ha_release: 0.79
ha_iot_class: Local Polling
---
-The Huawei LTE router integration for Home Assistant allows you to observe and control [Huawei LTE routers](https://consumer.huawei.com/en/smart-home/).
+The Huawei LTE router and modem integration for Home Assistant allows you to observe and control [Huawei LTE devices](https://consumer.huawei.com/en/smart-home/).
-There is currently support for the following device types within Home Assistant:
+There is currently support for the following platforms within Home Assistant:
-- [Presence Detection](#presence-detection) - a device tracker for connected devices
-- [Notifications](#notifications)
-- [Sensor](#sensor) - with device, signal, and traffic information
-
-All platform requires you to have set up the [Huawei LTE component](#configuration).
+- Presence detection - device tracker for connected devices
+- Notifications - via SMS
+- Sensors - device, signal, and traffic information
+- Switch - mobile data on/off
## Configuration
+The integration can be enabled in two ways, either using the frontend
+or using YAML. Additionally, if the [SSDP integration](../ssdp/) is
+enabled in Home Assistant, automatically discovered Huawei LTE devices
+which support and have UPnP enabled are made available for further
+optional configuration in the frontend.
+
+The integration can be run with or without
+authentication. Authenticated mode enables all available integration
+features and entities, but may interfere with accessing the device web
+interface from another source such as a browser while the integration
+is active or vice versa. The exact list of features requiring
+authentication to work varies by device and firmware version. The
+integration will try to use all configured ones and fail gracefully if
+it detects one requiring authentication in unauthenticated mode.
+
+Only a subset of the entities provided by the target device by
+default:
+
+- WAN IP address sensor
+- LTE signal sensors RSRQ, RSRP, RSSI, and SINR
+- mobile data switch
+- device tracker entries
+
+The rest are added to the entity registry, but disabled by default.
+
+Support for different categories of information and thus available
+entities varies by device model and firmware version.
+
+### Configuration via the frontend
+
+Menu: **Configuration** -> **Integrations**.
+
+Click on the `+` sign to add an integration and click on **Huawei
+LTE**, and follow the configuration flow. After finishing, the Huawei
+LTE integration will be available.
+
+To use unauthenticated mode, leave username and password empty. The
+integration will then attempt to first use empty strings to
+authenticate and fall back to unauthenticated mode in case that
+fails. If this process does not yield desired results, the YAML
+configuration (see below) is available for more fine grained control.
+
+Default list of notification recipient phone numbers can be set using
+the integration's configuration options.
+
+### Configuration via YAML
+
To enable the component, add the following lines to your
`configuration.yaml` file:
@@ -30,132 +77,42 @@ To enable the component, add the following lines to your
# Example configuration.yaml entry
huawei_lte:
- url: http://192.168.100.1/
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
```
+For routers configured via the UI, each configuration item for the
+same router in YAML overrides and updates the values set in UI
+whenever the YAML configuration values are introduced or updated.
{% configuration %}
url:
- description: URL of the router web interface.
+ description: URL of the device web interface. Typically http://192.168.100.1/ or http://192.168.1.1/.
required: true
type: string
username:
- description: The username used for the router web interface.
- required: true
+ description: The username used for the device web interface in authenticated mode. Typically `admin`, or empty string (`""`) for USB stick modems. To use unauthenticated mode, leave this variable out altogether.
+ required: false
type: string
password:
- description: The password used for the router web interface.
- required: true
+ description: The password used for the device web interface in authenticated mode. Typically empty string (`""`) for USB stick modems. To use unauthenticated mode, leave this variable out altogether.
+ required: false
type: string
+notify:
+ description: Enable notifications using SMS messages. To use notifications, please see the [getting started with automation page](/getting-started/automation/).
+ required: false
+ type: map
+ keys:
+ recipient:
+ description: The phone number of a default recipient or a list with multiple recipients.
+ required: false
+ type: [string, list]
{% endconfiguration %}
-### Tested routers
+### Tested devices
-Routers we know to be working with this integration based on the documentation of used libraries and reports by users:
+Devices we know to be working with this integration based on the [documentation of used libraries](https://github.com/Salamek/huawei-lte-api/#huawei-lte-api) and reports by users:
- Huawei B310s-22
- Huawei B525s-23a
- Huawei E5186s-22a
- Huawei B618
-This is not a complete list. The integration can probably connect to other Huawei LTE routers running similar firmware.
-
-## Presence Detection
-
-This platform offers presence detection by looking at connected devices to a [Huawei LTE router](https://consumer.huawei.com/en/smart-home/).
-
-To enable the sensor, add the following lines to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-device_tracker:
- - platform: huawei_lte
-```
-
-See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked.
-
-## Notifications
-
-The `huawei_lte` platform allows you to use a Huawei LTE router for notifications from Home Assistant. The messages will be sent as SMS text messages.
-
-```yaml
-# Example configuration.yaml entry
-notify:
- - platform: huawei_lte
- recipient: "+15105550123"
-```
-
-{% configuration %}
-recipient:
- description: The phone number of a default recipient or a list with multiple recipients.
- required: true
- type: [string, list]
-name:
- description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- required: false
- default: notify
- type: string
-url:
- description: The router to use. Not needed if you only have one.
- required: false
- type: string
-{% endconfiguration %}
-
-To use notifications, please see the [getting started with automation page](/getting-started/automation/).
-
-## Sensor
-
-The `huawei_lte` sensor platform allows you to monitor Huawei LTE routers.
-
-The names for the item you want to monitor are dot separated paths to information returned by the router. The data set varies by router model. To see what your router provides, set logging level to debug and watch `homeassistant.components.huawei_lte` debug entries. The configuration variable description contains a few example paths just to illustrate the syntax. These may not be available on all routers or their semantics may differ, and there are quite likely many more that are not listed here.
-
-To enable the sensor, add the following lines to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: huawei_lte
- monitored_conditions:
- - device_information.SoftwareVersion
- - device_signal.rssi
- - monitoring_traffic_statistics.CurrentDownloadRate
- - monitoring_traffic_statistics.TotalConnectTime
-```
-
-{% configuration %}
-monitored_conditions:
- description: Defines the data to monitor as sensors. Defaults to a few generally available data items expected to be available on most boxes.
- required: false
- default: Below is indicated which conditions are the default.
- type: list
- keys:
- device_information.SoftwareVersion:
- description: Software version.
- device_information.WanIPAddress:
- description: WAN interface IPv4 address.
- default: default
- device_information.WanIPv6Address:
- description: WAN interface IPv6 address.
- device_signal.rsrq:
- description: The signal RSRQ value.
- default: default
- device_signal.rsrp:
- description: The signal RSRP value.
- default: default
- device_signal.rssi:
- description: The signal RSSI value.
- default: default
- device_signal.sinr:
- description: The signal SINR value.
- default: default
- monitoring_traffic_statistics.CurrentDownloadRate:
- description: Current download rate, bytes/sec.
- monitoring_traffic_statistics.CurrentUploadRate:
- description: Current upload rate, bytes/sec.
- monitoring_traffic_statistics.TotalUpload:
- description: Total bytes uploaded since last reset.
- monitoring_traffic_statistics.TotalDownload:
- description: Total bytes downloaded since last reset.
- monitoring_traffic_statistics.TotalConnectTime:
- description: Total time connected since last reset.
-{% endconfiguration %}
+This is not a complete list. The integration can probably connect to other Huawei LTE devices running similar firmware.
diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown
index 32704541803..7627c272b64 100644
--- a/source/_integrations/ssdp.markdown
+++ b/source/_integrations/ssdp.markdown
@@ -23,5 +23,6 @@ ssdp:
The following integrations are automatically discovered by the SSDP integration:
- - Deconz
- - Philips Hue
+ - [deCONZ](../deconz/)
+ - [Huawei LTE](../huawei_lte/)
+ - [Philips Hue](../hue/)
From a866289e58c87ad1775fbbb6fcc18aa60c736394 Mon Sep 17 00:00:00 2001
From: chriscla
Date: Mon, 4 Nov 2019 13:03:38 -0800
Subject: [PATCH 19/56] Nzbget download event (#10838)
* Add nzbget downloaded event.
* Move raw tags outside the code block
* Match event name to code
---
source/_integrations/nzbget.markdown | 31 +++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/nzbget.markdown b/source/_integrations/nzbget.markdown
index 637acca2f3b..65a743d2198 100644
--- a/source/_integrations/nzbget.markdown
+++ b/source/_integrations/nzbget.markdown
@@ -66,6 +66,35 @@ This component will create these sensors:
- `nzbget_uptime`: NZBGet server uptime.
- `nzbget_size`: Amount of data downloaded since server start in MB.
+## Event Automation
+
+The NZBGet integration continuously monitors nzbget's download history. When a download completes, an event usable for automation is triggered on the Home Assistant Bus.
+
+Possible events are:
+
+- `nzbget_download_complete`
+
+The event includes the name, category, and status of the downloaded nzb.
+
+Example automation to send a Telegram message on a completed download:
+{% raw %}
+
+```yaml
+- alias: Completed Torrent
+ trigger:
+ platform: event
+ event_type: nzbget_download_complete
+ - event_data:
+ category: tv
+ action:
+ service: notify.telegram_notifier
+ data_template:
+ title: "Download completed!"
+ message: "{{trigger.event.data.name}}"
+```
+
+{% endraw %}
+
## Services
Available services:
@@ -76,6 +105,6 @@ Available services:
### Service `nzbget/set_speed`
-| Service data attribute | Optional | Description |
+| Service data attribute | Optional | Description |
|------------------------|----------|-------------------------------------------------------------------------------------------------|
| `speed` | yes | Sets the download speed limit, specified in Kb/s. 0 disables the speed limit. Defaults to 1000. |
From c70899665a9eb9420a537e55eb863337902e80c7 Mon Sep 17 00:00:00 2001
From: Martin
Date: Mon, 4 Nov 2019 22:07:11 +0100
Subject: [PATCH 20/56] Add ViCare heating_type (#10656)
---
source/_integrations/vicare.markdown | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index 4bb79f76745..9cbaf4b3d36 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -43,6 +43,11 @@ circuit:
description: Heating circuit of your heating device if multiple exist
required: false
type: integer
+heating_type:
+ description: One of `generic`, `gas` or `heatpump`. Specifying the heating_type provides additional attributes specific for the heating system.
+ required: false
+ type: string
+ default: generic
{% endconfiguration %}
Two components will be created: `climate.vicare_heating` and `water_heater.vicare_water` (for domestic hot water).
From 00545e5c01f644c6082b18a808cf4d96e648e0ee Mon Sep 17 00:00:00 2001
From: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Date: Wed, 6 Nov 2019 02:24:57 +1300
Subject: [PATCH 21/56] Update juicenet docs with switch (#10917)
* Update juicenet docs with switch
* Add switch category
* Add car category
---
source/_integrations/juicenet.markdown | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/source/_integrations/juicenet.markdown b/source/_integrations/juicenet.markdown
index 0ff4e490a91..15fca05b5ac 100644
--- a/source/_integrations/juicenet.markdown
+++ b/source/_integrations/juicenet.markdown
@@ -3,12 +3,15 @@ title: "Juicenet"
description: "Instructions on how to setup WiFi-equipped Juicenet charging stations with Home Assistant."
logo: juicenet.png
ha_category:
+ - Car
- Energy
- Sensor
+ - Switch
+ha_iot_class: Cloud Polling
ha_release: 0.47
---
-The `juicenet` sensor platform pulls data from a [JuiceNet](https://emotorwerks.com/products/juicenet/) charging station equipped with a wifi connection. It will access and make available all of the devices attached to your account.
+The `juicenet` sensor platform pulls data from a [JuiceNet](https://emotorwerks.com/products/juicenet/) charging station equipped with a wifi connection. It will access and make available all of the devices attached to your account. It also exposes a switch allowing you to charge your car now instead of waiting for the pre-set schedule.
## Configuration
@@ -41,4 +44,4 @@ These sensors will be added for each juicenet device in your account:
- Amps
- Watts
- Charge time of session
-- Energy added this session
\ No newline at end of file
+- Energy added this session
From 9747e9afa266acde0c83b04d77d00c963612ff3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kevin=20K=C3=B6ck?=
Date: Wed, 6 Nov 2019 13:51:11 +0100
Subject: [PATCH 22/56] fix missing climate temperature_low/high_state_tpl
(#11072)
---
source/_integrations/climate.mqtt.markdown | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown
index 13695adc756..4242674bfc2 100644
--- a/source/_integrations/climate.mqtt.markdown
+++ b/source/_integrations/climate.mqtt.markdown
@@ -149,6 +149,10 @@ temperature_low_state_topic:
description: The MQTT topic to subscribe for changes in the target low temperature. If this is not set, the target low temperature works in optimistic mode (see below).
required: false
type: string
+temperature_low_state_template:
+ description: A template to render the value received on the `temperature_low_state_topic` with.
+ required: false
+ type: template
temperature_high_command_topic:
description: The MQTT topic to publish commands to change the high target temperature.
required: false
@@ -157,6 +161,10 @@ temperature_high_state_topic:
description: The MQTT topic to subscribe for changes in the target high temperature. If this is not set, the target high temperature works in optimistic mode (see below).
required: false
type: string
+temperature_high_state_template:
+ description: A template to render the value received on the `temperature_high_state_topic` with.
+ required: false
+ type: template
precision:
description: The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`.
required: false
From c9e162a2c07786f5bd28944ee363ab924a1fa647 Mon Sep 17 00:00:00 2001
From: "J.P. Hutchins" <34154542+JPHutchins@users.noreply.github.com>
Date: Wed, 6 Nov 2019 13:06:22 -0800
Subject: [PATCH 23/56] Add info about torrents that is accessible with
templating (#10574)
* Add documentation corresponding to PR #27111
https://github.com/home-assistant/home-assistant/pull/27111
* Add ```jinja2 to code tag.
* Try ```raw to get passed liquid syntax error.
* Add Jekyll {raw} and {endraw}.
Still trying to pass jinja2 excerpt.
* Update docs corresponding to removal of torrent_info sensor.
* :pencil2: Tweaks
---
source/_integrations/transmission.markdown | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/source/_integrations/transmission.markdown b/source/_integrations/transmission.markdown
index c4e1f554849..8981e96f6fc 100644
--- a/source/_integrations/transmission.markdown
+++ b/source/_integrations/transmission.markdown
@@ -120,3 +120,21 @@ Adds a new torrent to download. It can either be a URL (http, https or ftp), mag
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `torrent` | no | Torrent to download
+
+## Templating
+
+### Sensor `started_torrents`
+
+The state attribute `torrent_info` contains information about the torrents that are currently downloading. You can see this information in **Developer Tools** -> **States** -> `sensor.transmission_started_torrents` -> **Attributes**, or by adding a Markdown Card to Lovelace.
+
+{% raw %}
+```yaml
+content: >
+ {% set payload = state_attr('sensor.transmission_started_torrents', 'torrent_info') %}
+
+ {% for torrent in payload.items() %} {% set name = torrent[0] %} {% set data = torrent[1] %}
+
+ {{ name|truncate(20) }} is {{ data.percent_done }}% complete, {{ data.eta }} remaining {% endfor %}
+type: markdown
+```
+{% endraw %}
From f58f755ac123c9f38e29ab9ae6046ffc8671b428 Mon Sep 17 00:00:00 2001
From: Josh Bendavid
Date: Wed, 6 Nov 2019 22:08:51 +0100
Subject: [PATCH 24/56] Update with added options for multiple event types and
emulated key hold events. (#10836)
* Update with added options for multiple event types and emulated key hold events.
* Update keyboard_remote.markdown
* Change delay and repeat settings to float
---
source/_integrations/keyboard_remote.markdown | 28 ++++++++++++++++---
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/source/_integrations/keyboard_remote.markdown b/source/_integrations/keyboard_remote.markdown
index 5ff4877008a..39a040962ca 100644
--- a/source/_integrations/keyboard_remote.markdown
+++ b/source/_integrations/keyboard_remote.markdown
@@ -22,10 +22,25 @@ keyboard_remote:
{% configuration %}
type:
- description: Possible values are `key_up`, `key_down`, and `key_hold`. Be careful, `key_hold` will fire a lot of events.
+ description: Possible values are `key_up`, `key_down`, and `key_hold`. Be careful, `key_hold` will fire a lot of events. This can be a list of types.
required: true
type: string
-device_description:
+emulate_key_hold:
+ description: Emulate key hold events when key is held down. (Some input devices do not send these otherwise.)
+ required: false
+ type: boolean
+ default: false
+emulate_key_hold_delay:
+ description: Number of milliseconds to wait before sending first emulated key hold event
+ required: false
+ type: float
+ default: 0.250
+emulate_key_hold_repeat:
+ description: Number of milliseconds to wait before sending subsequent emulated key hold event
+ required: false
+ type: float
+ default: 0.033
+device_descriptor:
description: Path to the local event input device file that corresponds to the keyboard.
required: false
type: string
@@ -45,9 +60,14 @@ A full configuration for two Keyboard Remotes could look like the one below:
```yaml
keyboard_remote:
- device_descriptor: '/dev/input/by-id/bluetooth-keyboard'
- type: 'key_up'
+ type: 'key_down'
+ emulate_key_hold: true
+ emulate_key_hold_delay: 250
+ emulate_key_hold_repeat: 33
- device_descriptor: '/dev/input/event0'
- type: 'key_up'
+ type:
+ - 'key_up'
+ - 'key_down'
```
Or like the following for one keyboard:
From 8f3640d27d8607d07d9b353f98e1afedf127dd1e Mon Sep 17 00:00:00 2001
From: Grodesh <4070488+Grodesh@users.noreply.github.com>
Date: Wed, 6 Nov 2019 16:09:41 -0500
Subject: [PATCH 25/56] Update nextbus.markdown (#10839)
Once the corresponding PR is merged, the configuration for the STOP_TAG will accept strings
---
source/_integrations/nextbus.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_integrations/nextbus.markdown b/source/_integrations/nextbus.markdown
index c05c001fd88..346ced63780 100644
--- a/source/_integrations/nextbus.markdown
+++ b/source/_integrations/nextbus.markdown
@@ -43,7 +43,7 @@ route:
stop:
description: The stop tag from NextBus.
required: true
- type: integer
+ type: string
name:
description: Name to use in the frontend.
required: false
From 4b997e3bfb8dc8ea60168160d0289c753c0efd2b Mon Sep 17 00:00:00 2001
From: Floris Van der krieken
Date: Wed, 6 Nov 2019 22:11:17 +0100
Subject: [PATCH 26/56] Add documentation for Unifi LED integration (#10720)
* Fixed configuration section
Fixed marked issues
The option "Id" is going to be removed in the integration, making a commit for that after this.
Added . to end of line
* Update source/_integrations/unifiled.markdown
Co-Authored-By: Klaas Schoute
* Update source/_integrations/unifiled.markdown
Co-Authored-By: Klaas Schoute
* Update unifiled.markdown
* Small fixes
* :pencil2: Tweaks
Co-authored-by: Franck Nijhof
---
source/_integrations/unifiled.markdown | 53 ++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 source/_integrations/unifiled.markdown
diff --git a/source/_integrations/unifiled.markdown b/source/_integrations/unifiled.markdown
new file mode 100644
index 00000000000..3ed773231c1
--- /dev/null
+++ b/source/_integrations/unifiled.markdown
@@ -0,0 +1,53 @@
+---
+title: "UniFi LED"
+description: "Instructions on how to configure the UniFi LED integration with UniFi LED Controller by Ubiquiti."
+logo: ubiquiti.png
+ha_category:
+ - Light
+ha_release: 0.102
+ha_iot_class: Local Polling
+---
+
+[UniFi LED](https://unifi-led.ui.com/) by [Ubiquiti Networks, inc.](https://www.ubnt.com/) is a system off controller managed led light panels and dimmers.
+
+There is currently support for the following device type within Home Assistant:
+
+- [Light](#light)
+
+## Configuration
+
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: unifiled
+ host: IP_ADDRESS
+ username: USERNAME
+ password: PASSWORD
+```
+
+{% configuration %}
+host:
+ description: Ip address or hostname used to connect to the Unifi LED controller.
+ type: string
+ required: true
+ default: None
+port:
+ description: Port used to connect to the Unifi LED controller.
+ type: string
+ required: false
+ default: 20443
+username:
+ description: Username used to log into the Unifi LED controller.
+ type: string
+ required: true
+ default: None
+password:
+ description: Password used to log into the Unifi LED controller.
+ type: string
+ required: true
+ default: None
+{% endconfiguration %}
+
+## Light
+
+The light panels output state and brightness are synchronized with home assistant.
From 00727dc53ce72d7f8c06f07e34f4650672ea2395 Mon Sep 17 00:00:00 2001
From: ssenart <37013755+ssenart@users.noreply.github.com>
Date: Wed, 6 Nov 2019 22:12:41 +0100
Subject: [PATCH 27/56] =?UTF-8?q?Add=20Presence=20Netatmo=20Camera=20servi?=
=?UTF-8?q?ces=20(set=5Flight=5Fauto,=20set=5Fligh=E2=80=A6=20(#10907)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
source/_integrations/netatmo.markdown | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown
index 6d6db350efc..5e4b34ffed7 100644
--- a/source/_integrations/netatmo.markdown
+++ b/source/_integrations/netatmo.markdown
@@ -251,6 +251,18 @@ camera:
- camera_name2
```
+### Services (only for camera)
+
+The services below permit to control whether the camera should monitor and alert on motion detection. Also, it allows to control the status of the flood light (only for Presence model).
+
+| Service | Description |
+| ------- | ----------- |
+| enable_motion_detection | Enable motion detection and alert.
+| disable_motion_detection | Disable motion detection and alert.
+| set_light_auto | Presence model only : Set flood light on automatic mode.
+| set_light_on | Presence model only : Set flood light on.
+| set_light_off | Presence model only : Set flood light off.
+
## Climate
The `netatmo` thermostat platform is consuming the information provided by a [Netatmo Smart Thermostat](https://www.netatmo.com/product/energy/thermostat) thermostat. This integration allows you to view the current temperature and setpoint.
From c5775e19d86749ea39d12561c9342a17df8a0825 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Wed, 6 Nov 2019 23:56:36 +0100
Subject: [PATCH 28/56] Add WLED integration (#11103)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add WLED integration
* Remove sensor & switch paltform
* Adds HA QA Scale 🏆
* :pencil2: Tweak
---
source/_integrations/wled.markdown | 45 ++++++++++++++++++++++++
source/images/supported_brands/wled.png | Bin 0 -> 2408 bytes
2 files changed, 45 insertions(+)
create mode 100644 source/_integrations/wled.markdown
create mode 100644 source/images/supported_brands/wled.png
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
new file mode 100644
index 00000000000..3b092f9b488
--- /dev/null
+++ b/source/_integrations/wled.markdown
@@ -0,0 +1,45 @@
+---
+title: "WLED"
+description: "Instructions on how to integrate WLED with Home Assistant."
+logo: wled.png
+ha_category:
+ - Light
+ha_release: 0.102
+ha_iot_class: Local Polling
+ha_qa_scale: platinum
+---
+
+[WLED](https://github.com/Aircoookie/WLED) is a fast and feature-rich
+implementation of an ESP8266/ESP32 webserver to control
+NeoPixel (WS2812B, WS2811, SK6812, APA102, and similar) LED's.
+
+## Configuration
+
+This integration can be configured using the integrations in the
+Home Assistant frontend.
+
+Menu: **Configuration** -> **Integrations**.
+
+In most cases, the WLED devices will be automatically discovered by
+Home Assistant. Those automatically discovered WLED devices are listed
+on the integrations page.
+
+If for some reason (e.g., due to lack of mDNS support on your network),
+the WLED device isn't discovered, it can be added manually.
+
+Click on the `+` sign to add an integration and click on **WLED**.
+After completing the configuration flow, the WLED
+integration will be available.
+
+## Lights
+
+This integration adds the WLED device as a light in Home Assistant.
+Home Assistant threats every segment of the LED strip as a separate light
+entity.
+
+Only native supported features of a light in Home Assistant are supported
+(which includes effects).
+
+## Services
+
+This integration currently does not offer any additional services.
diff --git a/source/images/supported_brands/wled.png b/source/images/supported_brands/wled.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e553ca7f55593827e40cf54a6cd2facfb28d1dd
GIT binary patch
literal 2408
zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4Yzkn1=x}&cn1H;CC?mvmFKt5-I
zM`SSr1K%MKW)#)%Y5)pKl(rIsj|=o#vnrnpA{P3Cy!
z>Eakt5%>10q2K`n2Ih?l+Vx?YjO*Wix^y>q13%D^p$tAWKaXo=R>+#$WW^}3)z5J*
zLr2u|1%3=JYl8#S85UjBTp`R5_*&!&XTyq8u2(D$SFBh|nMRdU95NHOx@{C;P+1$S
z!^+_KTEv^t;gZ$SAchHB{6>Xo5hkPQdBC!+#%KzsTlRLiCgnO>KGVPE8p=%opxbNS
a%n=uM7dV_;mj-G&F?hQAxvX
Date: Thu, 7 Nov 2019 10:30:44 +0000
Subject: [PATCH 29/56] Add switches (on/off) for geniushub outlets (#11095)
* Update docs for https://github.com/home-assistant/home-assistant/pull/28182
* initial improvements
* Update geniushub.markdown
* Update geniushub.markdown
* Update geniushub.markdown
---
source/_integrations/geniushub.markdown | 39 ++++++++++++++++++-------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/source/_integrations/geniushub.markdown b/source/_integrations/geniushub.markdown
index afea22c9b81..488351ed483 100644
--- a/source/_integrations/geniushub.markdown
+++ b/source/_integrations/geniushub.markdown
@@ -7,24 +7,32 @@ ha_category:
- Water Heater
- Sensor
- Binary Sensor
+ - Switch
ha_release: 0.92
ha_iot_class: Local Polling
---
The `geniushub` integration links Home Assistant with your Genius Hub CH/DHW system, including its zones, devices, and issues.
-It uses the [geniushub](https://pypi.org/project/geniushub-client/) client library, which provides data compatible with the v1 API that _may not_ necessarily match that of the official Web App.
+It uses the [geniushub](https://pypi.org/project/geniushub-client/) client library, which provides data compatible with the v1 API that _may not_ exactly match that of the official Web App.
### Zones
Each zone controlled by your Genius Hub will be exposed as either a:
-- `Climate` entity, for **Radiator** and **Wet Underfloor** Zones, and
-- `Water Heater` entity, for **Hot Water Temperature** Zones
+- `Climate` entity, for **Radiator** and **Wet Underfloor** zones, and
+- `Water Heater` entity, for **Hot Water Temperature** zones and
+- `Switch` entity, for **On/Off** zones
-Other zone types, such as **On/Off** zones, are not currently supported (although see `Binary Sensor`s, below).
+**Group** zones are not supported.
-Each entity derived from a GH zone will report back its mode, setpoint and current temperature; other properties are available via its attributes (see below). The zone's mode can be changed as below.
+Currently, there is no support for altering zone schedules, although entities can be switched to/from geniushub modes that utilize schedules.
+
+There are limitations due to the differences between the Genius Hub and Home Assisatnt schemas (e.g. HA has no **Footprint** mode) - see below for more details.
+
+### Climate and Water Heater Entities
+
+Climate and Water Heater entities will report their current temperature, setpoint and mode; other properties (e.g. occupied state) are available via their state attributes (see examples below). The Genius Hub mode will be reported as/set to:
GH mode | HA Operation | HA Preset
:---: | :---: | :---:
@@ -33,18 +41,27 @@ GH mode | HA Operation | HA Preset
**Override** | Heat | Boost
**Footprint** | Heat | Activity
+Note that `Boost` mode may
+
Note that **Footprint** mode is only available to **Radiator** zones that have room sensors.
-Currently, there is no support for reading/altering zone schedules, although a zone can be switched to/from modes that utilize schedules.
+### Switch Entities
+
+Switch entities will report back their state; other properties are available via their state attributes. Currently, HA switches do not have modes/presets, so the Home Assistant state will be reported as:
+
+- `On` for **Override** \ **On**, and
+- `Off` otherwise (NB: the zone could still be 'on', e.g. with **Timer** mode)
+
+If you turn a Switch entity `Off` via HA, it will revert to **Timer** mode.
### Devices
-Each Device controlled by your Genius hub will be exposed as either a:
+Each Device controlled by your Genius Hub will be exposed as either a:
- `Sensor` entity with a % battery, for any Device with a battery (e.g., a Genius Valve), or
- `Binary Sensor` entity with on/off state for any Device that is a switch (e.g., Smart Plugs, DCRs)
-Each such entity will report back its primary state and `assigned_zone`. If the Hub is directly polled using Option 1 (see below), then some additional attributes such as `last_comms` (last communications time) are also available.
+Such entities will report back their primary state and `assigned_zone`. If the Hub is directly polled using Option 1 (see below), then some additional state attributes such as `last_comms` (last communications time) are also available.
### Issues
@@ -89,7 +106,7 @@ This alert may be useful to see if the CH is being turned on whilst you're on a
## State Attributes
-Many zone/device properties are available via each entity's state attributes. For example, in the case of **Radiator**-derived `Climate` entities (note 'status'):
+Many zone/device properties are available via the corresponding entity's state attributes. For example, in the case of **Radiator**-derived `Climate` entities (note 'status'):
```json
{
@@ -148,9 +165,9 @@ This is the recommended option.
- Requires your **username** & **password**, as used with [geniushub.co.uk/app](https://www.geniushub.co.uk/app).
- Uses the v3 API - unofficial, but there are additional features (e.g., battery levels).
- Polls the hub directly (so is faster, say ~1s response time).
-- You have the option of specifying a MAC address.
+- You have the option of specifying a MAC address (not recommended, see above).
-The hub does not have to be in the same subnet as HA.
+The hub does not have to be in the same subnet as your Home Assistant server.
### Option 2: hub token only
From f174ad7c1dfb4065c727fd020cbc38459945ac66 Mon Sep 17 00:00:00 2001
From: Santobert
Date: Thu, 7 Nov 2019 11:31:51 +0100
Subject: [PATCH 30/56] Improve scene.create service (#11099)
* Improve scene.create service
* Update scene.markdown
---
source/_integrations/scene.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown
index 0e52c743523..feeb97158ae 100644
--- a/source/_integrations/scene.markdown
+++ b/source/_integrations/scene.markdown
@@ -95,6 +95,8 @@ Create a new scene without having to configure it by calling the `scene.create`
You need to pass a `scene_id` in lowercase and with underscores instead of spaces. You also need to specify the entities in the same format as when configuring the scene.
+If the scene was previously created by `scene.create`, it will be overwritten. If the scene was created by YAML, nothing happens but a warning in your log files.
+
```yaml
# Example automation
automation:
From 74335a57a81a46632eef1b6562cd173beca3908a Mon Sep 17 00:00:00 2001
From: Bouwe Westerdijk <11290930+bouwew@users.noreply.github.com>
Date: Thu, 7 Nov 2019 11:32:55 +0100
Subject: [PATCH 31/56] Plugwise docs updated to match pull-request #28237
(#11004)
* Updated to match pull-request #28237
* Updated according to review comments
---
source/_integrations/plugwise.markdown | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown
index 8f16749cfa7..6bbfcdf1149 100644
--- a/source/_integrations/plugwise.markdown
+++ b/source/_integrations/plugwise.markdown
@@ -26,6 +26,7 @@ climate:
password: YOUR_SHORT_IP
host: YOUR_SMILE_LOCAL_IP
```
+**Please note**: for a legacy Anna (firmware 1.8.x) an additional line is required, see below, this line is not needed for a more recent Anna (firmware 3.1.x).
{% configuration %}
password:
@@ -51,6 +52,11 @@ port:
required: false
type: integer
default: 80
+legacy_anna:
+ description: Indicate that the Anna is a legacy unit
+ required: false
+ type: boolean
+ default: false
min_temp:
description: If you want to adjust the lower boundary, the integration will not allow temperatures below the set value.
required: false
@@ -72,6 +78,7 @@ climate:
password: YOUR_SHORT_ID
host: YOUR_SMILE_LOCAL_IP
port: YOUR_SMILE_PORT_NUMBER
+ legacy_anna: true
min_temp: YOUR_MINIMAL_TARGET_TEMPERATURE
max_temp: YOUR_MAXIMAL_TARGET_TEMPERATURE
```
From 214c813eb6aa22ba20d09f56147ca1f7c636678a Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Fri, 8 Nov 2019 11:58:44 +0100
Subject: [PATCH 32/56] Add switch platform to WLED integration (#11120)
---
source/_integrations/wled.markdown | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index 3b092f9b488..ffe203e35e4 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -4,6 +4,7 @@ description: "Instructions on how to integrate WLED with Home Assistant."
logo: wled.png
ha_category:
- Light
+ - Switch
ha_release: 0.102
ha_iot_class: Local Polling
ha_qa_scale: platinum
@@ -40,6 +41,14 @@ entity.
Only native supported features of a light in Home Assistant are supported
(which includes effects).
+## Switches
+
+The integration will create a number of switches:
+
+- Nightlight.
+- Sync Receive.
+- Sync Send.
+
## Services
This integration currently does not offer any additional services.
From acee460bf3248c63a05d1afbba9e93488221cb02 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sat, 9 Nov 2019 20:55:28 +0100
Subject: [PATCH 33/56] Add sensor platform to WLED integration (#11128)
---
source/_integrations/wled.markdown | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index ffe203e35e4..58d01125884 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -4,6 +4,7 @@ description: "Instructions on how to integrate WLED with Home Assistant."
logo: wled.png
ha_category:
- Light
+ - Sensor
- Switch
ha_release: 0.102
ha_iot_class: Local Polling
@@ -41,6 +42,14 @@ entity.
Only native supported features of a light in Home Assistant are supported
(which includes effects).
+## Sensors
+
+This integration provides sensors for the following information from WLED:
+
+- Estimated current.
+- Uptime.
+- Free memory.
+
## Switches
The integration will create a number of switches:
From 31d274a6e83ca96bdb05213bce28be8c29a90ddc Mon Sep 17 00:00:00 2001
From: Bertie Blackman
Date: Sun, 10 Nov 2019 22:05:35 +0000
Subject: [PATCH 34/56] Update samsungtv.markdown (#11145)
---
source/_integrations/samsungtv.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown
index 885e9e98d7f..1baf862dbe5 100644
--- a/source/_integrations/samsungtv.markdown
+++ b/source/_integrations/samsungtv.markdown
@@ -107,6 +107,7 @@ Currently tested but not working models:
- JS8005 - State tracking working but unable to control (but port 8001 *is* open)
- JS9000 - State is always "on" and unable to control (but port 8001 *is* open)
- JS9500 - State is always "on" and unable to control (but port 8001 *is* open)
+- JU6445K - State is always "on" and unable to control (but port 8001 *is* open)
- JU6800 - Unable to see state and unable to control
- JU7000 - Unable to see state and unable to control (but port 8001 *is* open)
- JU7500 - Unable to see state and unable to control
From c97381591932a2492200e705da9062d334aa5ee3 Mon Sep 17 00:00:00 2001
From: fredericvl <34839323+fredericvl@users.noreply.github.com>
Date: Mon, 11 Nov 2019 05:02:36 +0100
Subject: [PATCH 35/56] =?UTF-8?q?Add=20optional=20name=20for=20clarity=20w?=
=?UTF-8?q?hen=20using=20multiple=20SAJ=20solar=20in=E2=80=A6=20(#11121)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Added support for multiple SAJ solar inverters
* Add text language flag to markdown
* Remove unnecessary docs + update name description
---
source/_integrations/saj.markdown | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/saj.markdown b/source/_integrations/saj.markdown
index c33aaae515d..98dc00e205e 100644
--- a/source/_integrations/saj.markdown
+++ b/source/_integrations/saj.markdown
@@ -31,6 +31,10 @@ host:
description: "The IP address of the SAJ Solar Inverter."
required: true
type: string
+name:
+ description: "An optional name for your SAJ Solar Inverter."
+ required: false
+ type: string
type:
description: "Type of connection module: 'ethernet' or 'wifi'"
required: false
@@ -57,7 +61,7 @@ Sensors available in the library:
| today_time | h | Inverter's running time for today. |
| today_max_current | W | Maximum current power for today. (only for connection via ethernet module) |
| total_yield | kWh | Total kWh generated to date. |
-| total_time | h | Total running time of the inverter . |
+| total_time | h | Total running time of the inverter. |
| total_co2_reduced | kg | Total CO2 in kg reduced. |
| temperature | °C | Temperature of the inverter. |
| state | N/A | Live state of the inverter. |
@@ -67,6 +71,7 @@ Sensors available in the library:
```yaml
sensor:
- platform: saj
+ name: MY_INVERTER_NAME
host: IP_ADDRESS_OF_DEVICE
type: wifi
username: USERNAME
From 5326e18653a49a4e989087797ecc4b1445c0922e Mon Sep 17 00:00:00 2001
From: Shulyaka
Date: Mon, 11 Nov 2019 07:27:27 +0300
Subject: [PATCH 36/56] new component: pcal9535a (#10336)
* copy from mcp23017
Signed-off-by: Denis Shulyaka
* HA version update
* Apply suggestions from code review
Co-Authored-By: Franck Nijhof
* Apply suggestions from code review
* HA release update
* :pencil2: Tweaks
Co-authored-by: Franck Nijhof
---
source/_components/pcal9535a.markdown | 123 ++++++++++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 source/_components/pcal9535a.markdown
diff --git a/source/_components/pcal9535a.markdown b/source/_components/pcal9535a.markdown
new file mode 100644
index 00000000000..bbb206345a5
--- /dev/null
+++ b/source/_components/pcal9535a.markdown
@@ -0,0 +1,123 @@
+---
+title: "PCAL9535A I2C GPIO expander"
+description: "Instructions on how to integrate the PCAL9535A GPIO pin expander with I2C interface into Home Assistant."
+logo: raspberry-pi.png
+ha_category:
+ - DIY
+ - Binary Sensor
+ - Switch
+ha_release: 0.102
+ha_iot_class: Local Polling
+---
+
+The `pcal9535a` integration is the base for all related pcal9535a platforms in Home Assistant. There is no setup needed for the integration itself, for the platforms, please check their corresponding sections.
+
+One of the use cases is [Seeed studio Raspberry Pi Relay Board](http://wiki.seeedstudio.com/Raspberry_Pi_Relay_Board_v1.0/).
+
+For more details about the PCAL9535A I2C I/O port expander, you can find its datasheet here: [PCAL9535A](https://www.nxp.com/docs/en/data-sheet/PCAL9535A.pdf).
+
+## Binary Sensor
+
+The `pcal9535a` binary sensor platform allows you to read sensor values from the I/O pins of your [PCAL9535A I2C I/O expander](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/low-voltage-16-bit-ic-bus-i-o-port-with-interrupt-and-agile-i-o:PCAL9535A).
+
+The pin numbers are from 0 to 15, where: 0-7 correspond to port P0 (P0_0 - P0_7) and 8-15 to port P1 (P1_0 - P1_7).
+
+### Configuration
+
+To use the I/O pins of an PCAL9535A connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: pcal9535a
+ pins:
+ 0: PIR Office
+ 1: PIR Bedroom
+```
+
+{% configuration %}
+i2c_bus:
+ description: i2c bus number of PCAL9535A chip.
+ required: false
+ type: integer
+ default: 1
+i2c_address:
+ description: i2c address of PCAL9535A chip.
+ required: false
+ type: integer
+ default: "`0x20`"
+pins:
+ description: List of used pins.
+ required: true
+ type: map
+ keys:
+ "pin: name":
+ description: The pin numbers (from 0 to 15) and corresponding names.
+ required: true
+ type: [integer, string]
+invert_logic:
+ description: If `true`, inverts the output logic to ACTIVE LOW.
+ required: false
+ type: boolean
+ default: "`false` (ACTIVE HIGH)"
+pull_mode:
+ description: >
+ Type of internal pull resistor to use.
+ Options are `UP` - pull-up resistor, `DOWN` - pull-down resistor, `DISABLED` - resistors disconnected.
+ required: false
+ type: string
+ default: "`DISABLED`"
+{% endconfiguration %}
+
+## Switch
+
+The `pcal9535a` switch platform allows you to write to the I/O pins of your [PCAL9535A I2C I/O expander](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/low-voltage-16-bit-ic-bus-i-o-port-with-interrupt-and-agile-i-o:PCAL9535A).
+
+The pin numbers are from 0 to 15, where: 0-7 correspond to port P0 (P0_0 - P0_7) and 8-15 to port P1 (P1_0 - P1_7).
+
+### Configuration
+
+To use the I/O pins of a PCAL9535A connected to an I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: pcal9535a
+ pins:
+ 11: Fan Office
+ 12: Light Desk
+```
+
+{% configuration %}
+i2c_bus:
+ description: i2c bus number of PCAL9535A chip.
+ required: false
+ type: integer
+ default: 1
+i2c_address:
+ description: i2c address of PCAL9535A chip.
+ required: false
+ type: integer
+ default: "`0x20`"
+pins:
+ description: Array of used pins.
+ required: true
+ type: list
+ keys:
+ pin:
+ description: The pin numbers (from 0 to 15) and corresponding names.
+ required: true
+ type: [integer, string]
+invert_logic:
+ description: If true, inverts the output logic to ACTIVE LOW.
+ required: false
+ default: false
+ type: boolean
+strength:
+ description: >
+ Control the output drive level of the GPIO. Each GPIO can be configured independently to one of the four possible output current levels. By programming these bits, the user is changing the number of transistor pairs or ‘fingers’ that drive the I/O pad.
+ Options are `0.25`, `0.5`, `0.75`, `1.0`.
+ required: false
+ default: "`1.0`"
+ type: string
+{% endconfiguration %}
From 506d9ea5014432db124374183a38e34f1d15183f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Per=20Sandstr=C3=B6m?=
Date: Mon, 11 Nov 2019 06:36:43 +0100
Subject: [PATCH 37/56] Add service documentation for verisure (#10703)
---
source/_integrations/verisure.markdown | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown
index 4e2e9eb9d29..88c7b4d2e13 100644
--- a/source/_integrations/verisure.markdown
+++ b/source/_integrations/verisure.markdown
@@ -117,3 +117,11 @@ automation:
to {{ trigger.to_state.state }}
by {{ trigger.to_state.attributes.changed_by }}{% endraw %}
```
+
+## Services
+
+| Service | Description |
+| ------- | ----------- |
+| disable_autolock | Disables autolock function for a specific lock. |
+| enable_autolock | Enables autolock function for a specific lock. |
+| smartcam_capture | Capture a new image from a specific smartcam. |
From 28ada04e44453b14bc551ef0a29512bac36822b1 Mon Sep 17 00:00:00 2001
From: Shulyaka
Date: Mon, 11 Nov 2019 21:24:53 +0300
Subject: [PATCH 38/56] pcal9535a: move to integrations (#11154)
---
source/{_components => _integrations}/pcal9535a.markdown | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename source/{_components => _integrations}/pcal9535a.markdown (100%)
diff --git a/source/_components/pcal9535a.markdown b/source/_integrations/pcal9535a.markdown
similarity index 100%
rename from source/_components/pcal9535a.markdown
rename to source/_integrations/pcal9535a.markdown
From 2f40dddf949e4dd91bc3bb43408569a9c820a7d4 Mon Sep 17 00:00:00 2001
From: Heine Furubotten
Date: Tue, 12 Nov 2019 13:46:34 +0100
Subject: [PATCH 39/56] Add azure servicebus documentation (#10756)
* Add azure servicebus documentation
* attemt to fixed links in note blocks
* rename integration
* bit too much auto formating
* :pencil2: Tweaks
* :tweak: Remove optional name, keeping example minimal
---
.../_integrations/azure_service_bus.markdown | 107 ++++++++++++++++++
.../supported_brands/azure_service_bus.svg | 14 +++
2 files changed, 121 insertions(+)
create mode 100644 source/_integrations/azure_service_bus.markdown
create mode 100644 source/images/supported_brands/azure_service_bus.svg
diff --git a/source/_integrations/azure_service_bus.markdown b/source/_integrations/azure_service_bus.markdown
new file mode 100644
index 00000000000..55e8467bdd5
--- /dev/null
+++ b/source/_integrations/azure_service_bus.markdown
@@ -0,0 +1,107 @@
+---
+title: "Azure Service Bus"
+description: "Setup for Azure Service Bus integration"
+logo: azure_service_bus.svg
+ha_category:
+ - Notification
+ha_release: 0.102
+---
+
+The `Azure Service Bus` integration allows you to send messages to [Azure Service Bus](https://azure.microsoft.com/en-us/services/service-bus/) from within Home Assistant.
+
+## First-time setup
+
+This assumes you already have an Azure account. Otherwise, create a free account [here](https://azure.microsoft.com/en-us/free/).
+
+You need to create a Service Bus namespace; you can follow [this guide](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-create-namespace-portal).
+
+You must then create a Shared Access Policy for the Service Bus with `Send` claims or use the RootManageAccessKey from your namespace (this key has additional claims, including managing the event hub and listening, which are not needed for this purpose), for more details on the security of Service Bus [go here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-authentication-and-authorization#shared-access-signature). Alternatively you can create a dedicated key for only one queue or topic, to restrict access to only that queue or topic.
+
+Once you have the connection string with `Send` policy, you can set up the integration itself.
+
+
+
+The queue or topic that you are sending to needs to exists with the service bus namespace before you use it within Home Assistant. See [here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal) for how to set up a queue and [here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal) for setting up a topic and subscriptions.
+
+
+
+## Configuration
+
+Add the following lines to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+notify:
+ - platform: azure_service_bus
+ connection_string: !secret servicebus_connection_string
+ topic: t-test
+ - platform: azure_service_bus
+ connection_string: !secret servicebus_connection_string
+ queue: q-test
+```
+
+{% configuration %}
+name:
+ description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
+ required: false
+ type: string
+ default: notify
+connection_string:
+ description: Connection string found in the Azure portal, with `send` claim in the key.
+ required: true
+ type: string
+queue:
+ description: Which queue to send notifications on.
+ required: exclusive
+ type: string
+topic:
+ description: Which topic to send notifications on.
+ required: exclusive
+ type: string
+{% endconfiguration %}
+
+
+
+If you plan to send all state changes from one or more entities within Home Assistant, you should consider using the [Azure Event Hub](/integrations/azure_event_hub/) integration instead.
+
+
+
+## Usage
+
+The notification service will translate the data given to a JSON object on the service bus. The `message` field will always be set, but the fields `target` and `title` are optional and are only included in the service bus message if set. Any input given in the `data` section, will be flattened to the root of the JSON object and follow the structure given. All input given in the data section will be included in the message.
+
+See the example below for how an automation trigger translates to a message on the service bus.
+
+```yaml
+automation:
+ - alias: Sunset Service Bus message
+ trigger:
+ platform: sun
+ event: sunset
+ action:
+ service: notify.test_queue
+ data:
+ message: "Sun is going down"
+ title: "Good evening"
+ data:
+ sun_direction: "Down"
+ custom_field: 123
+ custom_object:
+ trigger_more: true
+ explain: "Its starting to get dark"
+```
+
+The message that can be retrieved from a queue or topic subscription:
+
+```json
+{
+ "message": "Sun is going down",
+ "title": "Good evening",
+ "sun_direction": "Down",
+ "custom_field": 123,
+ "custom_object": {
+ "trigger_more": true,
+ "explain": "Its starting to get dark"
+ }
+}
+```
diff --git a/source/images/supported_brands/azure_service_bus.svg b/source/images/supported_brands/azure_service_bus.svg
new file mode 100644
index 00000000000..4b39746e62e
--- /dev/null
+++ b/source/images/supported_brands/azure_service_bus.svg
@@ -0,0 +1,14 @@
+
+
+
From 8673d86f48e26a58a777cdb965b56345e2fdc44a Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Thu, 14 Nov 2019 14:52:27 +0100
Subject: [PATCH 40/56] 102 release draft
---
_config.yml | 6 +-
source/_posts/2019-11-20-release-102.markdown | 722 ++++++++++++++++++
2 files changed, 725 insertions(+), 3 deletions(-)
create mode 100644 source/_posts/2019-11-20-release-102.markdown
diff --git a/_config.yml b/_config.yml
index b61deb20e17..d1af9113949 100644
--- a/_config.yml
+++ b/_config.yml
@@ -100,9 +100,9 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 101
-current_patch_version: 3
-date_released: 2019-11-05
+current_minor_version: 102
+current_patch_version: 0
+date_released: 2019-11-20
# 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/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
new file mode 100644
index 00000000000..4d906f2c772
--- /dev/null
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -0,0 +1,722 @@
+---
+layout: post
+title: "0.102: TBD - UPDATE DATE"
+description: "TBD"
+date: 2019-11-14 0:41:02
+date_formatted: "November 20, 2019"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2019-10-0.102/components.png
+---
+
+Almond. Account linking. Mobile apps. WLED - platinum.
+
+## New Integrations
+
+- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
+- Add available state to unifiled integration ([@florisvdk] - [#28189]) ([unifiled docs]) (new-integration)
+- Almond integration ([@balloob] - [#28282]) ([almond docs]) (new-integration)
+- Speech to Text component ([@pvizeli] - [#28434]) ([demo docs]) ([stt docs]) (new-integration)
+- Add WLED integration ([@frenck] - [#28542]) ([wled docs]) (new-integration)
+- Add azure servicebus notify service ([@hfurubotten] - [#27566]) ([azure_servicebus docs]) (new-integration)
+- Add pcal9535a integration ([@Shulyaka] - [#26563]) ([pcal9535a docs]) (new-integration)
+
+## New Platforms
+
+- Add Huawei LTE mobile data switch support ([@scop] - [#28188]) ([huawei_lte docs]) (new-platform)
+- Add support for Xiaomi Air Quality Monitor (cgllc.airmonitor.b1) ([@fwestenberg] - [#27735]) ([xiaomi_miio docs]) (new-platform)
+- Add switches (on/off zones) to geniushub ([@castaway] - [#28182]) ([geniushub docs]) (new-platform)
+- Add config endpoint for scene ([@bramkragten] - [#28429]) ([config docs]) ([homeassistant docs]) (new-platform)
+- Add override switch for juicenet ([@jesserockz] - [#28049]) ([juicenet docs]) (new-platform)
+- Add additional support over NC ([@pvizeli] - [#28527]) ([cloud docs]) ([stt docs]) (new-platform)
+- Add switch platform to WLED integration ([@frenck] - [#28606]) ([wled docs]) (new-platform)
+- Add sensor platform to WLED integration ([@frenck] - [#28632]) ([wled docs]) (new-platform)
+
+## 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).
+
+## 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.
+
+
+
+## Breaking Changes
+
+- Modernize Huawei LTE ([@scop] - [#26675]) ([huawei_lte docs]) (breaking change)
+- Removes unwanted tradfri battery sensor ([@ludeeus] - [#28181]) ([tradfri docs]) (breaking change)
+- Show all UPNP/IGD sensors in one device ([@escoand] - [#27517]) ([upnp docs]) (breaking change)
+- Change ps4 state off to state standby ([@ktnrg45] - [#28261]) ([ps4 docs]) (breaking change)
+- SSDP matching improvements ([@scop] - [#28285]) ([ssdp docs]) (breaking change)
+- Align attribute naming between light and switch for HomematicIP Cloud ([@SukramJ] - [#28271]) ([homematicip_cloud docs]) (breaking change)
+- Update Plugwise ([@bouwew] - [#28237]) ([plugwise docs]) (breaking change)
+- Use friendly app names for Fire TV sources ([@JeffLIrion] - [#28417]) ([androidtv docs]) (breaking change)
+- Update Homekit climate.py to remap current mode ([@GaryOkie] - [#28625]) ([homekit_controller docs]) (breaking change)
+- Correct openalpr_local config option name ([@HexF] - [#28746]) ([openalpr_local docs]) (breaking change)
+
+## Beta Fixes
+
+- Bump ZHA quirks to 0.0.28 ([@dmulcahey] - [#28750]) ([zha docs]) (beta fix)
+- Updated frontend to 20191114.0 ([@bramkragten] - [#28768]) ([frontend docs]) (beta fix)
+- Fix account link version check ([@balloob] - [#28770]) ([cloud docs]) (beta fix)
+
+## All changes
+
+- Cover all possible values for venstar operation_mode ([@iamtpage] - [#27949]) ([venstar docs])
+- Add onvif local datetime support ([@djpremier] - [#26656]) ([onvif docs])
+- Fix Venstar formatting to restore clean CI ([@kennedyshead] - [#28171]) ([venstar docs])
+- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
+- Modernize Huawei LTE ([@scop] - [#26675]) ([huawei_lte docs]) (breaking change)
+- Use latest withings_api module ([@vangorra] - [#27817]) ([withings docs])
+- Tradfri config flow enhancements ([@ludeeus] - [#28179]) ([tradfri docs])
+- Add stop feature to tradfri covers ([@ludeeus] - [#28180]) ([tradfri docs])
+- Fix tzinfo type for onvif component ([@djpremier] - [#28178]) ([onvif docs])
+- Adding device_class to samsungtv ([@kennedyshead] - [#28168]) ([samsungtv docs])
+- Bump python-slugify to 4.0.0 ([@BKPepe] - [#28186])
+- Removes unwanted tradfri battery sensor ([@ludeeus] - [#28181]) ([tradfri docs]) (breaking change)
+- Huawei LTE sensor metadata update ([@scop] - [#28187]) ([huawei_lte docs])
+- Add Samsung TV automatic protocol detection ([@escoand] - [#27492]) ([samsungtv docs])
+- [homematic]Pass channel to light color functions ([@guillempages] - [#27306]) ([homematic docs])
+- [homematic]Add support for HmIP-BSL LEDs ([@guillempages] - [#27307]) ([homematic docs])
+- move hass-frontend import back down ([@gngj] - [#28203]) ([frontend docs])
+- Address post-merge coolmaster config flow code review ([@OnFreund] - [#28163]) ([coolmaster docs])
+- Add presentation URL to SSDP discovery info ([@scop] - [#28196]) ([ssdp docs])
+- Change Alexa default display category based on media_player device_class ([@ochlocracy] - [#28191]) ([alexa docs])
+- Add device condition support for media_player ([@shmooey] - [#28161]) ([media_player docs])
+- Add device condition support for device_tracker ([@shmooey] - [#28190]) ([device_tracker docs])
+- Increased python-eq3bt version to latest (0.1.11) ([@Poeschl] - [#28175]) ([eq3btsmart docs])
+- Add support for supportedOperations to Alexa.PlaybackController ([@ochlocracy] - [#28212]) ([alexa docs])
+- Improved Alexa ThermostatController thermostatMode handling ([@ochlocracy] - [#28176]) ([alexa docs])
+- Add additional device conditions to cover ([@emontnemery] - [#27830]) ([cover docs])
+- Implement Alexa.PlaybackStateReporter Interface for alexa ([@ochlocracy] - [#28215]) ([alexa docs])
+- Add cloud account linking support ([@balloob] - [#28210]) ([cloud docs]) ([somfy docs])
+- Add Huawei LTE mobile data switch support ([@scop] - [#28188]) ([huawei_lte docs]) (new-platform)
+- Upgrade speedtest-cli to 2.1.2 ([@fabaff] - [#28216])
+- Add available state to unifiled integration ([@florisvdk] - [#28189]) ([unifiled docs]) (new-integration)
+- Update praw to 6.4.0 ([@fabaff] - [#27324]) ([reddit docs])
+- Suppress traceback (fixes #28243) ([@fabaff] - [#28262]) ([iss docs])
+- Add charset to imap component. ([@ZiroNL] - [#28258]) ([imap docs])
+- Reorg and test attributes for HomematicIP Cloud ([@SukramJ] - [#28234]) ([homematicip_cloud docs])
+- Add support for Xiaomi Air Quality Monitor (cgllc.airmonitor.b1) ([@fwestenberg] - [#27735]) ([xiaomi_miio docs]) (new-platform)
+- Add transmission info about torrents that is accessible with templating ([@JPHutchins] - [#27111]) ([transmission docs])
+- More header cleanup for websocket proxy ([@pvizeli] - [#28288]) ([hassio docs])
+- Bump avea to 1.4 ([@pattyland] - [#28287]) ([avea docs])
+- Remove GTT component ([@eliseomartelli] - [#28286]) ([gtt docs])
+- Hue: Create new config flow when auth is lost ([@bramkragten] - [#28204]) ([hue docs])
+- Revert "More header cleanup for websocket proxy (#28288)" ([@pvizeli] - [#28293]) ([hassio docs])
+- Add support for Somfy Garage door Rollixo IO DiscreteGarageOpenerIOComponent in Tahoma component ([@yjajkiew] - [#28291]) ([tahoma docs])
+- Type hint improvements ([@scop] - [#28260])
+- Add more iaqualink entity properties, fix timeout issues ([@flz] - [#28236]) ([iaqualink docs])
+- Add keyboard_remote trigger on multiple event types and emulate key hold events ([@bendavid] - [#27761]) ([keyboard_remote docs])
+- Remove blocking I/O from the event loop ([@syssi] - [#28305]) ([xiaomi_miio docs])
+- Use dict[key] for required config keys ([@syssi] - [#28304]) ([xiaomi_miio docs])
+- Bump black to 19.10b0 ([@frenck] - [#28310]) ([androidtv docs]) ([envirophat docs]) ([hangouts docs]) ([here_travel_time docs])
+- Add source constants for all config entry discovery sources ([@frenck] - [#28311])
+- Almond integration ([@balloob] - [#28282]) ([almond docs]) (new-integration)
+- Bump pre-commit to 1.20.0 ([@frenck] - [#28313])
+- Bump youtube_dl to 2019.10.29 ([@frenck] - [#28312]) ([media_extractor docs])
+- Add description for arlo.update service ([@PixelJonas] - [#28270])
+- Bump pytest to 5.2.2 ([@cgtobi] - [#28230])
+- Add services description for sabnzbd component ([@karouf] - [#28252])
+- Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1) ([@syssi] - [#28301]) ([xiaomi_miio docs])
+- allow multiple heaters per incomfort gateway ([@zxdavb] - [#28324]) ([incomfort docs])
+- Add OAuth2 config flow scaffold ([@balloob] - [#28220])
+- Add services.yaml to local_file component. ([@ZiroNL] - [#28330])
+- Add device triggers to cover ([@emontnemery] - [#28063]) ([automation docs]) ([cover docs])
+- Flux log with debug instead of info ([@Santobert] - [#28352]) ([flux docs])
+- Add modelnumber for ecobee4 ([@marthoc] - [#28278]) ([ecobee docs])
+- Fill services.yaml for duckdns ([@gngj] - [#28248])
+- Implement Alexa.SeekController Interface for media_player in Alexa ([@ochlocracy] - [#28299]) ([alexa docs])
+- Don't set entity_id in ZHA entities ([@Adminiuga] - [#28362]) ([zha docs])
+- Update withings-api to avoid data parsing bugs. ([@vangorra] - [#28382]) ([withings docs])
+- Add services.yaml to onvif component ([@ZiroNL] - [#28349])
+- Fix ([@Anonym-tsk] - [#28369]) ([telegram_bot docs])
+- Fill services.yaml for squeezebox ([@gngj] - [#28247])
+- Add file list to attributes of folder sensor ([@thoscut] - [#28338]) ([folder docs])
+- Show all UPNP/IGD sensors in one device ([@escoand] - [#27517]) ([upnp docs]) (breaking change)
+- fix feedreader handling unrecognized published date ([@exxamalte] - [#28225]) ([feedreader docs])
+- Introduce SUPPORT_COLOR_TEMP for flux_led component ([@yeralin] - [#26692]) ([flux_led docs])
+- Upgrade thingspeak to 1.0.0 ([@fabaff] - [#28424]) ([thingspeak docs])
+- Upgrade attrs to 19.3.0 ([@fabaff] - [#28421])
+- Add a Services YAML for the Dominos integration (#27289) ([@Schoonology] - [#28339])
+- Upgrade pysnmp to 4.4.12 ([@fabaff] - [#28428]) ([snmp docs])
+- Bump pyEight library to 0.1.2 to update API URL ([@mezz64] - [#28413]) ([eight_sleep docs])
+- Use defined device class constants for Homematic ([@SukramJ] - [#28438]) ([homematic docs])
+- Add improved scene support to the alarm_control_panel integration ([@Santobert] - [#28269]) ([alarm_control_panel docs])
+- Add improved scene support to the water_heater integration ([@Santobert] - [#28277]) ([demo docs]) ([water_heater docs])
+- deCONZ - Add Xiaomi Aqara Cube device trigger support ([@Kane610] - [#27548]) ([deconz docs])
+- deCONZ - Support creating battery sensor when reported ([@Kane610] - [#27538]) ([deconz docs])
+- deCONZ - Improve discovery logging ([@Kane610] - [#28452]) ([deconz docs])
+- Add scene.create service ([@Santobert] - [#28300]) ([homeassistant docs])
+- Update MQTT sensor test ([@fabaff] - [#28449])
+- Change ps4 state off to state standby ([@ktnrg45] - [#28261]) ([ps4 docs]) (breaking change)
+- Fix inability to transition between specific presets in Venstar component ([@nkaminski] - [#28238]) ([venstar docs])
+- pre-commit: ship default and full configs ([@scop] - [#28463])
+- SSDP matching improvements ([@scop] - [#28285]) ([ssdp docs]) (breaking change)
+- Bump env_canada to 0.0.30 ([@michaeldavie] - [#28487]) ([environment_canada docs])
+- Fixing #27722 Watson TTS platform (sdk upgrade) ([@rutkai] - [#28468]) ([watson_tts docs])
+- Use integration name in docstring ([@fabaff] - [#28445])
+- Handle Huawei LTE timeouts ([@scop] - [#28465]) ([huawei_lte docs])
+- Fix flaky Samsung TV tests ([@escoand] - [#28503])
+- Always provide brightness value ([@elupus] - [#28228]) ([google_assistant docs])
+- Fix flaky YesssSMS tests on debug messages ([@escoand] - [#28506])
+- Import CancelledError from asyncio, not .futures ([@scop] - [#28511]) ([bluesound docs])
+- Don't use deprecated encoding to json.loads ([@scop] - [#28509])
+- Update Vivotek component stream source ([@HarlemSquirrel] - [#27941]) ([vivotek docs])
+- Don't fail tox pylint if PYLINT_ARGS is not set ([@scop] - [#28403])
+- Upgrade pillow to 6.2.1 ([@fabaff] - [#28442]) ([image_processing docs]) ([proxy docs]) ([qrcode docs])
+- Add dump config service to HomematicIP Cloud ([@SukramJ] - [#28231]) ([homematicip_cloud docs])
+- Upgrade TwitterAPI to 2.5.10 ([@fabaff] - [#28401]) ([twitter docs])
+- Replace Netatmo CO2 sensor icon ([@tlrobinson] - [#28520]) ([netatmo docs])
+- Imports twitch ([@fabaff] - [#28517]) ([twitch docs])
+- Upgrade paho-mqtt to 1.5.0 ([@fabaff] - [#28423]) ([mqtt docs]) ([shiftr docs])
+- Upgrade jinja2 to >=2.10.3 ([@fabaff] - [#28422])
+- iaqualink: better handling of failures ([@flz] - [#28514]) ([iaqualink docs])
+- Add services description for ness alarm ([@tefinger] - [#28250])
+- Add information to IFTTT services.yaml ([@PixelJonas] - [#28385])
+- Expose set auto mode for all Dyson fans ([@soraxas] - [#28488]) ([dyson docs])
+- Add compatibility for other STBY Codes ([@soundstorm] - [#28478]) ([pioneer docs])
+- Remove legacy reproduce state ([@balloob] - [#28458])
+- Align attribute naming between light and switch for HomematicIP Cloud ([@SukramJ] - [#28271]) ([homematicip_cloud docs]) (breaking change)
+- Enable transition time for HmIP-BSL - HomematicIP Cloud ([@SukramJ] - [#28201]) ([homematicip_cloud docs])
+- Speech to Text component ([@pvizeli] - [#28434]) ([demo docs]) ([stt docs]) (new-integration)
+- Add switches (on/off zones) to geniushub ([@castaway] - [#28182]) ([geniushub docs]) (new-platform)
+- Cleanup Device Registry on Z-Wave Node Removal ([@cgarwood] - [#28240]) ([zwave docs])
+- Support Huawei LTE SSDP discovery ([@scop] - [#28214]) ([huawei_lte docs])
+- Fire an event when nzbget download completes ([@chriscla] - [#27763]) ([nzbget docs])
+- Add heating_type for ViCare integration ([@crazyfx1] - [#27296]) ([vicare docs])
+- Bump version for asuswrt to 1.1.22 ([@kennedyshead] - [#28322]) ([asuswrt docs])
+- Add config endpoint for scene ([@bramkragten] - [#28429]) ([config docs]) ([homeassistant docs]) (new-platform)
+- Update ephember library version ([@ttroy50] - [#28507]) ([ephember docs])
+- Checking state before actually sending a new state change. Some projectors return ERR if you try to turn off a projector that's already off. ([@mflage] - [#28529]) ([pjlink docs])
+- rate is a separate word ([@balloob] - [#28535]) ([demo docs]) ([stt docs])
+- Update Plugwise ([@bouwew] - [#28237]) ([plugwise docs]) (breaking change)
+- Improve scene.create service ([@Santobert] - [#28533]) ([homeassistant docs])
+- Reduce test requirements duplication, sync flake8 and related ([@scop] - [#28538])
+- Avoid drawing image_processing font text inside the bow line ([@snowzach] - [#27796]) ([image_processing docs])
+- Add override switch for juicenet ([@jesserockz] - [#28049]) ([juicenet docs]) (new-platform)
+- Move imports in samsungtv component ([@Quentame] - [#27775]) ([samsungtv docs])
+- Try fix tests ([@pvizeli] - [#28470])
+- Add additional support over NC ([@pvizeli] - [#28527]) ([cloud docs]) ([stt docs]) (new-platform)
+- Bump pytile and re-order imports ([@bachya] - [#28570]) ([tile docs])
+- Update nextbus stop tag to accept strings ([@Grodesh] - [#27765]) ([nextbus docs])
+- Bump adb-shell to 0.0.8 ([@JeffLIrion] - [#28582])
+- Fix Doods error when detection labels are specified in list form ([@snowzach] - [#28574]) ([doods docs])
+- Upgrade youtube_dl to 2019.11.05 ([@BKPepe] - [#28578]) ([media_extractor docs])
+- Reset states when connection to MPC-HC is lost ([@temeteke] - [#27541]) ([mpchc docs])
+- Add mqtt temp_low/high_template in SCHEMA_BASE ([@kevinkk525] - [#28257]) ([mqtt docs])
+- Add Netatmo camera services ([@ssenart] - [#27970]) ([netatmo docs])
+- Fix token sent to Almond Web ([@balloob] - [#28584]) ([almond docs])
+- Update to latest Somfy changes ([@balloob] - [#28207]) ([somfy docs])
+- Always run flake8 through pre-commit, and with doctests ([@scop] - [#28490])
+- Handle exceptions from PyViCare library ([@oischinger] - [#28536]) ([vicare docs])
+- Add WLED integration ([@frenck] - [#28542]) ([wled docs]) (new-integration)
+- update to latest integration library version ([@exxamalte] - [#28597]) ([geonetnz_quakes docs])
+- Upgrade greeneye_monitor to 1.0.1 ([@jkeljo] - [#28600]) ([greeneye_monitor docs])
+- Add device actions to vacuum ([@balloob] - [#28554]) ([device_automation docs]) ([vacuum docs])
+- Add device action to fan ([@balloob] - [#28550]) ([device_automation docs]) ([fan docs])
+- Add lock device triggers ([@balloob] - [#28547]) ([device_automation docs]) ([lock docs])
+- Add fan device trigger ([@balloob] - [#28545]) ([device_automation docs]) ([fan docs])
+- Fix simple typo: unhasable -> unhashable ([@timgates42] - [#28605])
+- Add device triggers to vacuum ([@balloob] - [#28548]) ([automation docs]) ([device_automation docs]) ([vacuum docs])
+- Fix demo TTS ([@bramkragten] - [#28608]) ([demo docs])
+- Add climate device actions ([@balloob] - [#28552]) ([climate docs]) ([device_automation docs])
+- Add azure servicebus notify service ([@hfurubotten] - [#27566]) ([azure_servicebus docs]) (new-integration)
+- Add climate device triggers ([@balloob] - [#28544]) ([automation docs]) ([climate docs]) ([device_automation docs]) ([homekit docs])
+- Add fan device condition ([@balloob] - [#28549]) ([device_automation docs]) ([fan docs])
+- Add vacuum device conditions ([@balloob] - [#28551]) ([device_automation docs]) ([vacuum docs])
+- Add cool mode to HomematicIP climate ([@SukramJ] - [#28525]) ([homematicip_cloud docs])
+- Add device conditions to climate ([@balloob] - [#28553]) ([device_automation docs])
+- Add support for conversation ID ([@balloob] - [#28620]) ([almond docs]) ([conversation docs])
+- Match ALARM in NUT UPS status message ([@bwarden] - [#28591]) ([nut docs])
+- Use friendly app names for Fire TV sources ([@JeffLIrion] - [#28417]) ([androidtv docs]) (breaking change)
+- Add Huawei LTE device registry support ([@scop] - [#28594]) ([huawei_lte docs])
+- Fix generic_thermostat too_hot/too_cold ([@akasma74] - [#27860]) ([generic_thermostat docs])
+- Add switch platform to WLED integration ([@frenck] - [#28606]) ([wled docs]) (new-platform)
+- Add TT WS API ([@balloob] - [#28599]) ([cloud docs]) ([websocket_api docs])
+- Add turn_on/off to tfiac ([@fredrike] - [#27712]) ([tfiac docs])
+- Fix issue with multiple Netatmo home coach devices ([@cgtobi] - [#28407]) ([netatmo docs])
+- Add attribution and onboarding commands to conversation and Almond ([@bramkragten] - [#28621]) ([almond docs]) ([conversation docs])
+- Updated frontend to 20191108.0 ([@bramkragten] - [#28638]) ([frontend docs])
+- Bump ZHA quirks version ([@dmulcahey] - [#28636]) ([zha docs])
+- Move imports in xiaomi_miio ([@Misiu] - [#27773]) ([xiaomi_miio docs])
+- Added support for multiple SAJ solar inverters ([@fredericvl] - [#28612]) ([saj docs])
+- Add support for Heat Mode detection for ecobee Heat Pumps ([@arigit] - [#28273]) ([ecobee docs])
+- Fix unhandled exception when Swisscom Internet Box is not responsive ([@LeoCal] - [#28618]) ([swisscom docs])
+- Add pcal9535a integration ([@Shulyaka] - [#26563]) ([pcal9535a docs]) (new-integration)
+- Add bluesound speaker group attribute ([@bluestripe] - [#28142]) ([bluesound docs])
+- Fix xiaomi vacuum tests ([@MartinHjelmare] - [#28658])
+- Add sensor platform to WLED integration ([@frenck] - [#28632]) ([wled docs]) (new-platform)
+- Upgrade bimmer_connected to 0.6.2 ([@gerard33] - [#28651]) ([bmw_connected_drive docs])
+- verisure autolock service ([@persandstrom] - [#27366]) ([verisure docs])
+- Skip updating idle Plex clients ([@jjlawren] - [#28664]) ([plex docs])
+- Hue: store current sensor entities by bridge ([@bramkragten] - [#28679]) ([hue docs])
+- #28645: Bump up zm-py to 0.4.0 ([@rohankapoorcom] - [#28681]) ([zoneminder docs])
+- Add codeowner for lutron integration ([@JonGilmore] - [#28682]) ([lutron docs])
+- Add xiaomi_miio chuangmi.plug.hmi206 ([@rytilahti] - [#28688]) ([xiaomi_miio docs])
+- Add Lutron hybrid keypad raise/lower buttons ([@kevineriklee] - [#28674]) ([lutron docs])
+- Allow icons to be masked ([@bramkragten] - [#28692]) ([frontend docs])
+- fix typo in comments ([@basnijholt] - [#28694])
+- Add config flow tests for OwnTracks ([@Quentame] - [#28644]) ([owntracks docs])
+- Update Homekit climate.py to remap current mode ([@GaryOkie] - [#28625]) ([homekit_controller docs]) (breaking change)
+- Bump up ZHA dependencies. ([@Adminiuga] - [#28711]) ([zha docs])
+- Ensure SimpliSafe alarm control panels can return from being offline ([@bachya] - [#28710]) ([simplisafe docs])
+- Bump plexapi to 3.3.0 ([@jjlawren] - [#28709]) ([plex docs])
+- Update binary_sensor.py ([@effelle] - [#28707]) ([mqtt docs])
+- Allow preset boost for Homematic IP Cloud power switches ([@SukramJ] - [#28713]) ([homematicip_cloud docs])
+- Upgrade discogs_client to 2.2.2 ([@fabaff] - [#28723]) ([discogs docs])
+- Fix Here Travel Time unable to find entity on startup ([@eifinger] - [#27237]) ([here_travel_time docs])
+- Use library method for season number ([@jjlawren] - [#28708]) ([plex docs])
+- Remove choice word when Almond has choices ([@balloob] - [#28725]) ([almond docs])
+- ESPHome fix missing state in certain circumstances ([@OttoWinter] - [#28729]) ([esphome docs])
+- Set up Almond Web to connect to HA ([@balloob] - [#28603]) ([almond docs])
+- version bump pypoint ([@fredrike] - [#28737]) ([point docs])
+- Upgrade async_upnp_client==0.14.12 ([@StevenLooman] - [#28733]) ([dlna_dmr docs]) ([upnp docs])
+- Add device classes to weather sensors. ([@davet2001] - [#28512]) ([yr docs])
+- Upgrade psutil to 5.6.5 ([@fabaff] - [#28717]) ([systemmonitor docs])
+- Travis and tox config improvements ([@scop] - [#28667])
+- Correct openalpr_local config option name ([@HexF] - [#28746]) ([openalpr_local docs]) (breaking change)
+- Bump ZHA quirks to 0.0.28 ([@dmulcahey] - [#28750]) ([zha docs]) (beta fix)
+- Updated frontend to 20191114.0 ([@bramkragten] - [#28768]) ([frontend docs]) (beta fix)
+- Fix account link version check ([@balloob] - [#28770]) ([cloud docs]) (beta fix)
+
+[#26563]: https://github.com/home-assistant/home-assistant/pull/26563
+[#26656]: https://github.com/home-assistant/home-assistant/pull/26656
+[#26675]: https://github.com/home-assistant/home-assistant/pull/26675
+[#26692]: https://github.com/home-assistant/home-assistant/pull/26692
+[#27111]: https://github.com/home-assistant/home-assistant/pull/27111
+[#27237]: https://github.com/home-assistant/home-assistant/pull/27237
+[#27296]: https://github.com/home-assistant/home-assistant/pull/27296
+[#27306]: https://github.com/home-assistant/home-assistant/pull/27306
+[#27307]: https://github.com/home-assistant/home-assistant/pull/27307
+[#27324]: https://github.com/home-assistant/home-assistant/pull/27324
+[#27366]: https://github.com/home-assistant/home-assistant/pull/27366
+[#27475]: https://github.com/home-assistant/home-assistant/pull/27475
+[#27492]: https://github.com/home-assistant/home-assistant/pull/27492
+[#27517]: https://github.com/home-assistant/home-assistant/pull/27517
+[#27538]: https://github.com/home-assistant/home-assistant/pull/27538
+[#27541]: https://github.com/home-assistant/home-assistant/pull/27541
+[#27548]: https://github.com/home-assistant/home-assistant/pull/27548
+[#27566]: https://github.com/home-assistant/home-assistant/pull/27566
+[#27712]: https://github.com/home-assistant/home-assistant/pull/27712
+[#27735]: https://github.com/home-assistant/home-assistant/pull/27735
+[#27761]: https://github.com/home-assistant/home-assistant/pull/27761
+[#27763]: https://github.com/home-assistant/home-assistant/pull/27763
+[#27765]: https://github.com/home-assistant/home-assistant/pull/27765
+[#27773]: https://github.com/home-assistant/home-assistant/pull/27773
+[#27775]: https://github.com/home-assistant/home-assistant/pull/27775
+[#27796]: https://github.com/home-assistant/home-assistant/pull/27796
+[#27817]: https://github.com/home-assistant/home-assistant/pull/27817
+[#27830]: https://github.com/home-assistant/home-assistant/pull/27830
+[#27860]: https://github.com/home-assistant/home-assistant/pull/27860
+[#27941]: https://github.com/home-assistant/home-assistant/pull/27941
+[#27949]: https://github.com/home-assistant/home-assistant/pull/27949
+[#27970]: https://github.com/home-assistant/home-assistant/pull/27970
+[#28049]: https://github.com/home-assistant/home-assistant/pull/28049
+[#28063]: https://github.com/home-assistant/home-assistant/pull/28063
+[#28142]: https://github.com/home-assistant/home-assistant/pull/28142
+[#28161]: https://github.com/home-assistant/home-assistant/pull/28161
+[#28163]: https://github.com/home-assistant/home-assistant/pull/28163
+[#28168]: https://github.com/home-assistant/home-assistant/pull/28168
+[#28171]: https://github.com/home-assistant/home-assistant/pull/28171
+[#28175]: https://github.com/home-assistant/home-assistant/pull/28175
+[#28176]: https://github.com/home-assistant/home-assistant/pull/28176
+[#28178]: https://github.com/home-assistant/home-assistant/pull/28178
+[#28179]: https://github.com/home-assistant/home-assistant/pull/28179
+[#28180]: https://github.com/home-assistant/home-assistant/pull/28180
+[#28181]: https://github.com/home-assistant/home-assistant/pull/28181
+[#28182]: https://github.com/home-assistant/home-assistant/pull/28182
+[#28186]: https://github.com/home-assistant/home-assistant/pull/28186
+[#28187]: https://github.com/home-assistant/home-assistant/pull/28187
+[#28188]: https://github.com/home-assistant/home-assistant/pull/28188
+[#28189]: https://github.com/home-assistant/home-assistant/pull/28189
+[#28190]: https://github.com/home-assistant/home-assistant/pull/28190
+[#28191]: https://github.com/home-assistant/home-assistant/pull/28191
+[#28196]: https://github.com/home-assistant/home-assistant/pull/28196
+[#28201]: https://github.com/home-assistant/home-assistant/pull/28201
+[#28203]: https://github.com/home-assistant/home-assistant/pull/28203
+[#28204]: https://github.com/home-assistant/home-assistant/pull/28204
+[#28207]: https://github.com/home-assistant/home-assistant/pull/28207
+[#28210]: https://github.com/home-assistant/home-assistant/pull/28210
+[#28212]: https://github.com/home-assistant/home-assistant/pull/28212
+[#28214]: https://github.com/home-assistant/home-assistant/pull/28214
+[#28215]: https://github.com/home-assistant/home-assistant/pull/28215
+[#28216]: https://github.com/home-assistant/home-assistant/pull/28216
+[#28220]: https://github.com/home-assistant/home-assistant/pull/28220
+[#28225]: https://github.com/home-assistant/home-assistant/pull/28225
+[#28228]: https://github.com/home-assistant/home-assistant/pull/28228
+[#28230]: https://github.com/home-assistant/home-assistant/pull/28230
+[#28231]: https://github.com/home-assistant/home-assistant/pull/28231
+[#28234]: https://github.com/home-assistant/home-assistant/pull/28234
+[#28236]: https://github.com/home-assistant/home-assistant/pull/28236
+[#28237]: https://github.com/home-assistant/home-assistant/pull/28237
+[#28238]: https://github.com/home-assistant/home-assistant/pull/28238
+[#28240]: https://github.com/home-assistant/home-assistant/pull/28240
+[#28247]: https://github.com/home-assistant/home-assistant/pull/28247
+[#28248]: https://github.com/home-assistant/home-assistant/pull/28248
+[#28250]: https://github.com/home-assistant/home-assistant/pull/28250
+[#28252]: https://github.com/home-assistant/home-assistant/pull/28252
+[#28257]: https://github.com/home-assistant/home-assistant/pull/28257
+[#28258]: https://github.com/home-assistant/home-assistant/pull/28258
+[#28260]: https://github.com/home-assistant/home-assistant/pull/28260
+[#28261]: https://github.com/home-assistant/home-assistant/pull/28261
+[#28262]: https://github.com/home-assistant/home-assistant/pull/28262
+[#28269]: https://github.com/home-assistant/home-assistant/pull/28269
+[#28270]: https://github.com/home-assistant/home-assistant/pull/28270
+[#28271]: https://github.com/home-assistant/home-assistant/pull/28271
+[#28273]: https://github.com/home-assistant/home-assistant/pull/28273
+[#28277]: https://github.com/home-assistant/home-assistant/pull/28277
+[#28278]: https://github.com/home-assistant/home-assistant/pull/28278
+[#28282]: https://github.com/home-assistant/home-assistant/pull/28282
+[#28285]: https://github.com/home-assistant/home-assistant/pull/28285
+[#28286]: https://github.com/home-assistant/home-assistant/pull/28286
+[#28287]: https://github.com/home-assistant/home-assistant/pull/28287
+[#28288]: https://github.com/home-assistant/home-assistant/pull/28288
+[#28291]: https://github.com/home-assistant/home-assistant/pull/28291
+[#28293]: https://github.com/home-assistant/home-assistant/pull/28293
+[#28299]: https://github.com/home-assistant/home-assistant/pull/28299
+[#28300]: https://github.com/home-assistant/home-assistant/pull/28300
+[#28301]: https://github.com/home-assistant/home-assistant/pull/28301
+[#28304]: https://github.com/home-assistant/home-assistant/pull/28304
+[#28305]: https://github.com/home-assistant/home-assistant/pull/28305
+[#28310]: https://github.com/home-assistant/home-assistant/pull/28310
+[#28311]: https://github.com/home-assistant/home-assistant/pull/28311
+[#28312]: https://github.com/home-assistant/home-assistant/pull/28312
+[#28313]: https://github.com/home-assistant/home-assistant/pull/28313
+[#28322]: https://github.com/home-assistant/home-assistant/pull/28322
+[#28324]: https://github.com/home-assistant/home-assistant/pull/28324
+[#28330]: https://github.com/home-assistant/home-assistant/pull/28330
+[#28338]: https://github.com/home-assistant/home-assistant/pull/28338
+[#28339]: https://github.com/home-assistant/home-assistant/pull/28339
+[#28349]: https://github.com/home-assistant/home-assistant/pull/28349
+[#28352]: https://github.com/home-assistant/home-assistant/pull/28352
+[#28362]: https://github.com/home-assistant/home-assistant/pull/28362
+[#28369]: https://github.com/home-assistant/home-assistant/pull/28369
+[#28382]: https://github.com/home-assistant/home-assistant/pull/28382
+[#28385]: https://github.com/home-assistant/home-assistant/pull/28385
+[#28401]: https://github.com/home-assistant/home-assistant/pull/28401
+[#28403]: https://github.com/home-assistant/home-assistant/pull/28403
+[#28407]: https://github.com/home-assistant/home-assistant/pull/28407
+[#28413]: https://github.com/home-assistant/home-assistant/pull/28413
+[#28417]: https://github.com/home-assistant/home-assistant/pull/28417
+[#28421]: https://github.com/home-assistant/home-assistant/pull/28421
+[#28422]: https://github.com/home-assistant/home-assistant/pull/28422
+[#28423]: https://github.com/home-assistant/home-assistant/pull/28423
+[#28424]: https://github.com/home-assistant/home-assistant/pull/28424
+[#28428]: https://github.com/home-assistant/home-assistant/pull/28428
+[#28429]: https://github.com/home-assistant/home-assistant/pull/28429
+[#28434]: https://github.com/home-assistant/home-assistant/pull/28434
+[#28438]: https://github.com/home-assistant/home-assistant/pull/28438
+[#28442]: https://github.com/home-assistant/home-assistant/pull/28442
+[#28445]: https://github.com/home-assistant/home-assistant/pull/28445
+[#28449]: https://github.com/home-assistant/home-assistant/pull/28449
+[#28452]: https://github.com/home-assistant/home-assistant/pull/28452
+[#28458]: https://github.com/home-assistant/home-assistant/pull/28458
+[#28463]: https://github.com/home-assistant/home-assistant/pull/28463
+[#28465]: https://github.com/home-assistant/home-assistant/pull/28465
+[#28468]: https://github.com/home-assistant/home-assistant/pull/28468
+[#28470]: https://github.com/home-assistant/home-assistant/pull/28470
+[#28478]: https://github.com/home-assistant/home-assistant/pull/28478
+[#28487]: https://github.com/home-assistant/home-assistant/pull/28487
+[#28488]: https://github.com/home-assistant/home-assistant/pull/28488
+[#28490]: https://github.com/home-assistant/home-assistant/pull/28490
+[#28503]: https://github.com/home-assistant/home-assistant/pull/28503
+[#28506]: https://github.com/home-assistant/home-assistant/pull/28506
+[#28507]: https://github.com/home-assistant/home-assistant/pull/28507
+[#28509]: https://github.com/home-assistant/home-assistant/pull/28509
+[#28511]: https://github.com/home-assistant/home-assistant/pull/28511
+[#28512]: https://github.com/home-assistant/home-assistant/pull/28512
+[#28514]: https://github.com/home-assistant/home-assistant/pull/28514
+[#28517]: https://github.com/home-assistant/home-assistant/pull/28517
+[#28520]: https://github.com/home-assistant/home-assistant/pull/28520
+[#28525]: https://github.com/home-assistant/home-assistant/pull/28525
+[#28527]: https://github.com/home-assistant/home-assistant/pull/28527
+[#28529]: https://github.com/home-assistant/home-assistant/pull/28529
+[#28533]: https://github.com/home-assistant/home-assistant/pull/28533
+[#28535]: https://github.com/home-assistant/home-assistant/pull/28535
+[#28536]: https://github.com/home-assistant/home-assistant/pull/28536
+[#28538]: https://github.com/home-assistant/home-assistant/pull/28538
+[#28542]: https://github.com/home-assistant/home-assistant/pull/28542
+[#28544]: https://github.com/home-assistant/home-assistant/pull/28544
+[#28545]: https://github.com/home-assistant/home-assistant/pull/28545
+[#28547]: https://github.com/home-assistant/home-assistant/pull/28547
+[#28548]: https://github.com/home-assistant/home-assistant/pull/28548
+[#28549]: https://github.com/home-assistant/home-assistant/pull/28549
+[#28550]: https://github.com/home-assistant/home-assistant/pull/28550
+[#28551]: https://github.com/home-assistant/home-assistant/pull/28551
+[#28552]: https://github.com/home-assistant/home-assistant/pull/28552
+[#28553]: https://github.com/home-assistant/home-assistant/pull/28553
+[#28554]: https://github.com/home-assistant/home-assistant/pull/28554
+[#28570]: https://github.com/home-assistant/home-assistant/pull/28570
+[#28574]: https://github.com/home-assistant/home-assistant/pull/28574
+[#28578]: https://github.com/home-assistant/home-assistant/pull/28578
+[#28582]: https://github.com/home-assistant/home-assistant/pull/28582
+[#28584]: https://github.com/home-assistant/home-assistant/pull/28584
+[#28591]: https://github.com/home-assistant/home-assistant/pull/28591
+[#28594]: https://github.com/home-assistant/home-assistant/pull/28594
+[#28597]: https://github.com/home-assistant/home-assistant/pull/28597
+[#28599]: https://github.com/home-assistant/home-assistant/pull/28599
+[#28600]: https://github.com/home-assistant/home-assistant/pull/28600
+[#28603]: https://github.com/home-assistant/home-assistant/pull/28603
+[#28605]: https://github.com/home-assistant/home-assistant/pull/28605
+[#28606]: https://github.com/home-assistant/home-assistant/pull/28606
+[#28608]: https://github.com/home-assistant/home-assistant/pull/28608
+[#28612]: https://github.com/home-assistant/home-assistant/pull/28612
+[#28618]: https://github.com/home-assistant/home-assistant/pull/28618
+[#28620]: https://github.com/home-assistant/home-assistant/pull/28620
+[#28621]: https://github.com/home-assistant/home-assistant/pull/28621
+[#28625]: https://github.com/home-assistant/home-assistant/pull/28625
+[#28632]: https://github.com/home-assistant/home-assistant/pull/28632
+[#28636]: https://github.com/home-assistant/home-assistant/pull/28636
+[#28638]: https://github.com/home-assistant/home-assistant/pull/28638
+[#28644]: https://github.com/home-assistant/home-assistant/pull/28644
+[#28651]: https://github.com/home-assistant/home-assistant/pull/28651
+[#28658]: https://github.com/home-assistant/home-assistant/pull/28658
+[#28664]: https://github.com/home-assistant/home-assistant/pull/28664
+[#28667]: https://github.com/home-assistant/home-assistant/pull/28667
+[#28674]: https://github.com/home-assistant/home-assistant/pull/28674
+[#28679]: https://github.com/home-assistant/home-assistant/pull/28679
+[#28681]: https://github.com/home-assistant/home-assistant/pull/28681
+[#28682]: https://github.com/home-assistant/home-assistant/pull/28682
+[#28688]: https://github.com/home-assistant/home-assistant/pull/28688
+[#28692]: https://github.com/home-assistant/home-assistant/pull/28692
+[#28694]: https://github.com/home-assistant/home-assistant/pull/28694
+[#28707]: https://github.com/home-assistant/home-assistant/pull/28707
+[#28708]: https://github.com/home-assistant/home-assistant/pull/28708
+[#28709]: https://github.com/home-assistant/home-assistant/pull/28709
+[#28710]: https://github.com/home-assistant/home-assistant/pull/28710
+[#28711]: https://github.com/home-assistant/home-assistant/pull/28711
+[#28713]: https://github.com/home-assistant/home-assistant/pull/28713
+[#28717]: https://github.com/home-assistant/home-assistant/pull/28717
+[#28723]: https://github.com/home-assistant/home-assistant/pull/28723
+[#28725]: https://github.com/home-assistant/home-assistant/pull/28725
+[#28729]: https://github.com/home-assistant/home-assistant/pull/28729
+[#28733]: https://github.com/home-assistant/home-assistant/pull/28733
+[#28737]: https://github.com/home-assistant/home-assistant/pull/28737
+[#28746]: https://github.com/home-assistant/home-assistant/pull/28746
+[#28750]: https://github.com/home-assistant/home-assistant/pull/28750
+[#28768]: https://github.com/home-assistant/home-assistant/pull/28768
+[#28770]: https://github.com/home-assistant/home-assistant/pull/28770
+[@adminiuga]: https://github.com/Adminiuga
+[@anonym-tsk]: https://github.com/Anonym-tsk
+[@bkpepe]: https://github.com/BKPepe
+[@garyokie]: https://github.com/GaryOkie
+[@grodesh]: https://github.com/Grodesh
+[@harlemsquirrel]: https://github.com/HarlemSquirrel
+[@hexf]: https://github.com/HexF
+[@jphutchins]: https://github.com/JPHutchins
+[@jefflirion]: https://github.com/JeffLIrion
+[@jongilmore]: https://github.com/JonGilmore
+[@kane610]: https://github.com/Kane610
+[@leocal]: https://github.com/LeoCal
+[@martinhjelmare]: https://github.com/MartinHjelmare
+[@misiu]: https://github.com/Misiu
+[@onfreund]: https://github.com/OnFreund
+[@ottowinter]: https://github.com/OttoWinter
+[@pixeljonas]: https://github.com/PixelJonas
+[@poeschl]: https://github.com/Poeschl
+[@quentame]: https://github.com/Quentame
+[@santobert]: https://github.com/Santobert
+[@schoonology]: https://github.com/Schoonology
+[@shulyaka]: https://github.com/Shulyaka
+[@stevenlooman]: https://github.com/StevenLooman
+[@sukramj]: https://github.com/SukramJ
+[@zironl]: https://github.com/ZiroNL
+[@akasma74]: https://github.com/akasma74
+[@arigit]: https://github.com/arigit
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@basnijholt]: https://github.com/basnijholt
+[@bendavid]: https://github.com/bendavid
+[@bluestripe]: https://github.com/bluestripe
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@bwarden]: https://github.com/bwarden
+[@castaway]: https://github.com/castaway
+[@cgarwood]: https://github.com/cgarwood
+[@cgtobi]: https://github.com/cgtobi
+[@chriscla]: https://github.com/chriscla
+[@crazyfx1]: https://github.com/crazyfx1
+[@davet2001]: https://github.com/davet2001
+[@djpremier]: https://github.com/djpremier
+[@dmulcahey]: https://github.com/dmulcahey
+[@effelle]: https://github.com/effelle
+[@eifinger]: https://github.com/eifinger
+[@eliseomartelli]: https://github.com/eliseomartelli
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@escoand]: https://github.com/escoand
+[@exxamalte]: https://github.com/exxamalte
+[@fabaff]: https://github.com/fabaff
+[@florisvdk]: https://github.com/florisvdk
+[@flz]: https://github.com/flz
+[@fredericvl]: https://github.com/fredericvl
+[@fredrike]: https://github.com/fredrike
+[@frenck]: https://github.com/frenck
+[@fwestenberg]: https://github.com/fwestenberg
+[@gerard33]: https://github.com/gerard33
+[@gngj]: https://github.com/gngj
+[@guillempages]: https://github.com/guillempages
+[@hfurubotten]: https://github.com/hfurubotten
+[@iamtpage]: https://github.com/iamtpage
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@jkeljo]: https://github.com/jkeljo
+[@karouf]: https://github.com/karouf
+[@kennedyshead]: https://github.com/kennedyshead
+[@kevineriklee]: https://github.com/kevineriklee
+[@kevinkk525]: https://github.com/kevinkk525
+[@ktnrg45]: https://github.com/ktnrg45
+[@ludeeus]: https://github.com/ludeeus
+[@marthoc]: https://github.com/marthoc
+[@mezz64]: https://github.com/mezz64
+[@mflage]: https://github.com/mflage
+[@michaeldavie]: https://github.com/michaeldavie
+[@nkaminski]: https://github.com/nkaminski
+[@ochlocracy]: https://github.com/ochlocracy
+[@oischinger]: https://github.com/oischinger
+[@pattyland]: https://github.com/pattyland
+[@persandstrom]: https://github.com/persandstrom
+[@pvizeli]: https://github.com/pvizeli
+[@rohankapoorcom]: https://github.com/rohankapoorcom
+[@rutkai]: https://github.com/rutkai
+[@rytilahti]: https://github.com/rytilahti
+[@scop]: https://github.com/scop
+[@shmooey]: https://github.com/shmooey
+[@snowzach]: https://github.com/snowzach
+[@soraxas]: https://github.com/soraxas
+[@soundstorm]: https://github.com/soundstorm
+[@ssenart]: https://github.com/ssenart
+[@syssi]: https://github.com/syssi
+[@tefinger]: https://github.com/tefinger
+[@temeteke]: https://github.com/temeteke
+[@thoscut]: https://github.com/thoscut
+[@timgates42]: https://github.com/timgates42
+[@tlrobinson]: https://github.com/tlrobinson
+[@ttroy50]: https://github.com/ttroy50
+[@vangorra]: https://github.com/vangorra
+[@yeralin]: https://github.com/yeralin
+[@yjajkiew]: https://github.com/yjajkiew
+[@zxdavb]: https://github.com/zxdavb
+[alarm_control_panel docs]: /integrations/alarm_control_panel/
+[alexa docs]: /integrations/alexa/
+[almond docs]: /integrations/almond/
+[androidtv docs]: /integrations/androidtv/
+[asuswrt docs]: /integrations/asuswrt/
+[automation docs]: /integrations/automation/
+[avea docs]: /integrations/avea/
+[azure_servicebus docs]: /integrations/azure_servicebus/
+[bluesound docs]: /integrations/bluesound/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[climate docs]: /integrations/climate/
+[cloud docs]: /integrations/cloud/
+[config docs]: /integrations/config/
+[conversation docs]: /integrations/conversation/
+[coolmaster docs]: /integrations/coolmaster/
+[cover docs]: /integrations/cover/
+[deconz docs]: /integrations/deconz/
+[demo docs]: /integrations/demo/
+[device_automation docs]: /integrations/device_automation/
+[device_tracker docs]: /integrations/device_tracker/
+[discogs docs]: /integrations/discogs/
+[dlna_dmr docs]: /integrations/dlna_dmr/
+[doods docs]: /integrations/doods/
+[dyson docs]: /integrations/dyson/
+[ecobee docs]: /integrations/ecobee/
+[eight_sleep docs]: /integrations/eight_sleep/
+[environment_canada docs]: /integrations/environment_canada/
+[envirophat docs]: /integrations/envirophat/
+[ephember docs]: /integrations/ephember/
+[eq3btsmart docs]: /integrations/eq3btsmart/
+[esphome docs]: /integrations/esphome/
+[fan docs]: /integrations/fan/
+[feedreader docs]: /integrations/feedreader/
+[flux docs]: /integrations/flux/
+[flux_led docs]: /integrations/flux_led/
+[folder docs]: /integrations/folder/
+[frontend docs]: /integrations/frontend/
+[generic_thermostat docs]: /integrations/generic_thermostat/
+[geniushub docs]: /integrations/geniushub/
+[geonetnz_quakes docs]: /integrations/geonetnz_quakes/
+[google_assistant docs]: /integrations/google_assistant/
+[greeneye_monitor docs]: /integrations/greeneye_monitor/
+[gtt docs]: /integrations/gtt/
+[hangouts docs]: /integrations/hangouts/
+[hassio docs]: /integrations/hassio/
+[here_travel_time docs]: /integrations/here_travel_time/
+[homeassistant docs]: /integrations/homeassistant/
+[homekit docs]: /integrations/homekit/
+[homekit_controller docs]: /integrations/homekit_controller/
+[homematic docs]: /integrations/homematic/
+[homematicip_cloud docs]: /integrations/homematicip_cloud/
+[huawei_lte docs]: /integrations/huawei_lte/
+[hue docs]: /integrations/hue/
+[iaqualink docs]: /integrations/iaqualink/
+[image_processing docs]: /integrations/image_processing/
+[imap docs]: /integrations/imap/
+[incomfort docs]: /integrations/incomfort/
+[iss docs]: /integrations/iss/
+[juicenet docs]: /integrations/juicenet/
+[keyboard_remote docs]: /integrations/keyboard_remote/
+[lock docs]: /integrations/lock/
+[lutron docs]: /integrations/lutron/
+[media_extractor docs]: /integrations/media_extractor/
+[media_player docs]: /integrations/media_player/
+[mpchc docs]: /integrations/mpchc/
+[mqtt docs]: /integrations/mqtt/
+[netatmo docs]: /integrations/netatmo/
+[nextbus docs]: /integrations/nextbus/
+[nut docs]: /integrations/nut/
+[nzbget docs]: /integrations/nzbget/
+[onvif docs]: /integrations/onvif/
+[openalpr_local docs]: /integrations/openalpr_local/
+[owntracks docs]: /integrations/owntracks/
+[pcal9535a docs]: /integrations/pcal9535a/
+[pioneer docs]: /integrations/pioneer/
+[pjlink docs]: /integrations/pjlink/
+[plex docs]: /integrations/plex/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[proxy docs]: /integrations/proxy/
+[ps4 docs]: /integrations/ps4/
+[qrcode docs]: /integrations/qrcode/
+[reddit docs]: /integrations/reddit/
+[saj docs]: /integrations/saj/
+[samsungtv docs]: /integrations/samsungtv/
+[shiftr docs]: /integrations/shiftr/
+[simplisafe docs]: /integrations/simplisafe/
+[snmp docs]: /integrations/snmp/
+[somfy docs]: /integrations/somfy/
+[ssdp docs]: /integrations/ssdp/
+[stt docs]: /integrations/stt/
+[swisscom docs]: /integrations/swisscom/
+[systemmonitor docs]: /integrations/systemmonitor/
+[tahoma docs]: /integrations/tahoma/
+[telegram_bot docs]: /integrations/telegram_bot/
+[tfiac docs]: /integrations/tfiac/
+[thingspeak docs]: /integrations/thingspeak/
+[tile docs]: /integrations/tile/
+[tradfri docs]: /integrations/tradfri/
+[transmission docs]: /integrations/transmission/
+[twitch docs]: /integrations/twitch/
+[twitter docs]: /integrations/twitter/
+[unifiled docs]: /integrations/unifiled/
+[upnp docs]: /integrations/upnp/
+[vacuum docs]: /integrations/vacuum/
+[venstar docs]: /integrations/venstar/
+[verisure docs]: /integrations/verisure/
+[vicare docs]: /integrations/vicare/
+[vivotek docs]: /integrations/vivotek/
+[water_heater docs]: /integrations/water_heater/
+[watson_tts docs]: /integrations/watson_tts/
+[websocket_api docs]: /integrations/websocket_api/
+[withings docs]: /integrations/withings/
+[wled docs]: /integrations/wled/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[yr docs]: /integrations/yr/
+[zha docs]: /integrations/zha/
+[zoneminder docs]: /integrations/zoneminder/
+[zwave docs]: /integrations/zwave/
From caa66c7cd0a399981fe85584f785dcac8f7c0aa1 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Thu, 14 Nov 2019 14:53:21 +0100
Subject: [PATCH 41/56] Mention scene services
---
source/_posts/2019-11-20-release-102.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index 4d906f2c772..6db733ab6bd 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -12,6 +12,7 @@ og_image: /images/blog/2019-10-0.102/components.png
---
Almond. Account linking. Mobile apps. WLED - platinum.
+Scene services + editor.
## New Integrations
From e20fb1570ce639e148caf6b044df8b283cc01f17 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Mon, 18 Nov 2019 17:08:45 -0600
Subject: [PATCH 42/56] Update in other news
---
source/_posts/2019-11-20-release-102.markdown | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index 6db733ab6bd..a7b6dd0f2af 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -14,6 +14,11 @@ og_image: /images/blog/2019-10-0.102/components.png
Almond. Account linking. Mobile apps. WLED - platinum.
Scene services + editor.
+## In other news
+
+
Using my new found Swift skills I created a tiny Mac menu bar app to control switches on @home_assistanthttps://t.co/N7wl2gXd2O Saves me reaching behind the printer for the awkward power button. Consider it alpha, I've got a lot to learn on both swift and HA! pic.twitter.com/o6Wm7Le5nm
+
## New Integrations
- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
From 27c7553cbb421ec68c0b931f8fe54072edf2e2e2 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Tue, 19 Nov 2019 09:49:52 -0800
Subject: [PATCH 43/56] Mention apps
---
source/_posts/2019-11-20-release-102.markdown | 3 +++
1 file changed, 3 insertions(+)
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index a7b6dd0f2af..07290031204 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -13,12 +13,15 @@ og_image: /images/blog/2019-10-0.102/components.png
Almond. Account linking. Mobile apps. WLED - platinum.
Scene services + editor.
+Android app.
## In other news
Using my new found Swift skills I created a tiny Mac menu bar app to control switches on @home_assistanthttps://t.co/N7wl2gXd2O Saves me reaching behind the printer for the awkward power button. Consider it alpha, I've got a lot to learn on both swift and HA! pic.twitter.com/o6Wm7Le5nm
+https://github.com/tuanha2000vn/hasskit/
+
## New Integrations
- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
From 89b3e8b1450c63ed08ca206cabf9d2fefd772882 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Tue, 19 Nov 2019 17:48:07 -0800
Subject: [PATCH 44/56] Add Almond link
---
source/_posts/2019-11-20-release-102.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index 07290031204..7d31edf49e3 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -12,6 +12,8 @@ og_image: /images/blog/2019-10-0.102/components.png
---
Almond. Account linking. Mobile apps. WLED - platinum.
+Submit new sentences for Almond: https://docs.google.com/forms/d/e/1FAIpQLSeStJfjvueNAiueRVmP47XALRaJlx7tttzJjRfVjX4J546-uA/viewform
+
Scene services + editor.
Android app.
From 7a89c5731dc1cc6b7b1ed0f2e4565e3afa7ae13e Mon Sep 17 00:00:00 2001
From: cogneato
Date: Wed, 20 Nov 2019 08:57:42 -0700
Subject: [PATCH 45/56] Add breaking change descriptions (#11236)
breaking change summaries added
---
source/_posts/2019-11-20-release-102.markdown | 58 +++++++++++++++----
1 file changed, 48 insertions(+), 10 deletions(-)
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index 7d31edf49e3..1c65cc66c95 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -57,16 +57,54 @@ Experiencing issues introduced by this release? Please report them in our [issue
## Breaking Changes
-- Modernize Huawei LTE ([@scop] - [#26675]) ([huawei_lte docs]) (breaking change)
-- Removes unwanted tradfri battery sensor ([@ludeeus] - [#28181]) ([tradfri docs]) (breaking change)
-- Show all UPNP/IGD sensors in one device ([@escoand] - [#27517]) ([upnp docs]) (breaking change)
-- Change ps4 state off to state standby ([@ktnrg45] - [#28261]) ([ps4 docs]) (breaking change)
-- SSDP matching improvements ([@scop] - [#28285]) ([ssdp docs]) (breaking change)
-- Align attribute naming between light and switch for HomematicIP Cloud ([@SukramJ] - [#28271]) ([homematicip_cloud docs]) (breaking change)
-- Update Plugwise ([@bouwew] - [#28237]) ([plugwise docs]) (breaking change)
-- Use friendly app names for Fire TV sources ([@JeffLIrion] - [#28417]) ([androidtv docs]) (breaking change)
-- Update Homekit climate.py to remap current mode ([@GaryOkie] - [#28625]) ([homekit_controller docs]) (breaking change)
-- Correct openalpr_local config option name ([@HexF] - [#28746]) ([openalpr_local docs]) (breaking change)
+- __Huawei LTE__ - Configuration has been consolidated below `huawei_lte`. Device tracker no longer uses known_devices.yaml but entity registry. - ([@scop] - [#26675]) ([huawei_lte docs])
+
+ Example configuration yaml:
+ ```yaml
+ huawei_lte:
+ - url: http://192.168.100.1/
+ username: admin
+ password: something
+ ```
+
+- __Ikea Tradfri__ - This removes the battery sensor that was created for the signal repeater. The sensor would never have a state, and after some inspection, it does not look like that device present any valuable metrics. - ([@ludeeus] - [#28181]) ([tradfri docs])
+
+- __UPNP/IGD__ - All UPNP/IGD sensors are now in one device. You have to remove and re-add the integration to get rid of the previous devices. ([@escoand] - [#27517]) ([upnp docs])
+
+- __PS4__ - State `off` is now State `standby`. Affects user defined scripts, automations, etc. ([@ktnrg45] - [#28261]) ([ps4 docs])
+
+- __SSDP__ - `ssdp` in manifest.json has changed; it is now a list of dicts, and as we now match using the UPnP device description fields directly, `device_type` has to be renamed to `deviceType`. No included integrations use it at the moment, nor are they broken by this change. If any custom integrations are using it, they need to adjust accordingly. ([@scop] - [#28285]) ([ssdp docs])
+
+- __HomematicIP Cloud__ - The attribute naming between Homematic IP `HmIP-BSM` (light) and `HmIP-FSM/HmIP-PSM` (switch) was different and in case of light not correct. The attributes for `HmIP-BSM` have been renamed:
+
+ * energy_counter_kwh --> today_energy_kwh
+ * power_consumption --> current_power_w
+
+ Please check your automations, scripts, scenes, etc., if you are using the old attributes in templates, and replace them with the new ones. - ([@SukramJ] - [#28271]) ([homematicip_cloud docs])
+
+- __Plugwise__ - Detection of a legacy Anna (firmware 1.8.x) is no longer automatic: owners of a legacy Anna have to provide info in configuration.yaml, the last line. This change was needed to be able to fix issue #26520. - ([@bouwew] - [#28237]) ([plugwise docs])
+
+ Example configuration yaml:
+ ```yaml
+ climate:
+ - platform: plugwise
+ name: your_device_name
+ password: your_password
+ host: your_anna_ip
+ legacy_anna: true
+ ```
+
+- __Android TV__ - The `source` and `sources_list` attributes for Fire TV devices will use friendly app names instead of app IDs (e.g., "Netflix" instead of "com.netflix.ninja"). If you are using these attributes in automations, sensors, etc., you will need to update them.
+ * If you are currently checking that the `source` attribute of a Fire TV device is a particular app ID, you have two options:
+ * Check the `app_id` attribute instead
+ * Replace that app ID with the friendly name for the app.
+ * If you are currently checking the `sources_list` attribute, then you will need to check for friendly app names instead of app IDs.
+
+ You can still use app IDs for the media_player.select_source service. - ([@JeffLIrion] - [#28417]) ([androidtv docs])
+
+- __Homekit__ - Thermostats supported by the Homekit Controller component were reporting "off" for the running status when the HVAC was powered on but not actively heating or cooling. This `hvac_action` attribute will now properly return "idle" instead of off. Any logic that tests for the `hvac_action` condition of `off` will need to change to `idle`. There is no change to any other states. - ([@GaryOkie] - [#28625]) ([homekit_controller docs])
+
+- __OpenALPR local__ - The "alp_bin" option has been corrected to "alpr_bin" as is outlined in the documentation. Users should check their config and update if necessary. ([@HexF] - [#28746]) ([openalpr_local docs])
## Beta Fixes
From 91afab4840bf2dd1cb142f9212ee6f12025aecdf Mon Sep 17 00:00:00 2001
From: Bram Kragten
Date: Wed, 20 Nov 2019 19:38:59 +0100
Subject: [PATCH 46/56] Frontend release notes (#11237)
* Frontend release notes
* typos
* Update 2019-11-20-release-102.markdown
* Update 2019-11-20-release-102.markdown
* Update source/_posts/2019-11-20-release-102.markdown
Co-Authored-By: Franck Nijhof
---
source/_posts/2019-11-20-release-102.markdown | 48 +++++++++++++++++-
.../2019-11-0.102/thingtalk-automation.png | Bin 0 -> 101945 bytes
2 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 source/images/blog/2019-11-0.102/thingtalk-automation.png
diff --git a/source/_posts/2019-11-20-release-102.markdown b/source/_posts/2019-11-20-release-102.markdown
index 1c65cc66c95..712645ee0ff 100644
--- a/source/_posts/2019-11-20-release-102.markdown
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -14,8 +14,54 @@ og_image: /images/blog/2019-10-0.102/components.png
Almond. Account linking. Mobile apps. WLED - platinum.
Submit new sentences for Almond: https://docs.google.com/forms/d/e/1FAIpQLSeStJfjvueNAiueRVmP47XALRaJlx7tttzJjRfVjX4J546-uA/viewform
-Scene services + editor.
Android app.
+Scene services.
+
+### Create automations with natural language
+
+As an experimental feature, we have added a new way to create automations. With the help of Almond, we can transform natural language into Home Assistant automations.
+
+
+
+Screenshot of the create automation dialog.
+
+
+When you click the **+** in the automation editor to add a new automation, you will see a new dialog where you can enter what you want your automation to do in natural language. Like: `Turn on the lights when I come home`. We will try to convert this into an automation. We will check if you need to specify devices or persons for this automation and ask you for them. You can then check the generated automation in the editor and save it.
+
+Be advised that not all devices are supported yet, and that Almond needs more training for better responses. Check the Almond part for how you can help make Almond better.
+
+### Scene editor
+
+
+
+Screenshot of the scene editor.
+
+
+We also introduce a [scene editor](/docs/scene/editor/). With the scene editor you can easily store the states of devices in a scene.
+You simply select the devices (and/or entities if you are in advanced mode) you want to include in your scene and set the states to how you would like them when the scene activates.
+Changes you do to the state of a device that is included in the scene you are editing are discarded when you exit the scene editor.
+
+To use the scene editor your scene config should be in the file `scenes.yaml` in your config directory and included in `configuration.yaml`.
+Every scene should have a unique id for the editor to work.
+
+```yaml
+# scenes.yaml
+- id: my_unique_id # <-- Required for editor to work.
+ name: Romantic
+ entities:
+ light.tv_back_light: on
+ light.ceiling:
+ state: on
+ xy_color: [0.33, 0.66]
+ brightness: 200
+```
+
+Then update your `configuration.yaml` to look like this:
+
+```yaml
+# Configuration.yaml example
+scene: !include scenes.yaml
+```
## In other news
diff --git a/source/images/blog/2019-11-0.102/thingtalk-automation.png b/source/images/blog/2019-11-0.102/thingtalk-automation.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2b0ee53668f48bf21986c2bbbe2335b06084402
GIT binary patch
literal 101945
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