diff --git a/Gemfile b/Gemfile
index 584f2fa3a3b..4c86a237eba 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,9 +1,9 @@
-source "https://rubygems.org"
+source 'https://rubygems.org'
-ruby "> 2.5.0"
+ruby '> 2.5.0'
group :development do
- gem 'rake', '13.0.0'
+ gem 'rake', '13.0.1'
gem 'jekyll', '4.0.0'
gem 'compass', '1.0.3'
gem 'sass-globbing', '1.1.5'
@@ -19,4 +19,14 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.0.7'
-gem 'nokogiri', '1.10.4'
+gem 'nokogiri', '1.10.5'
+
+# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
+# and associated library
+install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
+ gem 'tzinfo', '~> 1.2'
+ gem 'tzinfo-data'
+end
+
+# Performance-booster for watching directories on Windows
+gem "wdm", "~> 0.1.0" if Gem.win_platform?
diff --git a/Gemfile.lock b/Gemfile.lock
index 61322e42c0b..0bd8ccada10 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -24,10 +24,12 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
+ eventmachine (1.2.7-x64-mingw32)
ffi (1.11.1)
+ ffi (1.11.1-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
- i18n (1.6.0)
+ i18n (1.7.0)
concurrent-ruby (~> 1.0)
jekyll (4.0.0)
addressable (~> 2.4)
@@ -50,7 +52,7 @@ GEM
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.15.0)
jekyll (>= 3.3, < 5.0)
- jekyll-sass-converter (2.0.0)
+ jekyll-sass-converter (2.0.1)
sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.3.1)
jekyll (>= 3.7, < 5.0)
@@ -62,15 +64,16 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.1.5)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- ruby_dep (~> 1.2)
+ listen (3.2.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
mini_portile2 (2.4.0)
- multi_json (1.13.1)
+ multi_json (1.14.1)
mustermann (1.0.3)
- nokogiri (1.10.4)
+ nokogiri (1.10.5)
+ mini_portile2 (~> 2.4.0)
+ nokogiri (1.10.5-x64-mingw32)
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@@ -78,19 +81,20 @@ GEM
rack (2.0.7)
rack-protection (2.0.7)
rack
- rake (13.0.0)
+ rake (13.0.1)
rb-fsevent (0.10.3)
rb-inotify (0.10.0)
ffi (~> 1.0)
- rouge (3.9.0)
+ rouge (3.12.0)
ruby-enum (0.7.2)
i18n
- ruby_dep (1.5.0)
safe_yaml (1.0.5)
sass (3.4.25)
sass-globbing (1.1.5)
sass (>= 3.1)
- sassc (2.2.0)
+ sassc (2.2.1)
+ ffi (~> 1.9)
+ sassc (2.2.1-x64-mingw32)
ffi (~> 1.9)
sinatra (2.0.7)
mustermann (~> 1.0)
@@ -100,11 +104,17 @@ GEM
stringex (2.8.5)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
- tilt (2.0.9)
+ thread_safe (0.3.6)
+ tilt (2.0.10)
+ tzinfo (1.2.5)
+ thread_safe (~> 0.1)
+ tzinfo-data (1.2019.3)
+ tzinfo (>= 1.0.0)
unicode-display_width (1.6.0)
PLATFORMS
ruby
+ x64-mingw32
DEPENDENCIES
compass (= 1.0.3)
@@ -114,11 +124,13 @@ DEPENDENCIES
jekyll-redirect-from (= 0.15.0)
jekyll-sitemap (= 1.3.1)
jekyll-time-to-read (= 0.1.2)
- nokogiri (= 1.10.4)
- rake (= 13.0.0)
+ nokogiri (= 1.10.5)
+ rake (= 13.0.1)
sass-globbing (= 1.1.5)
sinatra (= 2.0.7)
stringex (= 2.8.5)
+ tzinfo (~> 1.2)
+ tzinfo-data
RUBY VERSION
ruby 2.6.2p47
diff --git a/_config.yml b/_config.yml
index 9dd6542d0d9..b61deb20e17 100644
--- a/_config.yml
+++ b/_config.yml
@@ -101,8 +101,8 @@ social:
# Home Assistant release details
current_major_version: 0
current_minor_version: 101
-current_patch_version: 0
-date_released: 2019-10-30
+current_patch_version: 3
+date_released: 2019-11-05
# 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/sass/oscailte/_oscailte.scss b/sass/oscailte/_oscailte.scss
index 972226c6fad..29a22ffcda7 100644
--- a/sass/oscailte/_oscailte.scss
+++ b/sass/oscailte/_oscailte.scss
@@ -23,6 +23,4 @@
@import "homepage/hero_unit";
@import "helpers/classes";
-@import "helpers/grid-fix";
-
-@import "custom/**/*"
+@import "helpers/grid-fix";
\ No newline at end of file
diff --git a/sass/oscailte/custom/_README.scss b/sass/oscailte/custom/_README.scss
deleted file mode 100644
index 8f1caadd6c0..00000000000
--- a/sass/oscailte/custom/_README.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// You can freely create SCSS files within this Custom directory
-// and they will be imported into the end of the theme's output CSS.
-// The directory is loaded to increase abstraction and reduce the amount of
-// changes to be made to the Oscailte theme itself.
-
-// THESE FILES AREA LOADED ALPHABETICALLY
\ No newline at end of file
diff --git a/source/_addons/samba.markdown b/source/_addons/samba.markdown
index 5b21c892f7a..3aa6f3eff87 100644
--- a/source/_addons/samba.markdown
+++ b/source/_addons/samba.markdown
@@ -28,6 +28,13 @@ Sometimes shares will not show up under network in Windows. Then you could open
"10.0.0.0/8",
"172.16.0.0/12",
"192.168.0.0/16"
+ ],
+ "veto_files": [
+ "._*",
+ ".DS_Store",
+ "Thumbs.db",
+ "icon?",
+ ".Trashes"
]
}
```
@@ -55,4 +62,9 @@ allow_hosts:
required: false
default: '`["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]`'
type: list
+veto_files:
+ description: List of files that are neither visible nor accessible. Useful to stop clients from littering the share with temporary hidden files (e.g. macOS .DS_Store, Windows Thumbs.db)
+ required: false
+ default: '`["._*", ".DS_Store", "Thumbs.db", "icon?", ".Trashes"]`'
+ type: list
{% endconfiguration %}
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 74aa2347258..3e5aca59414 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -31,6 +31,7 @@ homeassistant:
auth_providers:
- type: homeassistant
- type: legacy_api_password
+ api_password: !secret http_password
```
## Available auth providers
diff --git a/source/_docs/autostart/macos.markdown b/source/_docs/autostart/macos.markdown
index 1c270cec1fd..8dc41a3fc8f 100644
--- a/source/_docs/autostart/macos.markdown
+++ b/source/_docs/autostart/macos.markdown
@@ -17,6 +17,8 @@ Home Assistant has been installed. Open it here: http://localhost:8123
Home Assistant will log to `~/Library/Logs/homeassistant.log`
+Configuration is kept in `~/.homeassistant`
+
To uninstall the service, run:
```bash
diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown
index ea218828c3b..435e9f38fef 100644
--- a/source/_docs/configuration/yaml.markdown
+++ b/source/_docs/configuration/yaml.markdown
@@ -6,8 +6,9 @@ redirect_from: /getting-started/yaml/
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations.
-For each integration that you want to use in Home Assistant, you add code in your `configuration.yaml` file to specify its settings.
-The following example entry specifies that you want to use the [notify component](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet).
+For integrations that you want to use in Home Assistant, you add code in your `configuration.yaml` file to specify its settings. This especially applies to integrations that are not yet available to configure through the UI.
+
+The following example entry assumes that you would like to set up the [notify component](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet).
```yaml
@@ -30,14 +31,14 @@ You can use the online service [YAMLLint](http://www.yamllint.com/) to check if
-Please pay attention on not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this problem of security.
+Please pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
-Text following a `#` are comments and are ignored by the system.
+Strings of text following a `#` are comments and are ignored by the system.
-The next example shows an [input_select](/integrations/input_select) integration that uses a block collection for the options values.
-The other properties (like name) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here threat is the name of the input_select and the values for it are everything nested below it.
+The next example shows an [input_select](/integrations/input_select) integration that uses a block collection for the values of options.
+The other properties (like `name:`) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here threat is the name of the input_select and the values for it are everything nested below it.
```yaml
input_select:
@@ -62,16 +63,17 @@ sensor:
state_topic: sensor2/topic
```
-## Using Environment Variables
+## Including values
-You can include values from your system's environment variables with `!env_var`.
+### Environmental variables
+You can include values from your system's environment variables with `!env_var`. Note that this will only work in a scenario where it is possible to specify these. Hass.io users are recommended to use `!include` statements instead.
```yaml
http:
api_password: !env_var PASSWORD
```
-### Default Value
+#### Default value
If an environment variable is not set, you can fallback to a default value.
@@ -80,7 +82,7 @@ http:
api_password: !env_var PASSWORD default_password
```
-### Including Separate Files
+### Including entire files
To improve readability, you can source out certain domains from your main configuration file with the `!include`-syntax.
diff --git a/source/_docs/ecosystem/backup/backup_github.markdown b/source/_docs/ecosystem/backup/backup_github.markdown
index 967585395f0..5f3111cb540 100644
--- a/source/_docs/ecosystem/backup/backup_github.markdown
+++ b/source/_docs/ecosystem/backup/backup_github.markdown
@@ -46,7 +46,7 @@ Before creating and pushing your Home Assistant configuration to GitHub, please
-Creating a `.gitignore` file in your repository will tell Git which files NOT to push to the GitHub server. This should be used to prevent publishing sensitive files to the public. It should contain a list of filenames and pattern matches. This list should include at least your [`secrets.yaml`](/docs/configuration/secrets/) file, device configuration files, and the Home Assistant database/directory structure. The `.gitignore` file should be placed in the root of your Home Assistant configuration directory: `/.gitignore`.
diff --git a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
index 5554734520d..e352481dd5b 100644
--- a/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
+++ b/source/_docs/ecosystem/certificates/tls_self_signed_certificate.markdown
@@ -14,12 +14,6 @@ Change to your Home Assistant [configuration directory](/getting-started/configu
The certificate **must** be `.pem` extension.
-If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the certificate creation process, then:
-
-* Send **only** the `certificate.pem` file to the iOS device, using airdrop or other transfer method.
-* Open the `.pem` file on the iOS device, follow the prompts to trust and install it.
-* If you are using iOS 10.3 or newer then [additional steps](https://support.apple.com/en-us/HT204477) are needed.
-
```bash
openssl req -sha256 -newkey rsa:4096 -nodes -keyout privkey.pem -x509 -days 730 -out certificate.pem
```
@@ -46,3 +40,23 @@ sudo chmod 755 certificate.pem privkey.pem
```
A tutorial "[Working with SSL Certificates, Private Keys and CSRs](https://www.digitalocean.com/community/tutorials/openssl-essentials-working-with-ssl-certificates-private-keys-and-csrs)" could give you some insight about special cases.
+
+### iOS and macOS Specific Requirements
+
+#### iOS
+If you are going to use this certificate with the iOS app, you need to ensure you complete **all** fields during the certificate creation process, then:
+
+* Send **only** the `certificate.pem` file to the iOS device, using airdrop or other transfer method.
+* Open the `.pem` file on the iOS device, follow the prompts to trust and install it.
+* If you are using iOS 10.3 or newer then [additional steps](https://support.apple.com/en-us/HT204477) are needed.
+
+#### iOS 13 and macOS 10.15
+
+There are [new security requirements](https://support.apple.com/en-us/HT210176) for TLS server certificates in iOS 13 and macOS 10.15. To summarize:
+
+* The key size must be greater than or equal to 2048 bits.
+* A hash algorithm from the SHA-2 family is required. SHA-1 signed certificates are no longer trusted for TLS.
+* The DNS name of the server must be included in the Subject Alternative Name extension of the certificate.
+* For certificates issued after July 1, 2019:
+ * Certificates must contain an ExtendedKeyUsage (EKU) extension containing the id-kp-serverAuth OID.
+ * Certificates must have a validity period of 825 days or fewer.
diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown
index a46e0f9b2f3..0e350ef9094 100644
--- a/source/_docs/installation.markdown
+++ b/source/_docs/installation.markdown
@@ -62,8 +62,8 @@ If you use these install methods, we assume that you know how to manage and admi
**Method**|**You have**|**Recommended for**
:-----|:-----|:-----
-[venv (as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.6 or later|Those familiar with their operating system
-[venv (as your user)](/docs/installation/virtualenv/)|Any Python 3.6 or later|Developers
+[venv (as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.7 or later|Those familiar with their operating system
+[venv (as your user)](/docs/installation/virtualenv/)|Any Python 3.7 or later|Developers
## Community provided guides
diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown
index 027ae1c2fd8..780244d65ee 100644
--- a/source/_docs/installation/docker.markdown
+++ b/source/_docs/installation/docker.markdown
@@ -40,10 +40,23 @@ Alternatively, `docker-compose` works with any recent release of `docker-ce` on
### Windows
+Docker containers are completely isolated from its Windows host system. So when you delete a container, all the changes you made to that container are also removed. If you want to have configuration files or other assets remain persistent, try mounting Windows folders on containers.
+
+Before proceeding, make sure you have shared out a drive for docker to mount to. This will allow the saving of config files to persist on the local machine rather than in the docker container (which may be destroyed when upgraded).
+
+
+
+
```powershell
$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v /PATH_TO_YOUR_CONFIG:/config --net=host homeassistant/home-assistant:stable
```
+Itβs easier to understand the trick when put into practice. Here we would like to mount a current working directory (something like `C:\Users\\homeassistant` make sure this exists first) into the `homeassistant/home-assistant:stable` image at the `/config` location in the container. We would do that as so:
+
+```powershell
+$ docker run --init -d --name="home-assistant" -e "TZ=America/Los_Angeles" -v //c/Users//homeassistant:/config --net=host homeassistant/home-assistant:stable
+```
+
When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the `--net=host` switch actually applies to the hypervisor's network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing '192.168.1.10' with whatever your Windows IP is, and '10.0.50.2' with whatever your Docker container's IP is):
```bash
diff --git a/source/_docs/installation/macos.markdown b/source/_docs/installation/macos.markdown
index 58c4a215f2e..76c5bf0db4a 100644
--- a/source/_docs/installation/macos.markdown
+++ b/source/_docs/installation/macos.markdown
@@ -5,7 +5,7 @@ description: "Installation of Home Assistant on your macOS system."
[macOS](http://www.apple.com/macos/) is available by default on Apple computer. If you run a different operating system, please refer to the other section of the documentation.
-To run Home Assistant on macOS, you need to install Python first. Download Python 3.6 or later (at this time, we recommend Python 3.7) from [https://www.python.org/downloads/mac-osx/](https://www.python.org/downloads/mac-osx/) and follow the instructions of the installer.
+To run Home Assistant on macOS, you need to install Python first. Download Python 3.7 or later from [https://www.python.org/downloads/mac-osx/](https://www.python.org/downloads/mac-osx/) and follow the instructions of the installer.
Open a terminal and install Home Assistant in a virtual environment:
diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown
index 485b30c93ef..c1799b53744 100644
--- a/source/_docs/installation/raspberry-pi.markdown
+++ b/source/_docs/installation/raspberry-pi.markdown
@@ -6,7 +6,7 @@ redirect_from: /getting-started/installation-raspberry-pi/
This installation of Home Assistant requires the Raspberry Pi to run [Raspbian Lite](https://www.raspberrypi.org/downloads/raspbian/). The installation will be installed in a [Virtual Environment](/docs/installation/virtualenv) with minimal overhead. Instructions assume this is a new installation of Raspbian Lite.
-You must have Python 3.6 or later installed (including the package `python3-dev`) which is *not* the case for Raspbian Stretch.
+You must have Python 3.7 or later installed (including the package `python3-dev`) which is *not* the case for Raspbian Stretch.
Although these installation steps specifically mention a Raspberry Pi, you can go ahead and proceed on any Linux install as well. This guide is also referred to as the "Advanced Guide" for a virtual environment install.
diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown
index e420e890ff7..c3b46fdb6c2 100644
--- a/source/_docs/installation/virtualenv.markdown
+++ b/source/_docs/installation/virtualenv.markdown
@@ -4,9 +4,9 @@ description: "How to install Home Assistant in a Python virtual environment."
redirect_from: /getting-started/installation-virtualenv/
---
-If you already have Python 3.6 or later installed (we suggest 3.7 or later), you can easily give Home Assistant a spin.
+If you already have Python 3.7 or later installed, you can easily give Home Assistant a spin.
-It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.6/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
+It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.7/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
diff --git a/source/_docs/mqtt/testing.markdown b/source/_docs/mqtt/testing.markdown
index f294ba83610..7e686e550b3 100644
--- a/source/_docs/mqtt/testing.markdown
+++ b/source/_docs/mqtt/testing.markdown
@@ -16,19 +16,26 @@ If you are using the embedded MQTT broker, the command looks a little different
$ mosquitto_pub -V mqttv311 -u homeassistant -P -t "hello" -m world
```
-Another way to send MQTT messages by hand is to use the "Developer Tools" in the Frontend. Choose "Call Service" and then `mqtt.publish` under "Available Services". Enter something similar to the example below into the "Service Data" field.
-
-```json
-{
- "topic":"home-assistant/switch/1/on",
- "payload":"Switch is ON"
-}
-```
-
-The message should appear on the bus:
+Another way to send MQTT messages by hand is to use the "Developer Tools" in the Frontend. Choose the "MQTT" tab. Enter something similar to the example below into the "Topic" field.
```bash
-... [homeassistant] Bus:Handling
+ home-assistant/switch/1/power
+ ```
+ and in the Payload field
+ ```bash
+ ON
+```
+In the "Listen to a topic" field, type # to see everything, or "home-assistant/switch/#" to just follow the published topic. Press "Start Listening" and then press "Publish". The result should appear similar to the text below
+
+```bash
+Message 23 received on home-assistant/switch/1/power/stat/POWER at 12:16 PM:
+ON
+QoS: 0 - Retain: false
+Message 22 received on home-assistant/switch/1/power/stat/RESULT at 12:16 PM:
+{
+ "POWER": "ON"
+}
+QoS: 0 - Retain: false
```
For reading all messages sent on the topic `home-assistant` to a broker running on localhost:
diff --git a/source/_docs/tools/keyring.markdown b/source/_docs/tools/keyring.markdown
index 8c0e77191f4..048d60d1426 100644
--- a/source/_docs/tools/keyring.markdown
+++ b/source/_docs/tools/keyring.markdown
@@ -12,14 +12,14 @@ $ hass --script keyring --help
To store a password in keyring, replace your password or API key with `!secret` and an identifier in `configuration.yaml` file.
```yaml
-http:
- api_password: !secret http_password
+integration1:
+ api_key: !secret integration1_key
```
Create an entry in your keyring.
```bash
-$ hass --script keyring set http_password
+$ hass --script keyring set integration1_key
```
If you launch Home Assistant now, you will be prompted for the keyring password to unlock your keyring.
diff --git a/source/_integrations/abode.markdown b/source/_integrations/abode.markdown
index 8d4f2ca3483..e39cfcbc33b 100644
--- a/source/_integrations/abode.markdown
+++ b/source/_integrations/abode.markdown
@@ -90,6 +90,8 @@ Field | Description
`event_type` | The type of the event.
`event_utc` | The UTC timestamp of the event.
`user_name` | The Abode user that triggered the event, if applicable.
+`app_type` | The Abode app that triggered the event (e.g. web app, iOS app, etc.).
+`event_by` | The keypad user that triggered the event.
`date` | The date of the event in the format `MM/DD/YYYY`.
`time` | The time of the event in the format `HH:MM AM`.
diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown
index d2f856283c2..6dff3b129b8 100644
--- a/source/_integrations/androidtv.markdown
+++ b/source/_integrations/androidtv.markdown
@@ -124,12 +124,21 @@ media_player:
'com.ellation.vrv':
- 'audio_state'
'com.plexapp.android':
- - 'playing':
- 'media_session_state': 3 # this indentation is important!
- 'wake_lock_size': 3 # this indentation is important!
- 'paused':
'media_session_state': 3 # this indentation is important!
'wake_lock_size': 1 # this indentation is important!
+ - 'playing':
+ 'media_session_state': 3 # this indentation is important!
+ - 'standby'
+ 'com.amazon.avod':
+ - 'playing':
+ 'wake_lock_size': 4 # this indentation is important!
+ - 'playing':
+ 'wake_lock_size': 3 # this indentation is important!
+ - 'paused':
+ 'wake_lock_size': 2 # this indentation is important!
+ - 'paused':
+ 'wake_lock_size': 1 # this indentation is important!
- 'standby'
# Use an ADB server to setup a Fire TV device and don't get the running apps.
diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown
index c7771e14040..2fb4a435c8d 100644
--- a/source/_integrations/deconz.markdown
+++ b/source/_integrations/deconz.markdown
@@ -118,6 +118,10 @@ Where for example on a Philips Hue Dimmer, 2001 would be holding the dim up butt
For the IKEA Tradfri remote the first digit equals, 1 for the middle button, 2 for up, 3 for down, 4 for left, and 5 for right (e.g., "event: 1002" for middle button short release).
+### Finding your events
+
+Navigate to **Developer tools->Events**. In the section **Listen to events** add `deconz_event` and press **START LISTENING**. All events from deCONZ will now be shown and by pushing your remote button while monitoring the log it should be fairly easy to find the events you are looking for.
+
### Device triggers
To simplify using remote control devices in automations deCONZ integration exposes them as device triggers. This will expose all possible variations of button presses and rotations. Note that this is a manually curated list and will not initially be as complete as what deCONZ supports.
diff --git a/source/_integrations/device_tracker.markdown b/source/_integrations/device_tracker.markdown
index 74fd82bb99e..b1207f6aef4 100644
--- a/source/_integrations/device_tracker.markdown
+++ b/source/_integrations/device_tracker.markdown
@@ -58,7 +58,7 @@ device_tracker:
track_new_devices: true
```
-Multiple device trackers can be used in parallel, such as [Owntracks](/integrations/owntracks/#using-owntracks-with-other-device-trackers) and [Nmap](/integrations/nmap_tracker/). The state of the device will be determined by the source that reported last.
+Multiple device trackers can be used in parallel, such as [Owntracks](/integrations/owntracks/) and [Nmap](/integrations/nmap_tracker/). The state of the device will be determined by the source that reported last.
## `known_devices.yaml`
diff --git a/source/_integrations/doorbird.markdown b/source/_integrations/doorbird.markdown
index 30f830c00fe..5f21c87d629 100644
--- a/source/_integrations/doorbird.markdown
+++ b/source/_integrations/doorbird.markdown
@@ -19,7 +19,13 @@ There is currently support for the following device types within Home Assistant:
## Setup
-The user, which you are going to use with Home Assistant, needs the "API-Operator" permission enabled.
+It is recommended to set up a new account on your Doorbird for use with Home Assistant. This can be added via the Doorbird App by choosing Administration -> (User) Add. This user, needs specific permissions enabled, depending on what functionality you want:
+
+- Live view -> Watch Always
+- Last motion -> Motion + History
+- Last ring -> History
+
+In addition, the "API-Operator" permission needs to be enabled as well.
## Configuration
@@ -47,7 +53,7 @@ devices:
required: true
type: string
username:
- description: The username of a non-administrator user account on the device. This user needs the "API-Operator" permission enabled on Doorbird. It is recommended to set up a new account on your Doorbird for use with Home Assistant. This can be added via the Doorbird App by choosing Administration -> (User) Add. When the new account is created, you will need to enable the permission "API-Operator" in the "permissions" option.
+ description: The username of a non-administrator user account on the device ([User setup](/integrations/doorbird/#setup))
required: true
type: string
password:
diff --git a/source/_integrations/duckdns.markdown b/source/_integrations/duckdns.markdown
index cabe4677fcd..2d1344aa704 100644
--- a/source/_integrations/duckdns.markdown
+++ b/source/_integrations/duckdns.markdown
@@ -31,6 +31,15 @@ duckdns:
type: string
{% endconfiguration %}
+## Service `set_txt`
+
+Set the TXT record of your DuckDNS subdomain.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `txt` | no | Payload for the TXT record. |
+
+
If you are running the Hass.io [DuckDNS add-on](/addons/duckdns/) this integration is not required. The add-on will keep your IP updated with DuckDNS.
diff --git a/source/_integrations/elkm1.markdown b/source/_integrations/elkm1.markdown
index 15cc998b1a4..c56d4f3231a 100644
--- a/source/_integrations/elkm1.markdown
+++ b/source/_integrations/elkm1.markdown
@@ -43,7 +43,7 @@ elkm1:
{% configuration %}
host:
- description: Connection string to Elk of the form `://[:port]`. `` is `elk` for non-secure connection, `elks` for secure connection, and `serial` for serial port connection. `` is IP address or domain or for `serial` the serial port that the Elk is connected to. Optional `` is the port to connect to on the Elk, defaulting to 2101 for `elk` and 2601 for `elks`. For `serial` method, _address_ is the path to the tty _/dev/ttyS1_ for example and `[:baud]` is the baud rate to connect with. You may have multiple host sections for connecting multiple controllers.
+ description: Connection string to Elk of the form `://[:port]`. `` is `elk` for non-secure connection, `elks` for secure connection, and `serial` for serial port connection. `` is IP address or domain or for `serial` the serial port that the Elk is connected to. Optional `` is the port to connect to on the Elk, defaulting to 2101 for `elk` and 2601 for `elks`. For `serial` method, _address_ is the path to the tty _/dev/ttyS1_ for example and `[:baud]` is the baud rate to connect with (Elk systems default to 115200 baud, but this can be changed during Elk system configuration). You may have multiple host sections for connecting multiple controllers.
required: true
type: string
username:
@@ -270,18 +270,29 @@ elkm1:
exclude: [b12-d5]
```
-Example for a serial port instance on /dev/ttyS1 at 9600 baud:
+Example for a serial port instance on /dev/ttyUSB0 at 115200 baud:
```yaml
elkm1:
- host: serial://dev/ttyS1:9600
- username: USERNAME
- password: PASSWORD
- area:
- exclude: [5-8]
- zone:
- exclude: [11-16, 19-192, 199-208]
- plc:
- include: [a1-d16, 192]
- exclude: [b12-d5]
+ - host: serial:///dev/ttyUSB0:115200
+ # Elk doesn't know which areas/zones/etc are unused, so it can generate
+ # many unwanted Home Assistant Entities. Be liberal in excluding them:
+ area:
+ exclude: [2-8]
+ zone:
+ exclude: [17-192, 195-208]
+ plc:
+ enabled: false
+ task:
+ enabled: false
+ counter:
+ exclude: [1-64]
+ keypad:
+ exclude: [3-16]
+ setting:
+ exclude: [1-20]
+ output:
+ enabled: false
+ thermostat:
+ enabled: false
```
diff --git a/source/_integrations/facebox.markdown b/source/_integrations/facebox.markdown
index f8d96596bf5..4674ac2fa37 100644
--- a/source/_integrations/facebox.markdown
+++ b/source/_integrations/facebox.markdown
@@ -18,9 +18,30 @@ MB_KEY="INSERT-YOUR-KEY-HERE"
sudo docker run --name=facebox --restart=always -p 8080:8080 -e "MB_KEY=$MB_KEY" machinebox/facebox
```
+
+or using `docker-compose`:
+
+```yaml
+version: '3'
+services:
+ facebox:
+ image: machinebox/facebox
+ container_name: facebox
+ restart: unless-stopped
+ ports:
+ - 8080:8080
+ environment:
+ - MB_KEY=${MB_KEY}
+ - MB_FACEBOX_DISABLE_RECOGNITION=false
+```
+
You can run Facebox with a username and password by adding `-e "MB_BASICAUTH_USER=my_username" -e "MB_BASICAUTH_PASS=my_password"` but bear in mind that the integration does not encrypt these credentials and this approach does not guarantee security on an unsecured network.
-If you only require face detection (number of faces) you can disable face recognition by adding `-e "MB_FACEBOX_DISABLE_RECOGNITION=true"` to the `docker run` command.
+After you created an account at [Machinebox](https://machinebox.io/account), you can grab your `MB_KEY` at [your Account page](https://developer.veritone.com/machinebox/overview).
+
+If you only require face detection (number of faces) you can disable face recognition by adding `-e "MB_FACEBOX_DISABLE_RECOGNITION=true"` in the `docker run` command.
+
+If your host machine does not support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) and you experience issues running the `machinebox/facebox` image there is an alternative image without AVX support available at `machinebox/facebox_noavx`(*HINT*: This image is currently not supported by machinebox and should only be used if necessary)
## Configuration
diff --git a/source/_integrations/freebox.markdown b/source/_integrations/freebox.markdown
index b097eabb356..163d8dc2c5d 100644
--- a/source/_integrations/freebox.markdown
+++ b/source/_integrations/freebox.markdown
@@ -42,7 +42,7 @@ port:
type: string
{% endconfiguration %}
-You can find out your Freebox host and port by opening the address mafreebox.freebox.fr/api_version in your browser. The
+You can find out your Freebox host and port by opening the address in your browser. The
returned json should contain an api_domain (`host`) and a https_port (`port`).
Please consult the [api documentation](https://dev.freebox.fr/sdk/os/) for more information.
diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown
index 669600b83d1..a96ea5a33f6 100644
--- a/source/_integrations/google_assistant.markdown
+++ b/source/_integrations/google_assistant.markdown
@@ -22,7 +22,7 @@ The Google Assistant integration requires a bit more setup than most due to the
-To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing.
+To use Google Assistant, your Home Assistant configuration has to be [externally accessible with a hostname and SSL certificate](/docs/configuration/remote/). If you haven't already configured that, you should do so before continuing. If you make DNS changes to accomplish this, please ensure you have allowed up to the full 48 hours for DNS changes to propogate, otherwise Google may not be able to reach your server.
@@ -65,14 +65,14 @@ If you've added Home Assistant to the home screen, you have to first remove it f
3. When the new user opens the link with their own Google account, it will enable your draft test app under their account.
3. Have the new user go to their `Google Assistant` app to add `[test] your app name` to their account.
2. If you want to support actively reporting of state to Google's server (config option `report_state`) and support `google_assistant.request_sync`, you need to generate a service account.
- 1. In the GCP Console, go to the [Create Service account key](https://console.cloud.google.com/apis/credentials/serviceaccountkey) page.
- 2. From the Service account list, select New service account.
- 3. In the Service account name field, enter a name.
- 4. In the Service account ID field, enter an ID.
- 5. From the Role list, select Service Accounts > Service Account Token Creator.
- 6. For the Key type, select the JSON option.
- 7. Click Create. A JSON file that contains your key downloads to your computer.
- 8. Use the information in this file or the file directly to add to the `service_account`key in the configuration.
+ 1. In the GCP Console, go to the [Create Service account key](https://console.cloud.google.com/apis/credentials/serviceaccountkey) page.
+ 2. From the Service account list, select New service account.
+ 3. In the Service account name field, enter a name.
+ 4. In the Service account ID field, enter an ID.
+ 5. From the Role list, select Service Accounts > Service Account Token Creator.
+ 6. For the Key type, select the JSON option.
+ 7. Click Create. A JSON file that contains your key downloads to your computer.
+ 8. Use the information in this file or the file directly to add to the `service_account` key in the configuration.
3. If you didn't specify a service account and want to use the `google_assistant.request_sync` service, to update devices without unlinking and relinking, in Home Assistant, then enable Homegraph API for your project:
1. Go to the [Google API Console](https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview).
2. Select your project and click Enable Homegraph API.
@@ -127,7 +127,7 @@ service_account:
keys:
private_key:
description: Private key in PEM format
- requried: true
+ required: true
type: string
client_email:
description: Service email address
diff --git a/source/_integrations/harmony.markdown b/source/_integrations/harmony.markdown
index c587e6cd221..3c9f71aadc8 100644
--- a/source/_integrations/harmony.markdown
+++ b/source/_integrations/harmony.markdown
@@ -218,10 +218,10 @@ sensor:
- platform: template
sensors:
family_room:
- value_template: '{{ state_attr('remote.family_room', 'current_activity') }}'
+ value_template: '{{ state_attr("remote.family_room", "current_activity") }}'
friendly_name: 'Family Room'
bedroom:
- value_template: '{{ state_attr('remote.bedroom', 'current_activity') }}'
+ value_template: '{{ state_attr("remote.bedroom", "current_activity") }}'
friendly_name: 'bedroom'
```
{% endraw %}
diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown
index 888745f30ab..20acf947f03 100644
--- a/source/_integrations/homekit.markdown
+++ b/source/_integrations/homekit.markdown
@@ -163,7 +163,7 @@ homekit:
After Home Assistant has started, the entities specified by the filter are exposed to HomeKit if they are [supported](#supported-components). To add them:
-1. Open the Home Assistant frontend. A new card will display the `pin code`. Note: If pin code is not displayed, check "Notifications" (the bell icon) in the upper-right of the Home Assistant UI.
+1. Open the Home Assistant frontend. A new card will display the `pin code`. Note: If pin code is not displayed, check "Notifications" (the bell icon) in the lower-left of the Home Assistant UI.
2. Open the `Home` app.
3. Click `Add Accessory`, then select `Don't Have a Code or Can't Scan?` and choose the `Home Assistant Bridge`.
4. Confirm that you are adding an `Uncertified Accessory` by clicking on `Add Anyway`.
diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown
index f11252f64db..385d6a49b69 100644
--- a/source/_integrations/homematicip_cloud.markdown
+++ b/source/_integrations/homematicip_cloud.markdown
@@ -36,6 +36,7 @@ Fill the form:
* Your **access point ID** (SGTIN)
* Optional a **name** to identify your access point, this will be used to prefix your device names.
+* The **PIN**, mandatory if one is used in the native HomematicIP App.
The authentification token will be generated and stored internally.
diff --git a/source/_integrations/lg_soundbar.markdown b/source/_integrations/lg_soundbar.markdown
index fb780a26e16..53d251a50ae 100644
--- a/source/_integrations/lg_soundbar.markdown
+++ b/source/_integrations/lg_soundbar.markdown
@@ -12,7 +12,7 @@ The `lg_soundbar` platform allows you to control [LG Soundbars](https://www.lg.c
Supported devices:
-- The SK range
+- Devices in the SK range with Ethernet and/or Wi-Fi
Compatible devices will be automatically added if the [`discovery`](/integrations/discovery/) integration is enabled.
diff --git a/source/_integrations/lutron.markdown b/source/_integrations/lutron.markdown
index 7fff4ee7543..e1c8c7b65b8 100644
--- a/source/_integrations/lutron.markdown
+++ b/source/_integrations/lutron.markdown
@@ -73,3 +73,19 @@ After setup, scenes will appear in Home Assistant using the area, keypad and but
## Occupancy Sensors
Any configured Powr Savr occuancy sensors will be added as occupancy binary sensors. Lutron reports occupancy for an area, rather than reporting individual sensors. Sensitivity and timeouts are controlled on the sensors themselves, not in software.
+
+## Example Automations
+
+``` yaml
+- alias: "keypad button pressed notification"
+ trigger:
+ - platform: event
+ event_type: lutron_event
+ event_data:
+ id: office_pico_on
+ action: single
+ action:
+ - service: notify.telegram
+ data:
+ message: "pico just turned on!"
+```
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 9027a1fdfa9..33617d0fc2d 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -141,7 +141,7 @@ modbus:
| Attribute | Description |
| --------- | ----------- |
-| name | Hub name (defaults to 'default' when omitted) |
+| hub | Hub name (defaults to 'default' when omitted) |
| unit | Slave address (set to 255 you talk to Modbus via TCP) |
| address | Address of the Register (e.g., 138) |
| value | A single value or an array of 16-bit values. Single value will call modbus function code 6. Array will call modbus function code 16. Array might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]` |
diff --git a/source/_integrations/proximity.markdown b/source/_integrations/proximity.markdown
index 4e5d7900faa..41ab3fe76e9 100644
--- a/source/_integrations/proximity.markdown
+++ b/source/_integrations/proximity.markdown
@@ -33,6 +33,7 @@ The Proximity entity which is created has the following values:
- 'm'
- 'mi'
- 'ft'
+- `nearest`: The device which is nearest to the zone
To enable this integration in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_integrations/ps4.markdown b/source/_integrations/ps4.markdown
index d0f2ca1cd86..2e11d10cd3a 100644
--- a/source/_integrations/ps4.markdown
+++ b/source/_integrations/ps4.markdown
@@ -34,23 +34,26 @@ The `ps4` integration allows you to control a
## Granting Port Access
-The PlayStation 4 integration requires the use of privileged ports to work correctly, specifically UDP port 987 and TCP port 997. Depending on your OS of your Home Assistant instance you may need to allow usage of privileged ports manually.
+The PlayStation 4 integration requires the use of privileged ports to work correctly, specifically UDP port 987 and TCP port 997. Depending on your OS of your Home Assistant instance, you may need to allow usage of privileged ports manually.
Do not run your Home Assistant instance itself as root or with root/sudo privileges to accomplish this. This would create a security risk for your host system.
-There are varying methods to perform this, dependent on your OS that is running Home Assistant. Specifically, your *Python Interpreter* which runs your Home Assistant instance needs access to the mentioned ports.
+There are varying methods to perform this, dependent on your OS that is running Home Assistant. Specifically, your *Python Interpreter*, which runs your Home Assistant instance, needs access to the mentioned ports.
- If your Home Assistant device is running Hass.io on HassOS, it does not require additional configuration.
+
+If your Home Assistant device is running **Hass.io** on **HassOS**, it does not require additional configuration.
+
### Debian-based
+
Home Assistant installed on a Debian-type OS may require configuration. This section is applicable but not limited to the following operating systems:
- Debian
-- Rassbian
+- Raspbian
- Armbian
- Ubuntu
@@ -63,13 +66,14 @@ sudo setcap 'cap_net_bind_service=+ep'
Replace `` with your **system path** to Python that is running Home Assistant and/or your virtual environment if used. The path **should not** be a **symlink** or be **inside of a virtual environment**.
Example:
+
```bash
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.5
```
To find your system Python path:
-- Add the [System Health](/integrations/system_health/) integration to your `configuration.yaml`. In a web browser access your frontend and navigate to the about/logs page "http:///developer-tools/info). In the System Health box locate the item **python_version** and note the value that is displayed. Then in terminal run:
+- Add the [System Health](/integrations/system_health/) integration to your `configuration.yaml`. In a web browser, access your frontend and navigate to the about/logs page "http:///developer-tools/info). In the System Health box, locate the item **python_version** and note the value that is displayed. Then in a terminal run:
```bash
whereis python
@@ -110,7 +114,7 @@ When running Home Assistant using Docker, make sure that the Home Assistant cont
## Regions
-Some titles will have different SKUs in the PlayStation Store database depending on your region. You must select your specific region in the setup in order to retrieve the cover art for such titles correctly. The integration will attempt to search other databases for the correct title if it cannot be found, although it will take longer to do so and may fetch an incorrect cover.
+Some titles will have different SKUs in the PlayStation Store database, depending on your [region](https://www.playstation.com/country-selector/index.html). You must select your specific region in the setup in order to retrieve the cover art for such titles correctly. The integration will attempt to search other databases for the correct title if it cannot be found, although it will take longer to do so and may fetch an incorrect cover.
| Available Regions | Unavailable Regions |
| --------------------------------------------------------------------------- | -------------------------- |
@@ -125,11 +129,67 @@ Some titles will have different SKUs in the PlayStation Store database depending
| Thailand, Turkey, United Arab Emirates, United Kingdom, United States | |
- The regions which are unavailable have no database or have formatting in the database which can not be used by the component.
+ The regions which are unavailable have no database or have formatting in the database, which can not be used by the component.
+## Media Data
+
+The PlayStation 4 integration will fetch information about the game or app that is currently running from your region's [PlayStation Store](https://store.playstation.com) database.
+
+Occasionally, the integration may fail to get the data at all, or may get incorrect data. To correct this issue, the integration allows for manual editing via any text editor.
+
+### Formatting
+
+When the integration retrieves data from the PlayStation Store, it stores it in a JSON file named `.ps4-games.json` in the same directory as where your `configuration.yaml` file is located. The first line in the file will be `{` and the last line will be `}`. Between these lines, there will be indented entries for each game or app the integration finds. See the following example and table:
+
+```json
+{
+ "CUSA00129": {
+ "locked": true,
+ "media_content_type": "app",
+ "media_image_url": "http://localhost:8123/local/image.jpg",
+ "media_title": "Some App"
+ },
+ "CUSA00123": {
+ "locked": false,
+ "media_content_type": "game",
+ "media_image_url": "https://somerandomurl.com/image.jpg",
+ "media_title": "Some Game"
+ }
+}
+```
+
+| Field | Value | Description |
+| ----- | ----- | ----------- |
+| `locked` | boolean | Must be `true` or `false`
+| `media_content_type` | string | Must be `game` or `app`
+| `media_image_url` | string | Any valid url for an image
+| `media_title` | string | The title of the game or app
+
+The data in the example shows 2 entries.
+
+Each entry will begin with the SKU ID of the title, e.g., `CUSA00000` and will have a field named `locked` with a value of `true` or `false` associated with it. The default value will be `false` for each entry. If `locked` is `true`, the integration will not overwrite the data pertaining to that game or app.
+
+The `media_image_url` value can be any valid URL. This includes the `local directory` of your Home Assistant instance. The first entry in the example directs to a file named `image.jpg` located in the `config/www/` directory.
+
+### Editing with Text Editor
+
+ Backup a copy of your .ps4-games.json file before continuing. If there are errors in the formatting, your file may be deleted.
+
+
+To edit, simply open the file in a text editor, find the game or app you would like to edit, and edit the value(s) you wish to change and then save the file. The changes will appear the next time you play the game or app on your console.
+
## Services
+### Service `select_source`
+
+Opens new application/game and closes currently running application/game. The game/app must be in the entity's source list. Games will be added automatically when you open them normally.
+
+| Service data attribute | Optional | Example | Description |
+| ---------------------- | -------- | ---------------------------- | ------------------------------------- |
+| `entity_id` | No | `media_player.playstation_4` | The entity id for your PlayStation 4. |
+| `source` | No | `Some Game` or `CUSA00123` | The game/app you want to open. You can use the title or SKU ID. Using the SKU ID will be the most reliable.|
+
### Service `send_command`
Emulate button press on PlayStation 4. This emulates the commands available for the PS4 Second Screen App. This is not to be confused with DualShock 4 controller buttons.
@@ -157,7 +217,7 @@ Full list of supported commands.
## Troubleshooting
### Cover Art Issues
-If you are running a game/title on your PS4 that does not display a cover or displays the incorrect cover, post an issue [here](https://github.com/ktnrg45/pyps4-homeassistant/issues).
+If you are running a game/title on your PS4 that does not display a cover or displays the incorrect cover, post an issue [here](https://github.com/ktnrg45/pyps4-2ndscreen/issues).
Be sure to include the following information:
- Your Country
diff --git a/source/_integrations/python_script.markdown b/source/_integrations/python_script.markdown
index 477c6bb1e67..e3c14101919 100644
--- a/source/_integrations/python_script.markdown
+++ b/source/_integrations/python_script.markdown
@@ -17,7 +17,7 @@ This integration allows you to write Python scripts that are exposed as services
| `logger` | A logger to allow you to log messages: `logger.info()`, `logger.warning()`, `logger.error()`. [API reference][logger-api]
[hass-api]: /developers/development_hass_object/
-[logger-api]: https://docs.python.org/3.4/library/logging.html#logger-objects
+[logger-api]: https://docs.python.org/3.7/library/logging.html#logger-objects
diff --git a/source/_integrations/remote.xiaomi_miio.markdown b/source/_integrations/remote.xiaomi_miio.markdown
index 4479502a8b9..eb40c0a70b6 100644
--- a/source/_integrations/remote.xiaomi_miio.markdown
+++ b/source/_integrations/remote.xiaomi_miio.markdown
@@ -10,11 +10,13 @@ ha_iot_class: Local Polling
The `xiaomi miio` remote platform allows you to send IR commands from your Xiaomi IR Remote (ChuangmiIr).
+## Setup
+
Please follow the instructions on [Retrieving the Access Token](/integrations/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
## Configuring the Platform
-To add a Xiaomi IR Remote to your installation, add the following to your configuration.yaml file:
+To add a Xiaomi IR Remote to your installation, add the following to your `configuration.yaml` file:
```yaml
remote:
- platform: xiaomi_miio
@@ -112,18 +114,41 @@ The Xiaomi IR Remote Platform currently supports two different formats for IR co
A raw command is a command learned from [`remote.xiaomi_miio_learn_command`](/integrations/remote.xiaomi_miio/#remotexiaomi_miio_learn_command).
A raw command is defined as in the following example:
-`raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=`
+
+```bash
+raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=
+```
+
with an optional last parameter of frequency:
-`raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=:38400`
+
+```bash
+raw:Z6UFANEAAAAjAQAAAwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAE=:38400
+```
### Pronto Hex Code
A pronto hex code is a hex code often supplied by the device manufacturer.
A pronto hex code is defined as in the following example:
-`pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E`
+
+```bash
+pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E
+```
+
with an optional last parameter of repeats (required by some devices):
-`pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E:2`
+
+```bash
+pronto:0000 006C 0022 0002 015B 00AD 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0623 015B 0057 0016 0E6E:2
+```
+
+Note there are at least 4 versions of the Xiaomi IR Remote (ChuangmiIr) which can be recognized by their default hostname:
+
+* `chuangmi.ir.v2`
+* `chuangmi.remote.h102a03`
+* `chuangmi.remote.v2`
+* `chuangmi.remote.h102c01`
+
+For now, pronto hex codes only work on the first version (`chuangmi.ir.v2`).
## Platform Services
diff --git a/source/_integrations/roku.markdown b/source/_integrations/roku.markdown
index 578e5054dda..e52267ae9d5 100644
--- a/source/_integrations/roku.markdown
+++ b/source/_integrations/roku.markdown
@@ -95,6 +95,9 @@ The api calls are like this:
```txt
GET http:// ROKU_IP:8060/query/apps
POST http://ROKU_IP:8060/launch/APP_ID
+
+YouTube example:
+POST http://YOUR_ROKU_IP:8060/launch/837?contentID=YOUR_YOUTUBE_VIDEOS_CONTENT_ID&MediaType=live
```
More details can be found on the [Roku dev pages](https://developer.roku.com/docs/developer-program/discovery/external-control-api.md)
diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown
index feeb97158ae..8463c734690 100644
--- a/source/_integrations/scene.markdown
+++ b/source/_integrations/scene.markdown
@@ -24,10 +24,12 @@ scene:
entities:
light.tv_back_light:
state: on
- brightness: 100
+ brightness: 125
light.ceiling: off
media_player.sony_bravia_tv:
+ state: on
source: HDMI 1
+ state: on
```
{% configuration %}
@@ -36,15 +38,15 @@ name:
required: true
type: string
entities:
- description: Entities to control.
+ 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.
-- Define a complex state with its attributes.
+- 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).
@@ -82,6 +84,7 @@ automation:
brightness: 100
light.ceiling: off
media_player.sony_bravia_tv:
+ state: on
source: HDMI 1
```
diff --git a/source/_integrations/season.markdown b/source/_integrations/season.markdown
index 3ae0d44bcc9..428f89b560e 100644
--- a/source/_integrations/season.markdown
+++ b/source/_integrations/season.markdown
@@ -29,7 +29,6 @@ To enable the sensor, add the following lines to your `configuration.yaml` file:
# Example configuration.yaml entry
sensor:
- platform: season
- type: astronomical
```
{% configuration %}
diff --git a/source/_integrations/shell_command.markdown b/source/_integrations/shell_command.markdown
index c1072695ae7..6eab549b7b2 100644
--- a/source/_integrations/shell_command.markdown
+++ b/source/_integrations/shell_command.markdown
@@ -55,6 +55,6 @@ input_number:
{% raw %}
shell_command:
- set_ac_to_slider: 'irsend SEND_ONCE DELONGHI AC_{{ states('input_number.ac_temperature') }}_AUTO'
+ set_ac_to_slider: 'irsend SEND_ONCE DELONGHI AC_{{ states("input_number.ac_temperature") }}_AUTO'
{% endraw %}
```
diff --git a/source/_integrations/slack.markdown b/source/_integrations/slack.markdown
index 7f68b1cc36e..819cd9367dd 100644
--- a/source/_integrations/slack.markdown
+++ b/source/_integrations/slack.markdown
@@ -12,7 +12,13 @@ The `slack` platform allows you to deliver notifications from Home Assistant to
## Setup
-If you are planning to use Slack as yourself then you'll need to create a [new app](https://api.slack.com/apps) under your Slack.com account. After creating the app, access the OAuth & Permissions link under the Features heading in the sidebar. Your OAuth Access Token should be located there. This is the key that you'll use in your `configuration.yaml` file.
+### Bot posting as you
+
+1. Create a [new app](https://api.slack.com/apps) under your Slack.com account
+2. Click the `OAuth & Permissions` link in the sidebar, under the Features heading
+2. In the Scopes section, add the `chat:write:user` scope, `Send messages as user`
+3. Scroll up to `OAuth Tokens & Redirect URLs` and click `Install App`
+4. Copy your `OAuth Access Token` and put that key into your `configuration.yaml` file -- see below
@@ -20,8 +26,7 @@ There is an app credential Verification Token on the Basic Settings of your app.
-You will also need to ensure that you have added the appropriate scope when configuring your app. In this case, in the Scopes section, add the `Send messages as user` scope, e.g., (chat:write:user).
-
+### Bot posting as its own user
It is also possible to use Slack bots as users. Just create a new bot at https://[YOUR_TEAM].slack.com/apps/build/custom-integration and use the provided token for that. You can add an icon from the frontend for Home Assistant and give the bot a meaningful name.
Don't forget to invite the bot to the room where you want to get the notifications.
diff --git a/source/_integrations/snmp.markdown b/source/_integrations/snmp.markdown
index 1eb624e3e64..649c77bfbff 100644
--- a/source/_integrations/snmp.markdown
+++ b/source/_integrations/snmp.markdown
@@ -82,7 +82,7 @@ baseoid:
required: true
type: string
auth_key:
- description: A"uthentication key for SNMPv3. Variable `priv_key` must also be set."
+ description: "Authentication key for SNMPv3. Variable `priv_key` must also be set."
required: inclusive
type: string
priv_key:
diff --git a/source/_integrations/somfy.markdown b/source/_integrations/somfy.markdown
index 5843a9e06cc..e90bdc2c553 100644
--- a/source/_integrations/somfy.markdown
+++ b/source/_integrations/somfy.markdown
@@ -19,7 +19,7 @@ To connect Somfy, you need to set up a developer account.
3. Open the *My Apps* menu.
4. Add a new App:
- App Name: Home Assistant
- - Callback URL: `/auth/somfy/callback`
+ - Callback URL: `/auth/external/callback`
- Description: Home Assistant instance
- Product: Somfy Open API
5. Once Home Assistant restarted, go to Configuration>Integrations.
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown
index 90e61862333..919555b5d1f 100644
--- a/source/_integrations/spotify.markdown
+++ b/source/_integrations/spotify.markdown
@@ -33,12 +33,9 @@ To create the required Spotify application:
If you are using SSL:
`https://:/api/spotify`
- The URL is whatever you use to access Home Assistant from outside your network
- (including port if applicable).
-
- Click **Save** after adding the URI.
-You will likely also need to set the `base_url` attribute of the [HTTP Component](/integrations/http/). This should be set using the same base URL as the redirect URI, e.g., if you used a domain name (not local IP) in the redirect, then use the same domain name in your `base_url`.
+If you are using an externally accessible address you will likely also need to set the `base_url` attribute of the [HTTP Component](/integrations/http/). This should be set using the same base URL as the redirect URI, e.g., if you used a domain name (not local IP) in the redirect, then use the same domain name in your `base_url`.
## Configuration
diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown
index 6714f6e0fae..a299ddfeec1 100644
--- a/source/_integrations/xiaomi_aqara.markdown
+++ b/source/_integrations/xiaomi_aqara.markdown
@@ -273,7 +273,7 @@ That means that Home Assistant is not getting any response from your Xiaomi gate
- You should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances, there is an issue with keys being generated using the iOS application.
- You need to make sure to have multicast support on your network. If you are running Home Assistant in a virtual machine (like Proxmox), try `echo 0 >/sys/class/net/vmbr0/bridge/multicast_snooping` on the host and restart the service or reboot the host.
- If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g., `$ sudo apt-get install python3-dev libssl-dev libffi-dev`).
-- If your gateway's MAC address starts with `04:CF:8C`, there is a good chance that the required port `9898` is closed on your gateway (you can check it with the Nmap utility, using the command `sudo nmap - sU {gateway_ip} -p 9898`). To fix that issue, you need to do these steps:
+- If your gateway's MAC address starts with `04:CF:8C`, there is a good chance that the required port `9898` is closed on your gateway (you can check it with the Nmap utility, using the command `sudo nmap -sU {gateway_ip} -p 9898`). To fix that issue, you need to do these steps:
- Find a specific screw bit (like a fork) to open the gateway case.
- Find a USB-UART cable/module and connect it to your computer.
- Solder 3 wires - RX, TX and GND like [here](https://cs5-3.4pda.to/14176168/IMG_20181020_201150.jpg).
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index 9f352854c81..23c614811b4 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -311,5 +311,5 @@ entities:
```
-Please be aware that the entity types divider and weblink aren't yet support by the UI editor and a warning about `Expected a value of type...` is shown. You can ignore the warning and save your edits to verify.
+Please be aware that the entity types divider and weblink aren't yet supported by the UI editor and a warning about `Expected a value of type...` is shown. You can ignore the warning and save your edits to verify.
diff --git a/source/_posts/2019-10-20-release-101.markdown b/source/_posts/2019-10-30-release-101.markdown
similarity index 96%
rename from source/_posts/2019-10-20-release-101.markdown
rename to source/_posts/2019-10-30-release-101.markdown
index e2faf8480aa..d6b40c0afa8 100644
--- a/source/_posts/2019-10-20-release-101.markdown
+++ b/source/_posts/2019-10-30-release-101.markdown
@@ -103,6 +103,10 @@ Screenshot of the device picker.
[mdonoughe](https://github.com/mdonoughe) added support the activate scene action in the automation editor.
+## Lovelace
+
+Check the [Lovelace changelog](https://www.home-assistant.io/lovelace/changelog/) for all changes.
+
## In other news
Proud to announce that the Visual Studio Code add-on for @home_assistant reached v1.0.0! π
This version ships the second generation code-server, VSCode 1.39, HA extension 1.3, updates MDI ext and adds a rainbow indent function β€οΈ
@@ -135,6 +136,78 @@ Screenshot of the device picker.
- Add sensor platform to Airly integration ([@bieniu] - [#27717]) ([airly docs]) (new-platform)
- Move imports in mqtt component ([@exxamalte] - [#27835]) ([mqtt docs]) (new-platform)
+## Release 0.101.1 - October 31
+
+- Bump songpal to fix a regression ([@rytilahti] - [#28115]) ([songpal docs])
+- Bump pymyq to 2.0.1 ([@bachya] - [#28348]) ([myq docs])
+- Bump pysaj to v0.0.13 (fix for sensor date) ([@fredericvl] - [#28351]) ([saj docs])
+- Bump env_canada to fixed 0.0.29 version ([@shmick] - [#28360]) ([environment_canada docs])
+- Fix Airly asyncio timeout error ([@bieniu] - [#28387]) ([airly docs])
+- Fix hdate spamming homeassistant log ([@tsvi] - [#28392]) ([jewish_calendar docs])
+- Fix check config ([@balloob] - [#28393])
+- Check for import errors before validating config ([@balloob] - [#28395])
+
+[#28115]: https://github.com/home-assistant/home-assistant/pull/28115
+[#28348]: https://github.com/home-assistant/home-assistant/pull/28348
+[#28351]: https://github.com/home-assistant/home-assistant/pull/28351
+[#28360]: https://github.com/home-assistant/home-assistant/pull/28360
+[#28387]: https://github.com/home-assistant/home-assistant/pull/28387
+[#28392]: https://github.com/home-assistant/home-assistant/pull/28392
+[#28393]: https://github.com/home-assistant/home-assistant/pull/28393
+[#28395]: https://github.com/home-assistant/home-assistant/pull/28395
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bieniu]: https://github.com/bieniu
+[@fredericvl]: https://github.com/fredericvl
+[@rytilahti]: https://github.com/rytilahti
+[@shmick]: https://github.com/shmick
+[@tsvi]: https://github.com/tsvi
+[airly docs]: /integrations/airly/
+[environment_canada docs]: /integrations/environment_canada/
+[jewish_calendar docs]: /integrations/jewish_calendar/
+[myq docs]: /integrations/myq/
+[saj docs]: /integrations/saj/
+[songpal docs]: /integrations/songpal/
+
+## Release 0.101.2 - November 1
+
+- Prevent TypeError when KNX RGB(W) light value contains None ([@phispi] - [#28358]) ([knx docs])
+- Change Abode cache file path, add cache path to config flow ([@MisterWil] - [#28389]) ([abode docs])
+- SNMP switch fix integer support ([@rfpronk] - [#28425]) ([snmp docs])
+- Use server-specific unique_ids for Plex media_players ([@jjlawren] - [#28447]) ([plex docs])
+- Also install after_deps ([@balloob] - [#28453])
+
+[#28358]: https://github.com/home-assistant/home-assistant/pull/28358
+[#28389]: https://github.com/home-assistant/home-assistant/pull/28389
+[#28425]: https://github.com/home-assistant/home-assistant/pull/28425
+[#28447]: https://github.com/home-assistant/home-assistant/pull/28447
+[#28453]: https://github.com/home-assistant/home-assistant/pull/28453
+[@MisterWil]: https://github.com/MisterWil
+[@balloob]: https://github.com/balloob
+[@jjlawren]: https://github.com/jjlawren
+[@phispi]: https://github.com/phispi
+[@rfpronk]: https://github.com/rfpronk
+[abode docs]: /integrations/abode/
+[knx docs]: /integrations/knx/
+[plex docs]: /integrations/plex/
+[snmp docs]: /integrations/snmp/
+
+## Release 0.101.3 - November 5
+
+- Fix missing import ([@timmccor] - [#28460]) ([sonos docs])
+- Fix Airly if more than one config entry ([@bieniu] - [#28498]) ([airly docs])
+- Add deprecated attributes to light.reproduce_state ([@Santobert] - [#28557]) ([light docs])
+
+[#28460]: https://github.com/home-assistant/home-assistant/pull/28460
+[#28498]: https://github.com/home-assistant/home-assistant/pull/28498
+[#28557]: https://github.com/home-assistant/home-assistant/pull/28557
+[@Santobert]: https://github.com/Santobert
+[@bieniu]: https://github.com/bieniu
+[@timmccor]: https://github.com/timmccor
+[airly docs]: /integrations/airly/
+[light docs]: /integrations/light/
+[sonos docs]: /integrations/sonos/
+
## If you need help...
...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).
@@ -148,11 +221,12 @@ Experiencing issues introduced by this release? Please report them in our [issue
## Breaking Changes
- __Removed__ - The following integrations have been removed:
- - __Direct authentication via trusted networks or API password__ - It is no longer possible to make authenticated requests using trusted networks or by appending ?api_password=X to the URL. You will now first need to get an authentication token and use that token to make requests. - ([@balloob] - [#27656]) ([auth docs]) ([http docs]) ([websocket_api docs])
+ - __Direct authentication via trusted networks or API password__ - It is no longer possible to make authenticated requests using trusted networks or by appending ?api_password=X to the URL. You will now first need to get an authentication token and use that token to make requests. Auth providers for trusted networks and API passwords are still available. - ([@balloob] - [#27656]) ([auth docs]) ([http docs]) ([websocket_api docs])
- __Stride__ - The Stride notification integration was discontinued in February 2019 due to a take over by Slack. - ([@hmmbob] - [#27934]) ([stride docs])
- __Hipchat__ - The Hipchat notification integration was discontinued in February 2019, also due to a take over by Slack. - ([@fabaff] - [#27399]) ([hipchat docs])
- __Deprecated__ - Python 3.6 support is deprecated (to be removed completely by December 2019), as version 3.8.0 is now out - ([@scop] - [#27680])
+- __Scene__ - Scenes have to be configured more strictly from now on. Each entity must be configured with a valid state. Furthermore, the attributes that can be used must be `device state attributes`. This means that they should be listed under _developer-tools -> states_. - ([scene docs])
- __Ecobee__ - Adds `turn_on` method to ecobee climate platform. Previously, calling `climate.turn_on` would cause the ecobee thermostat to turn on in heat mode, regardless of the mode when the thermostat was turned off. Now, the thermostat will turn on to the last "active" HVAC mode (i.e., "heat", "cool", or "auto") (or, if the thermostat was "off" when Home Assistant started, to "auto"). - ([@marthoc] - [#27103]) ([ecobee docs])
- __Genius Hub__ - This addresses an issue that requires the `unique_id` of **climate** and **water_heater** entities to be changed. After upgrading HA with this change, users will have stale entities in the entity registry that they may wish to clear out. - ([@zxdavb] - [#27916]) ([geniushub docs])
- __Abode__ - The configuration variables were removed: `name`, `exclude` and `lights`, which were all previously optional. Existing users of the abode integration that use these configuration variables will have to remove them from the `configuration.yaml` file. Entities that users wish to disable can be done from the Entity Registry in the Configuration UI. - ([@shred86] - [#26699]) ([abode docs])
diff --git a/source/android/index.markdown b/source/android/index.markdown
new file mode 100644
index 00000000000..cce4541db9a
--- /dev/null
+++ b/source/android/index.markdown
@@ -0,0 +1,10 @@
+---
+title: "Home Assistant Android"
+description: "Landing page for Home Assistant Android app."
+---
+
+
+
+Nothing to see yet :)
+
+
diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown
index 2884514121c..348de945934 100644
--- a/source/getting-started/automation.markdown
+++ b/source/getting-started/automation.markdown
@@ -8,7 +8,7 @@ redirect_from:
When your devices are set up, it's time to put the cherry on the pie: automation. In this guide we're going to create a simple automation rule to **turn on the lights when the sun sets**.
-In Home Assistant, open the menu by clicking on the top-left icon and click on configuration. Now click on automations. This is the automation screen from which you can manage all the automations in Home Assistant.
+In Home Assistant, open the menu by clicking on the top-left icon and click on configuration. Now click on automation. This is the automation screen from which you can manage all the automations in Home Assistant.
Click on the orange button at the bottom right to create a new automation. You are presented with a blank automation screen.
diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown
index 37ee3eec285..8e9e072f396 100644
--- a/source/getting-started/index.markdown
+++ b/source/getting-started/index.markdown
@@ -38,19 +38,19 @@ We will need a few things to get started with installing Home Assistant. The Ras
- [Raspberry Pi 3 Model B+](https://amzn.to/2IAyNl0) + [Power Supply](https://www.raspberrypi.org/help/faqs/#powerReqs) (at least 2.5A)
- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/overview/application/index.html) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended.
- SD Card reader. This is already part of most laptops, but you can purchase a [standalone USB adapter](https://amzn.to/2WWxntY) if you don't have one. The brand doesn't matter, just pick the cheapest.
-- Ethernet cable. Hass.io can work with Wi-Fi, but an Ethernet connection would be more reliable.
+- Ethernet cable. Home Assistant can work with Wi-Fi, but an Ethernet connection would be more reliable.
### Software requirements
-- Download the Hass.io image for [your device](/hassio/installation/)
+- Download the HassOS image for [your device](/hassio/installation/)
- Download [balenaEtcher] to write the image to an SD card
[balenaEtcher]: https://www.balena.io/etcher
-### Installing Hass.io
+### Installation
1. Put the SD card in your card reader.
-2. Open balenaEtcher, select the Hass.io image and flash it to the SD card.
+2. Open balenaEtcher, select the HassOS image and flash it to the SD card.
3. Unmount the SD card and remove it from your card reader.
4. Follow this step if you want to configure Wi-Fi or a static IP address (this step requires a USB stick). Otherwise, move to step 5.
- Format a USB stick to FAT32 with the volume name `CONFIG`.
diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown
index 6de69a83fd1..e068a530c59 100644
--- a/source/hassio/installation.markdown
+++ b/source/hassio/installation.markdown
@@ -101,19 +101,19 @@ The packages you need to have available on your system that will run Hass.io may
### Debian/Ubuntu
- - apparmor-utils
- - apt-transport-https
- - avahi-daemon
- - ca-certificates
- - curl
- - dbus
- - jq
- - socat
- - software-properties-common
+ - `apparmor-utils`
+ - `apt-transport-https`
+ - `avahi-daemon`
+ - `ca-certificates`
+ - `curl`
+ - `dbus`
+ - `jq`
+ - `socat`
+ - `software-properties-common`
Optional:
- - network-manager
+ - `network-manager`
@@ -123,14 +123,14 @@ Optional:
### Arch Linux
- - apparmor
- - avahi
- - ca-certificates
- - curl
- - dbus
- - docker
- - jq
- - socat
+ - `apparmor`
+ - `avahi`
+ - `ca-certificates`
+ - `curl`
+ - `dbus`
+ - `docker`
+ - `jq`
+ - `socat`
You also need to have Docker-CE installed. There are well-documented procedures for installing Docker on Ubuntu at [Docker.com](https://docs.docker.com/install/linux/docker-ce/ubuntu/), you can find installation steps for your Linux distribution in the menu on the left.
diff --git a/source/images/frontpage/hacktoberfest.png b/source/images/frontpage/hacktoberfest.png
deleted file mode 100644
index 8726d7087c5..00000000000
Binary files a/source/images/frontpage/hacktoberfest.png and /dev/null differ
diff --git a/source/images/frontpage/sotu2019.png b/source/images/frontpage/sotu2019.png
new file mode 100644
index 00000000000..a53990a5fa5
Binary files /dev/null and b/source/images/frontpage/sotu2019.png differ
diff --git a/source/index.html b/source/index.html
index 695d8984c66..4c8c60bdb78 100644
--- a/source/index.html
+++ b/source/index.html
@@ -36,13 +36,6 @@ description: Open source home automation that puts local control and privacy fir
+
+Direct YouTube URL:
+
+π Don't forget to go to the above URL to hit the "Set reminder" bell!
+Doing that, ensures you'll get a notification from YouTube, when the stream starts.
+
+The presentation is going to start on 13 November at:
+
+- 9.30 AM in PST
+- 12.30 PM in EST
+- 18:30 in CET
+- [Other time zones](https://www.timeanddate.com/worldclock/converter.html?iso=20191113T173000&p1=137&p2=179&p3=16)
+
+## Local Meetups
+
+If you would like to meet other Home Assistant users and watch the livestream together, check out the following local meetups:
+
+- [Berlin](https://www.meetup.com/Berlin-Home-Assistant/events/265634883/)
+- [Rhein-Main Area](https://www.meetup.com/de-DE/Home-Assistant-Meetup-Rhein-Main-Neckar/events/265920456/)