From 9a5780476a58d1cf55bcc473f395280bf5bfef9d Mon Sep 17 00:00:00 2001
From: John Arild Berentsen
Date: Sun, 2 Sep 2018 10:27:17 +0200
Subject: [PATCH 01/97] Clarify and make sure users add config entry.
---
source/_docs/z-wave/installation.markdown | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index 586f319a68a..b5c9796424b 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -44,6 +44,7 @@ On Raspberry Pi you will need to enable the serial interface in the `raspi-confi
# Example configuration.yaml entry
zwave:
usb_path: /dev/ttyACM0
+ device_config: !include zwave_device_config.yaml
```
{% configuration zwave %}
@@ -78,7 +79,7 @@ debug:
type: boolean
default: False
device_config / device_config_domain / device_config_glob:
- description: This attribute contains node-specific override values. (For releases prior to 0.39 this variable is called **customize**) See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
+ description: This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the bellow options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
required: false
type: string, list
keys:
From d383a4ab128ee5ec5ce74e96a469600cb110a4df Mon Sep 17 00:00:00 2001
From: John Arild Berentsen
Date: Wed, 5 Sep 2018 16:02:51 +0200
Subject: [PATCH 02/97] Update installation.markdown
Sneaky little....
---
source/_docs/z-wave/installation.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index b5c9796424b..578804d2daa 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -79,7 +79,7 @@ debug:
type: boolean
default: False
device_config / device_config_domain / device_config_glob:
- description: This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the bellow options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format.
+ description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the bellow options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format."
required: false
type: string, list
keys:
From 995aeb83731df169d71584d71b5458aa16300b8b Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Fri, 7 Sep 2018 09:07:05 +0100
Subject: [PATCH 03/97] Word fix (#6208)
The main page calls them services, here we call them features, causing confusion.
---
source/_components/vacuum.neato.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown
index 51cf2cc1d81..544d60f62c3 100644
--- a/source/_components/vacuum.neato.markdown
+++ b/source/_components/vacuum.neato.markdown
@@ -19,7 +19,7 @@ The status will contain attributes on the robots last clean session.
To add `neato` vacuum to your installation, please follow instructions in [Neato component](/components/neato/).
-Currently supported features are:
+Currently supported services are:
- `start`
- `pause`
From 5b5c16f2f4b37bd3a810621fd72af59cbde6c495 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Fri, 7 Sep 2018 09:07:25 +0100
Subject: [PATCH 04/97] Word fix (#6209)
The main page calls them services, here we call them features, causing confusion.
---
source/_components/vacuum.xiaomi_miio.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown
index 5864b32bffb..cc93a36c8ab 100644
--- a/source/_components/vacuum.xiaomi_miio.markdown
+++ b/source/_components/vacuum.xiaomi_miio.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Local Polling"
The `xiaomi miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](http://www.mi.com/roomrobot/).
-Currently supported features are:
+Currently supported services are:
- `start`
- `pause`
From 2bd35c0c12cbe6e09e73ea4975ec224aa4063931 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Fri, 7 Sep 2018 09:07:47 +0100
Subject: [PATCH 05/97] Clarity updates (#6210)
Given that turn_on and off don't work on some, would be handy to mention that ;)
---
source/_components/vacuum.markdown | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/_components/vacuum.markdown b/source/_components/vacuum.markdown
index 3df2abbca45..041edb7d661 100644
--- a/source/_components/vacuum.markdown
+++ b/source/_components/vacuum.markdown
@@ -29,7 +29,7 @@ Before calling one of these services, make sure your vacuum platform supports it
#### {% linkable_title Service `vacuum.turn_on` %}
-Start a new cleaning task.
+Start a new cleaning task. For the Xiaomi Vacuum and neato use `vacuum.start` instead.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
@@ -37,7 +37,7 @@ Start a new cleaning task.
#### {% linkable_title Service `vacuum.turn_off` %}
-Stop the current cleaning task and return to the dock.
+Stop the current cleaning task and return to the dock. For the Xiaomi Vacuum and neato use `vacuum.stop` instead.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
From 65e6d11a32610524be76428eb059749cc527a455 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Isabella=20Gross=20Alstr=C3=B6m?=
Date: Fri, 7 Sep 2018 10:08:49 +0200
Subject: [PATCH 06/97] Update deconz.markdown (#6213)
* Update deconz.markdown
Added a helper app in appdaemon for deconz events
* Update deconz.markdown
changes in variables
---
source/_components/deconz.markdown | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/source/_components/deconz.markdown b/source/_components/deconz.markdown
index 211e683fe15..500efaa947c 100644
--- a/source/_components/deconz.markdown
+++ b/source/_components/deconz.markdown
@@ -173,6 +173,36 @@ automation:
### {% linkable_title Appdaemon %}
+#### {% linkable_title Appdaemon event helper %}
+Helper app that creates a sensor `sensor.deconz_event` with a state that represents the id from the last event and an attribute to show the event data.
+
+{% raw %}
+```yaml
+deconz_helper:
+ module: deconz_helper
+ class: DeconzHelper
+```
+
+```python
+import appdaemon.plugins.hass.hassapi as hass
+import datetime
+from datetime import datetime
+
+class DeconzHelper(hass.Hass):
+ def initialize(self) -> None:
+ self.listen_event(self.event_received, "deconz_event")
+
+ def event_received(self, event_name, data, kwargs):
+ event_data = data["event"]
+ event_id = data["id"]
+ event_received = datetime.now()
+
+ self.log("Deconz event received from {}. Event was: {}".format(event_id, event_data))
+ self.set_state("sensor.deconz_event", state = event_id, attributes = {"event_data": event_data, "event_received": str(event_received)})
+```
+{% endraw %}
+
+
#### {% linkable_title Appdaemon remote template %}
{% raw %}
From 0a651bdfba4fef3029df2e4ef7947e205f20c296 Mon Sep 17 00:00:00 2001
From: John Arild Berentsen
Date: Sat, 8 Sep 2018 17:27:05 +0200
Subject: [PATCH 07/97] Update installation.markdown
---
source/_docs/z-wave/installation.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown
index 578804d2daa..3af1f5dafc9 100644
--- a/source/_docs/z-wave/installation.markdown
+++ b/source/_docs/z-wave/installation.markdown
@@ -79,7 +79,7 @@ debug:
type: boolean
default: False
device_config / device_config_domain / device_config_glob:
- description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the bellow options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format."
+ description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the following options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format."
required: false
type: string, list
keys:
From 93d9267500ba3c6f5c89fdfee60d218d8a7a584f Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 9 Sep 2018 08:40:20 +0100
Subject: [PATCH 08/97] Adding some titles and details (#6228)
Added:
* titles to make it possible to link to sections
* that you can only reload those sections if you're not using packages
* information on how to migrate your config, and that key files and folders are hidden by default
---
source/_docs/configuration.markdown | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index 150eef1b46f..c863c66382e 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -2,14 +2,14 @@
layout: page
title: "Configuring Home Assistant"
description: "Configuring Home Assistant."
-date: 2015-03-23 12:50
+date: 2018-09-18 16:15
sidebar: true
comments: false
sharing: true
footer: true
---
-When launched for the first time, Home Assistant will write a default configuration file enabling the web interface and device discovery. It can take up to a minute for your devices to be discovered and appear in the user interface.
+When launched for the first time, Home Assistant will create a default configuration file enabling the web interface and device discovery. It can take up to a minute after startup for your devices to be discovered and appear in the user interface.
The web interface can be found at `http://ip.ad.dre.ss:8123/` - for example if your Home Assistant system has the IP address `192.168.0.40` then you'll find the web interface as `http://192.168.0.40:8123/`.
@@ -26,13 +26,18 @@ If you want to use a different folder for configuration, use the config command
Inside your configuration folder is the file `configuration.yaml`. This is the main file that contains components to be loaded with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable functionality.
-
- You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting.
-
-
If you run into trouble while configuring Home Assistant, have a look at the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [configuration.yaml examples](/cookbook/#example-configurationyaml).
Test any changes to your configuration files from the command line with `hass --script check_config`. This script allows you to test changes without the need to restart Home Assistant. Remember to run this as the user you run Home Assistant as.
+## {% linkable_title Reloading changes %}
+
+You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting if you're not using [packages](/docs/configuration/packages/).
+
+If you've made any changes, remember to check your configuration before trying to reload or restart.
+
+## {% linkable_title Migrating to a new system %}
+
+If you want to migrate your configuration to a new system then you can copy the contents of your configuration folder from the current system to the new system. Be aware that some of the files you need start with `.`, which is hidden by default from both `ls` (in SSH), in Windows Explorer, and macOS Finder. You'll need to ensure that you're viewing all files before you copy them.
From 0462ddbb4a308a1436939b2056af0dc95129957a Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 9 Sep 2018 08:40:53 +0100
Subject: [PATCH 09/97] Adding WiFi note (#6227)
Adding a note that modern smart phones may turn off their WiFi when idle, so this tracker may not be reliable when used by itself.
---
source/_components/device_tracker.nmap_tracker.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown
index 74ace37e238..061ae8a153e 100644
--- a/source/_components/device_tracker.nmap_tracker.markdown
+++ b/source/_components/device_tracker.nmap_tracker.markdown
@@ -15,6 +15,10 @@ featured: false
As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (`192.168.1.1/24`) and the range notation (`192.168.1.1-255`).
+
+ 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`.
From 4cf0c7d1e443b7b0b431f53b1ec95a1cd95fbc1d Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 9 Sep 2018 08:41:17 +0100
Subject: [PATCH 10/97] Adding WiFi note (#6226)
Adding a note that modern smart phones may turn off their WiFi when idle, so this tracker may not be reliable when used by itself.
---
source/_components/device_tracker.ping.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_components/device_tracker.ping.markdown b/source/_components/device_tracker.ping.markdown
index 04d2e764420..675150cb18c 100644
--- a/source/_components/device_tracker.ping.markdown
+++ b/source/_components/device_tracker.ping.markdown
@@ -15,6 +15,10 @@ ha_release: 0.36
The `ping` device tracker platform offers presence detection by using `ping` to send ICMP echo requests. This can be useful when devices are running a firewall and are blocking UDP or TCP packets but responding to ICMP requests (like Android phones). This tracker doesn't need to know the MAC address since the host can be on a different subnet. This makes this an option to detect hosts on a different subnet when `nmap` or other solutions don't work since `arp` doesn't work.
+
+ 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.
+
+
## {% linkable_title Configuration %}
To use this presence detection in your installation, add the following to your `configuration.yaml` file:
From e9705931cb0f85ca2995d5233893a4cefaf97025 Mon Sep 17 00:00:00 2001
From: Pteranodon
Date: Sun, 9 Sep 2018 20:57:21 +1000
Subject: [PATCH 11/97] Alter monitored_conditions list (#6234)
Add local_date_time and local_date_time_full to the monitored_conditions list.
---
source/_components/sensor.bom.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_components/sensor.bom.markdown b/source/_components/sensor.bom.markdown
index af149f35bf9..7774077d9cf 100644
--- a/source/_components/sensor.bom.markdown
+++ b/source/_components/sensor.bom.markdown
@@ -39,6 +39,8 @@ sensor:
- gust_kt
- air_temp
- dewpt
+ - local_date_time
+ - local_date_time_full
- press
- press_qnh
- press_msl
From bb729c819f7abe3027565f622f01330bafd3739e Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 9 Sep 2018 12:58:11 +0200
Subject: [PATCH 12/97] :pencil2: Fixes typo configuration.yml ->
configuration.yaml (#6237)
Fixes #6233
---
source/_components/konnected.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown
index 8a5f245af0e..16612ca4731 100644
--- a/source/_components/konnected.markdown
+++ b/source/_components/konnected.markdown
@@ -25,7 +25,7 @@ This component requires the [`discovery`](https://www.home-assistant.io/componen
## {% linkable_title Configuration %}
-A `konnected` section must be present in the `configuration.yml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them:
+A `konnected` section must be present in the `configuration.yaml` file that specifies the Konnected devices on the network and the sensors or actuators attached to them:
```yaml
# Example configuration.yaml entry
From 6890775752cbbd0be6c6c4ed7b8669affdcebeba Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 9 Sep 2018 12:11:56 +0100
Subject: [PATCH 13/97] Added the list of supported domains (#6235)
* Added the list of supported domains
Given how often we have to direct people to the Google Assistant component for this list, seems overdue to add it here
* Minor changes
---
source/cloud/google_assistant.markdown | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/source/cloud/google_assistant.markdown b/source/cloud/google_assistant.markdown
index 7868c9387bb..65ea395fcca 100644
--- a/source/cloud/google_assistant.markdown
+++ b/source/cloud/google_assistant.markdown
@@ -97,6 +97,21 @@ google_actions:
type: string
{% endconfiguration %}
+### {% linkable_title Available domains %}
+
+Currently, the following domains are available to be used with Google Assistant, listed with their default types:
+
+- `group` (on/off)
+- `input_boolean` (on/off)
+- `scene` (on)
+- `script` (on)
+- `switch` (on/off)
+- `fan` (on/off)
+- `light` (on/off/brightness/rgb color/color temp)
+- `cover` (on/off/set position (via set brightness))
+- `media_player` (on/off/set volume (via set brightness))
+- `climate` (temperature setting)
+
After setting up the cloud, if you make any device changes such as changing the name or adding a new device simply say "Ok Google, sync my devices" to get the changes to show up.
From 4349f7d8aa540eb48e7bd05ded204d62c2b954c6 Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Sun, 9 Sep 2018 14:17:04 +0200
Subject: [PATCH 14/97] Fix file extension of configuration file (#6238)
---
source/_components/binary_sensor.pilight.markdown | 2 +-
source/_components/cover.aladdin_connect.markdown | 8 +++++---
source/_components/lock.mqtt.markdown | 6 ++++--
source/_components/sensor.pilight.markdown | 2 +-
source/_components/sensor.radarr.markdown | 10 +++++-----
source/_components/sensor.sonarr.markdown | 10 +++++-----
6 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/source/_components/binary_sensor.pilight.markdown b/source/_components/binary_sensor.pilight.markdown
index b34cc955bfa..ef71c754602 100644
--- a/source/_components/binary_sensor.pilight.markdown
+++ b/source/_components/binary_sensor.pilight.markdown
@@ -39,7 +39,7 @@ Configuration variables:
A full configuration example could look like this:
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
binary_sensor:
- platform: pilight
name: 'Motion'
diff --git a/source/_components/cover.aladdin_connect.markdown b/source/_components/cover.aladdin_connect.markdown
index ca3576dce58..f0f35c71027 100644
--- a/source/_components/cover.aladdin_connect.markdown
+++ b/source/_components/cover.aladdin_connect.markdown
@@ -19,14 +19,16 @@ The `aladdin_connect` cover platform lets you control Genie Aladdin Connect gara
Only doors that are owned by your Aladdin Connect account will be available. Doors that your account has been granted shared access to are not yet supported.
+## {% linkable_title Configuration %}
+
To use your Aladdin Connect cover in your installation, add the following to your `configuration.yaml` file:
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
cover:
- platform: aladdin_connect
- username: user@email.com
- password: password
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
```
{% configuration %}
diff --git a/source/_components/lock.mqtt.markdown b/source/_components/lock.mqtt.markdown
index ff8eb051702..a1689fbd199 100644
--- a/source/_components/lock.mqtt.markdown
+++ b/source/_components/lock.mqtt.markdown
@@ -101,8 +101,9 @@ In this section you will find some real life examples of how to use this lock.
The example below shows a full configuration for a MQTT lock.
+{% raw %}
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
lock:
- platform: mqtt
name: Frontdoor
@@ -113,8 +114,9 @@ lock:
optimistic: false
qos: 1
retain: true
- value_template: '{% raw %}{{ value.x }}{% endraw %}'
+ value_template: '{{ value.x }}'
```
+{% endraw %}
Keep an eye on retaining messages to keep the state as you don't want to unlock your door by accident when you restart something.
diff --git a/source/_components/sensor.pilight.markdown b/source/_components/sensor.pilight.markdown
index a78f5a1d391..78e5b61abf4 100644
--- a/source/_components/sensor.pilight.markdown
+++ b/source/_components/sensor.pilight.markdown
@@ -42,7 +42,7 @@ This section shows a real life example how to use values of a weather station.
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: pilight
name: 'Temperature'
diff --git a/source/_components/sensor.radarr.markdown b/source/_components/sensor.radarr.markdown
index 8795896f9e7..0ec88883e51 100644
--- a/source/_components/sensor.radarr.markdown
+++ b/source/_components/sensor.radarr.markdown
@@ -50,7 +50,7 @@ In this section you find some real life examples of how to use this sensor.
### {% linkable_title Get Episodes airing in next 2 days %}
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
@@ -65,7 +65,7 @@ sensor:
SSL may run on a different port than the default (7878). The SSL port can be bound to any port in Radarr, so it should be set in the config here (unless it is changed to 7878).
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
@@ -80,7 +80,7 @@ sensor:
### {% linkable_title Get disk space for all storage locations %}
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
@@ -94,7 +94,7 @@ sensor:
The storage locations Radarr returns are in the system page and in some cases this can list duplicates if sub paths are mounted separately. By listing paths to include, you can choose what data is reported by the sensor.
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
@@ -112,7 +112,7 @@ The Radarr API returns available space in bytes, but this sensor will default to
*This calculation is done using base 2 math, and may differ from systems calculating using base 10 math.*
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: radarr
api_key: YOUR_API_KEY
diff --git a/source/_components/sensor.sonarr.markdown b/source/_components/sensor.sonarr.markdown
index 93b070adcee..837dde42b1d 100644
--- a/source/_components/sensor.sonarr.markdown
+++ b/source/_components/sensor.sonarr.markdown
@@ -53,7 +53,7 @@ In this section you find some real life examples of how to use this sensor.
### {% linkable_title Get Episodes airing in next 2 days %}
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
@@ -68,7 +68,7 @@ sensor:
SSL may run on a different port than the default (8989). The SSL port can be bound to any port in Sonarr, so it should be set in the config here (unless it is changed to 8989). See the [Sonarr site](https://github.com/Sonarr/Sonarr/wiki/SSL) for details on SSL in Sonarr.
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
@@ -83,7 +83,7 @@ sensor:
### {% linkable_title Get disk space for all storage locations %}
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
@@ -97,7 +97,7 @@ sensor:
The storage locations Sonarr returns are in the system page and in some cases this can list duplicates if sub paths are mounted separately. By listing paths to include, you can choose what data is reported by the sensor.
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
@@ -115,7 +115,7 @@ The Sonarr API returns available space in bytes, but this sensor will default to
*This calculation is done using base 2 math, and may differ from systems calculating using base 10 math.*
```yaml
-# Example configuration.yml entry
+# Example configuration.yaml entry
sensor:
- platform: sonarr
api_key: YOUR_API_KEY
From 6d57a5bddc5377afb3bc7f10641000a143534820 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 9 Sep 2018 15:54:41 +0100
Subject: [PATCH 15/97] Adding link to auth docs (#6217)
Adding a link to the auth documentation
---
source/_components/auth.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/auth.markdown b/source/_components/auth.markdown
index 96d0ab055a2..cc7ec923920 100644
--- a/source/_components/auth.markdown
+++ b/source/_components/auth.markdown
@@ -12,4 +12,4 @@ ha_category: Other
ha_release: 0.73
---
-This component creates the endpoints for the authentication system that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core.
+This component creates the endpoints for the [authentication system](/docs/authentication/) that is built into Home Assistant. There are no configuration options for this component directly as it relies on the auth system in the core.
From 50e6a8bdce91d20488080919b4129cd19a0d6113 Mon Sep 17 00:00:00 2001
From: Andrew Riley
Date: Sun, 9 Sep 2018 12:40:15 -0400
Subject: [PATCH 16/97] correct typo (hassbian-sctipts -> hassbian-scripts)
(#6241)
---
source/_docs/installation/hassbian/customization.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/installation/hassbian/customization.markdown b/source/_docs/installation/hassbian/customization.markdown
index e1c968a0c41..cb52818895b 100644
--- a/source/_docs/installation/hassbian/customization.markdown
+++ b/source/_docs/installation/hassbian/customization.markdown
@@ -35,7 +35,7 @@ These are some of the available suites:
- [AppDaemon](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/appdaemon.md)
- [Hassbian](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/hassbian.md)
- [Home Assistant](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/homeassistant.md)
-- [hassbian-config (hassbian-sctipts)](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/hassbian_config.md)
+- [hassbian-config (hassbian-scripts)](https://github.com/home-assistant/hassbian-scripts/blob/master/docs/hassbian_config.md)
To upgrade any of them simply run `sudo hassbian-config upgrade SUITE`.
From b8cd90cfb0bcaf2d8367dbdf28bf80423fef4c40 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Mon, 10 Sep 2018 08:20:42 +0100
Subject: [PATCH 17/97] Update for ad blocking (#6243)
Added a note about some ad blockers blocking web sockets
---
source/_docs/authentication.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown
index 7bae172053b..6838a31a622 100644
--- a/source/_docs/authentication.markdown
+++ b/source/_docs/authentication.markdown
@@ -49,3 +49,7 @@ While you should hopefully be storing your passwords in a password manager, if y
* `onboarding`
When you start Home Assistant next you'll be required to set up authentication again.
+
+### {% linkable_title Stuck on Loading data %}
+
+Some advert blocking software, such as Wipr, also blocks web sockets. If you're stuck on the Loading data screen, try disabling your ad blocker.
From c2dc96cc9d39b7db644ec2f15bd850c37f291e37 Mon Sep 17 00:00:00 2001
From: Delper
Date: Mon, 10 Sep 2018 00:31:08 -0700
Subject: [PATCH 18/97] Change IOT Class to Local Polling (#6247)
I browsed through the code and I don't think this component is reaching out beyond the local network to talk to the Rainmachine device.
---
source/_components/rainmachine.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/rainmachine.markdown b/source/_components/rainmachine.markdown
index 7bb254ef5d3..61ebb649104 100644
--- a/source/_components/rainmachine.markdown
+++ b/source/_components/rainmachine.markdown
@@ -10,7 +10,7 @@ footer: true
logo: rainmachine.png
ha_category: Irrigation
ha_release: 0.69
-ha_iot_class: "Cloud Polling"
+ha_iot_class: "Local Polling"
---
The `rainmachine` component is the main component to integrate all platforms
From 33479340b049c2ec5dd39f927ac61d2185a6c827 Mon Sep 17 00:00:00 2001
From: cswinford
Date: Mon, 10 Sep 2018 03:36:17 -0400
Subject: [PATCH 19/97] Remove .gz from URI for HASSOS OVA. (#6248)
The current URL of https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk.gz results in a 404. The correct URL is https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk .
---
source/hassio/installation.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/hassio/installation.markdown b/source/hassio/installation.markdown
index 1b17327d575..2c4db4c8e76 100644
--- a/source/hassio/installation.markdown
+++ b/source/hassio/installation.markdown
@@ -84,7 +84,7 @@ A detailed guide about running Hass.io as a virtual machine is available in the
[pi3-64]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_rpi3-64-1.10.img.gz
[tinker]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_tinker-2.2.img.gz
[odroid-c2]: https://github.com/home-assistant/hassos/releases/download/2.2/hassos_odroid-c2-2.2.img.gz
-[vmdk]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk.gz
+[vmdk]: https://github.com/home-assistant/hassos/releases/download/1.10/hassos_ova-1.10.vmdk
[linux]: https://github.com/home-assistant/hassio-build/tree/master/install#install-hassio
[local]: http://hassio.local:8123
[samba]: /addons/samba/
From 823ca82b3a4aa95612857eee42bf75ad6843ef2d Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Mon, 10 Sep 2018 08:37:57 +0100
Subject: [PATCH 20/97] Fixing formatting (#6242)
* Fixing formatting
The formatting is lost in the note block, making it a mess. Breaking it out into its own section to retain formatting.
* :pencil2: Spelling and grammar
---
source/_components/recorder.markdown | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown
index 8c8b5a4cbc0..eb859687fdd 100644
--- a/source/_components/recorder.markdown
+++ b/source/_components/recorder.markdown
@@ -18,7 +18,7 @@ Home Assistant uses [SQLAlchemy](http://www.sqlalchemy.org/) as Object Relationa
The default database engine is [SQLite](https://www.sqlite.org/) which doesn't require any configuration. The database is stored in your Home Assistant configuration directory (`.homeassistant`) and called `home-assistant_v2.db`.
-To setup the `recorder` component in your installation, add the following to your `configuration.yaml` file:
+To set up the `recorder` component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
@@ -73,7 +73,7 @@ recorder:
type: List
{% endconfiguration %}
-Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`).
+Define domains and entities to `exclude` (aka. blacklist). This is convenient when you are basically happy with the information recorded, but just want to remove some entities or domains. Usually, these are entities/domains which do not change (like `weblink`) or rarely change (`updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
@@ -103,7 +103,7 @@ recorder:
- media_player
```
-Use the `include` list to define the domains/entities to record, and exclude some of them with in the `exclude` list. This makes sense if you for instance include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in.
+Use the `include` list to define the domains/entities to record, and exclude some of them within the `exclude` list. This makes sense if you, for instance, include the `sensor` domain, but want to exclude some specific sensors. Instead of adding every sensor entity to the `include` `entities` list just include the `sensor` domain and exclude the sensor entities you are not interested in.
```yaml
# Example configuration.yaml entry with include and exclude
@@ -119,7 +119,7 @@ recorder:
- sensor.date
```
-If you only want to hide events from e.g., your history, take a look at the [`history` component](/components/history/). Same goes for logbook. But if you have privacy concerns about certain events or neither want them in history or logbook, you should use the `exclude`/`include` options of the `recorder` component, that way they aren't even in your database. That way you can save storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`).
+If you only want to hide events from e.g., your history, take a look at the [`history` component](/components/history/). Same goes for the logbook. But if you have privacy concerns about certain events or neither want them in history or logbook, you should use the `exclude`/`include` options of the `recorder` component, that way they aren't even in your database. That way you can save storage and keep the database small by excluding certain often-logged events (like `sensor.last_boot`).
### {% linkable_title Service `purge` %}
@@ -158,14 +158,17 @@ If the `recorder` component is activated then some components support `restore_s
If you use MariaDB 10 you need to add port 3307 to the SERVER_IP, e.g., `mysql://user:password@SERVER_IP:3307/DB_NAME?charset=utf8`.
+
-+If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the service file.
+### {% linkable_title Database startup %}
+
+If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the service file.
```bash
$ sudo nano /etc/systemd/system/home-assistant@homeassistant.service
```
-and add the service for PostgreSQL:
+and add the service for the database, for example, PostgreSQL:
```
[Unit]
@@ -178,7 +181,6 @@ Save the file then reload `systemctl`:
```bash
$ sudo systemctl daemon-reload
```
-
## {% linkable_title Installation notes %}
@@ -212,7 +214,7 @@ $ pip3 install mysqlclient
After installing the dependencies, it is required to create the database manually. During the startup, Home Assistant will look for the database specified in the `db_url`. If the database doesn't exist, it will not automatically create it for you.
-Once Home Assistant finds the database, with right level of permissions, all the required tables will then be automatically created and the data will be populated accordingly.
+Once Home Assistant finds the database, with the right level of permissions, all the required tables will then be automatically created and the data will be populated accordingly.
### {% linkable_title PostgreSQL %}
From c5428d979831d6389bb84aa51bb107b81f90ef83 Mon Sep 17 00:00:00 2001
From: R Huish <5207490+genestealer@users.noreply.github.com>
Date: Mon, 10 Sep 2018 10:02:46 +0100
Subject: [PATCH 21/97] Updated setup steps and added testing steps
notify.html5.markdown (#6240)
* Update notify.html5.markdown
Added more detail to navigating to the enable slider
* Update notify.html5.markdown
Added testing steps and expanded setup steps
---
source/_components/notify.html5.markdown | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown
index 57e6ce10e38..1578015218b 100644
--- a/source/_components/notify.html5.markdown
+++ b/source/_components/notify.html5.markdown
@@ -72,13 +72,24 @@ The `html5` platform can only function if all of the following requirements are
Assuming you have already added the platform to your configuration:
1. Open Home Assistant in Chrome or Firefox.
-2. Assuming you have met all the [requirements](#requirements) above, you should see a new slider for Push Notifications through the profile page Profile > Push notifications.
+2. Load profile page by clicking on the badge next to the Home Assistant title in the sidebar. Assuming you have met all the [requirements](#requirements) above then you should see a new slider for Push Notifications. If the slider is greyed out, ensure you are viewing Home Assistant via its external HTTPS address. If the slider is not visible, ensure you are not in the user configuration (Sidebar, Configuration, Users, View User).
3. Slide it to the on position.
4. Within a few seconds you should be prompted to allow notifications from Home Assistant.
5. Assuming you accept, that's all there is to it!
6. (Optional, but highly recommended!) Open the `html5_push_registrations.conf` file in your configuration directory. You will see a new entry for the browser you just added. Rename it from `unnamed device` to a name of your choice, which will make it easier to identify later. _Do not change anything else in this file!_ You need to restart Home Assistant after making any changes to the file.
+### {% linkable_title Testing %}
+
+Assuming the previous test completed successfully and your browser was registered, you can test the notification as follows:
+
+1. Open Home Assistant in Chrome or Firefox.
+2. Open the sidebar and click the Services button at the bottom (shaped like a remote control), located below the Developer Tools.
+3. From the Services dropdown, search for your HTML5 notify service (E.G. notify.NOTIFIER_NAME) and select it.
+4. In the Service Data text box enter: {"message":"hello world"}, then press the CALL SERVICE button.
+5. If everything worked you should see a popup notification.
+
+
### {% linkable_title Usage %}
The `html5` platform accepts a standard notify payload. However, there are also some special features built in which you can control in the payload.
From a79926f24be60a7d138807eb49e94dea85f08ef8 Mon Sep 17 00:00:00 2001
From: Jason Hu
Date: Mon, 10 Sep 2018 03:14:18 -0700
Subject: [PATCH 22/97] Add troubleshooting for invalid client id error (#6244)
* Add troubleshooting for invalid client id error
* Update authentication.markdown
* Add a note to remote document
* :pencil2: Spelling and grammar tweaks
---
source/_docs/authentication.markdown | 18 ++++++++++++++++++
source/_docs/configuration/remote.markdown | 4 ++++
.../error-invalid-client-id.png | Bin 0 -> 15590 bytes
3 files changed, 22 insertions(+)
create mode 100644 source/images/docs/authentication/error-invalid-client-id.png
diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown
index 6838a31a622..1d55d6b38f3 100644
--- a/source/_docs/authentication.markdown
+++ b/source/_docs/authentication.markdown
@@ -50,6 +50,24 @@ While you should hopefully be storing your passwords in a password manager, if y
When you start Home Assistant next you'll be required to set up authentication again.
+### {% linkable_title Error: invalid client id or redirect url%}
+
+
+
+You have to use a domain name, not IP address to remote access Home Assistant; otherwise you will get **Error: invalid client id or redirect url** error on the login form. However, you can use the IP address to access Home Assistant in your home network.
+
+It because we only allow using IP address as client ID when your IP address is one of internal network address (e.g., 192.168.0.1) or loopback address (e.g., 127.0.0.1).
+
+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. For example, if you are on Windows, edit `C:\Windows\System32\Drivers\etc\hosts` file with administrator privilege, add following entry.
+
+```text
+12.34.56.78 hassbian.home
+```
+
+(Please replace `12.34.56.78` with your Home Assistant's public IP address)
+
+It will allow you to open Home Assistant instance by access `http://hassbian.home:8123/`
+
### {% linkable_title Stuck on Loading data %}
Some advert blocking software, such as Wipr, also blocks web sockets. If you're stuck on the Loading data screen, try disabling your ad blocker.
diff --git a/source/_docs/configuration/remote.markdown b/source/_docs/configuration/remote.markdown
index f0d981b116e..00f9e276b35 100644
--- a/source/_docs/configuration/remote.markdown
+++ b/source/_docs/configuration/remote.markdown
@@ -15,6 +15,10 @@ If you're interested in logging in to Home Assistant while away, you'll have to
Remember to follow the [securing checklist](/docs/configuration/securing/) before doing this.
+
+Home Assistant no longer support remote access via IP address since release 0.77, you have to use domain name.
+
+
The most common approach is to set up port forwarding (for any port) from your router to port 8123 on the computer that is hosting Home Assistant. General instructions on how to do this can be found by searching ` port forwarding instructions`. You can use any free port on your router and forward that to port 8123.
A problem with making a port accessible is that some Internet Service Providers only offer dynamic IPs. This can cause you to lose access to Home Assistant while away. You can solve this by using a free Dynamic DNS service like [DuckDNS](https://www.duckdns.org/).
diff --git a/source/images/docs/authentication/error-invalid-client-id.png b/source/images/docs/authentication/error-invalid-client-id.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f543b92395385ea08cdcf087bc3ff5f7246c1fb
GIT binary patch
literal 15590
zcmd_RWmHse7%w^os34%EfQX9JPyzzdA|NnGvxn|(q#Hp&>F&-M_R!tk2uL?bOG^wf
z)Sdr2XRUibocrb8^X0DlVXwXRyZ77ge&Y9go*+eeDFQqyJO~6rAR{fI41wGU$6f*t
z?_x{Bgq$M4cCfh>agD#R%qNb>vJmb!(%S}4>Hd^
zPbOCFGB5efnj`3agVv{wTJ(mWyvs@A-h4jje&IOeMbZy}lXIHHIC4s>)kVzW>FibmTsBY{
zddc&i>}UV1>L%wzM&vD~M5&=N+@)lYnj!252fe?}hSqOatZfMp2Tkd>gHmIbfe^@m
z*(z$g$Bx3aCI0fb!iqnt=w@TEeSSVQnGw>;HFFMPMp7hG-pBJ?Q_7i@`;sS2x0sbz
z+a-v&KRD**uCPqUHetMqvRq1$%umru)=W?OE&<;Y_?fK6jI~&X)W#*~mkYc7q4r
z)yJ{M1F9mOYz+irY=RVay=_*`R=HPI^jvgnXB@V>UFDaqY_$#bX5hNkmOns<`Wna-7BPC6v+fOr4I|2I<<
zpX{L7(Lmx#oet;LWr;$g6*|`c9naa>W{K~m@x~m&c0bs}!sK!TU_j!1jVonVt=jqQ
zQ=lSrwwHJ^T^F=AeKMaAmo>djOFY$b0o%|**!l>@U-K4(F=z=K=hJ=wAcbGUO2AX>
z=tN@lMoEXgSs2`hOH-kegRU5+
zVnrZ`UCjKE*?1i^G%y7xtIjp5>iN&-a~yd7g6|54mKbu8YNVYy%asB|lcCtfqt#~G
z3#9<%%dRrgheR;RP8Ofj-<+ARttIJ$_WzXAuku)vBF%gbFWdcG9Wp3F(bCEn%*v5%
zdJ>{8Ems%fCE-ftf~)S{QcI#lKoLYauoZbA56apSIgBp79IukJE&F&eyiBXQX-gz4
zApg8KUvVO%8$S-Aev>seQ$3aEY8#0#g^h6s6i{M5cqt|3uS|ox=m|1#kOeiqkS}=*a*+h%PRAgtw)-Mg#WDG~=+L9t}
z&kl}t`sTS0$hu);1&0N`b*Z8k76lTc<)aQ)+xL1zZ9UfOFJmPde!EWL0t*6LiZL%;
z==+VHnikeNc86zzvt@?>dOBcK{0+k#_Bixfkx-N<^b5UDPEFqOV)0yw868VF{snMz
zpXhzD6gZt(BUdxd!;IeR}#7|J{_C8`MQO`n5D+Dvt;I0F*6K_<7mzd8l^q+w8%
zd03HIZDW4Eg>o}X-&l_bRK)#NN=hz}ABW~xilyaex!$nMVmfvYOWNA`b3?@b7nL@pNo)}T<+|aX>()(*TYNS5b$@h1IBMMovlrTyY74)Eq
zjh()zKG5`FSv?^4{iyxB>3z6LUB$>48K<%aRo}ix7IW@n>wzyBOm44@yz*ZwLr2#w
z8exZdE`$7Kg;E$p==Ubwz6=C7*oORd5#{55`FzFS*jBEn%QOrg=S>75C^O62W+
z(QcT(c4Df>C1x$aDn`;hxY608@}$Dmp)%4`bfAwUub^yYTw!TwM4&P<{%webu|pnh
zDkhg1bMcL_Ct2Ri!nNOrR#;C{9Ox6j!$-5Ml`QD-y3CE0JR-0`IIJ?ajhaSjN=Zr8
znVrT0MN;E=w@Inm$9HV?D*1PWHlp#C4a{2-u9sFG&WlQkO@YR^H!_kvHxV4wi
zlYIn_(TJ`uchxVp^q)2e{HT8+{tZ$JbG%k!FHTglLao&}OfiW+jL5F
zBUzC<_E4lH^ISjiro&I@*i^|c>GH!%6ia9Z3Zgy1PK$@Lt$@+Rt
zN!$%*(wr}+r?Xdd!S+~oHi(}z%CR`OM;*%^A%|HU8r}6Jptwa7UHH}}s>J*;c8J+C
zYc}6*IsJnoAxa+_!|F?`0x-&+g$G|b$mUkLed)vCbjDjg`E-9&nI2*)cu;q2yM9@xEt?T;q-VAuYS9g`9GtFO$?lhYSxv+|I>lgl@~}hg_3vo@cmvsgK&4Tv;z%j{D$}R
zjhlixwXO-%@i8tUG>e5r$aC=q?~4RRn$FuOw;cm3{zK+G^!@n`X(1!!W`QN;99)Hr
zLv`J%YIIrW^vD5tG&l^X3%euJqifLeSy03%@B0h=Lg}%4h-0Fb^c=qM`O}Lw
zYT~-B^$7f7??^;|DG+CTamEK5CZaf{$7(-0MZ2=qyCjo?9|PW$tiybdyTdN^C_VLG
zUbb$vpIK&uc?L>kc5D+Kp9}r=7^9M?p6M-}{?PeWqg4^{m@7&+o;-TXq)(Mnb%mgO
z>;<7}<`J{#-uFxb{>idV{E|TN++wInC8q)~FkPJtk{dRgpC9a_w6_YQQ#x|C3-79~
ztC9jytox#Iw})DFL_HxHGF>A!@MQ0NW^;O
zP%9&jGEj^xe4oT2*ZfZTT;BSM(N2c%*cwNLD~6I;RA4Ayp$Grg$Nj49X6LL$KrDV<
zg#_69CplgF3B8pVK@}|tYs3jCYSuV3NFDJan7FouiCD&l9RA
zO@BC0xPfAy=)nCtf7uZf6~M#PB~XA^KYAXX-%YOT=o6LDY(oH;5T%i3f&@4P+jjtf
z-vz!Ox3f=@L)83s{=^F^9M58rT$jjvbJX-aKvtn8<+@L6=2Btt%GbAdBq8^$9FWJI
z6Hx40PDheQT{kM)9OHc)lC9y=87s8K?{jf;+j!DCA}aLk;@{1Zw};-zY`7X@Z*-N?
zMD~xDcGRW-Ae78j`Xa2)q)G``SJ5YzxHUXf5U9+7#dh9924@in^316Aj4jPhPd?oZ
z%Y#a}D1*aGV5;2QilyyY046#KZ=*ncjo!B5C&=|}Ss#H=5@xiz3xZgCcw(`w@6xF2
zQh~xHwg12ksIR&Gv>L>*9~3(8xw|cu`#fx1{jd*zlxSG4@#xFVE+Sx+cAZv)JL)|9
zL)KJlkGnF!pk*n_LExo%j=sFusasL$+wJ-+HUpPRXWer@Y-+eYKGGTXwO3f`sid1-
z@GgM~%5TzYOo3bk*W-#n#DhJt3=_@W?0~Ef!gh54XGH8AQ*O+m^xv;jgX}m+N7qlg
z2-0_JWvW=EKGM&Qcv4gSLSA!B8`&FTqt(QPU!X`WxG*(O8Qe)y5b9AMuD^MZ3Bs(Y
zfUe-R5E_KTS(CsQyW3|nYt5^)zVG8%ETu12Cd%4-R&ll|Ht-}dXJ=D*=~IljB7GTG
z?{7spV5=9eyEL$NVXaeEX|%%
z&sMu;fn}J$SFbfU69R@2dOW!skYkAo-t7aUYiG0KkGHM
z>SDE~iSmIuX|+3xZW-sTS|CWu8vwdQA`(Hov$UZlscNcT-qVOZx27hYY^_{$p6TjeSdcNpZ4E{4l6Nd!+DsxVSrGNgQ|{jT7jX^mKy&RiX}fCCdC&Z|`*{TT3j#pjDo`_yMa?IPkZB
z%ph6`_QRaCh7~8D6Y`h)4nf#UQKiFm~wJc6kDS&-EFt|O%(TPE*Rvs{EhlTN{{;XW`{(oWJ4r_
zDbxgiD<$CHgPE+yvIuq7&*UMVx-U#$O$=B_aZFZhMm67}iT
z@*FMzn5rOQ=vW!`v*zTv5nrS8Px7vDu^d-SoQHa}#`h9(54B&>t)I2fUoYTnU77Ds
zPq6MlHt_7c)0dn*u12O9dd+_<#-%sEan?=zd;RkAn1-3nerJIl-gv(f7tGE_Y2Td{J_mtKb78wikPJA9X@}E~Veicj0Dj
zE{PcW>Cx4Hw@Nr)-^w4Tn$XfsZWKeuQ@F4Y2?C7u_ry)V^#y&izUp_v$C_mk(@p{2rO6uq)7glpf?(CD~dhiCb>&!uzj06^B#tY=?^GxJu@*CFa&
zH$T=(Uhu3pPO1g>=>VN!hYn<EL0=>CwxmWmwmf;SSj27knXSW`V;^
zDz^|h4aW-x_xCT?UdRC$dDoHx@Yz7Kj=Ko9gANB3_Li?NN%eA{6q=be*ER|?4x2Rn
zen*1uyj{a`tX0s!vh*F4L)A^ZBJY#w#G_iIfwPQ8
z_p6TG@6{gc3ADo-J>~8^$)oB3aHlj0>vPX`02Aiv@?mT)
z#>IQ;y5t4^x6KDv-(v@(K*C0zFDm^bCtYs)$A|L>KF1&IGM7uKZkH8>^_+;rVd10E
ze>&b7^VdgVdnFs@QW&gd0fD#YE5_~PJFkHCuIV6CuYi-q%55WyyDshRPUm^VP{e@<
z_l+&XT*i<~lknk;+tAr$r%_47m;@&U@$2g
zyzg$Xwr|woO4H;qHA1v6fVsKa@_p`o+cKjUa9
z(y8LK!lnyBL+{or;gZk)Eq;T%@xH*#g-(xXPWT*N{;>LMMy}YGGLZqQ`HQr2|KSh@
zF<>x(S{gJ`ai2fQql4~u)59t|{Y
z&g7ugA3K9iDU7qsdzg{qE)IqkRqp!`brCGYMA{!pzA3;Vy%c1YvRXGMG$JpEo2L-s
z_!9|He}sLHXB@m$SF$!UCp;qG@;w)#&Y2&
z|F+PNCuiMyzglja-Oorv3hY1Oiu7@bm(E8r&VG>rk$#&z!Y
zDBlC|Wx@ahia%Au*0v6khQj8qP1Mbut=iHM<
z-JY4PO@;VsQN2oI3)P#xkgocit`bo_>j(vtB94!hGsXa;a{}Jc?xotAUIr`Awabxz
z{ZEz5*QB@9>!;>lrexeDhHbuVj7DC4_O-Z_J>qeWdL*0nbt0Qw33xU6DwyV8xd02}
z)ttmZkV#Fea{>6dHqTICBAz4SbB2`l!~F3&6BPg`=qpiKRWdV87uB8jHu#jLMLAOg
zD?YCjaC9C;N2dZJW^1QQlldZ2D^VT>=IQdz6>J|FK;Z6?=vR|2T
zCuYRH;`j3xz~*z9jlfr9O5sv2UtRI%Ss(D?Pp1b*
zpH$ZhVm1U7<+?ph3^EV^-cRQ^!5?lW%I
zaQ{h2jWqcztDWh|-hS=XuSb*2s7srzrNyZ$!<|d}3LQ_B>RJ2R<&|eQBBnuCRg=SN
zTGY4Msk&2iSnm4Dd@G3$)_^=S+Y%VO!bq}#{pHC1eC`xExU;gWMRz`w9iBsb#y^;B
zR15{Vrh*=wIv$Ms)Go%J4!}j=6q@e%Y-Bb2gbWj_YA~moBVb3{2Gd^d#Qqz6Gxz6_
zZl#m?G-rMmFS1|mgVApVHg!Srb#;W|QkpUCmZG&|8J%0mz*w5%S=+3?XqMMTnEYQu
zM{C5Te^!qLV|NWpu4%{i=%bS9Cl5t;c&oNQ8%O+|r5*fz$ZVELFc)jo8Ih$Zz0@}18e?R%>xij?f6@9n#Zpp*tLG%aKHR_M
zlOemX>QGUci-bBB0=eF0{QTmV#9DNk%FxD$d5<^DgYoN8iM|MP6~O)d+GIpT)`uqL
z;I955s^O7Q4))<*ZpWE{m^t*5d=J$wiPMi;Yk#%fO;1Ou^XhZ*Vpgp$^2Q{mT2Y46uzIm)i
zh2}x}=ADam5$$R)Ulg9!?5U%E6B|D0EF|4=cx3amI^uIKU`|L-QIuP|MDO;xk^h-`
zHfSmLq30w)Io$bSSeC(_qENJ91GQ`*Q@}Tw>h8NB@xslGYGBp!tRgoM#q?1wS3BVd
z^%mLph{gli8d7v+8Ulj+h1Y4(4+Or`d~)UT&Q%gZ)=KBRl)+@+j42rILAWX^UktE{
z%E~H{U03>Zsv@pl2^ja~7Lj^j@@ZtEczL4MvOG+VB?pFbpiQz}fvP@Pp`L6=sLGh3
z-kx{NpmGdKkkj4ed!br|+6p{7p+>*umvX2q5VhTgu>v4~IVv3s(4
zCATg|#NOF*x}~8&(IwI{2`nEE3erfrO#*%skvV+7P>&{-x;tXfCDMJ!K@fPC@h_jk
z50^wjs7q#bw34*T$%FSov8H_yd4^y13Au9q9HAL5l$psQ^2il|2?qTSQpvyj;8Ck0
zQA8W1*U5yEn1NX)x17oY998E`_;M_a0O&fdVX=-i`)%i}C{U^Lk7)Dol>ax*k8)VP}t7uJz{Io0zFM&!tDi9IpM4JB1zWZbgzs-aK-!2
z20bQ@dVT-rAzF8ausIvjFC3h`D_xAfE2=up*+ImMzpGYFGx}HnY0cF0%=xMRBKh`D
zjX$BuzgzL>+#C0sOyN`x|=YbMsg0Ih~c_+6=E*|3bW}{R%=!EhWb_felUd
z_uogtH7?so@O-+t~zRT8Tgy#>KY>?A=3C9=68Mi07sejYY`*(Q2r;Ix|1
zXp;Bs(fB3I=`FYCvi0E(qqQ&%ul>!j>x7GtLv!s;<8nj!8&M1DNcdyPnYWZ-1^ukG
z=zI|D*oGdfniP=WJ0*@N@Mk|K#$*|WfNLi&@qMk8;)J4q>SWmmpxZax<%YCF>D_Om
zyhS$1Bt>b=j?B4SqRwb%HXmwvL=FFC
@@ -68,6 +69,7 @@ camera:
- platform: generic
name: Some Image
still_image_url: https://127.0.0.1:8123/local/your_image.png
+ verify_ssl: false
```
### {% linkable_title Sharing a camera feed from one Home Assistant instance to another %}
From 57f631f0f88ddc111c3e9cf7affec759e0335223 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Mon, 10 Sep 2018 11:40:31 +0100
Subject: [PATCH 25/97] Note about bearer tokens (#6215)
* Note about bearer tokens
Given that there's zero documentation about those warnings, and it comes up many times a day, time to document *something* about them.
* Update
* :pencil2: Tweaks
* :pencil2: Formatting tweak
---
source/_docs/authentication.markdown | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown
index 1d55d6b38f3..503725a5f7a 100644
--- a/source/_docs/authentication.markdown
+++ b/source/_docs/authentication.markdown
@@ -40,6 +40,24 @@ As a user, you can setup multi-factor authentication with time-based one-time pa
## {% linkable_title Troubleshooting %}
+### {% linkable_title Bearer token warnings %}
+
+Under the new authentication system you'll see the following warning logged when the [legacy API password](/docs/authentication/providers/#legacy-api-password) is supplied, but not configured in Home Assistant:
+
+```txt
+WARNING (MainThread) [homeassistant.components.http.auth] You need to use a bearer token to access /blah/blah from 192.0.2.4
+```
+
+If you see this, you need to add an [`api_password`](/components/http/#api_password) to your `http:` configuration.
+
+### {% linkable_title Bearer token informational messages %}
+
+If instead, you see the following, then this is a message for component developers, to tell them that they need to update how they authenticate to Home Assistant. As an end user you don't need to do anything:
+
+```txt
+INFO (MainThread) [homeassistant.components.http.auth] You need to use a bearer token to access /blah/blah from 192.0.2.4
+```
+
### {% linkable_title Lost owner password %}
While you should hopefully be storing your passwords in a password manager, if you lose the password associated with the owner account the only way to resolve this is to delete *all* the authentication data. You do this by shutting down Home Assistant and deleting the following files from the `.storage/` folder in your [configuration folder](https://www.home-assistant.io/docs/configuration/):
From bfcd5267981ca7db1a76c9ceebb0ba226103364d Mon Sep 17 00:00:00 2001
From: Alexxander0 <26937883+Alexxander0@users.noreply.github.com>
Date: Mon, 10 Sep 2018 13:03:30 +0200
Subject: [PATCH 26/97] Component media_player.spotify doenst support sonos
device (#6204)
* Update media_player.spotify.markdown
spotify media player doenst support sonos
* :pencil2: Spelling/Grammar tweaks
---
source/_components/media_player.spotify.markdown | 3 +++
1 file changed, 3 insertions(+)
diff --git a/source/_components/media_player.spotify.markdown b/source/_components/media_player.spotify.markdown
index 8de7240135f..0f2c27f5d05 100644
--- a/source/_components/media_player.spotify.markdown
+++ b/source/_components/media_player.spotify.markdown
@@ -75,3 +75,6 @@ You can send playlists to spotify via the "media_content_type": "playlist" and "
In this example this is a URI link to the Reggae Infusions playlist, [this support document from Spotify](https://support.spotify.com/us/using_spotify/share_music/why-do-you-have-two-different-link-formats/) explains how to get this URI value to use for playlists in the Spotify component.
+## {% linkable_title Unsupported devices %}
+
+- **Sonos**: Although its a Spotify Connect device, it is not supported by the official Spotify API.
From 0600c2cabddf4b9b3c9244822dd568484c8d4bfd Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Mon, 10 Sep 2018 13:57:31 +0200
Subject: [PATCH 27/97] Add draft blog post
---
_config.yml | 4 +-
source/_posts/2018-09-15-release-78.markdown | 393 +++++++++++++++++++
2 files changed, 395 insertions(+), 2 deletions(-)
create mode 100644 source/_posts/2018-09-15-release-78.markdown
diff --git a/_config.yml b/_config.yml
index 60823e3e2d0..59c65eb54bb 100644
--- a/_config.yml
+++ b/_config.yml
@@ -141,9 +141,9 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 77
+current_minor_version: 78
current_patch_version: 0
-date_released: 2018-08-29
+date_released: 2018-09-15
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_posts/2018-09-15-release-78.markdown b/source/_posts/2018-09-15-release-78.markdown
new file mode 100644
index 00000000000..b595c05b9a8
--- /dev/null
+++ b/source/_posts/2018-09-15-release-78.markdown
@@ -0,0 +1,393 @@
+---
+layout: post
+title: "0.78: XXX - Update date"
+description: "XXX"
+date: 2018-09-10 00:01:00
+date_formatted: "September 15, 2018"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2018-09-0.78/social.png
+---
+
+
+
+## {% linkable_title New Platforms %}
+
+- Add temperature sensors to the velbus component ([@Cereal2nd] - [#16203]) ([velbus docs]) ([sensor.velbus docs]) (new-platform)
+- Add Volkszaehler sensor ([@fabaff] - [#16188]) ([sensor.volkszaehler docs]) (new-platform)
+- Switchmate ([@Danielhiversen] - [#15535]) ([switch.switchmate docs]) (new-platform)
+- Add support for Habitica ([@ASMfreaK] - [#15744]) ([habitica docs]) ([sensor.habitica docs]) (new-platform)
+- Geo Location component ([@exxamalte] - [#15953]) ([feedreader docs]) ([geo_location docs]) (new-platform)
+- Add Cover to the Insteon component ([@teharris1] - [#16215]) ([insteon docs]) ([cover.insteon docs]) (new-platform)
+- switchbot ([@Danielhiversen] - [#16396]) ([switch.switchbot docs]) (new-platform)
+- Add Yale Smart Alarm component ([@domwillcode] - [#16377]) ([alarm_control_panel.yale_smart_alarm docs]) (new-platform)
+- Add OpenTherm Gateway climate platform ([@mvn23] - [#16299]) ([climate.opentherm_gw docs]) (new-platform)
+
+## {% linkable_title If you need help... %}
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks.
+
+## {% linkable_title Reporting Issues %}
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/home-assistant/issues). Make sure to fill in all fields of the issue template.
+
+
+
+## {% linkable_title Breaking Changes %}
+
+- Rewrite of Trafikverket weather - Multiple sensor types supported ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
+- Fix geizhals price parsing ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
+- Update to EnvoyReader 0.2, support for more hardware ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
+- Fix Mi Flora median calculation ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
+- Added Twitch v5 support to the twitch platform ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
+- Update radiotherm ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
+
+## {% linkable_title All changes %}
+
+- Add 'moon_phase' to Dark Sky sensor ([@fabaff] - [#16179]) ([sensor.darksky docs])
+- Zoneminder SSL fix ([@djm300] - [#16157]) ([zoneminder docs])
+- update python-velbus library version ([@thomasdelaet] - [#16194]) ([velbus docs])
+- MQTT: Log transmitted as well as received messages ([@smurfix] - [#16195]) ([mqtt docs])
+- Upgrade sqlalchemy to 1.2.11 ([@fabaff] - [#16192]) ([sensor.sql docs])
+- Add battery warning, rssi level and check for availability ([@fucm] - [#16193]) ([sensor.tahoma docs])
+- Inconsistent entity_id when multiple sensors ([@grea09] - [#16205]) ([sensor.dnsip docs])
+- Add temperature sensors to the velbus component ([@Cereal2nd] - [#16203]) ([velbus docs]) ([sensor.velbus docs]) (new-platform)
+- Rewrite of Trafikverket weather - Multiple sensor types supported ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
+- Add device_tracker.bluetooth_update service ([@kariudo] - [#15252]) ([device_tracker docs])
+- Fix geizhals price parsing ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
+- Add Volkszaehler sensor ([@fabaff] - [#16188]) ([sensor.volkszaehler docs]) (new-platform)
+- openalpr flag `WITH_TEST` should be `WITH_TESTS` ([@vrih] - [#16218])
+- Upgrade alpha_vantage to 2.1.0 ([@fabaff] - [#16217]) ([sensor.alpha_vantage docs])
+- Store devices as dict instead of list ([@Kane610] - [#16229])
+- Improve package loadable ([@balloob] - [#16237])
+- Switchmate ([@Danielhiversen] - [#15535]) ([switch.switchmate docs]) (new-platform)
+- Add support for discrete states to MyQ cover ([@schmittx] - [#16251]) ([cover.myq docs])
+- bump version ([@dgomes] - [#16262]) ([upnp docs])
+- Replace Authorization by Authentication ([@cgtobi] - [#16259]) ([hangouts docs])
+- Add device info to Chromecast ([@balloob] - [#16261]) ([media_player.cast docs])
+- Add device info for sonos ([@balloob] - [#16263]) ([media_player.sonos docs])
+- Add device info Nest ([@balloob] - [#16265]) ([climate.nest docs])
+- Add Hue device info ([@balloob] - [#16267]) ([hue docs]) ([light.hue docs])
+- Nest Thermostat has software version ([@awarecan] - [#16275]) ([climate.nest docs])
+- Add support for Habitica ([@ASMfreaK] - [#15744]) ([habitica docs]) ([sensor.habitica docs]) (new-platform)
+- Fix so that entities are properly unloaded with config entry ([@Kane610] - [#16281]) ([deconz docs]) ([binary_sensor.deconz docs]) ([light.deconz docs]) ([scene.deconz docs]) ([sensor.deconz docs]) ([switch.deconz docs])
+- Geo Location component ([@exxamalte] - [#15953]) ([feedreader docs]) ([geo_location docs]) (new-platform)
+- Bump songpal dependency ([@rytilahti] - [#16297]) ([media_player.songpal docs])
+- Use asterisk_mbox 0.5.0 client ([@PhracturedBlue] - [#16296]) ([asterisk_mbox docs])
+- Upgrade Adafruit-DHT to 1.3.4 ([@thomaslian] - [#16327]) ([sensor.dht docs])
+- Add unique ID ([@schmittx] - [#16323]) ([cover.myq docs])
+- Add Cover to the Insteon component ([@teharris1] - [#16215]) ([insteon docs]) ([cover.insteon docs]) (new-platform)
+- Fix missing humidity sensor ([@danielperna84] - [#16337]) ([homematic docs])
+- Support Sonos Beam HDMI input ([@phil65] - [#16340]) ([media_player.sonos docs])
+- Make last_seen attribute a timezone aware datetime in UTC ([@pnbruckner] - [#16348]) ([device_tracker docs])
+- Handle netatmo exception ([@Danielhiversen] - [#16344]) ([sensor.netatmo docs])
+- Add support for sound_mode for Yamaha rxv media_player ([@Joshi425] - [#16352]) ([media_player.yamaha docs])
+- Add unique_id to MQTT Light ([@bieniu] - [#16303]) ([light.mqtt docs])
+- Update to EnvoyReader 0.2, support for more hardware ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
+- Snips: Added special slot values, session_id and slotname_raw ([@tschmidty69] - [#16185]) ([snips docs])
+- Upgrade hbmqtt to 0.9.4 ([@awarecan] - [#16356]) ([mqtt docs])
+- Upgrade Sphinx to 1.7.7 ([@fabaff] - [#16359])
+- Upgrade qnapstats to 0.2.7 ([@fabaff] - [#16360]) ([sensor.qnap docs])
+- Upgrade mutagen to 1.41.1 ([@fabaff] - [#16361]) ([tts docs])
+- Upgrade shodan to 1.10.0 ([@fabaff] - [#16363]) ([sensor.shodan docs])
+- Upgrade to youtube_dl to 2018.09.01 ([@fabaff] - [#16365]) ([media_extractor docs])
+- Added 'nomapnt', 'outcurnt', 'loadapnt' fields ([@MarcSN311] - [#16176]) ([sensor.apcupsd docs])
+- Generic Thermostat: add support for climate.turn_on/climate.turn_off ([@aronsky] - [#16080]) ([climate.generic_thermostat docs])
+- Add support for Tahoma Lighting Receiver on/off io ([@fucm] - [#15925]) ([tahoma docs]) ([switch.tahoma docs])
+- Update discord.py ([@htotoo] - [#16248]) ([notify docs])
+- Upgrade python-telegram-bot to 11.0.0 ([@fabaff] - [#16373]) ([telegram_bot docs])
+- Upgrade attrs to 18.2.0 ([@fabaff] - [#16372])
+- Update server.py ([@awarecan] - [#16375]) ([mqtt docs])
+- add_entities for switchmate ([@Danielhiversen] - [#16368]) ([switch.switchmate docs])
+- Support for playing radio preset by Onkyo media_player ([@pszafer] - [#16258]) ([cover.mqtt docs]) ([media_player.onkyo docs])
+- Bug fix for Tibber ([@Danielhiversen] - [#16397]) ([sensor.tibber docs])
+- zha: Bump to zigpy 0.2.0/bellows 0.7.0 ([@rcloran] - [#16404]) ([zha docs])
+- Fix SystemMonitor IP address sensor ([@ReneNulschDE] - [#16394]) ([sensor.systemmonitor docs])
+- add ExpressBus icon key to sensor.mvg ([@9R] - [#16387]) ([sensor.mvglive docs])
+- Device and entity registry remove config entry on unload ([@Kane610] - [#16247])
+- Add config flow for OpenUV ([@bachya] - [#16159]) ([openuv docs]) ([binary_sensor.openuv docs]) ([sensor.openuv docs])
+- Service to load new deCONZ devices without restart ([@Kane610] - [#16308]) ([deconz docs])
+- Delegate mqtt topic match validation to the paho mqtt client ([@rohankapoorcom] - [#16403]) ([mqtt docs])
+- Clean up dlink and some bug fix ([@Danielhiversen] - [#16346]) ([switch.dlink docs])
+- Implement correct state for RFlink cover ([@nudded] - [#16304]) ([cover.rflink docs])
+- Fix Mi Flora median calculation ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
+- Add context to scripts and automations ([@balloob] - [#16415]) ([automation docs]) ([script docs]) ([automation.event docs]) ([automation.homeassistant docs]) ([automation.numeric_state docs]) ([automation.state docs]) ([automation.template docs]) ([automation.zone docs])
+- Fix openuv.config_flow unit test ([@awarecan] - [#16419])
+- Upgrade sense library to 0.4.2 ([@kbickar] - [#16429]) ([sensor.sense docs])
+- switchbot ([@Danielhiversen] - [#16396]) ([switch.switchbot docs]) (new-platform)
+- Fix camera proxy to not require api_password to function ([@PhracturedBlue] - [#16450]) ([camera docs]) ([camera.proxy docs])
+- Upgrade shodan to 1.10.1 ([@fabaff] - [#16460]) ([sensor.shodan docs])
+- Upgrade Sphinx to 1.7.8 ([@fabaff] - [#16459])
+- update rfxtrx lib ([@Danielhiversen] - [#16463]) ([rfxtrx docs])
+- Added Twitch v5 support to the twitch platform ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
+- Fix waze_travel_time component startup ([@tsvi] - [#16465]) ([sensor.waze_travel_time docs])
+- Update license to official GitHub template ([@OverloadUT] - [#16470])
+- Add Yale Smart Alarm component ([@domwillcode] - [#16377]) ([alarm_control_panel.yale_smart_alarm docs]) (new-platform)
+- Update radiotherm ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
+- Support SNMPv3 and asyncio in snmp switch ([@mtdcr] - [#14754]) ([switch.snmp docs])
+- Fix GitHub change to resolve conflicts ([@fabaff] - [#16477]) ([switch.snmp docs])
+- Add OpenTherm Gateway climate platform ([@mvn23] - [#16299]) ([climate.opentherm_gw docs]) (new-platform)
+- Support SNMPv3 and asyncio in snmp sensor ([@mtdcr] - [#14753]) ([sensor.snmp docs])
+- Add rate of change to statistics sensor ([@flo-wer] - [#15632]) ([sensor.statistics docs])
+- Restore status attribute for xiaomi_vacuum ([@tamasv] - [#16366]) ([vacuum docs]) ([vacuum.xiaomi_miio docs])
+- Check if API key is valid and users available ([@fabaff] - [#16494]) ([sensor.lastfm docs])
+- Update name legacy api password ([@balloob] - [#16455])
+- Fix Netgear LTESensor docstring ([@scop] - [#16501]) ([sensor.netgear_lte docs])
+- Update pyHS100 to 0.3.3 ([@amelchio] - [#16502]) ([light.tplink docs]) ([switch.tplink docs])
+- Move voluptuous-serialize to core requirement ([@awarecan] - [#16507]) ([config docs])
+- adds listener for OnAVStart and OnAVChange ([@tadly] - [#16495]) ([media_player.kodi docs])
+- Order imports ([@fabaff] - [#16515])
+- Upgrade aiohttp to 3.4.4 ([@awarecan] - [#16486])
+- Add a base_url configuration setting to tts. ([@lddubeau] - [#16478]) ([tts docs])
+- Upgrade youtube_dl to 2018.09.10 ([@fabaff] - [#16534]) ([media_extractor docs])
+- Upgrade keyring to 15.0.0 ([@fabaff] - [#16536])
+
+[#14753]: https://github.com/home-assistant/home-assistant/pull/14753
+[#14754]: https://github.com/home-assistant/home-assistant/pull/14754
+[#15031]: https://github.com/home-assistant/home-assistant/pull/15031
+[#15252]: https://github.com/home-assistant/home-assistant/pull/15252
+[#15535]: https://github.com/home-assistant/home-assistant/pull/15535
+[#15632]: https://github.com/home-assistant/home-assistant/pull/15632
+[#15744]: https://github.com/home-assistant/home-assistant/pull/15744
+[#15925]: https://github.com/home-assistant/home-assistant/pull/15925
+[#15935]: https://github.com/home-assistant/home-assistant/pull/15935
+[#15953]: https://github.com/home-assistant/home-assistant/pull/15953
+[#15990]: https://github.com/home-assistant/home-assistant/pull/15990
+[#16080]: https://github.com/home-assistant/home-assistant/pull/16080
+[#16085]: https://github.com/home-assistant/home-assistant/pull/16085
+[#16157]: https://github.com/home-assistant/home-assistant/pull/16157
+[#16159]: https://github.com/home-assistant/home-assistant/pull/16159
+[#16176]: https://github.com/home-assistant/home-assistant/pull/16176
+[#16179]: https://github.com/home-assistant/home-assistant/pull/16179
+[#16185]: https://github.com/home-assistant/home-assistant/pull/16185
+[#16188]: https://github.com/home-assistant/home-assistant/pull/16188
+[#16192]: https://github.com/home-assistant/home-assistant/pull/16192
+[#16193]: https://github.com/home-assistant/home-assistant/pull/16193
+[#16194]: https://github.com/home-assistant/home-assistant/pull/16194
+[#16195]: https://github.com/home-assistant/home-assistant/pull/16195
+[#16203]: https://github.com/home-assistant/home-assistant/pull/16203
+[#16205]: https://github.com/home-assistant/home-assistant/pull/16205
+[#16212]: https://github.com/home-assistant/home-assistant/pull/16212
+[#16215]: https://github.com/home-assistant/home-assistant/pull/16215
+[#16217]: https://github.com/home-assistant/home-assistant/pull/16217
+[#16218]: https://github.com/home-assistant/home-assistant/pull/16218
+[#16229]: https://github.com/home-assistant/home-assistant/pull/16229
+[#16237]: https://github.com/home-assistant/home-assistant/pull/16237
+[#16247]: https://github.com/home-assistant/home-assistant/pull/16247
+[#16248]: https://github.com/home-assistant/home-assistant/pull/16248
+[#16251]: https://github.com/home-assistant/home-assistant/pull/16251
+[#16258]: https://github.com/home-assistant/home-assistant/pull/16258
+[#16259]: https://github.com/home-assistant/home-assistant/pull/16259
+[#16261]: https://github.com/home-assistant/home-assistant/pull/16261
+[#16262]: https://github.com/home-assistant/home-assistant/pull/16262
+[#16263]: https://github.com/home-assistant/home-assistant/pull/16263
+[#16265]: https://github.com/home-assistant/home-assistant/pull/16265
+[#16267]: https://github.com/home-assistant/home-assistant/pull/16267
+[#16275]: https://github.com/home-assistant/home-assistant/pull/16275
+[#16281]: https://github.com/home-assistant/home-assistant/pull/16281
+[#16296]: https://github.com/home-assistant/home-assistant/pull/16296
+[#16297]: https://github.com/home-assistant/home-assistant/pull/16297
+[#16299]: https://github.com/home-assistant/home-assistant/pull/16299
+[#16303]: https://github.com/home-assistant/home-assistant/pull/16303
+[#16304]: https://github.com/home-assistant/home-assistant/pull/16304
+[#16308]: https://github.com/home-assistant/home-assistant/pull/16308
+[#16323]: https://github.com/home-assistant/home-assistant/pull/16323
+[#16327]: https://github.com/home-assistant/home-assistant/pull/16327
+[#16337]: https://github.com/home-assistant/home-assistant/pull/16337
+[#16340]: https://github.com/home-assistant/home-assistant/pull/16340
+[#16344]: https://github.com/home-assistant/home-assistant/pull/16344
+[#16346]: https://github.com/home-assistant/home-assistant/pull/16346
+[#16348]: https://github.com/home-assistant/home-assistant/pull/16348
+[#16352]: https://github.com/home-assistant/home-assistant/pull/16352
+[#16356]: https://github.com/home-assistant/home-assistant/pull/16356
+[#16359]: https://github.com/home-assistant/home-assistant/pull/16359
+[#16360]: https://github.com/home-assistant/home-assistant/pull/16360
+[#16361]: https://github.com/home-assistant/home-assistant/pull/16361
+[#16363]: https://github.com/home-assistant/home-assistant/pull/16363
+[#16365]: https://github.com/home-assistant/home-assistant/pull/16365
+[#16366]: https://github.com/home-assistant/home-assistant/pull/16366
+[#16368]: https://github.com/home-assistant/home-assistant/pull/16368
+[#16372]: https://github.com/home-assistant/home-assistant/pull/16372
+[#16373]: https://github.com/home-assistant/home-assistant/pull/16373
+[#16375]: https://github.com/home-assistant/home-assistant/pull/16375
+[#16377]: https://github.com/home-assistant/home-assistant/pull/16377
+[#16387]: https://github.com/home-assistant/home-assistant/pull/16387
+[#16394]: https://github.com/home-assistant/home-assistant/pull/16394
+[#16396]: https://github.com/home-assistant/home-assistant/pull/16396
+[#16397]: https://github.com/home-assistant/home-assistant/pull/16397
+[#16403]: https://github.com/home-assistant/home-assistant/pull/16403
+[#16404]: https://github.com/home-assistant/home-assistant/pull/16404
+[#16415]: https://github.com/home-assistant/home-assistant/pull/16415
+[#16419]: https://github.com/home-assistant/home-assistant/pull/16419
+[#16428]: https://github.com/home-assistant/home-assistant/pull/16428
+[#16429]: https://github.com/home-assistant/home-assistant/pull/16429
+[#16450]: https://github.com/home-assistant/home-assistant/pull/16450
+[#16455]: https://github.com/home-assistant/home-assistant/pull/16455
+[#16459]: https://github.com/home-assistant/home-assistant/pull/16459
+[#16460]: https://github.com/home-assistant/home-assistant/pull/16460
+[#16463]: https://github.com/home-assistant/home-assistant/pull/16463
+[#16465]: https://github.com/home-assistant/home-assistant/pull/16465
+[#16470]: https://github.com/home-assistant/home-assistant/pull/16470
+[#16477]: https://github.com/home-assistant/home-assistant/pull/16477
+[#16478]: https://github.com/home-assistant/home-assistant/pull/16478
+[#16486]: https://github.com/home-assistant/home-assistant/pull/16486
+[#16494]: https://github.com/home-assistant/home-assistant/pull/16494
+[#16495]: https://github.com/home-assistant/home-assistant/pull/16495
+[#16501]: https://github.com/home-assistant/home-assistant/pull/16501
+[#16502]: https://github.com/home-assistant/home-assistant/pull/16502
+[#16507]: https://github.com/home-assistant/home-assistant/pull/16507
+[#16515]: https://github.com/home-assistant/home-assistant/pull/16515
+[#16534]: https://github.com/home-assistant/home-assistant/pull/16534
+[#16536]: https://github.com/home-assistant/home-assistant/pull/16536
+[@9R]: https://github.com/9R
+[@ASMfreaK]: https://github.com/ASMfreaK
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Joshi425]: https://github.com/Joshi425
+[@JulianKahnert]: https://github.com/JulianKahnert
+[@Kane610]: https://github.com/Kane610
+[@MarcSN311]: https://github.com/MarcSN311
+[@OverloadUT]: https://github.com/OverloadUT
+[@PaulAnnekov]: https://github.com/PaulAnnekov
+[@PhracturedBlue]: https://github.com/PhracturedBlue
+[@ReneNulschDE]: https://github.com/ReneNulschDE
+[@amelchio]: https://github.com/amelchio
+[@aronsky]: https://github.com/aronsky
+[@awarecan]: https://github.com/awarecan
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bieniu]: https://github.com/bieniu
+[@cgtobi]: https://github.com/cgtobi
+[@cpw]: https://github.com/cpw
+[@danielperna84]: https://github.com/danielperna84
+[@dgomes]: https://github.com/dgomes
+[@djm300]: https://github.com/djm300
+[@domwillcode]: https://github.com/domwillcode
+[@endor-force]: https://github.com/endor-force
+[@exxamalte]: https://github.com/exxamalte
+[@fabaff]: https://github.com/fabaff
+[@flo-wer]: https://github.com/flo-wer
+[@fucm]: https://github.com/fucm
+[@grea09]: https://github.com/grea09
+[@htotoo]: https://github.com/htotoo
+[@ioangogo]: https://github.com/ioangogo
+[@jesserizzo]: https://github.com/jesserizzo
+[@kariudo]: https://github.com/kariudo
+[@kbickar]: https://github.com/kbickar
+[@lddubeau]: https://github.com/lddubeau
+[@mtdcr]: https://github.com/mtdcr
+[@mvn23]: https://github.com/mvn23
+[@nudded]: https://github.com/nudded
+[@phil65]: https://github.com/phil65
+[@pnbruckner]: https://github.com/pnbruckner
+[@pszafer]: https://github.com/pszafer
+[@rcloran]: https://github.com/rcloran
+[@rohankapoorcom]: https://github.com/rohankapoorcom
+[@rytilahti]: https://github.com/rytilahti
+[@schmittx]: https://github.com/schmittx
+[@scop]: https://github.com/scop
+[@smurfix]: https://github.com/smurfix
+[@tadly]: https://github.com/tadly
+[@tamasv]: https://github.com/tamasv
+[@teharris1]: https://github.com/teharris1
+[@thomasdelaet]: https://github.com/thomasdelaet
+[@thomaslian]: https://github.com/thomaslian
+[@tschmidty69]: https://github.com/tschmidty69
+[@tsvi]: https://github.com/tsvi
+[@vrih]: https://github.com/vrih
+[alarm_control_panel.yale_smart_alarm docs]: /components/alarm_control_panel.yale_smart_alarm/
+[asterisk_mbox docs]: /components/asterisk_mbox/
+[automation docs]: /components/automation/
+[automation.event docs]: /docs/automation/trigger/#event-trigger
+[automation.homeassistant docs]: /docs/automation/trigger/#home-assistant-trigger
+[automation.numeric_state docs]: /docs/automation/trigger/#numeric-state-trigger
+[automation.state docs]: /docs/automation/trigger/#state-trigger
+[automation.template docs]: /docs/automation/trigger/#template-trigger
+[automation.zone docs]: /docs/automation/trigger/#zone-trigger
+[binary_sensor.deconz docs]: /components/binary_sensor.deconz/
+[binary_sensor.openuv docs]: /components/binary_sensor.openuv/
+[camera docs]: /components/camera/
+[camera.proxy docs]: /components/camera.proxy/
+[climate.generic_thermostat docs]: /components/climate.generic_thermostat/
+[climate.nest docs]: /components/climate.nest/
+[climate.opentherm_gw docs]: /components/climate.opentherm_gw/
+[climate.radiotherm docs]: /components/climate.radiotherm/
+[config docs]: /components/config/
+[cover.insteon docs]: /components/cover.insteon/
+[cover.mqtt docs]: /components/cover.mqtt/
+[cover.myq docs]: /components/cover.myq/
+[cover.rflink docs]: /components/cover.rflink/
+[deconz docs]: /components/deconz/
+[device_tracker docs]: /components/device_tracker/
+[feedreader docs]: /components/feedreader/
+[geo_location docs]: /components/geo_location/
+[habitica docs]: /components/habitica/
+[hangouts docs]: /components/hangouts/
+[homematic docs]: /components/homematic/
+[hue docs]: /components/hue/
+[insteon docs]: /components/insteon/
+[light.deconz docs]: /components/light.deconz/
+[light.hue docs]: /components/light.hue/
+[light.mqtt docs]: /components/light.mqtt/
+[light.tplink docs]: /components/light.tplink/
+[media_extractor docs]: /components/media_extractor/
+[media_player.cast docs]: /components/media_player.cast/
+[media_player.kodi docs]: /components/media_player.kodi/
+[media_player.onkyo docs]: /components/media_player.onkyo/
+[media_player.songpal docs]: /components/media_player.songpal/
+[media_player.sonos docs]: /components/media_player.sonos/
+[media_player.yamaha docs]: /components/media_player.yamaha/
+[mqtt docs]: /components/mqtt/
+[notify docs]: /components/notify/
+[openuv docs]: /components/openuv/
+[rfxtrx docs]: /components/rfxtrx/
+[scene.deconz docs]: /components/scene.deconz/
+[script docs]: /components/script/
+[sensor.alpha_vantage docs]: /components/sensor.alpha_vantage/
+[sensor.apcupsd docs]: /components/sensor.apcupsd/
+[sensor.darksky docs]: /components/sensor.darksky/
+[sensor.deconz docs]: /components/sensor.deconz/
+[sensor.dht docs]: /components/sensor.dht/
+[sensor.dnsip docs]: /components/sensor.dnsip/
+[sensor.enphase_envoy docs]: /components/sensor.enphase_envoy/
+[sensor.geizhals docs]: /components/sensor.geizhals/
+[sensor.habitica docs]: /components/sensor.habitica/
+[sensor.lastfm docs]: /components/sensor.lastfm/
+[sensor.miflora docs]: /components/sensor.miflora/
+[sensor.mvglive docs]: /components/sensor.mvglive/
+[sensor.netatmo docs]: /components/sensor.netatmo/
+[sensor.netgear_lte docs]: /components/sensor.netgear_lte/
+[sensor.openuv docs]: /components/sensor.openuv/
+[sensor.qnap docs]: /components/sensor.qnap/
+[sensor.sense docs]: /components/sensor.sense/
+[sensor.shodan docs]: /components/sensor.shodan/
+[sensor.snmp docs]: /components/sensor.snmp/
+[sensor.sql docs]: /components/sensor.sql/
+[sensor.statistics docs]: /components/sensor.statistics/
+[sensor.systemmonitor docs]: /components/sensor.systemmonitor/
+[sensor.tahoma docs]: /components/sensor.tahoma/
+[sensor.tibber docs]: /components/sensor.tibber/
+[sensor.trafikverket_weatherstation docs]: /components/sensor.trafikverket_weatherstation/
+[sensor.twitch docs]: /components/sensor.twitch/
+[sensor.velbus docs]: /components/sensor.velbus/
+[sensor.volkszaehler docs]: /components/sensor.volkszaehler/
+[sensor.waze_travel_time docs]: /components/sensor.waze_travel_time/
+[snips docs]: /components/snips/
+[switch.deconz docs]: /components/switch.deconz/
+[switch.dlink docs]: /components/switch.dlink/
+[switch.snmp docs]: /components/switch.snmp/
+[switch.switchbot docs]: /components/switch.switchbot/
+[switch.switchmate docs]: /components/switch.switchmate/
+[switch.tahoma docs]: /components/switch.tahoma/
+[switch.tplink docs]: /components/switch.tplink/
+[tahoma docs]: /components/tahoma/
+[telegram_bot docs]: /components/telegram_bot/
+[tts docs]: /components/tts/
+[upnp docs]: /components/upnp/
+[vacuum docs]: /components/vacuum/
+[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
+[velbus docs]: /components/velbus/
+[zha docs]: /components/zha/
+[zoneminder docs]: /components/zoneminder/
From 513ef6f63a367bdfea0e5b4b60699d523be885d1 Mon Sep 17 00:00:00 2001
From: Jason Hu
Date: Mon, 10 Sep 2018 22:52:45 -0700
Subject: [PATCH 28/97] Fix a typo in date which hide configuration page
(#6253)
---
source/_docs/configuration.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index c863c66382e..2e57862c030 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -2,7 +2,7 @@
layout: page
title: "Configuring Home Assistant"
description: "Configuring Home Assistant."
-date: 2018-09-18 16:15
+date: 2018-09-08 16:15
sidebar: true
comments: false
sharing: true
From 80b34251e007892b88d93a689f2273078fdcf421 Mon Sep 17 00:00:00 2001
From: bastshoes
Date: Tue, 11 Sep 2018 20:39:05 +0300
Subject: [PATCH 29/97] Adding warning regarding legacy_api password
Currently there is an issue #16441. Leagacy_api password not loaded if api_password located in package.
---
source/_docs/authentication/providers.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 728ecb58b2d..6d3aa2360b0 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -30,6 +30,10 @@ To make the transition from API password to authentication system easier, we've
Home Assistant automatically configures the standard auth providers and you **do not** need to specify `auth_providers` in your `configuration.yaml` file. Specifying `auth_providers` in your configuration will disable all auth providers that are not listed and can reduce your security or create difficulties logging in.
+
+Legacy API password auth provider wouldn't be loaded if your API password located in separete package. This is because Home Assistant process `auth_provider` during the `core` section loading, it is earlier then do the `packages` processing.
+
+
Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block:
```yaml
From fe9cef1124da903c728a4e9e206f1b129bb9fa5f Mon Sep 17 00:00:00 2001
From: themanieldaniel
Date: Tue, 11 Sep 2018 13:47:43 -0400
Subject: [PATCH 30/97] Update konnected.markdown
---
source/_components/konnected.markdown | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown
index 16612ca4731..7b4c5117312 100644
--- a/source/_components/konnected.markdown
+++ b/source/_components/konnected.markdown
@@ -32,13 +32,13 @@ A `konnected` section must be present in the `configuration.yaml` file that spec
konnected:
access_token: REPLACE_ME_WITH_A_RANDOM_STRING
devices:
- - id: 8bcd53
+ - id: 438a388bcd53
binary_sensors:
- zone: 1
type: door
switches:
- zone: out
- - id: 438a38
+ - id: 8bcd53438a38
binary_sensors:
- pin: 2
type: door
@@ -62,7 +62,7 @@ devices:
type: list
keys:
id:
- description: The MAC address of the WiFi module with colons/punctuation removed. You can either use the full 12-character MAC address or only the last 6 characters. This is visible in the device's WiFi SSID and hostname.
+ description: The MAC address of the WiFi module with colons/punctuation removed. You musst use the full 12-character MAC address with lower case letters. This is visible in the device's WiFi SSID and hostname.
required: true
type: string
binary_sensors:
From 24b06fc0463dd979fc09d45512f72c8bd83946da Mon Sep 17 00:00:00 2001
From: Will Marler
Date: Tue, 11 Sep 2018 11:49:38 -0600
Subject: [PATCH 31/97] Fix a link in lets_encrypt howto re: password (#6256)
The link points to the "basic information" config page but should point to the HTTP component config page. There is no password to be set in basic information.
---
source/_docs/ecosystem/certificates/lets_encrypt.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
index d8c82f80d42..0b62214a923 100644
--- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown
+++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown
@@ -14,7 +14,7 @@ If you are using Hass.io or Hassbian, do not use this guide. Instead, use the [D
-Before exposing your Home Assistant instance to the outside world it is ESSENTIAL that you have set a password following the advice on the [http](/docs/configuration/basic/) page.
+Before exposing your Home Assistant instance to the outside world it is ESSENTIAL that you have set a password following the advice on the [http](/components/http/) page.
From ed265c8e761c8f20835b9fa8f6eefed82804a175 Mon Sep 17 00:00:00 2001
From: Tobias Nordahl Kristensen
Date: Wed, 12 Sep 2018 12:47:27 +0200
Subject: [PATCH 32/97] Note about data logging. (#6251)
* Note about data logging.
Also mentioned here:
https://community.home-assistant.io/t/motion-detection-with-android-ip-camera-solved/35846/7?u=exetico
* Convert it to a note
---
source/_components/android_ip_webcam.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_components/android_ip_webcam.markdown b/source/_components/android_ip_webcam.markdown
index c616b33a35e..b11ac13595e 100644
--- a/source/_components/android_ip_webcam.markdown
+++ b/source/_components/android_ip_webcam.markdown
@@ -37,6 +37,10 @@ Configuration variables:
- **switches** array (*Optional*): Conditions to display settings in the frontend. See the list of supported settings.
- **motion_sensor** (*Optional*): Activate motion sensor if auto_discovery is disabled.
+
+ You need to enable logging in the Android app (`Data logging` > `Enable data logging`), if you wish to see the sensor states in Home Assistant. The sensor states stays as `unknown`, until it's enabled.
+
+
### {% linkable_title Supported features %}
Sensors:
From f6aed097e8293018000eb340bea585d0e14c6fcc Mon Sep 17 00:00:00 2001
From: Jonathan Herlin
Date: Wed, 12 Sep 2018 12:49:27 +0200
Subject: [PATCH 33/97] Spelling mistake? (#6260)
"Setting" seems more correct to me than "Seeting"
---
source/_components/tradfri.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown
index 5eb66113cba..8c16a9a17e2 100644
--- a/source/_components/tradfri.markdown
+++ b/source/_components/tradfri.markdown
@@ -55,7 +55,7 @@ After updating the firmware of your Trådfri gateway it might be necessary to re
Please make sure you have `autoconf` installed (`$ sudo apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1 h) on slow devices.
-### {% linkable_title Seeting the `api_key` %}
+### {% linkable_title Setting the `api_key` %}
Do not use the `api_key` variable in `configuration.yaml`. The API key is only needed once at initial setup and will be stored.
From a16cedbe4f6fd7eb1064bf0764e5f9e7feaab1ce Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Wed, 12 Sep 2018 16:05:51 +0200
Subject: [PATCH 34/97] Update mqtt.markdown
---
source/_components/mqtt.markdown | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/source/_components/mqtt.markdown b/source/_components/mqtt.markdown
index 275cac866ed..c9d73254459 100644
--- a/source/_components/mqtt.markdown
+++ b/source/_components/mqtt.markdown
@@ -11,19 +11,14 @@ logo: mqtt.png
ha_category: Hub
featured: true
ha_release: pre 0.7
-ha_iot_class: depends
+ha_iot_class: local push
---
MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport.
Your first step to get MQTT and Home Assistant working is to choose a [broker](/docs/mqtt/broker).
-To integrate MQTT into Home Assistant, add the following section to your `configuration.yaml` file. Keep in mind that the minimal setup will run with [an embedded MQTT broker](/docs/mqtt/broker#embedded-broker):
-
-```yaml
-# Example configuration.yaml entry
-mqtt:
-```
+To integrate MQTT into Home Assistant, add the following section to your `configuration.yaml` file.
To connect to your [own MQTT broker](/docs/mqtt/broker#run-your-own):
@@ -33,9 +28,15 @@ mqtt:
broker: IP_ADDRESS_BROKER
```
-
-The minimal setup uses the embedded MQTT broker, however a separate broker is advised for more stability.
-
+You can also use the [embedded MQTT broker](/docs/mqtt/broker#embedded-broker). A separate broker is advised for more stability.
+
+```yaml
+# Example configuration.yaml entry
+mqtt:
+ password: hello
+```
+
+This allows you to connect to the MQTT broker with user `homeassistant` and password `hello`.
## {% linkable_title Additional features %}
From c47cb41b46f2763708ad0a7484ee4cb9f08fd282 Mon Sep 17 00:00:00 2001
From: Niklas Janz
Date: Thu, 13 Sep 2018 15:08:51 +0200
Subject: [PATCH 35/97] Added the usage of PostgreSQL unix sockets (#6272)
* Added db_url for PostreSQL via unix socket
* Added informations about sockets + instructions for pg_hba.conf
---
source/_components/recorder.markdown | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown
index eb859687fdd..7ffae0d13d8 100644
--- a/source/_components/recorder.markdown
+++ b/source/_components/recorder.markdown
@@ -154,12 +154,19 @@ If the `recorder` component is activated then some components support `restore_s
| MySQL (pymysql) | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8` |
| PostgreSQL | `postgresql://SERVER_IP/DB_NAME` |
| PostgreSQL | `postgresql://scott:tiger@SERVER_IP/DB_NAME` |
+| PostgreSQL (Socket) | `postgresql://@/DB_NAME` |
| MS SQL Server | `mssql+pymssql://user:pass@SERVER_IP/DB_NAME?charset=utf8` |
If you use MariaDB 10 you need to add port 3307 to the SERVER_IP, e.g., `mysql://user:password@SERVER_IP:3307/DB_NAME?charset=utf8`.
+
+Unix Socket connections always bring performance advantages over TCP, if the database on the same host as the `recorder` instance (i.e. `localhost`).
+
+
+If you want to use Unix Sockets for PostgreSQL you need to modify the `pg_hba.conf`. See [PostgreSQL](#postgresql)
+
### {% linkable_title Database startup %}
If you are running a database server instance on the same server as Home Assistant then you must ensure that this service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the service file.
@@ -225,6 +232,22 @@ $ sudo apt-get install postgresql-server-dev-X.Y
$ pip3 install psycopg2
```
+For using Unix Sockets, add the following line to your [`pg_hba.conf`](https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html):
+
+`local DB_NAME USER_NAME peer`
+
+Where `DB_NAME` is the name of your database and `USER_NAME` is the name of the user running the Home Assistant instance (see [securing your installation](/docs/configuration/securing/)).
+
+Reload the PostgreSQL configuration after that:
+```bash
+$ sudo -i -u postgres psql -c "SELECT pg_reload_conf();"
+ pg_reload_conf
+----------------
+ t
+(1 row)
+```
+A service restart will work as well.
+
### {% linkable_title MS SQL Server %}
For MS SQL Server you may have to install a few dependencies:
From 2aba5d54d0934582becccf60f9b3d1a19667821c Mon Sep 17 00:00:00 2001
From: Bram Kragten
Date: Thu, 13 Sep 2018 15:10:40 +0200
Subject: [PATCH 36/97] Update editor.markdown (#6271)
---
source/_docs/scripts/editor.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/scripts/editor.markdown b/source/_docs/scripts/editor.markdown
index a69ae296923..9ccc8252d42 100644
--- a/source/_docs/scripts/editor.markdown
+++ b/source/_docs/scripts/editor.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /docs/script/editor/
---
-In Home Assistant 0.52 we introduced the first version of our automation editor. If you just created a new configuration with Home Assistant then you're all set! Go to the UI and enjoy.
+In Home Assistant 0.52 we introduced the first version of our script editor. If you just created a new configuration with Home Assistant then you're all set! Go to the UI and enjoy.
From db797550e065d40abeb774e35a14b63ec2c806e2 Mon Sep 17 00:00:00 2001
From: rpitera
Date: Thu, 13 Sep 2018 09:11:32 -0400
Subject: [PATCH 37/97] Clarify conditional card docs (#6266)
Clarify that conditions are processed as an 'and' condition, not an 'and/or' when using multiple entity conditions.
---
source/_lovelace/conditional.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_lovelace/conditional.markdown b/source/_lovelace/conditional.markdown
index 4bf17345887..d2f7f881315 100644
--- a/source/_lovelace/conditional.markdown
+++ b/source/_lovelace/conditional.markdown
@@ -42,6 +42,8 @@ card:
*one is required (`state` or `state_not`)
+Note: Conditions with more than one entity are treated as an 'and' condition. This means that for the card to show, *all* entities must meet the state requirements set.
+
### {% linkable_title Examples %}
```yaml
From fb2fdbb539af313584ab188d57b1efb242a9a9c2 Mon Sep 17 00:00:00 2001
From: Vikram Gorla
Date: Fri, 14 Sep 2018 12:00:07 +0200
Subject: [PATCH 38/97] Update link to Supported Languages (#6277)
Looking at the implementation, it uses Google Translate as backend and not Google Cloud Speech engine, updating the link where supported languages can be seen.
---
source/_components/tts.google.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/tts.google.markdown b/source/_components/tts.google.markdown
index 3056b50d94e..75160c41c21 100644
--- a/source/_components/tts.google.markdown
+++ b/source/_components/tts.google.markdown
@@ -25,7 +25,7 @@ tts:
Configuration variables:
- **language** (*Optional*): The language to use. Defaults to `en`.
- - [Complete list of supported languages](https://cloud.google.com/speech-to-text/docs/languages).
+ - [Complete list of supported languages (Languages where "Talk" feature is enabled in Google Translate)](https://translate.google.com/intl/en_ALL/about/languages/), use 2 digit language code which you can find at the end of url when you click on Language name.
A full configuration sample:
From aefac32409ca38ba0cf0b221d099496bb2802c8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ab=C3=ADlio=20Costa?=
Date: Sat, 15 Sep 2018 09:52:33 +0100
Subject: [PATCH 39/97] Add note on yeelight music mode (#6283)
Music mode makes the light always available. This causes HA to try to turn it on/off which may delay other operations, since yeelight will take a while to respond.
---
source/_components/light.yeelight.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/source/_components/light.yeelight.markdown b/source/_components/light.yeelight.markdown
index c446d5950f7..a5b9547d243 100644
--- a/source/_components/light.yeelight.markdown
+++ b/source/_components/light.yeelight.markdown
@@ -43,6 +43,7 @@ Configuration variables:
#### {% linkable_title Music mode %}
Per default the bulb limits the amount of requests per minute to 60, a limitation which can be bypassed by enabling the music mode. In music mode the bulb is commanded to connect back to a socket provided by the component and it tries to keep the connection open, which may not be wanted in all use-cases.
+**Also note that bulbs in music mode will not update their state to "unavailable" if they are disconnected, which can cause delays in Home Assistant**.
### {% linkable_title Initial setup %}
From 905676ba691680a1d6555f8ad8f66c84ebc02081 Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sat, 15 Sep 2018 13:32:40 +0100
Subject: [PATCH 40/97] Spelling/grammar tweaks
---
source/_docs/authentication/providers.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 6d3aa2360b0..de5e223b015 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -31,7 +31,7 @@ Home Assistant automatically configures the standard auth providers and you **do
-Legacy API password auth provider wouldn't be loaded if your API password located in separete package. This is because Home Assistant process `auth_provider` during the `core` section loading, it is earlier then do the `packages` processing.
+The legacy API password auth provider won't be loaded if your API password is located in a package. This is because Home Assistant processes the `auth_provider` during the `core` section loading, which is earlier than the `packages` processing.
Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block:
From d9c05fcb9e8f13ce2e8fd75d7cdd6c73238c98ae Mon Sep 17 00:00:00 2001
From: Ron Schaeffer
Date: Sat, 15 Sep 2018 21:04:18 +0100
Subject: [PATCH 41/97] Update device_tracker.snmp.markdown (#6289)
---
source/_components/device_tracker.snmp.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/device_tracker.snmp.markdown b/source/_components/device_tracker.snmp.markdown
index faea7253981..1131fb1e1d2 100644
--- a/source/_components/device_tracker.snmp.markdown
+++ b/source/_components/device_tracker.snmp.markdown
@@ -13,7 +13,7 @@ ha_release: 0.7.5
---
-A lot WiFi access points and WiFi routers support the Simple Network Management Protocol (SNMP). This is a standardized method for monitoring/manageing network connected devices. SNMP uses a tree-like hierarchy where each node is an object. Many of these objects contain (live) lists of instances and metrics, like network interfaces, disks, and WiFi registrations.
+A lot of WiFi access points and WiFi routers support the Simple Network Management Protocol (SNMP). This is a standardized method for monitoring/manageing network connected devices. SNMP uses a tree-like hierarchy where each node is an object. Many of these objects contain (live) lists of instances and metrics, like network interfaces, disks, and WiFi registrations.
This device tracker needs SNMP to be enabled on the router. It could be that you need to install the SNMP support manually.
From 8d7caee37cd785ca2574119c859d6c1763abccac Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sat, 15 Sep 2018 21:04:43 +0100
Subject: [PATCH 42/97] Making the titles linkable (#6286)
Making the titles linkable
---
source/hassio/commandline.markdown | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/source/hassio/commandline.markdown b/source/hassio/commandline.markdown
index a37177f832f..858bfda8fdf 100644
--- a/source/hassio/commandline.markdown
+++ b/source/hassio/commandline.markdown
@@ -16,7 +16,7 @@ Hass.io upgrade process from the SSH command line
On the SSH command line, you can use the `hassio` command to retrieve logs, check the details of connected hardware, and more.
-Home Assistant:
+## {% linkable_title Home Assistant %}
```bash
$ hassio homeassistant info
@@ -28,7 +28,7 @@ $ hassio homeassistant stop
$ hassio homeassistant update
```
-Supervisor:
+## {% linkable_title Supervisor %}
```bash
$ hassio supervisor info
@@ -37,7 +37,7 @@ $ hassio supervisor reload
$ hassio supervisor update
```
-Host:
+## {% linkable_title Host %}
```bash
$ hassio host reboot
@@ -45,13 +45,15 @@ $ hassio host shutdown
$ hassio host update
```
-Hardware:
+## {% linkable_title Hardware %}
```bash
$ hassio hardware info
$ hassio hardware audio
```
+## {% linkable_title Usage examples %}
+
To update Home Assistant to a specific version, use the command:
```bash
hassio homeassistant update --options version=x.y.z
From e46d4fbd6b92db152581a447170291fa6fbb33be Mon Sep 17 00:00:00 2001
From: aisbergde
Date: Sat, 15 Sep 2018 22:05:19 +0200
Subject: [PATCH 43/97] Update discovery.markdown (#6285)
---
source/_components/discovery.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/discovery.markdown b/source/_components/discovery.markdown
index 1edebdc702b..5ab929d212e 100644
--- a/source/_components/discovery.markdown
+++ b/source/_components/discovery.markdown
@@ -99,7 +99,7 @@ Valid values for ignore are:
* `tellstick`: Telldus Live
* `wink`: Wink Hub
* `yamaha`: Yamaha media player
- * `yeelight`: Yeelight Sunflower bulb
+ * `yeelight`: Yeelight lamps and bulbs (not only Yeelight Sunflower bulb)
* `xiaomi_gw`: Xiaomi Aqara gateway
Valid values for enable are:
From be1223e91e3ed45b3e8a35d231a4e559b60620f4 Mon Sep 17 00:00:00 2001
From: Jason Hu
Date: Sat, 15 Sep 2018 14:33:32 -0700
Subject: [PATCH 44/97] Add issue link
---
source/_docs/authentication/providers.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index de5e223b015..8da14db4aaa 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -31,7 +31,7 @@ Home Assistant automatically configures the standard auth providers and you **do
-The legacy API password auth provider won't be loaded if your API password is located in a package. This is because Home Assistant processes the `auth_provider` during the `core` section loading, which is earlier than the `packages` processing.
+[Issue 16441](https://github.com/home-assistant/home-assistant/issues/16441): the legacy API password auth provider won't be automatically configured if your API password is located in a package. This is because Home Assistant processes the `auth_provider` during the `core` section loading, which is earlier than the `packages` processing.
Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block:
From 024731bba9d712d6429daaf487aabc5209a5ae30 Mon Sep 17 00:00:00 2001
From: Marat Levit
Date: Sun, 16 Sep 2018 17:30:04 +1000
Subject: [PATCH 45/97] Fixed MariaDB example (#6291)
MariaDB example had 'db_url' in the incorrect location under 'queries'.
---
source/_components/sensor.sql.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/sensor.sql.markdown b/source/_components/sensor.sql.markdown
index 201861f2620..248b3caa8c0 100644
--- a/source/_components/sensor.sql.markdown
+++ b/source/_components/sensor.sql.markdown
@@ -132,9 +132,9 @@ SELECT * FROM states WHERE entity_id='binary_sensor.xyz789' GROUP BY state ORDER
```yaml
sensor:
- platform: sql
+ db_url: mysql://user:password@localhost/hass
queries:
- name: DB size
- db_url: mysql://user:password@localhost/hass
query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="hass" GROUP BY table_schema;'
column: 'value'
unit_of_measurement: kB
From 23c3bcd6de852754b5bd5996a08e18cd772a128f Mon Sep 17 00:00:00 2001
From: DubhAd
Date: Sun, 16 Sep 2018 15:24:03 +0100
Subject: [PATCH 46/97] Typo fix
---
source/_components/konnected.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/konnected.markdown b/source/_components/konnected.markdown
index 7b4c5117312..7caad925d3b 100644
--- a/source/_components/konnected.markdown
+++ b/source/_components/konnected.markdown
@@ -62,7 +62,7 @@ devices:
type: list
keys:
id:
- description: The MAC address of the WiFi module with colons/punctuation removed. You musst use the full 12-character MAC address with lower case letters. This is visible in the device's WiFi SSID and hostname.
+ description: The MAC address of the WiFi module with colons/punctuation removed. You must use the full 12-character MAC address with lower case letters. This is visible in the device's WiFi SSID and hostname.
required: true
type: string
binary_sensors:
From c80fafcdc0d073d56c283b52aa859781654f8dfe Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sun, 16 Sep 2018 21:30:03 +0200
Subject: [PATCH 47/97] Update blog
---
source/_posts/2018-09-15-release-78.markdown | 61 ++++++++++++++++++++
1 file changed, 61 insertions(+)
diff --git a/source/_posts/2018-09-15-release-78.markdown b/source/_posts/2018-09-15-release-78.markdown
index b595c05b9a8..80659a88e5d 100644
--- a/source/_posts/2018-09-15-release-78.markdown
+++ b/source/_posts/2018-09-15-release-78.markdown
@@ -44,6 +44,24 @@ Experiencing issues introduced by this release? Please report them in our [issue
- Added Twitch v5 support to the twitch platform ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
- Update radiotherm ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
+## {% linkable_title Beta Fixes %}
+
+- Replace api_password in Camera.Push ([@dgomes] - [#16339]) ([camera.push docs]) (beta fix)
+- Fail fetch auth providers if onboarding required ([@balloob] - [#16454]) ([auth docs]) (beta fix)
+- Fix insteon Hub v1 support ([@teharris1] - [#16472]) ([insteon docs]) (beta fix)
+- bugfix - incorrect camera type and missing sensors when multiple netatmo cameras ([@vikramgorla] - [#16490]) ([netatmo docs]) (beta fix)
+- Fix arlo intilization when no base station available ([@zellux] - [#16529]) ([arlo docs]) (beta fix)
+- Long-lived access token ([@awarecan] - [#16453]) ([auth docs]) (beta fix)
+- Fix typo ([@balloob] - [#16556]) (beta fix)
+- Fix invalid state ([@balloob] - [#16558]) (beta fix)
+- Add websocket commands for refresh tokens ([@balloob] - [#16559]) ([auth docs]) (beta fix)
+- Return if refresh token is current used one in WS API ([@awarecan] - [#16575]) ([auth docs]) ([websocket_api docs]) (beta fix)
+- Track refresh token last usage information ([@awarecan] - [#16408]) ([auth docs]) (beta fix)
+- Increasing python-websockets' version number ([@zoe1337] - [#16578]) ([media_player.webostv docs]) (beta fix)
+- Add retry limit for chromecast connection ([@awarecan] - [#16471]) ([media_player.cast docs]) (beta fix)
+- Fix broken bluetooth tracker ([@awarecan] - [#16589]) ([device_tracker docs]) (beta fix)
+- Rewrite bluetooth le ([@pvizeli] - [#16592]) ([device_tracker docs]) (beta fix)
+
## {% linkable_title All changes %}
- Add 'moon_phase' to Dark Sky sensor ([@fabaff] - [#16179]) ([sensor.darksky docs])
@@ -143,6 +161,22 @@ Experiencing issues introduced by this release? Please report them in our [issue
- Add a base_url configuration setting to tts. ([@lddubeau] - [#16478]) ([tts docs])
- Upgrade youtube_dl to 2018.09.10 ([@fabaff] - [#16534]) ([media_extractor docs])
- Upgrade keyring to 15.0.0 ([@fabaff] - [#16536])
+- Updates documentation repo URL in PR template ([@frenck] - [#16537])
+- Replace api_password in Camera.Push ([@dgomes] - [#16339]) ([camera.push docs]) (beta fix)
+- Fail fetch auth providers if onboarding required ([@balloob] - [#16454]) ([auth docs]) (beta fix)
+- Fix insteon Hub v1 support ([@teharris1] - [#16472]) ([insteon docs]) (beta fix)
+- bugfix - incorrect camera type and missing sensors when multiple netatmo cameras ([@vikramgorla] - [#16490]) ([netatmo docs]) (beta fix)
+- Fix arlo intilization when no base station available ([@zellux] - [#16529]) ([arlo docs]) (beta fix)
+- Long-lived access token ([@awarecan] - [#16453]) ([auth docs]) (beta fix)
+- Fix typo ([@balloob] - [#16556]) (beta fix)
+- Fix invalid state ([@balloob] - [#16558]) (beta fix)
+- Add websocket commands for refresh tokens ([@balloob] - [#16559]) ([auth docs]) (beta fix)
+- Return if refresh token is current used one in WS API ([@awarecan] - [#16575]) ([auth docs]) ([websocket_api docs]) (beta fix)
+- Track refresh token last usage information ([@awarecan] - [#16408]) ([auth docs]) (beta fix)
+- Increasing python-websockets' version number ([@zoe1337] - [#16578]) ([media_player.webostv docs]) (beta fix)
+- Add retry limit for chromecast connection ([@awarecan] - [#16471]) ([media_player.cast docs]) (beta fix)
+- Fix broken bluetooth tracker ([@awarecan] - [#16589]) ([device_tracker docs]) (beta fix)
+- Rewrite bluetooth le ([@pvizeli] - [#16592]) ([device_tracker docs]) (beta fix)
[#14753]: https://github.com/home-assistant/home-assistant/pull/14753
[#14754]: https://github.com/home-assistant/home-assistant/pull/14754
@@ -196,6 +230,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[#16323]: https://github.com/home-assistant/home-assistant/pull/16323
[#16327]: https://github.com/home-assistant/home-assistant/pull/16327
[#16337]: https://github.com/home-assistant/home-assistant/pull/16337
+[#16339]: https://github.com/home-assistant/home-assistant/pull/16339
[#16340]: https://github.com/home-assistant/home-assistant/pull/16340
[#16344]: https://github.com/home-assistant/home-assistant/pull/16344
[#16346]: https://github.com/home-assistant/home-assistant/pull/16346
@@ -219,28 +254,43 @@ Experiencing issues introduced by this release? Please report them in our [issue
[#16397]: https://github.com/home-assistant/home-assistant/pull/16397
[#16403]: https://github.com/home-assistant/home-assistant/pull/16403
[#16404]: https://github.com/home-assistant/home-assistant/pull/16404
+[#16408]: https://github.com/home-assistant/home-assistant/pull/16408
[#16415]: https://github.com/home-assistant/home-assistant/pull/16415
[#16419]: https://github.com/home-assistant/home-assistant/pull/16419
[#16428]: https://github.com/home-assistant/home-assistant/pull/16428
[#16429]: https://github.com/home-assistant/home-assistant/pull/16429
[#16450]: https://github.com/home-assistant/home-assistant/pull/16450
+[#16453]: https://github.com/home-assistant/home-assistant/pull/16453
+[#16454]: https://github.com/home-assistant/home-assistant/pull/16454
[#16455]: https://github.com/home-assistant/home-assistant/pull/16455
[#16459]: https://github.com/home-assistant/home-assistant/pull/16459
[#16460]: https://github.com/home-assistant/home-assistant/pull/16460
[#16463]: https://github.com/home-assistant/home-assistant/pull/16463
[#16465]: https://github.com/home-assistant/home-assistant/pull/16465
[#16470]: https://github.com/home-assistant/home-assistant/pull/16470
+[#16471]: https://github.com/home-assistant/home-assistant/pull/16471
+[#16472]: https://github.com/home-assistant/home-assistant/pull/16472
[#16477]: https://github.com/home-assistant/home-assistant/pull/16477
[#16478]: https://github.com/home-assistant/home-assistant/pull/16478
[#16486]: https://github.com/home-assistant/home-assistant/pull/16486
+[#16490]: https://github.com/home-assistant/home-assistant/pull/16490
[#16494]: https://github.com/home-assistant/home-assistant/pull/16494
[#16495]: https://github.com/home-assistant/home-assistant/pull/16495
[#16501]: https://github.com/home-assistant/home-assistant/pull/16501
[#16502]: https://github.com/home-assistant/home-assistant/pull/16502
[#16507]: https://github.com/home-assistant/home-assistant/pull/16507
[#16515]: https://github.com/home-assistant/home-assistant/pull/16515
+[#16529]: https://github.com/home-assistant/home-assistant/pull/16529
[#16534]: https://github.com/home-assistant/home-assistant/pull/16534
[#16536]: https://github.com/home-assistant/home-assistant/pull/16536
+[#16537]: https://github.com/home-assistant/home-assistant/pull/16537
+[#16556]: https://github.com/home-assistant/home-assistant/pull/16556
+[#16558]: https://github.com/home-assistant/home-assistant/pull/16558
+[#16559]: https://github.com/home-assistant/home-assistant/pull/16559
+[#16575]: https://github.com/home-assistant/home-assistant/pull/16575
+[#16578]: https://github.com/home-assistant/home-assistant/pull/16578
+[#16589]: https://github.com/home-assistant/home-assistant/pull/16589
+[#16592]: https://github.com/home-assistant/home-assistant/pull/16592
[@9R]: https://github.com/9R
[@ASMfreaK]: https://github.com/ASMfreaK
[@Cereal2nd]: https://github.com/Cereal2nd
@@ -269,6 +319,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@flo-wer]: https://github.com/flo-wer
+[@frenck]: https://github.com/frenck
[@fucm]: https://github.com/fucm
[@grea09]: https://github.com/grea09
[@htotoo]: https://github.com/htotoo
@@ -283,6 +334,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[@phil65]: https://github.com/phil65
[@pnbruckner]: https://github.com/pnbruckner
[@pszafer]: https://github.com/pszafer
+[@pvizeli]: https://github.com/pvizeli
[@rcloran]: https://github.com/rcloran
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rytilahti]: https://github.com/rytilahti
@@ -296,9 +348,14 @@ Experiencing issues introduced by this release? Please report them in our [issue
[@thomaslian]: https://github.com/thomaslian
[@tschmidty69]: https://github.com/tschmidty69
[@tsvi]: https://github.com/tsvi
+[@vikramgorla]: https://github.com/vikramgorla
[@vrih]: https://github.com/vrih
+[@zellux]: https://github.com/zellux
+[@zoe1337]: https://github.com/zoe1337
[alarm_control_panel.yale_smart_alarm docs]: /components/alarm_control_panel.yale_smart_alarm/
+[arlo docs]: /components/arlo/
[asterisk_mbox docs]: /components/asterisk_mbox/
+[auth docs]: /components/auth/
[automation docs]: /components/automation/
[automation.event docs]: /docs/automation/trigger/#event-trigger
[automation.homeassistant docs]: /docs/automation/trigger/#home-assistant-trigger
@@ -310,6 +367,7 @@ Experiencing issues introduced by this release? Please report them in our [issue
[binary_sensor.openuv docs]: /components/binary_sensor.openuv/
[camera docs]: /components/camera/
[camera.proxy docs]: /components/camera.proxy/
+[camera.push docs]: /components/camera.push/
[climate.generic_thermostat docs]: /components/climate.generic_thermostat/
[climate.nest docs]: /components/climate.nest/
[climate.opentherm_gw docs]: /components/climate.opentherm_gw/
@@ -338,8 +396,10 @@ Experiencing issues introduced by this release? Please report them in our [issue
[media_player.onkyo docs]: /components/media_player.onkyo/
[media_player.songpal docs]: /components/media_player.songpal/
[media_player.sonos docs]: /components/media_player.sonos/
+[media_player.webostv docs]: /components/media_player.webostv/
[media_player.yamaha docs]: /components/media_player.yamaha/
[mqtt docs]: /components/mqtt/
+[netatmo docs]: /components/netatmo/
[notify docs]: /components/notify/
[openuv docs]: /components/openuv/
[rfxtrx docs]: /components/rfxtrx/
@@ -389,5 +449,6 @@ Experiencing issues introduced by this release? Please report them in our [issue
[vacuum docs]: /components/vacuum/
[vacuum.xiaomi_miio docs]: /components/vacuum.xiaomi_miio/
[velbus docs]: /components/velbus/
+[websocket_api docs]: /components/websocket_api/
[zha docs]: /components/zha/
[zoneminder docs]: /components/zoneminder/
From 54063a66415611ac6e80c0b1464d498c719cc8ce Mon Sep 17 00:00:00 2001
From: Diogo Gomes
Date: Tue, 11 Sep 2018 10:30:09 +0100
Subject: [PATCH 48/97] Adds token parameter to Camera.Push (#6130)
* Adds token parameter to Camera.Push
* update require
---
source/_components/camera.push.markdown | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/source/_components/camera.push.markdown b/source/_components/camera.push.markdown
index c70dee014c0..be639978032 100644
--- a/source/_components/camera.push.markdown
+++ b/source/_components/camera.push.markdown
@@ -25,11 +25,9 @@ The `push` camera can as an example be used with [motionEye](https://github.com/
In motionEye, under **File Storage -> Run A Command** type in:
```bash
-curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera
+curl -X POST -F "image=@%f" http://my.hass.server.com:8123/api/camera_push/camera.push_camera?token=12345678
```
-Please take note that you might need to add `-H "x-ha-access: YOUR_PASSWORD"` if you have API authentication enabled.
-
Optionally configure motionEye to save only motion triggered images by going into **Still Images -> Capture Mode** and setting **Motion Triggered**. Tune your preferences under **Motion Detection**.
In this setup, you can configure the push camera to continuously replay the last motion triggered event using a configuration such as:
@@ -40,6 +38,7 @@ camera:
name: MotionEye Outdoor
buffer: 3
timeout: 5
+ token: 12345678
```
## {% linkable_title Configuration %}
@@ -51,6 +50,7 @@ To enable this camera in your installation, add the following to your `configura
camera:
- platform: push
name: My Push Camera
+ token: 12345678
```
{% configuration %}
@@ -69,6 +69,10 @@ timeout:
required: false
default: 5 seconds
type: time
+token:
+ description: User provided token acting as access control, should be a large string (more then 8 chars). Required if you can't use HA new auth system (0.77).
+ required: false
+ type: string
field:
description: HTTP POST field containing the image file
required: false
From 5973770fa0db1eae1e03251c6e61fcac89b20bf6 Mon Sep 17 00:00:00 2001
From: Tom Harris
Date: Mon, 10 Sep 2018 13:23:36 -0400
Subject: [PATCH 49/97] Support for Insteon Hub Version 1 (#6211)
* Support for Insteon Hub Version 1
* Spelling and gramar fixes
* :pencil2: Tweaks
---
.gitignore | 1 +
source/_components/insteon.markdown | 98 +++++++++++++++++------------
2 files changed, 60 insertions(+), 39 deletions(-)
diff --git a/.gitignore b/.gitignore
index f02128325f5..933ece07209 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@ source/.jekyll-metadata
/.vs/slnx.sqlite-journal
/.vs/VSWorkspaceState.json
.vscode
+*.suo
diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown
index e2518a09784..7cb8e635ec7 100644
--- a/source/_components/insteon.markdown
+++ b/source/_components/insteon.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Insteon"
-description: "Instructions on how to setup an Insteon Modem (PLM or Hub) locally within Home Assistant."
+description: "Instructions on how to set up an Insteon Modem (PLM or Hub) locally within Home Assistant."
date: 2018-08-20 16:00
sidebar: true
comments: false
@@ -18,19 +18,20 @@ linked INSTEON devices to be used within Home Assistant as binary sensors,
lights, fans, sensors and switches. Device support is provided by the
underlying [insteonplm] package. It is known to work with the [2413U] USB and
[2412S] RS242 flavors of PLM and the [2448A7] USB stick. It has also been
-tested to work with the [2245] Hub.
+tested to work with the [2242] and [2245] Hubs.
[insteonplm]: https://github.com/nugget/python-insteonplm
[2413U]: https://www.insteon.com/powerlinc-modem-usb
[2412S]: https://www.insteon.com/powerlinc-modem-serial
[2448A7]: https://www.smarthome.com/insteon-2448a7-portable-usb-adapter.html
[2245]: https://www.insteon.com/insteon-hub/
+[2242]: https://www.insteon.com/support-knowledgebase/2014/9/26/insteon-hub-owners-manual
### {% linkable_title INSTEON Modem configuration %}
-To setup a Powerline Modem (PLM) device such as the [2413U], use the following
-configuration:
+To set up an INSTEON Powerline Modem (PLM) device such as the [2413U], use the
+following configuration:
```yaml
# PLM configuration variables
@@ -38,15 +39,26 @@ insteon:
port: SERIAL_PORT
```
-To setup an INSTEON Hub such as the [2245], use the following configuration:
-
+To set up an INSTEON Hub model [2245], use the following configuration:
+
```yaml
-# Hub configuration variables
+# Hub 2245 configuration variables
insteon:
host: HOST
ip_port: IP_PORT
username: USERNAME
password: PASSWORD
+ hub_version: 2
+```
+
+To set up an INSTEON Hub model [2242], use the following configuration:
+
+```yaml
+# Hub 2242 configuration variables
+insteon:
+ host: HOST
+ ip_port: IP_PORT
+ hub_version: 1
```
Addtional configuration items are available:
@@ -71,14 +83,23 @@ insteon:
```
Configuration variables:
- **port** (*Required for PLM setup*): The serial or USB port for your device,
- e.g., `/dev/ttyUSB0`
-- **host** (*Required for Hub setup*): The host name or IP address of the Hub
-- **ip_port** (*Optional for Hub setup*): The IP port number of the Hub.
- (default value is 25105)
-- **username** (*Required for Hub setup*): The username to login to the local
- Hub
-- **password** (*Required for Hub setup*): The password to login to the local
- Hub
+ e.g., `/dev/ttyUSB0` or `COM3`
+- **host** (*Required for Hub setup*): The host name or IP address of the Hub.
+- **ip_port** (*Optional for Hub setup*): The IP port number of the Hub. For
+ Hub model [2245] (i.e. Hub version 2) the default port is 25105. For the Hub
+ model [2242] (i.e. Hub version 1) the default port is 9761. Use the Insteon
+ app to find the port number for your specific Hub.
+- **username** (*Required for Hub version 2 setup*): The username to login in
+ to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup.
+ You can find your Hub username on the bottom of the Hub or you can use the
+ Insteon app.
+- **password** (*Required for Hub version 2 setup*): The password to login in
+ to the local Hub. This is required for Hub [2245] (i.e. Hub version 2) setup.
+ You can find your Hub password on the bottom of the Hub or you can use the
+ Insteon app.
+- **hub_version** (*Required for Hub version 1 setup*): The Hub version number
+ where model [2242] is Hub version 1 and model [2245] is Hub version 2.
+ (Default is 2)
- **device_override** (*Optional*): Override the default device definition
- *ADDRESS* is found on the device itself in the form 1A.2B.3C or 1a2b3c
- *CATEGORY* is found in the back of the device's User Guide in the form of
@@ -92,16 +113,16 @@ Configuration variables:
- *UNITCODE* is the X10 unit code values 1 - 16
- *PLATFORM* is the Home Assistant Platform to associate the device with.
The following platforms are supported
- - binary_sensor: Used for on/off devices or keypad buttons that are read only.
+ - binary_sensor: Used for on/off devices or keypad buttons that are read-only.
- light: Used for dimmable X10 devices
- switch: Used for On/Off X10 devices
- *STEPS* is the number of dim/bright steps the device supports. Used for
dimmable X10 devices only. Default value is 22.
-- **x10_all_units_off** (*Optional*): Creates an binary_sensor that responds
+- **x10_all_units_off** (*Optional*): Creates a binary_sensor that responds
to the X10 standard command for All Units Off.
-- **x10_all_lights_on** (*Optional*): Creates an binary_sensor that responds
+- **x10_all_lights_on** (*Optional*): Creates a binary_sensor that responds
to the X10 standard command for All Lights On
-- **x10_all_lights_off** (*Optional*): Creates an binary_sensor that responds
+- **x10_all_lights_off** (*Optional*): Creates a binary_sensor that responds
to the X10 standard command for All Lights Off
### {% linkable_title Autodiscovery %}
@@ -111,27 +132,27 @@ per device. Subsequent startups will occur much quicker using cached device
information. If a device is not recognized during autodiscovery, you can add
the device to the **device_override** configuration.
-In order for a device to be discovered it must be linked to the INSTEON Modem
+In order for a device to be discovered, it must be linked to the INSTEON Modem
as either a responder or a controller.
### {% linkable_title Linking Devices to the INSTEON Modem %}
In order for any two Insteon devices to talk with one another, they must be
-linked. For an overview of device linking please read the Insteon page on
+linked. For an overview of device linking, please read the Insteon page on
[understanding linking]. The Insteon Modem module supports All-Linking through
[Development Tools] service calls. The following services are available:
- **insteon.add_all_link**: Puts the Insteon Modem (IM) into All-Linking
-mode. The IM can be set as as controller or a responder. If the IM is a
-controler, put the IM into linking mode then press the SET button on the
-device. If the IM is a responer, press the SET button on the device then
+mode. The IM can be set as a controller or a responder. If the IM is a
+controller, put the IM into linking mode then press the SET button on the
+device. If the IM is a responder, press the SET button on the device then
put the IM into linking mode.
- **insteon.delete_all_link**: Tells the Insteon Modem (IM) to remove an
All-Link record from the All-Link Database of the IM and a device. Once the IM
is set to delete the link, press the SET button on the corresponding device
to complete the process.
- **insteon.load_all_link_database**: Load the All-Link Database for a
-device. WARNING - Loading a device All-Link database may take a LONG time and
+device. WARNING - Loading a device All-Link database may take a LONG time and
may need to be repeated to obtain all records.
- **insteon.print_all_link_database**: Print the All-Link Database for a
device. Requires that the All-Link Database is loaded first.
@@ -174,7 +195,7 @@ devices.
INSTEON devices are added to Home Assistant using the platform(s) that make the
most sense given the model and features of the hardware. The features of the
-INSTEON device are built into the Home Assistant platform. Changing the
+INSTEON devices are built into the Home Assistant platform. Changing the
platform is not recommended. There are two primary uses for the
**device_override** feature.
- Devices that do not respond during autodiscovery. This is common for battery
@@ -185,7 +206,7 @@ platform is not recommended. There are two primary uses for the
### {% linkable_title Example Configuration with Options%}
```yaml
-# Full example of insteon configuration with customizations and overrides
+# Full example of Insteon configuration with customizations and overrides
homeassistant:
customize:
@@ -205,7 +226,7 @@ insteon:
### {% linkable_title What NOT to do %}
-Insteon Modem is a top level component and device discovery will identify
+Insteon Modem is a top-level component and device discovery will identify
the Home Assistant platform the device belongs in. As such, do not
declare Insteon devices in other platforms. For example, this configuration
will NOT work:
@@ -224,19 +245,18 @@ events. The following events are available:
- **insteon.button_on**
- **address**: (required) The Insteon device address in lower case without
dots (e.g. 1a2b3c)
- - **button**: (Optional) The button id in lower case. For an 4 button remote
- the values are a to d. For an 8 button remote the values are a to g. For
- a one button remote this field is not used.
+ - **button**: (Optional) The button id in lower case. For a 4-button remote
+ the values are `a` to `d`. For an 8 button remote the values are `a` to `g`. For
+ a one-button remote this field is not used.
- **insteon.button_of**
- **address**: (required) The Insteon device address in lower case without
dots (e.g. 1a2b3c)
- - **button**: (Optional) The button id in lower case. For an 4 button remote
- the values are a to d. For an 8 button remote the values are a to g. For
- a one button remote this field is not used.
+ - **button**: (Optional) The button id in lower case. For a 4-button remote
+ the values are a to d. For an 8 button remote the values are `a` to `g`. For
+ a one-button remote this field is not used.
-This allows the mini-remotes to be configured as
-
-Here is an example of how to use these events for automations:
+This allows the mini-remotes to be configured as triggers for automations. Here
+is an example of how to use these events for automations:
```
automation:
@@ -276,8 +296,8 @@ The INSTEON Hub has three known issues that are inherent to the design of the
Hub:
1. If you see multiple error messages in the log file stating the Hub
-connection is closed and reconnection has failed, this generally requires
-the Hub to be restarted in order to reconnect.
+connection is closed, and reconnection has failed, this generally requires
+the Hub to be restarted to reconnect.
2. You cannot use both Home Assistant and the INSTEON app. If you do, the
changes made in the app will not appear in Home Assistant. Changes made in
From 9898267aa50b58e17c8568019ba7ca0bc5c2bd7f Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sun, 16 Sep 2018 21:42:05 +0200
Subject: [PATCH 50/97] Add breaking changes
---
source/_posts/2018-09-15-release-78.markdown | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/source/_posts/2018-09-15-release-78.markdown b/source/_posts/2018-09-15-release-78.markdown
index 80659a88e5d..9d4eaefade9 100644
--- a/source/_posts/2018-09-15-release-78.markdown
+++ b/source/_posts/2018-09-15-release-78.markdown
@@ -13,6 +13,12 @@ og_image: /images/blog/2018-09-0.78/social.png
+It's time for a new release and oh boy, what a time to be alive! Today marks our 5th (!!!) anniversary. That's 5 years we've been bringing privacy focused and locally controlled home automation to your home. Happy birthday to us.
+
+This release includes two new features for the auth system. The first one is long-lived access tokens. These are tokens that don't expire and can be used in your scripts instead of API password. Instructions on how to create and use them can be found on your profile.
+
+Also on your profile page is a new list of existing refresh tokens. These are all the tokens that are currently active for your account. If you ran into issues that the remember login dialog didn't show, you might have a lot. Don't worry, you can delete them all.
+
## {% linkable_title New Platforms %}
- Add temperature sensors to the velbus component ([@Cereal2nd] - [#16203]) ([velbus docs]) ([sensor.velbus docs]) (new-platform)
@@ -37,12 +43,13 @@ Experiencing issues introduced by this release? Please report them in our [issue
## {% linkable_title Breaking Changes %}
-- Rewrite of Trafikverket weather - Multiple sensor types supported ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
-- Fix geizhals price parsing ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
-- Update to EnvoyReader 0.2, support for more hardware ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
-- Fix Mi Flora median calculation ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
-- Added Twitch v5 support to the twitch platform ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
-- Update radiotherm ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
+- Trafikverket weather: Instead of having multiple sensor configurations per station, add only one configuration per station and select the type of measurement data to subscribe to using monitored_conditions.
+The configuration value type should no longer be used. ([@endor-force] - [#15935]) ([sensor.trafikverket_weatherstation docs]) (breaking change)
+- Geizhals: config has changed. Remove domain and regex, specify locale instead: `AT`, `EU`, `DE`, `UK` or `PL`. ([@JulianKahnert] - [#15990]) ([sensor.geizhals docs]) (breaking change)
+- Update to EnvoyReader 0.2, support for more hardware. Change keys in monitored_conditions from `7_days_production` and `7_days_consumption` to `seven_days_production` and `seven_days_consumption` ([@jesserizzo] - [#16212]) ([sensor.enphase_envoy docs]) (breaking change)
+- Fix Mi Flora median calculation. Removed `retries` and `timeout` config parameters, they were not used for several months. Replaced `cache_value` config with `scan_interval` to fix a bug in the PR. ([@PaulAnnekov] - [#16085]) ([sensor.miflora docs]) (breaking change)
+- Twitch now requires a `client_id` and so the platform got updated. ([@ioangogo] - [#16428]) ([sensor.twitch docs]) (breaking change)
+- The radiotherm `fan` and `mode` state attributes were updated to reflect the real-time fan and mode states of the thermostat, rather than the overall selected state (automatic, mostly). The mode attributes still contain the selected modes (fan on/auto, heat/cool/auto). ([@cpw] - [#15031]) ([climate.radiotherm docs]) (breaking change)
## {% linkable_title Beta Fixes %}
From 6523eb0e9d193b1984495f05f252343f17b52f8d Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sun, 16 Sep 2018 21:46:03 +0200
Subject: [PATCH 51/97] add component image
---
.../blog/2018-09-release-0.78/components.png | Bin 0 -> 34224 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 source/images/blog/2018-09-release-0.78/components.png
diff --git a/source/images/blog/2018-09-release-0.78/components.png b/source/images/blog/2018-09-release-0.78/components.png
new file mode 100644
index 0000000000000000000000000000000000000000..c02f11a8c8aca57a71277e3d3b8162d55a0c5437
GIT binary patch
literal 34224
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
jrO}to7P$OOo|mXrQF|%XXB?Qc3sD M~8dps9Pfjcq0H63Boyg-6{nMv*kZqLTmfa$9>^
z`PO<6n>Ju`eT=Ab$PJAJ52)983D1WBwnSVaq?UWZA1HvhWIzZTqeO!bdx1Z0^}*0%
z*R~*ji>$e*J5k5D*&0at?2dC1ixHO~mMhs_$iAH>Si-;;pu4AUXUjID=+UjG3#(NU
z?mE`syCIEkgsa>S1hw0daDragCcCpSOG_Dfb=j44s#4HgN#XTZ-%dszdC)YxUz4)}
zfeA(BFM0F=QmvCCty9GJ_Vnf4AQDcD4b1!79HU5+!lvNQMIwa9`pm@*z>uTJk4W>?
zER&~7vSpyil3&U7!@-vbr*7TAh6ArZOM!EhKrKNWS@}FwPm|PgPAkw5s3Jx>Iefl2OL4SKBr
zz%}J`En5N=AC~Cbu<%QSzq|e*>3P-a&&FvsmFrzoNeVk+Nk(w>h*+(Wecb$5wP_+;JJ3B-CzZ(_mIl$gj+fEd(#Y8)MF
z{53|8HmFaOYuBK;VDx{PX?X}X0cNB?@AQWheHT*lfg3)*ZGN!`cQ
z0{FyV8im5`xR0y(-^wpPftI80mLSkjDjI-&%(5M+_XN8=;DL|g%$XD{j14|kpnxkeqw?wqDS
zS>38%(waK|g*Yq>{~fn38#ch|CVF6dZ6wvPcDl9vM;G^_U9aDJK=#6qFNS1-ZH2gJ
mN`Gsk4QWIrwEze|nu7wE@V0(Y5Wo5tO)JT%%hpPph5kPu*d?_9
literal 0
HcmV?d00001
From 3b8e9eb550a0625cb6c71a429379721acf2c7ae0 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Mon, 17 Sep 2018 18:39:44 +0200
Subject: [PATCH 52/97] Update date
---
source/_posts/2018-09-15-release-78.markdown | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/source/_posts/2018-09-15-release-78.markdown b/source/_posts/2018-09-15-release-78.markdown
index 9d4eaefade9..a149ccd1df6 100644
--- a/source/_posts/2018-09-15-release-78.markdown
+++ b/source/_posts/2018-09-15-release-78.markdown
@@ -1,9 +1,9 @@
---
layout: post
-title: "0.78: XXX - Update date"
-description: "XXX"
-date: 2018-09-10 00:01:00
-date_formatted: "September 15, 2018"
+title: "0.78: More auth, Switchmate, Yale Smart Alarm, OpenTherm"
+description: "We're 5! We got some great new auth stuff in this release and support for Switchmate, Yale Smart Alarm and OpenTherm."
+date: 2018-09-17 00:01:00
+date_formatted: "September 17, 2018"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
From 6702f4884366cfde1d45cb7eacd8bdfeaccb901b Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Sat, 15 Sep 2018 14:54:55 +0200
Subject: [PATCH 53/97] Add blog post Thinking Big
---
.../_posts/2018-09-16-thinking-big.markdown | 97 ++++++++++++++++++
.../blog/2018-09-thinking-big/logo-text.svg | 1 +
.../blog/2018-09-thinking-big/social.png | Bin 0 -> 130231 bytes
3 files changed, 98 insertions(+)
create mode 100644 source/_posts/2018-09-16-thinking-big.markdown
create mode 100644 source/images/blog/2018-09-thinking-big/logo-text.svg
create mode 100644 source/images/blog/2018-09-thinking-big/social.png
diff --git a/source/_posts/2018-09-16-thinking-big.markdown b/source/_posts/2018-09-16-thinking-big.markdown
new file mode 100644
index 00000000000..5bd55ef22c4
--- /dev/null
+++ b/source/_posts/2018-09-16-thinking-big.markdown
@@ -0,0 +1,97 @@
+---
+layout: post
+title: "Thinking Big"
+description: "The new authentication system is live! Chat on hangouts! "
+date: 2018-09-15 00:01:00
+date_formatted: "September 16, 2018"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Announcements
+og_image: /images/blog/2018-09-thinking-big/social.png
+---
+
+Tomorrow marks the 5th anniversary of Home Assistant. I want to spend this post not only reflecting on the last 5 years, but also look at what is ahead of us, where we want to go, what we want Home Assistant to be.
+
+Home Assistant wasn’t born out of ideology. I built it because I got some smart lights and wanted to script them. I made that script open source and it went from there. As Home Assistant has grown, so has the world around us, and so have I.
+
+A lot of IoT products have been introduced since Home Assistant started. Sadly, the trend in these products is to send all data to the cloud and manage your house from there. I’ve come to realize that it’s not in the big corporations interest to make a product that focuses on privacy and local control. Our data is too useful for them.
+
+I don’t like this trend. I don’t like seeing more and more of our data being hoarded by a few giant companies, centralizing it in a few systems and using it to influence how we’ll be treated online. It’s our lives, our data, and we should be in control. Not some algorithm optimized for engagement.
+
+And so I want to introduce a goal for Home Assistant. A goal that will shape how the platform will evolve in the upcoming years.
+
+
+## {% linkable_title The goal %}
+
+It’s our goal to create a people focused home automation platform. A platform that is open source and which prioritizes privacy and local control.
+
+ - **Privacy.** All your data will be stored locally.
+ - **Local control.** All logic will run locally. The cloud will only be invoked as needed.
+ - **Open source.** The platform is freely available for users and companies alike. The more people that choose a privacy focused platform over a cloud-based one is a win for us.
+ - **Interoperability.** The platform implements APIs to easily share the data. We want your data to be available to any other application that you wish.
+
+## {% linkable_title What we’re going to build to achieve this goal %}
+
+Many things! However, here is a list of things that I am most enthusiastic about:
+
+ - Remote connection to your instance to control Home Assistant while being away. We will use end-to-end encryption to ensure that the cloud can’t read your data. Powered by Home Assistant Cloud so you just have to log in and it will work. This is the next feature to be worked on for the cloud.
+ - Attribution. We’ve recently added both users and context. Next up is making it visible in the logbook which user was responsible for what change.
+ - Permissions. Using the same user and context features, we will also be able to limit access to entities to users.
+ - Improved device management. We’ve recently added devices to Home Assistant. As a user, you will be able to place devices in areas, see which entities are part of a device and make sure your entities are up to date.
+ - Accessibility. We want to make Hass.io run on as many devices as possible, making it very easy for people to get started with a private home.
+ - Integrate Mozilla's [Web Things API] to make it easier to interact with other home automation platforms. The introduced device management makes it perfectly aligned with the Web Things data model.
+ - Cloud Transparency. We want to make it visible what data is being shared with Amazon Alexa and Google Home clouds.
+ - Better Z-Wave. Our current integration has room for improvement. The owner of Z-Wave has announced a [public SDK](http://zwavepublic.com/), which we should explore to integrate with Home Assistant.
+
+## {% linkable_title What we need to achieve this goal %}
+
+Home Assistant has grown beyond what we can expect from people to handle in their spare time. We want to keep the community friendly, our code quality high, our upgrades smooth, our documentation up to date and our platform secure.
+
+In Ubiquiti we’ve found a great partner with aligned goals. They hired me in April to work full-time on Home Assistant which has already resulted in great progress – including some of the enhancements listed above. But one full-time employee is not enough.
+
+So I have started a new company to raise money and help Home Assistant achieve its goals: [Nabu Casa, Inc][nabu-home]. The company will run Home Assistant Cloud for a $5/month subscription. The revenue will be used to extend the cloud functionality, finance the infrastructure of the Home Assistant website and community, and pay full-time employees to contribute to Home Assistant to reach its goals.
+
+
+
+
+Nabu Casa, Inc. will only be funded by its subscribers. That way it is guaranteed that we will do what is best for our users, the ones that provide the money. We will not raise any money from investors. Big money tends to care more about making more money than humans and privacy. We need to stay in control to ensure our goals are met.
+
+If you have been a user of Home Assistant Cloud for the last 9 months, we want to thank you for being part of our open beta. All members of the open beta will be automatically enrolled in the free trial and will be able to use Home Assistant Cloud for one more month till October 17, no changes in Home Assistant necessary. If you haven’t entered any payment information by the end of the trial, you will lose access to Home Assistant Cloud.
+
+More information:
+
+ - [Nabu Casa, Inc homepage][nabu-home]
+ - [Manage your Home Assistant Cloud account][nabu-account]
+
+## {% linkable_title FAQ %}
+
+### {% linkable_title Do I have to pay to use Home Assistant and Hass.io? %}
+
+No. Home Assistant is open source and free to install and this will not change. Only the cloud service will be part of a paid subscription.
+
+### {% linkable_title Will Home Assistant and Hass.io remain open source? %}
+
+Yes. Nabu Casa will only be responsible for Home Assistant Cloud and it will contribute resources to help Home Assistant achieve its goals and pay for its infrastructure.
+
+### {% linkable_title Why not take donations? %}
+
+Relying on donations makes budgeting for employees impossible without exposing them and their families to the risk of not getting a paycheck at the end of the month.
+
+### {% linkable_title Is Home Assistant Cloud open source? %}
+
+The majority of Home Assistant Cloud is open source. The Alexa skill source code is [here](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/alexa/smart_home.py) (with manual setup instructions [here](https://github.com/mike-grant/haaska/)) and the Google Assistant source code is [here](https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/google_assistant/smart_home.py) (with manual setup instructions [here](https://www.home-assistant.io/components/google_assistant/)). Our account page and relayer are not open source.
+
+### {% linkable_title Will you offer a lifetime plan for a one time fee? %}
+
+No. A lifetime plan to a cloud service is a pyramid scheme. It means new subscribers pay for the costs of the lifetime customers.
+
+### {% linkable_title I think the price is too high for what I get %}
+
+New features will be added in the future without a price increase. The next feature we’re planning to release is encrypted remote access to your instance.
+
+The subscription fee does not only cover the cost of running Home Assistant Cloud. The revenue will also be used to pay for the infrastructure of running Home Assistant and the community forums.
+
+[nabu-home]: https://www.nabucasa.com
+[nabu-account]: https://account.nabucasa.com
+[Web Things API]: https://iot.mozilla.org/wot/
diff --git a/source/images/blog/2018-09-thinking-big/logo-text.svg b/source/images/blog/2018-09-thinking-big/logo-text.svg
new file mode 100644
index 00000000000..784ed048c85
--- /dev/null
+++ b/source/images/blog/2018-09-thinking-big/logo-text.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/source/images/blog/2018-09-thinking-big/social.png b/source/images/blog/2018-09-thinking-big/social.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e0a5032ead7ee02df0ac643e2398e7d4c9f6617
GIT binary patch
literal 130231
zcmeEuWmH|uvM%nf!QDN$ySux)yIXK~clY2d91<*8aCdiy;F1S>@B8jKdH4Q*KMrFu
zShKsTyQ^kZ&9AGA6`>#}4iAG30|W#FFDW6S1OxZ=o{^Xj
zhLDhu$H~NuOG!lRANKb>?419R
z>Rmnt4?_nACVEDO|B1=P((J#N_itPuJ^w44sfXqN!uHYgH``yz_Niq5s#m
zKk1cBo$YO0KZaMevvlG6{13|?&3|%f{&zng`+xELYvZ2`8vhf+zc&60!^eZ*`b$$9
zB9^wMc7Msj^qG;7hv9$h`jb`I-p1ZZ*}>4*^h0BRvHVNZpVWU%r1{?yu`&PKJpa=3
z4<`@9hdKX?dH?M@f3?0l4*zCMuRNAQ}ae972)Es|)n>A0i|Q20}#vjYS2GNcwcT7!UTXn}aYJ
zD%$uxUO>QIr9JFaKoUX|K^I_+!4+jB?7JRxPc-V!J=Oy5)&W)R?eclf6Ga^-`uD3f
zT?=|~UH+|prf+o8EQ+kwg
zDq!+p*0oDqwttiVeN;xGUB3TEkE~?hgX>Cha{I{t9Em)574i>NN#vJ;r6bL|^f@p7
zse%us|EVhI|0w-GO8<|g|0lfsC%pU-8vhg1|MMdK&x`aw=;c3<@lTNYAISJ0$oT&e
zWSp!yYE3eX%f^Y(X(TGN*=2h!qIsQ~H*f)Lw9dP82idqEdi6~iuwciEFe?N4dvws5
zu<;^XsOhxPYwJ~6%ybMu^~3bc7#UmvXjWdfGLbPKXmLf*4mlmX-_f(wjrg&K_0J
z=+Up5vSd@s;<#^fD+*Y+YOD=uq}TLJ97jgUr$K3T1cAo|Wj{9+qqz?XYNAWJgKOC7q4(P3^bYA9A&0GMzIg
z7C)Lmu&%dgZpUhq;ce6&Y7Qj?p;~~NOFzab8%xKg{V?!Y$=GibyIWPg4|J|}ekxV=
z`g(Sdd-l)Hk}=^+&UXjhPm1(_93q#i0R$}osqUX
zsj@Z4>eNw%0q)ln={{C%CuqjQ9eXI%;^-m71dQ#R$y+z$uDy9}cr-Sx7(l9aPlm&(
zQIFiP1OL1dR-zCJ2Oh|+EYuGA)t=tnX6f?{p1bR!#WpVi?qj-iXgZ5Y!xWD~tWm`X
zTc(T1XunAqFU$6o|MzO@oX6l8`KmG#$lDj}(U1AY)8O$!d1T1HjFC1G0FX<31;
z)K63uo(H999FnqRf~SDGK(Hu)RsAtpdWdU{a%!-bhBx-SWV)zl8`4SJh0t(w<~=IZ
zpxuRe&R~pOktFTIdBu$cYiPPrx|aayY00C9DWv*LpppX{IW4S09EGt-h(mOmSk>Hl
z(`2I!V|z(T*QU%489S?8PgYfXm+3&rKdBA`iSK#sb-fX#7Ew6962F_DmRvo1rD29Z
z9dR6HZEAB8a6CQy3AnB?{6m`%7M!2h_?-l^(@)n4jW;E#q?j-_Yg)hrVL9ClYyb&++-^+Zt~t7IqP!aic?Y?y#d@?b9>
zqXvh(?p)uOV~dWZ-Y}|XZ(iKOJ3`=G1W{mlVv)R9pJ@Kg
zm5|P;sU|~}D)P9L!D5iuT!bP{d&d#`W$O{ElRt7L*kd39DeUKn7Gy0>(Uv~PhR2eu
zZ1!h5iQ`Dqe{w|WLWH@1(^=!pOt9FRTXFRck1@7qI|dxrd9E|`H25_ntWBhgGemJG
zZ3aD(er6q_%vRYHpU6+ug$?N>Ov!H|QDQ|Q)