diff --git a/_config.yml b/_config.yml
index 3c7d621330a..d5ce920282a 100644
--- a/_config.yml
+++ b/_config.yml
@@ -46,13 +46,13 @@ plugins:
- jekyll-redirect-from
- jekyll-time-to-read
-paginate: 10 # Posts per page on the blog index
-paginate_path: "blog/posts/:num" # Directory base for pagination URLs eg. /posts/2/
-recent_posts: 5 # Posts in the sidebar Recent Posts section
-excerpt_link: "Read on →" # "Continue reading" link text at the bottom of excerpted articles
+paginate: 10 # Posts per page on the blog index
+paginate_path: "blog/posts/:num" # Directory base for pagination URLs eg. /posts/2/
+recent_posts: 5 # Posts in the sidebar Recent Posts section
+excerpt_link: "Read on →" # "Continue reading" link text at the bottom of excerpted articles
excerpt_separator: ""
-titlecase: true # Converts page and post titles to titlecase
+titlecase: true # Converts page and post titles to titlecase
# Each layout uses the default asides, but they can have their own asides instead. Simply uncomment the lines below
# and add an array with the asides you want to use.
@@ -98,9 +98,9 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 95
-current_patch_version: 4
-date_released: 2019-06-29
+current_minor_version: 96
+current_patch_version: 0
+date_released: 2019-07-17
# 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/_components/arcam_fmj.markdown b/source/_components/arcam_fmj.markdown
new file mode 100644
index 00000000000..bd47be6b678
--- /dev/null
+++ b/source/_components/arcam_fmj.markdown
@@ -0,0 +1,103 @@
+---
+layout: page
+title: "Arcam FMJ Receivers"
+description: "Instructions on how to integrate Arcam FMJ Receivers into Home Assistant."
+date: 2019-04-28 13:59 +0200
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: arcam.svg
+ha_category: Media Player
+ha_release: 0.96
+ha_iot_class: Local Polling
+---
+
+The `arcam_fmj` integration allows you to control [Arcam FMJ Receveivers](https://www.arcam.co.uk/range/fmj.htm) from Home Assistant.
+
+Supported devices:
+
+- AVR 380
+- AVR 450
+- AVR 750
+- Likely other AVRs
+
+## Configuration
+
+To add an Arcam FMJ to your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Minimal example configuration.yaml entry
+arcam_fmj:
+ - host: HOSTNAME
+ zone:
+ 1:
+```
+
+{% configuration %}
+host:
+ description: IP address or hostname of the device.
+ required: true
+ type: string
+port:
+ description: Port to connect to.
+ required: false
+ default: 50000
+ type: integer
+zone:
+ description: Per zone specific configuration
+ type: map
+ keys:
+ ZONE_INDEX:
+ name:
+ description: Name of zone
+ required: false
+ type: string
+ default: Arcam FMJ - ZONE_INDEX
+ turn_on:
+ description: Service to use when turning on device when no connection is established
+ required: false
+ type: action
+{% endconfiguration %}
+
+```yaml
+# Larger example configuration.yaml entry
+media_player:
+ - platform: arcam_fmj
+ host: HOSTNAME
+ zone:
+ 1:
+ name: "Zone 1 name"
+ turn_on:
+ service: 'broadlink.send'
+ data:
+ host: BROADLINK_IR_IP
+ packet: JgAVADodHTo6HR0dHR0dOh0dHR06Oh0dHQ0FAA==
+ 2:
+ name: "Zone 2 name"
+ turn_on:
+ service: 'broadlink.send'
+ data:
+ host: BROADLINK_IR_IP
+ packet: JgAYADodHTo6Oh0dHR0dHR0dHR06Oh0dHQALZw0FAAAAAAAAAAAAAAAAAAA=
+```
+
+## Power state
+
+Arcam FMJ receivers turn off their network port when in standby, the component will try to
+reconnect to the receiver every 5 seconds. This mean powering on the first zone is not
+possible over the builtin network connection. Two options for complete power control
+exists: IR or Serial gateway.
+
+### IR command
+
+Use an IR blaster to send a command to turn the device on using these discrete codes:
+
+ - Zone 1: Protocol: NEC1 Device: 16 Function: 123
+ - Zone 2: Protocol: NEC1 Device: 23 Function: 123
+
+### Serial Port to network gateway
+
+Use a network to a serial port gateway to connect to the serial port of the
+receiver. The serial port is always available and can power on the device.
+This is the most reliable communication method as well.
diff --git a/source/_components/aurora_abb_powerone.markdown b/source/_components/aurora_abb_powerone.markdown
new file mode 100644
index 00000000000..ac40f5dab11
--- /dev/null
+++ b/source/_components/aurora_abb_powerone.markdown
@@ -0,0 +1,65 @@
+---
+layout: page
+title: "Aurora ABB Powerone PV Inverter Sensor"
+description: "Instructions on how to integrate an Aurora ABB Powerone solar inverter within Home Assistant."
+date: 2019-06-27 23:30
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: powerone.png
+ha_category:
+ - Sensor
+ - Energy
+ha_release: 0.96
+ha_iot_class: Local Polling
+---
+
+This implements a direct RS485 connection to a solar inverter in the
+PVI-3.0/3.6/4.2-TL-OUTD ABB series, and may work on others.
+The inverter was formerly made by PowerOne who got taken over by ABB.
+
+The TCP/IP method of communicating with inverters is supported by the
+Python library, but not by this implementation in this integration.
+
+This integration provides a single sensor which reports the live power output
+in watts.
+
+Note the PV inverter will be unresponsive to communications when in darkness,
+so the value 'unknown' will be displayed during the night.
+
+## Configuration
+
+Add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: aurora_abb_powerone
+ device: 'SERIAL_PORT'
+```
+
+{% configuration %}
+device:
+ description: The serial port your RS485 adaptor is connected to.
+ required: true
+ type: string
+address:
+ description: The address of the inverter - only need to set this if you have changed your inverter away from the default address of 2.
+ required: false
+ type: integer
+ default: 2
+name:
+ description: Name of the sensor to use in the frontend.
+ required: false
+ default: Solar PV
+ type: string
+{% endconfiguration %}
+
+```yaml
+# Example configuration.yaml entry for aurora_abb_powerone platform
+sensor:
+ - platform: aurora_abb_powerone
+ address: 2
+ device: '/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0'
+```
diff --git a/source/_components/climate.knx.markdown b/source/_components/climate.knx.markdown
index 15d683e1084..9abcffc5443 100644
--- a/source/_components/climate.knx.markdown
+++ b/source/_components/climate.knx.markdown
@@ -63,14 +63,21 @@ climate:
`operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` are not necessary if `operation_mode_address` is specified.
-The following values are valid for the `operation_modes` attribute:
+The following values are valid for the `hvac_mode` attribute:
-- Comfort (maps internally to STATE_HEAT within Home Assistant)
-- Standby (maps internally to STATE_ECO within Home Assistant)
-- Night (maps internally to STATE_IDLE within Home Assistant)
-- Frost Protection (maps internally to STATE_MANUAL within Home Assistant)
-- Fan only (maps internally to STATE_FAN_ONLY within Home Assistant)
-- Dehumidification (maps internally to STATE_DRY within Home Assistant)
+- Off (maps internally to HVAC_MODE_OFF within Home Assistant)
+- Auto (maps internally to HVAC_MODE_AUTO within Home Assistant)
+- Heat (maps internally to HVAC_MDOE_HEAT within Home Assistant)
+- Cool (maps internally to HVAC_MDOE_COOL within Home Assistant)
+- Fan only (maps internally to HVAC_MODE_FAN_ONLY within Home Assistant)
+- Dry (maps internally to HVAC_MODE_DRY within Home Assistant)
+
+The following presets are valid for the `preset_mode` attribute:
+
+- Comfort (maps internally to PRESET_COMFORT within Home Assistant)
+- Standby (maps internally to PRESET_AWAY within Home Assistant)
+- Night (maps internally to PRESET_SLEEP within Home Assistant)
+- Frost Protection (maps internally to PRESET_ECO within Home Assistant)
{% configuration %}
name:
diff --git a/source/_components/climate.markdown b/source/_components/climate.markdown
index c0944fa8291..8431c9f216f 100644
--- a/source/_components/climate.markdown
+++ b/source/_components/climate.markdown
@@ -13,7 +13,8 @@ The `climate` integration is built for the controlling and monitoring of HVAC (h
## Services
### Climate control services
-Available services: `climate.set_aux_heat`, `climate.set_away_mode`, `climate.set_temperature`, `climate.set_humidity`, `climate.set_fan_mode`, `climate.set_operation_mode`, `climate.set_swing_mode`, `climate.set_hold_mode`, `climate.turn_on`, `climate.turn_off`
+
+Available services: `climate.set_aux_heat`, `climate.set_preset_mode`, `climate.set_temperature`, `climate.set_humidity`, `climate.set_fan_mode`, `climate.set_hvac_mode`, `climate.set_swing_mode`, `climate.turn_on`, `climate.turn_off`
\
@@ -30,7 +31,7 @@ Turn auxiliary heater on/off for climate device
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
| `aux_heat` | no | New value of auxiliary heater.
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -44,18 +45,18 @@ automation:
aux_heat: true
```
-### Service `climate.set_away_mode`
+### Service `climate.set_preset_mode`
-Set away mode for climate device. The away mode changes the target temperature permanently to a temperature
+Set preset mode for climate device. The away mode changes the target temperature permanently to a temperature
reflecting a situation where the climate device is set to save energy. This may be used to emulate a
"vacation mode", for example.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `away_mode` | no | New value of away mode.
+| `preset_mode` | no | New value of preset mode.
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -63,37 +64,10 @@ automation:
platform: time
at: "07:15:00"
action:
- - service: climate.set_away_mode
+ - service: climate.set_preset_mode
data:
entity_id: climate.kitchen
- away_mode: 'on'
-```
-
-
-### Service `climate.set_hold_mode`
-
-Set hold mode for climate device. The hold mode changes the target temperature of the client device temporarily to
-a different temperature. Typical hold modes provided by a climate device are "away" or "home", where the hold temperature
-is chosen depending on a predefined climate, or "temperature" hold, where a particular temperature is selected as the
-temporary target temperature. The particular modes available depend on the climate device.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `hold_mode` | no | New value of hold mode.
-
-#### Automation example
-
-```yaml
-automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
- - service: climate.set_hold_mode
- data:
- entity_id: climate.kitchen
- hold_mode: 'away'
+ preset_mode: 'eco'
```
### Service `climate.set_temperature`
@@ -108,7 +82,7 @@ Set target temperature of climate device
| `target_temp_low` | yes | New target low temperature for hvac
| `operation_mode` | yes | Operation mode to set temperature to. This defaults to current_operation mode if not set, or set incorrectly.
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -132,7 +106,7 @@ Set target humidity of climate device
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
| `humidity` | no | New target humidity for climate device
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -155,7 +129,7 @@ Set fan operation for climate device
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
| `fan_mode` | no | New value of fan mode
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -169,16 +143,16 @@ automation:
fan_mode: 'On Low'
```
-### Service `climate.set_operation_mode`
+### Service `climate.set_hvac_mode`
-Set operation mode for climate device
+Set HVAC mode for climate device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `operation_mode` | no | New value of operation mode
+| `hvac_mode` | no | New value of HVAC mode
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -186,10 +160,10 @@ automation:
platform: time
at: "07:15:00"
action:
- - service: climate.set_operation_mode
+ - service: climate.set_hvac_mode
data:
entity_id: climate.kitchen
- operation_mode: Heat
+ operation_mode: heat
```
### Service `climate.set_swing_mode`
@@ -201,7 +175,7 @@ Set operation mode for climate device
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
| `swing_mode` | no | New value of swing mode
-#### Automation example
+#### Automation example
```yaml
automation:
@@ -214,9 +188,10 @@ automation:
entity_id: climate.kitchen
swing_mode: 1
```
+
### Service `climate.turn_on`
-Turn climate device on
+Turn climate device on. This is only supported if the climate device supports being turned off.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
@@ -224,7 +199,7 @@ Turn climate device on
### Service `climate.turn_off`
-Turn climate device off
+Turn climate device off. This is only supported if the climate device has the hvac mode "off".
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
diff --git a/source/_components/climate.mqtt.markdown b/source/_components/climate.mqtt.markdown
index b5f2559ca88..dca79228e42 100644
--- a/source/_components/climate.mqtt.markdown
+++ b/source/_components/climate.mqtt.markdown
@@ -197,6 +197,9 @@ hold_state_template:
description: A template to render the value received on the `hold_state_topic` with.
required: false
type: template
+hold_modes:
+ description: A list of available hold modes.
+ required: false
aux_command_topic:
description: The MQTT topic to publish commands to switch auxiliary heat.
required: false
diff --git a/source/_components/climate.mysensors.markdown b/source/_components/climate.mysensors.markdown
index 9bce0fd35b5..af439534add 100644
--- a/source/_components/climate.mysensors.markdown
+++ b/source/_components/climate.mysensors.markdown
@@ -23,10 +23,10 @@ V_HVAC_FLOW_STATE is mapped to the state of the Climate integration in Home Assi
Home Assistant State | MySensors State
---------------------|----------------
-STATE_COOL | CoolOn
-STATE_HEAT | HeatOn
-STATE_AUTO | AutoChangeOver
-STATE_OFF | Off
+HVAC_MODE_COOL | CoolOn
+HVAC_MODE_HEAT | HeatOn
+HVAC_MODE_AUTO | AutoChangeOver
+HVAC_MODE_OFF | Off
Currently humidity, away_mode, aux_heat, swing_mode is not supported. This will be included in later versions as feasible.
@@ -40,7 +40,6 @@ For more information, visit the [serial api] of MySensors.
### Example sketch for MySensors 2.x
-
```cpp
/*
* Documentation: http://www.mysensors.org
diff --git a/source/_components/cups.markdown b/source/_components/cups.markdown
index 1a5380a7052..e65d00fd32d 100644
--- a/source/_components/cups.markdown
+++ b/source/_components/cups.markdown
@@ -11,7 +11,7 @@ redirect_from:
---
-The `cups` sensor platform is using the open source printing system [CUPS](https://www.cups.org/) to show details about your printers.
+The `cups` sensor platform is using the open source printing system [CUPS](https://www.cups.org/) to show details about your printers, including the ink levels. It can obtain the informations using a CUPS server or communicating directly with the printer with the Internet Printing Protocol.
## Setup
@@ -38,18 +38,22 @@ sensor:
{% configuration %}
printers:
- description: List of printers to add.
+ description: List of printers to add. If you're not using a CUPS server, add here your "Printer Name".
required: true
type: list
host:
- description: IP address of the CUPS print server.
+ description: The IP address of the CUPS print server or of the printer.
required: false
type: string
default: 127.0.0.1
port:
- description: Port of the CUPS print server.
+ description: The port number of the CUPS print server or of the printer.
required: false
type: integer
default: 631
+is_cups_server:
+ description: Set true if you want to use a CUPS print server, set false otherwise.
+ required: false
+ type: boolean
+ default: true
{% endconfiguration %}
-
diff --git a/source/_components/daikin.markdown b/source/_components/daikin.markdown
index ba60ca2fbe1..eb93f8840dc 100644
--- a/source/_components/daikin.markdown
+++ b/source/_components/daikin.markdown
@@ -30,7 +30,7 @@ There is currently support for the following device types within Home Assistant:
## Configuration
-The Daikin integration can be configured in three ways.
+The Daikin integration can be configured in three ways.
- Automatically via the [discovery]({{site_root}}/components/discovery/) integration.
- Via the Home Assistant user interface where it will let you enter the IP-address of your Daikin AC.
@@ -55,12 +55,11 @@ hosts:
The `daikin` climate platform integrates Daikin air conditioning systems into Home Assistant, enabling control of setting the following parameters:
-- [**mode**](/components/climate#service-climateset_operation_mode) (cool, heat, dry, fan only or auto)
-- [**target temperature**](/components/climate#service-climateset_temperature)
-- [**fan mode**](/components/climate#service-climateset_fan_mode) (speed)
-- [**swing mode**](/components/climate#service-climateset_swing_mode)
-- [**turn on/off**](/components/climate#service-climateturn_on)
-- [**away mode**](/components/climate#service-climateset_away_mode)
+- [**set_hvac_mode**](/components/climate/#service-climateset_hvac_mode) (off, heat, cool, auto, or fan only)
+- [**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)
+- [**set_preset_mode**](https://www.home-assistant.io/components/climate#service-climateset_away_mode) (away, home)
Current inside temperature is displayed.
diff --git a/source/_components/deutsche_bahn.markdown b/source/_components/deutsche_bahn.markdown
index ed245b24176..de305669bd2 100644
--- a/source/_components/deutsche_bahn.markdown
+++ b/source/_components/deutsche_bahn.markdown
@@ -31,6 +31,11 @@ to:
description: The name of the end/destination station.
required: true
type: string
+offset:
+ description: Do not display departures leaving sooner than this number of minutes. Useful if you are a couple of minutes away from the stop.
+ required: false
+ type: time
+ default: 00:00
only_direct:
description: Only show direct connections.
required: false
diff --git a/source/_components/dyson.markdown b/source/_components/dyson.markdown
index f7d6fb2edfd..77e5c3fb157 100644
--- a/source/_components/dyson.markdown
+++ b/source/_components/dyson.markdown
@@ -126,7 +126,7 @@ This integration supports the following services (see [Climate](/components/clim
- [`turn_off`](/components/climate/#service-climateturn_off)
- [`set_temperature`](/components/climate/#service-climateset_temperature)
- [`set_fan_mode`](/components/climate/#service-climateset_fan_mode)
-- [`set_operation_mode`](/components/climate/#service-climateset_operation_mode)
+- [`set_hvac_mode`](/components/climate/#service-climateset_hvac_mode)
## Fan
diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown
index bc33d0ea067..3fe50fb3ce6 100644
--- a/source/_components/ecobee.markdown
+++ b/source/_components/ecobee.markdown
@@ -112,264 +112,37 @@ The _target temperature_ is the temperature that the device attempts
to achieve. The target temperature is either determined by the
currently active climate or it may be overridden by a hold. When the
thermostat is not in auto mode, there is a single target
-temperature. When the thermostat is in auto operation mode, there is a
+temperature. When the thermostat is in auto HVAC mode, there is a
pair of target temperatures: the lower target temperature determines
the lowest desired temperature, while the higher target temperature
determines the highest desired temperature (the thermostat will switch
between heating and cooling to keep the temperature within these
limits).
-A _climate_ is a predefined or user-defined set of states that the
+A _climate_ is a predefined or user-defined set of presets that the
thermostat aims to achieve. The ecobee thermostat provides three predefined
climates: Home, Away, and Sleep. The user can define additional climates.
-A _hold_ is an override of the target temperature defined in the
-currently active climate. The temperature targeted in the hold mode may be
-explicitly set (temperature hold), it may be derived from a reference
+A _preset_ is an override of the target temperature defined in the
+currently active climate. The temperature targeted in the preset mode may be
+explicitly set (temperature preset), it may be derived from a reference
climate (home, away, sleep, etc.), or it may be derived from a vacation
defined by the thermostat. All holds are temporary. Temperature and
climate holds expire when the thermostat transitions to the next climate
defined in its program. A vacation hold starts at the beginning of the
defined vacation period, and expires when the vacation period ends.
-When in _away mode_, the target temperature is permanently overridden by
-the target temperature defined for the away climate. The away mode is a
+When in _away preset_, the target temperature is permanently overridden by
+the target temperature defined for the away climate. The away preset is a
simple way to emulate a vacation mode.
-The _operation mode_ of the device is the currently active operational
+The _HVAC mode_ of the device is the currently active operational
modes that the Ecobee thermostat provides: heat, auxHeatOnly, cool,
auto, and off.
-## Attributes
-
-The following attributes are provided by the Ecobee Thermostat:
-`name`, `temperature_unit`, `current_temperature`, `target_temperature`,
-`target_temperature_low`, `target_temperature_high`, `desired_fan_mode`,
-`fan`, `current_hold_mode`, `operation`, `operation_list`, `equipment_running`,
-`operation_mode`, `mode`, `fan_min_on_time`, `device_state_attributes`,
-`is_away_mode_on`, `vacation`, `climate_list`, `aux_heat`.
-The attributes `min_temp` and `max_temp` are meaningless constant values.
-
-### Attribute `name`
-
-Returns the name of the Ecobee Thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | Name of the Ecobee Thermostat
-
-### Attribute `temperature_unit`
-
-Returns the unit of measurement used for temperature by the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | Name of the temperature unit
-
-### Attribute `current_temperature`
-
-Returns the current temperature measured by the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Currently measured temperature
-
-### Attribute `target_temperature`
-
-Returns the target temperature of the thermostat, when the thermostat is
-not in auto operation mode.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Target temperature
-
-### Attribute `target_temperature_low`
-
-Returns the desired heating temperature set in the thermostat when in
-auto operation mode.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Target temperature
-
-### Attribute `target_temperature_high`
-
-Returns the desired cooling temperature set in the thermostat when in
-auto operation mode.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Target temperature
-
-### Attribute `desired_fan_mode`
-
-Returns the desired fan mode of the current operation.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | 'on', 'off'
-
-### Attribute `fan`
-
-Returns the current fan state.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | 'on', 'off'
-
-### Attribute `current_hold_mode`
-
-Returns the current temperature hold, if any.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | 'temp', 'vacation', 'home', 'away', etc., None
-
-### Attribute `operation`
-
-Returns the current operation of the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | 'auto', 'cool', 'heat', 'off'
-
-### Attribute `operation_list`
-
-Returns the list of available operation modes.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| List of String | Available operation modes
-
-### Attribute `operation_mode`
-
-Returns the current operation mode of the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | Currently active operation mode
-
-### Attribute `equipment_running`
-
-Returns the list of equipment that is currently operating from the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | If no equipment is currently running empty string is returned. Possible values are a comma separated list of any of the following: heatPump, heatPump2, heatPump3, compCool1, compCool2, auxHeat1, auxHeat2, auxHeat3, fan, humidifier, dehumidifier, ventilator, economizer, compHotWater, auxHotWater.
-
-### Attribute `mode`
-
-Returns the climate currently active on the thermostat. The mode
-is returned as the user-visible name (rather than the internally used name).
-
-### Attribute `fan_min_on_time`
-
-Returns the current fan minimum on time.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Current fan minimum on time in minutes
-
-### Attribute `is_away_mode_on`
-
-Returns whether the thermostat is in away mode (see the corresponding
-service for more detail).
-
-### Attribute `actual humidity`
-
-Returns the humidity as measured by the thermostat.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| Integer | Current humidity
-
-### Attribute `vacation`
-
-Returns the currently active vacation or `None`.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | Name of currently active vacation |
-
-### Attribute `climate_list`
-
-Returns the list of climates defined in the thermostat.
-
-### Attribute `aux_heat`
-
-Returns the current auxiliary heat state.
-
-| Attribute type | Description |
-| ---------------| ----------- |
-| String | 'on', 'off'
-
## Services
-The following services are provided by the Ecobee Thermostat:
-`set_away_mode`, `set_hold_mode`, `set_temperature`, `set_operation_mode`,
-`fan_min_on_time`, `resume_program`.
-The services `set_aux_heat`, `set_humidity`, `set_fan_mode`, and
-`set_swing_mode` offered by the [Climate component](/components/climate/)
-are not implemented for this thermostat.
-
-### Service `set_away_mode`
-
-Turns Away Mode on or off, ignoring the next scheduled activity. This setting will override the thermostat Hold Duration setting, even if you set the hold duration to "Until the next scheduled activity" within thermostat preferences.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `away_mode` | no | 'on' or 'off'
-
-### Service `set_hold_mode`
-
-Puts the thermostat into the given hold mode. For 'home', 'away', 'sleep',
-and any other hold based on a comfort setting, the
-target temperature is set to whatever is programmed in the comfort setting.
-For 'temp', the current temperature is taken as the target temperature.
-When None is provided as parameter, the hold_mode is turned off.
-If the thermostat Hold Duration is set to "Until the next scheduled activity" within thermostat preferences, then the next scheduled activity will change this hold mode.
-Note that it is not possible to set a vacation hold; this must be defined on the thermostat directly. However, a vacation hold can be
-canceled.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `hold_mode` | no | `temp`, `home`, `away`, `sleep`, `None`, `smart1`, `smart2`, etc.
-
-NOTE: If you create custom hold modes (also known as "Comfort Settings") on your ecobee.com dashboard, their hold_modes are `smart1`, `smart2`, `smart3`, etc. The number for each custom mode should match the mode's icon on your ecobee.com dashboard. Also note that the mode numbers/icons in the ecobee mobile app *may not match* the numbers/icons from the ecobee.com web dashboard. The ones on the website are the ones you shoud use to determine the correct `smartX` hold_mode IDs.
-
-### Service `set_temperature`
-
-Puts the thermostat into a temporary hold at the given temperature.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `target_temp_low` | no | Desired heating target temperature (when in auto mode)
-| `target_temp_high` | no | Desired cooling target temperature (when in auto mode)
-| `temperature` | no | Desired target temperature (when not in auto mode)
-
-Only the target temperatures relevant for the current operation mode need to
-be provided.
-
-### Service `set_operation_mode`
-
-Sets the current operation mode of the thermostat.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `operation_mode` | no | 'auto', 'auxHeatOnly', 'cool', 'heat', 'off'
-
-### Service `fan_min_on_time`
-
-Sets the fan minimum on time.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
-| `fan_min_on_time` | no | Desired fan minimum on time
+The following extra services are provided by the Ecobee Thermostat: `resume_program`.
### Service `resume_program`
diff --git a/source/_components/enphase_envoy.markdown b/source/_components/enphase_envoy.markdown
index c851b3dac55..18d346c8cb8 100644
--- a/source/_components/enphase_envoy.markdown
+++ b/source/_components/enphase_envoy.markdown
@@ -60,4 +60,6 @@ monitored_conditions:
description: The energy in Wh consumed the last 7 days.
lifetime_consumption:
description: The energy in Wh consumed in the lifetime of the Envoy.
+ inverters:
+ description: The power in W being produced by each micro-inverter. This will create a separate sensor for each micro-inverter you have installed. These sensors will only update about every 15 minutes, this is a limitation of the Enphase Envoy API.
{% endconfiguration %}
diff --git a/source/_components/evohome.markdown b/source/_components/evohome.markdown
index 15df1375410..37579a80c23 100644
--- a/source/_components/evohome.markdown
+++ b/source/_components/evohome.markdown
@@ -11,19 +11,31 @@ redirect_from:
- /components/climate.evohome/
---
-The `evohome` integration is the main integration to set up and integrate all _non-US_ [Honeywell Total Connect Comfort (TCC)](https://international.mytotalconnectcomfort.com/Account/Login) CH/DHW systems, primarily the Honeywell evohome multi-zone CH/DHW system. It does not support the home security functionality of TCC.
+The `evohome` integration links Home Assistant with all _non-US_ [Honeywell Total Connect Comfort (TCC)](https://international.mytotalconnectcomfort.com/Account/Login) CH/DHW systems, such as:
+ * the Honeywell evohome CH/DHW system, and
+ * the Honeywell Round Thermostat
-It uses v2 of the [evohome-client](https://github.com/watchforstock/evohome-client) client library and so will let you control (only) EU/international systems. It _does not_ leverage the [somecomfort](https://github.com/kk7ds/somecomfort) client library as used by US-based systems; for those, you may find what you need at the [honeywell climate platform](/components/climate.honeywell/).
+It does not support the home security functionality of TCC.
-Currently, only Controllers and Heating zones are supported; support for DHW controllers will be added at a later time. More information is available on the [evohome climate platform](#climate) page.
+It uses v2 of the [evohome-client](https://github.com/watchforstock/evohome-client) client library.
-There is currently support for the following device types within Home Assistant:
+Honeywell removed support for higher-precision temperatures from the v2 API, so temperatures are reported to the nearest 0.5C.
-- [Climate](#climate)
+### evohome
+
+evohome is a multi-zone system. Each Zone is represented as a **Climate** device: it will expose the Zone's operating mode, temperature and setpoint.
+
+The Controller/Location is also represented as a **Climate** device: it will expose the location's operating mode (see below for details). Note that the Controller's temperatures are calculated as an average of all the Zones.
+
+The DHW controller is represented as a **WaterHeater** device: It will report its current temperature (but not target temperature), and it can be turned on or off.
+
+### Round Thermostat
+
+Round Thermostat is a single zone system. It is currently implemented as two **Climate** devices, as if a single zone evohome system.
## Configuration
-To use this integration in your installation, add the following to your `configuration.yaml` file:
+To set up this integration, add the following to your **configuration.yaml** file:
```yaml
# Example configuration.yaml entry
@@ -47,44 +59,40 @@ location_idx:
type: integer
default: 0
scan_interval:
- description: How often updates are retreived from Honeywell's web servers. The minimum value is 180 seconds, rounded up to the nearest minute.
+ description: How often updates are retrieved from Honeywell's web servers. The minimum value is 60 seconds.
required: false
type: integer
default: 300
{% endconfiguration %}
-This is an IoT cloud-polling device, and the recommended minimum `scan_interval` is 300 seconds. Testing has indicated that this is a safe interval that - by itself - shouldn't cause you to be rate-limited by Honeywell.
+This is an IoT cloud-polling device, and the recommended `scan_interval` is 180 seconds. Testing has indicated that this is a safe interval that - by itself - shouldn't cause you to be rate-limited by Honeywell.
-## Climate
+## Operating modes, and Inheritance
-It is distinct from - but related to - the [`honeywell`](/components/climate.honeywell/) climate platform, which also allows (limited) integration with Honeywell Connected thermostats; these two integrations may well be usable side-by-side, but YMMV.
+Zones support only three setpoint modes: **FollowSchedule**, **TemporaryOverride**, and **PermanentOverride**.
-The evohome evotouch Controller supports seven distict operating modes: Auto, AutoWithEco, Away, DayOff, HeatingOff, and Custom; AutoWithReset is a 7th, hidden, mode.
+Mostly, the Zone 'inherits' its functional operating mode from the controller (the actual algorithm for this is a little complicated).
-Currently, only the standard HA operating modes are supported; the evohome modes are mapped thus: 'Eco' (AutoWithEco), 'Off' (HeatingOff), and 'Auto' (all other evohome modes). 'Away' mode is supported separately, in the HA fashion.
+The evohome Controller supports seven distinct system modes: **Auto**, **AutoWithEco**, **Away**, **DayOff**, **HeatingOff**, and **Custom**; **AutoWithReset** is a hidden mode that will revert all Zones to **FollowSchedule** mode.
-The evohome Heating zones support only three operating modes: FollowSchedule, TemporaryOverride, and PermanentOverride. If the zone is in FollowSchedule mode, it inherits its `operating_mode` from the controller; the other modes are mapped to 'Manual' or 'Off'.
+If the zone is in **FollowSchedule** mode, its `temperature` (target temperature) is a function of its scheduled temperature and its functional mode - for example, **AutoWithEco** is scheduled temperature less 3C.
-A device's actual operating mode can be tracked via its `device_state_attributes`, which includes a JSON data structure for current state called `status`. For example:
-```json
-{
- 'zoneId': '999999',
- 'temperatureStatus': {
- 'temperature': 21.5,
- 'isAvailable': true
- },
- 'activeFaults': [],
- 'setpointStatus': {
- 'targetHeatTemperature': 17.5,
- 'setpointMode': 'FollowSchedule'
- },
- 'name': 'Main Room'
-}
-```
+If the Controller is set to **HeatingOff** (target temperature to minimum) or **Away** (target temperature to 12C), then the Zones will inherit that mode regardless of their own setpoint mode.
-This data can be accessed in automations, etc., via a value template:
+If the Zone's temperature is changed, then it will be a **TemporaryOverride** that will revert to **FollowSchedule** at the next scheduled setpoint. Once this is done, the ZOne can be switched to **PermanentOverride** mode.
+
+In Home Assistant, all this is done via `HVAC_MODE` and `PRESET_MODE`. However, the actual operating mode of these devices can be tracked via its state attributes, which includes a JSON data structure for current state called `status`.
+
+For the Controller:
{% raw %}
```
-value_template: "{{ state_attr('climate.main_room', 'status').setpointStatus.setpointMode }}"
+value_template: "{{ state_attr('climate.main_room', 'status').systemModeStatus.mode }}"
+```
+{% endraw %}
+
+For the Zones:
+{% raw %}
+```
+value_template: "{{ state_attr('climate.my_house', 'status').setpointStatus.setpointMode }}"
```
{% endraw %}
\ No newline at end of file
diff --git a/source/_components/generic_thermostat.markdown b/source/_components/generic_thermostat.markdown
index 086e7f697e3..348c8911ae2 100644
--- a/source/_components/generic_thermostat.markdown
+++ b/source/_components/generic_thermostat.markdown
@@ -72,8 +72,8 @@ keep_alive:
description: Set a keep-alive interval. If set, the switch specified in the *heater* option will be triggered every time the interval elapses. Use with heaters and A/C units that shut off if they don't receive a signal from their remote for a while. Use also with switches that might lose state. The keep-alive call is done with the current valid climate integration state (either on or off).
required: false
type: [time, integer]
-initial_operation_mode:
- description: Set the initial operation mode. Valid values are `off` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state.
+initial_hvac_mode:
+ description: Set the initial HVAC mode. Valid values are `heat`, `cool` or `auto`. Value has to be double quoted. If this parameter is not set, it is preferable to set a *keep_alive* value. This is helpful to align any discrepancies between *generic_thermostat* and *heater* state.
required: false
type: string
away_temp:
@@ -89,7 +89,7 @@ precision:
A full configuration example looks like the one below. `min_cycle_duration` and `keep_alive` must contain at least one of the following entries: `days:`, `hours:`, `minutes:`, `seconds:` or `milliseconds:`.
-Currently the `generic_thermostat` climate platform supports 'heat', 'cool' and 'off' operation modes. You can force your `generic_thermostat` to avoid starting by setting Operation to 'off'.
+Currently the `generic_thermostat` climate platform supports 'heat', 'cool' and 'off' hvac modes. You can force your `generic_thermostat` to avoid starting by setting HVAC mode to 'off'.
Please note that changing Away Mode you will force a target temperature change as well that will get restored once the Away Mode is turned off.
@@ -110,7 +110,7 @@ climate:
seconds: 5
keep_alive:
minutes: 3
- initial_operation_mode: "off"
+ initial_hvac_mode: "off"
away_temp: 16
precision: 0.1
```
diff --git a/source/_components/geniushub.markdown b/source/_components/geniushub.markdown
index 32f601fbaf1..cc5aeb34de8 100644
--- a/source/_components/geniushub.markdown
+++ b/source/_components/geniushub.markdown
@@ -11,9 +11,11 @@ ha_release: 0.92
ha_iot_class: Local Polling
---
-The `geniushub` integration links Home Assistant with your Genius Hub for controlling its Zones and Devices, and visibility of any Issues. Currently, there is no support for Zone schedules.
+The `geniushub` integration links Home Assistant with your Genius Hub CH/DHW system, including its Zones, Devices, and Issues.
-It uses the [geniushub-client](https://pypi.org/project/geniushub-client/) library.
+Currently, there is no support for Zone schedules.
+
+It uses the [geniushub](https://pypi.org/project/geniushub-client/) client library.
### Zones
@@ -24,9 +26,16 @@ Each Zone controlled by your Genius hub will be exposed as either a:
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).
+Each such entity will report back its mode, state, setpoint and current temperature; other properties are available via its attributes (see below). The Zone's mode can changed as 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.
+GH mode | HA Operation | HA Preset
+:---: | :---: | :---:
+**Off** | Off | N/A
+**Timer** | Heat | None
+**Override** | Heat | Boost
+**Footprint** | Heat | Activity
+
+Note that **Footprint** mode is only available to **Radiator** Zones that have room sensors.
### Devices
@@ -96,7 +105,7 @@ value_template: "{{ state_attr('climate.main_room', 'status').occupied }}"
## Configuration
-To add your Genius Hub into your Home Assistant installation, add one of the following to your `configuration.yaml` file.
+To set up this integration, add one of the following to your **configuration.yaml** file.
### Option 1: hub token only
@@ -116,6 +125,8 @@ geniushub:
- uses the v3 API - unofficial, but there are additional features (e.g., battery levels)
- polls the hub directly (so is faster, say ~1s response time)
+The hub does not have to be in the same network as HA.
+
```yaml
# Example configuration.yaml entry, directly polling the Hub
geniushub:
@@ -124,8 +135,6 @@ geniushub:
password: GENIUS_HUB_PASSWORD
```
-Note that if a `host` is used instead of `token`, then the `username` and `password` are also required.
-
{% configuration %}
token:
description: The Hub Token of the Genius Hub.
@@ -144,3 +153,5 @@ password:
required: false
type: string
{% endconfiguration %}
+
+Note that if a `host` is used instead of `token`, then the `username` and `password` are also required.
diff --git a/source/_components/google_assistant.markdown b/source/_components/google_assistant.markdown
index 8a252217d98..ab4f6bdaec0 100644
--- a/source/_components/google_assistant.markdown
+++ b/source/_components/google_assistant.markdown
@@ -196,7 +196,7 @@ Currently, the following domains are available to be used with Google Assistant,
- lock (lock/unlock (to allow assistant to unlock, set the `allow_unlock` key in configuration))
- cover (on/off/set position)
- media_player (on/off/set volume (via set volume)/source (via set input source))
-- climate (temperature setting, operation_mode)
+- climate (temperature setting, hvac_mode)
- vacuum (dock/start/stop/pause)
- sensor (temperature setting, only for temperature sensor)
@@ -247,7 +247,7 @@ The request_sync service may fail with a 404 if the project_id of the Homegraph
3. Enable Homegraph API to the new project.
4. Generate a new API key.
5. Again, create a new project in the [Actions on Google console](https://console.actions.google.com/). Described above. But at the step 'Build under the Actions SDK box' choose your newly created project. By this, they share the same `project_id`.
-
+
Syncing may also fail after a period of time, likely around 30 days, due to the fact that your Actions on Google app is techincally in testing mode and has never been published. Eventually, it seems that the test expires. Control of devices will continue to work but syncing may not. If you say "Ok Google, sync my devices" and get the response "Unable to sync Home Assistant", this can usually be resolved by going back to your test app in the [Actions on Google console](https://console.actions.google.com/) and clicking `Simulator` under `TEST`. Regenerate the draft version Test App and try asking Google to sync your devices again.
### Troubleshooting with NGINX
diff --git a/source/_components/google_cloud.markdown b/source/_components/google_cloud.markdown
index 2bccfd55273..b3239233729 100644
--- a/source/_components/google_cloud.markdown
+++ b/source/_components/google_cloud.markdown
@@ -10,7 +10,7 @@ The `google_cloud` platform allows you to use [Google Cloud Platform](https://cl
## Configuration
-To use Google Cloud Platform, you need to provide `config` directory relative path of [`API key`](#obtaining-api-key) file you are going to use. Place it under `config` folder and set `key_file` parameter in `configuration.yaml`:
+To use Google Cloud Platform, you need to provide `config` directory relative path of [`API key`](#obtaining-an-api-key) file you are going to use. Place it under `config` folder and set `key_file` parameter in `configuration.yaml`:
```yaml
# Example configuration.yaml entry
@@ -68,11 +68,11 @@ The Cloud Text-to-Speech API is priced monthly based on the amount of characters
{% configuration %}
key_file:
- description: "The [`API key`](#obtaining-api-key) file to use with Google Cloud Platform. If not specified `os.environ['GOOGLE_APPLICATION_CREDENTIALS']` path will be used."
+ description: "The [`API key`](#obtaining-an-api-key) file to use with Google Cloud Platform. If not specified `os.environ['GOOGLE_APPLICATION_CREDENTIALS']` path will be used."
required: false
type: string
language:
- description: "Default language of the voice, e.g. `en-US`. Supported languages, genders and voices listed [here](https://cloud.google.com/text-to-speech/docs/voices)."
+ description: "Default language of the voice, e.g. `en-US`. Supported languages, genders and voices listed [here](https://cloud.google.com/text-to-speech/docs/voices). Also there are extra not documented but supported languages (see dropdown [here](https://cloud.google.com/text-to-speech/#streaming_demo_section))."
required: false
type: string
default: en-US
@@ -89,7 +89,7 @@ encoding:
description: "Default audio encoder. Supported encodings are `ogg_opus`, `mp3` and `linear16`."
required: false
type: string
- default: ogg_opus
+ default: mp3
speed:
description: "Default rate/speed of the voice, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed."
required: false
diff --git a/source/_components/hive.markdown b/source/_components/hive.markdown
index 89cd7e43ece..ac475fd8bd1 100644
--- a/source/_components/hive.markdown
+++ b/source/_components/hive.markdown
@@ -67,15 +67,14 @@ The platform supports the following Hive products:
## Climate
-The `hive` climate platform integrates your Hive thermostat and hot water into Home Assistant, enabling control of setting the **mode** and setting the **target temperature**.
+The `hive` climate platform integrates your Hive thermostat into Home Assistant, enabling control of setting the **mode** and setting the **target temperature**.
-A short boost for Hive Heating or Hive Hot water can be set by using the **Aux Heat** function, this will turn on the boost feature for Hive Heating or Hive Hot water for 30 minutes at 0.5 degrees higher than the current temperature.
+A short boost for Hive Heating can be set by using the **Boost** preset, this will turn on the boost feature for 30 minutes at 0.5 degrees higher than the current temperature.
The platform supports the following Hive products:
- Hive Active Heating
- Hive Multizone
-- Hot water control
## Light
diff --git a/source/_components/honeywell.markdown b/source/_components/honeywell.markdown
index 1e50c8f903b..fa2b3e13c1c 100644
--- a/source/_components/honeywell.markdown
+++ b/source/_components/honeywell.markdown
@@ -10,36 +10,37 @@ redirect_from:
- /components/climate.honeywell/
---
-The `honeywell` climate platform lets you control Honeywell TCC (Total Connect Comfort) climate systems from Home Assistant. It does not integrate with Honeywell TCC alarm systems.
+The `honeywell` climate platform integrates Home Assistant with _US-based_ [Honeywell Total Connect Comfort (TCC)](https://mytotalconnectcomfort.com/portal/]) climate systems.
+
+It does not support the home security functionality of TCC.
+
+It uses the [somecomfort](https://github.com/kk7ds/somecomfort) client library.
+There is some potential confusion over this integration because it was previously implemented as a combination of two _distinct_ climate systems, one being US-based, the other EU-based.
-There is some potential confusion over this integration because it is currently implemented as a combination of two _distinct_ climate systems, one being US-based, the other is EU-based.
+These two regions are _not_ interchangeable, and the `eu` region is now deprecated. Ongoing support for such systems is available via the [evohome](/components/evohome/) integration.
+
-These two regions are _not_ interchangeable, so you must be clear which applies to your climate system.
-
-
-
-## US-based Systems
+### US-based Systems
These systems are based in North America, and temperatures are usually in Fahrenheit. They would likely be HVAC systems. They always use the [somecomfort](https://github.com/kk7ds/somecomfort) client library. In this integration, this is called the `us` region.
If your system is US-based, then you can access your system via [https://mytotalconnectcomfort.com/portal/](https://mytotalconnectcomfort.com/portal/) (note the `/portal/`).
-## EU-based Systems
+### EU-based Systems
These systems are based in Europe (including the UK & Ireland), and temperatures are usually in Celsius. They would likely be heating-only systems. They always use the [evohome-client](https://github.com/watchforstock/evohome-client) client library. In this integration, this is called the `eu` region.
-If your system is US-based, then you can access it via [https://international.mytotalconnectcomfort.com/](https://international.mytotalconnectcomfort.com/) (note the `international`).
-
-The `eu` region is soon to be deprecated, and ongoing support for such systems is available via the [evohome](/components/evohome/) integration.
+If your system is EU-based, then you can access it via [https://international.mytotalconnectcomfort.com/](https://international.mytotalconnectcomfort.com/) (note the `international`).
## Configuration
-To set up this integration, first confirm your region, then add the following information to your **configuration.yaml** file (the below example is for US-based systems):
+To set up this integration, add the following to the `climate:` section of your **configuration.yaml** file:
```yaml
climate:
+# Example configuration.yaml entry
- platform: honeywell
username: YOUR_USERNAME
password: YOUR_PASSWORD
@@ -56,22 +57,17 @@ password:
required: true
type: string
region:
- description: Region identifier, either 'eu' or 'us'.
- required: false
- default: eu
+ description: Region identifier.
+ required: true
+ default: us
type: string
-away_temperature:
- description: "(*only for the EU region*) Heating setpoint when away mode is on, in degrees Celsius."
- required: false
- default: 16.0
- type: float
away_cool_temperature:
- description: "(*only for the US region*) Cooling setpoint when away mode is on, in degrees Fahrenheit."
+ description: "Cooling setpoint when away mode is on, in degrees Fahrenheit."
required: false
default: 88
type: integer
away_heat_temperature:
- description: "(*only for the US region*) Heating setpoint when away mode is on, in degrees Fahrenheit."
+ description: "Heating setpoint when away mode is on, in degrees Fahrenheit."
required: false
default: 61
type: integer
diff --git a/source/_components/incomfort.markdown b/source/_components/incomfort.markdown
index d17138c4796..eea63d85b9d 100644
--- a/source/_components/incomfort.markdown
+++ b/source/_components/incomfort.markdown
@@ -11,17 +11,25 @@ ha_release: 0.93
ha_iot_class: Local Polling
---
-The `incomfort` integration links Home Assistant with your Intergas Lan2RF gateway for integrating the boiler and any room thermostats attached to it.
+The `incomfort` integration links Home Assistant with your Intergas Lan2RF gateway, including the boiler and any room thermostats attached to it.
-The boiler is represented as a **Water Heater** device. It will report the boiler's `state` and `temperature` (current temperature). The gateway does not expose any means to directly control the boiler or change its configuration.
+It uses the [incomfort](https://pypi.org/project/incomfort-client/) client library.
-Note that the `temperature` will switch between the CV and Tap temperatures according to the current operating mode of the boiler. If the boiler is neither pumping nor tapping, it will be reported as the higher of the two.
+### Boiler
-Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's `target_temperature` (setpoint) and `current_temperature` and the setpoint can be changed.
+The boiler is represented as a **Water Heater** device. It will report the boiler's `state` and `current_temperature`. The gateway does not expose any means to directly control the boiler or change its configuration.
+
+Note that the `current_temperature` will switch between the CV (circulating volume) and Tap temperatures according to the current operating mode of the boiler. If the boiler is neither pumping nor tapping, it will be reported as the higher of the two.
In addition, there is a **Sensor** for CV pressure, CV temperature, and Tap temperature, and a **Binary Sensor** that will be `on` if there is a fault with the boiler (the fault code will be a state attribute).
-To send an alert if the CV pressure is too low or too high, consider the following automation:
+### Rooms
+
+Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's `temperature` (setpoint) and `current_temperature` and the setpoint can be changed.
+
+## Automation
+
+To send an alert if the CV pressure is too low or too high, consider the following example:
{% raw %}
```yaml
@@ -42,9 +50,13 @@ To send an alert if the CV pressure is too low or too high, consider the followi
Other properties are available via each device's attributes.
-### Configuration
+## Configuration
-To add your Lan2RF gateway into your Home Assistant installation, add one of the following to your `configuration.yaml` file.
+To set up this integration, add the following to your **configuration.yaml** file:
+
+The hub does not have to be in the same network as HA.
+
+### Older gateways
Older gateways do not require user authentication:
@@ -54,6 +66,8 @@ incomfort:
host: IP_ADDRESS
```
+### Newer gateways
+
Alternatively, if a **username** & **password** is printed on the back of the gateway:
```yaml
@@ -64,8 +78,6 @@ incomfort:
password: PASSWORD
```
-The hub does not have to be in the same network as HA.
-
{% configuration %}
host:
description: The hostname/IP address of the Lan2RF gateway.
diff --git a/source/_components/input_datetime.markdown b/source/_components/input_datetime.markdown
index ee0dbcc51dd..7332b6205c2 100644
--- a/source/_components/input_datetime.markdown
+++ b/source/_components/input_datetime.markdown
@@ -76,12 +76,15 @@ Assistant stopping as long as your entity does **not** have a set value for
### Services
-This integration provides a service to modify the state of the `input_datetime`.
+Available service: `input_datetime.set_datetime`.
-| Service | Data | Description |
-| ----- | ----- | ----- |
-| `set_datetime` | `time` | This can be used to dynamically set the time.
-| `set_datetime` | `date` | This can be used to dynamically set the date.
+Service data attribute | Format String | Description
+-|-|-
+`date` | `%Y-%m-%d` | This can be used to dynamically set the date.
+`time` | `%H:%M:%S` | This can be used to dynamically set the time.
+`datetime` | `%Y-%m-%d %H:%M:%S` | This can be used to dynamically set both the date & time.
+
+To set both the date and time in the same call, use `date` and `time` together, or use `datetime` by itself. Using `datetime` has the advantage that both can be set using one template.
## Automation Examples
@@ -104,8 +107,8 @@ automation:
{% endraw %}
To dynamically set the `input_datetime` you can call
-`input_datetime.set_datetime`. The values for `date` and `time` must be in a certain format for the call to be successful.
-You can use either `strftime("%Y-%m-%d")`/`strftime("%H:%M:%S")` or `timestamp_custom("%Y-%m-%d", true)`/`timestamp_custom("%H:%M:%S", true)` filter respectively.
+`input_datetime.set_datetime`. The values for `date` and `time` must be in a certain format for the call to be successful. (See service description above.)
+If you have a `datetime` object you can use its `strftime` method. Of if you have a timestamp you can use the `timestamp_custom` filter.
The following example can be used in an automation rule:
{% raw %}
@@ -125,14 +128,20 @@ automation:
- service: input_datetime.set_datetime
entity_id: input_datetime.another_time
data_template:
- time: '{{ now().strftime("%H:%M:%S") }}'
+ time: "{{ now().strftime('%H:%M:%S') }}"
- service: input_datetime.set_datetime
entity_id: input_datetime.another_date
data_template:
- - service: input_datetime.set_datetime
+ date: "{{ as_timestamp(now())|timestamp_custom('%Y-%m-%d') }}"
+ - service: input_datetime.set_datetime
+ entity_id: input_datetime.date_and_time
data_template:
- entity_id: input_datetime.date_and_time
- {{ now().timestamp() | timestamp_custom("%Y-%m-%d", true) }}
+ datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
+ - service: input_datetime.set_datetime
+ data_template:
+ entity_id: input_datetime.date_and_time
+ date: >
+ {{ now().timestamp() | timestamp_custom("%Y-%m-%d", true) }}
time: >
{{ now().timestamp() | timestamp_custom("%H:%M:%S", true) }}
```
diff --git a/source/_components/insteon.markdown b/source/_components/insteon.markdown
index bbb917f8be1..f9c35cb3b24 100644
--- a/source/_components/insteon.markdown
+++ b/source/_components/insteon.markdown
@@ -252,6 +252,25 @@ light:
address: 1a2b3c
```
+### INSTEON Scenes
+
+Trigger an INSTEON scene on or off is done via automations. Two services are provided to support this feature:
+
+- **insteon.scene_on**
+ - **group**: (required) The INSTEON scene number to trigger.
+- **insteon.scene_off**
+ - **group**: (required) The INSTEON scene to turn off
+
+```yaml
+automation:
+ # Trigger an INSTEON scene 25
+ - id: trigger_scene_25_on
+ alias: Turn on scene 25
+ action:
+ - service: insteon.scene_on
+ group: 25
+```
+
### Events and Mini-Remotes
Mini-Remote devices do not appear as Home Assistant entities, they generate events. The following events are available:
@@ -259,7 +278,7 @@ Mini-Remote devices do not appear as Home Assistant entities, they generate even
- **insteon.button_on**
- **address**: (required) The Insteon device address in lower case without dots (e.g., 1a2b3c)
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are `a` to `d`. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used.
-- **insteon.button_of**
+- **insteon.button_off**
- **address**: (required) The Insteon device address in lower case without dots (e.g., 1a2b3c)
- **button**: (Optional) The button id in lower case. For a 4-button remote the values are a to d. For an 8 button remote the values are `a` to `g`. For a one-button remote this field is not used.
@@ -268,33 +287,37 @@ This allows the mini-remotes to be configured as triggers for automations. Here
```yaml
automation:
# 4 or 8 button remote with button c pressed
- trigger:
- platform: event
- event_type: insteon.button_on
+ - id: light_on
+ alias: Turn a light on
+ trigger:
+ - platform: event
+ event_type: insteon.button_on
event_data:
address: 1a2b3c
button: c
- condition:
- - condition: state
- entity_id: light.some_light
- state: 'off'
- action:
- service: light.turn_on
- entity_id: light.some_light
+ condition:
+ - condition: state
+ entity_id: light.some_light
+ state: 'off'
+ action:
+ - service: light.turn_on
+ entity_id: light.some_light
# single button remote
- trigger:
- platform: event
- event_type: insteon.button_on
+ - id: light_off
+ alias: Turn a light off
+ trigger:
+ - platform: event
+ event_type: insteon.button_on
event_data:
address: 1a2b3c
- condition:
- - condition: state
- entity_id: light.some_light
- state: 'off'
- action:
- service: light.turn_on
- entity_id: light.some_light
+ condition:
+ - condition: state
+ entity_id: light.some_light
+ state: 'off'
+ action:
+ - service: light.turn_on
+ entity_id: light.some_light
```
### Known Issues with the INSTEON Hub
diff --git a/source/_components/jewish_calendar.markdown b/source/_components/jewish_calendar.markdown
index c990209ca3d..3db5edcca3b 100644
--- a/source/_components/jewish_calendar.markdown
+++ b/source/_components/jewish_calendar.markdown
@@ -86,6 +86,8 @@ sensors:
description: The time of havdalah for either the current Shabbat OR Yom Tov, or the immediately upcoming Shabbat OR Yom Tov. If, for example, today is Sunday, and Rosh Hashana is Monday night through Wednesday night, this reports the havdalah for Rosh Hashana on Wednesday night. To always get the Shabbat times, use the upcoming_shabbat_havdalah sensor.
issur_melacha_in_effect:
description: A boolean sensor indicating if melacha is currently not permitted. The value is true when it is currently Shabbat or Yom Tov and false otherwise.
+ omer_count:
+ description: An integer sensor indicating the day of the Omer (1-49) or 0 if it is not currently the Omer.
{% endconfiguration %}
diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown
index 35e0a02c3fd..1414e90544b 100644
--- a/source/_components/knx.markdown
+++ b/source/_components/knx.markdown
@@ -8,7 +8,6 @@ ha_release: 0.24
ha_iot_class: Local Polling
---
-
The [KNX](https://www.knx.org) integration for Home Assistant allows you to connect to a KNX/IP devices.
The integration requires a local KNX/IP interface like the [Weinzierl 730](https://www.weinzierl.de/index.php/en/all-knx/knx-devices-en/produktarchiv-en/knx-ip-interface-730-en). Through this, it will send and receive commands to and from other devices to the KNX bus.
diff --git a/source/_components/nest.markdown b/source/_components/nest.markdown
index c303c7e60fa..7df45246460 100644
--- a/source/_components/nest.markdown
+++ b/source/_components/nest.markdown
@@ -310,10 +310,10 @@ The following conditions are available by device:
- security\_state: `ok` or `deter`. [Security State](#security-state). Only available when Nest Camera exists.
- Nest Thermostat:
- humidity
- - operation\_mode
+ - preset\_mode
- temperature
- target
- - hvac\_state: The currently active state of the HVAC system, `heat`, `cool` or `off` (previously `heating`, `cooling` or `off`).
+ - hvac\_mode: The currently active state of the HVAC system, `heat`, `cool` or `off` (previously `heating`, `cooling` or `off`).
- Nest Protect:
- co\_status: `Ok`, `Warning` or `Emergency`
- smoke\_status: `Ok`, `Warning` or `Emergency`
diff --git a/source/_components/netatmo.markdown b/source/_components/netatmo.markdown
index b5bd12a108d..fa9aefdcd81 100644
--- a/source/_components/netatmo.markdown
+++ b/source/_components/netatmo.markdown
@@ -312,14 +312,7 @@ climate:
The `netatmo` sensor platform is consuming the information provided by a [Netatmo Weather Station](https://www.netatmo.com/en-us/weather/weatherstation), a
[Netatmo Home Coach](https://www.netatmo.com/en-us/aircare/homecoach) [Netatmo](https://www.netatmo.com) device or the public sensors of others available via the [Netatmo API](https://weathermap.netatmo.com/) even if you don't own a Netatmo device.
-Public sensors have to be set up manually. Currently the following conditions are supported for the public sensors:
-
-* temperature
-* pressure
-* humidity
-* rain
-* windstrength
-* guststrength
+Public sensors have to be set up manually.
## Advanced sensor configuration
@@ -332,11 +325,8 @@ sensor:
- platform: netatmo
station: STATION_NAME
modules:
- module_name1:
- - temperature
- module_name2:
- - temperature
- - battery_vp
+ - module_name1
+ - module_name2
# Public sensor
- platform: netatmo
@@ -345,13 +335,6 @@ sensor:
lon_ne: -73.735
lat_sw: 40.552
lon_sw: -74.105
- monitored_conditions:
- - temperature
- - pressure
- - humidity
- - rain
- - windstrength
- - guststrength
```
{% configuration %}
@@ -368,45 +351,6 @@ modules:
type: list
required: true
description: Name of the module.
- keys:
- temperature:
- description: Current temperature.
- co2:
- description: CO2 concentration in ppm.
- pressure:
- description: Pressure in mbar.
- noise:
- description: Noise level in dB.
- humidity:
- description: "Humidity in %."
- health_idx:
- description: "Air health as one of the values Healthy, Fine, Fair, Poor, Unhealthy."
- rain:
- description: Estimated rainfall for today in mm.
- sum_rain_1:
- description: Rainfall in the last hour in mm.
- sum_rain_24:
- description: "Rainfall in mm from 00:00am - 23:59pm."
- windangle:
- description: Wind angle
- windstrength:
- description: Wind strength
- gustangle:
- description: Wind gust angle
- guststrength:
- description: Wind gust strength
- min_temp:
- description: Min temperature for today
- max_temp:
- description: Max temperature for today
- rf_status:
- description: "Current radio status per module. (90=low, 60=highest)"
- wifi_status:
- description: Wifi status per Base station
- battery_vp:
- description: Current battery status per module.
- battery_percent:
- description: Percentage of battery remaining per module.
areas:
description: The list contains one or more areas to add as sensors.
required: false
@@ -428,10 +372,6 @@ areas:
description: Longitude of south-western corner of area.
required: true
type: string
- monitored_conditions:
- description: List of environment conditions to monitor.
- required: true
- type: list
name:
description: Name of the sensor.
required: false
diff --git a/source/_components/notion.markdown b/source/_components/notion.markdown
new file mode 100644
index 00000000000..e9dcc8ca8d1
--- /dev/null
+++ b/source/_components/notion.markdown
@@ -0,0 +1,41 @@
+---
+layout: page
+title: "Notion"
+description: "How to integrate Notion kits within Home Assistant."
+date: 2019-06-19 20:52
+sidebar: true
+comments: false
+logo: notion.png
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Sensor
+ha_release: 0.96
+ha_iot_class: Cloud Polling
+---
+
+The `Notion` component retrieves data from [Notion](https://getnotion.com) wireless
+home monitoring sensor kits.
+
+## Configuration
+
+To add your Notion kits to your Home Assistant installation, add the following to your
+`configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+notion:
+ username: YOUR_EMAIL_ADDRESS
+ password: YOUR_PASSWORD
+```
+
+{% configuration %}
+username:
+ description: An email address for an active Notion account.
+ required: true
+ type: string
+password:
+ description: The password for the account.
+ required: true
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/nuheat.markdown b/source/_components/nuheat.markdown
index 3b2ad80cf79..b49d3cbb7c4 100644
--- a/source/_components/nuheat.markdown
+++ b/source/_components/nuheat.markdown
@@ -57,12 +57,10 @@ The NuHeat Thermostat supports the following key concepts.
The `target temperature` is the temperature that the device attempts to achieve. The target temperature is either determined by the schedule programmed into the thermostat (`auto mode`) or may be overridden. When the target temperature is set by Home Assistant, the thermostat will hold this temperature until the schedule is resumed.
-
## Attributes
The following attributes are provided by the NuHeat thermostat: `name`, `temperature_unit`, `current_temperature`, `target_temperature`, `current_hold_mode`, `current_operation`, `operation_list`, `min_temp` and `max_temp`.
-
### Attribute `name`
Returns the name of the NuHeat Thermostat.
@@ -96,7 +94,7 @@ not in auto operation mode.
| ---------------| ----------- |
| Integer | Target temperature
-### Attribute `current_hold_mode`
+### Attribute `preset_mode`
Returns the current temperature hold, if any.
@@ -104,21 +102,21 @@ Returns the current temperature hold, if any.
| ---------------| ----------- |
| String | 'temperature', 'temporary_temperature', 'auto', etc.
-### Attribute `current_operation`
+### Attribute `hvac_action`
-Returns the current operation of the thermostat.
+Returns the current HVAC mode of the thermostat.
| Attribute type | Description |
| ---------------| ----------- |
| String | 'heat', 'idle'
-### Attribute `operation_list`
+### Attribute `preset_modes`
-Returns the list of available operation modes.
+Returns the list of available preset modes.
| Attribute type | Description |
| ---------------| ----------- |
-| List of String | Available operation modes
+| List of String | Available preset modes
### Attribute `min_temp`
@@ -136,12 +134,11 @@ Returns the maximum supported temperature by the thermostat
| ---------------| ----------- |
| Integer | Maximum supported temperature
-
## Services
-The following services are provided by the NuHeat Thermostat: `set_temperature`, `set_hold_mode`, `nuheat_resume_program`.
+The following services are provided by the NuHeat Thermostat: `set_temperature`, `set_hvac_mode`, `set_preset_mode`, `resume_program`.
-The services `fan_min_on_time`, `set_aux_heat`, `set_away_mode`, `set_humidity`, `set_fan_mode`, `set_operation_mode` and `set_swing_mode` offered by the [Climate component](/components/climate/) are not implemented for this thermostat.
+The services `fan_min_on_time`, `set_aux_heat`, `set_away_mode`, `set_humidity`, `set_fan_mode`, and `set_swing_mode` offered by the [Climate component](/components/climate/) are not implemented for this thermostat.
### Service `set_temperature`
@@ -155,16 +152,16 @@ Puts the thermostat into an indefinite hold at the given temperature.
Only the target temperatures relevant for the current operation mode need to
be provided.
-### Service `set_hold_mode`
+### Service `set_preset_mode`
-Sets the thermostat's hold mode. The NuHeat thermostat supports "auto" (to run the thermostat's programmed schedule), "temperature" (to indefinitely hold the thermostat's current target temperature), or "temporary_temperature" (to hold the thermostat's current target temperature until the thermostat's next scheduled event).
+Sets the thermostat's preset mode. Without a preset mode set it run the thermostat's programmed schedule, "temperature" (to indefinitely hold the thermostat's current target temperature), or "temporary_temperature" (to hold the thermostat's current target temperature until the thermostat's next scheduled event).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Else targets all.
| `hold_mode` | no | New value of hold mode.
-### Service `nuheat_resume_program`
+### Service `resume_program`
Resumes the currently active schedule.
diff --git a/source/_components/oem.markdown b/source/_components/oem.markdown
index 0d78a4e7ba1..b49c0e1fcd4 100644
--- a/source/_components/oem.markdown
+++ b/source/_components/oem.markdown
@@ -12,7 +12,7 @@ redirect_from:
This platform supports the ESP8266 based "WiFi MQTT Relay / Thermostat" sold by [OpenEnergyMonitor](https://shop.openenergymonitor.com/wifi-mqtt-relay-thermostat/). The underlying [library](http://oemthermostat.readthedocs.io/) only supports this single relay variant of the [original device](https://harizanov.com/2014/12/wifi-iot-3-channel-relay-board-with-mqtt-and-http-api-using-esp8266/).
-This platform controls the setpoint of the thermostat in its "manual" mode, therefore there is a configuration option the away setpoint.
+This platform controls the setpoint of the thermostat in its "manual" mode.
To set it up, add the following information to your `configuration.yaml` file:
@@ -46,9 +46,4 @@ password:
description: Password for the web interface if set.
required: inclusive
type: string
-away_temp:
- description: Setpoint for the thermostat in away mode.
- required: false
- default: 14.0
- type: float
{% endconfiguration %}
diff --git a/source/_components/opentherm_gw.markdown b/source/_components/opentherm_gw.markdown
index 949456e80cd..e46691fa85c 100644
--- a/source/_components/opentherm_gw.markdown
+++ b/source/_components/opentherm_gw.markdown
@@ -1,5 +1,5 @@
---
-title: "OpenTherm Gateway Hub"
+title: "OpenTherm Gateway"
description: "Control your OpenTherm Gateway from Home Assistant."
logo: opentherm.png
ha_category:
@@ -17,13 +17,13 @@ redirect_from:
The `opentherm_gw` integration is used to control the [OpenTherm Gateway](http://otgw.tclcode.com/) from Home Assistant.
-There is currently support for the following device types within Home Assistant:
+The following device types are currently supported within Home Assistant:
- Binary Sensor
- Climate
- Sensor
-When enabled, this integration will automatically add its [`climate` entity](/components/climate.opentherm_gw) to Home Assistant.
+This integration will add a single `climate` entity and multiple `sensor` and `binary_sensor` entities to Home Assistant for each configured gateway.
The OpenTherm protocol is based on polling. The thermostat sends requests to the boiler at specific intervals. As a result, it may take some time for changes to propagate between Home Assistant and the thermostat.
@@ -31,251 +31,51 @@ The OpenTherm protocol is based on polling. The thermostat sends requests to the
# Configuration
+In this example, one gateway is configured with `gateway_id` `living_room`.
```yaml
# Example configuration.yaml entry
opentherm_gw:
- device: /dev/ttyUSB0
+ living_room:
+ device: /dev/ttyUSB0
```
+Each configured gateway accepts the following configuration options.
{% configuration %}
device:
description: "Path to OpenTherm Gateway device as supported by [PySerial](https://pythonhosted.org/pyserial/url_handlers.html)."
required: true
type: string
+name:
+ description: "The friendly name used for the entities added for the gateway."
+ required: false
+ type: string
+ default: "The `gateway_id` of the gateway."
climate:
description: "Settings for the `opentherm_gw` climate entity."
required: false
type: map
keys:
- name:
- description: "The name for the device within Home Assistant."
- required: false
- type: string
- default: "OpenTherm Gateway"
precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Supported values are `0.1`, `0.5` and `1.0`."
required: false
type: float
default: "`0.5` for Celsius and `1.0` for Fahrenheit."
floor_temperature:
- description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override Home Assistant and round to the lower value according to the configured `precision`."
+ description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Set this to `true` to override this behavior and round to the lower value according to the configured `precision`."
required: false
type: boolean
default: false
-monitored_variables:
- description: "A list of variables to expose as sensors."
- required: false
- type: list
- keys:
- burner_hours:
- description: Boiler flame on time.
- burner_starts:
- description: Number of burner starts.
- ch_pump_hours:
- description: Central heating pump running time.
- ch_pump_starts:
- description: Number of central heating pump starts.
- ch_water_pressure:
- description: Central heating water pressure.
- ch_water_temp:
- description: Central heating water temperature.
- ch_water_temp_2:
- description: Central heating 2 water temperature.
- control_setpoint:
- description: Central heating water target temperature.
- control_setpoint_2:
- description: Central heating 2 water target temperature.
- cooling_control:
- description: Cooling control signal value.
- dhw_burner_hours:
- description: Hot water flame on time.
- dhw_burner_starts:
- description: Number of hot water burner starts.
- dhw_flow_rate:
- description: Hot water flow rate.
- dhw_pump_hours:
- description: Hot water pump running time.
- dhw_pump_starts:
- description: Number of hot water pump starts.
- dhw_setpoint:
- description: Hot water target temperature.
- dhw_temp:
- description: Hot water temperature.
- dhw_temp_2:
- description: Hot water 2 temperature.
- exhaust_temp:
- description: Boiler exhaust temperature.
- master_ch2_enabled:
- description: Thermostat requests central heating 2 on.
- master_ch_enabled:
- description: Thermostat requests central heating on.
- master_cooling_enabled:
- description: Thermostat requests cooling.
- master_dhw_enabled:
- description: Thermostat requests hot water to be heated.
- master_memberid:
- description: Thermostat member ID.
- master_ot_version:
- description: Thermostat OpenTherm protocol version.
- master_otc_enabled:
- description: Thermostat is using outside temperature correction.
- master_product_type:
- description: Thermostat product type.
- master_product_version:
- description: Thermostat product version.
- max_ch_setpoint:
- description: Boiler maximum central heating water temperature.
- oem_diag:
- description: OEM diagnostic information.
- otgw_about:
- description: OpenTherm Gateway firmware version.
- otgw_build:
- description: OpenTherm Gateway firmware build date and time.
- otgw_clockmhz:
- description: OpenTherm Gateway firmware design clock speed.
- otgw_dhw_ovrd:
- description: OpenTherm Gateway hot water override status.
- otgw_gpio_a:
- description: OpenTherm Gateway GPIO port A operating mode.
- otgw_gpio_a_state:
- description: OpenTherm Gateway GPIO A state.
- otgw_gpio_b:
- description: OpenTherm Gateway GPIO port B operating mode.
- otgw_gpio_b_state:
- description: OpenTherm Gateway GPIO B state.
- otgw_ignore_transitions:
- description: OpenTherm Gateway ignores ripples in the signal during high/low transitions.
- otgw_led_a:
- description: OpenTherm Gateway LED A operating mode.
- otgw_led_b:
- description: OpenTherm Gateway LED B operating mode.
- otgw_led_c:
- description: OpenTherm Gateway LED C operating mode.
- otgw_led_d:
- description: OpenTherm Gateway LED D operating mode.
- otgw_led_e:
- description: OpenTherm Gateway LED E operating mode.
- otgw_led_f:
- description: OpenTherm Gateway LED F operating mode.
- otgw_mode:
- description: OpenTherm Gateway operating mode.
- otgw_ovrd_high_byte:
- description: OpenTherm Gateway overrides high byte with message ID 100.
- otgw_setback_temp:
- description: OpenTherm Gateway setback temperature for `away mode`.
- otgw_setpoint_ovrd_mode:
- description: OpenTherm Gateway central heating setpoint override mode.
- otgw_smart_pwr:
- description: OpenTherm Gateway smart power operating mode.
- otgw_thermostat_detect:
- description: OpenTherm Gateway automatic thermostat detection status.
- otgw_vref:
- description: OpenTherm Gateway voltage reference setting.
- outside_temp:
- description: Outside temperature as reported in the OpenTherm protocol.
- relative_mod_level:
- description: Relative modulation level.
- remote_rw_dhw:
- description: Boiler supports writing hot water setpoint.
- remote_rw_max_ch:
- description: Boiler supports writing maximum central heating setpoint.
- remote_transfer_dhw:
- description: Boiler supports reading hot water setpoint.
- remote_transfer_max_ch:
- description: Boiler supports reading maximum central heating setpoint.
- return_water_temp:
- description: Boiler return water temperature.
- room_setpoint:
- description: Room target temperature.
- room_setpoint_2:
- description: Room 2 target temperature.
- room_setpoint_ovrd:
- description: Room target temperature override value.
- room_temp:
- description: Current room temperature.
- rovrd_auto_prio:
- description: Programmed room setpoint change takes priority over remote override setting.
- rovrd_man_prio:
- description: Manual room setpoint change takes priority over remote override setting.
- slave_air_pressure_fault:
- description: Boiler reports air pressure fault.
- slave_ch2_active:
- description: Boiler reports central heating 2 active.
- slave_ch2_present:
- description: Boiler has a central heating 2 circuit.
- slave_ch_active:
- description: Boiler reports central heating active.
- slave_ch_max_setp:
- description: Maximum boiler supported central heating water target temperature.
- slave_ch_min_setp:
- description: Minimum boiler supported central heating water target temperature.
- slave_control_type:
- description: Boiler control type ('off' is modulating, 'on' is on/off).
- slave_cooling_active:
- description: Boiler reports cooling active.
- slave_cooling_supported:
- description: Boiler supports cooling.
- slave_dhw_active:
- description: Boiler reports hot water active.
- slave_dhw_config:
- description: Boiler hot water mode ('off' is instantaneous or unspecified, 'on' is storage tank).
- slave_dhw_max_setp:
- description: Maximum boiler supported hot water target temperature.
- slave_dhw_min_setp:
- description: Minimum boiler supported hot water target temperature.
- slave_dhw_present:
- description: Boiler reports hot water present.
- slave_diagnostic_indication:
- description: Boiler diagnostic indication.
- slave_fault_indication:
- description: Boiler fault indication.
- slave_flame_on:
- description: Boiler reports flame on.
- slave_gas_fault:
- description: Boiler reports gas fault.
- slave_low_water_pressure:
- description: Boiler reports low water pressure.
- slave_master_low_off_pump:
- description: Boiler supports low-off and pump control commands (this sensor is inverted, 'on' is not supported, 'off' is supported)
- slave_max_capacity:
- description: Maximum boiler capacity.
- slave_max_relative_modulation:
- description: Maximum boiler supported relative modulation.
- slave_memberid:
- description: Boiler member ID.
- slave_min_mod_level:
- description: Minimum boiler supported modulation level.
- slave_oem_fault:
- description: Boiler OEM fault indication.
- slave_ot_version:
- description: Boiler OpenTherm protocol version.
- slave_product_type:
- description: Boiler product type.
- slave_product_version:
- description: Boiler product version.
- slave_remote_reset:
- description: Boiler reports 'lockout-reset' supported.
- slave_service_required:
- description: Boiler reports service required.
- slave_water_overtemp:
- description: Boiler reports water overtemperature.
- solar_coll_temp:
- description: Solar collector temperature.
- solar_storage_temp:
- description: Solar storage unit temperature.
{% endconfiguration %}
-## Supported Variables
-
-The list above contains all supported variables. Note that not all boilers and thermostats properly support all variables, so the fact that a variable is listed here and published by your system does not necessarily mean that you will get useful data out of it. To see which variables are published in your situation, enable debug logging for the `opentherm_gw` integration and look for the status updates.
-
-# Services
+## Services
### Service `opentherm_gw.reset_gateway`
Reset the OpenTherm Gateway.
-This service takes no parameters.
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
### Service `opentherm_gw.set_clock`
@@ -283,6 +83,7 @@ Provide the time and day of week to the OpenTherm Gateway. The value provided he
| Service data attribute | Optional | Default | Description |
| ---------------------- | -------- | ------- | ----------- |
+| `gateway_id` | no | N/A | The `gateway_id` as specified in `configuration.yaml`.
| `date` | yes | Today's date | Date from which the day of week will be extracted. Format: `YYYY-MM-DD`.
| `time` | yes | Current time | Time in 24h format.
@@ -298,6 +99,7 @@ In a normal situation, the thermostat will calculate and control the central hea
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `temperature` | no | The central heating setpoint. Values between `0.0` and `90.0` are accepted, but your boiler may not support the full range. Set to `0` to disable the override.
@@ -313,6 +115,7 @@ For an explanation of the possible modes, see [GPIO modes](#gpio-modes)
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `id` | no | The GPIO ID, `A` or `B`.
| `mode` | no | The GPIO mode to be set.
@@ -323,6 +126,7 @@ For a list of possible modes with explanation, see [LED modes](#led-modes)
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `id` | no | The LED ID, accepted values are `A` through `F`.
| `mode` | no | The LED mode to be set.
@@ -338,6 +142,7 @@ In a normal situation, the thermostat will control the maximum modulation level
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `level` | no | The maximum modulation level. Accepted values are `-1` through `100`. Set to `-1` to disable the override.
@@ -353,6 +158,7 @@ If your thermostat is unable to display an outside temperature and does not supp
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `temperature` | no | The outside temperature to provide to the thermostat. Accepted values are `-40.0` through `64.0`. Any value above `64.0` will clear a previously configured value (suggestion: `99`).
### Service `opentherm_gw.set_setback_temperature`
@@ -362,8 +168,318 @@ The value you provide here will be used with the GPIO `home` (5) and `away` (6)
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
+| `gateway_id` | no | The `gateway_id` as specified in `configuration.yaml`.
| `temperature` | no | The setback temperature. Accepted values are `0.0` through `30.0`.
+## Sensors
+
+The following `sensor` entities will be created for each configured gateway. The `entity_id` of every sensor will have a suffix containing the `gateway_id` of the gateway to which it belongs.
+
+Not all boilers and thermostats properly support all OpenTherm features, so not all of the sensors will have useful values.
+
+
+- **burner_hours**
+ Boiler flame on time.
+
+- **burner_starts**
+ Number of burner starts.
+
+- **ch_pump_hours**
+ Central heating pump running time.
+
+- **ch_pump_starts**
+ Number of central heating pump starts.
+
+- **ch_water_pressure**
+ Central heating water pressure.
+
+- **ch_water_temp**
+ Central heating water temperature.
+
+- **ch_water_temp_2**
+ Central heating 2 water temperature.
+
+- **control_setpoint**
+ Central heating water target temperature.
+
+- **control_setpoint_2**
+ Central heating 2 water target temperature.
+
+- **cooling_control**
+ Cooling control signal value.
+
+- **dhw_burner_hours**
+ Hot water flame on time.
+
+- **dhw_burner_starts**
+ Number of hot water burner starts.
+
+- **dhw_flow_rate**
+ Hot water flow rate.
+
+- **dhw_pump_hours**
+ Hot water pump running time.
+
+- **dhw_pump_starts**
+ Number of hot water pump starts.
+
+- **dhw_setpoint**
+ Hot water target temperature.
+
+- **dhw_temp**
+ Hot water temperature.
+
+- **dhw_temp_2**
+ Hot water 2 temperature.
+
+- **exhaust_temp**
+ Boiler exhaust temperature.
+
+- **master_memberid**
+ Thermostat member ID.
+
+- **master_ot_version**
+ Thermostat OpenTherm protocol version.
+
+- **master_product_type**
+ Thermostat product type.
+
+- **master_product_version**
+ Thermostat product version.
+
+- **max_ch_setpoint**
+ Boiler maximum central heating water temperature.
+
+- **oem_diag**
+ OEM diagnostic information.
+
+- **otgw_about**
+ OpenTherm Gateway firmware version.
+
+- **otgw_build**
+ OpenTherm Gateway firmware build date and time.
+
+- **otgw_clockmhz**
+ OpenTherm Gateway firmware design clock speed.
+
+- **otgw_dhw_ovrd**
+ OpenTherm Gateway hot water override status.
+
+- **otgw_gpio_a**
+ OpenTherm Gateway GPIO port A operating mode.
+
+- **otgw_gpio_b**
+ OpenTherm Gateway GPIO port B operating mode.
+
+- **otgw_led_a**
+ OpenTherm Gateway LED A operating mode.
+
+- **otgw_led_b**
+ OpenTherm Gateway LED B operating mode.
+
+- **otgw_led_c**
+ OpenTherm Gateway LED C operating mode.
+
+- **otgw_led_d**
+ OpenTherm Gateway LED D operating mode.
+
+- **otgw_led_e**
+ OpenTherm Gateway LED E operating mode.
+
+- **otgw_led_f**
+ OpenTherm Gateway LED F operating mode.
+
+- **otgw_mode**
+ OpenTherm Gateway operating mode.
+
+- **otgw_setback_temp**
+ OpenTherm Gateway setback temperature for `away mode`.
+
+- **otgw_setpoint_ovrd_mode**
+ OpenTherm Gateway central heating setpoint override mode.
+
+- **otgw_smart_pwr**
+ OpenTherm Gateway smart power operating mode.
+
+- **otgw_thermostat_detect**
+ OpenTherm Gateway automatic thermostat detection status.
+
+- **otgw_vref**
+ OpenTherm Gateway voltage reference setting.
+
+- **outside_temp**
+ Outside temperature as reported in the OpenTherm protocol.
+
+- **relative_mod_level**
+ Relative modulation level.
+
+- **return_water_temp**
+ Boiler return water temperature.
+
+- **room_setpoint**
+ Room target temperature.
+
+- **room_setpoint_2**
+ Room 2 target temperature.
+
+- **room_setpoint_ovrd**
+ Room target temperature override value.
+
+- **room_temp**
+ Current room temperature.
+
+- **slave_ch_max_setp**
+ Maximum boiler supported central heating water target temperature.
+
+- **slave_ch_min_setp**
+ Minimum boiler supported central heating water target temperature.
+
+- **slave_dhw_max_setp**
+ Maximum boiler supported hot water target temperature.
+
+- **slave_dhw_min_setp**
+ Minimum boiler supported hot water target temperature.
+
+- **slave_max_capacity**
+ Maximum boiler capacity.
+
+- **slave_max_relative_modulation**
+ Maximum boiler supported relative modulation.
+
+- **slave_memberid**
+ Boiler member ID.
+
+- **slave_min_mod_level**
+ Minimum boiler supported modulation level.
+
+- **slave_oem_fault**
+ Boiler OEM fault indication.
+
+- **slave_ot_version**
+ Boiler OpenTherm protocol version.
+
+- **slave_product_type**
+ Boiler product type.
+
+- **slave_product_version**
+ Boiler product version.
+
+- **solar_coll_temp**
+ Solar collector temperature.
+
+- **solar_storage_temp**
+ Solar storage unit temperature.
+
+
+## Binary Sensors
+
+The following `binary_sensor` entities will be created for each configured gateway. The `entity_id` of every sensor will have a suffix containing the `gateway_id` of the gateway to which it belongs.
+
+Not all boilers and thermostats properly support all OpenTherm features, so not all of the sensors will have useful values.
+
+
+- **master_ch2_enabled**
+ Thermostat requests central heating 2 on.
+
+- **master_ch_enabled**
+ Thermostat requests central heating on.
+
+- **master_cooling_enabled**
+ Thermostat requests cooling.
+
+- **master_dhw_enabled**
+ Thermostat requests hot water to be heated.
+
+- **master_otc_enabled**
+ Thermostat is using outside temperature correction.
+
+- **otgw_gpio_a_state**
+ OpenTherm Gateway GPIO A state.
+
+- **otgw_gpio_b_state**
+ OpenTherm Gateway GPIO B state.
+
+- **otgw_ignore_transitions**
+ OpenTherm Gateway ignores ripples in the signal during high/low transitions.
+
+- **otgw_ovrd_high_byte**
+ OpenTherm Gateway overrides high byte with message ID 100.
+
+- **remote_rw_dhw**
+ Boiler supports writing hot water setpoint.
+
+- **remote_rw_max_ch**
+ Boiler supports writing maximum central heating setpoint.
+
+- **remote_transfer_dhw**
+ Boiler supports reading hot water setpoint.
+
+- **remote_transfer_max_ch**
+ Boiler supports reading maximum central heating setpoint.
+
+- **rovrd_auto_prio**
+ Programmed room setpoint change takes priority over remote override setting.
+
+- **rovrd_man_prio**
+ Manual room setpoint change takes priority over remote override setting.
+
+- **slave_air_pressure_fault**
+ Boiler reports air pressure fault.
+
+- **slave_ch2_active**
+ Boiler reports central heating 2 active.
+
+- **slave_ch2_present**
+ Boiler has a central heating 2 circuit.
+
+- **slave_ch_active**
+ Boiler reports central heating active.
+
+- **slave_control_type**
+ Boiler control type ('off' is modulating, 'on' is on/off).
+
+- **slave_cooling_active**
+ Boiler reports cooling active.
+
+- **slave_cooling_supported**
+ Boiler supports cooling.
+
+- **slave_dhw_active**
+ Boiler reports hot water active.
+
+- **slave_dhw_config**
+ Boiler hot water mode ('off' is instantaneous or unspecified, 'on' is storage tank).
+
+- **slave_dhw_present**
+ Boiler reports hot water present.
+
+- **slave_diagnostic_indication**
+ Boiler diagnostic indication.
+
+- **slave_fault_indication**
+ Boiler fault indication.
+
+- **slave_flame_on**
+ Boiler reports flame on.
+
+- **slave_gas_fault**
+ Boiler reports gas fault.
+
+- **slave_low_water_pressure**
+ Boiler reports low water pressure.
+
+- **slave_master_low_off_pump**
+ Boiler supports low-off and pump control commands (this sensor is inverted, 'on' is not supported, 'off' is supported)
+
+- **slave_remote_reset**
+ Boiler reports 'lockout-reset' supported.
+
+- **slave_service_required**
+ Boiler reports service required.
+
+- **slave_water_overtemp**
+ Boiler reports water overtemperature.
+
## GPIO modes
Possible modes and their meaning for the GPIO pins are listed here:
@@ -403,18 +519,18 @@ The OpenTherm protocol is based on polling. The thermostat sends requests to the
# Example
-A full configuration example with the OpenTherm Gateway connected to a remote host running `ser2net` looks like the one below.
+A full configuration example with two configured OpenTherm Gateways - one connected via USB, the other over the network - looks like the one below.
```yaml
# Full example configuration.yaml entry
opentherm_gw:
- device: socket://otgw.example.org:2345
- climate:
- name: Thermostat
- precision: 0.5
- floor_temperature: true
- monitored_variables:
- - room_setpoint
- - room_temp
- - otgw_about
+ living_room:
+ device: /dev/ttyUSB0
+ name: "Living"
+ holiday_home:
+ device: socket://otgw.example.org:2345
+ name: "Holiday Home"
+ climate:
+ precision: 0.5
+ floor_temperature: true
```
diff --git a/source/_components/radiotherm.markdown b/source/_components/radiotherm.markdown
index 1396ad64e60..a872148f75b 100644
--- a/source/_components/radiotherm.markdown
+++ b/source/_components/radiotherm.markdown
@@ -10,8 +10,7 @@ redirect_from:
- /components/climate.radiotherm/
---
-
-The `radiotherm` climate platform let you control a thermostat from [Radio Thermostat](http://www.radiothermostat.com/) or [3M Filtrete](https://my.radiothermostat.com/filtrete/). Your thermostat must have the Wi-Fi module installed and connected to your network.
+The `radiotherm` climate platform let you control a thermostat from [Radio Thermostat](http://www.radiothermostat.com/) or [3M Filtrete](http://www.radiothermostat.com/filtrete/products/). Your thermostat must have the Wi-Fi module installed and connected to your network.
The underlying library supports:
@@ -43,16 +42,6 @@ host:
description: List of your Radiotherm thermostats. If not provided the thermostats will be auto-detected.
required: false
type: list
-away_temperature_heat:
- description: Target heating temperature in Fahrenheit for away mode. This is separate from away mode in the app.
- required: false
- default: 60
- type: float
-away_temperature_cool:
- description: Target cooling temperature in Fahrenheit for away mode. This is separate from away mode in the app.
- required: false
- default: 85
- type: float
hold_temp:
description: Boolean to control if Home Assistant temperature adjustments hold (`true`) or are temporary (`false`).
required: false
@@ -62,8 +51,6 @@ hold_temp:
Set `hold_temp: true` if you want temperature settings from Home Assistant to override a thermostat schedule on the thermostat itself. Otherwise Home Assistant will perform temporary temperature changes.
-The away mode functions similarly to the away mode feature of the website and apps, but cannot detect if you set away mode outside of Home Assistant.
-
Multiple thermostats can be assigned by using `host:` if auto-detection is not used.
```yaml
diff --git a/source/_components/sensibo.markdown b/source/_components/sensibo.markdown
index 8c77f762fbc..e03717d8a78 100644
--- a/source/_components/sensibo.markdown
+++ b/source/_components/sensibo.markdown
@@ -61,12 +61,14 @@ switch:
friendly_name: "AC"
value_template: "{{ is_state('climate.ac', 'cool') or is_state('climate.ac', 'heat') or is_state('climate.ac', 'dry') or is_state('climate.ac', 'heat')}}"
turn_on:
- service: climate.turn_on
+ service: climate.set_havc_mode
data:
entity_id: climate.ac
+ hvac_mode: off
turn_off:
- service: climate.turn_off
+ service: climate.set_havc_mode
data:
entity_id: climate.ac
+ hvac_mode:
```
{% endraw %}
diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown
index 9e0c5505ceb..26f15e0bea6 100644
--- a/source/_components/smartthings.markdown
+++ b/source/_components/smartthings.markdown
@@ -175,9 +175,8 @@ For a SmartThings Air Conditioner to be represented by the climate platform, it
| Capability |Climate Features
|-------------------------------------|--------------------------------------------|
-| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) (required) | `operation mode`
+| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) (required) | `hvac mode`, `hvac action`
| `airConditionerFanMode` (required) | `fan mode`
-| [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) (required) | `on/off`
| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) (required) | `temperature`
| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) (required) | `target temp`
| [`demandResponseLoadControl`](https://docs.smartthings.com/en/latest/capabilities-reference.html#demand-response-load-control) | `drlc_status_duration` (state attribute), `drlc_status_level` (state attribute), `drlc_status_override` (state attribute), `drlc_status_start` (state attribute)
@@ -189,12 +188,12 @@ For a SmartThings thermostat to be represented by the climate platform, it must
| Capability |Climate Features
|-------------------------------------|--------------------------------------------|
-| [`thermostat`](https://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat) (set a) | `operation mode`, `operating state` (state attribute), `target temp high`, `target temp low` and `fan mode`
-| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) (set b) | `operation mode`
+| [`thermostat`](https://docs.smartthings.com/en/latest/capabilities-reference.html#thermostat) (set a) | `hvac mode`, `hvac action`, `target temp high`, `target temp low` and `fan mode`
+| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) (set b) | `hvac mode`
| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) (seb b) | `target temp low`
| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) (set b) | `target temp high`
| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) (set b) |
-| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `operating state` (state attribute)
+| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `hvac action`
| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `fan mode`
| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity` (state attribute)
diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown
index e761a77fc15..61cd09c7989 100644
--- a/source/_components/sonos.markdown
+++ b/source/_components/sonos.markdown
@@ -111,6 +111,17 @@ Night Sound and Speech Enhancement modes are only supported when playing from th
| `night_sound` | yes | Boolean to control Night Sound mode.
| `speech_enhance` | yes | Boolean to control Speech Enhancement mode.
+### Service `sonos.play_queue`
+
+Starts playing the Sonos queue.
+
+Force start playing the queue, allows switching from another stream (such as radio) to playing the queue.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of `entity_id`s that will start playing. It must be the coordinator if targeting a group.
+| `queue_position` | yes | Position of the song in the queue to start playing from, starts at 0.
+
## Advanced use
For advanced uses, there are some manual configuration options available.
diff --git a/source/_components/stiebel_eltron.markdown b/source/_components/stiebel_eltron.markdown
index 9e70dac13f8..08f4e9d98e2 100644
--- a/source/_components/stiebel_eltron.markdown
+++ b/source/_components/stiebel_eltron.markdown
@@ -23,18 +23,22 @@ By now, the following units are tested:
- LWZ504e
- LWZ304
-## Operation modes
+## HVAC modes
-Only the standard HA operation modes are supported. The STIEBEL ELTRON modes are mapped and configurable as follows:
+The following HVAC modes are supported. The STIEBEL ELTRON modes are mapped and configurable as follows:
-- Auto (STATE_AUTO): Automatic mode
-- Eco (STATE_ECO): Standby mode
-- Manual (STATE_MANUAL): Manual mode
-- Off (STATE_OFF): DHW mode (domestic hot water mode, heating is switched off)
+- Auto (HVAC_MODE_AUTO): Automatic mode
+- Manual (HVAC_MODE_HEAT): Manual mode
+- Off (HVAC_MODE_OFF): DHW mode (domestic hot water mode, heating is switched off)
-The HA operation mode 'On' is displayed, if the following STIEBEL ELTRON modes are configured directly on the unit:
+## Preset modes
-- On (STATE_ON): Day mode, Setback mode or Emergency operation
+The following preset modes are supported. The STIEBEL ELTRON modes are mapped and configurable as follows:
+
+- Eco mode (PRESET_ECO)
+- Day mode (PRESET_DAY)
+- Setback mode (PRESET_SETBACK)
+- Emergency mode (PRESET_EMERGENCY)
## Configuration
diff --git a/source/_components/toon.markdown b/source/_components/toon.markdown
index dd911686a62..948b4ce0fd5 100644
--- a/source/_components/toon.markdown
+++ b/source/_components/toon.markdown
@@ -59,19 +59,26 @@ client_secret:
description: Toon API Consumer Secret.
required: true
type: string
+scan_interval:
+ description: The rate in seconds at which Toon should be polled for new data.
+ required: false
+ type: integer
+ default: 300
{% endconfiguration %}
## Climate
-The `toon` climate platform allows you to interact with your Toon thermostat. For compatibility reasons, the states in Home Assistant are different from the states displayed on your Toon device and are mapped as follows:
-
-| Home Assistant | Toon |
-|:---------------|:--------|
-| Auto | Comfort |
-| Heat | Thuis |
-| Eco | Weg |
-| Cool | Slapen |
+The `toon` climate platform allows you to interact with your Toon thermostat.
+Home Assistant support the four Toon presets: `Comfort`, `Home`, `Away` and `Sleep`.
It also supports setting the temperature manually.
-The Toon API is polled at a 300-second interval, so the status is relatively fresh without overloading the API.
+## Services
+
+### Service `update`
+
+Updates ententies from Toon with fresh queried data.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ------------------------------------------- |
+| `display` | Yes | The display you wish to fetch updates from. |
diff --git a/source/_components/trafikverket_train.markdown b/source/_components/trafikverket_train.markdown
new file mode 100644
index 00000000000..7237bcb4b86
--- /dev/null
+++ b/source/_components/trafikverket_train.markdown
@@ -0,0 +1,125 @@
+---
+layout: page
+title: "Trafikverket Train"
+description: "Instructions how to integrate Trafikverket Train within Home Assistant."
+date: 2019-04-27 16:32
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: trafikverket.png
+ha_category:
+ - Transport
+ - Sensor
+ha_release: 0.96
+ha_iot_class: Cloud Polling
+---
+
+Retrieve train departure information from [Trafikverket](https://www.trafikverket.se/).
+
+Use cases:
+
+- Retrieve the next departure and information connected to it for a specific train line.
+- Retrieve information for specific departure time on a specific train line.
+- Set up an alert or perform actions if your train is delayed or canceled.
+
+Data that is retrieved:
+
+- Next departure for the specific train line.
+- Canceled status.
+- The number of minutes delayed.
+- Planned time if no delays occur.
+- Estimated time of arrival if delays occur.
+- Actual time - when it did arrive.
+- Other information / additional texts.
+- Deviations.
+
+## {% linkable_title Configuration %}
+
+To enable this sensor, use the following format in your `configuration.yaml`.
+
+```yaml
+sensor:
+ - platform: trafikverket_train
+ api_key: TRAFIKVERKET_API
+ trains:
+ - name: "Morning train to Malmö"
+ from: "Stockholm Central"
+ to: "Malmö C"
+ time: "9:25"
+
+ - name: "Next train to Uppsala"
+ from: "Stockholm Central"
+ to: "Uppsala C"
+```
+
+{% configuration %}
+api_key:
+ description: Your personal API key from Trafikverket.
+ required: true
+ type: string
+trains:
+ description: Specify details on the departures to monitor.
+ required: true
+ type: map
+ keys:
+ name:
+ description: The name of the departure, will be the sensor name.
+ required: true
+ type: string
+ from:
+ description: The station from where the train departs.
+ required: true
+ type: string
+ to:
+ description: The destination station.
+ required: true
+ type: string
+ time:
+ description: Departure time to monitor, if not entered it will retrieve the next departure.
+ required: false
+ type: string
+ weekday:
+ description: Specify which days in the week to monitor the specific departure.
+ required: false
+ type: list
+ default: "[mon, tue, wed, thu, fri, sat, sun]"
+{% endconfiguration %}
+
+## {% linkable_title Obtaining API key %}
+
+Please click [here](https://api.trafikinfo.trafikverket.se/) and register to obtain the API key.
+
+## {% linkable_title Train station names %}
+
+Click [here](https://www.trafikverket.se/trafikinformation/tag/?ArrDep=departure&) to see an example of train station names.
+
+## {% linkable_title Examples %}
+
+```yaml
+sensor:
+- platform: trafikverket
+ api_key: !secret trafikverket_api_key
+ trains:
+ - name: "Train to work"
+ from: Sölvesborg
+ to: Kristianstad C
+ time: "07:28"
+ weekday: [mon, tue, wed, thu, fri]
+
+ - name: "Train from work early"
+ from: Kristianstad C
+ to: Sölvesborg
+ time: "16:38"
+
+ - name: "Train from work late"
+ from: Kristianstad C
+ to: Sölvesborg
+ time: "17:02"
+ weekday: [sat, sun]
+
+ - name: "Next train to Uppsala"
+ from: "Stockholm Central"
+ to: "Uppsala C"
+
+```
diff --git a/source/_components/twilio_sms.markdown b/source/_components/twilio_sms.markdown
index cff9f52e7b5..94b12da0dec 100644
--- a/source/_components/twilio_sms.markdown
+++ b/source/_components/twilio_sms.markdown
@@ -39,6 +39,10 @@ name:
Twilio is a notify platform and thus can be controlled by calling the notify service [as described here](/components/notify/). It will send a notification to all E.164 phone numbers in the notification **target**. See the notes above regarding the `from_number` configuration variable for information about formatting phone numbers.
+Media can be included with messages by setting the optional `media_url` variable. Only `.gif`, `.png`, or `.jpeg` content are supported, according to the Twilio documentation and this feature is [only supported in the US and Canada.][mms]
+
+[mms]: https://www.twilio.com/docs/sms/send-messages#include-media-in-your-messages
+
```yaml
# Example automation notification entry
automation:
@@ -53,4 +57,6 @@ automation:
target:
- '+14151234567'
- '+15105555555'
+ data:
+ - media_url: 'https://www.home-assistant.io/images/supported_brands/home-assistant.png'
```
diff --git a/source/_components/vacuum.template.markdown b/source/_components/vacuum.template.markdown
new file mode 100644
index 00000000000..f327654fe4e
--- /dev/null
+++ b/source/_components/vacuum.template.markdown
@@ -0,0 +1,153 @@
+---
+layout: page
+title: "Template Vacuum"
+description: "Instructions how to setup Template vacuums within Home Assistant."
+date: 2019-05-20 16:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Vacuum
+ha_release: 0.96
+ha_iot_class: Local Push
+logo: home-assistant.png
+ha_qa_scale: internal
+---
+
+The `template` platform creates vacuums that combine integrations and provides the
+ability to run scripts or invoke services for each of the start, pause, stop,
+return_to_base, clean_spot, locate and set_fan_speed commands of a vacuum.
+
+To enable Template Vacuums in your installation, add the following to your
+`configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+vacuum:
+ - platform: template
+ vacuums:
+ living_room_vacuum:
+ start:
+ service: script.vacuum_start
+```
+
+{% configuration %}
+ vacuums:
+ description: List of your vacuums.
+ required: true
+ type: map
+ keys:
+ friendly_name:
+ description: Name to use in the frontend.
+ required: false
+ type: string
+ value_template:
+ description: "Defines a template to get the state of the vacuum. Valid value: `docked`/`cleaning`/`idle`/`paused`/`returning`/`error`"
+ required: false
+ type: template
+ battery_level_template:
+ description: "Defines a template to get the battery level of the vacuum. Legal values are numbers between `0` and `100`."
+ required: false
+ type: template
+ fan_speed_template:
+ description: Defines a template to get the fan speed of the vacuum.
+ required: false
+ type: template
+ start:
+ description: Defines an action to run when the vacuum is started.
+ required: true
+ type: action
+ pause:
+ description: Defines an action to run when the vacuum is paused.
+ required: false
+ type: action
+ stop:
+ description: Defines an action to run when the vacuum is stopped.
+ required: false
+ type: action
+ return_to_base:
+ description: Defines an action to run when the vacuum is given a return to base command.
+ required: false
+ type: action
+ clean_spot:
+ description: Defines an action to run when the vacuum is given a clean spot command.
+ required: false
+ type: action
+ locate:
+ description: Defines an action to run when the vacuum is given a locate command.
+ required: false
+ type: action
+ set_fan_speed:
+ description: Defines an action to run when the vacuum is given a command to set the fan speed.
+ required: false
+ type: action
+ fan_speeds:
+ description: List of fan speeds supported by the vacuum.
+ required: false
+ type: string list
+{% endconfiguration %}
+
+## {% linkable_title Examples %}
+
+### {% linkable_title Control vacuum with Harmony Hub %}
+
+This example shows how you can use a Template Vacuum to control an IR vacuum cleaner using the [Harmony Hub Remote component](/components/remote.harmony/).
+
+```yaml
+vacuum:
+ - platform: template
+ vacuums:
+ living_room_vacuum:
+ start:
+ - service: remote.send_command
+ data:
+ entity_id: remote.harmony_hub
+ command: Clean
+ device: 52840686
+ return_to_base:
+ - service: remote.send_command
+ data:
+ entity_id: remote.harmony_hub
+ command: Home
+ device: 52840686
+ clean_spot:
+ - service: remote.send_command
+ data:
+ entity_id: remote.harmony_hub
+ command: SpotCleaning
+ device: 52840686
+```
+
+### {% linkable_title Vacuum with state %}
+
+This example shows how to use templates to specify the state of the vacuum.
+
+{% raw %}
+```yaml
+vacuum:
+ - platform: template
+ vacuums:
+ living_room_vacuum:
+ value_template: "{{ states('sensor.vacuum_state') }}"
+ battery_level_template: "{{ states('sensor.vacuum_battery_level')|int }}"
+ fan_speed_template: "{{ states('sensor.vacuum_fan_speed') }}"
+ start:
+ service: script.vacuum_start
+ pause:
+ service: script.vacuum_pause
+ stop:
+ service: script.vacuum_stop
+ return_to_base:
+ service: script.vacuum_return_to_base
+ clean_spot:
+ service: script.vacuum_clean_spot
+ locate:
+ service: script.vacuum_locate_vacuum
+ set_fan_speed:
+ service: script.vacuum_set_fan_speed
+ fan_speeds:
+ - Low
+ - Medium
+ - High
+```
+{% endraw %}
diff --git a/source/_components/vallox.markdown b/source/_components/vallox.markdown
new file mode 100644
index 00000000000..c5bfc7e7e99
--- /dev/null
+++ b/source/_components/vallox.markdown
@@ -0,0 +1,109 @@
+---
+layout: page
+title: "Vallox Ventilation Units"
+description: "Instructions on how to integrate Vallox ventilation units into Home Assistant."
+date: 2019-06-19 20:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: vallox.png
+ha_category:
+ - Fan
+ - Sensor
+ha_release: 0.96
+ha_iot_class: Local Polling
+---
+
+The `vallox` integration lets you control any Vallox ventilation unit that is supported by the [vallox_websocket_api](https://github.com/yozik04/vallox_websocket_api) (follow the link for a list of supported units).
+
+The **fan** platform of this integration allows you to either turn on/off the complete unit via the toggle switch or select a ventilation profile through the service `vallox/set_profile`. The four standard Vallox profiles are provided:
+
+- `At Home`
+- `Away`
+- `Boost`
+- `Fireplace`
+
+Also, there is a **sensor** platform that exposes a number of relevant metrics like fan speed, various air temperatures and humidity.
+
+### {% linkable_title Configuration %}
+
+```yaml
+vallox:
+ host: IP_ADDRESS
+```
+
+{% configuration %}
+host:
+ description: The IP or hostname of the ventilation unit in your home network.
+ required: true
+ type: string
+name:
+ description: The name of this device as you want to see it in Home Assistant.
+ required: false
+ default: Vallox
+ type: string
+{% endconfiguration %}
+
+## {% linkable_title Profile Switching %}
+
+For convenient switching of ventilation profiles in the GUI, consider using an [input_select](../input_select) hooked to an automation, for example:
+
+{% raw %}
+```yaml
+input_select:
+ ventilation_profile:
+ name: Ventilation profile select
+ options:
+ - "Home"
+ - "Away"
+ - "Boost"
+ - "Fireplace"
+ icon: mdi:fan
+
+automation:
+ - alias: Set Ventilation Profile
+ trigger:
+ platform: state
+ entity_id: input_select.ventilation_profile
+ action:
+ service: vallox.set_profile
+ data_template:
+ profile: "{{ states('input_select.ventilation_profile') }}"
+```
+{% endraw %}
+
+## {% linkable_title Fan Services %}
+
+### {% linkable_title Service `vallox.set_profile` %}
+
+Set the ventilation profile.
+
+| Service data attribute | Optional | Description |
+|------------------------|----------|------------------------------------------------------|
+| `profile` | no | Allowed values: `Home`, `Away`, `Boost`, `Fireplace` |
+
+### {% linkable_title Service `vallox.set_profile_fan_speed_home` %}
+
+Set the fan speed of the `Home` profile.
+
+| Service data attribute | Optional | Description |
+|------------------------|----------|-------------------------------------------------|
+| `fan_speed` | no | Fan speed in %. `Integer`, between 0 and 100. |
+
+
+### {% linkable_title Service `vallox.set_profile_fan_speed_away` %}
+
+Set the fan speed of the `Away` profile.
+
+| Service data attribute | Optional | Description |
+|------------------------|----------|-------------------------------------------------|
+| `fan_speed` | no | Fan speed in %. `Integer`, between 0 and 100. |
+
+### {% linkable_title Service `vallox.set_profile_fan_speed_boost` %}
+
+Set the fan speed of the `Boost` profile.
+
+| Service data attribute | Optional | Description |
+|------------------------|----------|-------------------------------------------------|
+| `fan_speed` | no | Fan speed in %. `Integer`, between 0 and 100. |
diff --git a/source/_components/velbus.markdown b/source/_components/velbus.markdown
index bad29c4e59c..1d59dd2508e 100644
--- a/source/_components/velbus.markdown
+++ b/source/_components/velbus.markdown
@@ -25,6 +25,7 @@ There is currently support for the following device types within Home Assistant:
- Climate
- Sensor
- Switch
+- Cover
## Configuration
diff --git a/source/_components/venstar.markdown b/source/_components/venstar.markdown
index ac33c424a58..0e827285edd 100644
--- a/source/_components/venstar.markdown
+++ b/source/_components/venstar.markdown
@@ -23,8 +23,8 @@ Currently supported functionality:
- Changing the operation mode of the thermostat (heat/cool/off/auto)
- Turning the fan on/off
- Reading and setting the humidity level and limits
-- Turning away mode on/off
-- Turning hold mode on/off
+- Turning on away preset
+- Turning on hold mode preset
The following values are supported for the hold_mode state attribute:
- `off`: *Enables* the scheduling functionality.
diff --git a/source/_components/wwlln.markdown b/source/_components/wwlln.markdown
new file mode 100644
index 00000000000..4a2fa75fefc
--- /dev/null
+++ b/source/_components/wwlln.markdown
@@ -0,0 +1,82 @@
+---
+layout: page
+title: "World Wide Lightning Location Network (WWLLN)"
+description: "Instructions on how to integrate WWLLN within Home Assistant."
+date: 2019-07-06 23:17
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: wwlln.jpg
+ha_category: Geolocation
+ha_release: 0.96
+ha_iot_class: Cloud Polling
+ha_config_flow: true
+---
+
+The `wwlln` integration displays lightning strike information from the
+[World Wide Lightning Location Network (WWLLN)](http://wwlln.net).
+
+Entities are generated, updated and removed automatically with each update
+from the feed. Each entity defines latitude and longitude and will be shown
+on the default map automatically, or on a map card by defining the source
+`wwlln`. The distance (in kilometers or miles, depending on your unit system)
+is available as the state of each entity.
+
+
+
+
+
+New data is returned every 5 minutes.
+
+## Configuration
+
+To retrieve data from the WWLLN, add the following to your `configuration.yaml`
+file:
+
+```yaml
+wwlln:
+```
+
+{% configuration %}
+latitude:
+ description: The latitude you want to monitor; defaults to the value defined in `configuration.yaml`.
+ required: false
+ type: float
+longitude:
+ description: The longitude you want to monitor; defaults to the value defined in `configuration.yaml`.
+ required: false
+ type: float
+radius:
+ description: The radius around your location to monitor; defaults to 25 km or mi (depending on the unit system defined in your `configuration.yaml`).
+ required: false
+ type: int
+window:
+ description: The amount of time before now for which strikes should be considered "active" and shown in the UI.
+ required: false
+ type: time
+{% endconfiguration %}
+
+## State Attributes
+
+The following state attributes are available for each entity in addition to
+the standard ones:
+
+| Attribute | Description |
+|--------------------|-------------|
+| latitude | Latitude of the lightning strike. |
+| longitude | Longitude of the lightning strike. |
+| source | `wwlln` to be used in conjunction with the `geo_location` automation trigger. |
+| external_id | The external ID used in the feed to identify the earthquake in the feed. |
+| publication_date | Date and time when this event occurred. |
+
+
+## Full Configuration
+
+```yaml
+# Example configuration.yaml entry
+wwlln:
+ radius: 100
+ latitude: 37.39
+ longitude: -5.99
+```
diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown
index 017b90d81ea..1349bb7ad2b 100644
--- a/source/_docs/automation/templating.markdown
+++ b/source/_docs/automation/templating.markdown
@@ -112,6 +112,7 @@ The following tables show the available trigger data per platform.
| `trigger.above` | The above threshold, if any.
| `trigger.from_state` | The previous [state object] of the entity.
| `trigger.to_state` | The new [state object] that triggered trigger.
+| `trigger.for` | Timedelta object how long state has met above/below criteria, if any.
### state
@@ -139,6 +140,7 @@ The following tables show the available trigger data per platform.
| `trigger.entity_id` | Entity ID that caused change.
| `trigger.from_state` | Previous [state object] of entity that caused change.
| `trigger.to_state` | New [state object] of entity that caused template to change.
+| `trigger.for` | Timedelta object how long state has been to state, if any.
### time
diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown
index 55c627c3cf8..cea62fc31c2 100644
--- a/source/_docs/automation/trigger.markdown
+++ b/source/_docs/automation/trigger.markdown
@@ -102,6 +102,30 @@ automation:
```
{% endraw %}
+You can also use templates in the `for` option.
+
+{% raw %}
+```yaml
+automation:
+ trigger:
+ platform: numeric_state
+ entity_id:
+ - sensor.temperature_1
+ - sensor.temperature_2
+ above: 80
+ for:
+ minutes: "{{ states('input_number.high_temp_min')|int }}"
+ seconds: "{{ states('input_number.high_temp_sec')|int }}"
+ action:
+ service: persistent_notification.create
+ data_template:
+ message: >
+ {{ trigger.to_state.name }} too high for {{ trigger.for }}!
+```
+{% endraw %}
+
+The `for` template(s) will be evaluated when an entity changes as specified.
+
### State trigger
Triggers when the state of any of given entities changes. If only `entity_id` is given trigger will activate for all state changes, even if only state attributes change.
@@ -120,8 +144,28 @@ automation:
for: '01:10:05'
```
-
+You can also use templates in the `for` option.
+{% raw %}
+```yaml
+automation:
+ trigger:
+ platform: state
+ entity_id: device_tracker.paulus, device_tracker.anne_therese
+ to: 'home'
+ for:
+ minutes: "{{ states('input_number.lock_min')|int }}"
+ seconds: "{{ states('input_number.lock_sec')|int }}"
+ action:
+ service: lock.lock
+ entity_id: lock.my_place
+```
+{% endraw %}
+
+The `for` template(s) will be evaluated when an entity changes as specified.
+
+
+
Use quotes around your values for `from` and `to` to avoid the YAML parser interpreting values as booleans.
@@ -181,7 +225,7 @@ Although the actual amount of light depends on weather, topography and land cove
This is what is meant by twilight for the average person: Under clear weather conditions, civil twilight approximates the limit at which solar illumination suffices for the human eye to clearly distinguish terrestrial objects. Enough illumination renders artificial sources unnecessary for most outdoor activities.
- Nautical twilight: 6° > Solar angle > -12°
- Astronomical twilight: 12° > Solar angle > -18°
-
+
A very thorough explanation of this is available in the Wikipedia article about the [Twilight](https://en.wikipedia.org/wiki/Twilight).
### Template trigger
@@ -201,8 +245,22 @@ automation:
```
{% endraw %}
-
+You can also use templates in the `for` option.
+{% raw %}
+```yaml
+automation:
+ trigger:
+ platform: template
+ value_template: "{{ is_state('device_tracker.paulus', 'home') }}"
+ for:
+ minutes: "{{ states('input_number.minutes')|int(0) }}"
+```
+{% endraw %}
+
+The `for` template(s) will be evaluated when the `value_template` becomes `true`.
+
+
Rendering templates with time (`now()`) is dangerous as trigger templates only update based on entity state changes.
diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown
index 8196d6a5557..471f93846dc 100644
--- a/source/_docs/configuration/templating.markdown
+++ b/source/_docs/configuration/templating.markdown
@@ -27,7 +27,6 @@ We will not go over the basics of the syntax, as Jinja2 does a great job of this
The frontend has a template editor tool to help develop and debug templates. Click on the icon, create your template in the _Template editor_ and check the results on the right.
-
Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates:
{% raw %}
@@ -48,7 +47,7 @@ script:
## Home Assistant template extensions
- Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters.
+Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters.
### States
@@ -68,7 +67,6 @@ script:
Besides the normal [state object methods and properties](/topics/state_object/), `states.sensor.temperature.state_with_unit` will print the state of the entity and, if available, the unit.
-
#### States examples
The next two statements result in the same value if the state exists. The second one will result in an error if the state does not exist.
@@ -114,10 +112,9 @@ Other state examples:
```
{% endraw %}
-
### Attributes
-You can print an attribute with `state_attr` if state is defined.
+You can print an attribute with `state_attr` if state is defined.
#### Attributes examples
@@ -145,8 +142,33 @@ With strings:
```
{% endraw %}
+### {% linkable_title Working with Groups %}
+
+The `expand` function and filter can be used to sort entities and expand groups. It outputs a sorted array of entities with no duplicates.
+
+#### {% linkable_title Expand examples %}
+
+{% raw %}
+```text
+{% for tracker in expand('device_tracker.paulus', 'group.child_trackers') %}
+ {{ state_attr(tracker, 'battery') }}
+ {%- if not loop.last %}, {% endif -%}
+{% endfor %}
+```
+{% endraw %}
+
+The same thing can also be expressed as a filter:
+
+{% raw %}
+```text
+{{ ['device_tracker.paulus', 'group.child_trackers'] | expand
+ | selectattr("attributes.battery", 'defined')
+ | join(', ', attribute="attributes.battery") }}
+```
+{% endraw %}
### Time
+
- `now()` will be rendered as the current time in your time zone.
- For specific values: `now().second`, `now().minute`, `now().hour`, `now().day`, `now().month`, `now().year`, `now().weekday()` and `now().isoweekday()`
- `utcnow()` will be rendered as UTC time.
@@ -158,10 +180,12 @@ With strings:
- Filter `timestamp_custom(format_string, local_boolean)` will convert a UNIX timestamp to a custom format, the use of a local timestamp is default. Supports the standard [Python time formatting options](https://docs.python.org/3/library/time.html#time.strftime).
### Distance
+
- `distance()` will measure the distance in kilometers between home, entity, coordinates.
- `closest()` will find the closest entity.
#### Distance examples
+
If only one location is passed in, Home Assistant will measure the distance from home.
{% raw %}
@@ -176,12 +200,14 @@ These can also be combined in any combination:
```
{% endraw %}
-Find entities closest to the Home Assistant location:
+#### {% linkable_title Closest examples %}
+
+The closest function and filter will find the closest entity to the Home Assisant location:
{% raw %}
```text
Query all entities: {{ closest(states) }}
-Query all entities of a specific domain: {{ closest('states.device_tracker') }}
+Query all entities of a specific domain: {{ closest(states.device_tracker) }}
Query all entities in group.children: {{ closest('group.children') }}
Query all entities in group.children: {{ closest(states.group.children) }}
```
@@ -205,11 +231,37 @@ Since closest returns a state, we can combine it with distance too.
```
{% endraw %}
+The last argument of the closest function has an implicit `expand`, and can take any iterable sequence of states or entity IDs, and will expand groups:
+
+{% raw %}
+```text
+Closest out of given entities:
+ {{ closest(['group.children', states.device_tracker]) }}
+Closest to a coordinate:
+ {{ closest(23.456, 23.456, ['group.children', states.device_tracker]) }}
+Closest to some entity:
+ {{ closest(states.zone.school, ['group.children', states.device_tracker]) }}
+```
+
+It will also work as a filter over a iterable group of entities or groups:
+
+```text
+Closest out of given entities:
+ {{ ['group.children', states.device_tracker] | closest }}
+Closest to a coordinate:
+ {{ ['group.children', states.device_tracker] | closest(23.456, 23.456) }}
+Closest to some entity:
+ {{ ['group.children', states.device_tracker] | closest(states.zone.school) }}
+```
+
+{% endraw %}
### Formatting
+
- `float` will format the output as float.
### Numeric functions and filters
+
Some of these functions can also be used in a [filter](http://jinja.pocoo.org/docs/dev/templates/#id11). This means they can act as a normal function like this `sqrt(2)`, or as part of a filter like this `2|sqrt`.
- `log(value, base)` will take the logarithm of the input. When the base is omitted, it defaults to `e` - the natural logarithm. Can also be used as a filter.
@@ -227,6 +279,7 @@ Some of these functions can also be used in a [filter](http://jinja.pocoo.org/do
- Filter `value_one|bitwise_or(value_two)` perform a bitwise or(\|) operation with two values.
### Regular expressions
+
- Filter `string|regex_match(find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex.
- Filter `string|regex_search(find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex.
- Filter `string|regex_replace(find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex.
@@ -330,13 +383,13 @@ To evaluate a response, go to the
+
+It's time for Home Assistant 0.96. It's a great release, but we also made some changes, so please pay attention.
+
+## Last release that supports Python 3.5
+
+This will be the last release that supports Python 3.5. Home Assistant 0.97 will require at least Python 3.6. If you are using Hass.io or Docker, you will not have to do anything. If you are running Hassbian, [upgrade instructions are here](https://github.com/home-assistant/hassbian-scripts/blob/dev/docs/suites/python.md). If you run Home Assistant inside a virtual environment, please follow the instructions for your OS to update.
+
+Home Assistant has adopted a new [Python support strategy](https://github.com/home-assistant/architecture/blob/master/adr/0002-minimum-supported-python-version.md). Starting August 1, we will now support the last two minor stable releases of Python. This is currently Python 3.6 and Python 3.7. Python 3.8 is expected to be released near the end of the year. Once that is released, Python 3.6 support is deprecated and removed 2 months later.
+
+## Pimp my Sidebar
+
+The sidebar has gotten an improved look! Idea started with [a mockup by @JuanMTech on Twitter](https://twitter.com/JuanMTech/status/1143757213971943424) and grew into a full blown implementation. The sidebar will now always be visible in a minimized mode. Hovering it will expand it. The developer tool buttons have been collapsed into a single menu item. The dev tools will now store it's exact state when you navigate away, included the dev tool that is open. We've also taken the opportunity to make notifications accessible from the sidebar, instead of only via the Lovelace UI.
+
+On mobile devices the sidebar will behave like it previously did. Check [the demo](https://demo.home-assistant.io) for a preview.
+
+
+
+## Climate
+
+This release includes a major clean up of our climate integration, correcting some architectural flaws from the past. The goal of this clean up was to a better job at providing an abstraction layer that fits many devices. This will improve compatibility with services that interact with Home Assistant (like Alexa/Google) and will allow us to make sure the UI works for everyone. We've done a lot of testing during the beta, but there might still be things that don't work as expected. If you notice anything, please report by [**opening a bug report**](https://github.com/home-assistant/home-assistant/issues).
+
+For a breakdown of what was driving the change, [check our blog post on the dev blog](https://developers.home-assistant.io/blog/2019/07/03/climate-cleanup.html).
+
+The following things have been changed:
+
+ - `operation_mode` has been renamed to `hvac_mode` to emphasize what the mode is for.
+ - We split HVAC mode `auto` into `auto` and `heat_cool`. If it's `heat_cool`, the user has set a temperature range the device has to use heating and cooling to stay within. Auto mode is now limited to devices that are running on a schedule or AI.
+ - The state of a climate entity is now always equal to the HVAC mode.
+ - `hvac_action` is introduced for integrations that know the current action: heating, cooling, idle.
+ - `set_away_mode` and `set_hold_mode` have been merged into `set_preset_mode`. So instead of `turn_away_mode_on()`, we will now call `set_preset_mode("away")`.
+ - The `is_on` property has been removed. If a device is able to turn off, it should include the HVAC mode `HVAC_MODE_OFF`.
+ - Property names have been aligned, anything ending with "_list" is now named "_modes".
+ - Integrations are only allowed to represent functionality that is present in the API. It is not allowed to add your own fake away mode.
+
+Huge thanks to [@pvizeli] who drove the core implementation and to the following people for helping getting it past the finish line:
+
+- [@andrewsayre]
+- [@balloob]
+- [@cgtobi]
+- [@Danielhiversen]
+- [@frenck]
+- [@Jc2k]
+- [@marvin-w]
+- [@OnFreund]
+- [@SukramJ]
+- [@zxdavb]
+
+[@JuanMTech]: https://github.com/JuanMTech
+[@Jc2k]: https://github.com/Jc2k
+[@marvin-w]: https://github.com/marvin-w
+[@OnFreund]: https://github.com/OnFreund
+[@SukramJ]: https://github.com/SukramJ
+[@teachingbirds]: https://github.com/teachingbirds
+
+## Advanced mode
+
+As part of Home Assistant 1.0 effort, we're simplifying the default user interface. We're doing this by hiding certain configuration options like the customize panel behind a new "advanced mode" toggle. You can find this toggle on your profile page.
+
+Advanced mode is only available to admin users and is a per-user setting. Enabling it for yourself won't enable it for other admins.
+
+## In other news…
+
+Raspberry Pi 4 support has arrived in beta. [@pvizeli] has been hard at work and the first beta release [is available](https://github.com/home-assistant/hassos/releases/tag/3.3). If you flash this image, you will be able to update to a stable release later from within the UI.
+
+Big shout out to [@frenck] who has been doing a lot of clean up on the website. Like, a lot lot. He has removed over 20.000 unused lines of code, and has simplified how we render code blocks, pages and headers. It takes Jekyll now a mere 14 seconds to generate the whole website! It used to be 6 minutes! 😲
+
+Last week [@balloob] showed a preview of the upcoming [Home Assistant Cast](/blog/2019/07/09/home-assistant-cast-preview/), a new interface for Home Assistant that runs on Chromecasts and Google Assistant devices with screens.
+
+[@teachingbirds] has redone her Lovelace UI and it is looking fabulous!
+
+
Redid my whole layout for the @home_assistant dashboard yesterday on a whim. "Nest hub inspired", I call it. 😄 I like it a lot! Feels put together and less messy. pic.twitter.com/8pmA5CWKev