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/_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.markdowm b/source/_docs/ecosystem.markdown
similarity index 100%
rename from source/_docs/ecosystem.markdowm
rename to source/_docs/ecosystem.markdown
diff --git a/source/_docs/ecosystem/appdaemon.markdown b/source/_docs/ecosystem/appdaemon.markdown
index 0db6d3a3e4e..5f8e20b8284 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 717099a8f08..0e350ef9094 100644
--- a/source/_docs/installation.markdown
+++ b/source/_docs/installation.markdown
@@ -55,7 +55,6 @@ The only installation methods that allow you to use Hass.io Add-ons are the Hass
:-----|:-----|:-----
[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/scene.markdown b/source/_docs/scene.markdown
new file mode 100644
index 00000000000..bd1e21f61c5
--- /dev/null
+++ b/source/_docs/scene.markdown
@@ -0,0 +1,88 @@
+---
+title: "Scenes"
+description: "Instructions on how to setup scenes within Home Assistant."
+---
+
+You can create scenes that capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.
+
+```yaml
+# Example configuration.yaml entry
+scene:
+ - name: Romantic
+ entities:
+ light.tv_back_light: on
+ light.ceiling:
+ state: on
+ xy_color: [0.33, 0.66]
+ brightness: 200
+ - name: Movies
+ entities:
+ light.tv_back_light:
+ state: on
+ brightness: 125
+ light.ceiling: off
+ media_player.sony_bravia_tv:
+ state: on
+ source: HDMI 1
+ state: on
+```
+
+{% configuration %}
+name:
+ description: Friendly name of scene.
+ required: true
+ type: string
+entities:
+ description: Entities to control and their desired state.
+ required: true
+ type: list
+{% endconfiguration %}
+
+As you can see, there are two ways to define the states of each `entity_id`:
+
+- Define the `state` directly with the entity. Be aware, that `state` needs to be defined.
+- Define a complex state with its attributes. You can see all attributes available for a particular entity under `developer-tools -> state`.
+
+Scenes can be activated using the service `scene.turn_on` (there is no 'scene.turn_off' service).
+
+```yaml
+# Example automation
+automation:
+ trigger:
+ platform: state
+ entity_id: device_tracker.sweetheart
+ from: "not_home"
+ to: "home"
+ action:
+ service: scene.turn_on
+ entity_id: scene.romantic
+```
+
+## Applying a scene without defining it
+
+With the `scene.apply` service you are able to apply a scene without first defining it via configuration. Instead, you pass the states as part of the service data. The format of the data is the same as the `entities` field in a configuration.
+
+```yaml
+# Example automation
+automation:
+ trigger:
+ platform: state
+ entity_id: device_tracker.sweetheart
+ from: "not_home"
+ to: "home"
+ action:
+ service: scene.apply
+ data:
+ entities:
+ light.tv_back_light:
+ state: on
+ brightness: 100
+ light.ceiling: off
+ media_player.sony_bravia_tv:
+ state: on
+ source: HDMI 1
+```
+
+## Reloading scenes
+
+Whenever you make a change to your scene configuration, you can call the `scene.reload` service to reload the scenes.
diff --git a/source/_docs/scene/editor.markdown b/source/_docs/scene/editor.markdown
new file mode 100644
index 00000000000..fefe1e41050
--- /dev/null
+++ b/source/_docs/scene/editor.markdown
@@ -0,0 +1,77 @@
+---
+title: "Scenes Editor"
+description: "Instructions on how to use the scenes editor."
+---
+
+In Home Assistant 0.102 we introduced the first version of our scene editor. If you just created a new configuration with Home Assistant, then you're all set! Go to the UI and enjoy.
+
+From the UI choose **Configuration** which is located in the sidebar, then click on **Scenes** to go to the scene editor. Press the **+** sign in the lower right corner to get started.
+
+Choose a meaningful name for your scene.
+
+
+
+
+
+Select all the devices (and/or entities when in advanced mode) you want to include in your scene.
+The state of your devices will be saved, so it can be restored when you are finished creating your scene.
+Set the state of the devices to how you want them to be in your scene, this can be done by clicking on it and edit the state from the popup, or any other method that changes the state.
+On the moment you save the scene, all the states of your devices are stored in the scene.
+When you leave the editor the states of the devices are restored to the state from before you started editing.
+
+## Updating your configuration to use the editor
+
+First, check that you have activated the configuration editor.
+
+```yaml
+# Activate the configuration editor
+config:
+```
+
+The scene editor reads and writes to the file `scenes.yaml` in the root of your [configuration](/docs/configuration/) folder.
+Currently, both the name of this file and its location are fixed.
+Make sure that you have set up the scene integration to read from it:
+
+```yaml
+# Configuration.yaml example
+scene: !include scenes.yaml
+```
+
+If you still want to use your old scene section, add a label to the old entry:
+
+```yaml
+scene old:
+ - name: ...
+```
+
+You can use the `scene:` and `scene old:` sections at the same time:
+
+- `scene old:` to keep your manual designed scenes
+- `scene:` to save the scene created by the online editor
+
+```yaml
+scene: !include scenes.yaml
+scene old: !include_dir_merge_list scenes
+```
+
+## Migrating your scenes to `scenes.yaml`
+
+If you want to migrate your old scenes to use the editor, you'll have to copy them to `scenes.yaml`. Make sure that `scenes.yaml` remains a list! For each scene that you copy over, you'll have to add an `id`. This can be any string as long as it's unique.
+
+For example:
+
+```yaml
+# Example scenes.yaml entry
+- 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
+```
+
+
+Any comments in the YAML file will be lost and templates will be reformatted when you update an automation via the editor.
+
diff --git a/source/_docs/ecosystem/scenegen.markdown b/source/_docs/scene/scenegen.markdown
similarity index 100%
rename from source/_docs/ecosystem/scenegen.markdown
rename to source/_docs/scene/scenegen.markdown
diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown
index b0daf1083da..babad7c72be 100644
--- a/source/_docs/z-wave/device-specific.markdown
+++ b/source/_docs/z-wave/device-specific.markdown
@@ -80,8 +80,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..8f54340183b 100644
--- a/source/_includes/asides/docs_navigation.html
+++ b/source/_includes/asides/docs_navigation.html
@@ -1,7 +1,7 @@
-
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/almond.markdown b/source/_integrations/almond.markdown
new file mode 100644
index 00000000000..b436377e2bb
--- /dev/null
+++ b/source/_integrations/almond.markdown
@@ -0,0 +1,68 @@
+---
+title: "Almond"
+description: "Instructions on how to setup Almond within Home Assistant."
+logo: almond.png
+ha_category:
+ - Voice
+ha_iot_class: Local Polling
+ha_release: "0.102"
+---
+
+[Almond](https://almond.stanford.edu/) is an open, privacy-preserving virtual assistant by [Stanford Open Virtual Assistant Lab](https://oval.cs.stanford.edu/). It allows you, among other things, to control Home Assistant using natural language. Once installed, it will be available on Lovelace via the microphone icon in the top right.
+
+Almond consists of three parts:
+
+- Almond Server: Knows about Home Assistant and your data. Executes your sentences.
+- LUInet: Neural network that converts your sentences into Thingtalk programs.
+- Thingpedia: Skills that provide the building blocks for Thingtalk programs.
+
+
+
+## Installation
+
+### Hass.io installation
+
+To install Almond Server on Hass.io, go to Hass.io App Store, search for Almond and click on Install. Once started, it will initiate a config flow to finish set up in Home Assistant. You can find it on the integrations page in the configuration panel.
+
+### Manual installation
+
+You can install Almond Server by following [the instructions in their README](https://github.com/stanford-oval/almond-server#running-almond-server).
+
+Before linking it to Home Assistant, you will need to visit the Almond UI once to create a password. It is by default available on port 3000.
+
+Once installed, configure Almond like this:
+
+```yaml
+# Example configuration.yaml entry
+almond:
+ type: local
+ host: http://127.0.0.1:3000
+```
+
+The Almond integration does not update config entries yet. If you make a change to configuration.yaml, you will need to remove the config entry and then restart Home Assistant.
+
+### Almond Web
+
+Stanford offers a hosted version of Almond Server called Almond Web. To use this, go to the integrations page and add Almond using the add integration flow.
+
+### Almond Web - Manual installation
+
+It is possible to set up Almond Web manually. You will need to create your own client ID and secret in the web interface.
+
+```yaml
+# Example configuration.yaml entry
+almond:
+ type: oauth2
+ client_id: AAAAAAAAAAAAA
+ client_secret: BBBBBBBBBBBBBBBBB
+```
+
+You can now go to the integrations page and start the configuration flow.
+
+## Language Support
+
+Almond is currently limited to the English language. This is not a technical limitation but requires specialized engineering effort. Almond has currently no public timeline for adding other languages.
+
+## Device Support
+
+Almond is constantly improving. It does not currently support all devices, but we're working with Almond on improving this.
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/_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
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 %}
diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown
index dd2b37f6c46..a7344231aa4 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/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/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
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
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/_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/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown
index 4e1eefeb244..f98fb019127 100644
--- a/source/_integrations/homematicip_cloud.markdown
+++ b/source/_integrations/homematicip_cloud.markdown
@@ -167,6 +167,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
@@ -241,6 +242,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
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/imap.markdown b/source/_integrations/imap.markdown
index b96c727b69f..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
@@ -55,6 +55,11 @@ search:
required: false
default: UnSeen UnDeleted
type: string
+charset:
+ description: The character set 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,14 @@ sensor:
username: YOUR_USERNAME
password: YOUR_PASSWORD
search: FROM , SUBJECT
+
+# 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
```
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.
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
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:
diff --git a/source/_integrations/logger.markdown b/source/_integrations/logger.markdown
index a166e8fae6c..2d59c0b2384 100644
--- a/source/_integrations/logger.markdown
+++ b/source/_integrations/logger.markdown
@@ -132,12 +132,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/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
```
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/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.
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
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/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. |
diff --git a/source/_integrations/pcal9535a.markdown b/source/_integrations/pcal9535a.markdown
new file mode 100644
index 00000000000..de26e82c9f9
--- /dev/null
+++ b/source/_integrations/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 input 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 %}
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
---
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
```
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
diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown
index 42a4a548e20..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
@@ -144,15 +145,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/scene.markdown b/source/_integrations/scene.markdown
index 3b0e34fcd96..8463c734690 100644
--- a/source/_integrations/scene.markdown
+++ b/source/_integrations/scene.markdown
@@ -91,3 +91,31 @@ 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.
+
+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:
+ 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
+```
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/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
```
diff --git a/source/_integrations/somfy.markdown b/source/_integrations/somfy.markdown
index e90bdc2c553..a8b063187a1 100644
--- a/source/_integrations/somfy.markdown
+++ b/source/_integrations/somfy.markdown
@@ -10,18 +10,30 @@ ha_release: 0.95
The Somfy integration will allow users to integrate their Somfy devices into Home Assistant using the [official API](https://developer.somfy.com/somfy-open-api/apis), unlike the [tahoma](/integrations/tahoma/) component.
-### Setting up developer account
+## Installation
-To connect Somfy, you need to set up a developer account.
+Somfy is leveraging the new account linking service. This means that to set up Somfy, you only need to go to the integrations page and click on add new integration.
+
+
+
+
+
+## Installation with own developer account
+
+It is possible to create your own developer account and configure Somfy via that.
+
+### Setting up developer account
1. Visit [https://developer.somfy.com](https://developer.somfy.com).
2. Log in using your Somfy credentials.
-3. Open the *My Apps* menu.
+3. Open the _My Apps_ menu.
4. Add a new App:
- - App Name: Home Assistant
- - Callback URL: `/auth/external/callback`
- - Description: Home Assistant instance
- - Product: Somfy Open API
+
+- App Name: Home Assistant
+- Callback URL: `/auth/external/callback`
+- Description: Home Assistant instance
+- Product: Somfy Open API
+
5. Once Home Assistant restarted, go to Configuration>Integrations.
6. Select the Somfy integration.
@@ -36,13 +48,13 @@ somfy:
{% configuration %}
client_id:
- description: Your Somfy consumer key.
- required: true
- type: string
+description: Your Somfy consumer key.
+required: true
+type: string
client_secret:
- description: Your Somfy consumer secret.
- required: true
- type: string
+description: Your Somfy consumer secret.
+required: true
+type: string
{% endconfiguration %}
### Potential duplicate with the Tahoma integration
@@ -54,5 +66,21 @@ If you use the [tahoma](/integrations/tahoma) component, you will have to exclud
tahoma:
username: YOUR_USERNAME
password: YOUR_PASSWORD
- exclude: ['rts:RollerShutterRTSComponent','rts:CurtainRTSComponent','rts:BlindRTSComponent','rts:VenetianBlindRTSComponent','rts:DualCurtainRTSComponent','rts:ExteriorVenetianBlindRTSComponent','io:ExteriorVenetianBlindIOComponent','io:RollerShutterUnoIOComponent','io:RollerShutterWithLowSpeedManagementIOComponent','io:RollerShutterVeluxIOComponent','io:RollerShutterGenericIOComponent','io:WindowOpenerVeluxIOComponent','io:VerticalExteriorAwningIOComponent','io:HorizontalAwningIOComponent']
+ exclude:
+ [
+ "rts:RollerShutterRTSComponent",
+ "rts:CurtainRTSComponent",
+ "rts:BlindRTSComponent",
+ "rts:VenetianBlindRTSComponent",
+ "rts:DualCurtainRTSComponent",
+ "rts:ExteriorVenetianBlindRTSComponent",
+ "io:ExteriorVenetianBlindIOComponent",
+ "io:RollerShutterUnoIOComponent",
+ "io:RollerShutterWithLowSpeedManagementIOComponent",
+ "io:RollerShutterVeluxIOComponent",
+ "io:RollerShutterGenericIOComponent",
+ "io:WindowOpenerVeluxIOComponent",
+ "io:VerticalExteriorAwningIOComponent",
+ "io:HorizontalAwningIOComponent",
+ ]
```
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/)
diff --git a/source/_integrations/stt.markdown b/source/_integrations/stt.markdown
new file mode 100644
index 00000000000..89a6f3bc7bc
--- /dev/null
+++ b/source/_integrations/stt.markdown
@@ -0,0 +1,9 @@
+---
+title: "Speech-to-Text (STT)"
+description: "Instructions on how to set up Speech-to-Text (STT) with Home Assistant."
+ha_release: "0.102"
+---
+
+Speech-to-Text (SST) allows you to stream speech data to the SST API and get text back.
+
+This is an integration that is a building block for other integrations or apps building on top of Home Assistant, like [Ada](https://github.com/home-assistant/ada).
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/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 %}
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.
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. |
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).
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
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 %}
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
new file mode 100644
index 00000000000..a1375465be6
--- /dev/null
+++ b/source/_integrations/wled.markdown
@@ -0,0 +1,63 @@
+---
+title: "WLED"
+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
+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 treats 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).
+
+## 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:
+
+- Nightlight.
+- Sync Receive.
+- Sync Send.
+
+## Services
+
+This integration currently does not offer any additional services.
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.
diff --git a/source/_posts/2019-11-20-privacy-focused-voice-assistant.markdown b/source/_posts/2019-11-20-privacy-focused-voice-assistant.markdown
new file mode 100644
index 00000000000..8e90a1804d7
--- /dev/null
+++ b/source/_posts/2019-11-20-privacy-focused-voice-assistant.markdown
@@ -0,0 +1,92 @@
+---
+layout: post
+title: "Almond & Ada: privacy-focused voice assistant"
+description: "Say Hi! to Almond, a privacy-focused virtual assistant and Ada, a voice assistant powered by Home Assistant."
+date: 2019-11-20 0:43:02
+date_formatted: "November 20, 2019"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Announcements
+og_image: /images/blog/2019-11-voice-assistant/almond.png
+---
+
+TL;DR:
+
+- Teamed up with [Almond](https://almond.stanford.edu/), available in Home Assistant 0.102.
+- Introducing [Ada](https://github.com/home-assistant/ada), voice assistant powered by Home Assistant integrations. Available as Hass.io add-on.
+- New beta speech-to-text and text-to-speech service for Home Assistant Cloud subscribers.
+
+---
+
+Voice assistants are a great way to interact with your house, ask a quick question, set a timer or control your devices. The more an assistant knows about you, your home and it's other inhabitants, the better it is able to help you.
+
+Today's available virtual assistants work great, but they have a big problem: They store your data in the cloud, don't provide APIs to allow other companies to build products on top and are run by companies whose core business is building profiles on their users to help serve ads and product suggestions.
+
+The backbone to our homes needs to be one that keeps data local and has APIs allowing other companies to build on top. Innovation happens when many different people, with many different backgrounds, do many different experiments until we find something that sticks. This cannot be left to a single company.
+
+Recently we got in touch with the [Open Virtual Assistant Lab at Stanford University](https://oval.cs.stanford.edu/). In the last four years, they have been working on a virtual assistant named Almond. And it's a perfect match for Home Assistant.
+
+
+
+## Almond
+
+[Almond](https://almond.stanford.edu/) is an open, privacy-preserving virtual assistant that is open source. With Almond, you can run a virtual assistant at home, that can tell you the news or control your house. It is powered by [LUInet](https://almond.stanford.edu/doc/genie-intro.md), a state-of-the-art neural network developed at Stanford. And it now works with Home Assistant.
+
+The Almond team has updated Almond to make it aware of the different device types in Home Assistant and allow Almond to control them. In turn, we have upgraded the conversation integration in Home Assistant to support Almond, allowing users to converse with Almond via the frontend.
+
+
Screenshot showing Almond integration in Home Assistant.
+
+Almond is available to users today in Home Assistant 0.102. It requires an Almond Server, which you can either install yourself, use the new Almond Hass.io add-on or rely on Almond Web, a cloud version hosted by Stanford. By default, Almond Server will rely on a cloud version of LUInet, but it is possible to run it locally.
+
+Almond is set up in a way such that your privacy is still partially preserved even with LUInet running in the cloud. This is made possible because LUInet is only responsible for converting the text into a program, whose details are filled in locally by the Almond Server. For example, LUInet will convert "turn on the lights" into code that Almond Server understands. Only Almond Server will know which lights the user has, how to control them and the context of how the text was received.
+
+### How Almond compares to Google/Alexa
+
+You're probably wondering if Almond is as good as Alexa or Google. And it's not yet as good. However, it doesn't matter.
+
+If you want to have an assistant in your home that knows everything about you, it needs to be one that cares about privacy. It needs to be one that is open. That's not negotiable.
+
+Almond has room for improvement. But it's open source, and with the Home Assistant community, we'll work with the Almond team on making it better. You can start helping right now:
+
+Almond is gathering sentences that you want to use to control the devices in your home. We already have a basic set of sentences, but the more, the better. You can submit those sentences [using this form](https://docs.google.com/forms/d/e/1FAIpQLSeStJfjvueNAiueRVmP47XALRaJlx7tttzJjRfVjX4J546-uA/viewform).
+
+You are also able to help train LUInet directly by teaching it how to interpret sentences [in the training console](https://almond.stanford.edu/developers/train).
+
+## Ada
+
+Almond is not the full story. Almond only works with text input, and generates text as output. It doesn't handle speech-to-text to receive input nor text-to-speech to speak answers. Those technologies are out of scope for Almond. However, not out of scope for Home Assistant! Home Assistant already has a text-to-speech integration with different backends. In Home Assistant 0.102, we're introducing a new speech-to-text integration to complement this.
+
+Now we almost have all the pieces for a voice assistant built-in to Home Assistant, and so we decided to finish it off by introducing a new project called [Ada](https://github.com/home-assistant/ada). Ada integrates hotword detection and will route all data to the various integrations to provide a full voice assistant experience.
+
+
+
+Ada is still very much in the beginning. We'll be working on improving it. If you have expertise in this area and want to help, please get in touch.
+
+Ada is also available as a [Hass.io](http://hass.io) add-on. This means that you can plug a microphone and speakers into your Raspberry Pi and turn Hass.io into a full, privacy-focused, voice assistant.
+
+To make it easier to add speech-to-text and text-to-speech integrations to your system, Nabu Casa is introducing a new beta service offering speech-to-text and text-to-speech services to Home Assistant Cloud subscribers, powered by Azure Cognitive Services.
+
+
+
+
+
+## Can a virtual assistant still be private if parts run in the cloud?
+
+With Home Assistant we care about privacy and local control. We want to be able to offer home automation that keeps working if there is no internet. Home automation, that is fast and reliable.
+
+But we also want privacy to be accessible. A user should be able to get a private solution without running a big server at home. Privacy should not be something that is reserved for the rich.
+
+With the current approach, some things will still run in the cloud, but the home data and control stays local. We will bring more things local when faster technology becomes more accessible or new projects emerge that can help with this.
+
+We don't want to wait with integrating this until all the pieces run 100% locally. We need to help build the future we want to see.
+
+## What's next?
+
+With Almond and Ada, we've put the building blocks in place to create voice assistants. It's now time to use it, improve it and surprise us by sharing the things you'll use it for.
+
+## Bonus
+
+I hacked together a quick prototype to allow you to talk to Almond via a Telegram Bot! It's available as a [custom component](https://gist.github.com/balloob/d59cae89d19a14bcec99ce1bde05bd44).
+
+
Screenshot of talking to Almond via Telegram.
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..a0535006490
--- /dev/null
+++ b/source/_posts/2019-11-20-release-102.markdown
@@ -0,0 +1,921 @@
+---
+layout: post
+title: "0.102: Official Android App, Almond, Scene editor"
+description: "Download the Android app, install a private voice assistant and easy OAuth2 account linking."
+date: 2019-11-20 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
+---
+
+Home Assistant 0.102 is here ! It's been quite the trip as we hosted our annual State of the Union last week, which took a lot of energy away from our release. This doesn't mean that we don't have anything to share, just that the notes might be a little less polished.
+
+First, we had our State of the Union at the ING office in Amsterdam! It was great. You can watch it back [on YouTube](https://youtu.be/tc17q1Zn0Xs?t=434) or keep an eye out for the blog post coming soon that will summarize all the announcements.
+
+Alright, so what's new? A lot.
+
+## Android App released!
+
+At the State of the Union we announced that we have released the initial version of the official [Home Assistant Android app](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android). It's still a work in progress, but the basic version already works.
+
+It's been developed by [@CedrickFlocon](https://github.com/CedrickFlocon) and the source is [available on GitHub](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android). We've already seen some other developers step in, so that's great! Keep it coming.
+
+
+
+## Private Voice Assistant
+
+We teamed up with Stanford to tightly integrate their open, privacy-preserving virtual assistant Almond into Home Assistant. For more information, see the [separate blog post](/blog/2019/11/14/privacy-focused-voice-assistant/).
+
+## Account Linking
+
+Some companies only allow us to integrate with their products via cloud APIs. These cloud APIs often use [the OAuth2 specification](https://tools.ietf.org/html/rfc6749) to link accounts. The problem with this specification is that it cannot properly handle non-public or decentralized installations.
+
+So if you were to link an integration via OAuth2 before today, you would have to sign up for a developer account, configure Home Assistant and expose your instance publicly before you got to the part where you can link your account. That's not good!
+
+Home Assistant Cloud is introducing a new account linking service that will be freely available for everyone – no cloud account required. With this service, Home Assistant controls the developer account, and users will just need to link their accounts.
+
+
+
+
+
+The first integration to use this new service is [Somfy][somfy docs]. Manual installation is also still possible. This integration is built on top of our [new OAuth2 framework](https://developers.home-assistant.io/docs/en/config_entries_config_flow_handler.html#configuration-via-oauth2). We expect more integration developers to migrate OAuth2 integrations in the future.
+
+## 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're also introducing 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.
+
+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
+
+Andrew learned Swift and created a new mini-app for Mac:
+
+
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
+
+Our Android app is not the only new app on the block. [@tuanha2000vn](https://github.com/tuanha2000vn) has released [Hasskit](https://github.com/tuanha2000vn/hasskit/), a new app built with Flutter that can be used on both Android and iOS.
+
+And finally, Brad posted a video on [Reddit](https://www.reddit.com/r/homeassistant/comments/dz1qsi/picture_elements_are_so_fun_i_made_a_bad_video/) showing his amazing usage of picture elements in Lovelace. Check it out:
+
+
+
+
+
+Users of Xiaomi Vacuum cleaners can now use this great custom Lovelace card:
+
+