From 4482a15a6d6323c76b293c8b2195c41a9b34f1c7 Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Thu, 21 Feb 2019 01:12:03 -0800
Subject: [PATCH 01/85] Create remote_rpi_gpio.markdown
Documentation for new platform remote_rpi_gpio
---
remote_rpi_gpio.markdown | 127 +++++++++++++++++++++++++++++++++++++++
1 file changed, 127 insertions(+)
create mode 100644 remote_rpi_gpio.markdown
diff --git a/remote_rpi_gpio.markdown b/remote_rpi_gpio.markdown
new file mode 100644
index 00000000000..1a33e1fdabd
--- /dev/null
+++ b/remote_rpi_gpio.markdown
@@ -0,0 +1,127 @@
+---
+layout: page
+title: "Remote Raspberry Pi GPIO"
+description: "Instructions on how to integrate the GPIO capability of a Remote Raspberry Pi into Home Assistant."
+date: 2019-02-20 19:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: raspberry-pi.png
+ha_category:
+ - DIY
+ - Binary Sensor
+ - Switch
+ha_release:
+ha_iot_class: "Local Push"
+redirect_from:
+ - /components/binary_sensor.remote_rpi_gpio/
+ - /components/switch.remote_rpi_gpio/
+---
+
+The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
+
+## {% linkable_title Binary Sensor %}
+
+The `remote_rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
+
+## {% linkable_title Configuration %}
+
+To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: remote_rpi_gpio
+ ports:
+ 11: PIR Office
+ 12: PIR Bedroom
+```
+
+{% configuration %}
+address:
+ description: IP Address of remote Raspberry Pi
+ required: true
+ type: string
+ports:
+ description: List of used ports.
+ required: true
+ type: map
+ keys:
+ "port: name":
+ description: The port numbers (BCM mode pin numbers) and corresponding names.
+ required: true
+ type: string
+invert_logic:
+ description: If `true`, inverts the output logic
+ required: false
+ type: boolean
+ default: "`false` (ACTIVE HIGH)"
+pull_mode:
+ description: >
+ Type of internal pull resistor to use.
+ Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor.
+ Pull-Up defaults to active LOW and Pull-down defaults to active HIGH. This can be adjusted with invert_logic
+ required: false
+ type: string
+ default: "`UP`"
+{% endconfiguration %}
+
+For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
+
+## {% linkable_title Switch %}
+
+The `remote_rpi_gpio` switch platform allows you to control the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
+
+## {% linkable_title Configuration %}
+
+To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: remote_rpi_gpio
+ address: 192.168.0.123
+ ports:
+ 11: Fan Office
+ 12: Light Desk
+```
+
+{% configuration %}
+address:
+ description: IP Address of remote Raspberry Pi
+ required: true
+ type: string
+ports:
+ description: Array of used ports.
+ required: true
+ type: list
+ keys:
+ port:
+ description: Port numbers and corresponding names (GPIO #).
+ required: true
+ type: [integer, string]
+invert_logic:
+ description: If true, inverts the output logic to ACTIVE LOW.
+ required: false
+ default: false
+ type: boolean
+{% endconfiguration %}
+
+For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
+
+
+Note that a pin managed by HASS is expected to be exclusive to HASS.
+
+
+A common question is what does Port refer to, this number is the actual GPIO #, not the pin #.
+For example, if you have a relay connected to pin 11 its GPIO # is 17.
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: remote_rpi_gpio
+ address: 192.168.0.123
+ ports:
+ 17: Speaker Relay
+```
From 45f595764e571e4bfc5a9491d60525e3a5527cf7 Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 15:21:53 +1100
Subject: [PATCH 02/85] Create sensor.solax
---
source/_components/sensor.solax | 71 +++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 source/_components/sensor.solax
diff --git a/source/_components/sensor.solax b/source/_components/sensor.solax
new file mode 100644
index 00000000000..1bccb720cf0
--- /dev/null
+++ b/source/_components/sensor.solax
@@ -0,0 +1,71 @@
+# ha-solax
+---
+layout: page
+title: "Solax Sensor"
+description: "Instructions on how to integrate Solax sensor within Home Assistant."
+date: 2019-03-31 14:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: solax-logo.png
+ha_category: Sensor
+ha_release: 0.91
+ha_iot_class: Local Polling
+---
+
+The `solax` platform uses the [ha-solax](https://github.com/squishykid/ha-solax) API to allow you to get details from your Solax solar power setup and integrate these in your Home Assistant installation.
+
+## {% linkable_title Configuration %}
+
+To use the Solax sensors in your installation, add the following to your configuration.yaml file:
+
+{% raw %}
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: solax
+ ip_address: IP_ADDRESS
+```
+{% endraw %}
+{% configuration %}
+### CONFIGURATION VARIABLES
+ip_address:
+ description: The IP address of your Solax system.
+ required: true
+ type: string
+{% endconfiguration %}
+
+
+### {% linkable_title Full configuration sample %}
+
+{% raw %}
+A full configuration entry would look like the sample below.
+
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: solax
+ ip_address: 192.168.0.3
+```
+{% endraw %}
+
+If you would like to convert the values from multiple panels or view the total power the house is using, you can use the [template platform](/components/sensor.template/).
+
+{% raw %}
+```yaml
+# Example configuration.yaml entry for template platform
+sensors:
+- platform: template
+ sensors:
+ total_pv_power:
+ friendly_name: "Total PV Power"
+ unit_of_measurement: 'W'
+ value_template: "{{ (states('sensor.pv1_power') | float) + (states('sensor.pv2_power') | float) }}"
+ load_power:
+ friendly_name: "Load Power"
+ unit_of_measurement: 'W'
+ value_template: "{{ (states('sensor.power_now') | float) - (states('sensor.exported_power') | float) }}"
+```
+{% endraw %}
From 7c1ba702c3c4c41b546d9ffacc960edfba58c308 Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 15:36:32 +1100
Subject: [PATCH 03/85] Update sensor.solax
remove all caps line - not needed with {% configuration %} markdown
---
source/_components/sensor.solax | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/sensor.solax b/source/_components/sensor.solax
index 1bccb720cf0..9547c7e04c7 100644
--- a/source/_components/sensor.solax
+++ b/source/_components/sensor.solax
@@ -29,7 +29,7 @@ sensor:
```
{% endraw %}
{% configuration %}
-### CONFIGURATION VARIABLES
+
ip_address:
description: The IP address of your Solax system.
required: true
From 6fd9cca290061c359f9b7fe986dad9b801bad65e Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 15:47:04 +1100
Subject: [PATCH 04/85] Update and rename sensor.solax to sensor.solax.markdown
---
source/_components/{sensor.solax => sensor.solax.markdown} | 1 -
1 file changed, 1 deletion(-)
rename source/_components/{sensor.solax => sensor.solax.markdown} (99%)
diff --git a/source/_components/sensor.solax b/source/_components/sensor.solax.markdown
similarity index 99%
rename from source/_components/sensor.solax
rename to source/_components/sensor.solax.markdown
index 9547c7e04c7..80a19306400 100644
--- a/source/_components/sensor.solax
+++ b/source/_components/sensor.solax.markdown
@@ -1,4 +1,3 @@
-# ha-solax
---
layout: page
title: "Solax Sensor"
From 238db9f3310e17d926a8c08122e0671b51976727 Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 16:00:29 +1100
Subject: [PATCH 05/85] Add files via upload
---
source/images/supported_brands/solax-logo.png | Bin 0 -> 23738 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 source/images/supported_brands/solax-logo.png
diff --git a/source/images/supported_brands/solax-logo.png b/source/images/supported_brands/solax-logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9dce20ba7b23afdfad3b522d4c190bee47dff6a
GIT binary patch
literal 23738
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
Date: Sun, 31 Mar 2019 16:32:44 +1100
Subject: [PATCH 06/85] Fix wording
---
source/_components/sensor.solax.markdown | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 80a19306400..44f8fbd51e6 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -2,7 +2,7 @@
layout: page
title: "Solax Sensor"
description: "Instructions on how to integrate Solax sensor within Home Assistant."
-date: 2019-03-31 14:00
+date: 2019-03-31 04:20
sidebar: true
comments: false
sharing: true
@@ -13,7 +13,7 @@ ha_release: 0.91
ha_iot_class: Local Polling
---
-The `solax` platform uses the [ha-solax](https://github.com/squishykid/ha-solax) API to allow you to get details from your Solax solar power setup and integrate these in your Home Assistant installation.
+The `solax` component connects home-assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST api. This component retrieves information such as photo voltaic power productionm, battery levels and power, and how much power is being fed back into the grid.
## {% linkable_title Configuration %}
From f48b60396a2289e13f424f9b5e1fe5797e84f7dd Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 16:38:48 +1100
Subject: [PATCH 07/85] typo
---
source/_components/sensor.solax.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 44f8fbd51e6..546d9e13a2e 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -13,7 +13,7 @@ ha_release: 0.91
ha_iot_class: Local Polling
---
-The `solax` component connects home-assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST api. This component retrieves information such as photo voltaic power productionm, battery levels and power, and how much power is being fed back into the grid.
+The `solax` component connects home-assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST api. This component retrieves information such as photo voltaic power production, battery levels and power, and how much power is being fed back into the grid.
## {% linkable_title Configuration %}
From 0d2a3730ca2080c6d05ec86fe46d46b7d9214253 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:53:19 +1100
Subject: [PATCH 08/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 546d9e13a2e..1d41cf5746d 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -13,7 +13,7 @@ ha_release: 0.91
ha_iot_class: Local Polling
---
-The `solax` component connects home-assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST api. This component retrieves information such as photo voltaic power production, battery levels and power, and how much power is being fed back into the grid.
+The `solax` component connects home-assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST API. This component retrieves information such as photovoltaic power production, battery levels and power, and how much power is being fed back into the grid.
## {% linkable_title Configuration %}
From 507770053bb7f62bf71607c0ef92548160e41251 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:53:29 +1100
Subject: [PATCH 09/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 1d41cf5746d..b21f1c015c6 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -19,7 +19,6 @@ The `solax` component connects home-assistant to Solax solar power inverters. So
To use the Solax sensors in your installation, add the following to your configuration.yaml file:
-{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
From 8843b2c415aef828595ec427e15b715563df5cdd Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:53:39 +1100
Subject: [PATCH 10/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index b21f1c015c6..815647708c8 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -25,7 +25,6 @@ sensor:
- platform: solax
ip_address: IP_ADDRESS
```
-{% endraw %}
{% configuration %}
ip_address:
From 485c49580028278c66c46902bd73b357975ecee8 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:54:05 +1100
Subject: [PATCH 11/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 815647708c8..9a64cfc803a 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -46,7 +46,6 @@ sensor:
- platform: solax
ip_address: 192.168.0.3
```
-{% endraw %}
If you would like to convert the values from multiple panels or view the total power the house is using, you can use the [template platform](/components/sensor.template/).
From ff4b641ff94bb16708a3f30bbb6962b0f00b22f6 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:54:10 +1100
Subject: [PATCH 12/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 9a64cfc803a..1ef2d17e5d0 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -36,7 +36,6 @@ ip_address:
### {% linkable_title Full configuration sample %}
-{% raw %}
A full configuration entry would look like the sample below.
From d2d20e55bcf54d3e2cbbf3dd7f6ad6b39794a062 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 18:54:17 +1100
Subject: [PATCH 13/85] Update source/_components/sensor.solax.markdown
Co-Authored-By: CountParadox
---
source/_components/sensor.solax.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/sensor.solax.markdown
index 1ef2d17e5d0..9c3e8d61bd4 100644
--- a/source/_components/sensor.solax.markdown
+++ b/source/_components/sensor.solax.markdown
@@ -26,7 +26,6 @@ sensor:
ip_address: IP_ADDRESS
```
{% configuration %}
-
ip_address:
description: The IP address of your Solax system.
required: true
From a3b094d49945decfc5fe8b25befc58b98bd13abf Mon Sep 17 00:00:00 2001
From: Lewys Martin
Date: Sun, 31 Mar 2019 18:55:16 +1100
Subject: [PATCH 14/85] Rename sensor.solax.markdown to solax.markdown
---
source/_components/{sensor.solax.markdown => solax.markdown} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename source/_components/{sensor.solax.markdown => solax.markdown} (100%)
diff --git a/source/_components/sensor.solax.markdown b/source/_components/solax.markdown
similarity index 100%
rename from source/_components/sensor.solax.markdown
rename to source/_components/solax.markdown
From 33e0d136da5629aff90ba17b4846c84b944d393f Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Sun, 31 Mar 2019 10:11:07 +0200
Subject: [PATCH 15/85] :pencil2: Tweak
---
source/_components/solax.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/solax.markdown b/source/_components/solax.markdown
index 9c3e8d61bd4..18c0d21321f 100644
--- a/source/_components/solax.markdown
+++ b/source/_components/solax.markdown
@@ -25,6 +25,7 @@ sensor:
- platform: solax
ip_address: IP_ADDRESS
```
+
{% configuration %}
ip_address:
description: The IP address of your Solax system.
@@ -37,7 +38,6 @@ ip_address:
A full configuration entry would look like the sample below.
-
```yaml
# Example configuration.yaml entry
sensor:
From bc0b298775b1c17cd92e596816ef3a23f324dcaa Mon Sep 17 00:00:00 2001
From: "Jardi A.M. Jordan" <1088732+jardiamj@users.noreply.github.com>
Date: Mon, 15 Apr 2019 13:53:42 -0700
Subject: [PATCH 16/85] Added documentation for MCP23017 component: binary
sensor and switch platforms.
---
source/_components/mcp23017.markdown | 128 +++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 source/_components/mcp23017.markdown
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
new file mode 100644
index 00000000000..af488631203
--- /dev/null
+++ b/source/_components/mcp23017.markdown
@@ -0,0 +1,128 @@
+---
+layout: page
+title: "MCP23017 I2C GPIO expander"
+description: "Instructions on how to integrate the MCP23017 GPIO pin expander with I2C interface into Home Assistant."
+date: 2019-04-14 07:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: raspberry-pi.png
+ha_category:
+ - DIY
+ - Binary Sensor
+ - Switch
+ha_release: 0.92
+ha_iot_class: Local Polling
+redirect_from:
+ - /components/binary_sensor.mcp23017/
+ - /components/switch.mcp23017/
+---
+
+The `mcp23017` component is the base for all related mcp23017 platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
+
+## {% linkable_title Binary Sensor %}
+
+The `mcp23017` binary sensor platform allows you to read sensor values from the I/O pins of your [MCP23017 I2C I/O expander](https://www.adafruit.com/product/732).
+
+The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-15 to port B (B1-B8).
+
+## {% linkable_title Configuration %}
+
+To use the I/O pins of an mcp23017 connected to and I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: mcp23017
+ i2c_address: 0x20
+ pins:
+ 0: PIR Office
+ 1: PIR Bedroom
+```
+
+{% configuration %}
+i2c_address:
+ description: i2c address of MCP23017 chip.
+ required: false
+ type: integer
+ default: "`0x20`"
+pins:
+ description: List of used pins.
+ required: true
+ type: map
+ keys:
+ "pin: name":
+ description: The pin numbers (from 0 to 15) and corresponding names.
+ required: true
+ type: [integer, string]
+scan_interval:
+ description: Interval to scan for sensor state changes in seconds.
+ required: false
+ type: integer
+ default: 15
+invert_logic:
+ description: If `true`, inverts the output logic to ACTIVE LOW.
+ required: false
+ type: boolean
+ default: "`false` (ACTIVE HIGH)"
+pull_mode:
+ description: >
+ Type of internal pull resistor to use.
+ Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor.
+ required: false
+ type: string
+ default: "`UP`"
+{% endconfiguration %}
+
+NOTE: MCP23017 only has internal pull-up resistors, if you want to use pull-down you will have to wire your own pull-down resistors.
+
+For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
+
+## {% linkable_title Switch %}
+
+The `mcp23017` switch platform allows you to write to the I/O pins of your [MCP23017 I2C I/O expander](https://www.adafruit.com/product/732).
+
+The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-15 to port B (B1-B8).
+
+## {% linkable_title Configuration %}
+
+To use the I/O pins of an mcp23017 connected to and I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: mcp23017
+ i2c_address: 0x20
+ ports:
+ 11: Fan Office
+ 12: Light Desk
+```
+
+{% configuration %}
+i2c_address:
+ description: i2c address of MCP23017 chip.
+ required: false
+ type: integer
+ default: "`0x20`"
+ports:
+ description: Array of used pins.
+ required: true
+ type: list
+ keys:
+ port:
+ description: The pin numbers (from 0 to 15) and corresponding names.
+ required: true
+ type: [integer, string]
+invert_logic:
+ description: If true, inverts the output logic to ACTIVE LOW.
+ required: false
+ default: false
+ type: boolean
+{% endconfiguration %}
+
+For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
+
+
+Note that a pin managed by HASS is expected to be exclusive to HASS.
+
From 66ae490ec220cfbd3b0fea74d36db3127948d03b Mon Sep 17 00:00:00 2001
From: "Jardi A.M. Jordan" <1088732+jardiamj@users.noreply.github.com>
Date: Mon, 15 Apr 2019 15:50:01 -0700
Subject: [PATCH 17/85] Removed redirect_from: label.
---
source/_components/mcp23017.markdown | 3 ---
1 file changed, 3 deletions(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index af488631203..8cc30cfefbe 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -14,9 +14,6 @@ ha_category:
- Switch
ha_release: 0.92
ha_iot_class: Local Polling
-redirect_from:
- - /components/binary_sensor.mcp23017/
- - /components/switch.mcp23017/
---
The `mcp23017` component is the base for all related mcp23017 platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
From 17bd0f86bc79487ab35e5b3323771310646bc03e Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Sun, 28 Apr 2019 13:10:51 -0700
Subject: [PATCH 18/85] Create remote_rpi_gpio.markdown
---
source/_components/remote_rpi_gpio.markdown | 127 ++++++++++++++++++++
1 file changed, 127 insertions(+)
create mode 100644 source/_components/remote_rpi_gpio.markdown
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
new file mode 100644
index 00000000000..1a33e1fdabd
--- /dev/null
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -0,0 +1,127 @@
+---
+layout: page
+title: "Remote Raspberry Pi GPIO"
+description: "Instructions on how to integrate the GPIO capability of a Remote Raspberry Pi into Home Assistant."
+date: 2019-02-20 19:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: raspberry-pi.png
+ha_category:
+ - DIY
+ - Binary Sensor
+ - Switch
+ha_release:
+ha_iot_class: "Local Push"
+redirect_from:
+ - /components/binary_sensor.remote_rpi_gpio/
+ - /components/switch.remote_rpi_gpio/
+---
+
+The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
+
+## {% linkable_title Binary Sensor %}
+
+The `remote_rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
+
+## {% linkable_title Configuration %}
+
+To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: remote_rpi_gpio
+ ports:
+ 11: PIR Office
+ 12: PIR Bedroom
+```
+
+{% configuration %}
+address:
+ description: IP Address of remote Raspberry Pi
+ required: true
+ type: string
+ports:
+ description: List of used ports.
+ required: true
+ type: map
+ keys:
+ "port: name":
+ description: The port numbers (BCM mode pin numbers) and corresponding names.
+ required: true
+ type: string
+invert_logic:
+ description: If `true`, inverts the output logic
+ required: false
+ type: boolean
+ default: "`false` (ACTIVE HIGH)"
+pull_mode:
+ description: >
+ Type of internal pull resistor to use.
+ Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor.
+ Pull-Up defaults to active LOW and Pull-down defaults to active HIGH. This can be adjusted with invert_logic
+ required: false
+ type: string
+ default: "`UP`"
+{% endconfiguration %}
+
+For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
+
+## {% linkable_title Switch %}
+
+The `remote_rpi_gpio` switch platform allows you to control the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
+
+## {% linkable_title Configuration %}
+
+To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: remote_rpi_gpio
+ address: 192.168.0.123
+ ports:
+ 11: Fan Office
+ 12: Light Desk
+```
+
+{% configuration %}
+address:
+ description: IP Address of remote Raspberry Pi
+ required: true
+ type: string
+ports:
+ description: Array of used ports.
+ required: true
+ type: list
+ keys:
+ port:
+ description: Port numbers and corresponding names (GPIO #).
+ required: true
+ type: [integer, string]
+invert_logic:
+ description: If true, inverts the output logic to ACTIVE LOW.
+ required: false
+ default: false
+ type: boolean
+{% endconfiguration %}
+
+For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
+
+
+Note that a pin managed by HASS is expected to be exclusive to HASS.
+
+
+A common question is what does Port refer to, this number is the actual GPIO #, not the pin #.
+For example, if you have a relay connected to pin 11 its GPIO # is 17.
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: remote_rpi_gpio
+ address: 192.168.0.123
+ ports:
+ 17: Speaker Relay
+```
From b5ffa4681ccddeeeec38df05234533d810e2d071 Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Sun, 28 Apr 2019 13:11:05 -0700
Subject: [PATCH 19/85] Delete remote_rpi_gpio.markdown
---
remote_rpi_gpio.markdown | 127 ---------------------------------------
1 file changed, 127 deletions(-)
delete mode 100644 remote_rpi_gpio.markdown
diff --git a/remote_rpi_gpio.markdown b/remote_rpi_gpio.markdown
deleted file mode 100644
index 1a33e1fdabd..00000000000
--- a/remote_rpi_gpio.markdown
+++ /dev/null
@@ -1,127 +0,0 @@
----
-layout: page
-title: "Remote Raspberry Pi GPIO"
-description: "Instructions on how to integrate the GPIO capability of a Remote Raspberry Pi into Home Assistant."
-date: 2019-02-20 19:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: raspberry-pi.png
-ha_category:
- - DIY
- - Binary Sensor
- - Switch
-ha_release:
-ha_iot_class: "Local Push"
-redirect_from:
- - /components/binary_sensor.remote_rpi_gpio/
- - /components/switch.remote_rpi_gpio/
----
-
-The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
-
-## {% linkable_title Binary Sensor %}
-
-The `remote_rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
-
-## {% linkable_title Configuration %}
-
-To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-binary_sensor:
- - platform: remote_rpi_gpio
- ports:
- 11: PIR Office
- 12: PIR Bedroom
-```
-
-{% configuration %}
-address:
- description: IP Address of remote Raspberry Pi
- required: true
- type: string
-ports:
- description: List of used ports.
- required: true
- type: map
- keys:
- "port: name":
- description: The port numbers (BCM mode pin numbers) and corresponding names.
- required: true
- type: string
-invert_logic:
- description: If `true`, inverts the output logic
- required: false
- type: boolean
- default: "`false` (ACTIVE HIGH)"
-pull_mode:
- description: >
- Type of internal pull resistor to use.
- Options are `UP` - pull-up resistor and `DOWN` - pull-down resistor.
- Pull-Up defaults to active LOW and Pull-down defaults to active HIGH. This can be adjusted with invert_logic
- required: false
- type: string
- default: "`UP`"
-{% endconfiguration %}
-
-For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
-
-## {% linkable_title Switch %}
-
-The `remote_rpi_gpio` switch platform allows you to control the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
-
-## {% linkable_title Configuration %}
-
-To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: remote_rpi_gpio
- address: 192.168.0.123
- ports:
- 11: Fan Office
- 12: Light Desk
-```
-
-{% configuration %}
-address:
- description: IP Address of remote Raspberry Pi
- required: true
- type: string
-ports:
- description: Array of used ports.
- required: true
- type: list
- keys:
- port:
- description: Port numbers and corresponding names (GPIO #).
- required: true
- type: [integer, string]
-invert_logic:
- description: If true, inverts the output logic to ACTIVE LOW.
- required: false
- default: false
- type: boolean
-{% endconfiguration %}
-
-For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
-
-
-Note that a pin managed by HASS is expected to be exclusive to HASS.
-
-
-A common question is what does Port refer to, this number is the actual GPIO #, not the pin #.
-For example, if you have a relay connected to pin 11 its GPIO # is 17.
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: remote_rpi_gpio
- address: 192.168.0.123
- ports:
- 17: Speaker Relay
-```
From 25c026681830e5768ff36c686ec6695ea518f498 Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Sun, 28 Apr 2019 13:15:27 -0700
Subject: [PATCH 20/85] Update remote_rpi_gpio.markdown
---
source/_components/remote_rpi_gpio.markdown | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
index 1a33e1fdabd..e5fe106fe08 100644
--- a/source/_components/remote_rpi_gpio.markdown
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -38,6 +38,18 @@ binary_sensor:
12: PIR Bedroom
```
+or
+
+```yaml
+# Example configuration.yaml entry
+remote_rpi_gpio:
+ host: 10.0.1.9
+ binary_sensors:
+ 6: Pin6
+ switches:
+ 4: Pin4
+```
+
{% configuration %}
address:
description: IP Address of remote Raspberry Pi
From 6c0aaf8a4e4d753f2109c98e2ea971b07c3f9f02 Mon Sep 17 00:00:00 2001
From: Jardi Martinez <1088732+jardiamj@users.noreply.github.com>
Date: Tue, 7 May 2019 16:00:08 -0700
Subject: [PATCH 21/85] Update mcp23017.markdown
---
source/_components/mcp23017.markdown | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index 8cc30cfefbe..b5b9ca0338e 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -91,7 +91,7 @@ To use the I/O pins of an mcp23017 connected to and I2C bus of your Raspberry Pi
switch:
- platform: mcp23017
i2c_address: 0x20
- ports:
+ pins:
11: Fan Office
12: Light Desk
```
@@ -119,7 +119,3 @@ invert_logic:
{% endconfiguration %}
For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
-
-
-Note that a pin managed by HASS is expected to be exclusive to HASS.
-
From ab968ca4fecf4528ce1cacc3551e174a27a21ef5 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Thu, 9 May 2019 09:14:21 +0200
Subject: [PATCH 22/85] :tada: Add Fibaro climate platform (#9417)
---
source/_components/fibaro.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_components/fibaro.markdown b/source/_components/fibaro.markdown
index eb38097daca..ea1384335d5 100644
--- a/source/_components/fibaro.markdown
+++ b/source/_components/fibaro.markdown
@@ -11,6 +11,7 @@ logo: fibaro.png
ha_category:
- Hub
- Binary Sensor
+ - Climate
- Cover
- Light
- Sensor
@@ -33,6 +34,7 @@ There is currently support for the following device types within Home Assistant:
- Binary Sensor
- Cover
+- Climate
- Light
- Sensor
- Scene
From 98a93e56babc4b5f1c4e418809d7a30ff593945e Mon Sep 17 00:00:00 2001
From: Markus Jankowski
Date: Thu, 9 May 2019 10:14:27 +0200
Subject: [PATCH 23/85] Update missing Homematic IP Components (#9413)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Updated missing Homematic IP Components
* Add Presence Sensor – indoor
* :pencil2: Tweak
* Fix spelling
---
source/_components/homematicip_cloud.markdown | 23 +++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/source/_components/homematicip_cloud.markdown b/source/_components/homematicip_cloud.markdown
index 42615eb65b6..4b5cafadb27 100644
--- a/source/_components/homematicip_cloud.markdown
+++ b/source/_components/homematicip_cloud.markdown
@@ -96,7 +96,15 @@ authtoken:
* Smoke sensor and alarm (*HmIP-SWSD*)
* Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
* Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
+ * Presence Sensor – indoor (*HmIP-SPI*)
* Water Sensor (*HmIP-SWD*)
+ * Remote Control - 8 buttons (*HmIP-RC8*) (battery only)
+ * Wall-mount Remote Control - 2-button (*HmIP-WRC2*) (battery only)
+ * Wall-mount Remote Control - 6-button (*HmIP-WRC6*) (battery only)
+ * Key Ring Remote Control - 4 buttons (*HmIP-KRC4*) (battery only)
+ * Key Ring Remote Control - alarm (*HmIP-KRCA*) (battery only)
+ * Alarm Siren (*HmIP-ASIR, -B1*) (battery only)
+ * Remote Control for brand switches – 2-button (*HmIP-BRC2*) (battery only)
* homematicip_cloud.climate
* Climate group (*HmIP-HeatingGroup*)
@@ -116,7 +124,7 @@ authtoken:
* Switch actuator and meter for brand switches (*HmIP-BSM*)
* Dimming actuator for brand switches (*HmIP-BDT*)
* Dimming actuator flush-mount (*HmIP-FDT*)
- * Switch Actuator and Meter – flush-mount (*HmIP-FSM*)
+ * Pluggable Dimmer – trailing edge (*HmIP-PDT*)
* Switch Actuator for brand switches – with signal lamp (*HmIP-BSL*)
* homematicip_cloud.sensor
@@ -128,12 +136,13 @@ authtoken:
* Temperature and Humidity sensor - outdoor (*HmIP-STHO, -A*)
* Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
* Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
+ * Presence Sensor – indoor (*HmIP-SPI*)
* Light Sensor - outdoor (*HmIP-SLO*)
* homematicip_cloud.switch
* Pluggable Switch (*HmIP-PS*)
* Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, -IT, -UK, -PE*)
- * Switch Actuator for brand switches – with signal lamp (*HmIP-BSL*)
+ * Switch Actuator and Meter – flush-mount (*HmIP-FSM, -FSM16*)
* Open Collector Module Receiver - 8x (*HmIP-MOD-OC8*)
* Multi IO Box - 2x (*HmIP-MIOB*)
@@ -141,4 +150,14 @@ authtoken:
* Weather Sensor – basic (*HmIP-SWO-B*)
* Weather Sensor – plus (*HmIP-SWO-PL*)
* Weather Sensor – pro (*HmIP-SWO-PR*)
+
+Additional info:
+Push button devices are only available with a battery sensor. This is due to a limitation of the vendor API (eq3).
+It's not possible to detect a key press event on these devices at the moment.
+
+ * Remote Control - 8 buttons (*HmIP-RC8*)
+ * Wall-mount Remote Control - 2-button (*HmIP-WRC2*)
+ * Wall-mount Remote Control - 6-button (*HmIP-WRC6*)
+ * Key Ring Remote Control - 4 buttons (*HmIP-KRC4*)
+ * Key Ring Remote Control - alarm (*HmIP-KRCA*)
From 2901029d10508d9c2d0cb73d52c6c5d35f4c3dc8 Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Thu, 9 May 2019 22:20:38 -0700
Subject: [PATCH 24/85] Update source/_components/remote_rpi_gpio.markdown
Co-Authored-By: Klaas Schoute
---
source/_components/remote_rpi_gpio.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
index e5fe106fe08..e007f2e2eff 100644
--- a/source/_components/remote_rpi_gpio.markdown
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -13,7 +13,7 @@ ha_category:
- Binary Sensor
- Switch
ha_release:
-ha_iot_class: "Local Push"
+ha_iot_class: Local Push
redirect_from:
- /components/binary_sensor.remote_rpi_gpio/
- /components/switch.remote_rpi_gpio/
From 0f37cbda36f30b71f5b33d04cc84d34bab503436 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Fri, 10 May 2019 11:19:57 +0200
Subject: [PATCH 25/85] :pencil2: Remove redirect_from
---
source/_components/remote_rpi_gpio.markdown | 3 ---
1 file changed, 3 deletions(-)
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
index e007f2e2eff..9cc1eef6b6b 100644
--- a/source/_components/remote_rpi_gpio.markdown
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -14,9 +14,6 @@ ha_category:
- Switch
ha_release:
ha_iot_class: Local Push
-redirect_from:
- - /components/binary_sensor.remote_rpi_gpio/
- - /components/switch.remote_rpi_gpio/
---
The `rpi_gpio` component is the base for all related GPIO platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
From bf4831a1edbb396bad22aae765f4115120cf4693 Mon Sep 17 00:00:00 2001
From: Martin Hjelmare
Date: Sat, 11 May 2019 12:11:22 +0200
Subject: [PATCH 26/85] Update mysensors validation text (#9335)
---
source/_components/mysensors.markdown | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/source/_components/mysensors.markdown b/source/_components/mysensors.markdown
index bd5861b72aa..e8e1c1a0ae7 100644
--- a/source/_components/mysensors.markdown
+++ b/source/_components/mysensors.markdown
@@ -246,7 +246,13 @@ In MySensors version 2.2 the serial API changed from using `I_HEARTBEAT_RESPONSE
Messages sent to or from Home Assistant from or to a MySensors device will be validated according to the MySensors [serial API](https://www.mysensors.org/download/serial_api_20). If a message doesn't pass validation, it will be dropped and not be passed forward either to or from Home Assistant. Make sure you follow the serial API for your version of MySensors when writing your Arduino sketch.
-If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package.
+The log should warn you of messages that failed validation or if a child value is missing that is required for a certain child type. Home Assistant will log failed validations of child values at warning level if e.g. one required value type for a platform has been received, but other required value types are missing.
+
+Message validation was introduced in version 0.52 of Home Assistant.
+
+### {% linkable_title Debug logging %}
+
+If you experience dropped messages or that a device is not added to Home Assistant, please turn on debug logging for the `mysensors` component and the `mysensors` package. This will help you see what is going on. Make sure you use these logging settings to collect a log sample if you report an issue about the `mysensors` integration in our github issue tracker.
```yaml
logger:
default: info
@@ -254,9 +260,6 @@ logger:
homeassistant.components.mysensors: debug
mysensors: debug
```
-The log should inform you of messages that failed validation or if a child value is missing that is required for a certain child type. Note that the log will log all possible combinations of platforms for a child type that failed validation. It is normal to see some platforms fail validation if the child type supports multiple platforms and your sketch doesn't send all corresponding value types. e.g., the `S_BARO` child type supports both `V_PRESSURE` and `V_FORECAST` value types. If you only send a `V_PRESSURE` value, an `S_BARO` entity with `V_PRESSURE` value will be set up for the sensor platform. However, the log will inform of a sensor platform that failed validation due to missing `V_FORECAST` value type for the `S_BARO` child. Home Assistant will log failed validations of child values at warning level if one required value type for a platform has been received, but other required value types are missing. Most failed validations are logged at debug level.
-
-Message validation was introduced in version 0.52 of Home Assistant.
Visit the [library API][MySensors library api] of MySensors for more information.
From edc75ac2b93265474c548900a318d31bf963a480 Mon Sep 17 00:00:00 2001
From: Timmo
Date: Tue, 14 May 2019 10:58:01 +0100
Subject: [PATCH 27/85] Add entity button icon_height docs (#9449)
* :sparkles: Add entity button icon_height docs
Further to https://github.com/home-assistant/home-assistant-polymer/pull/2800#issuecomment-492079894
* :hammer: Expand
---
source/_lovelace/entity-button.markdown | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/source/_lovelace/entity-button.markdown b/source/_lovelace/entity-button.markdown
index 1cd473e21ab..fc5649cb712 100644
--- a/source/_lovelace/entity-button.markdown
+++ b/source/_lovelace/entity-button.markdown
@@ -51,6 +51,11 @@ show_icon:
description: Show icon.
type: boolean
default: "true"
+icon_height:
+ required: false
+ description: Set the height for the icon. This is in pixels which is handled by the config ui. (Advanced users can use other CSS values if they like)
+ type: string
+ default: auto
tap_action:
required: false
description: Action to take on tap
From f2cb7f4e997a00840f2763a593dff40b718a4e39 Mon Sep 17 00:00:00 2001
From: unixko <44964969+unixko@users.noreply.github.com>
Date: Tue, 14 May 2019 17:48:51 +0700
Subject: [PATCH 28/85] add abbreviation for current_temperature_template
(#9400)
---
source/_docs/mqtt/discovery.markdown | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index 3b42c2cf5a3..04dfa8af4fd 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -99,6 +99,7 @@ Supported abbreviations:
'cln_tpl': 'cleaning_template',
'cmd_t': 'command_topic',
'curr_temp_t': 'current_temperature_topic',
+ 'curr_temp_tpl': 'current_temperature_template',
'dev': 'device',
'dev_cla': 'device_class',
'dock_t': 'docked_topic',
@@ -297,7 +298,7 @@ Setting up a climate component (heat only) with abbreviated configuration variab
"temp_stat_t":"homeassistant/climate/livingroom/state",
"temp_stat_tpl":"{{value_json.target_temp}}",
"curr_temp_t":"homeassistant/climate/livingroom/state",
- "current_temperature_template":"{{value_json.current_temp}}",
+ "curr_temp_tpl":"{{value_json.current_temp}}",
"min_temp":"15",
"max_temp":"25",
"temp_step":"0.5",
From db549b7d445e8980d0925f813fb591bdf54d2da3 Mon Sep 17 00:00:00 2001
From: Andre Lengwenus
Date: Tue, 14 May 2019 21:10:30 +0200
Subject: [PATCH 29/85] Add docs for LCN climate platform (#9073)
* Add docs for LCN climate platform
* Shortened hyperlinks
* Fixed ha_category
---
source/_components/lcn.markdown | 93 ++++++++++++++++++++++++++++-----
1 file changed, 79 insertions(+), 14 deletions(-)
diff --git a/source/_components/lcn.markdown b/source/_components/lcn.markdown
index 2df7da4356a..b66e453dc84 100644
--- a/source/_components/lcn.markdown
+++ b/source/_components/lcn.markdown
@@ -11,6 +11,7 @@ logo: lcn.png
ha_category:
- Hub
- Binary Sensor
+ - Climate
- Cover
- Light
- Sensor
@@ -31,6 +32,7 @@ With this setup sending and receiving commands to and from LCN modules is possib
There is currently support for the following device types within Home Assistant:
- [Binary Sensor](#binary-sensor)
+- [Climate](#climate)
- [Cover](#cover)
- [Light](#light)
- [Sensor](#sensor)
@@ -56,6 +58,16 @@ lcn:
address: myhome.s0.m7
source: binsensor1
+ climates:
+ - name: Temperature bedroom
+ address: myhome.s0.m7
+ source: var1
+ setpoint: r1varsetpoint
+ min_temp: 17.
+ max_temp: 30.
+ lockable: true
+ unit_of_measurement: °C
+
covers:
- name: Living room cover
address: myhome.s0.m7
@@ -72,7 +84,7 @@ lcn:
- name: Temperature
address: myhome.s0.m7
source: var3
- unit_of_measuremnt: °C
+ unit_of_measurement: °C
switches:
- name: Sprinkler switch
@@ -128,14 +140,56 @@ binary_sensors:
required: true
type: string
address:
- description: "[Address](/components/lcn#lcn-addresses) of the module/group."
+ description: "[Address](#lcn-addresses) of the module/group."
required: true
type: string
source:
- description: "Sensor source ([BINSENSOR](/components/lcn#ports), [SETPOINT](/components/lcn#variables-and-units), [KEYS](/components/lcn#keys))."
+ description: "Sensor source ([BINSENSOR](#ports), [SETPOINT](#variables-and-units), [KEYS](#keys))."
required: true
type: string
+climates:
+ description: List of your climate devices.
+ required: false
+ type: map
+ keys:
+ name:
+ description: "Name of the climate controller."
+ required: true
+ type: string
+ address:
+ description: "[Address](#lcn-addresses) of the module/group."
+ required: true
+ type: string
+ source:
+ description: "Current temperature source ([VARIABLE](#variables-and-units))."
+ required: true
+ type: string
+ setpoint:
+ description: "Setpoint for target temperature ([VARIABLE](#variables-and-units), [SETPOINT](#variables-and-units))."
+ required: true
+ type: string
+ unit_of_measurement:
+ description: "Measurement unit ([VAR_UNIT](#variables-and-units))."
+ required: false
+ type: string
+ default: 'celsius'
+ min_temp:
+ description: "Minimum target temperature."
+ required: false
+ type: float
+ default: 7.
+ max_temp:
+ description: "Maximum target temperature."
+ required: false
+ type: float
+ default: 35.
+ lockable:
+ description: "Climate control can be locked."
+ required: false
+ type: bool
+ default: false
+
covers:
description: List of your covers.
required: false
@@ -146,11 +200,11 @@ covers:
required: true
type: string
address:
- description: "[Address](/components/lcn#lcn-addresses) of the module/group."
+ description: "[Address](#lcn-addresses) of the module/group."
required: true
type: string
motor:
- description: "Motor port ([MOTOR_PORT](/components/lcn#ports))."
+ description: "Motor port ([MOTOR_PORT](#ports))."
required: true
type: string
@@ -164,11 +218,11 @@ lights:
required: true
type: string
address:
- description: "[Address](/components/lcn#lcn-addresses) of the module/group."
+ description: "[Address](#lcn-addresses) of the module/group."
required: true
type: string
output:
- description: "Light source ([OUTPUT_PORT](/components/lcn#ports), [RELAY_PORT](/components/lcn#ports))."
+ description: "Light source ([OUTPUT_PORT](#ports), [RELAY_PORT](#ports))."
required: true
type: string
dimmable:
@@ -192,15 +246,15 @@ sensors:
required: true
type: string
address:
- description: "[Address](/components/lcn#lcn-addresses) of the module/group."
+ description: "[Address](#lcn-addresses) of the module/group."
required: true
type: string
source:
- description: "Sensor source ([VARIABLE](/components/lcn#variables-and-units), [SETPOINT](/components/lcn#variables-and-units), [THRESHOLD](/components/lcn#variables-and-units), [S0_INPUT](/components/lcn#variables-and-units), [LED_PORT](/components/lcn#ports), [LOGICOP_PORT](/components/lcn#ports))."
+ description: "Sensor source ([VARIABLE](#variables-and-units), [SETPOINT](#variables-and-units), [THRESHOLD](#variables-and-units), [S0_INPUT](#variables-and-units), [LED_PORT](#ports), [LOGICOP_PORT](#ports))."
required: true
type: string
unit_of_measurement:
- description: "Measurement unit ([VAR_UNIT](/components/lcn#variables-and-units))."
+ description: "Measurement unit ([VAR_UNIT](#variables-and-units))."
required: false
type: string
default: 'native'
@@ -215,11 +269,11 @@ switches:
required: true
type: string
address:
- description: "[Address](/components/lcn#lcn-addresses) of the module/group."
+ description: "[Address](#lcn-addresses) of the module/group."
required: true
type: string
output:
- description: "Switch source ([OUTPUT_PORT](/components/lcn#ports), [RELAY_PORT](/components/lcn#ports))."
+ description: "Switch source ([OUTPUT_PORT](#ports), [RELAY_PORT](#ports))."
required: true
type: string
{% endconfiguration %}
@@ -232,7 +286,7 @@ Modules can be arranged in _segments_. Segments can be addressed by their numeri
LCN Modules within the _same_ segment can be grouped by their group id (5..254) or 3 (= target all groups.)
-The LCN component allow the connection to more than one hardware coupler. In this case it has to be specified which hardware coupler should be used for addressing the specified module.
+The LCN component allows the connection to more than one hardware coupler. In this case it has to be specified which hardware coupler should be used for addressing the specified module.
Whenever the address of a module or a group has to be specified, it can be addressed using one of the following syntaxes:
@@ -271,7 +325,7 @@ The platforms and service calls use several predefined constants as parameters.
| LOGICOP_PORT | `logicop1`, `logicop2`, `logicop3`, `logicop4` |
| BINSENSOR_PORT | `binsensor1`, `binsensor2`, `binsensor3`, `binsensor4`, `binsensor5`, `binsensor6`, `binsensor7`, `binsensor8` |
-The [MOTOR_PORT](/components/lcn#ports) values specify which hardware relay configuration will be used:
+The [MOTOR_PORT](#ports) values specify which hardware relay configuration will be used:
| Motor | Relay on/off | Relay up/down |
| :------: | :----------: | :-----------: |
@@ -314,6 +368,17 @@ The `lcn` binary sensor platform allows the monitoring of the following [LCN](ht
The binary sensor can be used in automation scripts or in conjunction with `template` platforms.
+### {% linkable_title Climate %}
+
+The `lcn` climate platform allows the control of the [LCN](http://www.lcn.eu) climate regulators.
+This platform depends on the correct configuration of the module's regulators which has to be done in the LCN-PRO programming software.
+You need to specify at least the variable for the current temperature and a setpoint variable for the target temperature.
+If the control is set lockable, the regulator can be turned on/off.
+
+
+If you intend to leave the regulation to home assistant, you should consider using the [Generic Thermostat](climate.generic_thermostat) in conjuction with [LCN Sensor](#sensor) and [LCN Switch](#switch).
+
+
### {% linkable_title Cover %}
The `lcn` cover platform allows the control of [LCN](http://www.lcn.eu) relays which have been configured as motor controllers.
From 8b21e6fd5c1e83125ac806ba76bb07d330b7f820 Mon Sep 17 00:00:00 2001
From: Baptiste Candellier
Date: Tue, 14 May 2019 23:07:37 +0200
Subject: [PATCH 30/85] Add SmartHab documentation page (#8647)
* Add SmartHab documentation page
* Use proper placeholders for email and password in SmartHab page
Co-Authored-By: outadoc
* Improve phrasing in SmartHab doc
* Apply suggestions from code review
Co-Authored-By: outadoc
* Remove redirect_from in smarthab.markdown
* Move smarthab ha_release to 0.94
* Remove url configuration from smarthab doc
* :pencil2: Tweak
After this I will merge it
---
source/_components/smarthab.markdown | 50 ++++++++++++++++++++
source/images/supported_brands/smarthab.png | Bin 0 -> 2034 bytes
2 files changed, 50 insertions(+)
create mode 100644 source/_components/smarthab.markdown
create mode 100644 source/images/supported_brands/smarthab.png
diff --git a/source/_components/smarthab.markdown b/source/_components/smarthab.markdown
new file mode 100644
index 00000000000..6eac4877e80
--- /dev/null
+++ b/source/_components/smarthab.markdown
@@ -0,0 +1,50 @@
+---
+layout: page
+title: "SmartHab"
+description: "Instructions on how to integrate SmartHab devices into Home Assistant"
+date: 2019-02-13 08:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: smarthab.png
+ha_release: 0.94
+ha_category:
+ - Hub
+ - Cover
+ - Light
+ha_iot_class: Cloud Polling
+---
+
+If your home is fitted with [SmartHab](http://www.smarthab.fr/en/home/)'s
+devices and you have access to their app-based services, you will be able
+to control your lights and shutters with the SmartHab component for Home
+Assistant.
+
+Once you have added a `smarthab` entry to your configuration, your supported
+devices will automatically be discovered and made available on your dashboard.
+
+
+ To prevent being automatically logged out of your SmartHab mobile app, you
+ might want to create a secondary user in the app's settings and grant it
+ access to your home. You can then configure the component using this account's
+ credentials. This is also more secure, as this user should be less priviledged.
+
+
+```yaml
+# Example configuration.yaml entry
+smarthab:
+ email: EMAIL_ADDRESS
+ password: PASSWORD
+```
+
+{% configuration %}
+email:
+ description: The email address of your SmartHab account.
+ required: true
+ type: string
+password:
+ description: The SmartHab account's password.
+ required: true
+ type: string
+{% endconfiguration %}
diff --git a/source/images/supported_brands/smarthab.png b/source/images/supported_brands/smarthab.png
new file mode 100644
index 0000000000000000000000000000000000000000..47db7fbd81072ada3aef9d77c04824474edf7d4d
GIT binary patch
literal 2034
zcmb_ddpMNa8XpPe3`5K`*>b0bk%U|_LgSXmt?85dx80&*Z{wJZjLV5(BvNdoW^DHn
zjiSiiOi8x8kxOnVlS>9uqK)(Uj6{F^4^@VcC5M&otY|1+K#R5X{rxMf|F)tys7shC=c87bRYE~;i`@r<^x1Tc)R
zc{_h&x|~K@NI37wPCQ1xrh4+3M*~ueafWy_Rr2^#Q14QY9>a$feMe2Yy`A5!ZW<$g
z_aTAZug9Ce2tJtAPW5=LWwD
zs)5RucF^74B2}I=FJxWPdN1y4=f-s*OahnEA7YoVu0*LVNn1F5LSOqQhOgLm9Nft9p4iZcsTc
z!N^;Pti#g}^3y*pXan`5r-SsL?=}M1Y$NC8`MbM0`-n?62OH+Rs0xP1EB
zr11E6W_NZ|`1cwq<~7yr6b|_9h%ifUkj=Dzh;@3Am=1lPXj&9rzIF3HHv0Qaif==KO9K+iNF1hKh6}R)T%pQxn
zMSRnZ|Hc&CEUE`)h4!^bzY(!^bUl$BTuAaNo0O}lt+6^QDyiEg}Zxx7yBGJgG0+(LS_4&gACT)B}YYU~UuL
z+yI`{fS7NS>CEu?^ePm<%K7C@I2EB}nSaWORD5J)4ZYRN(MM@f4B+A=Q=<)tqzg%z
zgOmWa{_#Pl*_e~GV%|jjXocLWXZYZwGIavejDll>CBuJYgW7<^s^^#XZDB{HY*94s
zw|A3}KRJHjPKY`;)qz;b40Vq8&<)3^C{W)(>Gho&xvLv#s3hgn)HV{FnWhzX&F2dT2}*L33K#%X5aom?ZkSmW<9boc08`F4Rn6onFwjKG)mZ3zpR|z
z5q4H7-QHiz#>{A5E38!}1X2q`YI35yS!{at
z4Z5<3sKrd4Z(WEcidGw}4KIM7D{ZX|K+An*gSnMXja5I!fTwbYqJx!DwBa(Xo#MXV
zVvotvPLgMO67`cd6x&KG1!>QKg?VDc{Ws$q{daqwQ4(V}c^EI7hl1;A)`+rx(T;da
z!{`!XQZmQoXoz}*a=v#)(}W=}=Y*B4f*IGWBVs|tC28K+AETB#60@{1Vkxbq;-~
z9mI6;=PGSi8qJF`@+!Avv@(y~_>fG&^ikw#0lOOfnmf`_X%-AQ-|qvtfQAx4}B@9aWkmD;K&{pZu;Cr}nTZCw^Nimvlp
z@e|-LSxD!5Goz8z{iKadZ(fMtKJm3VVj^>{&n{XlBMHP%ULAbLfSoE2^jOtgT#V`z
z!vw+6<%eV||1Qyc?XG7Uq{CPOTU`&&3I7@x8=BPr;XKn)#+2kzqA5D|?H&y=+(Y<6
zDz;iYcC!x6bFf~UnLhPA@Bx9-nh8E97f$Vt6$|e**f_s!kCxZED8K)%J^K95jdcGj
W4dhkh4W1!H4zsgz#8+ARCj1*rX1pf=
literal 0
HcmV?d00001
From fe1d48696d49a1d182e667a34463b9877bf7e844 Mon Sep 17 00:00:00 2001
From: Anders Melchiorsen
Date: Wed, 15 May 2019 03:10:19 +0200
Subject: [PATCH 31/85] Move Sonos services to sonos domain (#9380)
---
source/_components/sonos.markdown | 22 +++++++++++-----------
source/_cookbook/sonos_say.markdown | 6 +++---
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown
index 6d72a800ca5..d7b259d8123 100644
--- a/source/_components/sonos.markdown
+++ b/source/_components/sonos.markdown
@@ -24,7 +24,7 @@ If you don't have the discovery component enabled, you can configure the Sonos c
Sonos makes various services available to allow configuring groups. They are currently registered under the media player component.
-### {% linkable_title Service `media_player.sonos_snapshot` %}
+### {% linkable_title Service `sonos.snapshot` %}
Take a snapshot of what is currently playing on one or more speakers. This service, and the following one, are useful if you want to play a doorbell or notification sound and resume playback afterwards. If no `entity_id` is provided, all speakers are snapshotted.
@@ -38,12 +38,12 @@ The queue is not snapshotted and must be left untouched until the restore. Using
| `with_group` | yes | Should we also snapshot the group layout and the state of other speakers in the group.
-### {% linkable_title Service `media_player.sonos_restore` %}
+### {% linkable_title Service `sonos.restore` %}
Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored.
-The playing queue is not snapshotted. Using `media_player.sonos_restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue!
+The playing queue is not snapshotted. Using `sonos.restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue!
@@ -55,24 +55,24 @@ A cloud queue cannot be restarted. This includes queues started from within Spot
| `entity_id` | yes | String or list of `entity_id`s that should have their snapshot restored.
| `with_group` | yes | Should we also restore the group layout and the state of other speakers in the group.
-### {% linkable_title Service `media_player.sonos_join` %}
+### {% linkable_title Service `sonos.join` %}
Group players together under a single coordinator. This will make a new group or join to an existing group.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `master` | no | A single `entity_id` that will become/stay the coordinator speaker.
-| `entity_id` | no | String or list of `entity_id`s to join to the master.
+| `entity_id` | yes | String or list of `entity_id`s to join to the master.
-### {% linkable_title Service `media_player.sonos_unjoin` %}
+### {% linkable_title Service `sonos.unjoin` %}
Remove one or more speakers from their group of speakers. If no `entity_id` is provided, all speakers are unjoined.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s to separate from their coordinator speaker.
+| `entity_id` | yes | String or list of `entity_id`s to separate from their coordinator speaker.
-### {% linkable_title Service `media_player.sonos_set_sleep_timer` %}
+### {% linkable_title Service `sonos.set_sleep_timer` %}
Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down.
@@ -81,7 +81,7 @@ Sets a timer that will turn off a speaker by tapering the volume down to 0 after
| `entity_id` | no | String or list of `entity_id`s that will have their timers set.
| `sleep_time` | no | Integer number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day).
-### {% linkable_title Service `media_player.sonos_clear_sleep_timer` %}
+### {% linkable_title Service `sonos.clear_sleep_timer` %}
Clear the sleep timer on a speaker, if one is set.
@@ -89,7 +89,7 @@ Clear the sleep timer on a speaker, if one is set.
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker.
-### {% linkable_title Service `media_player.sonos_update_alarm` %}
+### {% linkable_title Service `sonos.update_alarm` %}
Update an existing Sonos alarm.
@@ -102,7 +102,7 @@ Update an existing Sonos alarm.
| `enabled` | yes | Boolean for whether or not to enable this alarm.
| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players.
-### {% linkable_title Service `media_player.sonos_set_option` %}
+### {% linkable_title Service `sonos.set_option` %}
Set Sonos speaker options.
diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown
index fd4b04b402f..65c58fb6c4a 100644
--- a/source/_cookbook/sonos_say.markdown
+++ b/source/_cookbook/sonos_say.markdown
@@ -19,10 +19,10 @@ script:
sonos_say:
alias: "Sonos TTS script"
sequence:
- - service: media_player.sonos_snapshot
+ - service: sonos.snapshot
data_template:
entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %}
- - service: media_player.sonos_unjoin
+ - service: sonos.unjoin
data_template:
entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %}
- service: media_player.volume_set
@@ -34,7 +34,7 @@ script:
entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %}
message: {% raw %}"{{ message }}"{% endraw %}
- delay: {% raw %}"{{ delay }}"{% endraw %}
- - service: media_player.sonos_restore
+ - service: sonos.restore
data_template:
entity_id: {% raw %}"{{ sonos_entity }}"{% endraw %}
```
From 11518c703097f8ee76fe50edae8efb386b036780 Mon Sep 17 00:00:00 2001
From: Penny Wood
Date: Wed, 15 May 2019 19:05:56 +0800
Subject: [PATCH 32/85] Rising attribute. (#9460)
---
source/_components/sun.markdown | 1 +
1 file changed, 1 insertion(+)
diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown
index 1ed1d0c9a98..cae4f6d77d7 100644
--- a/source/_components/sun.markdown
+++ b/source/_components/sun.markdown
@@ -73,3 +73,4 @@ which event (sunset or sunrise) and the offset.
| `next_midnight` | Date and time of the next solar midnight (in UTC).
| `elevation` | Solar elevation. This is the angle between the sun and the horizon. Negative values mean the sun is below the horizon.
| `azimuth` | Solar azimuth. The angle is shown clockwise from north.
+| `rising` | True if the Sun is currently rising, after solar midnight and before solar noon.
From fbc55ccf82158bdc12bf76b06a41b37d94c907bd Mon Sep 17 00:00:00 2001
From: Fredrik Erlandsson
Date: Thu, 16 May 2019 22:52:23 +0200
Subject: [PATCH 33/85] Updated SET_AWAY_MODE and TURN_ON/OFF on Daikin Climate
(#9370)
---
source/_components/daikin.markdown | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/source/_components/daikin.markdown b/source/_components/daikin.markdown
index c01d5d8dff3..55079e1a5cf 100644
--- a/source/_components/daikin.markdown
+++ b/source/_components/daikin.markdown
@@ -61,10 +61,12 @@ hosts:
The `daikin` climate platform integrates Daikin air conditioning systems into Home Assistant, enabling control of setting the following parameters:
-- **mode** (cool, heat, dry, fan only or auto)
-- **target temperature**
-- **fan speed**
-- **swing mode**
+- [**mode**](https://www.home-assistant.io/components/climate#service-climateset_operation_mode) (cool, heat, dry, fan only or auto)
+- [**target temperature**](https://www.home-assistant.io/components/climate#service-climateset_temperature)
+- [**fan mode**](https://www.home-assistant.io/components/climate#service-climateset_fan_mode) (speed)
+- [**swing mode**](https://www.home-assistant.io/components/climate#service-climateset_swing_mode)
+- [**turn on/off**](https://www.home-assistant.io/components/climate#service-climateturn_on)
+- [**away mode**](https://www.home-assistant.io/components/climate#service-climateset_away_mode)
Current inside temperature is displayed.
@@ -89,4 +91,4 @@ Daikin AirBase units exposes zones (typically rooms) that can be switched on/off
Zones with the name `-` will be ignored, just as the AirBase application is working.
-
\ No newline at end of file
+
From 103b0f7015cf1cc40c539fc4bf8569233b032020 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joakim=20S=C3=B8rensen?=
Date: Sun, 19 May 2019 00:17:45 +0200
Subject: [PATCH 34/85] Remove warning (#9474)
---
source/_components/alert.markdown | 5 -----
1 file changed, 5 deletions(-)
diff --git a/source/_components/alert.markdown b/source/_components/alert.markdown
index c7c5f63976b..30c42c90a5e 100644
--- a/source/_components/alert.markdown
+++ b/source/_components/alert.markdown
@@ -23,11 +23,6 @@ water leak sensors, or any condition that may need your attention.
Alerts will add an entity to the front end only when they are firing.
This entity allows you to silence an alert until it is resolved.
-
-When using the `alert` component, it is important that the time zone used for Home Assistant and the underlying operating system match.
-Failing to do so may result in multiple alerts being sent at the same time (such as when Home Assistant is set to the `America/Detroit` time zone but the operating system uses `UTC`).
-
-
### {% linkable_title Basic Example %}
The `alert` component makes use of any of the `notifications` components. To
From 8128db038603d57c4be113629e62fa5aa19da6e4 Mon Sep 17 00:00:00 2001
From: Robert Svensson
Date: Sun, 19 May 2019 22:45:31 +0200
Subject: [PATCH 35/85] Add documentation for newly added types of Axis
component
https://github.com/home-assistant/home-assistant/pull/23312
---
source/_components/axis.markdown | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown
index 824fc2ada6a..0f68a2a300a 100644
--- a/source/_components/axis.markdown
+++ b/source/_components/axis.markdown
@@ -11,12 +11,14 @@ logo: axis.png
ha_category:
- Camera
- Binary Sensor
+ - Switch
ha_config_flow: true
ha_release: 0.45
ha_iot_class: Local Push
redirect_from:
- /components/binary_sensor.axis/
- /components/camera.axis/
+ - /components/switch.axis/
---
[Axis Communications](https://www.axis.com/) devices are surveillance cameras, speakers, access control and other security-related network connected hardware. Event API works with firmware 5.50 and newer.
@@ -43,3 +45,11 @@ The following sensor types are supported:
- Passive IR motion detection
- Sound detection
- Day/night mode
+- Inputs and Supervised Inputs
+
+## {% linkable_title Switch %}
+
+The following controllable port types are supported:
+
+- Output
+- Relay
From bc8af817675bfb676553b6367d1a4c4c560a1045 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Sun, 19 May 2019 22:58:10 +0200
Subject: [PATCH 36/85] :pencil2: Tweak
Redirect_from is only for existing pages
---
source/_components/axis.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_components/axis.markdown b/source/_components/axis.markdown
index 0f68a2a300a..b1f99ee480c 100644
--- a/source/_components/axis.markdown
+++ b/source/_components/axis.markdown
@@ -18,7 +18,6 @@ ha_iot_class: Local Push
redirect_from:
- /components/binary_sensor.axis/
- /components/camera.axis/
- - /components/switch.axis/
---
[Axis Communications](https://www.axis.com/) devices are surveillance cameras, speakers, access control and other security-related network connected hardware. Event API works with firmware 5.50 and newer.
From 439ed20950ec746df06069e3a90bd91e7896e99a Mon Sep 17 00:00:00 2001
From: Matt Snyder
Date: Sun, 19 May 2019 16:07:00 -0500
Subject: [PATCH 37/85] Doorbird refactor documentation update (#9483)
* Doorbird refactor documentation update
* Update token description
* Whitespace changes
* Update config key
---
source/_components/doorbird.markdown | 84 ++++++++++++++++++----------
1 file changed, 54 insertions(+), 30 deletions(-)
diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown
index fe1e15b1413..adf5f0fd84b 100644
--- a/source/_components/doorbird.markdown
+++ b/source/_components/doorbird.markdown
@@ -37,18 +37,15 @@ To connect your device, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
doorbird:
- token: YOUR_DOORBIRD_TOKEN
devices:
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
+ token: YOUR_DOORBIRD_TOKEN
```
{% configuration %}
-token:
- description: Token to be used to authenticate Doorbird calls to Home Assistant. This can be obtained from your "Digital Passport" document provided with your Doorbird.
- required: true
- type: string
+
devices:
description: List of Doorbird devices.
required: true
@@ -66,6 +63,10 @@ devices:
description: The password for the user specified.
required: true
type: string
+ token:
+ description: Token to be used to authenticate Doorbird calls to Home Assistant. This is a user defined value and should be unique across all Doorbird devices.
+ required: true
+ type: string
name:
description: Custom name for this device.
required: false
@@ -74,56 +75,62 @@ devices:
description: If your DoorBird cannot connect to the machine running Home Assistant because you are using dynamic DNS or some other HTTP configuration (such as HTTPS), specify the LAN IP of the machine here to force a LAN connection.
required: false
type: string
- monitored_conditions:
- description: Monitor motion and/or doorbell events for this device.
+ events:
+ description: Custom event names to be registered on the device. User defined values. Special characters should be avoided.
required: false
- type: string
- keys:
- doorbell:
- description: Monitor doorbell events.
- motion:
- description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app).
- relay:
- description: Monitor relay events. This event is fired even if a relay is not physically connected to the door station. Can be used to lock/unlock any smart lock present in Home Assistant via the Doorbird app.
-
+ type: list
+
{% endconfiguration %}
## {% linkable_title Full example %}
```yaml
doorbird:
- token: YOUR_DOORBIRD_TOKEN
devices:
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
+ token: CUSTOM_TOKEN_1
hass_url_override: HASS_URL
name: Front Door
- host: DOORBIRD_IP_OR_HOSTNAME
username: YOUR_USERNAME
password: YOUR_PASSWORD
+ token: CUSTOM_TOKEN_2
name: Driveway Gate
- monitored_conditions:
- - doorbell
- - motion
- - relay
+ events:
+ - doorbell_1
+ - somebody_pressed_the_button
+ - relay_unlocked
+ - unit_2_bell
+ - rfid_card_scanned
```
## {% linkable_title Events %}
-Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Available Events list on the Events developer view.
+Events can be defined for each configured DoorBird device independently. These events will be registered on the device and can be attached to a schedule via the DoorBird app.
+
+See [Schedules](#schedules) section below for details on how to configure schedules.
+
+Event names will be prefixed by `doorbird_`. For example, the example event `somebody_pressed_the_button` will be seen in Home Assistant as `doorbird_somebody_pressed_the_button`. This is to prevent conflicts with other events.
+
+See [Automation Example](#automation_example) section below for details on how to use the event names in an automation.
-Home Assistant will register the monitored conditions with the device as schedule entries that correspond to favorites on startup. If you remove monitored conditions from your configuration, Home Assistant will attempt to remove these items from the device. However, in some cases, such as if the IP address of the machine running Home Assistant changes or if the device is renamed in your configuration, this will not work correctly and some data will be left in device storage.
-
-This should not cause any problems, but if you would like to remove it, open a new browser window and navigate to `{Home Assistant URL}/api/doorbird/clear/{DoorBird name}`. Replace `{Home Assistant URL}` with the full path to your running instance, such as `http://localhost:8123`. Replace `{DoorBird name}` with the name specified in your configuration for the device you would like to clear, or how it appears in the Home Assistant UI if you have not specified one, such as `DoorBird 1`. Then use the mobile app to reschedule push notifications.
-
-Please note that clearing device registrations will prevent the device from sending pushes to Home Assistant until you restart your instance with the component enabled. It could also affect other third-party applications you may use with your DoorBird device. It will not break the official mobile app in any way, so mobile push notifications will still work.
+Events will not be received in Home Assistant until a schedule is defined via the DoorBird app.
+#### {% linkable_title Clearing Registered Events %}
+Events can be cleared from DoorBird devices by visiting a special URL.
+
+Simply open a new browser window and navigate to `{Home Assistant URL}/api/doorbird/clear?token={DEVICE_TOKEN}`. Replace `{Home Assistant URL}` with the full path to your running instance, such as `http://localhost:8123`. Replace `{DEVICE_TOKEN}` with the token specified in your configuration for the device you would like to clear.
+
+Please note that clearing device events will require configuration steps above to be taken again. It could also affect other third-party applications you may use with your DoorBird device. It will not break the official mobile app in any way, so mobile push notifications will still work.
+
+
#### {% linkable_title Event Data %}
-Each event includes live image and video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation.
+Each event will include live image and video URLs for the Doorbird device that triggered the event. These URLs can be found on the event data and can be useful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation.
The following keys are available on `event_data`:
@@ -134,16 +141,33 @@ The following keys are available on `event_data`:
- `html5_viewer_url`
-The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration.
+The URLs on the event will be based on the configuration used to connect to your Doorbird device. Ability to connect from outside your network will depend on your configuration.
+#### {% linkable_title Schedules %}
+
+Once events have been registered on the DoorBird device, they must be attached to a schedule using the official DoorBird app on Android or iOS. Currently there are schedules available for doorbell, motion, relay, and RFID events (on supported devices).
+
+For iOS, the schedules can be found by navigating to the following areas of the app:
+
+- Doorbell | Settings > Administration > Specific Device > Schedule for Doorbell
+- Motion | Settings > Administration > Specific Device > 3D Motion Sensor (Settings) > Schedule for Actions
+- Relay | Settings > Administration > Specific Device > Relays > Schedule
+- RFID | Settings > Administration > Specific Device > RFID Transponder > Settings > Select Transponder > Schedule
+
+Once you are on the desired schedule, click the dropdown button in the upper left to switch to the HTTP Calls view. Now if you click on the heading just above the schedule, you can select the event you would like to be called for the particular schedule that is being viewed.
+
+On the desired event, you should be able to specify blocks of time for when you would like the event to be sent to Home Assistant. If you want the event to always send, the square in the upper right can be used to populate the entire schedule. Events will be fired to Home Assistant for blocks of time that are blue.
+
+Remember to complete the schedule assignment steps above for each event type that you registered.
+
### {% linkable_title Automation Example %}
```yaml
- alias: Doorbird Ring
trigger:
platform: event
- event_type: doorbird_side_entry_button
+ event_type: doorbird_somebody_pressed_the_button
action:
service: light.turn_on
entity_id: light.side_entry_porch
From 7509aaff11ce7e819c4e1ed490fbe39fe93eb181 Mon Sep 17 00:00:00 2001
From: bouni
Date: Tue, 14 May 2019 09:49:12 +0200
Subject: [PATCH 38/85] extended spaceapi component documentation
---
source/_components/spaceapi.markdown | 2 ++
1 file changed, 2 insertions(+)
diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown
index 8f83f10ab3c..29de8f0f27c 100644
--- a/source/_components/spaceapi.markdown
+++ b/source/_components/spaceapi.markdown
@@ -114,6 +114,8 @@ sensors:
type: entity_id
{% endconfiguration %}
+The list of sensors can be any sensor, not just temperature or humidity.
+
## {% linkable_title Examples %}
In this section you find some real-life examples of how to use this component.
From 2de75f5f7994382ead7f39fb4aaac9778f82b2c6 Mon Sep 17 00:00:00 2001
From: bouni
Date: Mon, 20 May 2019 12:09:11 +0200
Subject: [PATCH 39/85] added description how to set the location attribute of
a sensor
---
source/_components/spaceapi.markdown | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown
index 29de8f0f27c..beb7cd8d5e1 100644
--- a/source/_components/spaceapi.markdown
+++ b/source/_components/spaceapi.markdown
@@ -116,6 +116,18 @@ sensors:
The list of sensors can be any sensor, not just temperature or humidity.
+## Sensor specific location
+
+The [SpaceAPI specification](https://spaceapi.io/pages/docs.html) requires every sensor to provide a location.
+In order to set a sensor specific location do the following steps:
+
+1. Go to Configuration -> Customization
+2. Select the sensor entity
+3. Pick "Other" from the attribute override pulldown
+4. Set the attribute name to location and the attribute value to your desired location
+
+If no location is set, the location defined in the HA config is used.
+
## {% linkable_title Examples %}
In this section you find some real-life examples of how to use this component.
From ca62a8700f92b0fc2c01efccc7e68ad32812a3fe Mon Sep 17 00:00:00 2001
From: Fabian Affolter
Date: Wed, 22 May 2019 21:45:13 +0200
Subject: [PATCH 40/85] Update monitored_conditions (#9385)
* Update monitored_conditions
* Fix lint
* Add missing colons
---
source/_components/iqvia.markdown | 54 +++++++++++++++----------------
1 file changed, 26 insertions(+), 28 deletions(-)
diff --git a/source/_components/iqvia.markdown b/source/_components/iqvia.markdown
index cb04396076a..12969ba0c89 100644
--- a/source/_components/iqvia.markdown
+++ b/source/_components/iqvia.markdown
@@ -17,7 +17,7 @@ redirect_from:
- /components/pollen/
---
-The `iqvia` sensor platform collects and displays allergy, asthma, and disease
+The `iqvia` sensor platform collects and displays allergy, asthma and disease
information (based on a U.S. ZIP code) from [IQVIA](https://www.iqvia.com/).
Data measured includes:
@@ -39,25 +39,39 @@ iqvia:
- allergy_average_forecasted
- allergy_index_today
- allergy_index_tomorrow
- - allergy_index_yesterday
- asthma_average_forecasted
- asthma_index_today
- asthma_index_tomorrow
- - asthma_index_yesterday
- disease_average_forecasted
- disease_index_today
- - disease_index_yesterday
```
{% configuration %}
- zip_code:
- description: the U.S. ZIP code to gather data for (as a quoted string)
- required: true
- type: string
- monitored_conditions:
- description: the metric types to monitor; valid values are specified below
- required: true
- type: list
+zip_code:
+ description: The U.S. ZIP code to gather data for (as a quoted string).
+ required: true
+ type: string
+monitored_conditions:
+ description: The metric types to monitor.
+ required: true
+ type: list
+ keys:
+ allergy_average_forecasted:
+ description: "The average forecasted allergy index over the next 5 days."
+ allergy_index_today:
+ description: "The allergy index for today."
+ allergy_index_tomorrow:
+ description: "The allergy index for tomorrow."
+ asthma_average_forecasted:
+ description: "The average forecasted asthma index over the next 5 days."
+ asthma_index_today:
+ description: "The asthma index for today."
+ asthma_index_tomorrow:
+ description: "The asthma index for tomorrow."
+ disease_average_forecasted:
+ description: "The average forecasted cold/flu index over the next 5 days."
+ disease_index_today:
+ description: "The cold/flu index for today."
{% endconfiguration %}
@@ -65,22 +79,6 @@ It is important to ensure the ZIP code is quoted if it starts with a 0. Unquoted
ZIP codes that start with 0 will cause errors.
-## {% linkable_title Available Metrics %}
-
-The following metrics can be monitored:
-
-* Allergy Index: Forecasted Average (`allergy_average_forecasted`): the average forecasted allergy index over the next 5 days
-* Allergy Index: Today (`allergy_index_today`): the allergy index for today
-* Allergy Index: Tomorrow (`allergy_index_tomorrow`): the allergy index for tomorrow
-* Allergy Index: Yesterday (`allergy_index_yesterday`): the allergy index for yesterday
-* Asthma Index: Forecasted Average (`asthma_average_forecasted`): the average forecasted asthma index over the next 5 days
-* Asthma Index: Today (`asthma_index_today`): the asthma index for today
-* Asthma Index: Tomorrow (`asthma_index_tomorrow`): the asthma index for tomorrow
-* Asthma Index: Yesterday (`asthma_index_yesterday`): the asthma index for yesterday
-* Cold & Flu: Forecasted Average (`disease_average_forecasted`): the average forecasted cold/flu index over the next 5 days
-* Cold & Flu Index: Today (`disease_index_today`): the cold/flu index for today
-* Cold & Flu Index: Yesterday (`disease_index_yesterday`): the cold/flu index for yesterday
-
## {% linkable_title Understanding the Indices %}
Any index-related sensor will have a value between 0.0 and 12.0. The values
From 3130ec0653474996cc5c6e547f15fd4e740b3fe4 Mon Sep 17 00:00:00 2001
From: David Bonnes
Date: Fri, 24 May 2019 22:52:05 +0100
Subject: [PATCH 41/85] Add geniushub sensors for issues (#9492)
* Initial commit
* :pencil2: Tweak
* Initial commit
---
source/_components/geniushub.markdown | 41 ++++++++++++++++++++++-----
1 file changed, 34 insertions(+), 7 deletions(-)
diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown
index 00789f70031..23aa01aa395 100644
--- a/source/_components/geniushub.markdown
+++ b/source/_components/geniushub.markdown
@@ -11,17 +11,47 @@ logo: geniushub.png
ha_category:
- Climate
- Water heater
+ - Sensor
+ - Binary sensor
ha_release: 0.92
ha_iot_class: Local Polling
---
-The `geniushub` integration links Home Assistant with your Genius Hub (the hub does not have to be in the same network as HA).
+The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices. Currently, there is no support for Zone schedules.
-Currently only **Radiator** and **Hot Water Temperature** zones are supported. Within HA, each **Radiator** zone will appear as a `Climate` device, and each **Hot Water Temperature** zone will appear as a `WaterHeater` device.
+It uses the [geniushub-client](https://pypi.org/project/geniushub-client/) library.
-The device's `operating_mode` can be set to one of `off`, `timer`, `on` (i.e. **Override** mode) or `eco`. The `eco` mode is a proxy for the **Footprint** mode and so is only available to **Radiator** zones that have room sensors.
+### {% linkable_title Zones %}
-Other properties are available via the device's state attributes, which includes a JSON data structure called `status`. For example, in the case of **Radiator** zones/`Climate` devices:
+Each Zone controlled by your Genius hub will be exposed as either a:
+
+ - `Climate` entity, for **Radiator** Zones, and
+ - `Water Heater`, for **Hot Water Temperature** Zones
+
+Other Zone types, such as **On / Off** Zones, are not currently supported.
+
+Each such entity will report back its mode, state, setpoint and current temperature; other properties are available via its attributes (see below).
+
+In addition, the entity's mode and setpoint can be changed. The entity's `operating_mode` can be set to one of `off`, `timer`, `on` (i.e. **Override** mode) or `eco`. The `eco` mode is a proxy for the **Footprint** mode and so is only available to **Radiator** Zones that have room sensors.
+
+### {% linkable_title Devices %}
+
+If the Hub is directly polled using the v3 API (see below), then each Device controlled by your Genius hub will be exposed as either a:
+
+ - `Sensor` entity with a % battery, for any Device with a battery (e.g. a Genius Valve), or
+ - `Binary Sensor` entity with on/off state for any Device that is a switch (e.g. a Smart Plug)
+
+Each such entity will report back its primary state; in addition, `assigned_zone` and `last_comms` (last communications time) are available via the entity's attributes.
+
+### {% linkable_title Issues %}
+
+There are three `Sensor` entities that will indicate the number of **Errors**, **Warnings** and **Information** issues.
+
+Each such entity has a state attribute that will contain a list of any such issues. For example, `error_list`.
+
+### {% linkable_title State Attributes %}
+
+Other properties are available via each entity's state attributes. For example, in the case of **Radiator** Zones/`Climate` devices:
```json
{
@@ -35,7 +65,6 @@ Other properties are available via the device's state attributes, which includes
}
}
}
-
```
This data can be accessed in automations, etc. via a value template. For example:
@@ -54,8 +83,6 @@ value_template: "{{ state_attr('climate.main_room', 'status').occupied }}"
```
{% endraw %}
-Currently, there is no support for modifying schedules and neither do they appear in the state attributes.
-
## {% linkable_title Configuration %}
To add your Genius Hub into your Home Assistant installation, add one of the following to your `configuration.yaml` file.
From ea232283b3c14a4c70924a4df64eb38edb7d0972 Mon Sep 17 00:00:00 2001
From: Jardi Martinez <1088732+jardiamj@users.noreply.github.com>
Date: Sat, 25 May 2019 17:34:41 -0700
Subject: [PATCH 42/85] Update source/_components/mcp23017.markdown
Co-Authored-By: Anders Melchiorsen
---
source/_components/mcp23017.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index b5b9ca0338e..6eb6cf88fcc 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -16,7 +16,7 @@ ha_release: 0.92
ha_iot_class: Local Polling
---
-The `mcp23017` component is the base for all related mcp23017 platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding pages.
+The `mcp23017` component is the base for all related mcp23017 platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding sections.
## {% linkable_title Binary Sensor %}
From 29f831a0fd51a16ee7e24e0c719de3e7d1073998 Mon Sep 17 00:00:00 2001
From: Jardi Martinez <1088732+jardiamj@users.noreply.github.com>
Date: Sat, 25 May 2019 17:34:50 -0700
Subject: [PATCH 43/85] Update source/_components/mcp23017.markdown
Co-Authored-By: Anders Melchiorsen
---
source/_components/mcp23017.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index 6eb6cf88fcc..bad3108f9b1 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -26,7 +26,7 @@ The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-1
## {% linkable_title Configuration %}
-To use the I/O pins of an mcp23017 connected to and I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
+To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
From 1094afdcde75b16278526a6bf6b17ccf1025ad60 Mon Sep 17 00:00:00 2001
From: Jardi Martinez <1088732+jardiamj@users.noreply.github.com>
Date: Sat, 25 May 2019 17:35:03 -0700
Subject: [PATCH 44/85] Update source/_components/mcp23017.markdown
Co-Authored-By: Anders Melchiorsen
---
source/_components/mcp23017.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index bad3108f9b1..b3584bf9a63 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -84,7 +84,7 @@ The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-1
## {% linkable_title Configuration %}
-To use the I/O pins of an mcp23017 connected to and I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
+To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
From b074788c96b08e0ad8e36d8c0eec01de6e49a5b1 Mon Sep 17 00:00:00 2001
From: "Jardi A. Martinez Jordan" <1088732+jardiamj@users.noreply.github.com>
Date: Sat, 25 May 2019 18:18:59 -0700
Subject: [PATCH 45/85] Updated documentation for mcp23017 component.
---
source/_components/mcp23017.markdown | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index b3584bf9a63..f7c71b9119b 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -18,13 +18,15 @@ ha_iot_class: Local Polling
The `mcp23017` component is the base for all related mcp23017 platforms in Home Assistant. There is no setup needed for the component itself, for the platforms please check their corresponding sections.
+For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
+
## {% linkable_title Binary Sensor %}
The `mcp23017` binary sensor platform allows you to read sensor values from the I/O pins of your [MCP23017 I2C I/O expander](https://www.adafruit.com/product/732).
The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-15 to port B (B1-B8).
-## {% linkable_title Configuration %}
+### {% linkable_title Configuration %}
To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as binary sensors, add the following to your `configuration.yaml` file:
@@ -74,15 +76,13 @@ pull_mode:
NOTE: MCP23017 only has internal pull-up resistors, if you want to use pull-down you will have to wire your own pull-down resistors.
-For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
-
## {% linkable_title Switch %}
The `mcp23017` switch platform allows you to write to the I/O pins of your [MCP23017 I2C I/O expander](https://www.adafruit.com/product/732).
The pin numbers are from 0 to 15 where: 0-7 correspond to port A (A1-A8) and 8-15 to port B (B1-B8).
-## {% linkable_title Configuration %}
+### {% linkable_title Configuration %}
To use the I/O pins of an mcp23017 connected to an I2C bus of your Raspberry Pi as switches, add the following to your `configuration.yaml` file:
@@ -117,5 +117,3 @@ invert_logic:
default: false
type: boolean
{% endconfiguration %}
-
-For more details about the MCP23017 I2C I/O port expander you can find its datasheet here: [MCP23017](https://www.microchip.com/wwwproducts/en/MCP23017).
From 28aa919d0b67d303c0ba40ad2154a8116c0c8255 Mon Sep 17 00:00:00 2001
From: jgriff2
Date: Sun, 26 May 2019 14:54:40 -0700
Subject: [PATCH 46/85] Update remote_rpi_gpio.markdown
---
source/_components/remote_rpi_gpio.markdown | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
index 9cc1eef6b6b..ab7112f0eb8 100644
--- a/source/_components/remote_rpi_gpio.markdown
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -30,21 +30,16 @@ To use your Remote Raspberry Pi's GPIO in your installation, add the following t
# Example configuration.yaml entry
binary_sensor:
- platform: remote_rpi_gpio
+ address:
ports:
11: PIR Office
12: PIR Bedroom
-```
-
-or
-
-```yaml
-# Example configuration.yaml entry
-remote_rpi_gpio:
- host: 10.0.1.9
- binary_sensors:
- 6: Pin6
- switches:
- 4: Pin4
+
+switch:
+ - platform: remote_rpi_gpio
+ address:
+ ports:
+ 4: Garage Relay
```
{% configuration %}
From be34da7215bf5e1a1646b5c95a9686ad36abb260 Mon Sep 17 00:00:00 2001
From: Kevin Fronczak
Date: Mon, 27 May 2019 06:22:58 -0400
Subject: [PATCH 47/85] Update Blink docs with new options (#9508)
* Update example configs with new options
* Minor changes
---
source/_components/blink.markdown | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/source/_components/blink.markdown b/source/_components/blink.markdown
index 0232e4de8d4..483831ff3c7 100644
--- a/source/_components/blink.markdown
+++ b/source/_components/blink.markdown
@@ -73,6 +73,16 @@ sensors:
required: false
type: list
default: all (`battery`, `temperature`, `wifi_strength`)
+offset:
+ description: How far back in time (minutes) to look for motion. Motion is determined if a new video has been recorded between now and the last time you refreshed plus this offset.
+ required: false
+ type: integer
+ default: 1
+mode:
+ description: Set to 'legacy' to enable use of old API endpoint subdomains (APIs can differ based on region, so use this if you are having issues with the integration).
+ required: false
+ type: string
+ default: not set
{% endconfiguration %}
Once Home Assistant starts, the `blink` component will create the following platforms:
From e0ca456f9ad0bc1f0757c029891653218497ce97 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Wed, 29 May 2019 14:29:34 -0700
Subject: [PATCH 48/85] Add stub release notes 94
---
_config.yml | 6 +++---
source/_posts/2019-06-05-release-94.markdown | 20 ++++++++++++++++++++
2 files changed, 23 insertions(+), 3 deletions(-)
create mode 100644 source/_posts/2019-06-05-release-94.markdown
diff --git a/_config.yml b/_config.yml
index d5aa5c751ed..7cfd2697f1a 100644
--- a/_config.yml
+++ b/_config.yml
@@ -138,9 +138,9 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 93
-current_patch_version: 2
-date_released: 2019-05-22
+current_minor_version: 94
+current_patch_version: 0
+date_released: 2019-06-05
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
new file mode 100644
index 00000000000..01afef59b73
--- /dev/null
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -0,0 +1,20 @@
+---
+layout: post
+title: "0.94: TBD - update date"
+description: "TO DO."
+date: 2019-05-29 04:11:03
+date_formatted: "June 5, 2019"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2019-06-release-94/components.png
+---
+
+
+
+New:
+ - Possible to store core config in storage. Configuration.yaml will override storage.
+ - Onboarding updated to set core config
+ - Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
+ - More cool stuff?
From 72a5b68b43d3a5abbb132cfb0fdc85a2f1a5ac06 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Wed, 29 May 2019 23:39:18 +0200
Subject: [PATCH 49/85] :pencil2: Tweak
After this we will merge it
---
source/_components/solax.markdown | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/source/_components/solax.markdown b/source/_components/solax.markdown
index 18c0d21321f..180fee62291 100644
--- a/source/_components/solax.markdown
+++ b/source/_components/solax.markdown
@@ -8,8 +8,10 @@ comments: false
sharing: true
footer: true
logo: solax-logo.png
-ha_category: Sensor
-ha_release: 0.91
+ha_category:
+ - Energy
+ - Sensor
+ha_release: 0.94
ha_iot_class: Local Polling
---
@@ -33,17 +35,7 @@ ip_address:
type: string
{% endconfiguration %}
-
-### {% linkable_title Full configuration sample %}
-
-A full configuration entry would look like the sample below.
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: solax
- ip_address: 192.168.0.3
-```
+### {% linkable_title Optional template sensor %}
If you would like to convert the values from multiple panels or view the total power the house is using, you can use the [template platform](/components/sensor.template/).
From 5492da48660e9e6bfa00195256fef9c6ba39e1d9 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Wed, 29 May 2019 23:41:30 +0200
Subject: [PATCH 50/85] :pencil2: Tweak
After this we will merge it
---
source/_components/remote_rpi_gpio.markdown | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/source/_components/remote_rpi_gpio.markdown b/source/_components/remote_rpi_gpio.markdown
index ab7112f0eb8..50f75828065 100644
--- a/source/_components/remote_rpi_gpio.markdown
+++ b/source/_components/remote_rpi_gpio.markdown
@@ -12,7 +12,7 @@ ha_category:
- DIY
- Binary Sensor
- Switch
-ha_release:
+ha_release: 0.94
ha_iot_class: Local Push
---
@@ -22,8 +22,6 @@ The `rpi_gpio` component is the base for all related GPIO platforms in Home Assi
The `remote_rpi_gpio` binary sensor platform allows you to read sensor values of the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
-## {% linkable_title Configuration %}
-
To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
```yaml
@@ -77,8 +75,6 @@ For more details about the GPIO layout, visit the Wikipedia [article](https://en
The `remote_rpi_gpio` switch platform allows you to control the GPIOs of a [Remote Raspberry Pi](https://www.raspberrypi.org/).
-## {% linkable_title Configuration %}
-
To use your Remote Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
```yaml
From e7e18cc24b96752c041f492503e6da7914feea80 Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Wed, 29 May 2019 23:43:35 +0200
Subject: [PATCH 51/85] :pencil2: Tweak
After this we will merge it
---
source/_components/mcp23017.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index f7c71b9119b..2ac764d35ec 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -12,7 +12,7 @@ ha_category:
- DIY
- Binary Sensor
- Switch
-ha_release: 0.92
+ha_release: 0.94
ha_iot_class: Local Polling
---
From 11e131ccfb83c9675041dfe701ecf4ab2b480ebf Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Wed, 29 May 2019 23:45:19 +0200
Subject: [PATCH 52/85] :pencil2: Tweak
After this we will merge it
---
source/_components/spaceapi.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_components/spaceapi.markdown b/source/_components/spaceapi.markdown
index beb7cd8d5e1..34d9add3420 100644
--- a/source/_components/spaceapi.markdown
+++ b/source/_components/spaceapi.markdown
@@ -116,7 +116,7 @@ sensors:
The list of sensors can be any sensor, not just temperature or humidity.
-## Sensor specific location
+## {% linkable_title Sensor specific location %}
The [SpaceAPI specification](https://spaceapi.io/pages/docs.html) requires every sensor to provide a location.
In order to set a sensor specific location do the following steps:
From fae2293b1552927bb15ff7621e3f3cdba46f882a Mon Sep 17 00:00:00 2001
From: Klaas Schoute
Date: Wed, 29 May 2019 23:53:13 +0200
Subject: [PATCH 53/85] :pencil2: Put something in a html note
---
source/_components/mcp23017.markdown | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/source/_components/mcp23017.markdown b/source/_components/mcp23017.markdown
index 2ac764d35ec..4629de4e426 100644
--- a/source/_components/mcp23017.markdown
+++ b/source/_components/mcp23017.markdown
@@ -74,7 +74,9 @@ pull_mode:
default: "`UP`"
{% endconfiguration %}
-NOTE: MCP23017 only has internal pull-up resistors, if you want to use pull-down you will have to wire your own pull-down resistors.
+
+ MCP23017 only has internal pull-up resistors, if you want to use pull-down you will have to wire your own pull-down resistors.
+
## {% linkable_title Switch %}
From c66f2ee4b5c9eb2da23c74cfb8114332be2fef73 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Wed, 29 May 2019 15:15:35 -0700
Subject: [PATCH 54/85] Add some more notes
---
source/_posts/2019-06-05-release-94.markdown | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index 01afef59b73..001bcee87d1 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -14,7 +14,9 @@ og_image: /images/blog/2019-06-release-94/components.png
New:
- - Possible to store core config in storage. Configuration.yaml will override storage.
- - Onboarding updated to set core config
+ - Possible to store core config in storage. If set in configuration.yaml, it will override storage. Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding.
+ - Step added to onboarding to allow configuring name, location, timezone and unit system.
- Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
+ - Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
+ - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf or SSDP in their manifest, this will be picked up by the zeroconf and ssdp integrations.
- More cool stuff?
From 5383bce4d6e2a785a48057355bd409aba7477c5e Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Wed, 29 May 2019 19:52:54 -0700
Subject: [PATCH 55/85] Update release notes
---
source/_posts/2019-06-05-release-94.markdown | 460 +++++++++++++++++++
1 file changed, 460 insertions(+)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index 001bcee87d1..697bfb67c0b 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -20,3 +20,463 @@ New:
- Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
- Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf or SSDP in their manifest, this will be picked up by the zeroconf and ssdp integrations.
- More cool stuff?
+
+## {% linkable_title New Integrations %}
+
+- Adding Watson TTS (IBM Cloud) ([@rutkai] - [#23299]) ([watson_tts docs]) (new-integration) (new-platform)
+- MCP23017 ([@jardiamj] - [#23127]) ([mcp23017 docs]) (new-integration) (new-platform)
+- Solax Inverter Sensor Component ([@squishykid] - [#22579]) ([solax docs]) (new-integration) (new-platform)
+- Add Remote RPi Component ([@jgriff2] - [#23518]) ([remote_rpi_gpio docs]) (new-integration) (new-platform)
+- Azure Event Hub history component ([@eavanvalkenburg] - [#23878]) ([azure_event_hub docs]) (new-integration)
+- Add SSDP integration ([@balloob] - [#24090]) ([default_config docs]) ([discovery docs]) ([hue docs]) ([ssdp docs]) ([zeroconf docs]) (new-integration)
+
+## {% linkable_title New Platforms %}
+
+- Add LCN climate platform ([@alengwenus] - [#22542]) ([lcn docs]) (new-platform)
+- Add incomfort climate and bump client ([@zxdavb] - [#23830]) ([incomfort docs]) (new-platform)
+- Add new SmartHab light and cover platform ([@outadoc] - [#21225]) ([smarthab docs]) (new-platform)
+- Add geniushub sensor and binary_sensor ([@zxdavb] - [#23811]) ([geniushub docs]) (new-platform)
+- Adding Watson TTS (IBM Cloud) ([@rutkai] - [#23299]) ([watson_tts docs]) (new-integration) (new-platform)
+- MCP23017 ([@jardiamj] - [#23127]) ([mcp23017 docs]) (new-integration) (new-platform)
+- Solax Inverter Sensor Component ([@squishykid] - [#22579]) ([solax docs]) (new-integration) (new-platform)
+- Add Remote RPi Component ([@jgriff2] - [#23518]) ([remote_rpi_gpio docs]) (new-integration) (new-platform)
+- Add Repetier-Server Component ([@MTrab] - [#21658]) ([repetier 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 %}
+
+- Quiet the chatty sun.sun ([@Swamp-Ig] - [#23832]) ([sun docs]) (breaking change)
+- Doorbird Refactor ([@oblogic7] - [#23892]) ([doorbird docs]) (breaking change)
+- ESPHome component to use zeroconf discovery ([@Kane610] - [#24043]) ([esphome docs]) (breaking change)
+- Always update all Plex client types ([@jjlawren] - [#24038]) ([plex docs]) (breaking change)
+- Fix entity id naming when not using first install ([@tkjacobsen] - [#23606]) ([verisure docs]) (breaking change)
+- Update the name of Zestimate sensors ([@dreed47] - [#23770]) ([zestimate docs]) (breaking change)
+- Remove custom entity_id naming ([@jjlawren] - [#24072]) ([plex docs]) (breaking change)
+- Trådfri component to use new zeroconf discovery ([@Kane610] - [#24041]) ([discovery docs]) ([tradfri docs]) (breaking change)
+- Move Homekit controller component to user zeroconf discovery ([@Kane610] - [#24042]) ([discovery docs]) ([homekit_controller docs]) (breaking change)
+- Deprecate Python 3.5.3 ([@balloob] - [#24177]) (breaking change)
+
+## {% linkable_title All changes %}
+
+- Add Presence Detector Indoor to Homematic IP ([@SukramJ] - [#23755]) ([homematicip_cloud docs])
+- Split up yaml loaders into multiple files ([@ties] - [#23774])
+- Add config entry for IQVIA ([@bachya] - [#23765]) ([iqvia docs])
+- Add stepped volume to demo ([@elupus] - [#23759]) ([demo docs])
+- Add battery binary sensor to homematic ([@sander76] - [#23067]) ([homematic docs])
+- fix two times creating JWT headers. ([@pszafer] - [#23777]) ([html5 docs])
+- Bumped keenetic NDMS2 client version ([@foxel] - [#23786]) ([keenetic_ndms2 docs])
+- Add support for an external step in config flow ([@balloob] - [#23782])
+- Centralize geniushub updates ([@zxdavb] - [#23764]) ([geniushub docs])
+- Move tests to right folder ([@balloob] - [#23790])
+- Add LCN climate platform ([@alengwenus] - [#22542]) ([lcn docs]) (new-platform)
+- Bump venstarcolortouch to v0.7 ([@stbenjam] - [#23806]) ([venstar docs])
+- Upgrade youtube_dl to 2019.05.11 ([@fabaff] - [#23808]) ([media_extractor docs])
+- Bump pyotgw to 0.4b4, fix Opentherm Gateway name in manifest.json ([@mvn23] - [#23810]) ([opentherm_gw docs])
+- Fix patching right import ([@balloob] - [#23816])
+- Add incomfort climate and bump client ([@zxdavb] - [#23830]) ([incomfort docs]) (new-platform)
+- Make broadlink switch restore its state ([@akloeckner] - [#23829]) ([broadlink docs])
+- Catch import error when processing config ([@balloob] - [#23833])
+- Remove badges from README [skipci] ([@balloob] - [#23815])
+- HomeKit Controller: Adopt config entries for pairing with homekit accessories ([@Jc2k] - [#23825]) ([discovery docs]) ([homekit_controller docs])
+- Automatically generate config flow list ([@balloob] - [#23802])
+- Add new SmartHab light and cover platform ([@outadoc] - [#21225]) ([smarthab docs]) (new-platform)
+- Daikin adaptions for AirBase units ([@fredrike] - [#23734]) ([daikin docs])
+- Fix for battery device: new_device referenced before assignment. ([@sander76] - [#23793]) ([homematic docs])
+- Better handle large amounts of data being sent over WS ([@balloob] - [#23842]) ([camera docs]) ([lovelace docs]) ([media_player docs]) ([websocket_api docs])
+- Zeroconf - replace library ([@Kane610] - [#23835]) ([zeroconf docs])
+- WS: Improve service calling errors ([@balloob] - [#23840]) ([script docs]) ([websocket_api docs])
+- Allow deletion of automations and scripts ([@balloob] - [#23845]) ([config docs])
+- Use Cloudhooks for OwnTracks ([@balloob] - [#23847]) ([owntracks docs])
+- Fix aiohttp response serialize ([@balloob] - [#23858]) ([cloud docs])
+- Add geniushub sensor and binary_sensor ([@zxdavb] - [#23811]) ([geniushub docs]) (new-platform)
+- Quiet the chatty sun.sun ([@Swamp-Ig] - [#23832]) ([sun docs]) (breaking change)
+- Take code owner for sun.sun ([@Swamp-Ig] - [#23877]) ([sun docs])
+- Fix homekit test assert no messages ([@scop] - [#23856])
+- Restructure device tracker ([@balloob] - [#23862]) ([device_tracker docs])
+- Update Pynetgear to v0.6.1 ([@starkillerOG] - [#23886]) ([netgear docs])
+- Fix ecobee 3 homekit pairing ([@Jc2k] - [#23882]) ([homekit_controller docs])
+- Enable Homematic IP cloud climate device with HeatingThermostat only ([@SukramJ] - [#23776]) ([homematicip_cloud docs])
+- Load HA core config from storage ([@emontnemery] - [#23872])
+- Netatmo, handle offline device ([@Danielhiversen] - [#23907]) ([netatmo docs])
+- [WIP] Simplify zeroconf ([@robbiet480] - [#23890]) ([zeroconf docs])
+- Version bump insteonplm to 0.15.4 ([@nugget] - [#23918])
+- Fix bug when IQVIA API fails to return data ([@bachya] - [#23916]) ([iqvia docs])
+- Fix icons for homekit_controller sensors ([@Jc2k] - [#23921]) ([homekit_controller docs])
+- Fix additional IQVIA data bug ([@bachya] - [#23931]) ([iqvia docs])
+- Have homekit_controller use device registry ([@Jc2k] - [#23874]) ([homekit_controller docs])
+- Fix for non existing Daikin zones ([@fredrike] - [#23792]) ([daikin docs])
+- Fix fan rates for Daikin ([@fredrike] - [#23860]) ([daikin docs])
+- Added support for sensor other than temperature and humidity ([@Bouni] - [#23863]) ([spaceapi docs])
+- Add unit of measurement to Tautulli sensor ([@SiliconAvatar] - [#23873]) ([tautulli docs])
+- Update requests to 2.22.0 ([@BKPepe] - [#23958])
+- show battery level also when vacuum has no map support ([@adrianschroeter] - [#23947]) ([neato docs])
+- Upate xiaomi voltage parser, fix #23898 ([@Danielhiversen] - [#23962]) ([xiaomi_aqara docs])
+- Doorbird Refactor ([@oblogic7] - [#23892]) ([doorbird docs]) (breaking change)
+- Update russound_rio dependency to version 0.1.7 ([@wickerwaka] - [#23973]) ([russound_rio docs])
+- Adding Watson TTS (IBM Cloud) ([@rutkai] - [#23299]) ([watson_tts docs]) (new-integration) (new-platform)
+- Entity Cleanup on Z-Wave node removal ([@cgarwood] - [#23633]) ([zwave docs])
+- Use the timezone defined in Home Assistant when making the API call ([@ludeeus] - [#23284]) ([vasttrafik docs])
+- Updated non-blocking timout to 10 seconds for fixing timeout issues. ([@TomerFi] - [#23930]) ([switcher_kis docs])
+- Delete devices / entities when we remove a config entry. ([@Swamp-Ig] - [#23983])
+- Better handle file not found when loading YAML ([@balloob] - [#23908]) ([apns docs]) ([http docs])
+- daikin version bump ([@fredrike] - [#23991]) ([daikin docs])
+- Bump loopenergy library version - catches runtime exception. ([@pavoni] - [#23989]) ([loopenergy docs])
+- Update owner frontend integrations [skip ci] ([@balloob] - [#24001]) ([frontend docs]) ([lovelace docs]) ([panel_custom docs]) ([panel_iframe docs])
+- Axis IO-port support ([@Kane610] - [#23312]) ([axis docs])
+- Fire event when core config is updated ([@emontnemery] - [#23922])
+- Update CODEOWNERS ([@emontnemery] - [#24015])
+- Add websocket API for updating core config ([@emontnemery] - [#24009]) ([config docs])
+- Add geniushub sensors for issues ([@zxdavb] - [#23976]) ([geniushub docs])
+- Fix iterating over NoneType exception ([@iamtpage] - [#23648]) ([darksky docs])
+- bump geniushub-client to 0.4.9 ([@zxdavb] - [#24022]) ([geniushub docs])
+- Zeroconf discovery for config entries ([@Kane610] - [#23919]) ([axis docs]) ([zeroconf docs])
+- Improve yeelight imports ([@zewelor] - [#24020]) ([yeelight docs])
+- Downgrade Hue warning ([@balloob] - [#24033]) ([hue docs])
+- Ambiclimate test, mock ([@Danielhiversen] - [#24034])
+- Upgrade Mastodon.py to 1.4.2 ([@fabaff] - [#24004]) ([mastodon docs])
+- Require core config detection to be triggerd manually ([@balloob] - [#24019]) ([config docs]) ([onboarding docs])
+- Don't pass in loop ([@balloob] - [#23984])
+- Update ambiclimate library ([@Danielhiversen] - [#24049]) ([ambiclimate docs])
+- ESPHome component to use zeroconf discovery ([@Kane610] - [#24043]) ([esphome docs]) (breaking change)
+- Add support for available property for broadlink ([@Danielhiversen] - [#23981]) ([broadlink docs])
+- Always update all Plex client types ([@jjlawren] - [#24038]) ([plex docs]) (breaking change)
+- Convert stream source to method ([@balloob] - [#23905])
+- Fix entity id naming when not using first install ([@tkjacobsen] - [#23606]) ([verisure docs]) (breaking change)
+- Daikin airbase beta fixes ([@fredrike] - [#24050]) ([daikin docs])
+- Better logging of method used for ADB connection ([@JeffLIrion] - [#24037]) ([androidtv docs])
+- Fix zeroconf sorting ([@balloob] - [#24068])
+- Rfxtrx, add data types ([@Danielhiversen] - [#24066]) ([rfxtrx docs])
+- Update the name of Zestimate sensors ([@dreed47] - [#23770]) ([zestimate docs]) (breaking change)
+- Added possibility to define the data type of Homematic ([@p0l0] - [#24078]) ([homematic docs])
+- Add 'adb_response' attribute to Android TV / Fire TV ([@JeffLIrion] - [#23960]) ([androidtv docs])
+- Adjust logging ([@elupus] - [#24082])
+- Fix Hue bridge timeout ([@terual] - [#24084]) ([hue docs])
+- MCP23017 ([@jardiamj] - [#23127]) ([mcp23017 docs]) (new-integration) (new-platform)
+- Remove device tracker unnecessary separate except clause ([@elupus] - [#24081]) ([device_tracker docs])
+- Refactoring of LCN component ([@alengwenus] - [#23824]) ([lcn docs])
+- Update code owner for Xiaomi TV ([@simse] - [#24102]) ([xiaomi_tv docs])
+- Issue #23514 - fix invalid hue response ([@techfreek] - [#23909]) ([emulated_hue docs])
+- Config entry device tracker ([@balloob] - [#24040]) ([device_tracker docs]) ([geofency docs]) ([gpslogger docs]) ([icloud docs]) ([locative docs]) ([owntracks docs]) ([zone docs])
+- Solax Inverter Sensor Component ([@squishykid] - [#22579]) ([solax docs]) (new-integration) (new-platform)
+- Set assumed_state property to True. ([@jardiamj] - [#24118]) ([mcp23017 docs])
+- Remove custom entity_id naming ([@jjlawren] - [#24072]) ([plex docs]) (breaking change)
+- Move imports to top ([@andrewsayre] - [#24108]) ([heos docs])
+- Use name in ESPHome discovery title ([@OttoWinter] - [#24100])
+- Add Remote RPi Component ([@jgriff2] - [#23518]) ([remote_rpi_gpio docs]) (new-integration) (new-platform)
+- Azure Event Hub history component ([@eavanvalkenburg] - [#23878]) ([azure_event_hub docs]) (new-integration)
+- geniushub: fix sensor battery level, and bump client ([@zxdavb] - [#24123]) ([geniushub docs])
+- Use importlib metadata to check installed packages ([@balloob] - [#24114])
+- Avoid useless Sonos state updates ([@amelchio] - [#24135]) ([sonos docs])
+- Add SSDP integration ([@balloob] - [#24090]) ([default_config docs]) ([discovery docs]) ([hue docs]) ([ssdp docs]) ([zeroconf docs]) (new-integration)
+- Lovelace: Fire event on save ([@bramkragten] - [#24104]) ([lovelace docs])
+- Use central polling to update entities ([@jjlawren] - [#24059]) ([plex docs])
+- Library refactorization of deCONZ ([@Kane610] - [#23725]) ([deconz docs])
+- Retrieve wire and wireless devices with the SRM device tracker ([@aerialls] - [#24117]) ([synology_srm docs])
+- bump dependency envoy_reader to 0.4 ([@jesserizzo] - [#24145]) ([enphase_envoy docs])
+- Debug log when polling ZHA light. ([@Adminiuga] - [#24167]) ([zha docs])
+- Upgrade huawei-lte-api to 1.2.0 ([@chmielowiec] - [#24165]) ([huawei_lte docs])
+- Use device name for device_tracker entry ([@robbiet480] - [#24155]) ([mobile_app docs])
+- Use global imports for ESPHome ([@OttoWinter] - [#24158]) ([esphome docs])
+- Add Repetier-Server Component ([@MTrab] - [#21658]) ([repetier docs]) (new-platform)
+- Cloud: Websocket API to manage Google assistant entity config ([@balloob] - [#24153]) ([cloud docs]) ([google_assistant docs])
+- Fix calling notify.notify with mobile_app targets in play. Fixes #24064 ([@robbiet480] - [#24156]) ([mobile_app docs])
+- Remove unused Sonos turn on/off methods ([@amelchio] - [#24174]) ([sonos docs])
+- Reinstate passing loop to DSMR ([@balloob] - [#24127]) ([dsmr docs])
+- Trådfri component to use new zeroconf discovery ([@Kane610] - [#24041]) ([discovery docs]) ([tradfri docs]) (breaking change)
+- Move Homekit controller component to user zeroconf discovery ([@Kane610] - [#24042]) ([discovery docs]) ([homekit_controller docs]) (breaking change)
+- Revert Zeroconf back to previously used library ([@Kane610] - [#24139]) ([zeroconf docs])
+- Deprecate Python 3.5.3 ([@balloob] - [#24177]) (breaking change)
+- Keep integrations in discovery ([@Kane610] - [#24179]) ([discovery docs])
+- Avoid slow updates with unavailable Sonos devices ([@amelchio] - [#24180]) ([sonos docs])
+- Support Hass.io wheels / docker env ([@pvizeli] - [#24175])
+- Remove discovery from initial config ([@balloob] - [#24183])
+- Fix duplicated discovered homekit devices ([@Jc2k] - [#24178]) ([homekit_controller docs])
+- Add service calls for LCN component ([@alengwenus] - [#24105]) ([lcn docs])
+
+[#21225]: https://github.com/home-assistant/home-assistant/pull/21225
+[#21658]: https://github.com/home-assistant/home-assistant/pull/21658
+[#22542]: https://github.com/home-assistant/home-assistant/pull/22542
+[#22579]: https://github.com/home-assistant/home-assistant/pull/22579
+[#23067]: https://github.com/home-assistant/home-assistant/pull/23067
+[#23127]: https://github.com/home-assistant/home-assistant/pull/23127
+[#23284]: https://github.com/home-assistant/home-assistant/pull/23284
+[#23299]: https://github.com/home-assistant/home-assistant/pull/23299
+[#23312]: https://github.com/home-assistant/home-assistant/pull/23312
+[#23518]: https://github.com/home-assistant/home-assistant/pull/23518
+[#23606]: https://github.com/home-assistant/home-assistant/pull/23606
+[#23633]: https://github.com/home-assistant/home-assistant/pull/23633
+[#23648]: https://github.com/home-assistant/home-assistant/pull/23648
+[#23725]: https://github.com/home-assistant/home-assistant/pull/23725
+[#23734]: https://github.com/home-assistant/home-assistant/pull/23734
+[#23755]: https://github.com/home-assistant/home-assistant/pull/23755
+[#23759]: https://github.com/home-assistant/home-assistant/pull/23759
+[#23764]: https://github.com/home-assistant/home-assistant/pull/23764
+[#23765]: https://github.com/home-assistant/home-assistant/pull/23765
+[#23770]: https://github.com/home-assistant/home-assistant/pull/23770
+[#23774]: https://github.com/home-assistant/home-assistant/pull/23774
+[#23776]: https://github.com/home-assistant/home-assistant/pull/23776
+[#23777]: https://github.com/home-assistant/home-assistant/pull/23777
+[#23782]: https://github.com/home-assistant/home-assistant/pull/23782
+[#23786]: https://github.com/home-assistant/home-assistant/pull/23786
+[#23790]: https://github.com/home-assistant/home-assistant/pull/23790
+[#23792]: https://github.com/home-assistant/home-assistant/pull/23792
+[#23793]: https://github.com/home-assistant/home-assistant/pull/23793
+[#23802]: https://github.com/home-assistant/home-assistant/pull/23802
+[#23806]: https://github.com/home-assistant/home-assistant/pull/23806
+[#23808]: https://github.com/home-assistant/home-assistant/pull/23808
+[#23810]: https://github.com/home-assistant/home-assistant/pull/23810
+[#23811]: https://github.com/home-assistant/home-assistant/pull/23811
+[#23815]: https://github.com/home-assistant/home-assistant/pull/23815
+[#23816]: https://github.com/home-assistant/home-assistant/pull/23816
+[#23824]: https://github.com/home-assistant/home-assistant/pull/23824
+[#23825]: https://github.com/home-assistant/home-assistant/pull/23825
+[#23829]: https://github.com/home-assistant/home-assistant/pull/23829
+[#23830]: https://github.com/home-assistant/home-assistant/pull/23830
+[#23832]: https://github.com/home-assistant/home-assistant/pull/23832
+[#23833]: https://github.com/home-assistant/home-assistant/pull/23833
+[#23835]: https://github.com/home-assistant/home-assistant/pull/23835
+[#23840]: https://github.com/home-assistant/home-assistant/pull/23840
+[#23842]: https://github.com/home-assistant/home-assistant/pull/23842
+[#23845]: https://github.com/home-assistant/home-assistant/pull/23845
+[#23847]: https://github.com/home-assistant/home-assistant/pull/23847
+[#23856]: https://github.com/home-assistant/home-assistant/pull/23856
+[#23858]: https://github.com/home-assistant/home-assistant/pull/23858
+[#23860]: https://github.com/home-assistant/home-assistant/pull/23860
+[#23862]: https://github.com/home-assistant/home-assistant/pull/23862
+[#23863]: https://github.com/home-assistant/home-assistant/pull/23863
+[#23872]: https://github.com/home-assistant/home-assistant/pull/23872
+[#23873]: https://github.com/home-assistant/home-assistant/pull/23873
+[#23874]: https://github.com/home-assistant/home-assistant/pull/23874
+[#23877]: https://github.com/home-assistant/home-assistant/pull/23877
+[#23878]: https://github.com/home-assistant/home-assistant/pull/23878
+[#23882]: https://github.com/home-assistant/home-assistant/pull/23882
+[#23886]: https://github.com/home-assistant/home-assistant/pull/23886
+[#23890]: https://github.com/home-assistant/home-assistant/pull/23890
+[#23892]: https://github.com/home-assistant/home-assistant/pull/23892
+[#23905]: https://github.com/home-assistant/home-assistant/pull/23905
+[#23907]: https://github.com/home-assistant/home-assistant/pull/23907
+[#23908]: https://github.com/home-assistant/home-assistant/pull/23908
+[#23909]: https://github.com/home-assistant/home-assistant/pull/23909
+[#23916]: https://github.com/home-assistant/home-assistant/pull/23916
+[#23918]: https://github.com/home-assistant/home-assistant/pull/23918
+[#23919]: https://github.com/home-assistant/home-assistant/pull/23919
+[#23921]: https://github.com/home-assistant/home-assistant/pull/23921
+[#23922]: https://github.com/home-assistant/home-assistant/pull/23922
+[#23930]: https://github.com/home-assistant/home-assistant/pull/23930
+[#23931]: https://github.com/home-assistant/home-assistant/pull/23931
+[#23947]: https://github.com/home-assistant/home-assistant/pull/23947
+[#23958]: https://github.com/home-assistant/home-assistant/pull/23958
+[#23960]: https://github.com/home-assistant/home-assistant/pull/23960
+[#23962]: https://github.com/home-assistant/home-assistant/pull/23962
+[#23973]: https://github.com/home-assistant/home-assistant/pull/23973
+[#23976]: https://github.com/home-assistant/home-assistant/pull/23976
+[#23981]: https://github.com/home-assistant/home-assistant/pull/23981
+[#23983]: https://github.com/home-assistant/home-assistant/pull/23983
+[#23984]: https://github.com/home-assistant/home-assistant/pull/23984
+[#23989]: https://github.com/home-assistant/home-assistant/pull/23989
+[#23991]: https://github.com/home-assistant/home-assistant/pull/23991
+[#24001]: https://github.com/home-assistant/home-assistant/pull/24001
+[#24004]: https://github.com/home-assistant/home-assistant/pull/24004
+[#24009]: https://github.com/home-assistant/home-assistant/pull/24009
+[#24015]: https://github.com/home-assistant/home-assistant/pull/24015
+[#24019]: https://github.com/home-assistant/home-assistant/pull/24019
+[#24020]: https://github.com/home-assistant/home-assistant/pull/24020
+[#24022]: https://github.com/home-assistant/home-assistant/pull/24022
+[#24033]: https://github.com/home-assistant/home-assistant/pull/24033
+[#24034]: https://github.com/home-assistant/home-assistant/pull/24034
+[#24037]: https://github.com/home-assistant/home-assistant/pull/24037
+[#24038]: https://github.com/home-assistant/home-assistant/pull/24038
+[#24040]: https://github.com/home-assistant/home-assistant/pull/24040
+[#24041]: https://github.com/home-assistant/home-assistant/pull/24041
+[#24042]: https://github.com/home-assistant/home-assistant/pull/24042
+[#24043]: https://github.com/home-assistant/home-assistant/pull/24043
+[#24049]: https://github.com/home-assistant/home-assistant/pull/24049
+[#24050]: https://github.com/home-assistant/home-assistant/pull/24050
+[#24059]: https://github.com/home-assistant/home-assistant/pull/24059
+[#24066]: https://github.com/home-assistant/home-assistant/pull/24066
+[#24068]: https://github.com/home-assistant/home-assistant/pull/24068
+[#24072]: https://github.com/home-assistant/home-assistant/pull/24072
+[#24078]: https://github.com/home-assistant/home-assistant/pull/24078
+[#24081]: https://github.com/home-assistant/home-assistant/pull/24081
+[#24082]: https://github.com/home-assistant/home-assistant/pull/24082
+[#24084]: https://github.com/home-assistant/home-assistant/pull/24084
+[#24090]: https://github.com/home-assistant/home-assistant/pull/24090
+[#24100]: https://github.com/home-assistant/home-assistant/pull/24100
+[#24102]: https://github.com/home-assistant/home-assistant/pull/24102
+[#24104]: https://github.com/home-assistant/home-assistant/pull/24104
+[#24105]: https://github.com/home-assistant/home-assistant/pull/24105
+[#24108]: https://github.com/home-assistant/home-assistant/pull/24108
+[#24114]: https://github.com/home-assistant/home-assistant/pull/24114
+[#24117]: https://github.com/home-assistant/home-assistant/pull/24117
+[#24118]: https://github.com/home-assistant/home-assistant/pull/24118
+[#24123]: https://github.com/home-assistant/home-assistant/pull/24123
+[#24127]: https://github.com/home-assistant/home-assistant/pull/24127
+[#24135]: https://github.com/home-assistant/home-assistant/pull/24135
+[#24139]: https://github.com/home-assistant/home-assistant/pull/24139
+[#24145]: https://github.com/home-assistant/home-assistant/pull/24145
+[#24153]: https://github.com/home-assistant/home-assistant/pull/24153
+[#24155]: https://github.com/home-assistant/home-assistant/pull/24155
+[#24156]: https://github.com/home-assistant/home-assistant/pull/24156
+[#24158]: https://github.com/home-assistant/home-assistant/pull/24158
+[#24165]: https://github.com/home-assistant/home-assistant/pull/24165
+[#24167]: https://github.com/home-assistant/home-assistant/pull/24167
+[#24174]: https://github.com/home-assistant/home-assistant/pull/24174
+[#24175]: https://github.com/home-assistant/home-assistant/pull/24175
+[#24177]: https://github.com/home-assistant/home-assistant/pull/24177
+[#24178]: https://github.com/home-assistant/home-assistant/pull/24178
+[#24179]: https://github.com/home-assistant/home-assistant/pull/24179
+[#24180]: https://github.com/home-assistant/home-assistant/pull/24180
+[#24183]: https://github.com/home-assistant/home-assistant/pull/24183
+[@Adminiuga]: https://github.com/Adminiuga
+[@BKPepe]: https://github.com/BKPepe
+[@Bouni]: https://github.com/Bouni
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Jc2k]: https://github.com/Jc2k
+[@JeffLIrion]: https://github.com/JeffLIrion
+[@Kane610]: https://github.com/Kane610
+[@MTrab]: https://github.com/MTrab
+[@OttoWinter]: https://github.com/OttoWinter
+[@SiliconAvatar]: https://github.com/SiliconAvatar
+[@SukramJ]: https://github.com/SukramJ
+[@Swamp-Ig]: https://github.com/Swamp-Ig
+[@TomerFi]: https://github.com/TomerFi
+[@adrianschroeter]: https://github.com/adrianschroeter
+[@aerialls]: https://github.com/aerialls
+[@akloeckner]: https://github.com/akloeckner
+[@alengwenus]: https://github.com/alengwenus
+[@amelchio]: https://github.com/amelchio
+[@andrewsayre]: https://github.com/andrewsayre
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bramkragten]: https://github.com/bramkragten
+[@cgarwood]: https://github.com/cgarwood
+[@chmielowiec]: https://github.com/chmielowiec
+[@dreed47]: https://github.com/dreed47
+[@eavanvalkenburg]: https://github.com/eavanvalkenburg
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@fabaff]: https://github.com/fabaff
+[@foxel]: https://github.com/foxel
+[@fredrike]: https://github.com/fredrike
+[@iamtpage]: https://github.com/iamtpage
+[@jardiamj]: https://github.com/jardiamj
+[@jesserizzo]: https://github.com/jesserizzo
+[@jgriff2]: https://github.com/jgriff2
+[@jjlawren]: https://github.com/jjlawren
+[@ludeeus]: https://github.com/ludeeus
+[@mvn23]: https://github.com/mvn23
+[@nugget]: https://github.com/nugget
+[@oblogic7]: https://github.com/oblogic7
+[@outadoc]: https://github.com/outadoc
+[@p0l0]: https://github.com/p0l0
+[@pavoni]: https://github.com/pavoni
+[@pszafer]: https://github.com/pszafer
+[@pvizeli]: https://github.com/pvizeli
+[@robbiet480]: https://github.com/robbiet480
+[@rutkai]: https://github.com/rutkai
+[@sander76]: https://github.com/sander76
+[@scop]: https://github.com/scop
+[@simse]: https://github.com/simse
+[@squishykid]: https://github.com/squishykid
+[@starkillerOG]: https://github.com/starkillerOG
+[@stbenjam]: https://github.com/stbenjam
+[@techfreek]: https://github.com/techfreek
+[@terual]: https://github.com/terual
+[@ties]: https://github.com/ties
+[@tkjacobsen]: https://github.com/tkjacobsen
+[@wickerwaka]: https://github.com/wickerwaka
+[@zewelor]: https://github.com/zewelor
+[@zxdavb]: https://github.com/zxdavb
+[ambiclimate docs]: /components/ambiclimate/
+[androidtv docs]: /components/androidtv/
+[apns docs]: /components/apns/
+[axis docs]: /components/axis/
+[azure_event_hub docs]: /components/azure_event_hub/
+[broadlink docs]: /components/broadlink/
+[camera docs]: /components/camera/
+[cloud docs]: /components/cloud/
+[config docs]: /components/config/
+[daikin docs]: /components/daikin/
+[darksky docs]: /components/darksky/
+[deconz docs]: /components/deconz/
+[default_config docs]: /components/default_config/
+[demo docs]: /components/demo/
+[device_tracker docs]: /components/device_tracker/
+[discovery docs]: /components/discovery/
+[doorbird docs]: /components/doorbird/
+[dsmr docs]: /components/dsmr/
+[emulated_hue docs]: /components/emulated_hue/
+[enphase_envoy docs]: /components/enphase_envoy/
+[esphome docs]: /components/esphome/
+[frontend docs]: /components/frontend/
+[geniushub docs]: /components/geniushub/
+[geofency docs]: /components/geofency/
+[google_assistant docs]: /components/google_assistant/
+[gpslogger docs]: /components/gpslogger/
+[heos docs]: /components/heos/
+[homekit_controller docs]: /components/homekit_controller/
+[homematic docs]: /components/homematic/
+[homematicip_cloud docs]: /components/homematicip_cloud/
+[html5 docs]: /components/html5/
+[http docs]: /components/http/
+[huawei_lte docs]: /components/huawei_lte/
+[hue docs]: /components/hue/
+[icloud docs]: /components/icloud/
+[incomfort docs]: /components/incomfort/
+[iqvia docs]: /components/iqvia/
+[keenetic_ndms2 docs]: /components/keenetic_ndms2/
+[lcn docs]: /components/lcn/
+[locative docs]: /components/locative/
+[loopenergy docs]: /components/loopenergy/
+[lovelace docs]: /components/lovelace/
+[mastodon docs]: /components/mastodon/
+[mcp23017 docs]: /components/mcp23017/
+[media_extractor docs]: /components/media_extractor/
+[media_player docs]: /components/media_player/
+[mobile_app docs]: /components/mobile_app/
+[neato docs]: /components/neato/
+[netatmo docs]: /components/netatmo/
+[netgear docs]: /components/netgear/
+[onboarding docs]: /components/onboarding/
+[opentherm_gw docs]: /components/opentherm_gw/
+[owntracks docs]: /components/owntracks/
+[panel_custom docs]: /components/panel_custom/
+[panel_iframe docs]: /components/panel_iframe/
+[plex docs]: /components/plex/
+[remote_rpi_gpio docs]: /components/remote_rpi_gpio/
+[repetier docs]: /components/repetier/
+[rfxtrx docs]: /components/rfxtrx/
+[russound_rio docs]: /components/russound_rio/
+[script docs]: /components/script/
+[smarthab docs]: /components/smarthab/
+[solax docs]: /components/solax/
+[sonos docs]: /components/sonos/
+[spaceapi docs]: /components/spaceapi/
+[ssdp docs]: /components/ssdp/
+[sun docs]: /components/sun/
+[switcher_kis docs]: /components/switcher_kis/
+[synology_srm docs]: /components/synology_srm/
+[tautulli docs]: /components/tautulli/
+[tradfri docs]: /components/tradfri/
+[vasttrafik docs]: /components/vasttrafik/
+[venstar docs]: /components/venstar/
+[verisure docs]: /components/verisure/
+[watson_tts docs]: /components/watson_tts/
+[websocket_api docs]: /components/websocket_api/
+[xiaomi_aqara docs]: /components/xiaomi_aqara/
+[xiaomi_tv docs]: /components/xiaomi_tv/
+[yeelight docs]: /components/yeelight/
+[zeroconf docs]: /components/zeroconf/
+[zestimate docs]: /components/zestimate/
+[zha docs]: /components/zha/
+[zone docs]: /components/zone/
+[zwave docs]: /components/zwave/
From 4516a0940ea26745dec61b422a030bda94907627 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Wed, 29 May 2019 20:06:10 -0700
Subject: [PATCH 56/85] Add some more notes
---
source/_posts/2019-06-05-release-94.markdown | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index 697bfb67c0b..4a4c50917ae 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -14,12 +14,13 @@ og_image: /images/blog/2019-06-release-94/components.png
New:
- - Possible to store core config in storage. If set in configuration.yaml, it will override storage. Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding.
+ - Possible to store core config in storage. If set in configuration.yaml, it will override storage (this is what anyone coming from 0.93 has). Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding.
+ - Allow deletion of scripts/automations via the UI editor.
+ - This is the first release where a user can use a subset of Home Assistant without using configuration.yaml.
- Step added to onboarding to allow configuring name, location, timezone and unit system.
- Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
- Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
- - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf or SSDP in their manifest, this will be picked up by the zeroconf and ssdp integrations.
- - More cool stuff?
+ - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf or SSDP in their manifest, this will be picked up by the zeroconf and ssdp integrations. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config.
## {% linkable_title New Integrations %}
From c93d94dd1d58b64a76a52ca0e0e7d9457898deda Mon Sep 17 00:00:00 2001
From: Otto Winter
Date: Fri, 31 May 2019 00:36:54 +0200
Subject: [PATCH 57/85] Remove esphome breaking change (#9537)
---
source/_posts/2019-06-05-release-94.markdown | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index 4a4c50917ae..40167c84061 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -57,7 +57,6 @@ Experiencing issues introduced by this release? Please report them in our [issue
- Quiet the chatty sun.sun ([@Swamp-Ig] - [#23832]) ([sun docs]) (breaking change)
- Doorbird Refactor ([@oblogic7] - [#23892]) ([doorbird docs]) (breaking change)
-- ESPHome component to use zeroconf discovery ([@Kane610] - [#24043]) ([esphome docs]) (breaking change)
- Always update all Plex client types ([@jjlawren] - [#24038]) ([plex docs]) (breaking change)
- Fix entity id naming when not using first install ([@tkjacobsen] - [#23606]) ([verisure docs]) (breaking change)
- Update the name of Zestimate sensors ([@dreed47] - [#23770]) ([zestimate docs]) (breaking change)
From 1744091219521a8c7d1b11c85f77931fbe66606e Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Fri, 31 May 2019 13:56:02 -0700
Subject: [PATCH 58/85] Update notes
---
source/_posts/2019-06-05-release-94.markdown | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index 40167c84061..a5d8b8fda62 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -14,13 +14,14 @@ og_image: /images/blog/2019-06-release-94/components.png
New:
- - Possible to store core config in storage. If set in configuration.yaml, it will override storage (this is what anyone coming from 0.93 has). Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding.
+ - Possible to store core config in storage. If set in configuration.yaml, it will override storage (this is what anyone coming from 0.93 has). Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding. Big thanks to [@emontnemery] for this contribution.
- Allow deletion of scripts/automations via the UI editor.
- This is the first release where a user can use a subset of Home Assistant without using configuration.yaml.
- Step added to onboarding to allow configuring name, location, timezone and unit system.
- Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
- Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
- - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf or SSDP in their manifest, this will be picked up by the zeroconf and ssdp integrations. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config.
+ - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf, SSDP or HomeKit in their manifest, this will be picked up by the zeroconf and ssdp integrations. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release. Thanks to [@Kane610], [@Jc2k]
+
## {% linkable_title New Integrations %}
From 0f89c201dcdae21984c4dd09b9abfa6a02da2eb4 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Fri, 31 May 2019 15:17:10 -0700
Subject: [PATCH 59/85] More notes
---
source/_posts/2019-06-05-release-94.markdown | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index a5d8b8fda62..b773f6691e0 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -20,8 +20,8 @@ New:
- Step added to onboarding to allow configuring name, location, timezone and unit system.
- Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
- Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
- - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf, SSDP or HomeKit in their manifest, this will be picked up by the zeroconf and ssdp integrations. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release. Thanks to [@Kane610], [@Jc2k]
-
+ - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf, SSDP or HomeKit in their manifest, this will be picked up by the zeroconf and ssdp integrations, which are part of the default config. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release. Thanks to [@Kane610], [@Jc2k]. If you are not using the `default_config` integration, add `ssdp:` and `zeroconf:` to your configuration.yaml.
+ - We are bringing the device tracker integration into the age of modern integrations. The first step has been to migrating the platforms that use config entries like OwnTracks and GPSLogger. This means that for these integrations, you will now be able to use things like entity registry to change entity ID and name.
## {% linkable_title New Integrations %}
From db243d7fb6f871e019c9539784c6a04d2f48b136 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Fri, 31 May 2019 15:50:05 -0700
Subject: [PATCH 60/85] Update geofency, GPSLogger and owntracks docs
---
source/_components/geofency.markdown | 8 +++----
source/_components/gpslogger.markdown | 4 +---
source/_components/locative.md | 4 +---
source/_components/owntracks.markdown | 30 +++------------------------
4 files changed, 8 insertions(+), 38 deletions(-)
diff --git a/source/_components/geofency.markdown b/source/_components/geofency.markdown
index 86d38f99d84..70abf05f026 100644
--- a/source/_components/geofency.markdown
+++ b/source/_components/geofency.markdown
@@ -16,15 +16,13 @@ redirect_from:
- /components/device_tracker.geofency/
---
-This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a [paid app](https://itunes.apple.com/app/id615538630) for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location.
-
-Enabling this component will automatically enable the Geofency Device Tracker.
+This component sets up integration with [Geofency](http://www.geofency.com/). Geofency is a paid app for iOS that lets users to configure a request that will be sent when a geofence or iBeacon region is entered or exited. This can be configured with Home Assistant to update your location.
## {% linkable_title Configuration %}
To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons.
-Geofency will automatically generate the device tracker name used for geofences, and you will find it in `known_devices.yaml` after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`.
+Geofency will automatically generate the device tracker name used for geofences, and you will find it in the integrations section after the first request. For beacons, the device name will be `beacon_`, e.g., `device_tracker.beacon_car`.
When using mobile beacons (optional) an entry in `configuration.yaml` is still needed as this can't be added via the integrations panel.
@@ -49,4 +47,4 @@ geofency:
When you enter a geofence or stationary beacon, your location name in Home Assistant will be set to the name of the geofence or beacon location in Geofency. When you exit a geofence or stationary beacon, your location name in Home Assistant will be set to `not home`. For mobile beacons, the location name will be `not_home` whenever the beacon is entered or exited outside of a [zone](/components/zone/), otherwise, it will be set to the name of the zone.
-To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited.
\ No newline at end of file
+To make Geofency work better with the [proximity](/components/proximity/) component, you should enable the 'Send Current Location' feature in the Webhook configuration screen. This ensures that the _current_ GPS coordinates are included in exit events instead of the coordinates of the (center of) the zone that was exited.
diff --git a/source/_components/gpslogger.markdown b/source/_components/gpslogger.markdown
index 8f4e5549ac0..eb4e00ceb77 100644
--- a/source/_components/gpslogger.markdown
+++ b/source/_components/gpslogger.markdown
@@ -16,9 +16,7 @@ redirect_from:
- /components/device_tracker.gpslogger/
---
-This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location.
-
-Enabling this component will automatically enable the GPSLogger Device Tracker.
+This component sets up integration with [GPSLogger](https://gpslogger.app/). GPSLogger is an open source app for Android that allows users to update your location in Home Assistant.
## {% linkable_title Configuration %}
diff --git a/source/_components/locative.md b/source/_components/locative.md
index 7aeecdfa8a3..b704054ff02 100644
--- a/source/_components/locative.md
+++ b/source/_components/locative.md
@@ -17,7 +17,7 @@ redirect_from:
---
-Locative is no longer under active development. Read more here
+Locative is no longer under active development.
This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.
@@ -34,5 +34,3 @@ To configure Locative, you must set it up via the integrations panel in the conf
When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home".
-
-To use Locative in combination with another device tracker, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/), fill in the `mac` field to the Locative entry in `known_devices.yaml` with the MAC address of the device you want to track. The state of the device will be determined by the source that reported last.
diff --git a/source/_components/owntracks.markdown b/source/_components/owntracks.markdown
index 7dc33ac5b0e..fafb7ab9573 100644
--- a/source/_components/owntracks.markdown
+++ b/source/_components/owntracks.markdown
@@ -24,17 +24,9 @@ By default the integration will listen for incoming messages from OwnTracks via
-### {% linkable_title Configuring the component %}
+## {% linkable_title Configuration %}
-1. Open the Home Assistant frontend
-1. Open Settings -> integrations
-1. If you see an Owntracks component under 'Configured', delete it.
- - Click on it.
- - Click on the trashcan icon in the upper right corner.
-1. Now, look for Owntracks in 'Setup new integration' and click on CONFIGURE.
-1. The login credentials and configuration for owntracks will be presented to you.
- in a popup window. You will need these in the configuration for the app as mentioned below.
-1. Save these credentials somewhere, as there is no way to get it back at a later point in time if it is lost, besides repeating step 1-5
+To configure OwnTracks, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below).
### {% linkable_title Configuring the app - Android %}
@@ -43,7 +35,7 @@ By default the integration will listen for incoming messages from OwnTracks via
In the OwnTracks app, open sidebar and click on preferences, then on connection. Change the following settings:
- Mode: Private HTTP
- - Host: ``
+ - Host: ``
- Identification:
- Username: ``
- Password: Can be left blank.
@@ -167,19 +159,3 @@ By default, any Owntracks user connected to Home Assistant can export their wayp
1. The configuration variable `waypoints` can be set to `false` which will disable importing waypoints for all users.
2. The configuration variable `waypoint_whitelist` can contain a list of users who are allowed to import waypoints.
-
-## {% linkable_title Using Owntracks with other device trackers %}
-
-Owntracks can also be used with other device trackers, such as [Nmap](/components/device_tracker.nmap_tracker/) or [Netgear](/components/device_tracker.netgear/). To do this, fill in the `mac` field to the Owntracks entry in `known_devices.yaml` with the MAC address of the device you want to track. This way the state of the device will be determined by the source that reported last. The naming convention for known device list is `_` and could be set in app configuration. More details about this config can found in [device tracker](/components/device_tracker/).
-
-An example showing the inclusion of the `mac` field for multiple component tracking. The `mac` field will need to be added to the `owntracks` device and will enable tracking by all components that track via the `mac` address.
-
-```yaml
-USERNAME_DEVICE_ID:
- name: Friendly Name
- mac: EA:AA:55:E7:C6:94
- picture: https://www.home-assistant.io/images/favicon-192x192.png
- gravatar: test@example.com
- track: true
- hide_if_away: false
-```
From b4cae19d564393f5a22ee173727fdf31b62453c7 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen
Date: Mon, 3 Jun 2019 14:03:20 -0700
Subject: [PATCH 61/85] Update blog post 94
---
source/_posts/2019-06-05-release-94.markdown | 50 ++++++++++++++----
.../blog/2019-06-release-94/google-ui.png | Bin 0 -> 81847 bytes
2 files changed, 41 insertions(+), 9 deletions(-)
create mode 100644 source/images/blog/2019-06-release-94/google-ui.png
diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown
index b773f6691e0..8d67dd662e7 100644
--- a/source/_posts/2019-06-05-release-94.markdown
+++ b/source/_posts/2019-06-05-release-94.markdown
@@ -13,15 +13,47 @@ og_image: /images/blog/2019-06-release-94/components.png
-New:
- - Possible to store core config in storage. If set in configuration.yaml, it will override storage (this is what anyone coming from 0.93 has). Note that configuration.yaml will no longer contain any automatic detected values when writing initial configuration. This feature is available via the UI during onboarding. Big thanks to [@emontnemery] for this contribution.
- - Allow deletion of scripts/automations via the UI editor.
- - This is the first release where a user can use a subset of Home Assistant without using configuration.yaml.
- - Step added to onboarding to allow configuring name, location, timezone and unit system.
- - Python 3.5.3 deprecated, support will be dropped in the first release after August 1.
- - Add UI to manage Google Entities exposed via Home Assistant Cloud. To use, remove filters from configuration.yaml. Also allows disabling 2 factor authentication on a per device basis.
- - Discovery has been redone. Integrations can now specify how they are discoverable via Zeroconf, SSDP or HomeKit in their manifest, this will be picked up by the zeroconf and ssdp integrations, which are part of the default config. The new discovery is non-obtrusive: nothing is added to your configuration without approval by the user. You can find integrations pending approval in the discovered section of the integrations page in the config. Only a handful of integrations have been migrated to the new approach in this release. Thanks to [@Kane610], [@Jc2k]. If you are not using the `default_config` integration, add `ssdp:` and `zeroconf:` to your configuration.yaml.
- - We are bringing the device tracker integration into the age of modern integrations. The first step has been to migrating the platforms that use config entries like OwnTracks and GPSLogger. This means that for these integrations, you will now be able to use things like entity registry to change entity ID and name.
+It is time for the 0.94 release and there is some seriously good stuff in this release. We're working hard on polishing everything and getting ready for the big Home Assistant 1.0 release. And we're getting closer. So close actually, that this is the first release that can be installed and configured without touching any `configuration.yaml`! Onboard, configure integrations, manage automations and scripts all from the UI.
+
+
The 0.94 release of @home_assistant will be the first release where you can onboard, configure integrations (not all) and set up automations without touching configuration.yaml. pic.twitter.com/AZNG1VWhF1
+
+This milestone has been achieved thanks to the hard work by [@emontnemery] who contributed the ability to store the core config in storage: name, location, unit system, time zone. We still allow users to store their core configuration in `configuration.yaml`, which will take precedent when defined. This means that it is a non-breaking change. Core config is now set during onboarding and can be edited in the general page of the config panel.
+
+Another cool new feature is the total revamp of how you manage which entities are exposed to Google Assistant via Home Assistant Cloud. From the cloud UI you can now click "Manage Entities" and you are brought to the Google Assistant entity manager. From here you can enable which entities are exposed and, if you deem appropriate, choose to disable the two factor authentication on your garage door (the asking for a pin).
+
+
+
+Screenshot of the new user interface to manage which entities are exposed to Google Assistant.
+