_voltage
```
-
diff --git a/source/_components/sensor.teksavvy.markdown b/source/_components/sensor.teksavvy.markdown
index c55d05f3f398..0cf50bdf67a0 100644
--- a/source/_components/sensor.teksavvy.markdown
+++ b/source/_components/sensor.teksavvy.markdown
@@ -75,4 +75,3 @@ monitored_conditions:
onpeak_remaining:
description: Remaining bandwidth (gigabytes).
{% endconfiguration %}
-
diff --git a/source/_components/sensor.tellduslive.markdown b/source/_components/sensor.tellduslive.markdown
deleted file mode 100644
index 4e136af47607..000000000000
--- a/source/_components/sensor.tellduslive.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "Telldus Live sensor"
-description: "Instructions on how to integrate Telldus Live sensors into Home Assistant."
-date: 2016-01-17 15:49
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: telldus.png
-ha_category: Sensor
-ha_iot_class: "Local Polling"
----
-
-Integrates Telldus Live sensors into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions.
-
diff --git a/source/_components/sensor.tellstick.markdown b/source/_components/sensor.tellstick.markdown
deleted file mode 100644
index f25207d60bd1..000000000000
--- a/source/_components/sensor.tellstick.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
----
-layout: page
-title: "TellStick Sensor"
-description: "Instructions on how to integrate TellStick sensors into Home Assistant."
-date: 2015-08-06 19:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: telldus_tellstick.png
-ha_category: Sensor
-ha_iot_class: "Local Polling"
----
-
-The `tellstick` sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device.
-
-To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: tellstick
-```
-
-{% configuration %}
-sensor:
- description: "Entry for a sensor with the ID and its name, e.g., ID: Name."
- required: false
- type: string
-only_named:
- description: Only show the named sensors. Set to `True` to hide sensors.
- required: false
- default: false
- type: boolean
-temperature_scale:
- description: The scale of the temperature value.
- required: false
- default: °C
- type: string
-datatype_mask:
- description: Mask to determine which sensor values to show based on. Please check the [TellCore tellcore.constants documentation](https://tellcore-py.readthedocs.org/en/v1.1.2/constants.html#module-tellcore.constants) for details.
- required: false
- default: 127
- type: integer
-{% endconfiguration %}
-
-## {% linkable_title Examples %}
-
-In this section you find some real-life examples of how to use this sensor.
-
-### {% linkable_title Full configuration %}
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: tellstick
- 135: Outside
- 21: Inside
- only_named: True
- temperature_scale: "°C"
- datatype_mask: 1
-```
diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown
index 3420986a0373..238407e63f1d 100644
--- a/source/_components/sensor.template.markdown
+++ b/source/_components/sensor.template.markdown
@@ -55,7 +55,7 @@ sensor:
required: false
type: string, list
unit_of_measurement:
- description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualisation as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values."
+ description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualization as a continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values."
required: false
type: string
default: None
@@ -80,18 +80,19 @@ sensor:
## {% linkable_title Considerations %}
-### Startup
+### {% linkable_title Startup %}
If you are using the state of a platform that takes extra time to load, the Template Sensor may get an `unknown` state during startup. To avoid this (and the resulting error messages in your log file), you can use `is_state()` function in your template. For example, you would replace {% raw %}`{{ states.switch.source.state == 'on' }}`{% endraw %} with this equivalent that returns `true`/`false` and never gives an `unknown` result:
+
{% raw %}`{{ is_state('switch.source', 'on') }}`{% endraw %}
-### Entity IDs
+### {% linkable_title Entity IDs %}
-The template engine will attempt to work out what entities should trigger an update of the sensor. This can fail, for example if your template loops over the contents of a group. In this case you can use `entity_id` to provide a list of entity IDs that will cause the sensor to update or you can run the service `homeassistant.update_entity` to update the sensor at will.
+The template engine will attempt to work out what entities should trigger an update of the sensor. This can fail, for example, if your template loops over the contents of a group. In this case, you can use `entity_id` to provide a list of entity IDs that will cause the sensor to update or you can run the service `homeassistant.update_entity` to update the sensor at will.
## {% linkable_title Examples %}
-In this section you find some real-life examples of how to use this sensor.
+In this section, you find some real-life examples of how to use this sensor.
### {% linkable_title Sun Angle %}
@@ -111,7 +112,7 @@ sensor:
### {% linkable_title Renaming Sensor Output %}
-If you don't like the wording of a sensor output then the Template Sensor can help too. Let's rename the output of the [Sun component](/components/sun/) as
+If you don't like the wording of a sensor output, then the Template Sensor can help too. Let's rename the output of the [Sun component](/components/sun/) as
a simple example:
{% raw %}
@@ -156,7 +157,7 @@ sensor:
### {% linkable_title Change The Unit of Measurement %}
-With a Template Sensor it's easy to convert given values into others if the unit of measurement doesn't fit your needs.
+With a Template Sensor, it's easy to convert given values into others if the unit of measurement doesn't fit your needs.
{% raw %}
```yaml
@@ -267,7 +268,7 @@ sensor:
```
{% endraw %}
-Useful entities to choose might be `sensor.date` which update once per day, or `sensor.time` which updates once per minute.
+Useful entities to choose might be `sensor.date` which update once per day or `sensor.time` which updates once per minute.
An alternative to this is to create an interval-based automation that calls the service `homeassistant.update_entity` for the entities requiring updates. This modified example updates every 5 minutes:
@@ -285,9 +286,8 @@ sensor:
automation:
- alias: 'nonsmoker_update'
trigger:
- - platform: time
+ - platform: time_pattern
minutes: '/5'
- seconds: 0
action:
- service: homeassistant.update_entity
entity_id: sensor.nonsmoker
diff --git a/source/_components/sensor.tesla.markdown b/source/_components/sensor.tesla.markdown
deleted file mode 100644
index 1b9dfcca1559..000000000000
--- a/source/_components/sensor.tesla.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Tesla Sensor"
-description: "Instructions on how to integrate Tesla sensors into Home Assistant."
-date: 2017-08-30 12:21
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tesla.png
-ha_category: Car
-ha_iot_class: "Cloud Push"
-ha_release: 0.53
----
-
-The `tesla` platform allows you to get data from your [Tesla](https://www.tesla.com/) sensors from within Home Assistant.
-
-The sensor platform will be automatically configured if `tesla` component is configured.
-
-For more configuration information see the [Tesla component](/components/tesla/) documentation.
diff --git a/source/_components/sensor.thermoworks_smoke.markdown b/source/_components/sensor.thermoworks_smoke.markdown
index 11098e72a8c5..c50ddfb8c39f 100644
--- a/source/_components/sensor.thermoworks_smoke.markdown
+++ b/source/_components/sensor.thermoworks_smoke.markdown
@@ -16,7 +16,7 @@ ha_iot_class: "Cloud Polling"
The `thermoworks_smoke` sensor platform pulls data for your [ThermoWorks Smoke Thermometer](https://www.thermoworks.com/Smoke).
This requires a [Smoke WiFi Gateway](https://www.thermoworks.com/Smoke-Gateway) with an internet connection.
-You will need to have previously registered your smoke to your account via the mobile app and provide
+You will need to have previously registered your smoke to your account via the mobile app and provide
the email and password you used to in the configuration for this sensor in order to connect and pull your data.
## {% linkable_title Configuration %}
@@ -109,7 +109,7 @@ input_number:
step: 0.5
unit_of_measurement: '°F'
icon: mdi:thermometer
-
+
automation:
- alias: Alert when My Smoke Probe 1 is above threshold
trigger:
diff --git a/source/_components/sensor.thethingsnetwork.markdown b/source/_components/sensor.thethingsnetwork.markdown
index faeb8b7e6500..b5a27540f1e5 100644
--- a/source/_components/sensor.thethingsnetwork.markdown
+++ b/source/_components/sensor.thethingsnetwork.markdown
@@ -42,7 +42,7 @@ Click **Add integration** to finish the process.
Add a The Things Network Data Storage integration
-When done, the status of the integration should be **Running**. You could check the output after clicking on **go to platform** in an interactive web interface.
+When done, the status of the integration should be **Running**. You could check the output after clicking on **go to platform** in an interactive web interface.
@@ -80,4 +80,3 @@ sensor:
required: true
type: list
{% endconfiguration %}
-
diff --git a/source/_components/sensor.tibber.markdown b/source/_components/sensor.tibber.markdown
deleted file mode 100644
index 2daf9e4a8b1b..000000000000
--- a/source/_components/sensor.tibber.markdown
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: page
-title: "Tibber Sensor"
-description: "Instructions on how to integrate Tibber within Home Assistant."
-date: 2017-10-03 17:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tibber.png
-ha_category: Energy
-ha_release: 0.55
-ha_qa_scale: silver
-ha_iot_class: "Cloud Polling"
----
-
-The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
-If you have a Tibber Pulse it will also show the electricity consumption in real time.
-
-The requirement is that you have setup the [`tibber` component](/components/tibber/).
-
-## {% linkable_title Examples %}
-
-In this section, you will find some real-life examples of how to use this sensor.
-
-### {% linkable_title Electricity price %}
-
-The electricity price can be used to make automations. The sensor has a `max_price` and `min_price` attribute, with max and min price for the current day. Here is an example to get a notification when the price is above 90% of the maximum price for the day:
-
-{% raw %}
-```yaml
-- alias: "Electricity price"
- trigger:
- platform: time
- # Matches every hour at 1 minutes past whole
- minutes: 1
- seconds: 00
- condition:
- condition: template
- value_template: '{{ float(states.sensor.electricity_price_hamretunet_10.state) > 0.9 * float(states.sensor.electricity_price_hamretunet_10.attributes.max_price) }}'
- action:
- - service: notify.pushbullet
- data:
- title: "Electricity price"
- target: "device/daniel_telefon_cat"
- message: "The electricity price is now {{ states.sensor.electricity_price_hamretunet_10.state }}"
-```
-{% endraw %}
diff --git a/source/_components/sensor.time_date.markdown b/source/_components/sensor.time_date.markdown
index 4a922a7e4081..2f7d8d949810 100644
--- a/source/_components/sensor.time_date.markdown
+++ b/source/_components/sensor.time_date.markdown
@@ -14,7 +14,6 @@ ha_release: pre 0.7
ha_qa_scale: internal
---
-
The time and date (`time_date`) sensor platform simple displays the time in various formats, the date, or both.
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
@@ -37,4 +36,3 @@ sensor:
-
diff --git a/source/_components/sensor.toon.markdown b/source/_components/sensor.toon.markdown
deleted file mode 100644
index 7a82ab95e9a2..000000000000
--- a/source/_components/sensor.toon.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Toon Sensor"
-description: "Instructions on how to integrate Toon climate devices within Home Assistant."
-date: 2017-10-22 12:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Sensor
-ha_release: 0.56
-logo: toon.png
-ha_iot_class: "Cloud Polling"
----
-
-The `toon` sensor platform allows you to observe the power flow in your house through your Toon. If available, gas flow, solar output, smart plug status and connected smoke detector data can also be accessed in Toon.
-
-The requirement is that you have setup the [`toon`](/components/toon/) component.
diff --git a/source/_components/sensor.tradfri.markdown b/source/_components/sensor.tradfri.markdown
deleted file mode 100644
index a6aebf4e5b66..000000000000
--- a/source/_components/sensor.tradfri.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "IKEA Trådfri Sensor"
-description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Sensors."
-date: 2017-04-12 22.04
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: ikea.svg
-ha_category: Sensor
-ha_iot_class: "Local Polling"
-ha_release: 0.67
----
-
-For installation instructions, see [the Trådfri component](/components/tradfri/).
diff --git a/source/_components/sensor.trafikverket_weatherstation.markdown b/source/_components/sensor.trafikverket_weatherstation.markdown
index 7c8888b7806e..e0cf88bf5350 100644
--- a/source/_components/sensor.trafikverket_weatherstation.markdown
+++ b/source/_components/sensor.trafikverket_weatherstation.markdown
@@ -13,15 +13,15 @@ ha_release: 0.66.0
ha_iot_class: "Cloud Polling"
---
-Showing weather information provided by [Trafikverket](https://www.trafikverket.se/) weather stations in Sweden.
-
+Showing weather information provided by [Trafikverket](https://www.trafikverket.se/) weather stations in Sweden.
Potential use cases:
-- Get weather data in general.
-- You live near a weather station and want to know the current weather conditions at home.
-- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier.
-##### {% linkable_title Configuration %}
+- Get weather data in general.
+- You live near a weather station and want to know the current weather conditions at home.
+- Setup automations for your car heating system. If the road is frozen along the way to work, you might want the car heating system to start earlier.
+
+## {% linkable_title Configuration %}
To enable this sensor, add the following lines to your `configuration.yaml`.
@@ -54,7 +54,7 @@ station:
description: Name of the weather station from Trafikverket.
required: true
type: string
-monitored_conditions:
+monitored_conditions:
description: Specify what measurement data to retrieve from the weather station.
required: true
type: map
@@ -72,14 +72,14 @@ monitored_conditions:
wind_direction_text:
description: Rough wind direction in twelve variants (Swedish text).
wind_speed:
- description: Average wind speed during the last 10 minutes.
+ description: Average wind speed during the last 10 minutes.
{% endconfiguration %}
-##### {% linkable_title Obtaining API key %}
+## {% linkable_title Obtaining API key %}
Please click [here](https://api.trafikinfo.trafikverket.se/) and register to obtain the API key.
-##### {% linkable_title Weather stations %}
+## {% linkable_title Weather stations %}
Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=personalTraffic&map=1/606442.17/6886316.22/&Layers=RoadWeather%2b) to get a map of valid weather stations. Once a station is found, copy the name according to the below picture and paste it in your `configuration.yaml` file as the `station` variable.
@@ -87,7 +87,7 @@ Click [here](https://www.trafikverket.se/trafikinformation/vag/?TrafficType=pers
-##### {% linkable_title Examples %}
+## {% linkable_title Examples %}
```yaml
sensor:
diff --git a/source/_components/sensor.transmission.markdown b/source/_components/sensor.transmission.markdown
deleted file mode 100644
index a1700cd591c8..000000000000
--- a/source/_components/sensor.transmission.markdown
+++ /dev/null
@@ -1,91 +0,0 @@
----
-layout: page
-title: "Transmission Sensor"
-description: "Instructions on how to integrate Transmission sensors within Home Assistant."
-date: 2015-04-25 9:06
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: transmission.png
-ha_category: Downloading
-ha_release: pre 0.7
-ha_iot_class: "Local Polling"
----
-
-
-The `transmission` platform allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information.
-
-## {% linkable_title Setup %}
-
-To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed.
-
-
-
-
-
-If everything is setup correctly, the details will show up in the frontend.
-
-
-
-
-
-## {% linkable_title Configuration %}
-
-To enable this sensor, add the following lines to your `configuration.yaml`:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: transmission
- host: IP_ADDRESS
- monitored_variables:
- - 'current_status'
- - 'download_speed'
- - 'upload_speed'
- - 'active_torrents'
- - 'paused_torrents'
- - 'total_torrents'
-```
-
-{% configuration %}
-host:
- description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32.
- required: true
- type: string
-port:
- description: The port your Transmission daemon uses.
- required: false
- type: integer
- default: 9091
-name:
- description: The name to use when displaying this Transmission instance in the frontend.
- required: false
- type: string
-username:
- description: Your Transmission username, if you use authentication.
- required: false
- type: string
-password:
- description: Your Transmission password, if you use authentication.
- required: false
- type: string
-monitored_variables:
- description: Conditions to display in the frontend.
- required: false
- type: map
- keys:
- current_status:
- description: The status of your Transmission daemon.
- download_speed:
- description: The current download speed.
- upload_speed:
- description: The current upload speed.
- active_torrents:
- description: The current number of active torrents.
- paused_torrents:
- description: The current number of paused torrents.
- total_torrents:
- description: The total number of torrents present in the client.
-{% endconfiguration %}
-
diff --git a/source/_components/sensor.transport_nsw.markdown b/source/_components/sensor.transport_nsw.markdown
index 8296ffdedea7..fc72f408cdc7 100644
--- a/source/_components/sensor.transport_nsw.markdown
+++ b/source/_components/sensor.transport_nsw.markdown
@@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.81
---
-
The `transport_nsw` sensor will give you the time until the next departure from a Transport NSW stop for bus, train, light rail or ferry.
## {% linkable_title Setup %}
@@ -63,7 +62,7 @@ The public information is provided from [Transport NSW](https://opendata.transpo
## {% linkable_title Examples %}
-More example configurations for bus or ferry.
+More example configurations for bus or ferry.
```yaml
# Example bus route configuration.yaml entry
diff --git a/source/_components/sensor.twitch.markdown b/source/_components/sensor.twitch.markdown
index 660488a7675a..7d692ebbac19 100644
--- a/source/_components/sensor.twitch.markdown
+++ b/source/_components/sensor.twitch.markdown
@@ -13,7 +13,6 @@ ha_release: "0.10"
ha_iot_class: "Cloud Polling"
---
-
The `twitch` platform will allow you to monitor [Twitch](http://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information.
## {% linkable_title Setup %}
@@ -35,7 +34,7 @@ sensor:
```
{% configuration %}
-clientid:
+client_id:
description: Your Twitch client ID.
required: true
type: string
@@ -47,4 +46,3 @@ channels:
channel_id:
description: Name of the channel.
{% endconfiguration %}
-
diff --git a/source/_components/sensor.uber.markdown b/source/_components/sensor.uber.markdown
index cfec12282a13..3f151040a928 100644
--- a/source/_components/sensor.uber.markdown
+++ b/source/_components/sensor.uber.markdown
@@ -13,7 +13,6 @@ ha_iot_class: "Cloud Polling"
ha_release: 0.16
---
-
The `uber` sensor will give you time and price estimates for all available [Uber](https://uber.com) products at the given location. The `ATTRIBUTES` are used to provide extra information about products, such as estimated trip duration, distance and vehicle capacity. By default, 2 sensors will be created for each product at the given `start` location, one for pickup time and one for current price. The sensor is powered by the official Uber [API](https://developer.uber.com/).
## {% linkable_title Setup %}
diff --git a/source/_components/sensor.uk_transport.markdown b/source/_components/sensor.uk_transport.markdown
index b08b42895f98..ce0d0e813b06 100644
--- a/source/_components/sensor.uk_transport.markdown
+++ b/source/_components/sensor.uk_transport.markdown
@@ -147,4 +147,8 @@ And the template sensor for viewing the next bus attributes.
value_template: {% raw %}'{{states.sensor.next_bus_to_wantage.attributes.next_buses[0].estimated}}'{% endraw %}
```
+## {% linkable_title Managing API requests %}
+
+If you wish to manage the rate of API requests (e.g., to disable requests when you aren't interested in travel, so that you can request updates more frequently when you do travel) set a really long `scan_interval` in the config options, and use the service `homeassistant.update_entity` to request the update of an entity, rather than waiting for the next scheduled update.
+
Powered by [transportAPI](http://www.transportapi.com/)
diff --git a/source/_components/sensor.ups.markdown b/source/_components/sensor.ups.markdown
index 0c78dac20675..2b57a0e2663f 100644
--- a/source/_components/sensor.ups.markdown
+++ b/source/_components/sensor.ups.markdown
@@ -32,11 +32,11 @@ Configuration options for the UPS Sensor:
- **username** (*Required*): The username to access the UPS My Choice service.
- **password** (*Required*): The password for the given username.
- **name** (*Optional*): Name the sensor.
-- **update_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
- - `update_interval: 'HH:MM:SS'`
- - `update_interval: 'HH:MM'`
+- **scan_inverval** (*Optional*): Minimum time interval between updates. Default is 1 hour. Supported formats:
+ - `scan_interval: 'HH:MM:SS'`
+ - `scan_interval: 'HH:MM'`
- Time period dictionary, e.g.:
- update_interval:
+ scan_interval:
# At least one of these must be specified:
days: 0
hours: 0
diff --git a/source/_components/sensor.uptime.markdown b/source/_components/sensor.uptime.markdown
index a4b3a97f585a..665cfe9bc43b 100644
--- a/source/_components/sensor.uptime.markdown
+++ b/source/_components/sensor.uptime.markdown
@@ -14,7 +14,6 @@ ha_release: 0.56
ha_qa_scale: internal
---
-
The `uptime` sensor platform displays the time since the last Home Assistant restart.
## {% linkable_title Configuration %}
diff --git a/source/_components/sensor.usps.markdown b/source/_components/sensor.usps.markdown
deleted file mode 100644
index 89d7029a0a8b..000000000000
--- a/source/_components/sensor.usps.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: USPS Sensor
-description: "Instructions on how to set up USPS sensors within Home Assistant."
-date: 2017-01-06 08:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: usps.png
-ha_category: Postal Service
-ha_release: 0.36
-ha_iot_class: "Cloud Polling"
----
-
-The `usps` sensor component allows you to view statistics on incoming mail and packages made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS camera](/components/camera.usps).
-
-To enable this sensor in your installation, set up the [USPS component](/components/usps) with your username and password.
diff --git a/source/_components/sensor.velbus.markdown b/source/_components/sensor.velbus.markdown
deleted file mode 100644
index 56233e50c8a0..000000000000
--- a/source/_components/sensor.velbus.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Velbus Sensor"
-description: "Instructions how to integrate Velbus sensors into Home Assistant."
-date: 2018-08-22 06:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: velbus.png
-ha_category: Sensor
-ha_iot_class: "Local Push"
-ha_release: 0.78
----
-
-The `velbus` sensor allows you to control [Velbus](http://www.velbus.eu) connected sensors.
-
-For hub configuration, see [the Velbus component](/components/velbus/).
diff --git a/source/_components/sensor.vera.markdown b/source/_components/sensor.vera.markdown
deleted file mode 100644
index 0fbdf0ff316b..000000000000
--- a/source/_components/sensor.vera.markdown
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: page
-title: "Vera Sensor"
-description: "Instructions on how to integrate Vera sensors into Home Assistant."
-date: 2015-10-20 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: vera.png
-ha_category: Sensor
-ha_iot_class: "Local Push"
-ha_release: pre 0.7
----
-
-The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant.
-
-They will be automatically discovered if the vera component is loaded.
-
-Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ and change state.
-
-Home Assistant will display the state of these sensors regardless of the _armed_ state.
-
-To allow you to change the _armed state_ - Home Assistant will create a switch as well as a sensor for each _Armable_ sensor. You can hide these switches using customization if you wish.
diff --git a/source/_components/sensor.verisure.markdown b/source/_components/sensor.verisure.markdown
deleted file mode 100644
index 8ee60938a929..000000000000
--- a/source/_components/sensor.verisure.markdown
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: page
-title: "Verisure Sensor"
-description: "Instructions on how to integrate Verisure sensors into Home Assistant."
-date: 2016-02-23 21:31 +0100
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: verisure.png
-ha_category: Sensor
-ha_iot_class: "Cloud Polling"
----
-
-Integrates Verisure sensors into Home Assistant. See the [main component](/components/verisure/) for configuration instructions.
-
-The following sensor types are supported:
-
- * Thermometers
- * Hygrometers
- * Mouse detectors
-
diff --git a/source/_components/sensor.version.markdown b/source/_components/sensor.version.markdown
index 10ce29b4ac3a..edc8c29b572e 100644
--- a/source/_components/sensor.version.markdown
+++ b/source/_components/sensor.version.markdown
@@ -60,7 +60,7 @@ result through various platforms.
Remember that you can easily get the installed version on the command line.
```bash
-$ hass --version
+hass --version
```
Or go to the
**Info** section of the **Developer Tools**.
diff --git a/source/_components/sensor.viaggiatreno.markdown b/source/_components/sensor.viaggiatreno.markdown
index e313e903b129..a8c4c8c16786 100644
--- a/source/_components/sensor.viaggiatreno.markdown
+++ b/source/_components/sensor.viaggiatreno.markdown
@@ -15,10 +15,10 @@ ha_release: 0.58
The `viaggiatreno` sensor will give you information about configured train ids and stations using the public [ViaggiaTreno](http://viaggiatreno.it) API.
-To activate the sensor you need at least two parameters: the `train_id` and the `station_id`.
+To activate the sensor you need at least two parameters: the `train_id` and the `station_id`.
The first is available just looking at the [ViaggiaTreno](http://viaggiatreno.it/) timetable, the latter can be obtained using the dedicated API endpoint:
-`http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/`
+`http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/`
(e.g., `http://www.viaggiatreno.it/viaggiatrenonew/resteasy/viaggiatreno/autocompletaStazione/ROMA` will list all station names (with ids) that starts with *ROMA*).
diff --git a/source/_components/sensor.volkszaehler.markdown b/source/_components/sensor.volkszaehler.markdown
index 0d9d7c6f89d9..06bae90dc2ca 100644
--- a/source/_components/sensor.volkszaehler.markdown
+++ b/source/_components/sensor.volkszaehler.markdown
@@ -76,4 +76,3 @@ sensor:
- min
- max
```
-
diff --git a/source/_components/sensor.vultr.markdown b/source/_components/sensor.vultr.markdown
deleted file mode 100644
index 5aa03c739310..000000000000
--- a/source/_components/sensor.vultr.markdown
+++ /dev/null
@@ -1,76 +0,0 @@
----
-layout: page
-title: "Vultr Sensor"
-description: "Instructions on how to integrate Vultr sensor within Home Assistant."
-date: 2017-10-17 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: vultr.png
-ha_release: "0.58"
-ha_category: System Monitor
-ha_iot_class: "Cloud Polling"
----
-
-
-The `vultr` sensor platform will allow you to view current bandwidth usage and pending charges against your [Vultr](https://www.vultr.com/) subscription.
-
-To use this sensor, you must set up your [Vultr hub](/components/vultr/).
-
-
-The following examples assume a subscription that has an ID of `123456` and a label of `Web Server`
-
-
-Minimal `configuration.yaml` (produces `sensor.vultr_web_server_current_bandwidth_used` and `sensor.vultr_web_server_pending_charges`):
-
-```yaml
-sensor:
- - platform: vultr
- subscription: 123456
-```
-
-{% configuration %}
-subscription:
- description: The Vultr subscription to monitor, this can be found in the URL when viewing a subscription.
- required: true
- type: string
-name:
- description: The name to give this sensor.
- required: false
- default: "Vultr {Vultr subscription label} {monitored condition name}"
- type: string
-monitored_conditions:
- description: List of items you want to monitor for each subscription.
- required: false
- detault: All conditions
- type: list
- keys:
- current_bandwidth_used:
- description: The current (invoice period) bandwidth usage in Gigabytes (GB).
- temperature:
- pending_charges: The current (invoice period) charges that have built up for this subscription. Value is in US Dollars (US$).
-{% endconfiguration %}
-
-Full `configuration.yaml` using `{}` to format condition name (produces `sensor.server_current_bandwidth_used` and `sensor.server_pending_charges`):
-
-```yaml
-sensor:
- - platform: vultr
- name: Server {}
- subscription: 123456
- monitored_conditions:
- - current_bandwidth_used
- - pending_charges
-```
-
-Custom `configuration.yaml` with only one condition monitored (produces `sensor.web_server_bandwidth`):
-```yaml
-sensor:
- - platform: vultr
- name: Web Server Bandwidth
- subscription: 123456
- monitored_conditions:
- - current_bandwidth_used
-```
-
diff --git a/source/_components/sensor.waterfurnace.markdown b/source/_components/sensor.waterfurnace.markdown
deleted file mode 100644
index 12545ff5a619..000000000000
--- a/source/_components/sensor.waterfurnace.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "WaterFurnace Sensors"
-description: "Instructions on how to integrate WaterFurnace Geothermal System sensors into Home Assistant."
-date: 2018-01-19 17:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: waterfurnace.png
-ha_category: Sensor
-ha_release: 0.62
-ha_iot_class: "Cloud Polling"
----
-
-Integrates WaterFurnace sensors into Home Assistant. See the [main component](/components/waterfurnace/) for configuration instructions.
-
diff --git a/source/_components/sensor.waze_travel_time.markdown b/source/_components/sensor.waze_travel_time.markdown
index b288b7b868c0..ba24f4da73ee 100644
--- a/source/_components/sensor.waze_travel_time.markdown
+++ b/source/_components/sensor.waze_travel_time.markdown
@@ -32,15 +32,15 @@ sensor:
{% configuration %}
origin:
- description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker or zone, which provides this information in its state.
+ description: Enter the starting address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker, person, or zone, which provides this information in its state.
required: true
type: string
destination:
- description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker or zone, which provides this information in its state.
+ description: Enter the destination address or the GPS coordinates of the location (GPS coordinates has to be separated by a comma). You can also enter the entity id of a sensor, device_tracker, person, or zone, which provides this information in its state.
required: true
type: string
region:
- description: Choose one of the available regions from 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'.
+ description: Choose one of the available regions from 'AU', 'EU', 'US', 'NA' (equivalent to 'US') or 'IL'.
required: true
type: string
name:
@@ -62,10 +62,9 @@ realtime:
type: boolean
{% endconfiguration %}
-
## {% linkable_title Example using dynamic destination %}
-Using the flexible option to set a sensor value to the `destination`, you can setup a single Waze component that will calculate travel time to multiple optional locations on demand.
+Using the flexible option to set a sensor value to the `destination`, you can setup a single Waze component that will calculate travel time to multiple optional locations on demand.
In the following example, the `Input Select` is converted into an address which is used to modify the destination for Waze route calculation from `device_tracker.myphone` location (It takes a few minutes for the value to update due to the interval set to fetch Waze data).
@@ -78,7 +77,7 @@ input_select:
- Home
- Work
- Parents
-
+
sensor:
- platform: template
sensors:
@@ -93,7 +92,7 @@ sensor:
{%- else -%}
Unknown
{%- endif %}
-
+
- platform: waze_travel_time
name: "Me to destination"
origin: device_tracker.myphone
diff --git a/source/_components/sensor.whois.markdown b/source/_components/sensor.whois.markdown
index 95e351dd9e7e..596f12e802c3 100644
--- a/source/_components/sensor.whois.markdown
+++ b/source/_components/sensor.whois.markdown
@@ -13,7 +13,6 @@ ha_release: "0.57"
ha_iot_class: "Cloud Polling"
---
-
The `whois` sensor platform allows you to perform daily WHOIS lookups against your owned domains. This provides you with information such as `expiration_date`, `name_servers` and `registrar` details.
## {% linkable_title Configuration %}
@@ -38,4 +37,3 @@ sensor:
default: Whois
type: string
{% endconfiguration %}
-
diff --git a/source/_components/sensor.wink.markdown b/source/_components/sensor.wink.markdown
deleted file mode 100644
index 7300fd8d65cb..000000000000
--- a/source/_components/sensor.wink.markdown
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: page
-title: "Wink Sensor"
-description: "Instructions on how to setup the Wink sensors within Home Assistant."
-date: 2015-01-20 22:36
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: wink.png
-ha_category: Sensor
-ha_iot_class: "Cloud Polling"
-ha_release: pre 0.7
----
-
-
-The Wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors.
-
-The requirement is that you have setup [Wink](/components/wink/).
-
-
-### Supported sensor devices
-
-- Wink Relay temperature, proximity, and humidity
-- Wink Spotter temperature, humidity, and brightness (No Wink hub required)
-- Wink Porkfolio balance (No Wink hub required)
-- Wink eggminder (No Wink hub required)
-- Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required)
-- Motion sensor temperature
-- Quirky refuel propane tank monitor (No Wink hub required)
-
-
-The above devices are confirmed to work, but others may work as well.
-
-
diff --git a/source/_components/sensor.wirelesstag.markdown b/source/_components/sensor.wirelesstag.markdown
deleted file mode 100644
index 33961e0cf184..000000000000
--- a/source/_components/sensor.wirelesstag.markdown
+++ /dev/null
@@ -1,46 +0,0 @@
----
-layout: page
-title: "WirelessTag Sensor"
-description: "Instructions on how to integrate your Wireless Tags sensors within Home Assistant."
-date: 2018-03-26 21:50
-comments: false
-sidebar: true
-sharing: true
-footer: true
-logo: wirelesstag.png
-ha_category: Sensor
-ha_iot_class: "Local Push and Cloud Polling"
-ha_release: 0.68
----
-
-To get your [wirelesstag.net](http://wirelesstag.net) sensors working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag).
-
-## {% linkable_title Configuration %}
-
-To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: wirelesstag
- monitored_conditions:
- - temperature
- - humidity
-```
-
-{% configuration %}
-monitored_conditions:
- description: The metrics types to monitor.
- required: true
- type: list
- keys:
- temperature:
- description: Value is in Celsius or Fahrenheit (according to your settings at Tag Manager).
- humidity:
- description: "Humidity level in %."
- moisture:
- description: "Water level/soil moisture in % (applicable for Water Tag only)."
- light:
- description: Brightness in lux (if supported by tag).
-{% endconfiguration %}
-
diff --git a/source/_components/sensor.worldclock.markdown b/source/_components/sensor.worldclock.markdown
index 1ca0964f86b9..d8236a2809ba 100644
--- a/source/_components/sensor.worldclock.markdown
+++ b/source/_components/sensor.worldclock.markdown
@@ -14,8 +14,9 @@ ha_release: pre 0.7
ha_qa_scale: internal
---
+The `worldclock` sensor platform simply displays the current time in a different time zone.
-The `worldclock` sensor platform simply displays the current time in a different time zone
+## {% linkable_title Configuration %}
To enable this sensor in your installation, add the following to your `configuration.yaml` file:
@@ -32,7 +33,7 @@ time_zone:
required: true
type: string
name:
- description: The name of the sensor, eg. the city.
+ description: The name of the sensor, e.g., the city.
required: false
type: string
default: Worldclock Sensor
diff --git a/source/_components/sensor.worldtidesinfo.markdown b/source/_components/sensor.worldtidesinfo.markdown
index 9dcde7eafbc1..9392c401e9f0 100644
--- a/source/_components/sensor.worldtidesinfo.markdown
+++ b/source/_components/sensor.worldtidesinfo.markdown
@@ -12,7 +12,7 @@ ha_category: Environment
ha_release: 0.52
---
-The `worldtidesinfo` sensor platform uses details from [World Tides](https://www.worldtides.info/) to provide information about the prediction for the tides for any location in the world.
+The `worldtidesinfo` sensor platform uses details from [World Tides](https://www.worldtides.info/) to provide information about the prediction for the tides for any location in the world.
## {% linkable_title Setup %}
@@ -50,4 +50,3 @@ longitude:
type: float
default: "The longitude in your `configuration.yaml` file."
{% endconfiguration %}
-
diff --git a/source/_components/sensor.wunderground.markdown b/source/_components/sensor.wunderground.markdown
index 954384eb9fed..ad6595b491cf 100644
--- a/source/_components/sensor.wunderground.markdown
+++ b/source/_components/sensor.wunderground.markdown
@@ -16,11 +16,13 @@ ha_iot_class: "Cloud Polling"
The `wunderground` platform uses [Weather Underground](http://www.wunderground.com) as a source for current weather information.
-Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). They no longer offer free API keys, and all keys must be paid for. At this time existing free keys will continue to work, but will be disabled Dec 31, 2018. As of Sept 6, 2018 Weather Underground states they are declaring the [End of Service for the Weather Underground API](https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api). They say they will develop new plans for non-commercial users. No timeline for this has been announced.
+Obtain a WUnderground API key [here](https://www.wunderground.com/weather/api). They no longer offer free API keys, and all keys must be paid for. At this time existing free keys will continue to work, but will be disabled Dec 31, 2018, except you own a personal weather station and provide your data to WU (PWS Uploader). As of Sept 6, 2018 Weather Underground states they are declaring the [End of Service for the Weather Underground API](https://apicommunity.wunderground.com/weatherapi/topics/end-of-service-for-the-weather-underground-api). They say they will develop new plans for non-commercial users. No timeline for this has been announced.
Please consider this when using the following information.
+{% linkable_title Configuration %}
+
To add Wunderground to your installation, add the following to your `configuration.yaml` file:
```yaml
@@ -181,28 +183,27 @@ monitored_conditions:
description: Text summary of current wind conditions
{% endconfiguration %}
-
All the conditions listed above will be updated every 5 minutes.
-### {% linkable_title Forecasts %}
+## {% linkable_title Forecasts %}
-_12 hour forecasts_
+### {% linkable_title 12 hour forecasts %}
Monitored conditions marked above with [12h] are 12 hour forecasts. To get a forecast for different period/daytime replace the `_1d_` part of the sensor name. e.g., `weather_2n` will give you forecast for tomorrow night. Valid values for day are `1` to `4` and valid values for daytime are `d` or `n`.
-_Daily forecasts_
+### {% linkable_title Daily forecasts %}
Conditions above marked with [1d] are daily forecasts. To get forecast for different day, replace the number
in `_1d_` part of the sensor name. Valid values are from `1` to `4`.
-_Hourly forecasts_
+### {% linkable_title Hourly forecasts %}
Conditions marked with [1h] are hourly forecasts. To get forecast for different hour, replace the number
in the `_1h_` part of the sensor name with `1` to `36`. e.g., `weather_24h` will give you weather in 24 hours.
-### {% linkable_title Additional examples %}
+## {% linkable_title Additional examples %}
-#### {% linkable_title Daily forecast %}
+### {% linkable_title Daily forecast %}
```yaml
sensor:
@@ -234,7 +235,7 @@ group:

-#### {% linkable_title Weather overview %}
+### {% linkable_title Weather overview %}
```yaml
sensor:
diff --git a/source/_components/sensor.xiaomi_aqara.markdown b/source/_components/sensor.xiaomi_aqara.markdown
index a69c4f685af5..5dfb310c1eb1 100644
--- a/source/_components/sensor.xiaomi_aqara.markdown
+++ b/source/_components/sensor.xiaomi_aqara.markdown
@@ -13,8 +13,6 @@ ha_release: "0.50"
ha_iot_class: "Local Push"
---
-
The `xiaomi aqara` sensor platform allows you to get data from your [Xiaomi](http://www.mi.com/en/) sensors.
The requirement is that you have setup [Xiaomi aqara](/components/xiaomi_aqara/).
-
diff --git a/source/_components/sensor.zabbix.markdown b/source/_components/sensor.zabbix.markdown
index 9ac7107bcd3c..6ef21a99da8d 100644
--- a/source/_components/sensor.zabbix.markdown
+++ b/source/_components/sensor.zabbix.markdown
@@ -19,6 +19,8 @@ The `zabbix` sensor platform let you monitor the current count of active trigger
You must have the [Zabbix component](/components/zabbix/) configured to use those sensors.
+## {% linkable_title Configuration %}
+
To set it up, add the following information to your `configuration.yaml` file:
```yaml
@@ -48,5 +50,4 @@ individual:
description: A 'true'/'false' to specify whether we should show individual sensors when a list of hostids is provided. If false, the sensor state will be the count of all triggers for the specified hosts (or all hosts within the Zabbix instance, if hostids isn't provided).
required: false
type: boolean
- {% endconfiguration %}
-
+{% endconfiguration %}
diff --git a/source/_components/sensor.zestimate.markdown b/source/_components/sensor.zestimate.markdown
index aa74b086daf7..cba781e23304 100644
--- a/source/_components/sensor.zestimate.markdown
+++ b/source/_components/sensor.zestimate.markdown
@@ -13,13 +13,13 @@ ha_release: 0.65
ha_iot_class: "Cloud Polling"
---
-The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States.
+The `zestimate` sensor allows one to track the Zestimate® value of properties using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). According to Zillow's website, a Zestimate® home valuation is Zillow's estimated market value. It is not an appraisal. Use it as a starting point to determine a home's value. The Zestimate® is provided by [Zillow](https://www.zillow.com), a website primarily for listing homes to buy/sell/rent in the United States.
This component adds one entity per zpid specified, named `sensor.zestimate` with numbers appended if you choose to track more than one Zestimate.
## {% linkable_title Configuration %}
-You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible.
+You will need to sign up for the Zillow API at the following link [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm). You will also need the Zillow property ID for each property you'd like to track. This information is available from the URL of a property you are interested in. If you're the owner of this property, it's recommended to claim the listing and update the property information to help the information be as accurate as possible.
For example, the White House zpid is 84074482 and can be found in its Zillow URL: [https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/](https://www.zillow.com/homedetails/1600-Pennsylvania-Ave-NW-Washington-DC-20006/84074482_zpid/)
@@ -36,11 +36,11 @@ sensor:
{% configuration %}
api_key:
- description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm)
+ description: The API key to access the service. Obtain yours using the [Zillow API](https://www.zillow.com/howto/api/APIOverview.htm).
required: true
type: string
zpid:
- description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid"
+ description: Property IDs to track in the front end. Can be found in it's Zillow URL as described above. Include only the numbers, do not include the "_zpid".
required: true
type: list
{% endconfiguration %}
@@ -59,6 +59,6 @@ These attributes are available:
- Currency
- Amount
-Example screenshot
+Example screenshot:
diff --git a/source/_components/sensor.zha.markdown b/source/_components/sensor.zha.markdown
deleted file mode 100644
index 993031476f50..000000000000
--- a/source/_components/sensor.zha.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "Zigbee Home Automation Sensor"
-description: "Instructions on how to setup Zigbee Home Automation sensors within Home Assistant."
-date: 2017-02-22 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: zigbee.png
-ha_category: Sensor
-ha_iot_class: "Local Polling"
----
-
-To get your Zigbee sensors working with Home Assistant, follow the instructions for the general [Zigbee Home Automation Component](/components/zha/).
-
diff --git a/source/_components/sensor.zoneminder.markdown b/source/_components/sensor.zoneminder.markdown
deleted file mode 100644
index b1c6f6af8a46..000000000000
--- a/source/_components/sensor.zoneminder.markdown
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: page
-title: "ZoneMinder Sensor"
-description: "How to view ZoneMinder monitor functions and events within Home Assistant."
-date: 2016-10-13 22:57
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: zoneminder.png
-ha_category: Sensor
-ha_release: 0.31
-ha_iot_class: "Local Polling"
----
-
-The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events, the current state of the cameras and ZoneMinder's current run state.
-
-
-You must have the [ZoneMinder component](/components/zoneminder/) configured to use this sensor.
-
-
-To set it up, add the following information to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: zoneminder
- include_archived: false
-```
-
-{% configuration %}
-include_archived:
- description: Whether to include archived ZoneMinder events in event counts.
- required: false
- default: false
- type: boolean
-monitored_conditions:
- description: Event count sensors to display in the frontend.
- required: false
- type: list
- keys:
- all:
- description: All events.
- month:
- description: Events in the last month.
- week:
- description: Events in the last week.
- day:
- description: Events in the last day.
- hour:
- description: Events in the last hour.
-{% endconfiguration %}
diff --git a/source/_components/shiftr.markdown b/source/_components/shiftr.markdown
index a38353470437..77997625dec6 100644
--- a/source/_components/shiftr.markdown
+++ b/source/_components/shiftr.markdown
@@ -38,4 +38,3 @@ password:
required: true
type: string
{% endconfiguration %}
-
diff --git a/source/_components/shopping_list.markdown b/source/_components/shopping_list.markdown
index 09597900327c..a6fc33835b26 100644
--- a/source/_components/shopping_list.markdown
+++ b/source/_components/shopping_list.markdown
@@ -15,22 +15,25 @@ ha_qa_scale: internal
The `shopping_list` component allows you to keep track of shopping list items. Includes the ability to add items via your voice using the sentence "Add eggs to my shopping list".
+## {% linkable_title Configuration %}
+
```yaml
# Example configuration.yaml entry
shopping_list:
```
-### Services
+## Services
+
You can add or remove items on your shopping list by using the following services.
-#### {% linkable_title Service `shopping_list.add_item` %}
+### {% linkable_title Service `shopping_list.add_item` %}
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
| `name` | no | Name of the item to add. Example: "Beer" |
-#### {% linkable_title Service `shopping_list.complete_item` %}
+### {% linkable_title Service `shopping_list.complete_item` %}
| Service data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
-| `name` | no | Name of the item to mark as completed. Example: "Beer" |
\ No newline at end of file
+| `name` | no | Name of the item to mark as completed. Example: "Beer" |
diff --git a/source/_components/sisyphus.markdown b/source/_components/sisyphus.markdown
index dfec98235992..1bdaed901f9f 100644
--- a/source/_components/sisyphus.markdown
+++ b/source/_components/sisyphus.markdown
@@ -8,19 +8,26 @@ comments: false
sharing: true
footer: true
logo: sisyphus.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Light
+ - Media Player
featured: false
ha_release: 0.75
ha_iot_class: "Local Push"
+redirect_from:
+ - /components/light.sisyphus/
+ - /components/media_player.sisyphus/
---
The [Sisyphus](https://sisyphus-industries.com/) integration for Home Assistant allows you to observe and control your Sisyphus Kinetic Art Table.
-Each table appears in Home Assistant as a Light and a Media Player.
+There is currently support for the following device types within Home Assistant:
-The light can be used to sleep/wake the table or adjust the brightness of the table light.
+- **Light** - Can be used to sleep/wake the table or adjust the brightness of the table light.
+- **Media Player** - Can be used to sleep/wake the table, play/pause, move between tracks, or toggle shuffle on and off. The "volume" control adjusts the table's speed.
-The media player can be used to sleep/wake the table, play/pause, move between tracks, or toggle shuffle on and off. The "volume" control adjusts the table's speed.
+The Light and Media players will be automatically added for each of your Sisyphus tables, if the Sisyphus component is configured.
There are two ways to configure this component. For the automatic discovery of your table(s), simply add the following to your `configuration.yaml`:
diff --git a/source/_components/skybell.markdown b/source/_components/skybell.markdown
index 379cf3248a00..0d5f2e02973d 100644
--- a/source/_components/skybell.markdown
+++ b/source/_components/skybell.markdown
@@ -8,13 +8,33 @@ comments: false
sharing: true
footer: true
logo: skybell.png
-ha_category: Doorbell
+ha_category:
+ - Doorbell
+ - Binary Sensor
+ - Camera
+ - Light
+ - Sensor
+ - Switch
ha_release: 0.56
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/binary_sensor.skybell/
+ - /components/camera.skybell/
+ - /components/light.skybell/
+ - /components/sensor.skybell/
+ - /components/switch.skybell/
---
The `skybell` implementation allows you to integrate your [Skybell.com](http://www.skybell.com/) doorbells in Home Assistant.
+There is currently support for the following device types within Home Assistant:
+
+- [Binary Sensor](/components/skybell/#binary-sensor)
+- [Camera](/components/skybell/#camera)
+- [Light](/components/skybell/#light)
+- [Sensor](/components/skybell/#sensor)
+- [Switch](/components/skybell/#switch)
+
Currently only the Skybell HD is supported by this platform.
## {% linkable_title Configuration %}
@@ -39,4 +59,135 @@ password:
type: string
{% endconfiguration %}
-Finish your configuration by visiting the [Skybell binary sensor](/components/binary_sensor.skybell/), [Skybell camera](/components/camera.skybell/), [Skybell light](/components/light.skybell/), [Skybell sensor](/components/sensor.skybell/), or [Skybell switch](/components/switch.skybell/) documentation.
+### {% linkable_title Binary Sensor %}
+
+Once you have enabled the Skybell component, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: skybell
+ monitored_conditions:
+ - button
+ - motion
+```
+
+{% configuration %}
+monitored_conditions:
+ description: Conditions to display in the frontend. The following conditions can be monitored.
+ required: true
+ type: list
+ keys:
+ button:
+ description: Returns whether the doorbell button was pressed.
+ motion:
+ description: Returns whether movement was detected by the Skybell doorbell.
+{% endconfiguration %}
+
+### {% linkable_title Camera %}
+
+Once you have enabled the Skybell component, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+camera:
+ - platform: skybell
+```
+
+{% configuration %}
+monitored_conditions:
+ description: The camera images to display. Default is `avatar`. The full list is `avatar`, `activity`.
+ required: false
+ type: list
+avatar_name:
+ description: Name to append to the device name for the avatar image. Default is empty string.
+ required: false
+ type: string
+activity_name:
+ description: Name to append to the device name for the last activity image. Default is empty string.
+ required: false
+ type: string
+{% endconfiguration %}
+
+#### {% linkable_title Camera Types %}
+
+There are two available camera types "Avatar", which is the default, displays the Skybell avatar image.
+It is periodically updated with a fresh image. The other type is "Activity", which displays a snapshot from
+the latest event (motion, bell, or on demand) captured by the camera. You may show either camera, or both, by
+specifying its name under monitored_condtions. It's recommended, but not required, to set either avatar_name or activity_name
+if you are showing both cameras so you can tell them apart. The name will be appended to the skybell device name.
+
+```yaml
+# Example configuration.yaml with both images
+camera:
+ - platform: skybell
+ monitored_conditions:
+ - avatar
+ - activity
+ activity_name: "Last Activity"
+```
+
+```yaml
+# Example configuration.yaml with just last activity image
+camera:
+ - platform: skybell
+ monitored_conditions:
+ - activity
+```
+
+### {% linkable_title Light %}
+
+Once you have enabled the Skybell component, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+light:
+ - platform: skybell
+```
+
+### {% linkable_title Sensor %}
+
+Once you have enabled the Skybell component, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: skybell
+ monitored_conditions:
+ - chime_level
+```
+
+{% configuration %}
+monitored_conditions:
+ type: list
+ required: true
+ description: Conditions to display in the frontend. The following conditions can be monitored.
+ keys:
+ chime_level:
+ description: Return a value between 0-3, indicating no chime, low, medium, and high respectively.
+{% endconfiguration %}
+
+### {% linkable_title Switch %}
+
+Once you have enabled the Skybell component, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: skybell
+ monitored_conditions:
+ - do_not_disturb
+ - motion_sensor
+```
+
+{% configuration %}
+monitored_conditions:
+ description: Conditions to display in the frontend.
+ required: true
+ type: list
+ keys:
+ do_not_disturb:
+ description: Control the state of your doorbells indoor chime.
+ motion_sensor:
+ description: Control the state of your doorbells motion sensor.
+{% endconfiguration %}
diff --git a/source/_components/sleepiq.markdown b/source/_components/sleepiq.markdown
index bb006c23cdc0..6baf61936491 100644
--- a/source/_components/sleepiq.markdown
+++ b/source/_components/sleepiq.markdown
@@ -8,9 +8,15 @@ comments: false
sharing: true
footer: true
logo: sleepiq.png
-ha_category: Health
+ha_category:
+ - Health
+ - Sensor
+ - Binary Sensor
ha_release: 0.29
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/binary_sensor.sleepiq/
+ - /components/sensor.sleepiq/
---
The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](http://www.sleepnumber.com/sn/en/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed.
@@ -40,4 +46,3 @@ password:
required: true
type: string
{% endconfiguration %}
-
diff --git a/source/_components/smappee.markdown b/source/_components/smappee.markdown
index 79f6f32d8dc4..ec4c9cf372bc 100644
--- a/source/_components/smappee.markdown
+++ b/source/_components/smappee.markdown
@@ -9,14 +9,27 @@ sharing: true
footer: true
logo: smappee.png
ha_release: "0.64"
-ha_category: Hub
+ha_category:
+ - Hub
+ - Energy
+ - Sensor
+ - Switch
+ha_iot_class: "Local Push"
+redirect_from:
+ - /components/sensor.smappee/
+ - /components/switch.smappee/
---
The `smappee` component adds support for the [Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches.
-Switches and Sensors are supported - and will be automatically added when you connect to the Smappee controller.
+There is currently support for the following device types within Home Assistant:
-The smappee component gets information from [Smappee API](https://smappee.atlassian.net/wiki/display/DEVAPI/API+Methods).
+- Sensor
+- Switch
+
+Will be automatically added when you connect to the Smappee controller.
+
+The smappee component gets information from [Smappee API](https://smappee.atlassian.net/wiki/spaces/DEVAPI/overview). Note: their cloud API now requires a subscription fee of €2.50 per month for Smappee Energy/Solar or €3 per month for Smappee Plus.
## {% linkable_title Configuration %}
diff --git a/source/_components/smartthings.markdown b/source/_components/smartthings.markdown
new file mode 100644
index 000000000000..db2b6fa7530a
--- /dev/null
+++ b/source/_components/smartthings.markdown
@@ -0,0 +1,329 @@
+---
+layout: page
+title: "SmartThings"
+description: "Instructions on setting up Samsung SmartThings within Home Assistant."
+date: 2018-01-14 00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+featured: true
+logo: samsung_smartthings.png
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Climate
+ - Cover
+ - Fan
+ - Light
+ - Lock
+ - Sensor
+ - Scene
+ - Switch
+ha_release: "0.87"
+ha_iot_class: "Cloud Push"
+redirect_from:
+ - /components/smartthings.binary_sensor/
+ - /components/binary_sensor.smartthings/
+ - /components/smartthings.climate/
+ - /components/climate.smartthings/
+ - /components/smartthings.cover/
+ - /components/cover.smartthings/
+ - /components/smartthings.fan/
+ - /components/fan.smartthings/
+ - /components/smartthings.light/
+ - /components/light.smartthings/
+ - /components/smartthings.lock/
+ - /components/lock.smartthings/
+ - /components/smartthings.sensor/
+ - /components/sensor.smartthings/
+ - /components/smartthings.scene/
+ - /components/scene.smartthings/
+ - /components/smartthings.switch/
+ - /components/switch.smartthings/
+---
+
+Samsung SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The SmartThings component is the main component to integrate all SmartThings related platforms. The basic features of this integration include:
+
+1. Controlling SmartThings devices with pushed state updates from SmartThings.
+2. Entities automatically added, removed, or updated when changed in SmartThings (upon Home Assistant restart).
+3. Support for multiple SmartThings accounts and locations, each represented as a unique integration in the front-end configuration.
+4. No brokers, bridges, or additional dependencies.
+
+See it in action, with a step-by-step setup guide, thanks to a fan! (v0.87 featured):
+
+
+
+
+
+
+## {% linkable_title Basic requirements %}
+
+1. A [personal access token](https://account.smartthings.com/tokens) tied to a Samsung or SmartThings account (see below for instructions).
+2. Home Assistant setup for [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
+3. [`base_url` of the http component](/components/http#base_url) set the URL that Home Assistant is available on the internet.
+
+## {% linkable_title Setup instructions %}
+
+### {% linkable_title Create personal access token %}
+
+1. Log into the [personal access tokens page](https://account.smartthings.com/tokens) and click '[Generate new token](https://account.smartthings.com/tokens/new)'
+2. Enter a token name (can be whatever you want), for example, 'Home Assistant' and select the following authorized scopes:
+ - Devices (all)
+ - Installed Apps (all)
+ - Locations (all)
+ - Apps (all)
+ - Schedules (all)
+ - Scenes (all)
+3. Click 'Generate token'. When the token is displayed, copy and save it somewhere safe (such as your keystore) as you will not be able to retrieve it again.
+
+### {% linkable_title Configure Home Assistant %}
+
+
+The SmartThings component is configured exclusively through the front-end. Manual setup through `configuration.yaml` is not available at this time.
+
+
+1. From the Home Assistant front-end, navigate to 'Configuration' then 'Integrations'. Under 'Set up a new integration' locate 'SmartThings' and click 'Configure'.
+2. Enter the personal access token created above and click 'Submit'
+3. When prompted, install the SmartApp:
+ 1. Open the SmartThings Classic mobile app. Navigate to 'Automation' and select the 'SmartApps' tab.
+ 2. Click 'Add a SmartApp', scroll to the bottom, and select 'My Apps', then choose 'Home Assistant'.
+ 3. Optionally change the display name and press 'Done'
+ 4. Authorize the app by pressing 'Allow'
+4. Return to Home Assistant and click 'Submit'.
+
+
+Advanced: If you have multiple locations in SmartThings, each can be integrated into Home Assistant. Follow the steps above, then for each subsequent location, install the SmartApp and it will automatically add to Home Assistant. This can be completed during step 3 (install SmartApp) above or at any time after that.
+
+
+See the [troubleshooting](#troubleshooting) if you are having issues setting up the integration.
+
+## {% linkable_title Events %}
+
+The SmartThings component triggers events for select device capabilities.
+
+### {% linkable_title smartthings.button %}
+
+The component will trigger an event when a device with the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability is actuated and can be used to trigger automations within Home Assistant. Below is an example of the data payload:
+
+```json
+{
+ "component_id": "main",
+ "device_id": "42a16cf2-fef7-4ee8-b4a6-d32cb65474b7",
+ "location_id": "2a54b9fa-f66c-42d9-8488-d8f036b980c8",
+ "value": "pushed",
+ "name": "Scene Button"
+}
+```
+
+| Attribute | Description
+|---------------------------|------------------------------------------------------------------|
+`component_id` | Describes which component of the device triggered the event. `main` represents the parent device. For devices with child-devices, this attribute identifies the child that raised the event.
+`device_id` | The unique id of the device in SmartThings. This can be located in the HASS device registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/).
+`location_id` | The unique id of the location the device is part of. This can be found in the config entry registry or in the [SmartThings Groovy IDE](https://developers.smartthings.com/).
+`value` | Describes the action taken on the button. See the [button](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Button) capability reference for a list of possible values (not all are supported by every device).
+`name` | The name given to the device in SmartThings.
+
+Event data payloads are logged at the debug level, see [debugging](#debugging) for more information.
+
+## {% linkable_title Platforms %}
+
+SmartThings represents devices as a set of [capabilities](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html) and the SmartThings component maps those to entity platforms in Home Assistant. A single device may be represented by one or more platforms.
+- [Binary Sensor](#binary-sensor)
+- [Climate](#climate)
+- [Cover](#cover)
+- [Fan](#fan)
+- [Light](#light)
+- [Lock](#lock)
+- [Sensor](#sensor)
+- [Scene](#scene)
+- [Switch](#switch)
+
+Support for additional platforms will be added in the future.
+
+### {% linkable_title Binary Sensor %}
+
+The SmartThings Binary Sensor platform lets you view devices that have binary sensor-related capabilities. A Binary Sensor entity will be created for each attribute (below) supported by the device.
+
+| Capability |Attribute |On-Value
+|-------------------|--------------|----------------|
+| [`accelerationSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Acceleration-Sensor) | `acceleration` | `active`
+| [`contactSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Contact-Sensor) | `contact` | `open`
+| [`filterStatus`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Filter-Status) | `filterStatus` | `replace`
+| [`motionSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Motion-Sensor) | `motion` | `active`
+| [`presenceSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Presence-Sensor) | `presence` | `present`
+| [`tamperAlert`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tamper-Alert) | `tamper` | `detected`
+| [`valve`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Valve) | `valve` | `open`
+| [`waterSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Water-Sensor) | `water` | `wet`
+
+### {% linkable_title Climate %}
+
+The SmartThings Climate platform lets you control devices that have thermostat-related capabilities. For a SmartThings device to be represented by the climate platform, it must have all the capabilities from either "set a" _or_ "set b":
+
+| 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`
+| [`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)
+| [`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)
+
+### {% linkable_title Cover %}
+
+The SmartThings Cover platform lets you control devices that have open/close related capabilities. For a device to be represented by the cover platform, it must have one of the capabilities from "set a" below.
+
+| Capability |Cover Features
+|-------------------------------------|--------------------------------------------|
+| [`doorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Door-Control) (set a) | `open` and `close`
+| [`garageDoorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Garage-Door-Control) (seb a) | `open` and `close`
+| [`windowShade`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Window-Shade) (set a) | `open` and `close`
+| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `position`
+| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery_level` (state attribute)
+
+### {% linkable_title Fan %}
+
+The SmartThings Fan platform lets you control devices that have fan-related capabilities. For a SmartThings device to be represented by the fan platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
+
+| Capability |Fan Features
+|-------------------|------------------------------------------------------------|
+| [`fanSpeed`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Fan-Speed) | `speed` (`off`, `low`, `medium`, and `high`)
+
+### {% linkable_title Light %}
+
+The SmartThings Light platform lets you control devices that have light-related capabilities. For a SmartThings device to be represented by the light platform, it must have one or more of the capabilities below in addition to the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability.
+
+| Capability |Light Features
+|-------------------|------------------------------------------------------------|
+| [`switchLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch-Level) | `brightness` and `transition`
+| [`colorControl`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Control) | `color`
+| [`colorTemperature`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Color-Temperature) | `color_temp`
+
+### {% linkable_title Lock %}
+
+The SmartThings Lock platform lets you control devices that have the [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) capability, showing current lock status and supporting lock and unlock commands.
+
+### {% linkable_title Sensor %}
+
+The SmartThings Sensor platform lets your view devices that have sensor-related capabilities. A Sensor entity is created for each attribute (below) supported by the device.
+
+| Capability |Attributes |
+|-------------------|---------------|
+| [`activityLightingMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Activity-Lighting-Mode) | `lightingMode`
+| [`airConditionerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Conditioner-Mode) | `airConditionerMode`
+| [`airQualitySensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Air-Quality-Sensory) | `airQuality`
+| [`alarm`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Alarm) | `alarm`
+| [`audioVolume`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Audio-Volume) | `volume`
+| [`battery`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Battery) | `battery`
+| [`bodyMassIndexMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Mass-Index-Measurement) | `bmiMeasurement`
+| [`bodyWeightMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Body-Weight-Measurement) | `bodyWeightMeasurement`
+| [`carbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Dioxide-Measurement) | `carbonDioxide`
+| [`carbonMonoxideDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Detector) | `carbonMonoxide`
+| [`carbonMonoxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Carbon-Monoxide-Measurement) | `carbonMonoxideLevel`
+| [`dishwasherOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dishwasher-Operating-State) | `machineState`, `dishwasherJobState` and `completionTime`
+| [`dryerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Mode) | `dryerMode`
+| [`dryerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dryer-Operating-State) | `machineState`, `dryerJobState` and `completionTime`
+| [`dustSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Dust-Sensor) | `fineDustLevel` and `dustLevel`
+| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | `energy`
+| [`equivalentCarbonDioxideMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Equivalent-Carbon-Dioxide-Measurement) | `equivalentCarbonDioxideMeasurement`
+| [`formaldehydeMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Formaldehyde-Measurement) | `formaldehydeLevel`
+| [`illuminanceMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Illuminance-Measurement) | `illuminance`
+| [`infraredLevel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Infrared-Level) | `infraredLevel`
+| [`lock`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Lock) | `lock`
+| [`mediaInputSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Input-Source) | `inputSource`
+| [`mediaPlaybackRepeat`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Repeat) | `playbackRepeatMode`
+| [`mediaPlaybackShuffle`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback-Shuffle) | `playbackShuffle`
+| [`mediaPlayback`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Media-Playback) | `playbackStatus`
+| [`odorSensor`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Odor-Sensor) | `odorLevel`
+| [`ovenMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Mode) | `ovenMode`
+| [`ovenOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Operating-State) | `machineState`, `ovenJobState` and `completionTime`
+| [`ovenSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Oven-Setpoint) | `ovenSetpoint`
+| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | `power`
+| [`powerSource`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Source) | `powerSource`
+| [`refrigerationSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Refrigeration-Setpoint) | `refrigerationSetpoint`
+| [`relativeHumidityMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Relative-Humidity-Measurement) | `humidity`
+| [`robotCleanerCleaningMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-CleaningMode) | `robotCleanerCleaningMode`
+| [`robotCleanerMovement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Movement) | `robotCleanerMovement`
+| [`robotCleanerTurboMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Robot-Cleaner-Turbo-Mode) | `robotCleanerTurboMode`
+| [`signalStrength`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Signal-Strength) | `lqi` and `rssi`
+| [`smokeDetector`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Smoke-Detector) | `smoke`
+| [`temperatureMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Temperature-Measurement) | `temperature`
+| [`thermostatCoolingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Cooling-Setpoint) | `coolingSetpoint`
+| [`thermostatFanMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Fan-Mode) | `thermostatFanMode`
+| [`thermostatHeatingSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Heating-Setpoint) | `heatingSetpoint`
+| [`thermostatMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode) | `thermostatMode`
+| [`thermostatOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Operating-State) | `thermostatOperatingState`
+| [`thermostatSetpoint`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Setpoint) | `thermostatSetpoint`
+| [`tvChannel`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tv-Channel) | `tvChannel`
+| [`tvocMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Tvoc-Measurement) | `tvocLevel`
+| [`ultravioletIndex`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Ultraviolet-Index) | `ultravioletIndex`
+| [`voltageMeasurement`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Voltage-Measurement) | `voltage`
+| [`washerMode`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Mode) | `washerMode`
+| [`washerOperatingState`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Washer-Operating-State) | `machineState`, `washerJobState` and `completionTime`
+
+### {% linkable_title Scene %}
+
+The SmartThings Scene platform lets you activate scenes defined in SmartThings with a scene entity representing each SmartThings scenes within the location.
+
+### {% linkable_title Switch %}
+
+The SmartThings Switch platform lets you control devices that have the [`switch`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Switch) capability that are not already represented by a more specific platform. The following optional capabilities will provide energy and power utilization information:
+
+| Capability |Switch Features
+|-------------------------------------|--------------------------------------------|
+| [`energyMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Energy-Meter) | energy consumption (`today_energy_kwh` state attribute)
+| [`powerMeter`](https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Power-Meter) | power consumption (`current_power_w` state attribute)
+
+
+## {% linkable_title Troubleshooting %}
+
+### {% linkable_title Setup %}
+
+Perform the following steps if you receive one of the following error messages while attempting to setup the integration:
+
+- "SmartThings could not validate the endpoint configured in base_url. Please review the component requirements."
+- "Unable to setup the SmartApp. Please try again."
+
+#### {% linkable_title Checklist %}
+
+1. Ensure `base_url` is properly set to the _external address_ that Home Assistant is available to the internet. SmartThings must be able to reach this address.
+1. Validate there are no problems with your certificate or SSL configuration by using an online checker, such as [https://www.digicert.com/help/](https://www.digicert.com/help/).
+1. Some reverse proxy configuration settings can interfere with communication from SmartThings. For example, TLSv1.3 is not supported. Setting the supported cipher suite too restrictly will prevent handshaking. The following NGINX SSL configuration is known to work:
+ ```nginx
+ # cert.crt also contains intermediate certificates
+ ssl_certificate /path/to/cert.crt;
+ ssl_certificate_key /path/to/cert.key;
+ ssl_dhparam /path/to/dhparam.pem;
+ ssl_protocols TLSv1.2;
+ ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
+ ssl_prefer_server_ciphers on;
+ ssl_ecdh_curve secp384r1;
+ ssl_session_timeout 10m;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_tickets off;
+ ```
+1. While the error message (above) is being displayed, run the following command from outside your local network to confirm it is responding to the ping lifecycle event:
+ ```bash
+ curl -X POST https://{BASE_URL}/api/webhook/{WEBHOOK_ID} -H "Content-Type: application/json; charset=utf-8" -d $'{"lifecycle": "PING", "executionId": "00000000-0000-0000-0000-000000000000", "locale": "en", "version": "1.0.0", "pingData": { "challenge": "00000000-0000-0000-0000-000000000000"}}'
+ ```
+ Where `{BASE_URL}` is your external address and `{WEBHOOK_ID}` is the value of `webhook_id` from `.storage/smartthings` in your Home Assistant configuration directory.
+
+ The expected response is:
+ ```bash
+ {"pingData": {"challenge": "00000000-0000-0000-0000-000000000000"}}
+ ```
+
+If you have completed the checklist above and are still unable to setup the platform, [activate debug logging](#debugging) for the SmartThings component and include the log messages up until the point of failure in [a new issue](https://github.com/home-assistant/home-assistant/issues).
+
+### {% linkable_title Debugging %}
+
+The SmartThings component will log additional information about push updates received, events fired, and other messages when the log level is set to `debug`. Add the the relevent line below to the `configuration.yaml`:
+
+```yaml
+logger:
+ default: info
+ logs:
+ homeassistant.components.smartthings: debug
+```
diff --git a/source/_components/smhi.markdown b/source/_components/smhi.markdown
index 03f7bca78503..d9f03f22d95e 100644
--- a/source/_components/smhi.markdown
+++ b/source/_components/smhi.markdown
@@ -8,13 +8,21 @@ comments: false
sharing: true
footer: true
logo: smhi.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Weather
ha_release: 0.81
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/weather.smhi/
---
The `smhi` component adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location.
+There is currently support for the following device types within Home Assistant:
+
+- Weather
+
## {% linkable_title Configuration %}
The SMHI weather service is free under the Creative Commons Attribution 4.0, international license. Weather data will be pulled once every 30 minutes.
@@ -31,15 +39,14 @@ You can only add locations through the integrations page, not in configuration f
Only location close to Sweden can be added. See [SMHI.se area](http://opendata.smhi.se/apidocs/metfcst/geographic_area.html) for more details what locations are supported.
-
{% configuration %}
latitude:
- description: Manually specify latitude.
+ description: Manually specify latitude.
required: false
type: number
default: Provided by Home Assistant configuration
longitude:
- description: Manually specify longitude.
+ description: Manually specify longitude.
required: false
type: number
default: Provided by Home Assistant configuration
diff --git a/source/_components/snips.markdown b/source/_components/snips.markdown
index 96696c36d84e..3b3be76e9e0d 100644
--- a/source/_components/snips.markdown
+++ b/source/_components/snips.markdown
@@ -22,7 +22,6 @@ Snips takes voice or text as input and produces *intents* as output, which are e

-
## {% linkable_title The Snips Voice Platform %}
### {% linkable_title Installation %}
@@ -30,18 +29,18 @@ Snips takes voice or text as input and produces *intents* as output, which are e
The Snips platform can be installed via the Snips APT/Debian repository. If you prefer to install the platform using the Docker distribution, check out our [Docker Installation Guide](https://github.com/snipsco/snips-platform-documentation/wiki/6.--Miscellaneous#using-docker).
```bash
-$ sudo apt-get update
-$ sudo apt-get install -y dirmngr
-$ sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list'
-$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849
-$ sudo apt-get update
-$ sudo apt-get install -y snips-platform-voice
+sudo apt-get update
+sudo apt-get install -y dirmngr
+sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list'
+sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849
+sudo apt-get update
+sudo apt-get install -y snips-platform-voice
```
Note that if the keyserver pgp.mit.edu is down then try to use another one in the 4th line, like pgp.surfnet.nl:
```bash
-$ sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849
+sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849
```
### {% linkable_title Creating an assistant %}
@@ -51,13 +50,13 @@ Head over to the [Snips Console](https://console.snips.ai) to create your assist
The next step is to get the assistant to work on your device. Unzip and copy the `assistant` folder that you downloaded from the web console to the path. Assuming your downloaded `assistant` folder is on your desktop, just run:
```bash
-$ scp -r ~/Desktop/assistant pi@:/home/pi/.
+scp -r ~/Desktop/assistant pi@:/home/pi/.
```
Now ssh into your Raspberry Pi:
```bash
-$ ssh pi@
+ssh pi@
```
By default, this command is `ssh pi@raspberrypi.local`, if you are using the default Raspberry Pi hostname.
@@ -82,7 +81,7 @@ Make sure that a microphone is plugged to the Raspberry Pi. If you are having tr
Start the Snips Voice Platform by starting the `snips-*` services:
```bash
-$ sudo systemctl start "snips-*"
+sudo systemctl start "snips-*"
```
Snips is now ready to take voice commands from the microphone. To trigger the listening, simply say
@@ -161,11 +160,11 @@ In the `data_template` block, we have access to special variables, corresponding
### {% linkable_title Special slots %}
-Several special values for slots are populated with the `siteId `the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value.
+Several special values for slots are populated with the `siteId` the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value.
In the above example, the slots are plain strings. However, Snips has a duration builtin value used for setting timers and this will be parsed to a seconds value.
-In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert.
+In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert.
{% raw %}
```yaml
@@ -185,8 +184,6 @@ SetTimer:
```
{% endraw %}
-
-
### {% linkable_title Sending TTS Notifications %}
You can send TTS notifications to Snips using the `snips.say` and `snips.say_action` services. `say_action` starts a session and waits for user response, "Would you like me to close the garage door?", "Yes, close the garage door".
@@ -209,7 +206,6 @@ You can send TTS notifications to Snips using the `snips.say` and `snips.say_act
| `can_be_enqueued` | yes | If True, session waits for an open session to end, if False session is dropped if one is running. |
| `intent_filter` | yes | Array of Strings - A list of intents names to restrict the NLU resolution to on the first query. |
-
### {% linkable_title Snips Support %}
There is an active [discord](https://discordapp.com/invite/3939Kqx) channel for further support.
@@ -281,7 +277,7 @@ So now you can open and close your garage door, let's check the weather. Add the
- platform: darksky
name: "Dark Sky Weather"
api_key: !secret dark_sky_key
- update_interval:
+ scan_interval:
minutes: 10
monitored_conditions:
- summary
@@ -308,4 +304,3 @@ intent_script:
and {{ states('sensor.dark_sky_weather_hourly_summary') }}
```
{% endraw %}
-
diff --git a/source/_components/sonos.markdown b/source/_components/sonos.markdown
index 5d3c70c88f7b..e78ecb0a220e 100644
--- a/source/_components/sonos.markdown
+++ b/source/_components/sonos.markdown
@@ -23,83 +23,151 @@ If you don't have the discovery component enabled, you can configure the Sonos c
Sonos makes various services available to allow configuring groups. They are currently registered under the media player component.
-### {% linkable_title Service `sonos_snapshot` %}
+### {% linkable_title Service `media_player.sonos_snapshot` %}
Take a snapshot of what is currently playing on one or more speakers. This service, and the following one, are useful if you want to play a doorbell or notification sound and resume playback afterwards. If no `entity_id` is provided, all speakers are snapshotted.
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of coordinator speakers.
-| `with_group` | yes | Should be also snapshot the group state of the speaker.
+
+The queue is not snapshotted and must be left untouched until the restore. Using `media_player.play_media` is safe and can be used to play a notification sound, including [TTS](/components/tts/) announcements.
+
-### {% linkable_title Service `sonos_restore` %}
+{% configuration %}
+entity_id:
+ description: The speakers to snapshot.
+ required: false
+ type: entity_id
+with_group:
+ description: Should we also snapshot the group layout and the state of other speakers in the group.
+ required: false
+ type: boolean
+{% endconfiguration %}
-Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of coordinator speakers.
-| `with_group` | yes | Should be also restore the group state of the speaker. Only if was snapshot with group.
-
-### {% linkable_title Service `sonos_join` %}
-
-Do group players together under a single coordinator. That will make a new group or join to exists group.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `master` | no | A single `entity_id` that will become/hold the coordinator speaker.
-| `entity_id` | no | String or list of a single `entity_id` that will group to master speaker.
-
-### {% linkable_title Service `sonos_unjoin` %}
+### {% linkable_title Service `media_player.sonos_restore` %}
-Remove one or more speakers from a group of speakers. If no `entity_id` is provided, all speakers are unjoined.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s that will be separated from their coordinator speaker.
+Restore a previously taken snapshot of one or more speakers. If no `entity_id` is provided, all speakers are restored.
-### {% linkable_title Service `sonos_set_sleep_timer` %}
+
+The playing queue is not snapshotted. Using `media_player.sonos_restore` on a speaker that has replaced its queue will restore the playing position, but in the new queue!
+
+
+
+A cloud queue cannot be restarted. This includes queues started from within Spotify and queues controlled by Amazon Alexa.
+
+
+{% configuration %}
+entity_id:
+ description: The speakers that should have their snapshot restored.
+ required: false
+ type: entity_id
+with_group:
+ description: Should we also restore the group layout and the state of other speakers in the group.
+ required: false
+ type: boolean
+{% endconfiguration %}
+
+### {% linkable_title Service `media_player.sonos_join` %}
+
+Group players together under a single coordinator. This will make a new group or join to an existing group.
+
+{% configuration %}
+master:
+ description: A single `entity_id` that will become/stay the coordinator speaker.
+ required: true
+ type: entity_id
+entity_id:
+ description: The speakers to join to the master.
+ required: false
+ type: entity_id
+{% endconfiguration %}
+
+### {% linkable_title Service `media_player.sonos_unjoin` %}
+
+Remove one or more speakers from their group of speakers. If no `entity_id` is provided, all speakers are unjoined.
+
+{% configuration %}
+entity_id:
+ description: The speakers to separate from their coordinator speaker.
+ required: false
+ type: entity_id
+{% endconfiguration %}
+
+### {% linkable_title Service `media_player.sonos_set_sleep_timer` %}
Sets a timer that will turn off a speaker by tapering the volume down to 0 after a certain amount of time. Protip: If you set the sleep_time value to 0, then the speaker will immediately start tapering the volume down.
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s that will have their timers set. Must be a coordinator speaker.
-| `sleep_time` | no | Integer number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day).
+{% configuration %}
+entity_id:
+ description: The speakers that will have their timers set.
+ required: true
+ type: entity_id
+sleep_time:
+ description: Number of seconds that the speaker should wait until it starts tapering. Cannot exceed 86399 (one day).
+ required: true
+ type: integer
+{% endconfiguration %}
-### {% linkable_title Service `sonos_clear_sleep_timer` %}
+### {% linkable_title Service `media_player.sonos_clear_sleep_timer` %}
Clear the sleep timer on a speaker, if one is set.
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker.
+{% configuration %}
+entity_id:
+ description: The speakers that will have their timers cleared.
+ required: true
+ type: entity_id
+{% endconfiguration %}
-### {% linkable_title Service `sonos_update_alarm` %}
+### {% linkable_title Service `media_player.sonos_update_alarm` %}
Update an existing Sonos alarm.
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s that will have their timers cleared. Must be a coordinator speaker.
-| `alarm_id` | no | Integer that is used in Sonos to refer to your alarm.
-| `time` | yes | Time to set the alarm.
-| `volume` | yes | Float for volume level.
-| `enabled` | yes | Boolean for whether or not to enable this alarm.
-| `include_linked_zones` | yes | Boolean that defines if the alarm also plays on grouped players.
-
-### {% linkable_title Service `sonos_set_option` %}
+{% configuration %}
+entity_id:
+ description: The speaker that will have its alarm updated.
+ required: true
+ type: entity_id
+alarm_id:
+ description: Integer that is used in Sonos to refer to your alarm.
+ required: true
+ type: integer
+time:
+ description: Time to set the alarm.
+ required: no
+ type: time
+volume:
+ description: Float for volume level (0.0-1.0).
+ required: no
+ type: float
+enabled:
+ description: Boolean for whether or not to enable this alarm.
+ required: no
+ type: boolean
+include_linked_zones:
+ description: Boolean that defines if the alarm also plays on grouped players.
+ required: no
+ type: boolean
+{% endconfiguration %}
+
+### {% linkable_title Service `media_player.sonos_set_option` %}
Set Sonos speaker options.
-Night Sound and Speech Enhancement modes are only supported on Sonos PLAYBAR and PLAYBASE speakers when playing from the TV source. Other speaker types will ignore these options.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String or list of `entity_id`s that will have their options set.
-| `night_sound` | yes | Boolean to control Night Sound mode.
-| `speech_enhance` | yes | Boolean to control Speech Enhancement mode.
-
+Night Sound and Speech Enhancement modes are only supported when playing from the TV source of products like Sonos Playbar and Sonos Beam. Other speaker types will ignore these options.
+
+{% configuration %}
+entity_id:
+ description: The speakers that will have their options set.
+ required: true
+ type: entity_id
+night_sound:
+ description: Boolean to control Night Sound mode.
+ required: no
+ type: boolean
+speech_enhance:
+ description: Boolean to control Speech Enhancement mode.
+ required: no
+ type: boolean
+{% endconfiguration %}
## {% linkable_title Advanced use %}
diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/speedtestdotnet.markdown
similarity index 63%
rename from source/_components/sensor.speedtest.markdown
rename to source/_components/speedtestdotnet.markdown
index 9c5d5e5cc5ce..a6386845bb33 100644
--- a/source/_components/sensor.speedtest.markdown
+++ b/source/_components/speedtestdotnet.markdown
@@ -8,41 +8,42 @@ comments: false
sharing: true
footer: true
logo: speedtest.png
-ha_category: System Monitor
+ha_category:
+ - System Monitor
+ - Sensor
featured: false
ha_release: 0.13
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/sensor.speedtest/
+ - /components/sensor.speedtestdotnet/
---
-The `speedtest` sensor component uses the [Speedtest.net](https://speedtest.net/)
-web service to measure network bandwidth performance.
+The `speedtestdotnet` component uses the [Speedtest.net](https://speedtest.net/) web service to measure network bandwidth performance.
+
+Enabling this component will automatically create the Speedtest.net Sensors for the monitored conditions (below).
+
+By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the `scan_interval` for a speed test to run.
## {% linkable_title Configuration %}
-By default, it will run every hour. The user can change the update frequency in
-the configuration by defining the minute and hour for a speed test to run.
For the `server_id` check the list of
[available servers](https://www.speedtest.net/speedtest-servers.php).
-To add a Speedtest.net sensor to your installation,
-add the following to your `configuration.yaml` file:
+To add Speedtest.net sensors to your installation, add the following to your `configuration.yaml` file:
Once per hour, on the hour (default):
```yaml
# Example configuration.yaml entry
-sensor:
- - platform: speedtest
- monitored_conditions:
- - ping
- - download
- - upload
+speedtestdotnet:
```
{% configuration %}
monitored_conditions:
description: Sensors to display in the frontend.
- required: true
+ required: false
+ default: All keys
type: list
keys:
ping:
@@ -55,29 +56,40 @@ sensor:
description: Specify the speed test server to perform the test against.
required: false
type: integer
- hour:
- description: Specify the hour(s) of the day to schedule the speed test. Use a list for multiple entries.
+ scan_interval:
+ description: "Minimum time interval between updates. Supported formats: `scan_interval: 'HH:MM:SS'`, `scan_interval: 'HH:MM'` and Time period dictionary (see example below)."
required: false
- type: [int, list]
- minute:
- description: Specify the minute(s) of the hour to schedule the speed test. Use a list for multiple entries.
- required: false
- type: [int, list]
- default: 0
- second:
- description: Specify the second(s) of the minute to schedule the speed test. Use a list for multiple entries.
- required: false
- type: [int, list]
- default: 0
+ default: 60 minutes
+ type: time
manual:
description: >
- `true` or `false` to turn manual mode on or off.
- Manual mode will disable scheduled speed tests.
+ `true` or `false` to turn manual mode on or off. Manual mode will disable scheduled speed tests.
required: false
type: boolean
default: false
{% endconfiguration %}
+#### {% linkable_title Time period dictionary example %}
+
+```yaml
+scan_interval:
+ # At least one of these must be specified:
+ days: 0
+ hours: 0
+ minutes: 3
+ seconds: 30
+ milliseconds: 0
+```
+
+### {% linkable_title Service %}
+
+Once loaded, the `speedtestdotnet` component will expose a service (`speedtestdotnet.speedtest`) that can be called to run a Speedtest.net speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode.
+
+```yaml
+action:
+ service: speedtestdotnet.speedtest
+```
+
This component uses [speedtest-cli](https://github.com/sivel/speedtest-cli) to
gather network performance data from Speedtest.net.
Please be aware of the potential
@@ -91,7 +103,7 @@ test. You can turn on manual mode to disable the scheduled speed tests.
## {% linkable_title Examples %}
-In this section, you find some real-life examples of how to use this sensor.
+In this section, you find some real-life examples of how to use this component.
### {% linkable_title Run periodically %}
@@ -99,35 +111,13 @@ Every half hour of every day:
```yaml
# Example configuration.yaml entry
-sensor:
- - platform: speedtest
- minute:
- - 0
- - 30
- monitored_conditions:
- - ping
- - download
- - upload
-```
-
-### {% linkable_title Run at a specific time %}
-
-Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM:
-
-```yaml
-# Example configuration.yaml entry
-sensor:
- - platform: speedtest
- minute: 30
- hour:
- - 0
- - 6
- - 12
- - 18
- monitored_conditions:
- - ping
- - download
- - upload
+speedtestdotnet:
+ scan_interval:
+ minutes: 30
+ monitored_conditions:
+ - ping
+ - download
+ - upload
```
### {% linkable_title Using as a trigger in an automation %}
@@ -139,7 +129,7 @@ automation:
- alias: "Internet Speed Glow Connect Great"
trigger:
- platform: template
- value_template: "{{ states('sensor.speedtest_download')|float > 10 }}"
+ value_template: "{{ states('sensor.speedtest_download')|float >= 10 }}"
action:
- service: shell_command.green
@@ -155,7 +145,7 @@ automation:
## {% linkable_title Notes %}
- When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
-- Running this platform can have negative effects on the system's performance as it requires a fair amount of memory.
+- Running this component can have negative effects on the system's performance as it requires a fair amount of memory.
- Entries under `monitored_conditions` only control what entities are available in Home Assistant, it does not disable the condition from running.
- If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections.
- While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes.
diff --git a/source/_components/spider.markdown b/source/_components/spider.markdown
index f66617b2a385..272ddba92384 100644
--- a/source/_components/spider.markdown
+++ b/source/_components/spider.markdown
@@ -8,13 +8,24 @@ comments: false
sharing: true
footer: true
logo: spider.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Climate
+ - Switch
ha_iot_class: "Cloud Polling"
ha_release: 0.75
+redirect_from:
+ - /components/switch.spider/
+ - /components/climate.spider/
---
The `spider` component is the main component to integrate all [Itho Daalderop Spider](https://www.ithodaalderop.nl/spider-thermostaat) related platforms. You will need your Spider account information (username, password) to discover and control devices which are related to your account.
+There is currently support for the following device types within Home Assistant:
+
+- Climate
+- Switch
+
## {% linkable_title Configuration %}
To add your Spider devices into your Home Assistant installation, add the following to your `configuration.yaml` file:
@@ -43,3 +54,9 @@ scan_interval:
This component is not affiliated with Itho Daalderop Spider and retrieves data from the endpoints of the mobile application. Use at your own risk.
+
+### {% linkable_title Climate %}
+
+
+Although this component lets you change the operation mode to heating or cooling, it doesn't necessarily mean your boiler can. Spider is not aware of your current situation.
+
\ No newline at end of file
diff --git a/source/_components/splunk.markdown b/source/_components/splunk.markdown
index 06eefe86577a..d7efdaa556dd 100644
--- a/source/_components/splunk.markdown
+++ b/source/_components/splunk.markdown
@@ -14,12 +14,14 @@ ha_release: 0.13
The `splunk` component makes it possible to log all state changes to an external [Splunk](http://splunk.com/) database using Splunk's HTTP Event Collector (HEC) feature. You can either use this alone, or with the Home Assistant for Splunk [app](https://github.com/miniconfig/splunk-homeassistant). Since the HEC feature is new to Splunk, you will need to use at least version 6.3.
+## {% linkable_title Configuration %}
+
To use the `splunk` component in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
splunk:
- token: B4415DFF-683C-5C6C-3994-4F6D4A5DB03A
+ token: YOUR_SPLUNK_TOKEN
```
{% configuration %}
@@ -28,7 +30,7 @@ token:
required: true
type: string
host:
- description: "IP address or host name of your Splunk host e.g., 192.168.1.10."
+ description: "IP address or host name of your Splunk host, e.g., 192.168.1.10."
required: false
default: localhost
type: string
@@ -42,6 +44,11 @@ ssl:
required: false
default: false
type: boolean
+verify_ssl:
+ description: Allows you do disable checking of the SSL certificate.
+ required: false
+ default: false
+ type: boolean
name:
description: This parameter allows you to specify a friendly name to send to Splunk as the host, instead of using the name of the HEC.
required: false
diff --git a/source/_components/sun.markdown b/source/_components/sun.markdown
index cc2f933d70b9..94da2e561c41 100644
--- a/source/_components/sun.markdown
+++ b/source/_components/sun.markdown
@@ -19,6 +19,8 @@ below the horizon. The sun can be used within automation as
[sun_trigger]: /docs/automation/trigger/#sun-trigger
[sun_condition]: /docs/scripts/conditions/#sun-condition
+## {% linkable_title Configuration %}
+
```yaml
# Example configuration.yaml entry
sun:
@@ -35,7 +37,7 @@ elevation:
-### {% linkable_title Implementation Details %}
+## {% linkable_title Implementation Details %}
The sun's event listener will call the service when the sun rises or sets with
an offset.
@@ -52,7 +54,7 @@ which event (sunset or sunrise) and the offset.
}
```
-#### {% linkable_title Maintains entity `sun.sun` %}
+### {% linkable_title Maintains entity `sun.sun` %}
| Possible state | Description |
| --------- | ----------- |
diff --git a/source/_components/switch.abode.markdown b/source/_components/switch.abode.markdown
deleted file mode 100644
index 2cc7d2e9777f..000000000000
--- a/source/_components/switch.abode.markdown
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: page
-title: "Abode Switch"
-description: "Instructions on how to integrate Abode switches into Home Assistant."
-date: 2017-08-26 13:28
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: abode.jpg
-ha_release: 0.52
-ha_category: Switch
-ha_iot_class: "Cloud Push"
----
-
-The `abode` security control panel platform allows you to control your [Abode](https://goabode.com/) alarms.
-
-This component will automatically add `Power Switches` configured in your Abode account. You can reclassify switches to show up within Home Assistant as `Lights` by listing the Abode device ID in your [configuration](/components/abode/#configuration).
-
-This component will also list all Abode `Automations` that are set up within the Abode system, allowing you to activate and deactivate the automations.
-
-The requirement is that you have setup your [Abode hub](/components/abode/).
diff --git a/source/_components/switch.acer_projector.markdown b/source/_components/switch.acer_projector.markdown
index 1e5bfb299c08..8e29186e2e88 100644
--- a/source/_components/switch.acer_projector.markdown
+++ b/source/_components/switch.acer_projector.markdown
@@ -13,7 +13,6 @@ ha_iot_class: "Local Polling"
ha_release: 0.19
---
-
The `acer_projector` switch platform allows you to control the state of RS232 connected projectors from [Acer](http://www.acer.com).
## {% linkable_title Configuration %}
diff --git a/source/_components/switch.ads.markdown b/source/_components/switch.ads.markdown
deleted file mode 100644
index 28396413292c..000000000000
--- a/source/_components/switch.ads.markdown
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: page
-title: "ADS Switch"
-description: "Instructions on how to set up ADS switches within Home Assistant."
-date: 2017-10-25 10:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: beckhoff.png
-ha_category: Switch
-ha_release: "0.60"
-ha_iot_class: "Local Push"
----
-
-The `ads` switch platform accesses a boolean variable on the connected ADS device. The variable is identified by its name.
-
-To use your ADS device, you first have to set up your [ADS hub](/components/ads/) and then add the following to your `configuration.yaml`
-file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: ads
- adsvar: .global_bool
-```
-
-{% configuration %}
- adsvar:
- required: true
- description: The name of the variable which you want to access on the ADS device.
- type: string
- name:
- required: false
- description: An identifier for the switch in the frontend.
- type: string
-{% endconfiguration %}
diff --git a/source/_components/switch.amcrest.markdown b/source/_components/switch.amcrest.markdown
deleted file mode 100644
index d494df7b02b7..000000000000
--- a/source/_components/switch.amcrest.markdown
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: page
-title: "Amcrest IP Camera Settings"
-description: "Instructions on how to integrate settings for Amcrest IP Camera as switches within Home Assistant."
-date: 2018-03-08 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: amcrest.png
-ha_category: Switch
-ha_release: 0.67
-ha_iot_class: "Local Polling"
----
-
-The `amcrest` switch platform lets you control settings of [Amcrest IP Camera](https://home-assistant.io/components/camera.amcrest/) through Home Assistant.
-
-Switches will be configured automatically. Please refer to the [component](/components/amcrest/) configuration on how to setup.
-
-
-In previous versions, switch devices in setups with multiple cameras, would not have specific entity ID causing them to change randomly after each Home Assistant restart. The current version adds the name of the camera at the end of the switch entity ID, making it more specific and consistent and causes the name option to be required in a multi-camera system. This behavior matches the sensor behavior of the Amcrest component. Because of this, older automations may require updates to the entity ID.
-
diff --git a/source/_components/switch.android_ip_webcam.markdown b/source/_components/switch.android_ip_webcam.markdown
deleted file mode 100644
index bb32b0c9f5d0..000000000000
--- a/source/_components/switch.android_ip_webcam.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: "Android IP Webcam Settings"
-description: "Instructions on how to integrate settings for Android IP webcam as switch within Home Assistant."
-date: 2017-03-10 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: android_ip_webcam.png
-ha_category: Switch
-ha_release: "0.40"
-ha_iot_class: "Local Polling"
----
-
-
-The `android_ip_webcam` switch platform lets you control settings of [Android IP webcam](https://play.google.com/store/apps/details?id=com.pas.webcam) through Home Assistant.
-
-Devices will be configured automatically. Please refer to the [component](/components/android_ip_webcam/) configuration on how to setup.
diff --git a/source/_components/switch.aqualogic.markdown b/source/_components/switch.aqualogic.markdown
deleted file mode 100644
index 80a0ad625db0..000000000000
--- a/source/_components/switch.aqualogic.markdown
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: page
-title: "AquaLogic Switch"
-description: "Instructions on how to integrate your AquaLogic devices within Home Assistant."
-date: 2018-09-17 9:16
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: hayward.png
-ha_category: Switch
-ha_release: "0.80"
-ha_iot_class: "Local Push"
----
-
-To get your AquaLogic switches working within Home Assistant, please follow the instructions for the general [AquaLogic component](/components/aqualogic).
-
-## {% linkable_title Configuration %}
-
-Once you have enabled the [AquaLogic component](/components/aqualogic), add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: aqualogic
- monitored_conditions:
- - lights
- - filter
-```
-
-{% configuration %}
-monitored_conditions:
- description: List of items you want to monitor/control.
- required: false
- default: all
- type: list
- keys:
- filter:
- description: Controls the filter pump.
- filter_low_speed:
- description: Controls low speed mode on the filter pump (multi-speed pumps only).
- lights:
- description: Controls the Lights relay.
- aux_1:
- description: Controls the Aux 1 relay.
- aux_2:
- description: Controls the Aux 2 relay.
- aux_3:
- description: Controls the Aux 3 relay.
- aux_4:
- description: Controls the Aux 4 relay.
- aux_5:
- description: Controls the Aux 5 relay.
- aux_6:
- description: Controls the Aux 6 relay.
- aux_7:
- description: Controls the Aux 7 relay.
-{% endconfiguration %}
diff --git a/source/_components/switch.arduino.markdown b/source/_components/switch.arduino.markdown
index a27907103af4..5cc9f87d9b1e 100644
--- a/source/_components/switch.arduino.markdown
+++ b/source/_components/switch.arduino.markdown
@@ -13,7 +13,6 @@ ha_release: pre 0.7
ha_iot_class: "Local Polling"
---
-
The `arduino` switch platform allows you to control the digital pins of your [Arduino](https://www.arduino.cc/) board. Support for switching pins is limited to high/on and low/off of the digital pins. PWM (pin 3, 5, 6, 9, 10, and 11 on an Arduino Uno) is not supported yet.
To enable the Arduino pins with Home Assistant, add the following section to your `configuration.yaml` file:
@@ -59,4 +58,3 @@ pins:
{% endconfiguration %}
The digital pins are numbered from 0 to 13 on a Arduino UNO. The available pins are 2 till 13. For testing purposes you can use pin 13 because with that pin you can control the internal LED.
-
diff --git a/source/_components/switch.arest.markdown b/source/_components/switch.arest.markdown
index a6a61d7ae98c..4b27e680d449 100644
--- a/source/_components/switch.arest.markdown
+++ b/source/_components/switch.arest.markdown
@@ -29,7 +29,7 @@ switch:
name: Fan
13:
name: Switch
- invert: True
+ invert: true
```
If you want to use custom functions, then add the following to your `configuration.yaml` file:
@@ -44,9 +44,10 @@ switch:
function1:
name: Light Desk
```
+
{% configuration %}
resource:
- description: IP address and schema of the device that is exposing an aREST API, e.g., http://192.168.1.10 (no-trailing slash)
+ description: IP address and schema of the device that is exposing an aREST API, e.g., `http://192.168.1.10` (no-trailing slash)
required: true
type: string
name:
@@ -78,9 +79,8 @@ functions:
type: string
{% endconfiguration %}
-You can still switch your pins with a web browser or a command line tool. Use the URL http://192.168.1.10/digital/8/1 to set pin 8 to high/on, the JSON response will give you the feedback.
+You can still switch your pins with a web browser or a command line tool. Use the URL `http://192.168.1.10/digital/8/1` to set pin 8 to high/on, the JSON response will give you the feedback.
```json
{"message": "Pin D8 set to 1", "id": "sensor02", "name": "livingroom", "connected": true}
```
-
diff --git a/source/_components/switch.bbb_gpio.markdown b/source/_components/switch.bbb_gpio.markdown
deleted file mode 100644
index 6efd8f881591..000000000000
--- a/source/_components/switch.bbb_gpio.markdown
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: page
-title: "BeagleBone Black GPIO Switch"
-description: "Instructions on how to integrate the GPIO of a BeagleBone Black into Home Assistant as a switch."
-date: 2017-01-14 10:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: beaglebone-black.png
-ha_category: DIY
-ha_release: 0.36
-ha_iot_class: "Local Push"
----
-
-The `bbb_gpio` switch platform allows you to control the GPIOs of your [BeagleBone Black](https://beagleboard.org/black).
-
-## {% linkable_title Configuration %}
-
-To use your BeagleBone Black's GPIO in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: bbb_gpio
- pins:
- GPIO0_7:
- name: LED Red
- P9_12:
- name: LED Green
-```
-
-{% configuration %}
-pins:
- description: List of used pins.
- required: true
- type: map
- keys:
- pin_name:
- description: Port numbers and corresponding names.
- required: true
- type: map
- keys:
- name:
- description: Friendly name to use for the frontend.
- required: false
- type: string
- initial:
- description: Initial state of the pin.
- required: false
- default: false
- type: boolean
- invert_logic:
- description: If `true`, inverts the input logic to ACTIVE LOW
- required: false
- default: false
- type: boolean
-{% endconfiguration %}
-
-For more details about the GPIO layout, visit the [article](http://elinux.org/Beagleboard:BeagleBoneBlack) about the BeagleBone Black.
diff --git a/source/_components/switch.broadlink.markdown b/source/_components/switch.broadlink.markdown
index 844e6c9715e8..760aee5d2952 100644
--- a/source/_components/switch.broadlink.markdown
+++ b/source/_components/switch.broadlink.markdown
@@ -15,6 +15,8 @@ ha_iot_class: "Local Polling"
This `Broadlink` switch platform allow to you control Broadlink [devices](http://www.ibroadlink.com/).
+## {% linkable_title Configuration %}
+
To enable it, add the following lines to your `configuration.yaml`:
```yaml
@@ -93,7 +95,7 @@ slots:
Information about how to install on Windows can be found [here](/components/sensor.broadlink/#microsoft-windows-installation).
-### {% linkable_title How to obtain IR/RF packets? %}
+## {% linkable_title How to obtain IR/RF packets? %}
Choose Call Service from the Developer Tools. Choose the service `switch.broadlink_learn_command` from the list of **Available services:** and hit **CALL SERVICE**. Press the button on your remote with in 20 seconds. The packet will be printed as a persistent notification in the States page of the web interface.
@@ -173,7 +175,7 @@ switch:
slot_4: 'Speaker slot'
```
-### {% linkable_title Service `broadlink_send_packet` %}
+## {% linkable_title Service `broadlink_send_packet` %}
You can use the service `switch.broadlink_send_packet` to directly send IR packets without the need to assign a switch entity for each command.
@@ -194,7 +196,7 @@ script:
- "JgBGAJSTFDUUNhM2ExITEhMSExITEhM2EzYTNhQRFBEUERQRFBEUNRQ2ExITNhMSExITNhMSExITEhM2ExITNhQ1FBEUNhMADQUAAA=="
```
-### {% linkable_title Using E-Control Remotes %}
+## {% linkable_title Using E-Control Remotes %}
If you already have your remotes learned on E-Control app you can use this method to "copy" them to Home Assistant.
@@ -226,65 +228,71 @@ First get or learn all the remotes you want to add to Home Assistant in E-Contro
6. Install python-broadlink library:
- 1. `git clone https://github.com/mjg59/python-broadlink.git`
- 2. `cd python-broadlink`
- 3. `sudo python setup.py install`
+ ```bash
+ git clone https://github.com/mjg59/python-broadlink.git
+ cd python-broadlink
+ sudo python setup.py install
+ ```
-7. Test the codes
-Use the `sendcode` script you have already downloaded to test the codes you got from the device.
-You need to edit the script with your RM Pro IP Address and MAC Address and with the code in HEX format.
-When run the script, you know the code works when get message .
-Code sent...
-Not every code works.
+7. Test the codes
+ Use the `sendcode` script you have already downloaded to test the codes you got from the device.
+ You need to edit the script with your RM Pro IP Address and MAC Address and with the code in HEX format.
+ When run the script, you know the code works when get message.
+ Code sent...
+ Not every code works.
-8. Convert the HEX codes to base64
-Use [this](http://tomeko.net/online_tools/hex_to_base64.php?lang=en1) tool to convert the hex codes to base64 for use with Home Assistant.
+8. Convert the HEX codes to base64.
+ Use [this](http://tomeko.net/online_tools/hex_to_base64.php?lang=en1) tool to convert the hex codes to base64 for use with Home Assistant.
-### {% linkable_title Using iOS and Windows to Obtain Codes %}
+## {% linkable_title Using iOS and Windows to Obtain Codes %}
1. Use the E-Control app to learn the codes from all of your suitable remotes. Depending on the remote, try to add useful names for the buttons and/or the remotes. This will mean that you should only have to run this process once and will help with getting them quickly into Home Assistant. Dump the files in the app by navigating to the hamburger icon, select `share and select`, then choose `Share to other phones on WLAN`.
2. Install Requirements
-- Download and install Python 2.7 on your windows PC.
-- Run `pip install simplejson`. You must install simplejson in the same python version you will use to run the scripts. You can ensure that the current version is installed by attempting to install again and confirming that you see "Requirement already satisfied".
-- Download and install [iBackup Viewer](http://www.imactools.com/iphonebackupviewer/).
-- Download [these](https://github.com/NightRang3r/Broadlink-e-control-db-dump) github files. Make sure you place them in the \Python27 path in Windows. Be sure that the getBroadlinkSharedData.py from the download is in this directory.
+ - Download and install Python 2.7 on your windows PC.
+ - Run `pip install simplejson`. You must install simplejson in the same python version you will use to run the scripts. You can ensure that the current version is installed by attempting to install again and confirming that you see "Requirement already satisfied".
+ - Download and install [iBackup Viewer](http://www.imactools.com/iphonebackupviewer/).
+ - Download [these](https://github.com/NightRang3r/Broadlink-e-control-db-dump) github files. Make sure you place them in the \Python27 path in Windows. Be sure that the getBroadlinkSharedData.py from the download is in this directory.
3. Plug your iphone into your windows PC, open iTunes and create a non-encrypted backup of your device.
4. Open iBackup viewer then select the iOS backup that you created. Navigate to the App icon and then scroll until you find e-control.app, select this. Select and extract the files jsonButton, jsonIrCode and jsonSublr; they will be located in the Documents/SharedData section. Put these in the same location as the getBroadlinkSharedData.py.
5. Now open a Command Prompt and navigate to the directory where the aforementioned files are located e.g. C:\Python27. Now run the command python getBroadlinkSharedData.py, you should see something like this:
-```C:\Python27>python getBroadlinkSharedData.py
-ID: 1 | Name: TV
-ID: 2 | Name: Upstairs
-ID: 3 | Name: Sort in order
-ID: 4 | Name: Soundbar
-ID: 5 | Name: TV
-ID: 6 | Name: Xbox One
-ID: 7 | Name: User-Defined Aircon
-ID: 8 | Name: Sort in order
-ID: 9 | Name: User-Defined Aircon
-ID: 10 | Name: Kids Fan
-ID: 11 | Name: Downstairs
-ID: 12 | Name: Ceiling Fan
-ID: 13 | Name: Samsung TV
-ID: 14 | Name: Xbox One
-ID: 15 | Name: SONY SoundBar
-ID: 16 | Name: Fire TV
-ID: 17 | Name: New RF Remote
-```
-
-6. Select the remote ID you would like to extract:
-```Select accessory ID: 5
-[+] You selected: TV
-[+] Dumping codes to TV.txt
-```
-
-7. Now there should be a file with the name of the remote you chose in the same directory ending in `.txt`. Open that up and it will contain the Base64 code required for Home Assistant. To ensure these codes work correctly you may need to add `==` to the end of the code in your config.yaml file (or wherever you have your switches).
-### {% linkable_title Using Windows to Obtain Codes with Broadlink Manager %}
+ ```bash
+ C:\Python27>python getBroadlinkSharedData.py
+ ID: 1 | Name: TV
+ ID: 2 | Name: Upstairs
+ ID: 3 | Name: Sort in order
+ ID: 4 | Name: Soundbar
+ ID: 5 | Name: TV
+ ID: 6 | Name: Xbox One
+ ID: 7 | Name: User-Defined Aircon
+ ID: 8 | Name: Sort in order
+ ID: 9 | Name: User-Defined Aircon
+ ID: 10 | Name: Kids Fan
+ ID: 11 | Name: Downstairs
+ ID: 12 | Name: Ceiling Fan
+ ID: 13 | Name: Samsung TV
+ ID: 14 | Name: Xbox One
+ ID: 15 | Name: SONY SoundBar
+ ID: 16 | Name: Fire TV
+ ID: 17 | Name: New RF Remote
+ ```
+
+ Select the remote ID you would like to extract:
+
+ ```bash
+ Select accessory ID: 5
+ [+] You selected: TV
+ [+] Dumping codes to TV.txt
+ ```
+
+6. Now there should be a file with the name of the remote you chose in the same directory ending in `.txt`. Open that up and it will contain the Base64 code required for Home Assistant. To ensure these codes work correctly you may need to add `==` to the end of the code in your config.yaml file (or wherever you have your switches).
+
+## {% linkable_title Using Windows to Obtain Codes with Broadlink Manager %}
1. Install Broadlink Manager from this SourceForge link [here](https://sourceforge.net/projects/broadlink-manager/).
2. Open the application and hit "scan" to activate your broadlink device.
diff --git a/source/_components/switch.danfoss_air.markdown b/source/_components/switch.danfoss_air.markdown
new file mode 100644
index 000000000000..6203a9a10411
--- /dev/null
+++ b/source/_components/switch.danfoss_air.markdown
@@ -0,0 +1,22 @@
+---
+layout: page
+title: "Danfoss Air Switch"
+description: "Instructions for how to setup Danfoss Air switches within Home Assistant."
+date: 2019-02-13 13:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: danfoss_air.png
+ha_category: Switch
+ha_release: 0.89
+ha_iot_class: "Local Polling"
+---
+
+
+To get your Danfoss Air sensors working with Home Assistant, follow the instructions for the general [Danfoss Air component](/components/danfoss_air/).
+
+
+
+The following switches.
+* **Boost:** Switch to manually activate boost.
diff --git a/source/_components/switch.deconz.markdown b/source/_components/switch.deconz.markdown
deleted file mode 100644
index 4a251b9fcb94..000000000000
--- a/source/_components/switch.deconz.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: page
-title: "deCONZ Switches"
-description: "Instructions on how to integrate Zigbee switches from deCONZ into Home Assistant."
-date: 2018-07-31 23:32
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: deconz.jpeg
-ha_category: Switch
-ha_release: "0.76"
-ha_iot_class: "Local Push"
----
-
-See the [deCONZ main component](/components/deconz/) for configuration instructions.
-
-Switches are devices like power plugs and sirens.
-
-Note that devices in the switch platform identify as lights, so there is a manually curated list that defines which "lights" are switches.
-
-The `entity_id` name will be `switch.device_name`, where `device_name` is defined in deCONZ.
-
-#### {% linkable_title Verified supported switches %}
-
-- Innr SP120
-- Osram Outdoor plug
-- Heiman siren
diff --git a/source/_components/switch.deluge.markdown b/source/_components/switch.deluge.markdown
index 43afb1976f68..0d6b41864c26 100644
--- a/source/_components/switch.deluge.markdown
+++ b/source/_components/switch.deluge.markdown
@@ -13,7 +13,6 @@ ha_release: 0.57
ha_iot_class: "Local Polling"
---
-
The `deluge` switch platform allows you to control your [Deluge](http://deluge-torrent.org/) client from within Home Assistant. The platform enables you switch all your torrents in pause, and then unpause them all.
To add Deluge to your installation, add the following to your `configuration.yaml` file:
@@ -31,7 +30,7 @@ switch:
host:
required: true
type: string
- description: This is the IP address of your Deluge daemon, eg., 192.168.1.32.
+ description: This is the IP address of your Deluge daemon, e.g., 192.168.1.32.
username:
required: true
type: string
diff --git a/source/_components/switch.digital_ocean.markdown b/source/_components/switch.digital_ocean.markdown
deleted file mode 100644
index dc59db6f96ea..000000000000
--- a/source/_components/switch.digital_ocean.markdown
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: page
-title: "Digital Ocean Switch"
-description: "Instructions on how to set up Digital Ocean switches within Home Assistant."
-date: 2016-09-24 08:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: digital_ocean.png
-ha_category: System Monitor
-ha_release: "0.30"
-ha_iot_class: "Local Polling"
----
-
-The `digital_ocean` switch platform allows you to control (start/stop) your Digital Ocean droplets.
-
-### {% linkable_title Configuration %}
-
-To use your Digital Ocean droplets, you first have to set up your [Digital Ocean hub](/components/digital_ocean/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: digital_ocean
- droplets:
- - 'fedora-512mb-nyc3-01'
- - 'coreos-512mb-nyc3-01'
-```
-
-{% configuration %}
-droplets:
- description: List of droplets you want to control.
- required: true
- type: list
-{% endconfiguration %}
-
diff --git a/source/_components/switch.digitalloggers.markdown b/source/_components/switch.digitalloggers.markdown
index 7d28962def61..6b75f331da97 100644
--- a/source/_components/switch.digitalloggers.markdown
+++ b/source/_components/switch.digitalloggers.markdown
@@ -13,10 +13,9 @@ ha_release: 0.35
ha_iot_class: "Local Polling"
---
+The `digitalloggers` switch platform allows you to control the state of your [Digital Loggers](http://www.digital-loggers.com/dinfaqs.html) switches.
-The `digitalloggers` switch platform allows you to control the state of your [Digital Loggers](http://www.digital-loggers.com/dinfaqs.html) switches.
-
-### {% linkable_title Configuration %}
+## {% linkable_title Configuration %}
To use your digitalloggers switch in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/switch.dlink.markdown b/source/_components/switch.dlink.markdown
index 9511792504e2..ea148580b778 100644
--- a/source/_components/switch.dlink.markdown
+++ b/source/_components/switch.dlink.markdown
@@ -13,7 +13,6 @@ ha_iot_class: "Local Polling"
ha_release: 0.14
---
-
The `dlink` switch platform allows you to control the state of your [D-Link Wi-Fi Smart Plugs](http://us.dlink.com/product-category/home-solutions/connected-home/smart-plugs/).
Supported devices (tested):
diff --git a/source/_components/switch.doorbird.markdown b/source/_components/switch.doorbird.markdown
deleted file mode 100644
index f2da16e96292..000000000000
--- a/source/_components/switch.doorbird.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: page
-title: "DoorBird Switch"
-description: "Instructions on how to integrate DoorBird video doorbell relays into Home Assistant."
-date: 2017-08-06 11:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: doorbird.png
-ha_category: Switch
-ha_release: "0.54"
-ha_iot_class: "Local Push"
----
-
-The `doorbird` switch platform allows you to power connected relays and trigger the IR array in your [DoorBird](http://www.doorbird.com/) video doorbell device.
-
-
- You must have the [DoorBird component](/components/doorbird/) configured to use this switch.
-
-
-To enable this switch, add the following lines to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: doorbird
-```
diff --git a/source/_components/switch.edimax.markdown b/source/_components/switch.edimax.markdown
index 7a6611d77ba6..a7882b473fd1 100644
--- a/source/_components/switch.edimax.markdown
+++ b/source/_components/switch.edimax.markdown
@@ -12,8 +12,7 @@ ha_category: Switch
ha_release: pre 0.7
---
-
-This `edimax` switch platform allows you to control the state of your [Edimax](http://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches.
+This `edimax` switch platform allows you to control the state of your [Edimax](https://www.edimax.com/edimax/merchandise/merchandise_list/data/edimax/global/home_automation_smart_plug/) switches.
To use your Edimax switch in your installation, add the following to your `configuration.yaml` file:
@@ -45,3 +44,25 @@ name:
default: Edimax Smart Plug
type: string
{% endconfiguration %}
+
+## {% linkable_title Power consumption sensor %}
+
+Starting with [version 2 of the firmware](https://www.edimax.com/edimax/download/download/data/edimax/global/download/), the Edimax switches can also report the current and accumulated daily power consumption in their state objects. Use a [template sensor](/components/sensor.template/) to extract their values:
+
+{% raw %}
+```yaml
+ - platform: template
+ sensors:
+ edimax_current_power:
+ friendly_name: Edimax Current power consumption
+ unit_of_measurement: 'W'
+ value_template: "{{ state_attr('switch.edimax_smart_plug', 'current_power_w') | replace('None', 0) }}"
+
+ edimax_total_power:
+ friendly_name: Edimax Accumulated daily power consumption
+ unit_of_measurement: 'kWh'
+ value_template: "{{ state_attr('switch.edimax_smart_plug', 'today_energy_kwh') | replace('None', 0) }}"
+```
+{% endraw %}
+
+Note that if the smart plug is off, these states report the string `None`. By using a `replace()` in the template, these sensors report purely numerical values.
diff --git a/source/_components/switch.edp_redy.markdown b/source/_components/switch.edp_redy.markdown
deleted file mode 100644
index 9f8e79841646..000000000000
--- a/source/_components/switch.edp_redy.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "EDP re:dy Switch"
-description: "Instructions on how to integrate the EDP re:dy switches into Home Assistant."
-date: 2018-09-04 16:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: edp_redy.png
-ha_category: Switch
-ha_release: "0.79"
-ha_iot_class: "Cloud Polling"
----
-
-See the [EDP re:dy main component](/components/edp_redy/) for configuration instructions.
-
-This switch platform will provide a switch per toggleable EDP re:dy device (switch, plug, etc).
diff --git a/source/_components/switch.elkm1.markdown b/source/_components/switch.elkm1.markdown
deleted file mode 100644
index 8ef52a09af6e..000000000000
--- a/source/_components/switch.elkm1.markdown
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: page
-title: "Elk-M1 Switch"
-description: "Instructions on how to integrate Elk-M1 outputs (relays)."
-date: 2018-10-07 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: elkproducts.png
-ha_release: 0.81
-ha_category: Switch
-ha_iot_class: "Local Push"
----
-
-The `elkm1` platform allows you to control your [Elk-M1](https://www.elkproducts.com/m1_controls.html).
-
-Elk-M1 outputs are represented as `switch` entities.
-
-
-Full configuration details can be found on the main [Elk-M1 component](/components/elkm1/) page.
-
diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown
deleted file mode 100644
index f891b939306c..000000000000
--- a/source/_components/switch.enocean.markdown
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: page
-title: "EnOcean Switch"
-description: "Instructions on how to set up EnOcean switches within Home Assistant."
-date: 2016-05-25 23:49
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: enocean.png
-ha_category: Switch
-ha_release: 0.21
-ha_iot_class: "Local Push"
----
-
-An EnOcean switch can take many forms. Currently, only a few types have been tested: Permundo PSC234 and Nod On SIN-2-1-01.
-
-To use your EnOcean device, you first have to set up your [EnOcean hub](/components/enocean/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: enocean
- id: [0x01,0x90,0x84,0x3C]
-```
-
-{% configuration %}
-id:
- description: The ID of the device. This is a 4 bytes long number.
- required: true
- type: list
-name:
- description: An identifier for the switch.
- required: false
- default: EnOcean Switch
- type: string
-channel:
- description: The number of the channel (typically 0 or 1) for the output channel to switch.
- required: false
- default: 0
- type: integer
-{% endconfiguration %}
-
-```yaml
-# Example entries for a switch with 2 outputs (channels), e.g., the Nod On SIN-2-1-01
-switch nodon01_0:
- - platform: enocean
- id: [0x05,0x04,0x03,0x02]
- name: enocean_nodon01_0
- channel: 0
-
-switch nodon01_1:
- - platform: enocean
- id: [0x05,0x04,0x03,0x02]
- name: enocean_nodon01_1
- channel: 1
-```
diff --git a/source/_components/switch.eufy.markdown b/source/_components/switch.eufy.markdown
deleted file mode 100644
index 1a79dbd26bdd..000000000000
--- a/source/_components/switch.eufy.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: "Eufy Switch"
-description: "Instructions on how to integrate Eufy switches into Home Assistant."
-date: 2018-04-09 19:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: eufy.png
-ha_category: Switch
-ha_iot_class: "Local Polling"
-ha_release: 0.68
----
-
-The `eufy` platform allows you to control your [Eufy](http://www.eufylife.com) switches from within Home Assistant.
-
-They will be automatically discovered if the [Eufy](/components/eufy/) component is enabled.
-
diff --git a/source/_components/switch.fibaro.markdown b/source/_components/switch.fibaro.markdown
deleted file mode 100644
index ef93f7853ace..000000000000
--- a/source/_components/switch.fibaro.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Fibaro switches"
-description: "Instructions on how to integrate Fibaro switches into Home Assistant."
-date: 2018-11-14 23:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: fibaro.png
-ha_category: Light
-ha_iot_class: "Local Push"
-ha_release: 0.83
----
-
-The `fibaro` platform allows you to get data from your [Fibaro](http://fibaro.com/) switches connected to your Fibaro HCL or HC2 from within Home Assistant.
-
-They will be automatically discovered if the `fibaro` component is loaded.
diff --git a/source/_components/switch.flux.markdown b/source/_components/switch.flux.markdown
index dccaf1ba9571..68e87e72f192 100644
--- a/source/_components/switch.flux.markdown
+++ b/source/_components/switch.flux.markdown
@@ -108,7 +108,7 @@ switch:
sunset_colortemp: 3000
stop_colortemp: 1900
brightness: 200
- disable_brightness_adjust: True
+ disable_brightness_adjust: true
mode: xy
transition: 30
interval: 60
diff --git a/source/_components/switch.fritzbox.markdown b/source/_components/switch.fritzbox.markdown
deleted file mode 100644
index 3a257701e5d2..000000000000
--- a/source/_components/switch.fritzbox.markdown
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: page
-title: "Fritzbox Switch"
-description: "Instructions on how to integrate the AVM Fritzbox switch."
-date: 2017-11-12 17:10
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: avm.png
-ha_category: Switch
-ha_release: 0.68
-ha_iot_class: "Local Polling"
----
-
-To get AVM Fritzbox switch follow the instructions for the [Fritzbox component](/components/fritzbox/).
-
-### {% linkable_title Attributes %}
-
-The are several attributes that can be useful for automations and templates.
-
-| Attribute | Description |
-| --------- | ----------- |
-| `device_locked` | The state of the key lock at the device.
-| `locked` | The state of the lock for configuring the device via the app or the Fritzbox web interface.
-| `temperature_unit` | The unit of the temperature sensor (only available if the device support temperature sensor).
-| `temperature` | The current temperature sensor reading (only available if the device supports temperature sensor).
-| `total_consumption` | The total power consumption since the beginning of operation (only available if the device supports power meter function).
-| `total_consumption_unit` | The unit of the total_consumption (only available if the device supports power meter function).
diff --git a/source/_components/switch.fritzdect.markdown b/source/_components/switch.fritzdect.markdown
index 88322c313fe8..269cc207b4c4 100644
--- a/source/_components/switch.fritzdect.markdown
+++ b/source/_components/switch.fritzdect.markdown
@@ -13,7 +13,6 @@ ha_iot_class: "Local Polling"
ha_release: 0.38
---
-
The `fritzdect` switch platform allows you to control the state of your [AVM FRITZ!DECT DECT-based wireless switches](https://en.avm.de/products/fritzdect/). The AVM FRITZ!DECT switches need to be paired to your Fritz!Box and then can be monitored and controlled via Home Assistant.
Supported devices (tested):
diff --git a/source/_components/switch.hikvisioncam.markdown b/source/_components/switch.hikvisioncam.markdown
index 820a83260721..ad1cc040fba6 100644
--- a/source/_components/switch.hikvisioncam.markdown
+++ b/source/_components/switch.hikvisioncam.markdown
@@ -12,7 +12,6 @@ ha_category: Switch
ha_release: pre 0.7
---
-
This `hikvisioncam` switch platform allows you to control your motion detection setting on your [Hikvision](http://www.hikvision.com/) camera.
diff --git a/source/_components/switch.hive.markdown b/source/_components/switch.hive.markdown
deleted file mode 100644
index e4ea4837975f..000000000000
--- a/source/_components/switch.hive.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: page
-title: "Hive Switch"
-description: "Instructions on how to integrate Hive Plugs with Home Assistant."
-date: 2017-09-24 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: hive.png
-ha_category: Switch
-ha_release: 0.59
-ha_iot_class: "Cloud Polling"
----
-
-
-The `hive` switch platform integrates your Hive plugs into Home Assistant, enabling control of your devices.
-
-The platform supports the following Hive products:
-
-- Hive Active Plug
-
-
-
-Full configuration details can be found on the main [Hive component](/components/hive/) page.
-
-
-
diff --git a/source/_components/switch.hlk_sw16.markdown b/source/_components/switch.hlk_sw16.markdown
deleted file mode 100644
index 8095622e0a5d..000000000000
--- a/source/_components/switch.hlk_sw16.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "HLK-SW16 Relay Module"
-description: "Instructions on how to integrate HLK-SW16 relay switches into Home Assistant."
-date: 2018-10-29 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: hlktech.jpg
-ha_category: Switch
-ha_release: 0.84
-ha_iot_class: "Local Push"
----
-
-See the [HLK-SW16 main component](/components/hlk_sw16/) for configuration instructions.
-
-The HLK-SW16 is a simple 16 port relay switch.
diff --git a/source/_components/switch.homekit_controller.markdown b/source/_components/switch.homekit_controller.markdown
deleted file mode 100644
index d4b50659595e..000000000000
--- a/source/_components/switch.homekit_controller.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "HomeKit Switch"
-description: "Instructions on how to setup HomeKit switches within Home Assistant."
-date: 2017-03-19 21:08
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: apple-homekit.png
-ha_category: Switch
-ha_iot_class: "Local Polling"
-ha_release: 0.68
----
-
-To get your HomeKit switches working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).
diff --git a/source/_components/switch.homematic.markdown b/source/_components/switch.homematic.markdown
deleted file mode 100644
index 7902ae4974d2..000000000000
--- a/source/_components/switch.homematic.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: "Homematic Switch"
-description: "Instructions on how to integrate Homematic switches within Home Assistant."
-date: 2016-06-28 08:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: homematic.png
-ha_category: Switch
-ha_release: 0.23
-ha_iot_class: "Local Push"
----
-
-
-The `homematic` switch platform lets you control [Homematic](http://www.homematic.com/) switches through Home Assistant.
-
-Devices will be configured automatically. Please refer to the [component](/components/homematic/) configuration on how to setup Homematic.
\ No newline at end of file
diff --git a/source/_components/switch.homematicip_cloud.markdown b/source/_components/switch.homematicip_cloud.markdown
deleted file mode 100644
index aba47287c257..000000000000
--- a/source/_components/switch.homematicip_cloud.markdown
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: page
-title: "HomematicIP Cloud Switch"
-description: "Instructions on how to integrate HomematicIP switches within Home Assistant."
-date: 2018-04-02 13:40
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: homematicip_cloud.png
-ha_category: Switch
-ha_release: 0.70
-ha_iot_class: "Cloud Push"
----
-
-The `homematicip_cloud` switch platform allows you to control
-[HomematicIP](http://www.homematic-ip.com) switches through Home Assistant.
-
-Devices will be configured automatically. Please refer to the
-[component](/components/homematicip_cloud/) configuration on how to setup
-HomematicIP Cloud.
diff --git a/source/_components/switch.hook.markdown b/source/_components/switch.hook.markdown
index fbfeef75b4bd..71ef1bc45c60 100644
--- a/source/_components/switch.hook.markdown
+++ b/source/_components/switch.hook.markdown
@@ -14,7 +14,7 @@ ha_release: 0.34
The `hook` component allows you to control the [Hook Smart Home Hub](http://www.hooksmarthome.com/) from within Home Assistant.
-Hook allows you to control cheap mains electrical outlets, like these ones at [Amazon](https://www.amazon.com/Etekcity-Wireless-Electrical-Household-Appliances/dp/B00DQELHBS).
+Hook allows you to control cheap mains electrical outlets, like these ones at [Amazon](https://www.amazon.com/Etekcity-Wireless-Electrical-Household-Appliances/dp/B00DQELHBS).
In short, Hook is an RF to Wi-Fi bridge, controlling devices that receive commands at 315MHz and 433MHz. Unfortunately, this does not allow Hook to determine if the command was successful, so the state is assumed.
@@ -28,7 +28,7 @@ To enable this platform in your installation, add the following to your `configu
```yaml
# Example configuration.yaml entry
-switch:
+switch:
- platform: hook
username: YOUR_E_MAIL_ADDRESS
password: YOUR_HOOK
diff --git a/source/_components/switch.hydrawise.markdown b/source/_components/switch.hydrawise.markdown
index fc584f75a7e0..2fc830e844ca 100644
--- a/source/_components/switch.hydrawise.markdown
+++ b/source/_components/switch.hydrawise.markdown
@@ -27,7 +27,7 @@ switch:
{% configuration %}
watering_minutes:
- description: When manual watering is enabled this will determine the length of time in minutes that irrigation zone will run. The allowed values are 5, 10, 15, 30, 45, or 60.
+ description: When manual watering is enabled this will determine the length of time in minutes that the irrigation zone will run. The allowed values are 5, 10, 15, 30, 45, or 60.
required: false
type: integer
default: 15
@@ -63,5 +63,4 @@ switch:
monitored_conditions: manual_watering
```
-
Finish the configuration by visiting the [Hydrawise binary sensor](/components/binary_sensor.hydrawise) and [Hydrawise sensor](/components/sensor.hydrawise/) documentation.
diff --git a/source/_components/switch.ihc.markdown b/source/_components/switch.ihc.markdown
index 4d0125807d69..14958dd106df 100644
--- a/source/_components/switch.ihc.markdown
+++ b/source/_components/switch.ihc.markdown
@@ -24,7 +24,9 @@ project and setup as switch devices:
- Mobile wireless relay
- Dataline plug outlet
-To manually configure IHC switches insert the "switches" section in your
+## {% linkable_title Configuration %}
+
+To manually configure IHC switches insert the "switch" section in your
IHC configuration:
```yaml
@@ -32,14 +34,14 @@ ihc:
- url: 'http://192.168.1.3'
username: YOUR_USERNAME
password: YOUR_PASSWORD
- info: true
- switches:
+ info: true
+ switch:
- id: 12345
- id: 12346
```
{% configuration %}
-switches:
+switch:
description: List of switches to setup manually
required: false
type: map
@@ -48,6 +50,14 @@ switches:
description: The IHC resource id.
required: true
type: integer
+ on_id:
+ description: Optional IHC resource id that will be pulsed to turn ON this switch.
+ required: false
+ type: integer
+ off_id:
+ description: Optional IHC resource id that will be pulsed to turn OFF this switch.
+ required: false
+ type: integer
name:
description: The name of the component
required: false
diff --git a/source/_components/switch.insteon.markdown b/source/_components/switch.insteon.markdown
deleted file mode 100644
index 0af789e8a3ea..000000000000
--- a/source/_components/switch.insteon.markdown
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: page
-title: "Insteon Switch"
-description: "Instructions on how to setup the Insteon switches locally within Home Assistant."
-date: 2018-08-20 16:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: insteon.png
-ha_category: Switch
-ha_iot_class: "Local Push"
-ha_version: 0.77
----
-
-The `insteon` switch platform lets you control your on/off switches through
-an INSTEON Modem (PLM and Hub) device connected directly to your system on a
-USB, serial port or TCPIP connection. To add support, set up the primary
-[insteon] component.
-
-[insteon]: /components/insteon/
\ No newline at end of file
diff --git a/source/_components/switch.isy994.markdown b/source/_components/switch.isy994.markdown
deleted file mode 100644
index eacf1a002dd6..000000000000
--- a/source/_components/switch.isy994.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "ISY994 Switch"
-description: "Instructions on how to integrate ISY994 switch into Home Assistant."
-date: 2016-09-03 23:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: universal_devices.png
-ha_category: Switch
-ha_iot_class: "Local Push"
----
-
-The `isy994` platform allows you to get data from your [ISY994](https://www.universal-devices.com/residential/isy994i-series/) switch from within Home Assistant.
-
-They will be automatically discovered if the `isy994` component is loaded.
diff --git a/source/_components/switch.kankun.markdown b/source/_components/switch.kankun.markdown
index 264a6b98a45a..68e715784a5b 100644
--- a/source/_components/switch.kankun.markdown
+++ b/source/_components/switch.kankun.markdown
@@ -12,13 +12,14 @@ ha_release: 0.36
ha_iot_class: "Local Polling"
---
-
The `kankun` switch platform allows you to toggle customized Kankun SP3 Wifi switches. Switches are
modified to include the [json.cgi](https://github.com/homedash/kankun-json/blob/master/cgi-bin/json.cgi)
script to provide an HTTP API. Details of the necessary modifications can be found
[here](http://www.homeautomationforgeeks.com/openhab_http.shtml#kankun) (be sure to install the JSON version
of the script as linked above).
+## {% linkable_title Configuration %}
+
To enable it, add the following lines to your `configuration.yaml`:
```yaml
diff --git a/source/_components/switch.knx.markdown b/source/_components/switch.knx.markdown
index 47e9e720d4c4..5b712dc043a1 100644
--- a/source/_components/switch.knx.markdown
+++ b/source/_components/switch.knx.markdown
@@ -13,7 +13,6 @@ ha_release: 0.24
ha_iot_class: "Local Polling"
---
-
The `knx` switch component is used as in interface to switching actuators.
The `knx` component must be configured correctly, see [KNX Component](/components/knx).
@@ -47,4 +46,3 @@ state_address:
Some KNX devices can change their state internally without any messages on the KNX bus, e.g., if you configure a timer on a channel. The optional `state_address` can be used to inform Home Assistant about these state changes. If a KNX message is seen on the bus addressed to the given state address, this will overwrite the state of the switch object.
For switching actuators that are only controlled by a single group address and can't change their state internally, you don't have to configure the state address.
-
diff --git a/source/_components/switch.konnected.markdown b/source/_components/switch.konnected.markdown
deleted file mode 100644
index 8eecdd41801a..000000000000
--- a/source/_components/switch.konnected.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: "Konnected Switch"
-description: "Connect wired actuators to Home Assistant with Konnected and a NodeMCU ESP8266"
-date: 2018-04-03 12:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: konnected.png
-ha_category: Switch
-ha_release: "0.70"
-ha_iot_class: "Local Push"
----
-
-The `konnected` switch platform allows you to actuate an alarm system siren, strobe light, buzzer or any other wired device using a [Konnected Alarm Panel board](https://konnected.io) or relay module and a NodeMCU ESP8266 WiFi module running the [open source Konnected software](https://github.com/konnected-io/konnected-security).
-
-See the [`konnected`](/components/konnected/) component for configuration and setup instructions.
-
diff --git a/source/_components/switch.lightwave.markdown b/source/_components/switch.lightwave.markdown
deleted file mode 100644
index 0734a9a8370a..000000000000
--- a/source/_components/switch.lightwave.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Lightwave Switch"
-description: "Instructions on how to integrate Lightwave Switches with Home Assistant."
-date: 2018-12-05 18:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: lightwave.png
-ha_category: Switch
-ha_release: 0.84
-ha_iot_class: "Assumed State"
----
-The `lightwave` switch platform integrates your Lightwave switches into Home Assistant.
-
-Configuration details for the Lightwave platform can be found on the main [Lightwave component](/components/lightwave/) page.
-
\ No newline at end of file
diff --git a/source/_components/switch.linode.markdown b/source/_components/switch.linode.markdown
deleted file mode 100644
index f0afd3dd84bc..000000000000
--- a/source/_components/switch.linode.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: page
-title: "Linode Switch"
-description: "Instructions on how to set up Linode switch within Home Assistant."
-date: 2017-10-20 08:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: System Monitor
-logo: linode.png
-ha_release: 0.57
-ha_iot_class: "Cloud Polling"
----
-
-The `linode` switch platform allows you to turn your Linode nodes on and off.
-
-Add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: linode
- nodes:
- - 'myvpsname'
-```
-
-{% configuration linode %}
- nodes:
- description: List of VPSs you want to control.
- required: true
- type: string
-{% endconfiguration %}
-
diff --git a/source/_components/switch.litejet.markdown b/source/_components/switch.litejet.markdown
deleted file mode 100644
index 34f90d9badbf..000000000000
--- a/source/_components/switch.litejet.markdown
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: page
-title: "LiteJet Switch"
-description: "Instructions on how to setup the LiteJet switches within Home Assistant."
-date: 2016-10-26 13:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Switch
-ha_release: 0.32
-ha_iot_class: "Local Polling"
----
-
-To get your LiteJet switches working with Home Assistant, follow the instructions for the general [LiteJet component](/components/litejet/).
diff --git a/source/_components/switch.lupusec.markdown b/source/_components/switch.lupusec.markdown
deleted file mode 100644
index f526e35da2a2..000000000000
--- a/source/_components/switch.lupusec.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Lupusec Switch"
-description: "Instructions on how to integrate Lupusec switches into Home Assistant."
-date: 2018-10-03 16:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: lupusec.jpg
-ha_category: Switch
-ha_release: 0.83
-ha_iot_class: "Local Polling"
----
-
-The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices.
-
-This component will automatically add `Power Switches` configured in your Lupusec control panel.
-
-For the switches to work you have to setup your [Lupusec component](/components/lupusec/).
diff --git a/source/_components/switch.lutron_caseta.markdown b/source/_components/switch.lutron_caseta.markdown
deleted file mode 100644
index 100e044b1bd3..000000000000
--- a/source/_components/switch.lutron_caseta.markdown
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: page
-title: "Lutron Caseta Switch"
-description: "Instructions on how to setup the Lutron Caseta switches within Home Assistant."
-date: 2017-04-30 09:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: lutron.png
-ha_category: Switch
-ha_iot_class: "Local Polling"
----
-
-To get Lutron Caseta switches working with Home Assistant, follow the instructions for the general [Lutron Caseta component](/components/lutron_caseta/).
-
-After setup, switches will appear in Home Assistant using an `entity_id` based on the name used in the Lutron mobile app. For example, a light switch called 'Master Bathroom Vanity' will appear in Home Assistant as `switch.master_bathroom_vanity`.
-
-For dimmable lights including wall and plug-in dimmers, see [Lutron Caseta Light](/components/light.lutron_caseta/).
-
-For more information on working with switches in Home Assistant, see the [Switches component](/components/switch/).
-
-Available services: `switch.turn_on` and `switch.turn_off`.
\ No newline at end of file
diff --git a/source/_components/switch.markdown b/source/_components/switch.markdown
index 6e93003ceebd..0ea76993aaa4 100644
--- a/source/_components/switch.markdown
+++ b/source/_components/switch.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Switches"
-description: "Instructions on how to setup your switches with Home Assistant."
+description: "Instructions on how to set up your switches with Home Assistant."
date: 2015-01-24 14:39
sidebar: true
comments: false
@@ -11,10 +11,10 @@ footer: true
Keeps track which switches are in your environment, their state and allows you to control them.
- * Maintains a state per switch and a combined state `all_switches`.
- * Registers services `switch.turn_on`, `switch.turn_off`, and `switch.toggle` to control switches.
+- Maintains a state per switch and a combined state `all_switches`.
+- Registers services `switch.turn_on`, `switch.turn_off`, and `switch.toggle` to control switches.
-### {% linkable_title Use the services %}
+## {% linkable_title Use the services %}
In the frontend open the sidebar. At the bottom, under **Developer Tools**, click **Services**. From the Service dropdown menu choose `switch.turn_on` or `switch.turn_off` from the list of available services. In the Entity dropdown menu choose or enter the entity ID you want to work with. This will enter something like the sample below into the **Service Data** field. Now hit **CALL SERVICE**.
@@ -24,4 +24,4 @@ In the frontend open the sidebar. At the bottom, under **Developer Tools**, clic
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | Only act on a specific switch. Otherwise it targets all switches.
+| `entity_id` | yes | Only act on a specific switch. Otherwise, it targets all switches.
diff --git a/source/_components/switch.mfi.markdown b/source/_components/switch.mfi.markdown
index 038413948589..19a5f58d8d49 100644
--- a/source/_components/switch.mfi.markdown
+++ b/source/_components/switch.mfi.markdown
@@ -12,7 +12,6 @@ ha_category: Switch
ha_iot_class: "Local Polling"
---
-
The `mfi` switch platform to allow you to control [mFi Controllable Power Outlets](https://www.ubnt.com/mfi/mpower/).
## {% linkable_title Configuration %}
diff --git a/source/_components/switch.mochad.markdown b/source/_components/switch.mochad.markdown
deleted file mode 100644
index 6d9c2bba8782..000000000000
--- a/source/_components/switch.mochad.markdown
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: page
-title: "Mochad Switch"
-description: "Instructions on how to integrate X10 Mochad switches into Home Assistant."
-date: 2016-10-20 21:13
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Switch
-ha_iot_class: depends
-ha_release: 0.32
----
-
-The `mochad` switch platform lets you control an X10 enabled switch device.
-
-## {% linkable_title Configuration %}
-
-To enable this sensor, you first have to set up the [mochad component](/components/mochad/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: mochad
- devices:
- - address: a1
- - address: a5
-```
-
-{% configuration %}
-address:
- description: The X10 address of the switch.
- required: true
- type: string
-name:
- description: The name of the switch.
- required: false
- default: x10_switch_dev_*address*
- type: string
-comm_type:
- description: pl (powerline) or rf (radio frequency).
- required: false
- default: pl
- type: string
-{% endconfiguration %}
diff --git a/source/_components/switch.modbus.markdown b/source/_components/switch.modbus.markdown
index 60ce92daadde..c31dc5c458a7 100644
--- a/source/_components/switch.modbus.markdown
+++ b/source/_components/switch.modbus.markdown
@@ -13,7 +13,6 @@ ha_release: pre 0.7
ha_iot_class: "Local Push"
---
-
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
## {% linkable_title Configuration %}
@@ -27,6 +26,7 @@ switch:
slave: 1
coils:
- name: Switch1
+ hub: hub1
slave: 1
coil: 13
- name: Switch2
@@ -34,6 +34,7 @@ switch:
coil: 14
registers:
- name: Register1
+ hub: hub1
slave: 1
register: 11
command_on: 1
@@ -46,6 +47,11 @@ coils:
required: false
type: map
keys:
+ hub:
+ description: The name of the hub.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
@@ -63,6 +69,11 @@ register:
required: false
type: map
keys:
+ hub_name:
+ description: The hub to use.
+ required: false
+ default: default
+ type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
@@ -86,7 +97,7 @@ register:
verify_state:
description: Define if is possible to readback the status of the switch.
required: false
- default: True
+ default: true
type: boolean
verify_register:
description: Register to readback.
diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown
index b5f978a0adf9..8e45fba36ce8 100644
--- a/source/_components/switch.mqtt.markdown
+++ b/source/_components/switch.mqtt.markdown
@@ -33,6 +33,10 @@ switch:
```
{% configuration %}
+command_topic:
+ description: The MQTT topic to publish commands to change the switch state.
+ required: false
+ type: string
name:
description: The name to use when displaying this switch.
required: false
@@ -56,10 +60,6 @@ state_off:
required: false
type: string
default: "OFF"
-command_topic:
- description: The MQTT topic to publish commands to change the switch state.
- required: false
- type: string
availability_topic:
description: The MQTT topic subscribed to receive availability (online/offline) updates.
required: false
@@ -103,13 +103,17 @@ value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
required: false
type: string
+json_attributes_topic:
+ description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation.
+ required: false
+ type: string
device:
- description: 'Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set.'
+ description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set."
required: false
type: map
keys:
identifiers:
- description: 'A list of IDs that uniquely identify the device. For example a serial number.'
+ description: A list of IDs that uniquely identify the device. For example a serial number.
required: false
type: list, string
connections:
@@ -117,19 +121,19 @@ device:
required: false
type: list
manufacturer:
- description: 'The manufacturer of the device.'
+ description: The manufacturer of the device.
required: false
type: string
model:
- description: 'The model of the device.'
+ description: The model of the device.
required: false
type: string
name:
- description: 'The name of the device.'
+ description: The name of the device.
required: false
type: string
sw_version:
- description: 'The firmware version of the device.'
+ description: The firmware version of the device.
required: false
type: string
{% endconfiguration %}
@@ -140,7 +144,7 @@ Make sure that your topic matches exactly. `some-topic/` and `some-topic` are di
## {% linkable_title Examples %}
-In this section you will find some real-life examples of how to use this sensor.
+In this section, you will find some real-life examples of how to use this sensor.
### {% linkable_title Full configuration %}
@@ -163,20 +167,20 @@ switch:
retain: true
```
-For a check you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your switch manually:
+For a check, you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your switch manually:
```bash
-$ mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1 -m "ON"
+mosquitto_pub -h 127.0.0.1 -t home/bedroom/switch1 -m "ON"
```
### {% linkable_title Set the state of a device with ESPEasy %}
-Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example the topics are prefixed with "home". There is no further configuration needed as the [GPIOs](https://www.letscontrolit.com/wiki/index.php/GPIO) can be controlled with MQTT directly.
+Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.com/letscontrolit/ESPEasy). Under "Config" is a name ("Unit Name:") set for your device (here it's "bathroom"). A configuration for a "Controller" for MQTT with the protocol "OpenHAB MQTT" is present and the entries ("Controller Subscribe:" and "Controller Publish:") are adjusted to match your needs. In this example, the topics are prefixed with "home". There is no further configuration needed as the [GPIOs](https://www.letscontrolit.com/wiki/index.php/GPIO) can be controlled with MQTT directly.
Manually you can set pin 13 to high with `mosquitto_pub` or another MQTT tool:
```bash
-$ mosquitto_pub -h 127.0.0.1 -t home/bathroom/gpio/13 -m "1"
+mosquitto_pub -h 127.0.0.1 -t home/bathroom/gpio/13 -m "1"
```
The configuration will look like the example below:
@@ -193,4 +197,3 @@ switch:
payload_off: "0"
```
{% endraw %}
-
diff --git a/source/_components/switch.mysensors.markdown b/source/_components/switch.mysensors.markdown
index 91d5c2e17aa0..d4a360f87ec5 100644
--- a/source/_components/switch.mysensors.markdown
+++ b/source/_components/switch.mysensors.markdown
@@ -8,16 +8,20 @@ comments: false
sharing: true
footer: true
logo: mysensors.png
-ha_category: DIY
+ha_category:
+ - DIY
+ - Switch
featured: false
ha_iot_class: "Local Push"
---
Integrates MySensors switches into Home Assistant. See the [main component] for configuration instructions.
+## {% linkable_title Supported actuator types %}
+
The following actuator types are supported:
-##### MySensors version 1.4 and higher
+### {% linkable_title MySensors version 1.4 and higher %}
S_TYPE | V_TYPE
---------|-------------------
@@ -28,7 +32,7 @@ S_LIGHT | V_LIGHT
S_LOCK | V_LOCK_STATUS
S_IR | V_IR_SEND, V_LIGHT
-##### MySensors version 1.5 and higher
+### {% linkable_title MySensors version 1.5 and higher %}
S_TYPE | V_TYPE
-------------|----------------------
@@ -40,7 +44,7 @@ S_SOUND | V_ARMED
S_VIBRATION | V_ARMED
S_MOISTURE | V_ARMED
-##### MySensors version 2.0 and higher
+### {% linkable_title MySensors version 2.0 and higher %}
S_TYPE | V_TYPE
----------------|---------
@@ -50,7 +54,7 @@ All V_TYPES for each S_TYPE above are required to activate the actuator for the
For more information, visit the [serial api] of MySensors.
-### {% linkable_title Services %}
+## {% linkable_title Services %}
The MySensors switch platform exposes a service to change an IR code attribute for an IR switch device and turn the switch on. The IR switch will automatically be turned off after being turned on, if `optimistic` is set to `true` in the [config](/components/mysensors/#configuration) for the MySensors component. This will simulate a push button on a remote. If `optimistic` is `false`, the MySensors device will have to report its updated state to reset the switch. See the [example sketch](#ir-switch-sketch) for the IR switch below.
@@ -63,7 +67,7 @@ The service can be used as part of an automation script. For example:
```yaml
# Example configuration.yaml automation entry
automation:
- - alias: turn hvac on
+ - alias: Turn HVAC on
trigger:
platform: time
at: '5:30:00'
@@ -73,7 +77,7 @@ automation:
data:
V_IR_SEND: '0xC284' # the IR code to send
- - alias: turn hvac off
+ - alias: Turn HVAC off
trigger:
platform: time
at: '0:30:00'
@@ -84,9 +88,10 @@ automation:
V_IR_SEND: '0xC288' # the IR code to send
```
-### {% linkable_title Example sketches %}
+## {% linkable_title Example sketches %}
+
+### {% linkable_title Switch sketch %}
-#### {% linkable_title Switch sketch %}
```cpp
/*
* Documentation: http://www.mysensors.org
@@ -131,7 +136,8 @@ void incomingMessage(const MyMessage &message)
}
```
-#### {% linkable_title IR switch sketch %}
+### {% linkable_title IR switch sketch %}
+
```cpp
/*
* Documentation: http://www.mysensors.org
diff --git a/source/_components/switch.mystrom.markdown b/source/_components/switch.mystrom.markdown
index 8d2f93dc439d..1d7627af32f9 100644
--- a/source/_components/switch.mystrom.markdown
+++ b/source/_components/switch.mystrom.markdown
@@ -13,8 +13,7 @@ ha_release: 0.9
ha_iot_class: "Local Polling"
---
-
-The `mystrom` switch platform allows you to control the state of your [myStrom](https://mystrom.ch/en/) switches. The built-in sensor is measuring the power consumption while the switch is on.
+The `mystrom` switch platform allows you to control the state of your [myStrom](https://mystrom.ch/en/) switches. The built-in sensor is measuring the power consumption while the switch is on.
## {% linkable_title Setup %}
@@ -24,7 +23,6 @@ Make sure that you have enabled the REST API under **Advanced** in the web front
-
## {% linkable_title Configuration %}
To use your myStrom switch in your installation, add the following to your `configuration.yaml` file:
@@ -53,18 +51,18 @@ Check if you are able to access the device located at `http://IP_ADRRESS`. The d
```bash
$ curl -X GET -H "Content-Type: application/json" http://IP_ADDRESS/report
{
- "power": 0,
- "relay": false
+ "power": 0,
+ "relay": false
}
```
or change its state:
```bash
-$ curl -G -X GET http://IP_ADDRESS/relay -d 'state=1'
+curl -G -X GET http://IP_ADDRESS/relay -d 'state=1'
```
-### {% linkable_title Get the current power consumption %}
+## {% linkable_title Get the current power consumption %}
The switch is measuring the current power consumption. To expose this as a sensor use a [`template` sensor](/components/sensor.template/).
@@ -80,4 +78,3 @@ sensor:
value_template: "{{ states.switch.office.attributes.current_power_w }}"
```
{% endraw %}
-
diff --git a/source/_components/switch.neato.markdown b/source/_components/switch.neato.markdown
deleted file mode 100644
index 2f0e1e8d1eed..000000000000
--- a/source/_components/switch.neato.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "Neato Robotics Switch"
-description: "Instructions on how to integrate a Neato Botvac Connected switch within Home Assistant."
-date: 2016-10-19 17:10
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: neato.png
-ha_category: Switch
-ha_release: 0.31
----
-
-The `neato` switch platform allows you to enable or disable the schedule of your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/botvac-connected/).
-
-To add `neato` switch to your installation, follow instructions in [Neato component](/components/neato/).
diff --git a/source/_components/switch.pencom.markdown b/source/_components/switch.pencom.markdown
new file mode 100644
index 000000000000..7718b88d2a78
--- /dev/null
+++ b/source/_components/switch.pencom.markdown
@@ -0,0 +1,69 @@
+---
+layout: page
+title: "Pencom"
+description: "How to use Pencom Designs 8 channel relay boards."
+date: 2018-10-05 23:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: pencom.png
+ha_category: Switch
+ha_release: 0.85
+ha_iot_class: "Local Polling"
+---
+
+[Pencom Design](http://www.pencomdesign.com/) is a manufacturer of computer-controlled relay, I/O and custom boards for commercial and industrial applications. This interface to [Pencom's Relay Control Boards](https://www.pencomdesign.com/relay-boards/) is designed to work over an ethernet to serial adapter (NPort). Each switch (relay) can be turned on/off, and the state of the relay can be read.
+
+## {% linkable_title Configuration %}
+
+The Pencom relays can be daisy-chained to allow for up to 8 boards.
+
+``` yaml
+# Example configuration.yaml entry
+switch:
+ - platform: pencom
+ host: host.domain.com
+ port: 4001
+ boards: 2
+ relays:
+ - name: "Irrigation"
+ addr: 0
+ - name: "Upper Entry Door"
+ addr: 1
+ - name: "Fountain"
+ addr: 0
+ board: 2
+```
+
+{% configuration %}
+host:
+ description: The IP address of the ethernet to serial adapter. It is assumed that the adapter has been preconfigured.
+ required: true
+ type: string
+port:
+ description: The port of the ethernet to serial adapter.
+ required: true
+ type: port (positive integer between 1-65535)
+boards:
+ description: Number of boards daisy-chained together (default is 1).
+ required: false
+ type: int between 1 and 8
+relays:
+ description: List of relays.
+ required: true
+ type: list
+ keys:
+ name:
+ description: The name of the switch (component).
+ required: true
+ type: string
+ addr:
+ description: The relay on the board starting with 0.
+ required: true
+ type: int
+ board:
+ description: The board number (defaults to 1).
+ required: false
+ type: int between 1 and 8
+{% endconfiguration %}
diff --git a/source/_components/switch.pilight.markdown b/source/_components/switch.pilight.markdown
index 40bdbd0a86b9..89eee313b687 100644
--- a/source/_components/switch.pilight.markdown
+++ b/source/_components/switch.pilight.markdown
@@ -68,7 +68,7 @@ switches:
Variables for the different codes (`on_code` and `off_code`):
-- **protocol** (*Required*): Protocol to use, eg. `intertechno_old` or `daycom`.
+- **protocol** (*Required*): Protocol to use, e.g., `intertechno_old` or `daycom`.
- **systemcode** (*Optional*): The systemcode of the device.
- **unit** (*Optional*): The unit to use (is equivalent to `pilight-send --unit`).
- **unitcode** (*Optional*): The unitcode to use (is equivalent to `pilight-send --unitcode`).
diff --git a/source/_components/switch.qwikswitch.markdown b/source/_components/switch.qwikswitch.markdown
deleted file mode 100644
index 805e47d5fe5c..000000000000
--- a/source/_components/switch.qwikswitch.markdown
+++ /dev/null
@@ -1,21 +0,0 @@
----
-layout: page
-title: "QwikSwitch Switch"
-description: "Instructions on how to integrate QwikSwitch relays into Home Assistant."
-date: 2016-05-04 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: qwikswitch.png
-ha_category: Switch
-ha_iot_class: "Local Push"
-ha_release: "0.20"
----
-
-
-The `qwikswitch` platform allows you to control your [QwikSwitch](http://www.qwikswitch.co.za/) relays as switches from within Home Assistant.
-
-If the device name in the QS Mobile application ends with `Switch` it will be created as a switch, otherwise as a [light](/components/light.qwikswitch/).
-
-The platform is configured through the [QwikSwitch component](/components/qwikswitch/).
diff --git a/source/_components/switch.rachio.markdown b/source/_components/switch.rachio.markdown
deleted file mode 100644
index f9da8e15d1f5..000000000000
--- a/source/_components/switch.rachio.markdown
+++ /dev/null
@@ -1,51 +0,0 @@
----
-layout: page
-title: "Rachio Switch"
-description: "Instructions on how to use Rachio switches with Home Assistant."
-date: 2018-06-23 16:09
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: rachio.png
-ha_category: Irrigation
-ha_iot_class: "Cloud Push"
-ha_release: 0.46
----
-
-The `rachio` switch platform allows you to toggle zones connected to your [Rachio irrigation system](http://rachio.com/) on and off.
-
-Once configured, a switch will be added for every zone that is enabled on every controller in the account provided, as well as a switch to toggle each controller's standby mode.
-
-They will be automatically added if the [Rachio component](/components/rachio/) is loaded.
-
-## {% linkable_title Examples %}
-
-In this section, you find some real-life examples of how to use this switch.
-
-### {% linkable_title `groups.yaml` example %}
-
-```yaml
-irrigation:
- name: Irrigation
- icon: mdi:water-pump
- view: true
- entities:
- - group.zones_front
- - group.zones_back
- - switch.side_yard
-
-zones_front:
- name: Front Yard
- view: false
- entities:
- - switch.front_bushes
- - switch.front_yard
-
-zones_back:
- name: Back Yard
- view: false
- entities:
- - switch.back_garden
- - switch.back_porch
-```
diff --git a/source/_components/switch.rainmachine.markdown b/source/_components/switch.rainmachine.markdown
deleted file mode 100644
index 982220ccacb5..000000000000
--- a/source/_components/switch.rainmachine.markdown
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: page
-title: "RainMachine Switch"
-description: "Instructions on how to use RainMachine switches with Home Assistant."
-date: 2017-08-14 13:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: rainmachine.png
-ha_category: Irrigation
-ha_iot_class: "Cloud Polling"
-ha_release: 0.51
----
-
-The `rainmachine` switch platform allows you to control programs and zones
-within a [RainMachine smart Wi-Fi sprinkler controller](http://www.rainmachine.com/).
-
-
-You must have the [RainMachine component](https://www.home-assistant.io/components/rainmachine/)
-configured to use this platform. After configuring that component, switches will
-automatically appear.
-
-
-## {% linkable_title Controlling Your Device %}
-
-After Home Assistant loads, new switches will be added for every enabled
-program and zone. These work as expected:
-
-- Program On/Off: starts/stops a program
-- Zone On/Off: starts/stops a zone (using the `zone_run_time` parameter to
-determine how long to run for)
-
-Programs and zones are linked. While a program is running, you will see both
-the program and zone switches turned on; turning either one off will turn the
-other one off (just like in the web app).
diff --git a/source/_components/switch.raspihats.markdown b/source/_components/switch.raspihats.markdown
deleted file mode 100644
index 37f31ad59a43..000000000000
--- a/source/_components/switch.raspihats.markdown
+++ /dev/null
@@ -1,121 +0,0 @@
----
-layout: page
-title: "Raspihats Switch"
-description: "Instructions on how to integrate Raspihats add-on boards for Raspberry Pi into Home Assistant as a switch."
-date: 2017-05-15 04:20
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: raspihats.png
-ha_category: DIY
-ha_release: 0.45
-ha_iot_class: "Local Push"
----
-
-
-The `raspihats` switch platform allows you to control the digital outputs of your [raspihats](http://www.raspihats.com/) boards.
-
-## {% linkable_title Configuration %}
-
-To use your raspihats boards in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: raspihats
- i2c_hats:
- - board: DI6acDQ6rly
- address: 0x60
- channels:
- - index: 0
- name: Fan Office
- invert_logic: true
- initial_state: true
- - index: 1
- name: Light Office
-```
-
-{% configuration %}
-i2c_hats:
- description: An array of used I2C-HATs.
- required: false
- type: list
- keys:
- board:
- description: The board name.
- required: true
- type: string
- address:
- description: The board I2C address as HEX value.
- required: true
- type: string
- channels:
- description: An array of used digital input channels.
- required: true
- type: list
- keys:
- index:
- description: The digital input channel index.
- required: true
- type: integer
- name:
- description: The friendly name to use for the frontend.
- required: true
- type: string
- invert_logic:
- description: Inverts the input logic.
- required: false
- default: false
- type: boolean
- initial_state:
- description: "The initial state, can be either `true` or `false`. `none` means no state is forced on the corresponding digital output when this switch is instantiated."
- required: false
- default: None
- type: boolean
-{% endconfiguration %}
-
-## {% linkable_title Directions for installing smbus support on Raspberry Pi %}
-
-Enable I2c interface with the Raspberry Pi configuration utility:
-
-```bash
-# pi user environment: Enable i2c interface
-$ sudo raspi-config
-```
-
-Select `Interfacing options->I2C` choose `` and hit `Enter`, then go to `Finish`.
-
-Install dependencies for use the `smbus-cffi` module and enable your _homeassistant_ user to join the _i2c_ group:
-
-```bash
-# pi user environment: Install i2c dependencies and utilities
-$ sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev
-
-# pi user environment: Add homeassistant user to the i2c group
-$ sudo usermod -a -G i2c homeassistant
-```
-
-### {% linkable_title Check the i2c address of the sensor %}
-
-After installing `i2c-tools`, a new utility is available to scan the addresses of the connected sensors, so you can see the sensor address:
-
-```bash
-$ /usr/sbin/i2cdetect -y 1
-```
-
-It will output a table like this:
-
-```text
- 0 1 2 3 4 5 6 7 8 9 a b c d e f
-00: -- -- -- -- -- -- -- -- -- -- -- -- --
-10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
-30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- --
-50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-70: -- -- -- -- -- -- -- 77
-```
-
-For more details about the Raspihats add-on boards for Raspberry Pi, visit [raspihats.com](http://www.raspihats.com/).
diff --git a/source/_components/switch.raspyrfm.markdown b/source/_components/switch.raspyrfm.markdown
new file mode 100644
index 000000000000..0bbd4ac403e3
--- /dev/null
+++ b/source/_components/switch.raspyrfm.markdown
@@ -0,0 +1,123 @@
+---
+layout: page
+title: "RaspyRFM Switch"
+description: "Instructions on how to integrate RaspyRFM switches into Home Assistant."
+date: 2018-12-08
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: seegelsysteme.png
+ha_category: Switch
+ha_release: 0.85
+ha_iot_class: "Assumed State"
+---
+
+The `raspyrfm` component adds support for cheap RC 433 MHz outlets via one of the supported gateways.
+
+Initially, this component was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir though like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM/blob/master/connair.py) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi.
+
+Other vendors of 433 MHz RC outlets have also created gateways that use a very similar protocol and can also be used with this component like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html).
+
+## {% linkable_title Configuration %}
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ platform: raspyrfm
+ switches:
+ - controlunit_manufacturer: Intertechno
+ controlunit_model: CMR 1000
+ channel_config: # Note that keys used here vary between control units
+ master: A
+ slave: 1
+```
+
+{% configuration %}
+gateway_manufacturer:
+ description: Manufacturer of the gateway.
+ required: false
+ default: Seegel Systeme
+ type: string
+gateway_model:
+ description: Model of the gateway.
+ required: false
+ default: RaspyRFM
+ type: string
+host:
+ description: Host of the gateway.
+ required: false
+ default: 127.0.0.1
+ type: string
+port:
+ description: Port of the gateway.
+ required: false
+ default: Depends on the gateway model.
+ type: integer
+switches:
+ description: List of switches that can be controlled with this gateway.
+ required: true
+ type: list
+ keys:
+ name:
+ description: Name for the device.
+ required: false
+ default: Unnamed Device
+ type: string
+ controlunit_manufacturer:
+ description: Manufacturer of the control unit.
+ required: true
+ type: string
+ controlunit_model:
+ description: Model of the control unit.
+ required: true
+ type: string
+ channel_config:
+ description: Channel configuration of the control unit. The exact keys needed depend on the control unit manufacturer and model.
+ required: true
+ type: dict
+{% endconfiguration %}
+
+## {% linkable_title Device support %}
+
+Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to check what gateways and control units (outlets) are supported.
+
+## {% linkable_title Channel configuration %}
+
+Depending on the control unit the channel config can have varying formats. Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to find out about a specific model.
+
+## {% linkable_title Switch state %}
+
+Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend) the state is known and will be shown in the frontend.
+
+
+Note that due to the way those cheap RC units work it is **not possible to query their current state**. Therefore the only way to preserve a consistent state within Home Assistant is to only use Home Assistant as the controller.
+
+
+## {% linkable_title Full example %}
+
+```yaml
+switch:
+ platform: raspyrfm
+ gateway_manufacturer: Seegel Systeme
+ gateway_model: RaspyRFM
+ host: 127.0.0.1 # Optional
+ port: 49880 # Optional
+ switches:
+ - name: My Switch
+ controlunit_manufacturer: Intertechno
+ controlunit_model: CMR 1000
+ channel_config:
+ master: A
+ slave: 1
+ - name: My other Switch
+ controlunit_manufacturer: Brennenstuhl
+ controlunit_model: RCS 1000 N Comfort
+ channel_config:
+ 1: 1
+ 2: 1
+ 3: 1
+ 4: 1
+ 5: 1
+ CH: A
+```
diff --git a/source/_components/switch.recswitch.markdown b/source/_components/switch.recswitch.markdown
index e5f1ba62fc39..04cda5bcea89 100644
--- a/source/_components/switch.recswitch.markdown
+++ b/source/_components/switch.recswitch.markdown
@@ -17,10 +17,12 @@ ha_iot_class: "Local Polling"
The `recswitch` switch platform allows you to control the Ankuoo Rec Switch devices.
Supported devices (tested):
+
- Ankuoo RecSwitch MS6126
- Lumitek CSW201 NEO WiFi
+- MALMBERGS CSW201
-### {% linkable_title Configuration %}
+## {% linkable_title Configuration %}
To enable this switch, add the following lines to your `configuration.yaml`:
diff --git a/source/_components/switch.rest.markdown b/source/_components/switch.rest.markdown
index 8a74470eacf2..8ba4f4584b99 100644
--- a/source/_components/switch.rest.markdown
+++ b/source/_components/switch.rest.markdown
@@ -72,6 +72,11 @@ headers:
description: The headers for the request.
required: false
type: list, string
+verify_ssl:
+ description: Verify the SSL certificate of the endpoint.
+ required: false
+ type: boolean
+ default: true
{% endconfiguration %}
@@ -98,6 +103,7 @@ switch:
is_on_template: '{{ value_json.is_active }}'
headers:
Content-Type: application/json
+ verify_ssl: true
```
{% endraw %}
diff --git a/source/_components/switch.rflink.markdown b/source/_components/switch.rflink.markdown
index 0b8840479e28..10d6625ed1e6 100644
--- a/source/_components/switch.rflink.markdown
+++ b/source/_components/switch.rflink.markdown
@@ -12,107 +12,137 @@ ha_category: Switch
ha_release: 0.38
---
-The `rflink` component support devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
+The `rflink` component supports devices that use [RFLink gateway firmware](http://www.nemcon.nl/blog2/), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/nl/21-rflink-gateway). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
-First you have to set up your [rflink hub](/components/rflink/).
+First, you have to set up your [RFLink hub](/components/rflink/).
-The RFLink component does not know the difference between a `switch` and a `light`. Therefore all switchable devices are automatically added as `light` by default.
+The RFLink component does not know the difference between a `switch`, a `binary_sensor` and a `light`. Therefore all switchable devices are automatically added as `light` by default.
-RFLink switch/light ID's are composed of: protocol, id, switch. For example: `newkaku_0000c6c2_1`.
+RFLink binary_sensor/switch/light ID's are composed of: protocol, id, switch/channel. For example: `newkaku_0000c6c2_1`.
-Once the ID of a switch is known it can be used to configure it as a switch type in HA, for example to add it to a different group, hide it or configure a nice name.
+Once the ID of a switch is known, it can be used to configure it as a switch type in HA and, for example, to add it to a different group, hide it or configure a nice name.
-Configuring a device as switch with a nice name:
+Configuring devices as switch :
```yaml
# Example configuration.yaml entry
switch:
- platform: rflink
- device_defaults:
- fire_event: true
- signal_repetitions: 2
- devices:
- newkaku_0000c6c2_1:
- name: Ceiling fan
- conrad_00785c_0a:
- name: Motion sensor kitchen
-
+ - platform: rflink
+ devices:
+ newkaku_0000c6c2_1: {}
+ conrad_00785c_0a: {}
```
{% configuration %}
device_defaults:
- description: The defaults for all listed devices.
+ description: The defaults for the devices.
required: false
- type: list
+ type: map
keys:
fire_event:
- description: Set default `fire_event` for Rflink switch devices (see below).
+ description: Set default `fire_event` for RFLink switch devices (see below).
required: false
+ default: False
type: boolean
signal_repetitions:
- description: Set default `signal_repetitions` for Rflink switch devices (see below).
+ description: Set default `signal_repetitions` for RFLink switch devices (see below).
required: false
+ default: 1
type: integer
devices:
- description: A list of devices with their name to use in the frontend.
+ description: A list of switches.
required: false
type: list
keys:
- name:
- description: Name for the device.
- required: false
- default: Rflink ID
- type: string
- aliases:
- description: (deprecated) Alternative Rflink ID's this device is known by.
- required: false
- type: [list, string]
- group_aliases:
- description: "(deprecated) `aliases` which only respond to group commands."
- required: false
- type: [list, string]
- no_group_aliases:
- description: "(deprecated) `aliases` which do not respond to group commands."
- required: false
- type: [list, string]
- fire_event:
- description: Fire a `button_pressed` event if this device is turned on or off.
- required: false
- default: false
- type: boolean
- signal_repetitions:
- description: Set default `signal_repetitions` for RFLink switch devices (see below).
- required: false
- default: 1
- type: integer
- group:
- description: Allow light to respond to group commands (ALLON/ALLOFF).
- required: false
- default: true
- type: boolean
+ rflink_ids:
+ description: RFLink ID of the device
+ required: true
+ type: map
+ keys:
+ name:
+ description: Name for the device.
+ required: false
+ default: RFLink ID
+ type: string
+ aliases:
+ description: Alternative RFLink ID's this device is known by.
+ required: false
+ type: [list, string]
+ group_aliases:
+ description: "`aliases` which only respond to group commands."
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: "`aliases` which do not respond to group commands."
+ required: false
+ type: [list, string]
+ fire_event:
+ description: Fire a `button_pressed` event if this device is turned on or off.
+ required: false
+ default: false
+ type: boolean
+ signal_repetitions:
+ description: Set default `signal_repetitions` for RFLink switch devices (see below).
+ required: false
+ default: 1
+ type: integer
+ group:
+ description: Allow light to respond to group commands (ALLON/ALLOFF).
+ required: false
+ default: true
+ type: boolean
+ aliases:
+ description: "(**deprecated**) Alternative RFLink ID's this device is known by."
+ required: false
+ type: [list, string]
+ group_aliases:
+ description: "(**deprecated**) `aliases` which only respond to group commands."
+ required: false
+ type: [list, string]
+ no_group_aliases:
+ description: "(**deprecated**) `aliases` which do not respond to group commands."
+ required: false
+ type: [list, string]
{% endconfiguration %}
-### {% linkable_title Switch state %}
+## {% linkable_title Switch state %}
-Initially the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend.
+Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend or wireless remote) the state is known and will be shown in the frontend.
Sometimes a switch is controlled by multiple wireless remotes, each remote has its own code programmed in the switch. To allow tracking of the state when switched via other remotes add the corresponding remote codes as aliases:
```yaml
# Example configuration.yaml entry
switch:
- platform: rflink
- devices:
- newkaku_0000c6c2_1:
- name: Ceiling fan
- icon: mdi:fan
- aliases:
- - newkaku_000000001_2
- - kaku_000001_a
+ - platform: rflink
+ devices:
+ newkaku_0000c6c2_1:
+ name: Ceiling fan
+ aliases:
+ - newkaku_000000001_2
+ - kaku_000001_a
```
-Any on/off command from any alias ID updates the current state of the switch. However when sending a command through the frontend only the primary ID is used.
+Any on/off command from any alias ID updates the current state of the switch. However, when sending a command through the frontend only the primary ID is used.
-### {% linkable_title Device support %}
+## {% linkable_title Device support %}
See [device support](/components/rflink/#device-support)
+
+### {% linkable_title Additional configuration examples %}
+
+Multiple switches with signal repetitions and custom names
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: rflink
+ device_defaults:
+ fire_event: true
+ signal_repetitions: 2
+ devices:
+ newkaku_0000c6c2_1:
+ name: Ceiling fan
+ conrad_00785c_0a:
+ name: Motion sensor kitchen
+```
diff --git a/source/_components/switch.rfxtrx.markdown b/source/_components/switch.rfxtrx.markdown
index 02094e099d53..669ee3770f75 100644
--- a/source/_components/switch.rfxtrx.markdown
+++ b/source/_components/switch.rfxtrx.markdown
@@ -14,6 +14,8 @@ ha_release: 0.7.5
The `rfxtrx` platform support switches that communicate in the frequency range of 433.92 MHz.
+## {% linkable_title Configuration %}
+
First you have to set up your [rfxtrx hub](/components/rfxtrx/).
The easiest way to find your switches is to add this to your `configuration.yaml`:
@@ -21,10 +23,10 @@ The easiest way to find your switches is to add this to your `configuration.yaml
# Example configuration.yaml entry
switch:
platform: rfxtrx
- automatic_add: True
+ automatic_add: true
```
-Launch your Home Assistant and go the website.
+Launch your Home Assistant and go to the website.
Push your remote and your device should be added:
@@ -54,7 +56,7 @@ devices:
required: true
type: string
fire_event:
- description: Fires an event even if the state is the same as before, for example a doorbell switch. Can also be used for automations.
+ description: Fires an event even if the state is the same as before, for example, a doorbell switch. Can also be used for automations.
required: false
default: false
type: boolean
@@ -64,17 +66,17 @@ automatic_add:
default: false
type: boolean
signal_repetitions:
- description: Because the RFXtrx device sends its actions via radio and from most receivers it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
+ description: Because the RFXtrx device sends its actions via radio and from most receivers, it's impossible to know if the signal was received or not. Therefore you can configure the switch to try to send each signal repeatedly.
required: false
type: integer
{% endconfiguration %}
-This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `False`.
+This component and the [rfxtrx binary sensor](/components/binary_sensor.rfxtrx/) can steal each other's devices when setting the `automatic_add` configuration parameter to `true`. Set `automatic_add` only when you have some devices to add to your installation, otherwise leave it to `false`.
-If a device ID consists of only numbers, please make sure to surround it with quotes.
+If a device ID consists of only numbers, please make sure to surround it with quotes.
This is a known limitation in YAML, because the device ID will be interpreted as a number otherwise.
@@ -90,7 +92,7 @@ If you need to generate codes for switches you can use a template (useful for ex
```
- Use this code to add a new switch in your configuration.yaml
-- Launch your Home Assistant and go the website.
+- Launch your Home Assistant and go to the website.
- Enable learning mode on your switch (i.e. push learn button or plug it in a wall socket)
- Toggle your new switch in the Home Assistant interface
@@ -102,7 +104,7 @@ Basic configuration with 3 devices:
# Example configuration.yaml entry
switch:
platform: rfxtrx
- automatic_add: False
+ automatic_add: false
signal_repetitions: 2
devices:
0b1100ce3213c7f210010f70:
@@ -111,7 +113,7 @@ switch:
name: Movment2
0b1111e003af16aa10000060:
name: Door
- fire_event: True
+ fire_event: true
```
Light hallway if doorbell is pressed (when is sun down):
@@ -120,7 +122,7 @@ Light hallway if doorbell is pressed (when is sun down):
# Example configuration.yaml entry
switch:
platform: rfxtrx
- automatic_add: False
+ automatic_add: false
devices:
0710014c440f0160:
name: Hall
@@ -129,7 +131,7 @@ switch:
fire_event: true
automation:
- - alias: Switch light on when door bell rings if sun is below horizon and light was off
+ - alias: Switch the light on when doorbell rings if the sun is below the horizon and the light was off
trigger:
platform: event
event_type: button_pressed
@@ -154,7 +156,7 @@ Use remote to enable scene (using event_data):
# Example configuration.yaml entry
switch:
platform: rfxtrx
- automatic_add: False
+ automatic_add: false
devices:
0b1100ce3213c7f210010f70:
name: Light1
diff --git a/source/_components/switch.rpi_gpio.markdown b/source/_components/switch.rpi_gpio.markdown
deleted file mode 100644
index 901734b1ee04..000000000000
--- a/source/_components/switch.rpi_gpio.markdown
+++ /dev/null
@@ -1,64 +0,0 @@
----
-layout: page
-title: "Raspberry Pi GPIO Switch"
-description: "Instructions on how to integrate the GPIO of a Raspberry Pi into Home Assistant as a switch."
-date: 2015-08-07 14:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: raspberry-pi.png
-ha_category: DIY
-ha_release: pre 0.7
-ha_iot_class: "Local Push"
----
-
-
-The `rpi_gpio` switch platform allows you to control the GPIOs of your [Raspberry Pi](https://www.raspberrypi.org/).
-
-## {% linkable_title Configuration %}
-
-To use your Raspberry Pi's GPIO in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: rpi_gpio
- ports:
- 11: Fan Office
- 12: Light Desk
-```
-
-{% configuration %}
-ports:
- description: Array of used ports.
- required: true
- type: list
- keys:
- port:
- description: Port numbers and corresponding names (GPIO #).
- required: true
- type: [integer, string]
-invert_logic:
- description: If true, inverts the output logic to ACTIVE LOW.
- required: false
- default: false
- type: boolean
-{% endconfiguration %}
-
-For more details about the GPIO layout, visit the Wikipedia [article](https://en.wikipedia.org/wiki/Raspberry_Pi#GPIO_connector) about the Raspberry Pi.
-
-
-Note that a pin managed by HASS is expected to be exclusive to HASS.
-
-
-A common question is what does Port refer to, this number is the actual GPIO # not the pin #.
-For example, if you have a relay connected to pin 11 its GPIO # is 17.
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: rpi_gpio
- ports:
- 17: Speaker Relay
-```
diff --git a/source/_components/switch.rpi_rf.markdown b/source/_components/switch.rpi_rf.markdown
index 0c7b52f53b18..1bc16d72f7fd 100644
--- a/source/_components/switch.rpi_rf.markdown
+++ b/source/_components/switch.rpi_rf.markdown
@@ -13,7 +13,6 @@ ha_release: 0.19
ha_iot_class: "Assumed state"
---
-
The `rpi_rf` switch platform allows you to control devices over 433/315MHz LPD/SRD signals with generic low-cost GPIO RF modules on a [Raspberry Pi](https://www.raspberrypi.org/).
Interoperable with codes sniffed via [the rpi-rf module](https://pypi.python.org/pypi/rpi-rf) or [rc-switch](https://github.com/sui77/rc-switch).
@@ -72,11 +71,11 @@ switches:
default: 1
type: integer
pulselength:
- description: Pulselength
+ description: Pulselength.
required: false
type: integer
signal_repetitions:
- description: Number of times to repeat transmission
+ description: Number of times to repeat transmission.
required: false
default: 10
type: integer
diff --git a/source/_components/switch.scsgate.markdown b/source/_components/switch.scsgate.markdown
deleted file mode 100644
index 1f0cdb6cf840..000000000000
--- a/source/_components/switch.scsgate.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: page
-title: "SCSGate Switch"
-description: "Instructions on how to integrate SCSGate switches into Home Assistant."
-date: 2016-01-31 22:15
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: bus_scs.png
-ha_category: Switch
-ha_release: 0.13
-ha_iot_class: "Local Polling"
----
-
-The SCSGate device can control switches of the BTicino MyHome system.
-
-To enable SCSGate switches in your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: scsgate
- devices:
- living_room:
- scs_id: XXXXX
-```
-
-{% configuration %}
-devices:
- description: A list of devices with their name to use in the frontend.
- required: true
- type: list
-{% endconfiguration %}
diff --git a/source/_components/switch.skybell.markdown b/source/_components/switch.skybell.markdown
deleted file mode 100644
index 8bf27738c332..000000000000
--- a/source/_components/switch.skybell.markdown
+++ /dev/null
@@ -1,41 +0,0 @@
----
-layout: page
-title: "Skybell Switch"
-description: "Instructions on how to integrate your Skybell HD devices within Home Assistant."
-date: 2017-10-03 16:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: skybell.png
-ha_category: Switch
-ha_release: 0.56
-ha_iot_class: "Cloud Polling"
----
-
-To get your [Skybell.com](https://skybell.com/) switches working within Home Assistant, please follow the instructions for the general [Skybell component](/components/skybell).
-
-## {% linkable_title Configuration %}
-
-Once you have enabled the [Skybell component](/components/skybell), add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: skybell
- monitored_conditions:
- - do_not_disturb
- - motion_sensor
-```
-
-{% configuration %}
-monitored_conditions:
- description: Conditions to display in the frontend.
- required: true
- type: list
- keys:
- do_not_disturb:
- description: Control the state of your doorbells indoor chime.
- motion_sensor:
- description: Control the state of your doorbells motion sensor.
-{% endconfiguration %}
diff --git a/source/_components/switch.smappee.markdown b/source/_components/switch.smappee.markdown
deleted file mode 100644
index 0576738e51ae..000000000000
--- a/source/_components/switch.smappee.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Smappee Switch"
-description: "Instructions on how to integrate Smappee Comfort Plug into Home Assistant."
-date: 2018-02-26 08:37
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: smappee.png
-ha_release: "0.64"
-ha_category: Switch
-ha_iot_class: "Local Push"
----
-
-[Smappee](https://www.smappee.com/) controller for energy monitoring and Comport plug switches.
-
-Comport Plugs will be automatically added when you connect to the Smappee controller.
-
-For more configuration information see the [Smappee component](/components/smappee/) documentation.
diff --git a/source/_components/switch.sony_projector.markdown b/source/_components/switch.sony_projector.markdown
new file mode 100644
index 000000000000..298454f34435
--- /dev/null
+++ b/source/_components/switch.sony_projector.markdown
@@ -0,0 +1,39 @@
+---
+layout: page
+title: "Sony Projector Switch"
+description: "Instructions on how to integrate Sony Projector switches into Home Assistant."
+date: 2019-01-01 07:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: sony.png
+ha_category: Multimedia
+ha_iot_class: "Local Polling"
+ha_release: 0.89
+---
+
+The `sony_projector` switch platform allows you to control the state of SDCP compatible network-connected projectors from [Sony](http://www.sony.com).
+
+## {% linkable_title Configuration %}
+
+To use your Sony Projector in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: sony_projector
+ host: "192.168.1.47"
+ name: "Projector"
+```
+
+{% configuration %}
+host:
+ description: The hostname or IP address of the projector.
+ required: true
+ type: string
+name:
+ description: The name to use when displaying this switch.
+ required: false
+ type: string
+{% endconfiguration %}
diff --git a/source/_components/switch.spider.markdown b/source/_components/switch.spider.markdown
deleted file mode 100644
index a38456e927b0..000000000000
--- a/source/_components/switch.spider.markdown
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: page
-title: "Spider Power Plug"
-description: "Instructions on how to integrate Spider power plugs within Home Assistant."
-date: 2018-07-26 22:01
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: spider.png
-ha_category: Switch
-ha_iot_class: "Cloud Polling"
-ha_release: 0.75
----
-
-The `spider` power plug platform allows you to control your power plugs. It also shows you your current and daily energy usage by the power plug.
-
-
-Full configuration details can be found on the main [Spider component](/components/spider/) page.
-
-
-
-This component is not affiliated with Itho Daalderop Spider and retrieves data from the endpoints of the mobile application. Use at your own risk.
-
diff --git a/source/_components/switch.switchbot.markdown b/source/_components/switch.switchbot.markdown
index ff7e8911b503..a87273de79cd 100644
--- a/source/_components/switch.switchbot.markdown
+++ b/source/_components/switch.switchbot.markdown
@@ -13,7 +13,7 @@ ha_release: 0.78
ha_iot_class: "Local Polling"
---
-This `Switchbot` switch platform allow you to control Switchbot [devices]( https://www.switch-bot.com/).
+This `Switchbot` switch platform allows you to control Switchbot [devices]( https://www.switch-bot.com/).
To enable it, add the following lines to your `configuration.yaml`:
@@ -31,5 +31,5 @@ mac:
name:
description: The name used to display the switch in the frontend.
required: false
- type: string
+ type: string
{% endconfiguration %}
diff --git a/source/_components/switch.switchmate.markdown b/source/_components/switch.switchmate.markdown
index bfc26d496c9c..03e67161ca67 100644
--- a/source/_components/switch.switchmate.markdown
+++ b/source/_components/switch.switchmate.markdown
@@ -15,6 +15,8 @@ ha_iot_class: "Local Polling"
This `Switchmate` switch platform allows you to control Switchmate [devices]( https://www.mysimplysmarthome.com/products/switchmate-switches/).
+## {% linkable_title Configuration %}
+
To enable it, add the following lines to your `configuration.yaml`:
```yaml
@@ -31,13 +33,12 @@ mac:
name:
description: The name used to display the switch in the frontend.
required: false
- type: string
+ type: string
flip_on_off:
description: Option to flip the on/off state.
required: false
- type: boolean
+ type: boolean
default: false
{% endconfiguration %}
-
The component is tested with SwitchMate Lighting Control Rocker and SwitchMate Lighting Control Toggle.
diff --git a/source/_components/switch.tahoma.markdown b/source/_components/switch.tahoma.markdown
deleted file mode 100644
index a7c3338fee4f..000000000000
--- a/source/_components/switch.tahoma.markdown
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: page
-title: "Tahoma Switch"
-description: "Instructions on how to integrate Tahoma switches into Home Assistant."
-date: 2017-07-18 12:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tahoma.png
-ha_category: Sensor
-ha_release: 0.59
----
-
-The `tahoma` switch platform lets you see switches added to your Tahoma Box in Home Assistant.
-
-Switches will be added automatically. Please refer to the [component](/components/tahoma/) configuration on how to setup Tahoma.
diff --git a/source/_components/switch.tellduslive.markdown b/source/_components/switch.tellduslive.markdown
deleted file mode 100644
index 1cfa2c6fc860..000000000000
--- a/source/_components/switch.tellduslive.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "Telldus Live Switch"
-description: "Instructions on how to integrate Telldus Live switches into Home Assistant."
-date: 2016-01-17 15:49
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: telldus.png
-ha_category: Switch
-featured: false
----
-
-Integrates Telldus Live switches into Home Assistant. See the [main component](/components/tellduslive/) for configuration instructions.
-
diff --git a/source/_components/switch.tellstick.markdown b/source/_components/switch.tellstick.markdown
deleted file mode 100644
index 9de976af4bac..000000000000
--- a/source/_components/switch.tellstick.markdown
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: page
-title: "TellStick Switch"
-description: "Instructions on how to integrate TellStick switches into Home Assistant."
-date: 2015-08-06 19:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: telldus_tellstick.png
-ha_category: Switch
-ha_iot_class: "Assumed State"
----
-
-
-This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices.
-
-To use your TellStick device, you first have to set up your [Tellstick hub](/components/tellstick/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: tellstick
-```
diff --git a/source/_components/switch.template.markdown b/source/_components/switch.template.markdown
index e3badda4bccd..2107a7280b96 100644
--- a/source/_components/switch.template.markdown
+++ b/source/_components/switch.template.markdown
@@ -37,7 +37,7 @@ switch:
data:
entity_id: switch.skylight_open
turn_off:
- service: switch.turn_on
+ service: switch.turn_off
data:
entity_id: switch.skylight_close
```
diff --git a/source/_components/switch.tesla.markdown b/source/_components/switch.tesla.markdown
deleted file mode 100644
index 5b184f2fa46a..000000000000
--- a/source/_components/switch.tesla.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Tesla Switch"
-description: "Instructions on how to integrate Tesla charging switch into Home Assistant."
-date: 2017-09-19 12:20
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tesla.png
-ha_category: Car
-ha_iot_class: "Cloud Push"
-ha_release: 0.54
----
-
-The `tesla` platform allows you to control your [Tesla](https://www.tesla.com/) charger (enable/disable charging, max range switch) from within Home Assistant.
-
-The switch platform will be automatically configured if the `tesla` component is configured.
-
-For more configuration information see the [`tesla` component](/components/tesla/) documentation.
diff --git a/source/_components/switch.toon.markdown b/source/_components/switch.toon.markdown
deleted file mode 100644
index 744622da7869..000000000000
--- a/source/_components/switch.toon.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Toon Smart Plugs"
-description: "Instructions on how to integrate Toon smart plugs within Home Assistant."
-date: 2017-10-22 12:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Switch
-ha_release: 0.56
-logo: toon.png
-ha_iot_class: "Cloud Polling"
----
-
-The `toon` switch platform allows you to control your smart plugs if they are connected to Toon.
-
-The requirement is that you have setup the [`toon`](/components/toon/) component.
diff --git a/source/_components/switch.tplink.markdown b/source/_components/switch.tplink.markdown
index fd282c5bbbe1..f12e56293389 100644
--- a/source/_components/switch.tplink.markdown
+++ b/source/_components/switch.tplink.markdown
@@ -18,6 +18,7 @@ The `tplink` switch platform allows you to control the state of your [TP-Link sm
Supported units:
- HS100
+- HS103
- HS105
- HS110
- HS200
@@ -40,7 +41,7 @@ name:
type: string
default: TP-Link Switch
host:
- description: "The IP address of your TP-Link switch, eg. `192.168.1.32`."
+ description: "The IP address of your TP-Link switch, e.g., `192.168.1.32`."
required: true
type: string
enable_leds:
@@ -62,7 +63,7 @@ switch:
host: SECOND_IP_ADDRESS
```
-## {% linkable_title Configure Energy Sensors %} ##
+## {% linkable_title Configure Energy Sensors %}
In order to get the power consumption readings from the HS110, you'll have to create a [template sensor](/components/switch.template/). In the example below, change all of the `my_tp_switch`'s to match your switch's entity ID.
diff --git a/source/_components/switch.tradfri.markdown b/source/_components/switch.tradfri.markdown
deleted file mode 100644
index 950695706642..000000000000
--- a/source/_components/switch.tradfri.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "IKEA Trådfri Switch"
-description: "Access and control your Zigbee-based IKEA Trådfri (Tradfri) Switches."
-date: 2018-09-30 19.22
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: ikea.svg
-ha_category: Switch
-ha_iot_class: "Local Polling"
-ha_release: 0.80
----
-
-For installation instructions, see [the Trådfri component](/components/tradfri/).
diff --git a/source/_components/switch.transmission.markdown b/source/_components/switch.transmission.markdown
deleted file mode 100644
index cf7db2f2f321..000000000000
--- a/source/_components/switch.transmission.markdown
+++ /dev/null
@@ -1,51 +0,0 @@
----
-layout: page
-title: "Transmission Switch"
-description: "Instructions on how to integrate Transmission within Home Assistant."
-date: 2015-06-02 09:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: transmission.png
-ha_category: Downloading
-ha_release: pre 0.7
-ha_iot_class: "Local Polling"
----
-
-
-The `transmission` switch platform allows you to control your [Transmission](http://www.transmissionbt.com/) client from within Home Assistant. The platform enables you switch to your 'Alternative Speed Limits' (aka 'Turtle mode') setting.
-
-To add Transmission to your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- platform: transmission
- host: IP_ADDRESS
-```
-
-{% configuration %}
-host:
- required: true
- type: string
- description: This is the IP address of your Transmission daemon, e.g., 192.168.1.32.
-port:
- required: false
- type: integer
- default: 9091
- description: The port your Transmission daemon uses.
-name:
- required: false
- type: string
- default: Transmission Turtle Mode
- description: The name to use when displaying this Transmission instance.
-username:
- required: false
- type: string
- description: Your Transmission username, if you use authentication.
-password:
- required: false
- type: string
- description: Your Transmission password, if you use authentication.
-{% endconfiguration %}
diff --git a/source/_components/switch.tuya.markdown b/source/_components/switch.tuya.markdown
deleted file mode 100644
index 6f081aee6cde..000000000000
--- a/source/_components/switch.tuya.markdown
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: page
-title: "Tuya Switch"
-description: "Instructions on how to setup the Tuya switch within Home Assistant."
-date: 2018-07-09 09:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: tuya.png
-ha_category: Switch
-ha_iot_class: "Cloud Polling"
-ha_release: 0.74
----
-
-
-The `tuya` switch platform allows you to control your [Tuya Smart](https://www.tuya.com) switch.
-
-The platform supports switch and socket.
-
-
-Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
-
\ No newline at end of file
diff --git a/source/_components/switch.unifi.markdown b/source/_components/switch.unifi.markdown
deleted file mode 100644
index 40376ec6daf7..000000000000
--- a/source/_components/switch.unifi.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "UniFi Switches"
-description: "Instructions on how to integrate POE control switches from UniFi into Home Assistant."
-date: 2018-10-15 22:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: ubiquiti.png
-ha_category: Switch
-ha_release: "0.81"
-ha_iot_class: "Local Polling"
----
-
-See the [UniFi main component](/components/unifi/) for configuration instructions.
-
-Switches are network devices that are powered by POE switches from Ubuiqitis UniFi line of networking gear.
-
-Note that POE control actually configures the network port of the switch which the device is connected to.
diff --git a/source/_components/switch.upcloud.markdown b/source/_components/switch.upcloud.markdown
deleted file mode 100644
index bdd03f6af5e6..000000000000
--- a/source/_components/switch.upcloud.markdown
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: page
-title: UpCloud Switch
-description: Instructions on how to set up UpCloud switches within Home Assistant.
-date: 2018-01-28 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: upcloud.png
-ha_category: System Monitor
-ha_release: 0.65
-ha_iot_class: Cloud Polling
----
-
-The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers.
-
-## {% linkable_title Configuration %}
-
-To use your UpCloud servers, you first have to set up your [UpCloud hub](/components/upcloud/) and then add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: upcloud
- servers:
- - 002167b7-4cb1-44b7-869f-e0900ddeeae1
- - 00886296-6137-4074-afe3-068e16d89d00
-```
-
-{% configuration %}
-servers:
- description: List of servers you want to control.
- required: true
- type: list
-{% endconfiguration %}
diff --git a/source/_components/switch.velbus.markdown b/source/_components/switch.velbus.markdown
deleted file mode 100644
index 10062bddfc13..000000000000
--- a/source/_components/switch.velbus.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: "Velbus Switches"
-description: "Access and control your Velbus Switches."
-date: 2017-06-17 16.58
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: velbus.png
-ha_category: Switch
-ha_iot_class: "Local Push"
-ha_release: "0.50"
----
-
-The `velbus` switch allows you to control [Velbus](http://www.velbus.eu) connected switches.
-
-For hub configuration, see [the Velbus component](/components/velbus/).
diff --git a/source/_components/switch.vera.markdown b/source/_components/switch.vera.markdown
deleted file mode 100644
index e515a8d74c3f..000000000000
--- a/source/_components/switch.vera.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Vera Switch"
-description: "Instructions on how to integrate Vera switches into Home Assistant."
-date: 2015-10-20 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: vera.png
-ha_category: Switch
-ha_iot_class: "Local Push"
-ha_release: pre 0.7
----
-
-The `vera` platform allows you to control your [Vera](http://getvera.com/) switches from within Home Assistant.
-
-They will be automatically discovered if the vera component is loaded.
-
-For more configuration information see the [Vera component](/components/vera/) documentation.
diff --git a/source/_components/switch.verisure.markdown b/source/_components/switch.verisure.markdown
deleted file mode 100644
index c84b3739f812..000000000000
--- a/source/_components/switch.verisure.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: "Verisure SmartPlug"
-description: "Instructions on how to setup the Verisure SmartPlug within Home Assistant."
-date: 2016-02-15 22:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: verisure.png
-ha_category: Switch
-ha_iot_class: "Cloud Polling"
----
-
-
-The Verisure switch platform allows you to control your [Verisure](https://www.verisure.com/) SmartPlugs.
-
-The requirement is that you have setup your [Verisure hub](/components/verisure/).
-
diff --git a/source/_components/switch.vesync.markdown b/source/_components/switch.vesync.markdown
index b02f476e93e1..6d11779b6fe6 100644
--- a/source/_components/switch.vesync.markdown
+++ b/source/_components/switch.vesync.markdown
@@ -16,6 +16,8 @@ The `vesync` switch platform enables integration with Etekcity VeSync smart swit
VeSync switches are low-cost wifi smart plugs that offer energy monitoring and work with popular voice assistants.
+## {% linkable_title Configuration %}
+
To use your VeSync switches, you must first register your switches with the VeSync app. Once registration is complete you must add the following to your `configuration.yaml` file:
```yaml
@@ -37,7 +39,7 @@ password:
type: string
{% endconfiguration %}
-### {% linkable_title Exposed Attributes %}
+## {% linkable_title Exposed Attributes %}
VeSync switches will expose the following details.
diff --git a/source/_components/switch.vultr.markdown b/source/_components/switch.vultr.markdown
deleted file mode 100644
index c02e5273b1e2..000000000000
--- a/source/_components/switch.vultr.markdown
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: page
-title: "Vultr Switch"
-description: "Instructions on how to set up Vultr switches within Home Assistant."
-date: 2017-10-17 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: vultr.png
-ha_category: System Monitor
-ha_release: "0.58"
-ha_iot_class: "Cloud Polling"
----
-
-The `vultr` switch platform allows you to control (start/stop) your [Vultr](https://www.vultr.com/) subscription.
-
-To control your Vultr subscription, you first have to set up your [Vultr hub](/components/vultr/).
-
-
-The following examples assume a subscription that has an ID of `123456` and a label of `Web Server`
-
-
-Minimal `configuration.yaml` (produces `switch.vultr_web_server`):
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: vultr
- subscription: 123456
-```
-
-{% configuration %}
-subscription:
- description: List of droplets you want to control.
- required: true
- type: string
-name:
- description: The name you want to give this switch.
- required: false
- default: "Vultr {subscription label}"
- type: string
-{% endconfiguration %}
-
-
-Full `configuration.yaml` (produces `switch.amazing_server`):
-
-```yaml
-switch:
- - platform: vultr
- name: Amazing Server
- subscription: 123456
-```
-
-
diff --git a/source/_components/switch.wemo.markdown b/source/_components/switch.wemo.markdown
deleted file mode 100644
index 6bca30af1a25..000000000000
--- a/source/_components/switch.wemo.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "Belkin WeMo Switch"
-description: "Instructions on how to integrate Belkin WeMo switches into Home Assistant."
-date: 2016-02-20 00:47
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: belkin_wemo.png
-ha_category: Switch
-ha_iot_class: "Local Push"
----
-
-
-The `wemo` platform allows you to control your [Belkin WeMo](http://www.belkin.com/us/p/P-F7C027/) switches from within Home Assistant. This includes support for Wemo enabled [Mr. Coffee](http://www.mrcoffee.com/wemo-landing-page.html) smart coffee makers.
-
-They will be automatically discovered if the discovery component is enabled.
-
-For more configuration information see the [WeMo component](/components/wemo/) documentation.
diff --git a/source/_components/switch.wink.markdown b/source/_components/switch.wink.markdown
deleted file mode 100644
index 9a026077925c..000000000000
--- a/source/_components/switch.wink.markdown
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: page
-title: "Wink Switch"
-description: "Instructions on how to setup the Wink switches within Home Assistant."
-date: 2015-01-20 22:36
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: wink.png
-ha_category: Switch
-ha_release: pre 0.7
-ha_iot_class: "Cloud Polling"
----
-
-
-The Wink switch platform allows you to control your [Wink](http://www.wink.com/) switches.
-
-The requirement is that you have setup [Wink](/components/wink/).
-
-
-### Supported switch devices
-
-- Wink Pivot power genius (No Wink hub required)
-- non-dimming Z-wave in wall switches (dimming switches show up as lights)
-- Wink Relay load controlling switches
-- Rachio sprinkler controller (No Wink hub required)
-- iHome smart plug (No Wink hub required)
-- Wink switch groups (User created groups of switches)
-
diff --git a/source/_components/switch.wirelesstag.markdown b/source/_components/switch.wirelesstag.markdown
deleted file mode 100644
index 1721d2bf822c..000000000000
--- a/source/_components/switch.wirelesstag.markdown
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: page
-title: "WirelessTag Switch"
-description: "Instructions on how to integrate your Wireless Tags sensors within Home Assistant."
-date: 2018-03-26 21:52
-comments: false
-sidebar: true
-sharing: true
-footer: true
-logo: wirelesstag.png
-ha_category: Switch
-ha_iot_class: "Local Push and Cloud Polling"
-ha_release: 0.68
----
-
-To get your [wirelesstag.net](http://wirelesstag.net) switches working within Home Assistant, please follow the instructions for the general [WirelessTag component](/components/wirelesstag).
-
-To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: wirelesstag
- monitored_conditions:
- - motion
- - humidity
-```
-
-{% configuration %}
-monitored_conditions:
- description: The metrics types to control.
- required: true
- type: list
- keys:
- temperature:
- description: Control arm/disarm temperature monitoring.
- humidity:
- description: Control arm/disarm humidity monitoring.
- motion:
- description: Control arm/disarm motion and door open/close events monitoring.
- light:
- description: Control monitoring of light changes.
- moisture:
- description: Control monitoring of water level/soil moisture for water sensor.
-{% endconfiguration %}
-
-Arm/Disarm of motion switch is required to receive motion and door binary sensors events.
-Others are only needed if you want to receive push notifications from tags on a specific range of changes in temperature, humidity, light or moisture.
diff --git a/source/_components/switch.xiaomi_aqara.markdown b/source/_components/switch.xiaomi_aqara.markdown
index 0306ba29213e..b19adf44314a 100644
--- a/source/_components/switch.xiaomi_aqara.markdown
+++ b/source/_components/switch.xiaomi_aqara.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Xiaomi Switch"
-description: "Instructions on how to setup the Xiaomi switch within Home Assistant."
+description: "Instructions on how to set up the Xiaomi switch within Home Assistant."
date: 2017-07-21 16:34
sidebar: true
comments: false
@@ -13,8 +13,6 @@ ha_release: "0.50"
ha_iot_class: "Local Push"
---
+The `xiaomi_aqara` switch platform allows you to get data from your [Xiaomi aqara](http://www.mi.com/en/) switches.
-The `xiaomi aqara` switch platform allows you to get data from your [Xiaomi aqara](http://www.mi.com/en/) switches.
-
-The requirement is that you have setup [Xiaomi aqara](/components/xiaomi_aqara/).
-
+The requirement is that you have set up [Xiaomi aqara](/components/xiaomi_aqara/).
diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown
index efe0e9c89fdb..0b88bcf52945 100644
--- a/source/_components/switch.xiaomi_miio.markdown
+++ b/source/_components/switch.xiaomi_miio.markdown
@@ -17,50 +17,50 @@ The `xiaomi_miio` switch platform allows you to control the state of your Xiaomi
Please follow the instructions on [Retrieving the Access Token](/components/vacuum.xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
-## Features
+## {% linkable_title Features %}
-### Xiaomi Smart WiFi Socket
+### {% linkable_title Xiaomi Smart WiFi Socket %}
-Supported models: `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205`
+Supported models: `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.hmi205`
-* Power (on, off)
-* Attributes
+- Power (on, off)
+- Attributes
- Temperature
-### Xiaomi Chuangmi Plug V1
+### {% linkable_title Xiaomi Chuangmi Plug V1 %}
Supported models: `chuangmi.plug.v1`, `chuangmi.plug.v3`
-* Power (on, off)
-* USB (on, off)
-* Attributes
+- Power (on, off)
+- USB (on, off)
+- Attributes
- Temperature
-### Xiaomi Smart Power Strip
+### {% linkable_title Xiaomi Smart Power Strip %}
Supported models: `qmi.powerstrip.v1`, `zimi.powerstrip.v2`
-* Power (on, off)
-* Wifi LED (on, off)
-* Power Price (0...999)
-* Power Mode (green, normal) (Power Strip V1 only)
-* Attributes
+- Power (on, off)
+- Wifi LED (on, off)
+- Power Price (0...999)
+- Power Mode (green, normal) (Power Strip V1 only)
+- Attributes
- Temperature
- Current
- Load power
- Wifi LED
- Mode (Power Strip V1 only)
+## {% linkable_title Configuration %}
+
To add a plug to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entries
switch:
- platform: xiaomi_miio
- name: Original Xiaomi Mi Smart WiFi Socket
- host: 192.168.130.59
+ host: MIIO_IP_ADDRESS
token: YOUR_TOKEN
- model: chuangmi.plug.m1
```
{% configuration %}
@@ -78,7 +78,7 @@ name:
type: string
default: Xiaomi Miio Switch
model:
- description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
+ description: The model of your miio device. Valid values are `chuangmi.plug.v1`, `qmi.powerstrip.v1`, `zimi.powerstrip.v2`, `chuangmi.plug.m1`, `chuangmi.plug.m3`, `chuangmi.plug.v2`, `chuangmi.plug.v3` and `chuangmi.plug.hmi205`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}
@@ -91,7 +91,7 @@ Turn the wifi led on.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
-| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
+| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. |
### {% linkable_title Service `switch.xiaomi_miio_set_wifi_led_off` %} (Power Strip only)
@@ -99,7 +99,7 @@ Turn the wifi led off.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
-| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
+| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. |
### {% linkable_title Service `switch.xiaomi_miio_set_power_price` %} (Power Strip)
@@ -107,7 +107,7 @@ Set the power price.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------|
-| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
+| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. |
| `price` | no | Power price, between 0 and 999. |
### {% linkable_title Service `switch.xiaomi_miio_set_power_mode` %} (Power Strip V1 only)
@@ -116,5 +116,5 @@ Set the power mode.
| Service data attribute | Optional | Description |
|---------------------------|----------|---------------------------------------------------------------|
-| `entity_id` | yes | Only act on a specific xiaomi miio switch entity. Else targets all. |
+| `entity_id` | yes | Only act on a specific Xiaomi miio switch entity. Else targets all. |
| `mode` | no | Power mode, valid values are 'normal' and 'green' |
diff --git a/source/_components/switch.zha.markdown b/source/_components/switch.zha.markdown
deleted file mode 100644
index e23f6751ff39..000000000000
--- a/source/_components/switch.zha.markdown
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: page
-title: "Zigbee Home Automation Switch"
-description: "Instructions on how to setup Zigbee Home Automation switches within Home Assistant."
-date: 2017-02-22 00:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: zigbee.png
-ha_category: Switch
-ha_iot_class: "Local Polling"
----
-
-To get your Zigbee switches working with Home Assistant, follow the instructions for the general [Zigbee Home Automation component](/components/zha/).
diff --git a/source/_components/switch.zoneminder.markdown b/source/_components/switch.zoneminder.markdown
deleted file mode 100644
index f194544715cd..000000000000
--- a/source/_components/switch.zoneminder.markdown
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: page
-title: "ZoneMinder Switch"
-description: "How to toggle the function of ZoneMinder monitors in Home Assistant."
-date: 2016-10-13 22:57
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: zoneminder.png
-ha_category: Switch
-ha_release: 0.31
-ha_iot_class: "Local Polling"
----
-
-The `zoneminder` switch platform allows you to toggle the current function of all cameras attached to your [ZoneMinder](https://www.zoneminder.com) instance.
-
-
-You must have the [ZoneMinder component](/components/zoneminder/) configured to use this and if ZoneMinder authentication is enabled the account specified in the component configuration must have "Edit" permission for "System".
-
-
-To enable this switch, add the following lines to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-switch:
- - platform: zoneminder
- command_on: Modect
- command_off: Monitor
-```
-
-{% configuration %}
-command_on:
- description: The function you want the camera to run when turned on.
- required: true
- type: string
-command_off:
- description: The function you want the camera to run when turned off.
- required: true
- type: string
-{% endconfiguration %}
-
-
-The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect.
-
diff --git a/source/_components/system_health.markdown b/source/_components/system_health.markdown
new file mode 100644
index 000000000000..1b7416d890dd
--- /dev/null
+++ b/source/_components/system_health.markdown
@@ -0,0 +1,23 @@
+---
+layout: page
+title: "System Health"
+description: "Systeam Health component will report system info and allow to run system diagnostics."
+date: 2019-02-06 13:40
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: home-assistant.png
+ha_category: "Other"
+ha_qa_scale: internal
+ha_release: 0.87
+---
+
+The System Health component provides an API to offer information on the system and its components. It also allows to run diagnostic tools to diagnose problems.
+
+Add the following to your configuration.yaml file.
+```yaml
+system_health:
+```
+
+Once added the system health component data can be viewed in the developer tools under
.
diff --git a/source/_components/system_log.markdown b/source/_components/system_log.markdown
index 9d80c4a61450..e3fe547d930d 100644
--- a/source/_components/system_log.markdown
+++ b/source/_components/system_log.markdown
@@ -15,7 +15,9 @@ ha_qa_scale: internal
The `system_log` component stores information about all logged errors and warnings in Home Assistant. All collected information is accessible directly in the frontend, just navigate to the `Info` section under `Developer Tools`. In order to not overload Home Assistant with log data, only the 50 last errors and warnings will be stored. Older entries are automatically discarded from the log. It is possible to change the number of stored log entries using the parameter `max_entries`.
-This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file:
+## {% linkable_title Configuration %}
+
+This component is automatically loaded by the `frontend` (so no need to do anything if you are using the frontend). If you are not doing so, or if you wish to change a parameter, add the following section to your `configuration.yaml` file:
```yaml
system_log:
@@ -45,19 +47,25 @@ To manually clear the system log, call this service.
Errors and warnings are posted as the event `system_log_event`, so it is possible to write automations that trigger whenever a warning or error occurs. The following information is included in each event:
-| Field | Description |
-|------------------------------------------------------------------------------------------|
-| `level` | Either `WARNING` or `ERROR` depending on severity. |
+| Field | Description |
+|-------------------------------------------------------------------------------------------|
+| `level` | Either `WARNING` or `ERROR` depending on severity. |
| `source` | File that triggered the error, e.g., `core.py` or `media_player/yamaha.py`. |
-| `exception` | Full stack trace if available, otherwise empty string. |
+| `exception` | Full stack trace if available, an empty string otherwise. |
| `message` | Descriptive message of the error, e.g., "Error handling request". |
| `timestamp` | Unix timestamp with as a double, e.g., 1517241010.237416. |
-Live examples of these events can be found in the Home Assistant log file or by just looking in the system log. An example could, for instance, look like this:
+Live examples of these events can be found in the Home Assistant log file (`home-assistant.log`) or by just looking in the system log. An example could, for instance, look like this:
-
+```text
+2019-02-14 16:20:35 ERROR (MainThread) [homeassistant.loader] Unable to find component system_healt
+2019-02-14 16:20:36 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform google_maps
+Traceback (most recent call last):
+ File "/home/fab/Documents/repos/ha/home-assistant/homeassistant/components/device_tracker/__init__.py", line 184, in
+[...]
+```
-The message ("Unable to find service..."), source (`core.py`) and level (`WARNING`) can easily be extracted from the image. Exact timestamp and stack trace is shown if the entry is selected.
+The message ("Unable to find component system_healt"), source (`homeassistant.loader`) and level (`ERROR`) can easily be extracted from the log. The exact timestamp and if there is a stack trace that's shown as well. Here is another error caused by the `google_map` integration with additional output present.
## {% linkable_title Examples %}
@@ -89,6 +97,7 @@ automation:
This automation will create a persistent notification whenever an error or warning is logged that has the word "service" in the message:
+{% raw %}
```yaml
automation:
- alias: Create notifications for "service" errors
@@ -97,10 +106,11 @@ automation:
event_type: system_log_event
condition:
condition: template
- value_template: {% raw %}'{{ "service" in trigger.event.data.message }}'{% endraw %}
+ value_template: '{{ "service" in trigger.event.data.message }}'
action:
service: persistent_notification.create
data_template:
title: Something bad happened
- message: {% raw %}'{{ trigger.event.data.message }}'{% endraw %}
+ message: '{{ trigger.event.data.message }}'
```
+{% endraw %}
diff --git a/source/_components/tado.markdown b/source/_components/tado.markdown
index f78c99ae627b..efd8c821113e 100644
--- a/source/_components/tado.markdown
+++ b/source/_components/tado.markdown
@@ -8,12 +8,26 @@ comments: false
sharing: true
footer: true
logo: tado.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Climate
+ - Presence Detection
+ - Sensor
ha_release: 0.41
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/climate.tado/
+ - /components/device_tracker.tado/
+ - /components/sensor.tado/
---
-The `tado` component platform is used as an interface to the [my.tado.com](https://my.tado.com/webapp/#/account/sign-in) website. It adds climate devices for every tado zone and sensors for some additional information of the zones.
+The `tado` component platform is used as an interface to the [my.tado.com](https://my.tado.com/webapp/#/account/sign-in) website.
+
+There is currently support for the following device types within Home Assistant:
+
+- Climate - for every tado zone.
+- [Presence Detection](#presence-detection)
+- Sensor - for some additional information of the zones.
## {% linkable_title Configuration %}
@@ -40,3 +54,62 @@ password:
The tado thermostats are internet connected thermostats. There exists an unofficial API at [my.tado.com](https://my.tado.com/webapp/#/account/sign-in), which is used by their website and now by this component.
It currently supports presenting the current temperature, the setting temperature and the current operation mode. Switching the mode is also supported. If no user is at home anymore, the devices are showing the away-state. Switching to away-mode is not supported.
+
+## {% linkable_title Presence Detection %}
+
+The `tado` device tracker is using the [Tado Smart Thermostat](https://www.tado.com/) and its support for person presence detection based on smartphone location by geofencing.
+
+This tracker uses the Tado API to determine if a mobile device is at home. It tracks all devices in your home that Tado knows about.
+
+To use the Tado platform in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry for Tado
+device_tracker:
+ - platform: tado
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
+ home_id: YOUR_HOME_ID
+```
+
+{% configuration %}
+username:
+ description: The username for your Tado account.
+ required: true
+ type: string
+password:
+ description: The password for your Tado account.
+ required: true
+ type: string
+home_id:
+ description: The id of your home of which you want to track devices. If provided, the Tado device tracker will tack *all* devices known to Tado associated with this home. See below how to find it.
+ required: false
+ type: integer
+{% endconfiguration %}
+
+After configuration, your device has to be at home at least once before showing up as *home* or *away*.
+Polling Tado API for presence information will happen at most once every 30 seconds.
+
+See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. Beware that the Tado (v2) API does not provide GPS location of devices, only a bearing, therefore Home Assistant only uses `home`/`not-home` status.
+
+### {% linkable_title Finding your `home_id` %}
+
+Find your `home_id` by browsing to `https://my.tado.com/api/v2/me?username=YOUR_USERNAME&password=YOUR_PASSWORD`. There you'll see something like the following:
+
+```json
+{
+ "name": "Mark",
+ "email": "your@email.tld",
+ "username": "your@email.tld",
+ "homes": [
+ {
+ "id": 12345,
+ "name": "Home Sweet Home"
+ }
+ ],
+ "locale": "en_US",
+ "mobileDevices": []
+}
+```
+
+In this example `12345` is the `home_id` you'll need to configure.
\ No newline at end of file
diff --git a/source/_components/tahoma.markdown b/source/_components/tahoma.markdown
index 323d51bee5a6..2d0300919008 100644
--- a/source/_components/tahoma.markdown
+++ b/source/_components/tahoma.markdown
@@ -8,13 +8,33 @@ comments: false
sharing: true
footer: true
logo: tahoma.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Cover
+ - Scene
+ - Switch
+ - Sensor
ha_release: 0.59
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/binary_sensor.tahoma/
+ - /components/cover.tahoma/
+ - /components/scene.tahoma/
+ - /components/switch.tahoma/
+ - /components/sensor.tahoma/
---
The `Tahoma` component platform is used as an interface to the [tahomalink.com](https://www.tahomalink.com) website. It adds covers, scenes and a sun sensor from the Tahoma platform.
+There is currently support for the following device types within Home Assistant:
+
+- Binary Sensor
+- Sensor
+- Cover
+- Switch
+- Scene
+
## {% linkable_title Configuration %}
To use your Tahoma devices in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/telegram_bot.markdown b/source/_components/telegram_bot.markdown
index f3a3a031f787..343ed59f25d6 100644
--- a/source/_components/telegram_bot.markdown
+++ b/source/_components/telegram_bot.markdown
@@ -150,6 +150,7 @@ Respond to a callback query originated by clicking on an online keyboard button.
| `show_alert` | yes | True/false for show a permanent notification. Defaults to False. |
### {% linkable_title Service `telegram_bot.delete_message` %}
+
Delete a previously sent message in a conversation.
| Service data attribute | Optional | Description |
@@ -161,7 +162,7 @@ Delete a previously sent message in a conversation.
The [`telegram` notification platform](/components/notify.telegram/) requires the `telegram_bot` component to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
-The required yaml configuration now reduces to:
+The required YAML configuration now reduces to:
```yaml
notify:
diff --git a/source/_components/tellduslive.markdown b/source/_components/tellduslive.markdown
index 4af2502e3183..266cef58007d 100644
--- a/source/_components/tellduslive.markdown
+++ b/source/_components/tellduslive.markdown
@@ -7,10 +7,25 @@ sidebar: true
comments: false
sharing: true
footer: true
-logo: telldus.png
-ha_category: Hub
+logo: tellduslive.svg
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Cover
+ - Light
+ - Sensor
+ - Switch
featured: false
ha_release: 0.11
+ha_config_flow: true
+ha_qa_scale: gold
+ha_iot_class: 'Cloud Polling'
+redirect_from:
+ - /components/binary_sensor.tellduslive/
+ - /components/cover.tellduslive/
+ - /components/light.tellduslive/
+ - /components/sensor.tellduslive/
+ - /components/switch.tellduslive/
---
The `tellduslive` component let you connect to [Telldus Live](https://live.telldus.com). It's cloud platform that connects to your Tellstick Net or Tellstick ZNet connected gear at home.
@@ -35,11 +50,15 @@ host:
description: Host address to Tellstick Net or Tellstick ZNet for Local API, only useful when automatic discovery is not enabled.
required: false
type: string
-update_interval:
- description: Interval (in seconds) for polling the Telldus Live server (or the local server). Minimal value can't be less then 300.
+scan_interval:
+ description: Interval (in seconds) for polling the Telldus Live server (or the local server).
required: false
type: integer
default: 60
{% endconfiguration %}
+
+It is only possible to configure the `scan_interval` when setting up the device. If the polling interval needs to be changed after the device is configured it must be changed manually by changing `"scan_interval": 60,` for the device in the file `.storage/core.config_entries`.
+
+
The component will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account.
diff --git a/source/_components/tellstick.markdown b/source/_components/tellstick.markdown
index 0566e92a8a42..59c145c9b1c8 100644
--- a/source/_components/tellstick.markdown
+++ b/source/_components/tellstick.markdown
@@ -8,11 +8,30 @@ comments: false
sharing: true
footer: true
logo: telldus_tellstick.png
-ha_category: Hub
+ha_release: "pre 0.7"
+ha_category:
+ - Hub
+ - Cover
+ - Light
+ - Sensor
+ - Switch
+ha_iot_class: "Assumed State"
+redirect_from:
+ - /components/cover.tellstick/
+ - /components/light.tellstick/
+ - /components/sensor.tellstick/
+ - /components/switch.tellstick/
---
The `tellstick` component integrates [TellStick](https://telldus.com/produkt/z-wave-gateway-tellstick-znet-lite-ver-2/) devices into Home Assistant. This integration allows users to add switches, lights, and sensors which are communicating with 433 MHz. There are a number of vendors (Capidi Elro, Intertechno, Nexa, Proove, Sartano, and Viking) who are selling products that work with TellStick. For more details, please check the TellStick [protocol list](http://developer.telldus.com/wiki/TellStick_conf).
+There is currently support for the following device types within Home Assistant:
+
+- [Cover](#cover)
+- [Light](#light)
+- [Sensor](#sensor)
+- [Switch](#switch)
+
## {% linkable_title Configuration %}
To get started, add the devices to your `configuration.yaml` file.
@@ -46,3 +65,90 @@ port:
required: inclusive
type: list
{% endconfiguration %}
+
+## {% linkable_title Cover %}
+
+This `tellstick` cover platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) covers.
+
+To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+cover:
+ - platform: tellstick
+```
+
+## {% linkable_title Light %}
+
+This `tellstick` light platform allows you to control your [TellStick](http://www.telldus.se/products/tellstick) dimmers.
+
+To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+light:
+ platform: tellstick
+```
+
+## {% linkable_title Sensor %}
+
+The `tellstick` sensor platform allows you to get current meteorological data from a [TellStick](http://www.telldus.se/products/tellstick) device.
+
+To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: tellstick
+```
+
+{% configuration %}
+sensor:
+ description: "Entry for a sensor with the ID and its name, e.g., ID: Name."
+ required: false
+ type: string
+only_named:
+ description: Only show the named sensors. Set to `true` to hide sensors.
+ required: false
+ default: false
+ type: boolean
+temperature_scale:
+ description: The scale of the temperature value.
+ required: false
+ default: °C
+ type: string
+datatype_mask:
+ description: Mask to determine which sensor values to show based on. Please check the [TellCore tellcore.constants documentation](https://tellcore-py.readthedocs.org/en/v1.1.2/constants.html#module-tellcore.constants) for details.
+ required: false
+ default: 127
+ type: integer
+{% endconfiguration %}
+
+## {% linkable_title Examples %}
+
+In this section you find some real-life examples of how to use this sensor.
+
+### {% linkable_title Full configuration %}
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: tellstick
+ 135: Outside
+ 21: Inside
+ only_named: true
+ temperature_scale: "°C"
+ datatype_mask: 1
+```
+
+## {% linkable_title Switch %}
+
+This `tellstick` switch platform allows you to control [TellStick](http://www.telldus.se/products/tellstick) devices.
+
+To use your TellStick device, you first have to set up your [Tellstick hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: tellstick
+```
\ No newline at end of file
diff --git a/source/_components/tesla.markdown b/source/_components/tesla.markdown
index 1d088c67369f..5d64180c56d3 100644
--- a/source/_components/tesla.markdown
+++ b/source/_components/tesla.markdown
@@ -8,20 +8,35 @@ comments: false
sharing: true
footer: true
logo: tesla.png
-ha_category: Car
+ha_category:
+ - Car
+ - Binary Sensor
+ - Climate
+ - Presence Detection
+ - Lock
+ - Sensor
+ - Switch
ha_release: 0.53
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/binary_sensor.tesla/
+ - /components/device_tracker.tesla/
+ - /components/climate.tesla/
+ - /components/lock.tesla/
+ - /components/sensor.tesla/
+ - /components/switch.tesla/
---
The `Tesla` component offers integration with the [Tesla](https://auth.tesla.com/login) cloud service and provides presence detection as well as sensors such as charger state and temperature.
This component provides the following platforms:
- - Binary sensors - such as parking and charger connection.
- - Sensors - such as Battery level, Inside/Outside temperature, odometer, and estimated range.
- - Device tracker - to track location of your car
- - Lock - Door lock. Enables you to control Tesla's door lock
- - Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system.
- - Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging.
+
+- Binary sensors - such as parking and charger connection.
+- Sensors - such as Battery level, Inside/Outside temperature, odometer, and estimated range.
+- Device tracker - to track location of your car
+- Lock - Door lock. Enables you to control Tesla's door lock
+- Climate - HVAC control. Allow you to control (turn on/off, set target temperature) your Tesla's HVAC system.
+- Switch - Charger and max range switch. Allow you to start/stop charging and set max range charging.
## {% linkable_title Configuration %}
@@ -30,7 +45,7 @@ To use Tesla in your installation, add the following to your `configuration.yaml
```yaml
# Example configuration.yaml entry
tesla:
- username: YOUR_E_MAIL_ADDRESS
+ username: YOUR_EMAIL_ADDRESS
password: YOUR_PASSWORD
```
diff --git a/source/_components/tibber.markdown b/source/_components/tibber.markdown
index 7df4e9a7f283..791bc560b028 100644
--- a/source/_components/tibber.markdown
+++ b/source/_components/tibber.markdown
@@ -8,16 +8,25 @@ comments: false
sharing: true
footer: true
logo: tibber.png
-ha_category: Energy
+ha_category:
+ - Energy
+ - Sensor
+ - Notifications
ha_release: 0.80
ha_qa_scale: silver
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/notify.tibber/
+ - /components/sensor.tibber/
---
The `tibber` component provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer.
If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) it will also show the electricity consumption in real time.
-It also provides a notification service.
+There is currently support for the following device types within Home Assistant:
+
+- [Notifications](#notifications)
+- [Sensor](#sensor)
## {% linkable_title Setup %}
@@ -38,3 +47,56 @@ access_token:
required: true
type: string
{% endconfiguration %}
+
+## {% linkable_title Notifications %}
+
+Tibber can send a notification by calling the [`notify` service](/components/notify/). It will send a notification to all devices registered in the Tibber account.
+
+The requirement is that you have setup the [`tibber` component](#setup).
+To use notifications, please see the [getting started with automation page](/getting-started/automation/).
+
+### {% linkable_title Send message %}
+
+```yaml
+action:
+ service: notify.tibber
+ data:
+ title: Your title
+ message: This is a message for you!
+```
+
+## {% linkable_title Sensor %}
+
+The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
+If you have a Tibber Pulse it will also show the electricity consumption in real time.
+
+The requirement is that you have setup the [`tibber` component](#setup).
+
+## {% linkable_title Examples %}
+
+In this section, you will find some real-life examples of how to use this sensor.
+
+### {% linkable_title Electricity price %}
+
+The electricity price can be used to make automations. The sensor has a `max_price` and `min_price` attribute, with max and min price for the current day. Here is an example to get a notification when the price is above 90% of the maximum price for the day:
+
+{% raw %}
+
+```yaml
+- alias: "Electricity price"
+ trigger:
+ platform: time_pattern
+ # Matches every hour at 1 minutes past whole
+ minutes: 1
+ condition:
+ condition: template
+ value_template: '{{ float(states.sensor.electricity_price_hamretunet_10.state) > 0.9 * float(states.sensor.electricity_price_hamretunet_10.attributes.max_price) }}'
+ action:
+ - service: notify.pushbullet
+ data:
+ title: "Electricity price"
+ target: "device/daniel_telefon_cat"
+ message: "The electricity price is now {{ states.sensor.electricity_price_hamretunet_10.state }}"
+```
+
+{% endraw %}
\ No newline at end of file
diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown
index 946e20cd8d9e..3e914d731308 100644
--- a/source/_components/timer.markdown
+++ b/source/_components/timer.markdown
@@ -15,10 +15,10 @@ ha_qa_scale: internal
The `timer` component aims to simplify automations based on (dynamic) durations.
-When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion.
+When a timer finishes or gets canceled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been canceled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering a canceled or finished event. This, for example, makes it easy to create timed lights that get triggered by motion. Starting a timer triggers a started event unless the timer is paused, in that case, it triggers a restarted event.
-With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration.
+ With the current implementation timers don't persist over restarts. After a restart, they will be idle again, together with their initial configuration.
## {% linkable_title Configuration %}
@@ -60,43 +60,46 @@ Pick an icon that you can find on [materialdesignicons.com](https://materialdesi
| Event | Description |
| --------------- | ----------- |
| timer.cancelled | Fired when a timer has been canceled |
-| timer.finished | Fired when a timer has completed |
+| timer.finished | Fired when a timer has completed |
+| timer.started | Fired when a timer has been started|
+| timer.restarted | Fired when a timer has been restarted |
+| timer.paused | Fired when a timer has been paused |
## {% linkable_title Services %}
-#### {% linkable_title Service `timer.start` %}
+### {% linkable_title Service `timer.start` %}
Starts or restarts a timer with the provided duration. If no duration is given, it will either restart with its initial value, or continue a paused timer with the remaining duration. If a new duration is provided, this will be the new default for the timer until Home Assistant is restarted (which loads your default values). The duration can be specified as a number of seconds or the easier to read `01:23:45` format.
-If no `entity_id` is given all active timers will be started.
+You can also use `entity_id: all` and all active timers will be started.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
+| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
| `duration` | yes | Duration in seconds or `00:00:00` until the timer finishes. |
-#### {% linkable_title Service `timer.pause` %}
+### {% linkable_title Service `timer.pause` %}
-Pause a running timer. This will retain the remaining duration for later continuation. If no `entity_id` is given all active timers will be paused.
+Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
+| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
-#### {% linkable_title Service `timer.cancel` %}
+### {% linkable_title Service `timer.cancel` %}
-Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. If no `entity_id` is given all active timers will be canceled.
+Cancel an active timer. This resets the duration to the last known initial value without firing the `timer.finished` event. You can also use `entity_id: all` and all active timers will be canceled.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
+| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
-#### {% linkable_title Service `timer.finish` %}
+### {% linkable_title Service `timer.finish` %}
-Manually finish a running timer earlier than scheduled. If no `entity_id` is given all active timers will be finished.
+Manually finish a running timer earlier than scheduled. You can also use `entity_id: all` and all active timers will be finished.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | Name of the entity to take action, e.g., `timer.timer0`. |
+| `entity_id` | no | Name of the entity to take action, e.g., `timer.timer0`. |
### {% linkable_title Use the service %}
@@ -148,7 +151,7 @@ timer:
message: "Timer stop"
```
-### {% linkable_title Control a timer from the frontend %}
+### {% linkable_title Control a timer manually %}
With the [`script`](/components/script/) component you would be able to control a timer (see above for a `timer` configuration sample) manually.
diff --git a/source/_components/toon.markdown b/source/_components/toon.markdown
index 1e81b2f2be63..4c6a5f403168 100644
--- a/source/_components/toon.markdown
+++ b/source/_components/toon.markdown
@@ -7,48 +7,77 @@ sidebar: true
comments: false
sharing: true
footer: true
-ha_category: Hub
+ha_category:
+ - Climate
+ - Binary Sensor
+ - Energy
+ - Sensor
ha_release: 0.56
logo: toon.png
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/climate.toon/
+ - /components/sensor.toon/
+ - /components/switch.toon/
---
-The `toon` component platform can be used to control your Toon thermostat. This component adds a climate device for your Toon thermostat and sensors for power and gas consumption. The component also auto-detects any smart plugs, solar panels and smoke detectors connected to Toon and adds sensors and switches for them.
+The `toon` component platform can be used to control your Toon thermostat. This component adds a climate device for your Toon thermostat, sensors for power and gas consumption, sensors for solar production and several binary sensors for things like boiler burner on/off, hot tap water and boiler health status.
-For the `toon` component to work, you'll need an active Toon subscription with Eneco. The component uses your Mijn Eneco credentials to control your thermostat through the [toonopafstand](https://toonopafstand.eneco.nl) domain.
+For the `toon` component to work, you'll need an active Toon subscription with Eneco and a Toon API developer account.
+
+There is currently support for the following device types within Home Assistant:
+
+- Binary Sensor
+- [Climate](#climate)
+- Sensor
+
+## {% linkable_title Setting up a developer account %}
+
+In order to be able to use this component, you'll need to sign up for a free Toon API developer account.
+
+1. Visit the [Toon API developers website](https://developer.toon.eu/), and [sign in](https://developer.toon.eu/user/login). [Create an account](https://developer.toon.eu/user/register) if you don’t have one already.
+2. Open the "[My Apps](https://developer.toon.eu/user/me/apps)" page and click on "Add a new App" button on the top right.
+3. The "Add App" page shows a form with two fields:
+ - **App Name**: Can be anything you like, for example, "Home Assistant" will just do.
+ - **Callback URL**: Fill in `localhost` in this field.
+4. Click on "Create App" to complete the creation process.
+5. Open the "[My Apps](https://developer.toon.eu/user/me/apps)" page again and click on the app that you've just created.
+6. You need the codes now shown: "Consumer Key" and "Consumer Secret".
+7. Add the Toon component to your `configuration.yaml` and restart Home Assistant. Then, go to `Configuration > Integrations` and select `CONFIGURE` next to Toon and follow the setup instructions.
## {% linkable_title Configuration %}
-To use your Toon thermostat in your installation, add the following to your `configuration.yaml` file:
+To use your Toon in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
toon:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ client_id: YOUR_CONSUMER_KEY
+ client_secret: YOUR_CONSUMER_SECRET
```
{% configuration %}
-username:
- description: Username for Mijn Eneco.
+client_id:
+ description: Toon API Consumer Key.
required: true
type: string
-password:
- description: Password for Mijn Eneco.
+client_secret:
+ description: Toon API Consumer Secret.
required: true
type: string
-gas:
- description: With this option you can choose whether you want to measure gas consumption.
- required: false
- type: boolean
- default: true
-solar:
- description: With this option you can choose whether you want to measure electricity production.
- required: false
- type: boolean
- default: false
{% endconfiguration %}
-Toon is a smart thermostat delivered by the Eneco power company in The Netherlands. It can measure energy consumption (power and gas), but also the amount of energy generated in case solar panels are connected to it. Toon also acts as a z-wave hub for supported devices like the wall plug and the smoke detector. This component uses the [toonlib library](https://github.com/costastf/toonlib) by Costas Tyfoxylos that connects to the unofficial API on [https://toonopafstand.eneco.nl](https://toonopafstand.eneco.nl).
+## {% linkable_title 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 |
+|:---------------|:--------|
+| Performance | Comfort |
+| Heat | Thuis |
+| Eco | Weg |
+| Cool | Slapen |
+
+It also supports setting the temperature manually.
-The current version of this component supports setting any of the four built-in programs and setting the temperature manually. It polls the Toon API at 30 second intervals so the status is relatively fresh without overloading the API.
+The Toon API is polled at a 30-second interval, so the status is relatively fresh without overloading the API.
diff --git a/source/_components/tplink.markdown b/source/_components/tplink.markdown
new file mode 100644
index 000000000000..e32f37d9ec43
--- /dev/null
+++ b/source/_components/tplink.markdown
@@ -0,0 +1,133 @@
+---
+layout: page
+title: "TP-Link Smart Home Devices"
+description: "Instructions on integrating TP-Link Smart Home Devices to Home Assistant."
+date: 2018-09-12 13:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tp-link.png
+ha_category: Hub
+featured: false
+ha_release: 0.89
+ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/switch.tplink/
+ - /components/light.tplink/
+---
+
+The `tplink` component allows you to control your [TP-Link Smart Home Devices](https://www.tp-link.com/kasa-smart/) such as smart plugs and smart bulbs.
+
+In order to activate the support, you will have to enable the integration inside the config panel.
+The supported devices in your network are automatically discovered, but if you want to control devices residing in other networks you will need to configure them manually as shown below.
+
+## {% linkable_title Supported Devices %}
+
+This component supports devices that are controllable with the [KASA app](https://www.tp-link.com/us/kasa-smart/kasa.html).
+The following devices are known to work with this component.
+
+### {% linkable_title Plugs %}
+
+- HS100
+- HS103
+- HS105
+- HS110
+
+### {% linkable_title Wall Switches %}
+
+- HS200
+- HS210
+- HS220 (acts as a light)
+
+### {% linkable_title Bulbs %}
+
+- LB100
+- LB110
+- LB120
+- LB130
+- LB230
+- KL110
+- KL120
+- KL130
+
+## {% linkable_title Configuration %}
+
+```yaml
+# Example configuration.yaml
+tplink:
+```
+
+{% configuration %}
+discovery:
+ description: Whether to do automatic discovery of devices.
+ required: false
+ type: boolean
+ default: true
+light:
+ description: List of light devices.
+ required: false
+ type: list
+ keys:
+ host:
+ description: Hostname or IP address of the device.
+ required: true
+ type: string
+switch:
+ description: List of switch devices.
+ required: false
+ type: list
+ keys:
+ host:
+ description: Hostname or IP address of the device.
+ required: true
+ type: string
+{% endconfiguration %}
+
+## {% linkable_title Manual configuration example %}
+
+```yaml
+# Example configuration.yaml entry with manually specified addresses
+tplink:
+ discovery: false
+ light:
+ - host: 192.168.200.1
+ - host: 192.168.200.2
+ switch:
+ - host: 192.168.200.3
+ - host: 192.168.200.4
+```
+
+## {% linkable_title Extracting Energy Sensor data %}
+
+In order to get the power consumption readings from supported devices, you'll have to create a [template sensor](/components/switch.template/).
+In the example below, change all of the `my_tp_switch`'s to match your device's entity ID.
+
+{% raw %}
+```yaml
+sensor:
+ - platform: template
+ sensors:
+ my_tp_switch_amps:
+ friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current"
+ value_template: '{{ states.switch.my_tp_switch.attributes["current_a"] | float }}'
+ unit_of_measurement: 'A'
+ my_tp_switch_watts:
+ friendly_name_template: "{{ states.switch.my_tp_switch.name}} Current Consumption"
+ value_template: '{{ states.switch.my_tp_switch.attributes["current_power_w"] | float }}'
+ unit_of_measurement: 'W'
+ my_tp_switch_total_kwh:
+ friendly_name_template: "{{ states.switch.my_tp_switch.name}} Total Consumption"
+ value_template: '{{ states.switch.my_tp_switch.attributes["total_energy_kwh"] | float }}'
+ unit_of_measurement: 'kWh'
+ my_tp_switch_volts:
+ friendly_name_template: "{{ states.switch.my_tp_switch.name}} Voltage"
+ value_template: '{{ states.switch.my_tp_switch.attributes["voltage"] | float }}'
+ unit_of_measurement: 'V'
+ my_tp_switch_today_kwh:
+ friendly_name_template: "{{ states.switch.my_tp_switch.name}} Today's Consumption"
+ value_template: '{{ states.switch.my_tp_switch.attributes["today_energy_kwh"] | float }}'
+ unit_of_measurement: 'kWh'
+```
+{% endraw %}
+
diff --git a/source/_components/tplink_lte.markdown b/source/_components/tplink_lte.markdown
index 1adabfe82d92..519675551648 100644
--- a/source/_components/tplink_lte.markdown
+++ b/source/_components/tplink_lte.markdown
@@ -9,8 +9,12 @@ sharing: true
footer: true
logo: tp-link.png
ha_release: 0.83
-ha_category: Network
+ha_category:
+ - Network
+ - Notifications
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/notify.tplink_lte/
---
The TP-Link LTE integration for Home Assistant allows you to observe and control TP-Link LTE routers, currently only tested with TL-MR6400 (firmware 1.4.0).
@@ -28,32 +32,32 @@ tplink_lte:
password: SECRET
notify:
- name: sms1
- target: "+15105550123"
+ recipient: "+15105550123"
- name: sms2
- target: "+55520525252"
+ recipient: "+55520525252"
```
{% configuration %}
host:
- description: The IP address of the router web interface.
- required: true
- type: string
+ description: The IP address of the router web interface.
+ required: true
+ type: string
password:
- description: The password used for the router web interface.
- required: true
- type: string
+ description: The password used for the router web interface.
+ required: true
+ type: string
notify:
- description: A list of notification services connected to this specific host.
- required: false
- type: list
- keys:
- target:
- description: The phone number of a default recipient or a list with multiple recipients.
- required: true
- type: string, list
- name:
- description: The name of the notification service.
- required: false
- default: notify
- type: string
+ description: A list of notification services connected to this specific host.
+ required: false
+ type: list
+ keys:
+ target:
+ description: The phone number of a default recipient or a list with multiple recipients.
+ required: true
+ type: string, list
+ name:
+ description: The name of the notification service.
+ required: false
+ default: notify
+ type: string
{% endconfiguration %}
diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown
index a642a1959a9c..60a7770011c7 100644
--- a/source/_components/tradfri.markdown
+++ b/source/_components/tradfri.markdown
@@ -9,9 +9,17 @@ comments: false
sharing: true
footer: true
logo: ikea.svg
-ha_category: Hub
ha_iot_class: "Local Polling"
+ha_config_flow: true
ha_release: 0.43
+ha_category:
+ - Light
+ - Sensor
+ - Switch
+redirect_from:
+ - /components/light.tradfri/
+ - /components/sensor.tradfri/
+ - /components/switch.tradfri/
---
The `tradfri` component support the IKEA Trådfri Gateway (a.k.a. IKEA Tradfri hub/bridge). The gateway can control compatible Zigbee-based lights (certified ZigBee Light Link products) connected to it and Home Assistant will automatically discover the gateways presence on your local network, if `discovery:` is present in your `configuration.yaml` file.
@@ -19,7 +27,7 @@ The `tradfri` component support the IKEA Trådfri Gateway (a.k.a. IKEA Tradfri h
You will be prompted to configure the gateway through the Home Assistant interface. The configuration process is very simple, when prompted, enter the security key printed on the physical sticker that is on the bottom of the IKEA Trådfri Gateway, then click configure.
-If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP to your IKEA Trådfri Gateway in your router / DHCP-server.
+If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP address to your IKEA Trådfri Gateway in your router / DHCP-server.
## {% linkable_title Configuration %}
@@ -52,6 +60,10 @@ After updating the firmware of your IKEA Trådfri Gateway it might be necessary
### {% linkable_title Compilation issues %}
+
+ This does not apply to Hass.io or Docker.
+
+
Please make sure you have `autoconf` installed (`$ sudo apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1 h) on slow devices.
### {% linkable_title Setting the `api_key` %}
diff --git a/source/_components/transmission.markdown b/source/_components/transmission.markdown
new file mode 100644
index 000000000000..03143c67cb72
--- /dev/null
+++ b/source/_components/transmission.markdown
@@ -0,0 +1,124 @@
+---
+layout: page
+title: "Transmission"
+description: "Instructions on how to integrate Transmission within Home Assistant."
+date: 2018-12-12 22:44
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: transmission.png
+ha_category:
+ - Downloading
+ - Switch
+ - Sensor
+ha_release: 0.87
+ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/switch.transmission/
+ - /components/sensor.transmission/
+---
+
+The `transmission` component allows you to monitor your downloads with [Transmission](http://www.transmissionbt.com/) from within Home Assistant and setup automation based on the information.
+
+## {% linkable_title Setup %}
+
+To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to **Edit** -> **Preferences** and choose the tab **Remote**. Check **Allow remote access**, enter your username and your password, and uncheck the network restriction as needed.
+
+
+
+
+
+If everything is set up correctly, the details will show up in the frontend.
+
+
+
+
+
+## {% linkable_title Configuration %}
+
+To enable this sensor, add the following lines to your `configuration.yaml`:
+
+```yaml
+transmission:
+ host: 192.168.1.1
+```
+
+{% configuration %}
+host:
+ description: "This is the IP address of your Transmission daemon, e.g., `192.168.1.1`."
+ required: true
+ type: string
+port:
+ description: The port your Transmission daemon uses.
+ required: false
+ type: integer
+ default: 9091
+name:
+ description: The name to use when displaying this Transmission instance in the frontend.
+ required: false
+ type: string
+username:
+ description: Your Transmission username, if you use authentication.
+ required: false
+ type: string
+password:
+ description: Your Transmission password, if you use authentication.
+ required: false
+ type: string
+turtle_mode:
+ description: If enabled, it creates a switch entity to control the 'Alternative Speed Limits' (aka 'Turtle mode') setting.
+ required: false
+ type: boolean
+scan_interval:
+ description: How frequently to query for new data. Defaults to 120 seconds.
+ required: false
+ type: integer
+monitored_conditions:
+ type: integer
+ description: "List of monitored conditions. Possible values are:"
+ required: false
+ type: map
+ keys:
+ current_status:
+ description: The status of your Transmission daemon.
+ download_speed:
+ description: The current download speed [MB/s].
+ upload_speed:
+ description: The current upload speed [MB/s].
+ active_torrents:
+ description: The current number of active torrents.
+ paused_torrents:
+ description: The current number of paused torrents.
+ total_torrents:
+ description: The total number of torrents present in the client.
+ started_torrents:
+ description: The current number of started torrents (downloading).
+ completed_torrents:
+ description: The current number of completed torrents (seeding)
+{% endconfiguration %}
+
+## {% linkable_title Event Automation %}
+
+The Transmission component is continuously monitoring the status of torrents in the target client. Once a torrent is started or completed, an event is triggered on the Home Assistant Bus, which allows to implement any kind of automation.
+
+Possible events are:
+
+- transmission_downloaded_torrent
+- transmission_started_torrent
+
+Inside of the event, there is the name of the torrent that is started or completed, as it is seen in the Transmission User Interface.
+
+Example of configuration of an automation with completed torrents:
+
+```yaml
+- alias: Completed Torrent
+ trigger:
+ platform: event
+ event_type: transmission_downloaded_torrent
+ action:
+ service: notify.telegram_notifier
+ data_template:
+ title: "Torrent completed!"
+ message: "{{trigger.event.data.name}}"
+```
diff --git a/source/_components/tts.google.markdown b/source/_components/tts.google.markdown
index c3bdf2d0cca1..927d672a7c4e 100644
--- a/source/_components/tts.google.markdown
+++ b/source/_components/tts.google.markdown
@@ -12,7 +12,7 @@ ha_category: Text-to-speech
ha_release: 0.35
---
-The `google` text-to-speech platform uses [Google Text-to-Speech engine](https://console.developers.google.com/apis/api/speech.googleapis.com/overview) Text-to-Speech engine to read a text with natural sounding voices.
+The `google` text-to-speech platform uses [Google Text-to-Speech engine](https://console.developers.google.com/apis/library/texttospeech.googleapis.com) Text-to-Speech engine to read a text with natural sounding voices.
## {% linkable_title Configuration %}
diff --git a/source/_components/tts.markdown b/source/_components/tts.markdown
index f351404262b7..3d4fceac5d48 100644
--- a/source/_components/tts.markdown
+++ b/source/_components/tts.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Text-to-Speech (TTS)"
-description: "Instructions on how to setup Text-to-Speech (TTS) with Home Assistant."
+description: "Instructions on how to set up Text-to-Speech (TTS) with Home Assistant."
date: 2016-12-13 07:00
sidebar: true
comments: false
@@ -17,7 +17,7 @@ Text-to-Speech (TTS) enables Home Assistant to speak to you.
To get started, add the following lines to your `configuration.yaml` (example for Google):
```yaml
-# Example configuration.yaml entry for google tts service
+# Example configuration.yaml entry for Google TTS service
tts:
- platform: google
```
@@ -33,7 +33,7 @@ cache:
description: Allow TTS to cache voice file to local storage.
required: false
type: boolean
- default: True
+ default: true
cache_dir:
description: Folder name or path to a folder for caching files.
required: false
@@ -94,9 +94,11 @@ Say to all `media_player` device entities:
```yaml
# Replace google_say with _say when you use a different platform.
service: tts.google_say
+entity_id: "all"
data:
message: 'May the Force be with you.'
```
+
Say to the `media_player.floor` device entity:
```yaml
@@ -131,7 +133,7 @@ The component has two caches. Both caches can be controlled with the `cache` opt
## {% linkable_title REST Api %}
-#### {% linkable_title POST /api/tts_get_url %}
+### {% linkable_title POST /api/tts_get_url %}
Returns an URL to the generated TTS file. Platform and message are required.
diff --git a/source/_components/tts.microsoft.markdown b/source/_components/tts.microsoft.markdown
index 7725da381a7b..1c910d62ccf7 100644
--- a/source/_components/tts.microsoft.markdown
+++ b/source/_components/tts.microsoft.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Microsoft Text-to-Speech"
-description: "Instructions on how to setup Microsoft Text-to-Speech with Home Assistant."
+description: "Instructions on how to set up Microsoft Text-to-Speech with Home Assistant."
date: 2017-11-07 12:00
sidebar: true
comments: false
@@ -67,7 +67,6 @@ contour:
type: string
{% endconfiguration %}
-
## {% linkable_title Full configuration example %}
A full configuration sample including optional variables:
diff --git a/source/_components/tts.yandextts.markdown b/source/_components/tts.yandextts.markdown
index f51a24ba402c..180131ae2648 100644
--- a/source/_components/tts.yandextts.markdown
+++ b/source/_components/tts.yandextts.markdown
@@ -41,7 +41,7 @@ codec:
type: string
default: "`mp3`"
voice:
- description: "The speaker voice. Supported female voices are `jane`, `oksana`, `alyss`, `omazh` and male voices are `zahar` and `ermil`."
+ description: "The speaker voice. Supported female voices are `jane`, `oksana`, `alyss`, `omazh`, `silaerkan`, `nastya`, `sasha`, `tanya`, `tatyana_abramova`, `voicesearch`, and `zombie`. Male voices are `zahar`, `ermil`, `levitan`, `ermilov`, `kolya`, `kostya`, `nick`, `erkanyavas`, `zhenya`, `anton_samokhvalov`, `ermil_with_tuning`, `robot`, `dude`, and `smoky`."
required: false
type: string
default: "`zahar`"
diff --git a/source/_components/tuya.markdown b/source/_components/tuya.markdown
index c08bc5ab3fa0..52c79e31f4dc 100644
--- a/source/_components/tuya.markdown
+++ b/source/_components/tuya.markdown
@@ -8,13 +8,36 @@ comments: false
sharing: true
footer: true
logo: tuya.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Climate
+ - Cover
+ - Fan
+ - Light
+ - Scene
+ - Switch
ha_iot_class: "Cloud Polling"
ha_release: 0.74
+redirect_from:
+ - /components/climate.tuya/
+ - /components/cover.tuya/
+ - /components/fan.tuya/
+ - /components/light.tuya/
+ - /components/scene.tuya/
+ - /components/switch.tuya/
---
The `tuya` component is the main component to integrate all [Tuya Smart](https://www.tuya.com) related platforms. You will need your Tuya account information (username, password and account country code) to discover and control devices which related to your account.
+There is currently support for the following device types within Home Assistant:
+
+- **Climate** - The platform supports the air conditioner and heater.
+- **Cover** - The platform supports curtains.
+- **Fan** - The platform supports most kinds of Tuya fans.
+- **Light** - The platform supports most kinds of Tuya light.
+- **Scene** - The device state in frontend panel will not change immediately after you activate a scene.
+- **Switch** - The platform supports switch and socket.
+
## {% linkable_title Configuration %}
To add your Tuya devices into your Home Assistant installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/twilio.markdown b/source/_components/twilio.markdown
index fa01f2b6c85f..f4f60e7cf7ed 100644
--- a/source/_components/twilio.markdown
+++ b/source/_components/twilio.markdown
@@ -14,7 +14,7 @@ ha_release: "0.40"
The `twilio` component enables the sending of notifications via SMS and the creation of calls with [Twilio](https://twilio.com).
-Free trial account is available at [Twilio](https://twilio.com) website providing free calls to verified phone numbers.
+A free trial account is available at [Twilio](https://twilio.com) website providing free calls to verified phone numbers.
Calls are limited to 10 minutes and will play a short trial message before your message runs. Upgraded accounts have no limitation.
## {% linkable_title Configuration %}
@@ -40,9 +40,10 @@ auth_token:
{% endconfiguration %}
### {% linkable_title Usage %}
+
After configuring the base Twilio component, add and configure either or both of the [twilio SMS](/components/notify.twilio_sms/) and [twilio Phone](/components/notify.twilio_call) components to utilize the notification functionality.
-To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](https://www.home-assistant.io/components/http/#base_url)).
+To be able to receive events from Twilio, your Home Assistant instance needs to be accessible from the web ([Hass.io instructions](/addons/duckdns/)) and you need to have the `base_url` configured for the HTTP component ([docs](/components/http/#base_url)).
To set it up, go to the integrations page in the configuration screen and find Twilio. Click on configure. Follow the instructions on the screen to configure Twilio.
@@ -63,4 +64,3 @@ automation:
service: light.turn_on
entity_id: light.office
```
-
diff --git a/source/_components/unifi.markdown b/source/_components/unifi.markdown
index bf486c88690e..287412b057fe 100644
--- a/source/_components/unifi.markdown
+++ b/source/_components/unifi.markdown
@@ -8,13 +8,24 @@ comments: false
sharing: true
footer: true
logo: ubiquiti.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Presence Detection
+ - Switch
ha_release: "0.81"
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/device_tracker.unifi/
+ - /components/switch.unifi/
---
[UniFi](https://unifi-sdn.ubnt.com/) by [Ubiquiti Networks, inc.](https://www.ubnt.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end.
+There is currently support for the following device types within Home Assistant:
+
+- [Presence Detection](#presence-detection)
+- [Switch](#switch)
+
Currently this implementation only exposes POE control for networked devices. Device tracker implementation is not using the same code base.
## {% linkable_title Configuration %}
@@ -35,3 +46,161 @@ logger:
homeassistant.components.unifi: debug
homeassistant.components.switch.unifi: debug
```
+
+## {% linkable_title Presence detection %}
+
+This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](http://ubnt.com/) [Unifi](https://www.ubnt.com/enterprise/#unifi) controller.
+
+To use this device tracker in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+device_tracker:
+ - platform: unifi
+ host: unifi
+ username: username
+ password: password
+ ssid_filter:
+ - 'HomeSSID'
+ - 'IoTSSID'
+```
+
+{% configuration %}
+username:
+ description: A user on the controller
+ type: string
+ required: true
+password:
+ description: The password for the account
+ type: string
+ required: true
+host:
+ description: The hostname or IP address of your controller
+ default: localhost
+ type: string
+ required: false
+port:
+ description: The port of your controller's web interface
+ default: 8443
+ type: integer
+ required: false
+site_id:
+ description: For multisite installations, you can specify `site_id` to specify which is used
+ type: string
+ required: false
+ default: default
+verify_ssl:
+ description: Whether to do strict validation on SSL certificates of the Unifi controller. This can be true/false or the path to a locally trusted certificate to use for verification (i.e. "/path/to/custom_cert.pm")
+ type: boolean or filename
+ required: false
+ default: true
+detection_time:
+ description: How long since the last seen time before the device is marked away, specified in seconds.
+ type: integer
+ required: false
+ default: 300
+ssid_filter:
+ description: Filter the SSIDs that tracking will occur on.
+ type: list of strings
+ required: false
+ default: None
+monitored_conditions:
+ description: A list of extra attributes to pull from the Unifi controller.
+ type: list
+ required: false
+ default: None
+
+{% endconfiguration %}
+
+See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked.
+
+### {% linkable_title Configuring Users %}
+
+The Unifi controller allows you to create multiple users on it besides the main administrator. It is recommended that you create a limited user that has `read-only` permissions for the Unifi device tracker.
+
+### {% linkable_title Conflicts with MQTT %}
+
+The Unifi controller can either be a dedicated hardware device (Unifi's cloud key), or as software any Linux system. If you run the Unifi controller on the same operating system as Home Assistant there may be conflicts in ports if you have the MQTT component as well.
+
+It is recommended that you run the Unifi controller in a dedicated virtual machine to avoid that situation.
+
+### {% linkable_title Correctly specifying the Site ID %}
+
+For environments where there are multiple sites setup on the controller, or the default site is not being used you can use the `site_id` parameter to specify which site you would like to target.
+
+Please note that the value that is to be specificed here is not the name of the site as you would see it in controller interface, but a site ID value assigned from the software itself.
+
+To obtain this value for your configuration file, you can take it from the URL of your browser when on the controller webpage.
+
+For example, this is what would be seen in the URL bar when inside the dashboard page of a site:
+
+* https://127.0.0.1:8443/manage/s/ceb1m27d/dashboard
+
+And your `site_id` value would be ceb1m27d.
+
+
+### {% linkable_title Troubleshooting and Time Synchronization %}
+
+Presence detection depends on accurate time configuration between Home Assistant and the Unifi controller.
+
+If Home Assistant and the Unifi controller are running on separate machines or VMs ensure that all clocks are synchronized. Failing to have synchronized clocks will lead to Home Assistant failing to mark a device as home.
+
+[Related Issue](https://github.com/home-assistant/home-assistant/issues/10507)
+
+### {% linkable_title Monitored Conditions %}
+
+The Unifi controller returns a number of additional attributes that can be used for tracking devices, including signal strength, rx/tx rates, and which AP it is connected to. The list of possible options may vary depending on your Unifi controller version and if a device is wired or wireless.
+
+Unifi Controller version 5.6.29 has the following options:
+ - _id
+ - _is_guest_by_uap
+ - _last_seen_by_uap
+ - _uptime_by_uap
+ - ap_mac
+ - assoc_time
+ - authorized
+ - bssid
+ - bytes-r
+ - ccq
+ - channel
+ - essid
+ - first_seen
+ - hostname
+ - idletime
+ - ip
+ - is_11r
+ - is_guest
+ - is_wired
+ - last_seen
+ - latest_assoc_time
+ - mac
+ - name
+ - noise
+ - noted
+ - oui
+ - powersave_enabled
+ - qos_policy_applied
+ - radio
+ - radio_proto
+ - rssi
+ - rx_bytes
+ - rx_bytes-r
+ - rx_packets
+ - rx_rate
+ - signal
+ - site_id
+ - tx_bytes
+ - tx_bytes-r
+ - tx_packets
+ - tx_power
+ - tx_rate
+ - uptime
+ - user_id
+ - usergroup_id
+ - vlan
+
+## {% linkable_title Switch %}
+
+Switches are network devices that are powered by POE switches from Ubuiqitis UniFi line of networking gear.
+
+Note that POE control actually configures the network port of the switch which the device is connected to.
diff --git a/source/_components/upcloud.markdown b/source/_components/upcloud.markdown
index 9b5807e536b1..517f2ed39d3d 100644
--- a/source/_components/upcloud.markdown
+++ b/source/_components/upcloud.markdown
@@ -7,14 +7,25 @@ sidebar: true
comments: false
sharing: true
footer: true
-ha_category: System Monitor
+ha_category:
+ - System Monitor
+ - Binary Sensor
+ - Switch
ha_release: 0.65
logo: upcloud.png
ha_iot_class: Cloud Polling
+redirect_from:
+ - /components/binary_sensor.upcloud/
+ - /components/switch.upcloud/
---
The `upcloud` component allows you to access the information about your [UpCloud](https://www.upcloud.com/) servers from Home Assistant.
+There is currently support for the following device types within Home Assistant:
+
+- [Binary Sensor](#binary-sensor)
+- [Switch](#switch)
+
## {% linkable_title Setup %}
Set up your API user credentials in your [UpCloud control panel](https://my.upcloud.com/).
@@ -45,3 +56,47 @@ scan_interval:
type: integer
default: 60
{% endconfiguration %}
+
+## {% linkable_title Binary Sensor %}
+
+The `upcloud` binary sensor platform allows you to monitor your UpCloud servers.
+
+To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: upcloud
+ servers:
+ - 002167b7-4cb1-44b7-869f-e0900ddeeae1
+ - 00886296-6137-4074-afe3-068e16d89d00
+```
+
+{% configuration %}
+servers:
+ description: List of servers you want to monitor.
+ required: true
+ type: list
+{% endconfiguration %}
+
+## {% linkable_title Switch %}
+
+The `upcloud` switch platform allows you to control (start/stop) your UpCloud servers.
+
+To use your UpCloud servers, you first have to set up your [UpCloud hub](#configuration) and then add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: upcloud
+ servers:
+ - 002167b7-4cb1-44b7-869f-e0900ddeeae1
+ - 00886296-6137-4074-afe3-068e16d89d00
+```
+
+{% configuration %}
+servers:
+ description: List of servers you want to control.
+ required: true
+ type: list
+{% endconfiguration %}
diff --git a/source/_components/upnp.markdown b/source/_components/upnp.markdown
index a3c3cd4d3665..1c8aad7a87ce 100644
--- a/source/_components/upnp.markdown
+++ b/source/_components/upnp.markdown
@@ -14,7 +14,7 @@ ha_release: 0.18
The `upnp` component enables you to collect network statistics from your router such as bytes in/out and packets in/out. This information is provided by the [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play)/[Internet Gateway Device (IGD) Protocol](https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol) if enabled on your router.
-The IGD automatically creates port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router.
+The IGD can automatically create port forwarding mappings on your router for Home Assistant, exposing your installation to the internet. The mapping will never automatically expire. Upon stopping Home Assistant, the mapping will be removed from your router.
Please note that UPnP or NAT-PMP needs to be enabled on your router for this component to work.
diff --git a/source/_components/usps.markdown b/source/_components/usps.markdown
index 487344d202b3..5d11f98817cc 100644
--- a/source/_components/usps.markdown
+++ b/source/_components/usps.markdown
@@ -8,29 +8,40 @@ comments: false
sharing: true
footer: true
logo: usps.png
-ha_category: Postal Service
+ha_category:
+ - Postal Service
+ - Camera
+ - Sensor
ha_release: 0.52
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/camera.usps/
+ - /components/sensor.usps/
---
The `usps` platform allows one to track deliveries and inbound mail from the [US Postal Service (USPS)](https://www.usps.com/).
In addition to having a USPS account, you will need to complete the "Opt-In" process for packages by clicking "Get Started Now" on [this page](https://my.usps.com/mobileWeb/pages/intro/start.action). You must also "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see inbound mail.
+There is currently support for the following device types within Home Assistant:
+
+- [Camera](#camera)
+- [Sensor](#sensor)
+
## {% linkable_title Prerequisites %}
This component requires that a headless-capable web browser is installed on your system - either PhantomJS or Google Chrome. Preferably use Chrome if your operating system supports it, since PhantomJS is deprecated.
- If you are using a Raspberry Pi, you must use PhantomJS.
+If you are using a Raspberry Pi, you must use PhantomJS.
- Hass.io containers are based on Alpine Linux. PhanthomJS is not available for Alpine Linux. Therefore it is currently not possible to use this component on Hass.io.
+Hass.io containers are based on Alpine Linux. PhanthomJS is not available for Alpine Linux. Therefore it is currently not possible to use this component on Hass.io.
### {% linkable_title PhantomJS %}
-Install the latest version of [PhantomJS]( http://phantomjs.org/download.html). Ensure the executable is on your `PATH`. `phantomjs --version` should work and report the correct version. This is the default option and requires no further configuration.
+Install the latest version of [PhantomJS](http://phantomjs.org/download.html). Ensure the executable is on your `PATH`. `phantomjs --version` should work and report the correct version. This is the default option and requires no further configuration.
Don't use apt-get to install PhantomJS. This version is not compatible.
@@ -43,6 +54,7 @@ If you use the PhantomJS option, specify `driver: phantomjs` in your `usps` conf
Install Chrome 59 or greater (preferably the most recent). Install the latest [Chromedriver](https://sites.google.com/a/chromium.org/chromedriver/downloads). Ensure both executables are on your `PATH`. `google-chrome --version` and `chromedriver --version` should work and report the correct version.
OS-specific instructions:
+
- [Ubuntu 16](https://gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5) (Selenium server portion *not* necessary)
- [RHEL/Centos 7](https://stackoverflow.com/a/46686621)
@@ -85,3 +97,26 @@ name:
The USPS sensor logs into the MyUSPS website to scrape package data. It does not use an API.
+
+## {% linkable_title Camera %}
+
+The `usps` camera component allows you to view the mail piece images made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS sensors](#sensor).
+
+### {% linkable_title Configuration %}
+
+To customize the interval that mail images are rotated in the mail camera you can edit your `configuration.yaml` file with the following settings:
+
+```yaml
+# Example configuration.yaml entry
+camera:
+ - platform: usps
+ scan_interval: 5
+```
+
+To enable this camera in your installation, set up the USPS component first.
+
+## {% linkable_title Sensor %}
+
+The `usps` sensor component allows you to view statistics on incoming mail and packages made available through USPS via the Informed Delivery service. You must "Opt-In" to [Informed Delivery](https://informeddelivery.usps.com/box/pages/intro/start.action) to see mail images. This works in concert with [USPS camera](#camera).
+
+To enable this sensor in your installation, set up the USPS component first.
\ No newline at end of file
diff --git a/source/_components/utility_meter.markdown b/source/_components/utility_meter.markdown
new file mode 100644
index 000000000000..17d13b8763b6
--- /dev/null
+++ b/source/_components/utility_meter.markdown
@@ -0,0 +1,174 @@
+---
+layout: page
+title: "Utility Meter"
+description: "Instructions on how to integrate the Utility Meter into Home Assistant."
+date: 2019-01-02
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Sensor
+ha_release: 0.87
+ha_iot_class: "Local Push"
+logo: energy_meter.png
+ha_qa_scale: internal
+---
+
+The `utility meter` component provides functionality to track consumptions of various utilities (e.g., energy, gas, water, heating).
+
+From a user perspective, utility meters operate in cycles (usually monthly) for billing purposes. This sensor will track a source sensor values, automatically resetting the meter based on the configured cycle. On reset an attribute will store the previous meter value, providing the means for comparison operations (e.g., "did I spend more or less this month?") or billing estimation (e.g., through a sensor template that multiplies the metered value per the charged unit amount).
+
+Some utility providers have different tariffs according to time/resource availability/etc. The utility meter enables you to define the various tariffs supported by your utility provider and accounts your consumptions in accordance. When tariffs are defined a new entity will show up indicating the current tariff. In order to change the tariff, the user must call a service, usually through an automation that can be based in time or other external source (eg. a REST sensor).
+
+
+Sensors created with this component are persistent, so values are retained across restarts of home assistant. The first cycle for each sensor, will be incomplete; a sensor tracking daily usage, will start to be accurate the next day after the component was activated. A sensor tracking monthly usage, will present accurate data starting the first of the next month after being added to home assistant.
+
+
+## {% linkable_title Configuration %}
+
+To enable the Utility Meter Sensor in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+utility_meter:
+ energy:
+ source: sensor.energy_in_kwh
+ cycle: monthly
+```
+
+{% configuration %}
+source:
+ description: The entity ID of the sensor providing utility readings (energy, water, gas, heating).
+ required: true
+ type: string
+cycle:
+ description: How often to reset the counter. Valid values are `hourly`, `daily`, `weekly`, `monthly` and `yearly`.
+ required: true
+ type: string
+offset:
+ description: Cycle reset occur at the beginning of the period (0 minutes, 0h00 hours, Monday, day 1, January). This option enables the offsetting of these beginnings.
+ required: false
+ default: 0
+ type: integer
+net_consumption:
+ description: Set this to True if you would like to treat the source as a net meter. This will allow your counter to go both positive and negative.
+ required: false
+ default: false
+ type: boolean
+tariffs:
+ description: List of tariffs supported by the utility meter.
+ required: false
+ default: []
+ type: list
+{% endconfiguration %}
+
+## {% linkable_title Services %}
+
+### {% linkable_title Service `utility_meter.reset` %}
+
+Reset the Utility Meter. All sensors tracking tariffs will be reset to 0.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters.
+
+### {% linkable_title Service `utility_meter.next_tariff` %}
+
+Change the current tariff to the next in the list.
+This service must be called by the user for the tariff switching logic to occur (e.g. using an automation)
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters.
+
+### {% linkable_title Service `utility_meter.select_tariff` %}
+
+Change the current tariff to the given tariff.
+This service must be called by the user for the tariff switching logic to occur (e.g. using an automation)
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of strings that point at `entity_id`s of utility_meters.
+| `tariff` | no | String that is equal to one of the defined tariffs.
+
+# {% linkable_title Advanced Configuration %}
+
+The following configuration shows an example where 2 utility_meters (`daily_energy` and `monthly_energy`) track daily and monthly energy consumptions.
+
+Both track the same sensor (`sensor.energy`) which continously monitors the energy consumed.
+
+4 different sensors will be created, 2 per utility meter and corresponding to each tariff.
+Sensor `sensor.daily_energy_peak`, `sensor.daily_energy_offpeak`, `sensor.monthly_energy_peak` and `sensor.monthly_energy_offpeak` will automatically be created to track the consumption in each tariff for the given cycle.
+
+`utility_meter.daily_energy` and `utility_meter.monthly_energy` entities will track the current tariff and provide a service to change the tariff.
+
+```yaml
+utility_meter:
+ daily_energy:
+ source: sensor.energy
+ cycle: daily
+ tariffs:
+ - peak
+ - offpeak
+ monthly_energy:
+ source: sensor.energy
+ cycle: monthly
+ tariffs:
+ - peak
+ - offpeak
+```
+
+Assuming your energy provider tariffs are time based according to:
+
+- *peak*: from 9h00 to 21h00
+- *offpeak*: from 21h00 to 9h00 next day
+
+a time based automation can be used:
+
+```yaml
+automation:
+ trigger:
+ - platform: time
+ at: '09:00:00'
+ - platform: time
+ at: '21:00:00'
+ action:
+ - service: utility_meter.next_tariff
+ entity_id: utility_meter.daily_energy
+ - service: utility_meter.next_tariff
+ entity_id: utility_meter.monthly_energy
+```
+
+## {% linkable_title Advanced Configuration for DSMR users %}
+
+When using the [DSMR component](https://www.home-assistant.io/components/sensor.dsmr/) to get data from the utility meter, each tariff (peak and off-peak) has a separate sensor. Additionally, there is a separate sensor for gas consumption. The meter switches automatically between tariffs, so an automation is not necessary in this case. But, you do have to setup a few more instances of the `utility_meter` component.
+
+If you want to create a daily and monthly sensor for each tariff, you have to track separate sensors:
+
+- `sensor.power_consumption_low` for off-peak power
+- `sensor.power_consumption_normal` for peak power
+- `sensor.gas_consumption` for gas consumption
+
+So, tracking daily and monthly consumption for each sensor, will require setting up 6 entries under the `utility_meter` component.
+
+```yaml
+utility_meter:
+ daily_power_offpeak:
+ source: sensor.power_consumption_low
+ cycle: daily
+ daily_power_peak:
+ source: sensor.power_consumption_normal
+ cycle: daily
+ daily_gas:
+ source: sensor.gas_consumption
+ cycle: daily
+ monthly_power_offpeak:
+ source: sensor.power_consumption_low
+ cycle: monthly
+ monthly_power_peak:
+ source: sensor.power_consumption_normal
+ cycle: monthly
+ monthly_gas:
+ source: sensor.gas_consumption
+ cycle: monthly
+```
diff --git a/source/_components/vacuum.dyson.markdown b/source/_components/vacuum.dyson.markdown
deleted file mode 100644
index 50a09628d7c0..000000000000
--- a/source/_components/vacuum.dyson.markdown
+++ /dev/null
@@ -1,32 +0,0 @@
----
-layout: page
-title: "Dyson 360 Eye"
-description: "Instructions on how to integrate your Dyson Eye 360 vacuum robot within Home Assistant."
-date: 2017-08-06 10:30
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: dyson.png
-ha_category: Vacuum
-ha_iot_class: "Cloud Polling"
-ha_release: 0.51
----
-
-The `dyson` vacuum platform allows you to control your Dyson 360 Eye robot vacuum.
-
-## {% linkable_title Configuration %}
-
-You have to set up the [Dyson component](/components/dyson/) first.
-
-### {% linkable_title Component services %}
-
-This component support the following services (see [Vacuum Cleaner Robots](/components/vacuum/)):
-* [`turn_on`](/components/vacuum/#service-vacuumturn_on)
-* [`turn_off`](/components/vacuum/#service-vacuumturn_off)
-* [`start_pause`](/components/vacuum/#service-vacuumstart_pause)
-* [`stop`](/components/vacuum/#service-vacuumstop)
-* [`return_to_home`](/components/vacuum/#service-vacuumreturn_to_home)
-* [`set_fan_speed`](/components/vacuum/#service-vacuumset_fanspeed). Fan speed values:
- * `Quiet`
- * `Max`
diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown
index 6ada6edfc034..12c4e2970e37 100644
--- a/source/_components/vacuum.mqtt.markdown
+++ b/source/_components/vacuum.mqtt.markdown
@@ -22,39 +22,6 @@ To add your MQTT vacuum to your installation, add the following to your `configu
# Example configuration.yaml entry
vacuum:
- platform: mqtt
- name: "MQTT Vacuum"
- supported_features:
- - turn_on
- - turn_off
- - pause
- - stop
- - return_home
- - battery
- - status
- - locate
- - clean_spot
- - fan_speed
- - send_command
- command_topic: "vacuum/command"
- battery_level_topic: "vacuum/state"
- battery_level_template: "{{ value_json.battery_level }}"
- charging_topic: "vacuum/state"
- charging_template: "{{ value_json.charging }}"
- cleaning_topic: "vacuum/state"
- cleaning_template: "{{ value_json.cleaning }}"
- docked_topic: "vacuum/state"
- docked_template: "{{ value_json.docked }}"
- error_topic: "vacuum/state"
- error_template: "{{ value_json.error }}"
- fan_speed_topic: "vacuum/state"
- fan_speed_template: "{{ value_json.fan_speed }}"
- set_fan_speed_topic: "vacuum/set_fan_speed"
- fan_speed_list:
- - min
- - medium
- - high
- - max
- send_command_topic: 'vacuum/send_command'
```
{% configuration %}
@@ -191,8 +158,55 @@ payload_not_available:
required: false
type: string
default: offline
+json_attributes_topic:
+ description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/components/sensor.mqtt/#json-attributes-topic-configuration) documentation.
+ required: false
+ type: string
{% endconfiguration %}
+### {% linkable_title Full configuration example %}
+
+{% raw %}
+```yaml
+# Example configuration.yaml entry
+vacuum:
+ - platform: mqtt
+ name: "MQTT Vacuum"
+ supported_features:
+ - turn_on
+ - turn_off
+ - pause
+ - stop
+ - return_home
+ - battery
+ - status
+ - locate
+ - clean_spot
+ - fan_speed
+ - send_command
+ command_topic: "vacuum/command"
+ battery_level_topic: "vacuum/state"
+ battery_level_template: "{{ value_json.battery_level }}"
+ charging_topic: "vacuum/state"
+ charging_template: "{{ value_json.charging }}"
+ cleaning_topic: "vacuum/state"
+ cleaning_template: "{{ value_json.cleaning }}"
+ docked_topic: "vacuum/state"
+ docked_template: "{{ value_json.docked }}"
+ error_topic: "vacuum/state"
+ error_template: "{{ value_json.error }}"
+ fan_speed_topic: "vacuum/state"
+ fan_speed_template: "{{ value_json.fan_speed }}"
+ set_fan_speed_topic: "vacuum/set_fan_speed"
+ fan_speed_list:
+ - min
+ - medium
+ - high
+ - max
+ send_command_topic: 'vacuum/send_command'
+```
+{% endraw %}
+
### {% linkable_title Default MQTT Protocol %}
The above configuration for this component expects an MQTT protocol like the following.
@@ -202,6 +216,7 @@ The above configuration for this component expects an MQTT protocol like the fol
MQTT topic: `vacuum/command`
Possible MQTT payloads:
+
- `turn_on` - Begin cleaning
- `turn_off` - Turn the Vacuum off
- `return_to_base` - Return to base/dock
@@ -215,6 +230,7 @@ Possible MQTT payloads:
MQTT topic: `vacuum/set_fan_speed`
Possible MQTT payloads:
+
- `min` - Minimum fan speed
- `medium` - Medium fan speed
- `high` - High fan speed
@@ -231,6 +247,7 @@ MQTT payload for `send_command` can be an arbitrary value handled by the vacuum'
MQTT topic: `vacuum/state`
MQTT payload:
+
```json
{
"battery_level": 61,
@@ -243,5 +260,6 @@ MQTT payload:
```
### {% linkable_title Retrofitting a non-wifi vacuums %}
+
- Retrofitting your old Roomba with an ESP8266. [This repo](https://github.com/johnboiles/esp-roomba-mqtt) provides MQTT client firmware.
- In you own a non-wifi Neato, you can refer to [this repo](https://github.com/jeroenterheerdt/neato-serial) that uses a Raspberry Pi to retrofit an old Neato.
diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown
deleted file mode 100644
index 9ed678cfb61f..000000000000
--- a/source/_components/vacuum.neato.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: page
-title: "Neato Robotics Vacuum"
-description: "Instructions on how to integrate a Neato Botvac Connected Vacuum within Home Assistant."
-date: 2017-10-18 16:11
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: neato.png
-ha_category: Vacuum
-ha_release: 0.57
-ha_iot_class: "Cloud Polling"
-redirect_from: /components/sensor.neato/
----
-
-The `neato` vacuum platform allows you to control your [Neato Botvac Connected](https://www.neatorobotics.com/robot-vacuum/botvac-connected-series/).
-The status will contain attributes on the robots last clean session.
-
-
-If you notice the robot stops responding to commands check the state to see if the robot is "unavailable". If you see "unavailable" first try to restart the vacuum and wait about 5 minutes to see if it is no longer "unavailable". If you are still having issues check the Neato app and make sure your robot is connected and working. If it is not then follow the steps in the app to reset your robot and give it the same name as before then restart Home Assistant.
-
-
-## {% linkable_title Configuration %}
-
-To add `neato` vacuum to your installation, please follow instructions in [Neato component](/components/neato/).
-
-Currently supported services are:
-
-- `start`
-- `pause`
-- `stop`
-- `return_to_base`
-- `locate`
diff --git a/source/_components/vacuum.xiaomi_miio.markdown b/source/_components/vacuum.xiaomi_miio.markdown
index 2c7911175042..4a806f3298d1 100644
--- a/source/_components/vacuum.xiaomi_miio.markdown
+++ b/source/_components/vacuum.xiaomi_miio.markdown
@@ -13,7 +13,7 @@ ha_release: 0.51
ha_iot_class: "Local Polling"
---
-The `xiaomi miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](https://www.mi.com/roomrobot/).
+The `xiaomi_miio` vacuum platform allows you to control the state of your [Xiaomi Mi Robot Vacuum](https://www.mi.com/roomrobot/).
Currently supported services are:
@@ -25,6 +25,7 @@ Currently supported services are:
- `clean_spot`
- `set_fan_speed`
- remote control of your robot.
+- `xiaomi_clean_zone`
## {% linkable_title Configuration %}
@@ -64,45 +65,113 @@ In addition to all of the services provided by the `vacuum` component (`start`,
- `xiaomi_remote_control_stop`
- `xiaomi_remote_control_move`
- `xiaomi_remote_control_move_step`
+- `xiaomi_clean_zone`
### {% linkable_title Service `vacuum.xiaomi_remote_control_start` %}
Start the remote control mode of the robot. You can then move it with `remote_control_move`; when done, call `remote_control_stop`.
-| Service data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `entity_id` | yes | Only act on specific robot; default targets all |
+| Service data attribute | Optional | Description |
+|---------------------------|----------|---------------------------------------------------|
+| `entity_id` | yes | Only act on a specific robot; default targets all |
### {% linkable_title Service `vacuum.xiaomi_remote_control_stop` %}
Exit the remote control mode of the robot.
-| Service data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `entity_id` | yes | Only act on specific robot; default targets all |
+| Service data attribute | Optional | Description |
+|---------------------------|----------|---------------------------------------------------|
+| `entity_id` | yes | Only act on a specific robot; default targets all |
### {% linkable_title Service `vacuum.xiaomi_remote_control_move` %}
Remote control the robot. Please ensure you first set it in remote control mode with `remote_control_start`.
-| Service data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `entity_id` | yes | Only act on specific robot; default targets all |
-| `velocity` | no | Speed: between -0.29 and 0.29 |
-| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
-| `duration` | no | The number of milliseconds that the robot should move for |
+| Service data attribute | Optional | Description |
+|---------------------------|----------|-----------------------------------------------------------|
+| `entity_id` | yes | Only act on a specific robot; default targets all |
+| `velocity` | no | Speed: between -0.29 and 0.29 |
+| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
+| `duration` | no | The number of milliseconds that the robot should move for |
### {% linkable_title Service `vacuum.xiaomi_remote_control_move_step` %}
Enter remote control mode, make one move, stop, and exit remote control mode.
+| Service data attribute | Optional | Description |
+|---------------------------|----------|-----------------------------------------------------------|
+| `entity_id` | yes | Only act on a specific robot; default targets all |
+| `velocity` | no | Speed: between -0.29 and 0.29 |
+| `rotation` | no | Rotation: between -179 degrees and 179 degrees |
+| `duration` | no | The number of milliseconds that the robot should move for |
+
+### {% linkable_title Service `vacuum.xiaomi_clean_zone` %}
+
+Start the cleaning operation in the areas selected for the number of repeats indicated.
+
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific robot; default targets all |
-| `velocity` | no | Speed: between -0.29 and 0.29. |
-| `rotation` | no | Rotation: between -179 degrees and 179 degrees. |
-| `duration` | no | The number of milliseconds that the robot should move for |
+| `zone` | no | List of zones. Each zone is an array of 4 integer value. Example: [[23510,25311,25110,26361]] |
+| `repeats` | no | Number of cleaning repeats for each zone between 1 and 3. |
+Example of `vacuum.xiaomi_clean_zone` use:
+
+Inline array:
+```yaml
+automation:
+ - alias: Test vacuum zone3
+ trigger:
+ - event: start
+ platform: homeassistant
+ condition: []
+ action:
+ - service: vacuum.xiaomi_clean_zone
+ data_template:
+ entity_id: vacuum.xiaomi_vacuum
+ repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
+ zone: [[30914,26007,35514,28807], [20232,22496,26032,26496]]
+```
+Array with inline zone:
+```yaml
+automation:
+ - alias: Test vacuum zone3
+ trigger:
+ - event: start
+ platform: homeassistant
+ condition: []
+ action:
+ - service: vacuum.xiaomi_clean_zone
+ data_template:
+ entity_id: vacuum.xiaomi_vacuum
+ repeats_template: '{{states.input_number.vacuum_passes.state|int}}'
+ zone:
+ - [30914,26007,35514,28807]
+ - [20232,22496,26032,26496]
+```
+Array mode:
+```yaml
+automation:
+ - alias: Test vacuum zone3
+ trigger:
+ - event: start
+ platform: homeassistant
+ condition: []
+ action:
+ - service: vacuum.xiaomi_clean_zone
+ data:
+ entity_id: vacuum.xiaomi_vacuum
+ repeats: 1
+ zone:
+ - - 30914
+ - 26007
+ - 35514
+ - 28807
+ - - 20232
+ - 22496
+ - 26032
+ - 26496
+```
## {% linkable_title Attributes %}
In addition to [all of the attributes provided by the `vacuum` component](/components/vacuum/#attributes),
@@ -134,23 +203,23 @@ The following table shows the units of measurement for each attribute:
## {% linkable_title Retrieving the Access Token %}
-As per [python-miio issue 185](https://github.com/rytilahti/python-miio/issues/185) the Android Mi Home app no longer stores the token within the database (it's retrieved from Xiaomi servers from version 5.0.31+). Currently the only known fix is to uninstall, then install a downgraded version of the apk. Apkmirror is a trusted source for older versions of the app. [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/) is confirmed as working for the following Android methods. Using older version than 5.0.30 is not recommended as it might lack support for some newer devices like the Roborock S50.
+As per Version 5.4.49 the Android Mi Home app stores the token readable in the log files. It can easily be retrieved in the folder Smarthome on in the Android device. Just open the text file inside the Smarthome/logs folder and search for the token.
-The iPhone app still stores the token in the sqlite db as of v4.9.1 (Nov 7, 2018).
+The iPhone app still stores the token in the SQLite db as of v4.10.2 (Dec 22, 2018).
This token (32 hexadecimal characters) is required for the Xiaomi Mi Robot Vacuum, Mi Robot 2 (Roborock) Vacuum, Xiaomi Philips Lights and Xiaomi IR Remote. The Xiaomi Gateway uses another security method and requires a `key` (16 alphanumeric chars), which can be obtained
easily via a hidden menu item at the Mi-Home app or using the `miio` command line tool.
-#### {% linkable_title Miio command line tool %}
+### {% linkable_title Miio command line tool %}
-You can install the command line tool with:
+You can install the command line tool using the following command:
```bash
npm install -g miio
```
-Discovering devices on current network
+Discovering devices on the current network:
```bash
miio discover
@@ -170,12 +239,12 @@ Support: At least basic
The information output is:
-- __Device ID__ - the unique identifier of the device, does not change if the device is reset.
-- __Model ID__ - the model id if it could be determined, this indicates what type of device it is
-- __Address__ - the IP that the device has on the network
-- __Token__ - the token of the device or ??? if it could not be automatically determined
+- `Device ID` - The unique identifier of the device, does not change if the device is reset.
+- `Model ID`- The model id if it could be determined, this indicates what type of device it is.
+- `Address` - The IP that the device has on the network.
+- `Token` - The token of the device or `???` if it could not be automatically determined.
-#### {% linkable_title Windows and Android %}
+### {% linkable_title Windows and Android %}
To fetch the token follow these instructions depending on your mobile phone platform.
@@ -183,14 +252,14 @@ To fetch the token follow these instructions depending on your mobile phone plat
2. Download and extract the [MiToolKit.zip](https://github.com/ultrara1n/MiToolkit/releases).
3. Enable developer mode and USB debugging on the Android phone and plug it into the computer.
4. Change the MiToolKit language to English if you need to.
-5. Click "Extract Token"
+5. Click "Extract Token".
6. On the phone, you must confirm the backup. DO NOT enter any password and press the button to make the backup.
7. Once you have confirmed the backup the token extraction will begin, it should appear in the MiToolKit shortly.
-8. If you don't get a token, close MiToolKit completely, delete the folder MiToolkit\apps\com.xiaomi.smarthome and relaunch MiToolKit to force recreate a new backup (sometimes the files would not be overwritten before deleting the old ones)
+8. If you don't get a token, close MiToolKit completely, delete the folder MiToolkit\apps\com.xiaomi.smarthome and relaunch MiToolKit to force recreate a new backup (sometimes the files would not be overwritten before deleting the old ones).
-#### {% linkable_title Linux and Android (not rooted) %}
+### {% linkable_title Linux and Android (not rooted) %}
-Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from a SQLite file inside your phone.
+Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone.
Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly.
@@ -198,7 +267,7 @@ Before you begin you need to install `libffi-dev` and `libssl-dev` by running th
sudo apt-get install libffi-dev libssl-dev
```
-If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
+If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
```bash
sudo -u homeassistant -H -s
@@ -209,17 +278,23 @@ To fetch the token follow these instructions depending on your mobile phone plat
1. Configure the robot with the Mi-Home app.
2. Enable developer mode, USB debugging and plug the Android phone into the computer.
-3. Get ADB e.g., `apt-get install android-tools-adb` or `apt-get install adb`
-4. `adb devices` should list your device. Consult ADB manual if necessary.
-5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may required single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'`
-6. Download the 'ADB Backup Extractor' from [here](https://sourceforge.net/projects/adbextractor/files/latest/download)
-7. Extract the data from the backup: `java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar` (enter the password, if prompted)
-8. Untar the unpacked data: `tar -xvf unpacked.tar`
-9. `sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";'` returns the token for your Xiaomi vacuum bot.
-
-#### {% linkable_title Linux and Android (rooted!) %}
-
-Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from a SQLite file inside your phone.
+3. Get ADB by running `apt-get install android-tools-adb` or `apt-get install adb`.
+4. `adb devices` should list your device. Consult the ADB manual if necessary.
+5. Issue a backup command via adb: `adb backup -noapk com.xiaomi.smarthome -f backup.ab` (set a password if prompted on your phone). Some devices may require single quotes in the command `adb backup '-noapk com.xiaomi.smarthome -f backup.ab'`.
+6. Download the ['ADB Backup Extractor'](https://sourceforge.net/projects/adbextractor/files/latest/download).
+7. Extract the data from the backup: (enter the password, if prompted)
+ ```bash
+ java -jar Android\ Backup\ Utilities/Android\ Backup\ Extractor/android-backup-extractor-20171005-bin/abe.jar unpack backup.ab unpacked.tar
+ ```
+8. Untar the unpacked data: `tar -xvf unpacked.tar`.
+9. The following command returns the token for your Xiaomi vacuum bot:
+ ```bash
+ sqlite3 apps/com.xiaomi.smarthome/db/miio2.db 'select token from devicerecord where name like "%Vacuum%";'
+ ```
+
+### {% linkable_title Linux and Android (rooted!) %}
+
+Follow the pairing process using your phone and Mi-Home app. You will be able to retrieve the token from an SQLite file inside your phone.
Before you begin you need to install `libffi-dev` and `libssl-dev` by running the command below. This is needed for `python-miio` to be installed correctly.
@@ -227,7 +302,7 @@ Before you begin you need to install `libffi-dev` and `libssl-dev` by running th
sudo apt-get install libffi-dev libssl-dev
```
-If your Home Assistant installation is running in a [Virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
+If your Home Assistant installation is running in a [virtualenv](/docs/installation/virtualenv/#upgrading-home-assistant), make sure you activate it by running the commands below.
```bash
sudo -u homeassistant -H -s
@@ -238,40 +313,51 @@ To fetch the token follow these instructions depending on your mobile phone plat
1. Configure the robot with the Mi-Home app.
2. Enable developer mode, USB debugging and root permission only for ADB on the Android phone and plug it into the computer.
-3. Get ADB f.e. `apt-get install android-tools-adb`
-4. `adb devices` should list your device
-5. `adb root` (does work for development builds only: ones with `ro.debuggable=1`)
-6. `adb shell` (for those using Magisk based root the previous command won't work. After entering a shell, type `su` to enter the root shell)
-7. `echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db` returns a list of all registered devices including IP address and token.
+3. Get ADB (e.g, using `apt-get install android-tools-adb`).
+4. The command `adb devices` should list your device.
+5. The command `adb root` (does work for development builds only: ones with `ro.debuggable=1`).
+6. The command `adb shell` (for those using Magisk based root the this command won't work. After entering a shell, type `su` to enter the root shell and try again).
+7. The following command returns a list of all registered devices including IP address and token:
+ ```bash
+ echo "select name,localIP,token from devicerecord;" | sqlite3 /data/data/com.xiaomi.smarthome/databases/miio2.db
+ ```
-#### {% linkable_title iOS %}
+### {% linkable_title iOS %}
1. Configure the robot with the Mi-Home app.
2. Using iTunes, create an unencrypted backup of your iPhone.
3. Install [iBackup Viewer](https://www.imactools.com/iphonebackupviewer/), open it, and open your backup.
4. Open the "Raw Data" module.
5. Navigate to `com.xiaomi.mihome`.
-6. Search for a file that looks like this: `123456789_mihome.sqlite` – note that `_mihome.sqlite` is *not* the correct file.
+6. Search for a file that looks like this: `123456789_mihome.sqlite` (Note: `_mihome.sqlite` is *not* the correct file).
7. Save this file to your filesystem.
8. Install [DB Browser for SQLite](https://sqlitebrowser.org/).
9. Open DB Browser and load the `.sqlite` file you saved from your backup.
10. Click on the `Execute SQL` tab.
-11. Input and run this query: `SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%"`
+11. Input and run this query:
+ ```sql
+ SELECT ZTOKEN FROM ZDEVICE WHERE ZMODEL LIKE "%vacuum%"
+ ```
12. Copy the returned 32-digit hexadecimal string to your clipboard.
-13. Open `Terminal` and execute this command: `echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000`
+13. Open `Terminal` and execute this command:
+ ```bash
+ echo '0: ' | xxd -r -p | openssl enc -d -aes-128-ecb -nopad -nosalt -K 00000000000000000000000000000000
+ ```
14. Use the resulting string as your token.
-#### {% linkable_title Bluestacks %}
+### {% linkable_title Bluestacks %}
1. Configure the robot with the Mi-Home app.
2. Install [BlueStacks](https://www.bluestacks.com).
3. Set up the Mi-Home app in BlueStacks and login to synchronize devices.
4. Use [BlueStacks Tweaker](https://forum.xda-developers.com/general/general/bluestacks-tweaker-2-tool-modifing-t3622681) to access the filesystem and retrieve the token.
-#### {% linkable_title Selecting token manually (Windows and Android)%}
+### {% linkable_title Selecting token manually (Windows and Android) %}
+
+The following instruction explained an alternative method, in case the MiToolKit didn't work.
+
+Software Required:
-The following instruction explained an alternativ way, if MiToolKit didn't work.
- Software Required:
- Android ADB is contained in [Android SDK](https://developer.android.com/studio/releases/platform-tools)
- [Mi-Home version 5.0.30](https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-30-release/)
- [Android Backup Extractor](https://sourceforge.net/projects/adbextractor/)
@@ -280,15 +366,15 @@ The following instruction explained an alternativ way, if MiToolKit didn't work.
2. Open MiHome, log-in and add your devices
3. Enable USB-Debugging on your Android
4. Create a backup from your MiHome App, by using adb
- ```bash
- adb backup com.xiaomi.smarthome
- ```
- Now the backup App opens on you Android-Device. You don't need to set a password, just click save.
+ ```bash
+ adb backup com.xiaomi.smarthome
+ ```
+ Now the backup App opens on you Android-Device. You don't need to set a password, just click save.
5. Extract the backup-file with android-backup-extractor
- ```bash
- java -jar abe.jar unpack backup.ab backup.tar
- ```
- After that, you kann open the file with WinRaR or what ever you like.
+ ```bash
+ java -jar abe.jar unpack backup.ab backup.tar
+ ```
+ After that, you kann open the file with WinRaR or what ever you like.
6. Go to \apps\com.xiaomi.smarthome\db
7. Open miio2.db with SQLite Browser
8. You can find your device tokens in "devicerecord" table
diff --git a/source/_components/velbus.markdown b/source/_components/velbus.markdown
index c5cb790ee999..7751a97e4161 100644
--- a/source/_components/velbus.markdown
+++ b/source/_components/velbus.markdown
@@ -8,13 +8,30 @@ comments: false
sharing: true
footer: true
logo: velbus.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Climate
+ - Sensor
+ - Switch
ha_iot_class: "Local Push"
ha_release: "0.50"
+redirect_from:
+ - /components/climate.velbus/
+ - /components/sensor.velbus/
+ - /components/binary_sensor.velbus/
+ - /components/switch.velbus/
---
The `velbus` component supports the Velbus USB, Velbus serial and a TCP/IP gateway.
+There is currently support for the following device types within Home Assistant:
+
+- Binary Sensor
+- Climate
+- Sensor
+- Switch
+
## {% linkable_title Configuration %}
The gateway needs to be configured by adding the following lines to your `configuration.yaml` file:
diff --git a/source/_components/velux.markdown b/source/_components/velux.markdown
index 2a6731b25e3b..2f9d9f2d25cc 100644
--- a/source/_components/velux.markdown
+++ b/source/_components/velux.markdown
@@ -8,12 +8,24 @@ comments: false
sharing: true
footer: true
logo: velux.png
-ha_category: Hub
+ha_category:
+ - Scene
+ - Cover
ha_release: 0.49
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/scene.velux/
+ - /components/cover.velux/
---
-[Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200.
+[Velux](http://www.velux.com) integration for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200.
+
+At least firmware version > 2.0.0.0 is required on the KLF 200 device. The firmware images may be obtained [here](https://www.velux.com/api/klf200) and may be imported via the webinterface of your KLF 200.
+
+There is currently support for the following device types within Home Assistant:
+
+- Cover
+- Scene
## {% linkable_title Configuration %}
@@ -23,7 +35,7 @@ A `velux` section must be present in the `configuration.yaml` file and contain t
# Example configuration.yaml entry
velux:
host: "192.168.1.23"
- password: "velux123"
+ password: "VELUX_PASSWORD"
```
{% configuration %}
@@ -32,7 +44,7 @@ host:
required: true
type: string
password:
- description: The password of the KLF 200 interface.
+ description: The password of the KLF 200 interface. Note that this is the same as the WiFi password (in the upper box on the back), *not* the password for the web login.
required: true
type: string
{% endconfiguration %}
diff --git a/source/_components/vera.markdown b/source/_components/vera.markdown
index 94de436693dc..93f02e8d9155 100644
--- a/source/_components/vera.markdown
+++ b/source/_components/vera.markdown
@@ -8,13 +8,42 @@ comments: false
sharing: true
footer: true
logo: vera.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Cover
+ - Light
+ - Lock
+ - Scene
+ - Sensor
+ - Switch
+ - Climate
ha_release: pre 0.7
+redirect_from:
+ - /components/binary_sensor.vera/
+ - /components/cover.vera/
+ - /components/light.vera/
+ - /components/lock.vera/
+ - /components/scene.vera/
+ - /components/sensor.vera/
+ - /components/switch.vera/
+ - /components/climate.vera/
---
The [Vera](http://getvera.com) hub is a controller mainly connecting to Z-Wave devices.
-Switches, Lights (inc Dimmers), Locks, Sensors, Binary sensors, and Scenes are supported - and will be automatically added when HA connects to your Vera controller.
+There is currently support for the following device types within Home Assistant:
+
+- Binary Sensor
+- Cover
+- Light
+- Lock
+- Scene
+- Sensor
+- Switch
+- Climate
+
+and will be automatically added when HA connects to your Vera controller.
## {% linkable_title Configuration %}
@@ -56,3 +85,13 @@ vera:
### {% linkable_title Using Z-Wave devices in automation %}
If you want to use a Z-Wave device from the Vera controller in Home Assistant automation, you'll need the entity id. In the Home Assistant UI you'll find all entities listed under the
icon of the Developer Tools section. Look for entities that contain 'Vera Device Id' in their attributes, and you'll find the entity id on the left.
+
+### {% linkable_title Sensor %}
+
+The `vera` platform allows you to get data from your [Vera](http://getvera.com/) sensors from within Home Assistant.
+
+Please note that some vera sensors (such as _motion_ and _flood_ sensors) are _armable_ which means that vera will send alerts (email messages to txts) when they are _armed_ and change state.
+
+Home Assistant will display the state of these sensors regardless of the _armed_ state.
+
+To allow you to change the _armed state_ - Home Assistant will create a switch as well as a sensor for each _Armable_ sensor. You can hide these switches using customization if you wish.
\ No newline at end of file
diff --git a/source/_components/verisure.markdown b/source/_components/verisure.markdown
index 68064ebe2425..0deb2c115e4f 100644
--- a/source/_components/verisure.markdown
+++ b/source/_components/verisure.markdown
@@ -8,23 +8,37 @@ comments: false
sharing: true
footer: true
logo: verisure.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Alarm
+ - Binary Sensor
+ - Camera
+ - Lock
+ - Sensor
+ - Switch
ha_release: pre 0.7
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/alarm_control_panel.verisure/
+ - /components/binary_sensor.verisure/
+ - /components/camera.verisure/
+ - /components/lock.verisure/
+ - /components/sensor.verisure/
+ - /components/switch.verisure/
---
Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices.
-We support:
+There is currently support for the following device types within Home Assistant:
- * [Alarm](/components/alarm_control_panel.verisure/)
- * [Smartplugs](/components/switch.verisure/)
- * Reading from thermometers and hygrometers integrated in various [devices](/components/sensor.verisure/)
- * Mouse Detector
- * [Locks](/components/lock.verisure/)
- * [Door & Window](/components/binary_sensor.verisure/)
+- Alarm
+- Camera
+- Switch (Smartplug)
+- Sensor (Thermometers, Hygrometers and Mouse detectors)
+- Lock
+- Binary Sensor (Door & Window)
- ## {% linkable_title Configuration %}
+## {% linkable_title Configuration %}
To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file:
@@ -93,3 +107,26 @@ giid:
required: false
type: string
{% endconfiguration %}
+
+## {% linkable_title Alarm Control Panel %}
+
+The Verisure alarm control panel platform allows you to control your [Verisure](https://www.verisure.com/) Alarms.
+
+The requirement is that you have setup your Verisure hub first, with the instruction above.
+
+The `changed_by` attribute enables one to be able to take different actions depending on who armed/disarmed the alarm in [automation](/getting-started/automation/).
+
+```yaml
+automation:
+ - alias: Alarm status changed
+ trigger:
+ - platform: state
+ entity_id: alarm_control_panel.alarm_1
+ action:
+ - service: notify.notify
+ data_template:
+ message: >
+ {% raw %}Alarm changed from {{ trigger.from_state.state }}
+ to {{ trigger.to_state.state }}
+ by {{ trigger.to_state.attributes.changed_by }}{% endraw %}
+```
\ No newline at end of file
diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown
index fe00e91f204f..44d210d355d0 100644
--- a/source/_components/volvooncall.markdown
+++ b/source/_components/volvooncall.markdown
@@ -52,22 +52,47 @@ volvooncall:
region: cn
```
-A more advanced example for setting the vehicle name and selecting what resources to display:
+{% configuration %}
+username:
+ description: The username associated with your Volvo On Call account.
+ required: true
+ type: string
+password:
+ description: The password for your given Volvo On Call account.
+ required: true
+ type: string
+region:
+ description: The region where the Volvo is registered. Needs to be set for users in North America or China.
+ required: false
+ type: string
+service_url:
+ description: The service URL to use for Volvo On Call. Normally not necessary to specify.
+ required: false
+ type: string
+mutable:
+ description: If set to true, include components that can make changes to the vehicle (unlock, start engine, start heater etc).
+ required: false
+ default: true
+ type: boolean
+name:
+ description: Make it possible to provide a name for the vehicles.
+ required: false
+ type: string
+resources:
+ description: A list of resources to display (defaults to all available).
+ required: false
+ type: list
+scandinavian_miles:
+ description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range.
+ required: false
+ type: boolean
+ default: false
+{% endconfiguration %}
-```yaml
-# Example configuration.yaml entry
-volvooncall:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
- name:
- abc123: 'Batmobile'
- resources:
- - odometer
- - lock
- - heater
-```
+### {% linkable_title Available Resources %}
+
+The list of currently available resources:
-Currently available resources:
- `position`
- `lock`
- `heater`
@@ -105,39 +130,19 @@ Currently available resources:
- `any_door_open`
- `any_window_open`
-{% configuration %}
-username:
- description: The username associated with your Volvo On Call account.
- required: true
- type: string
-password:
- description: The password for your given Volvo On Call account.
- required: true
- type: string
-region:
- description: The region where the Volvo is registered. Needs to be set for users in North America or China.
- required: false
- type: string
-service_url:
- description: The service URL to use for Volvo On Call. Normally not necessary to specify.
- required: false
- type: string
-mutable:
- description: If set to true, include components that can make changes to the vehicle (unlock, start engine, start heater etc).
- required: false
- default: true
- type: boolean
-name:
- description: Make it possible to provide a name for the vehicles.
- required: false
- type: string
-resources:
- description: A list of resources to display (defaults to all available).
- required: false
- type: list
-scandinavian_miles:
- description: If set to true, Scandinavian miles ("mil") are used for distances and fuel range.
- required: false
- type: boolean
- default: false
-{% endconfiguration %}
+## {% linkable_title Advanced Examples %}
+
+A more advanced example for setting the vehicle name and selecting what resources to display:
+
+```yaml
+# Example configuration.yaml entry
+volvooncall:
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
+ name:
+ abc123: 'Batmobile'
+ resources:
+ - odometer
+ - lock
+ - heater
+```
diff --git a/source/_components/vultr.markdown b/source/_components/vultr.markdown
index f5313ff065e0..d960c2829727 100644
--- a/source/_components/vultr.markdown
+++ b/source/_components/vultr.markdown
@@ -8,14 +8,28 @@ comments: false
sharing: true
footer: true
featured: false
-ha_category: System Monitor
+ha_category:
+ - System Monitor
+ - Binary Sensor
+ - Sensor
+ - Switch
ha_release: "0.58"
logo: vultr.png
ha_iot_class: "Cloud Polling"
+redirect_from:
+ - /components/binary_sensor.vultr/
+ - /components/sensor.vultr/
+ - /components/switch.vultr/
---
The `vultr` component allows you to access information about and interact with your [Vultr](https://www.vultr.com) subscriptions (Virtual Private Servers) from Home Assistant.
+There is currently support for the following device types within Home Assistant:
+
+- [Binary Sensor](#binary-sensor)
+- [Sensor](#sensor)
+- [Switch](#switch)
+
## {% linkable_title Configuration %}
Obtain your API key from your [Vultr Account](https://my.vultr.com/settings/#settingsapi).
@@ -38,3 +52,151 @@ api_key:
required: true
type: string
{% endconfiguration %}
+
+## {% linkable_title Binary sensor %}
+
+The `vultr` binary sensor platform allows you to monitor your [Vultr](https://www.vultr.com/) subscription to see if it is powered on or not.
+
+### {% linkable_title Configuration %}
+
+To use this binary sensor, you first have to set up your Vultr hub.
+
+
+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server`
+
+
+Minimal `configuration.yaml` (produces `binary_sensor.vultr_web_server`):
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: vultr
+ subscription: 123456
+```
+
+{% configuration %}
+subscription:
+ description: The subscription you want to monitor, this can be found in the URL when viewing a server.
+ required: true
+ type: string
+name:
+ description: The name you want to give this binary sensor.
+ required: false
+ default: "Vultr {subscription label}"
+ type: string
+{% endconfiguration %}
+
+### {% linkable_title Full example %}
+
+Full `configuration.yaml` (produces `binary_sensor.totally_awesome_server`):
+
+```yaml
+binary_sensor:
+ - platform: vultr
+ name: totally_awesome_server
+ subscription: 12345
+```
+
+## {% linkable_title Sensor %}
+
+The `vultr` sensor platform will allow you to view current bandwidth usage and pending charges against your [Vultr](https://www.vultr.com/) subscription.
+
+To use this sensor, you must set up your Vultr hub.
+
+
+The following examples assume a subscription that has an ID of `123456` and a label of `Web Server`
+
+
+Minimal `configuration.yaml` (produces `sensor.vultr_web_server_current_bandwidth_used` and `sensor.vultr_web_server_pending_charges`):
+
+```yaml
+sensor:
+ - platform: vultr
+ subscription: 123456
+```
+
+{% configuration %}
+subscription:
+ description: The Vultr subscription to monitor, this can be found in the URL when viewing a subscription.
+ required: true
+ type: string
+name:
+ description: The name to give this sensor.
+ required: false
+ default: "Vultr {Vultr subscription label} {monitored condition name}"
+ type: string
+monitored_conditions:
+ description: List of items you want to monitor for each subscription.
+ required: false
+ detault: All conditions
+ type: list
+ keys:
+ current_bandwidth_used:
+ description: The current (invoice period) bandwidth usage in Gigabytes (GB).
+ temperature:
+ pending_charges: The current (invoice period) charges that have built up for this subscription. Value is in US Dollars (US$).
+{% endconfiguration %}
+
+Full `configuration.yaml` using `{}` to format condition name (produces `sensor.server_current_bandwidth_used` and `sensor.server_pending_charges`):
+
+```yaml
+sensor:
+ - platform: vultr
+ name: Server {}
+ subscription: 123456
+ monitored_conditions:
+ - current_bandwidth_used
+ - pending_charges
+```
+
+Custom `configuration.yaml` with only one condition monitored (produces `sensor.web_server_bandwidth`):
+
+```yaml
+sensor:
+ - platform: vultr
+ name: Web Server Bandwidth
+ subscription: 123456
+ monitored_conditions:
+ - current_bandwidth_used
+```
+
+## {% linkable_title Switch %}
+
+The `vultr` switch platform allows you to control (start/stop) your [Vultr](https://www.vultr.com/) subscription.
+
+To control your Vultr subscription, you first have to set up your Vultr hub.
+
+### {% linkable_title Configuration %}
+
+Minimal `configuration.yaml` (produces `switch.vultr_web_server`):
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: vultr
+ subscription: YOUR_SUBSCRIPTION_ID
+```
+
+{% configuration %}
+subscription:
+ description: List of droplets you want to control.
+ required: true
+ type: string
+name:
+ description: The name you want to give this switch.
+ required: false
+ default: "Vultr {subscription label}"
+ type: string
+{% endconfiguration %}
+
+### {% linkable_title Additional Examples %}
+
+Full example that produces `switch.amazing_server`, assuming a subscription that has an ID of `123456` and a label of `Web Server`:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: vultr
+ name: Amazing Server
+ subscription: 123456
+```
\ No newline at end of file
diff --git a/source/_components/w800rf32.markdown b/source/_components/w800rf32.markdown
index 47602c33abcf..3a87e0b591ae 100644
--- a/source/_components/w800rf32.markdown
+++ b/source/_components/w800rf32.markdown
@@ -8,15 +8,19 @@ comments: false
sharing: true
footer: true
logo: w800rf32.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
ha_release: 0.83
ha_iot_class: "Local Push"
+redirect_from:
+ - /components/binary_sensor.w800rf32/
---
-The `w800rf32` component supports W800RF32 devices by [WGL Designs](http://www.wgldesigns.com/w800.html) which
-communicate in the frequency range of 310MHz or if you are outside Canada or the U.S., 433.92 MHz.
+The `w800rf32` component supports W800RF32 devices by [WGL Designs](http://www.wgldesigns.com/w800.html) which
+communicate in the frequency range of 310MHz or if you are outside Canada or the U.S., 433.92 MHz.
-The W800 family of RF receivers are designed to receive X10 RF signals generated from X10 products: Palm Pad
+The W800 family of RF receivers are designed to receive X10 RF signals generated from X10 products: Palm Pad
remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices.
To enable W800rf32 in your installation, add the following to your `configuration.yaml` file:
@@ -34,5 +38,47 @@ device:
type: string
{% endconfiguration %}
+## {% linkable_title Binary Sensor %}
+The `w800rf32` platform supports X10 RF binary sensors such as Palm Pad remotes, key chain remotes, Hawkeye motion detectors, and many, many other X10 RF devices. Some that have specifically been used with this are the KR19A keychain, MS16A motion detector and the RSS18 four button wall mount keypad.
+## {% linkable_title Setting up your devices %}
+
+Once you have set up your [w800rf32 hub](/components/w800rf32/), add the binary sensors to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: w800rf32
+ devices:
+ a1:
+ name: motion_hall
+ a2:
+ name: motion_kitchen
+```
+
+{% configuration %}
+devices:
+ description: A list of devices.
+ required: true
+ type: map
+ keys:
+ name:
+ description: Override the name to use in the frontend.
+ required: false
+ type: string
+ device_class:
+ description: "The [type or class of the sensor](/components/binary_sensor/) to set the icon in the frontend."
+ required: false
+ type: device_class
+ off_delay:
+ description: For sensors that only sends 'On' state updates, this variable sets a delay after which the sensor state will be updated back to 'Off'.
+ required: false
+ type: integer
+{% endconfiguration %}
+
+Binary sensors have only two states, "on" and "off". Many door or window opening sensors will send a signal each time the door/window is open or closed. However, depending on their hardware or on their purpose, some sensors are only able to signal their "on" state:
+
+- Most motion sensors send a signal each time they detect motion. They stay "on" for a few seconds and go back to sleep, ready to signal other motion events. Usually, they do not send a signal when they go back to sleep.
+
+For those devices, use the *off_delay* parameter. It defines a delay after which a device will go back to an "Off" state. That "Off" state will be fired internally by Home Assistant, just as if the device fired it by itself. If a motion sensor can only send signals once every 5 seconds, sets the *off_delay* parameter to *seconds: 5*.
\ No newline at end of file
diff --git a/source/_components/water_heater.econet.markdown b/source/_components/water_heater.econet.markdown
index 5ac129c4c381..5e2c439d5463 100644
--- a/source/_components/water_heater.econet.markdown
+++ b/source/_components/water_heater.econet.markdown
@@ -14,8 +14,7 @@ ha_iot_class: "Cloud Polling"
redirect_from: /components/climate.econet/
---
-
-The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and enable vaction mode.
+The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](http://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and enable vacation mode.
## {% linkable_title Configuration %}
@@ -46,9 +45,9 @@ You can use the service `econet.add_vacation` to create a new vacation for your
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | The entity id of the water heater to add the vaction to.
-| `start_date` | yes | This is a Unix timestamp for when the vaction should start.
-| `end_date` | yes | this is a Unix timestamp for when the vaction should end.
+| `entity_id` | yes | The entity id of the water heater to add the vacation to.
+| `start_date` | yes | This is a Unix timestamp for when the vacation should start.
+| `end_date` | yes | this is a Unix timestamp for when the vacation should end.
The Unix timestamps can be obtained from the `input_datetime` component. This will allow you to graphically set the start and end date.
@@ -56,11 +55,11 @@ The Unix timestamps can be obtained from the `input_datetime` component. This wi
### {% linkable_title Service `econet.delete_vacation` %}
-You can use the service `econet.delete_vacation` to remove all vactions from an EcoNet water heater.
+You can use the service `econet.delete_vacation` to remove all vacations from an EcoNet water heater.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | The entity id of the water heater to remove the vaction from.
+| `entity_id` | yes | The entity id of the water heater to remove the vacation from.
Econet water heaters use to live under the `climate` platform prior to release 0.81.
diff --git a/source/_components/water_heater.markdown b/source/_components/water_heater.markdown
index 56917dcc57b1..7e5d08687d63 100644
--- a/source/_components/water_heater.markdown
+++ b/source/_components/water_heater.markdown
@@ -9,9 +9,8 @@ sharing: true
footer: true
---
-
The `water_heater` component is built for the controlling and monitoring of hot water heaters.
-
+
To enable this component, pick one of the platforms, and add it to your `configuration.yaml`:
```yaml
@@ -23,6 +22,7 @@ water_heater:
## {% linkable_title Services %}
### {% linkable_title Water heater control services %}
+
Available services: `water_heater.set_temperature`, `water_heater.turn_away_mode_on`, `water_heater.turn_away_mode_off`, `water_heater.set_operation_mode`
@@ -31,13 +31,13 @@ Not all water heater services may be available for your platform. Be sure to che
### {% linkable_title Service `water_heater.set_temperature` %}
-Set target temperature of water heater device
+Sets target temperature of water heater device.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
| `temperature` | no | New target temperature for water heater
-| `operation_mode` | yes | Operation mode to set temperature to. This defaults to current_operation mode if not set, or set incorrectly.
+| `operation_mode` | yes | Operation mode to set the temperature to. This defaults to current_operation mode if not set, or set incorrectly.
#### {% linkable_title Automation example %}
@@ -63,7 +63,7 @@ Set operation mode for water heater device
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
| `operation_mode` | no | New value of operation mode
-#### {% linkable_title Automation example %}
+#### {% linkable_title Automation example %}
```yaml
automation:
@@ -77,15 +77,16 @@ automation:
operation_mode: eco
```
-### {% linkable_title Service `water_heater.turn_away_mode_on` %}
+### {% linkable_title Service `water_heater.set_away_mode` %}
-Turn away mode on for water heater device
+Turn away mode on or off for water heater device
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
+| `away_mode` | no | New value of away mode. 'on'/'off' or True/False
-#### {% linkable_title Automation example %}
+#### {% linkable_title Automation example %}
```yaml
automation:
@@ -93,28 +94,8 @@ automation:
platform: time
at: "07:15:00"
action:
- - service: water_heater.turn_away_mode_on
+ - service: water_heater.set_away_mode
data:
entity_id: water_heater.demo
+ away_mode: true
```
-
-### {% linkable_title Service `water_heater.turn_away_mode_off` %}
-
-Trun away mode off for water heater device
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | yes | String or list of strings that point at `entity_id`'s of water heater devices to control. Else targets all.
-
-#### {% linkable_title Automation example %}
-
-```yaml
-automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
- - service: water_heater.turn_away_mode_off
- data:
- entity_id: water_heater.demo
-```
\ No newline at end of file
diff --git a/source/_components/water_heater.wink.markdown b/source/_components/water_heater.wink.markdown
deleted file mode 100644
index a22084a181f0..000000000000
--- a/source/_components/water_heater.wink.markdown
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: page
-title: "Wink Water Heater"
-description: "Instructions on how to setup the Wink water heaters within Home Assistant."
-date: 2016-11-01 22:36
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: wink.png
-ha_category: Water heater
-ha_release: 0.32
-ha_iot_class: "Cloud Polling"
----
-
-The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters.
-
-The requirement is that you have setup [Wink](/components/wink/).
-
-
-### {% linkable_title Supported water heaters %}
-
-- Rheem Econet water heaters (No Wink hub required)
-
-
-
-Wink water heaters use to live under the `climate` platform prior to release 0.81.
-
diff --git a/source/_components/waterfurnace.markdown b/source/_components/waterfurnace.markdown
index 4798cd81ec75..d260a96553bd 100644
--- a/source/_components/waterfurnace.markdown
+++ b/source/_components/waterfurnace.markdown
@@ -11,27 +11,28 @@ logo: waterfurnace.png
ha_category: Sensor
ha_release: 0.62
ha_iot_class: "Cloud Polling"
+redirect_frome:
+ - /components/sensor.waterfurnace/
---
The `waterfurnace` component communicates with the WaterFurnace Symphony website's WebSocket to show you many of the sensors in your system. While not an official API, this is the same backend the Symphony website is based on, and should be reasonably stable.
The sensors provided include:
- - Thermostat Setpoint
- - Thermostat Current Temp
- - Leaving Air Temp
- - Entering Water Loop Temp
- - Current Humidity
- - Current Humidity Setpoint
- - Total system power (in Watts)
- - Furnace Mode
- - Compressor Power
- - Fan Power
- - Aux Power
- - Loop Pump Power
- - Compressor Speed
- - Fan Speed
-
+- Thermostat Setpoint
+- Thermostat Current Temp
+- Leaving Air Temp
+- Entering Water Loop Temp
+- Current Humidity
+- Current Humidity Setpoint
+- Total system power (in Watts)
+- Furnace Mode
+- Compressor Power
+- Fan Power
+- Aux Power
+- Loop Pump Power
+- Compressor Speed
+- Fan Speed
## {% linkable_title Configuration %}
@@ -55,8 +56,8 @@ password:
type: string
{% endconfiguration %}
-#### {% linkable_title Limitations %}
+## {% linkable_title Limitations %}
-The WebSocket interface used by this module requires active polling, otherwise the server side shuts down the connection. By default, this polling is happening every 10 seconds. All sensors are updated during every polling cycle.
+The WebSocket interface used by this module requires active polling to prevent the server side shuts down the connection. By default, this polling is happening every 10 seconds. All sensors are updated during every polling cycle.
While this is communicating with a thermostat, geothermal systems operate most efficiently when setbacks are not used, and the home is kept at a constant temperature. It remains useful to collect the data from the system to understand its performance, but a full climate interface won't be implemented.
diff --git a/source/_components/watson_iot.markdown b/source/_components/watson_iot.markdown
index 0014d5e24da2..a13ef02fc639 100644
--- a/source/_components/watson_iot.markdown
+++ b/source/_components/watson_iot.markdown
@@ -22,10 +22,11 @@ a gateway device in your IoT platform instance. For instructions on how to do
this check the [official documentation](https://console.bluemix.net/docs/services/IoT/gateways/dashboard.html#IoT_connectGateway)
which provides the details on doing this. After you register the gateway device
for your home-assistant you'll need 4 pieces of information:
- - Organization ID
- - Gateway device Type
- - Gateway device ID
- - Authentication Token
+
+- Organization ID
+- Gateway device Type
+- Gateway device ID
+- Authentication Token
With this basic information you can configure the component:
diff --git a/source/_components/weather.buienradar.markdown b/source/_components/weather.buienradar.markdown
index 505c84bae90e..a6552408949c 100644
--- a/source/_components/weather.buienradar.markdown
+++ b/source/_components/weather.buienradar.markdown
@@ -59,7 +59,7 @@ weather:
# Force 'Meetstation Volkel' to be used:
latitude: 51.65
longitude: 5.70
- forecast: True
+ forecast: true
```
diff --git a/source/_components/weather.ecobee.markdown b/source/_components/weather.ecobee.markdown
deleted file mode 100644
index 33f1983ecd53..000000000000
--- a/source/_components/weather.ecobee.markdown
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: page
-title: "Ecobee Weather"
-description: "Instructions on how to setup the Ecobee weather within Home Assistant."
-date: 2017-11-29 21:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: ecobee.png
-ha_category: Weather
-ha_release: 0.59
-ha_iot_class: "Local Push"
----
-
-To get your Ecobee weather component working with Home Assistant, follow the instructions for the general [Ecobee component](/components/ecobee/).
diff --git a/source/_components/weather.metoffice.markdown b/source/_components/weather.metoffice.markdown
index 37d41463dbd7..afadc9803ca5 100644
--- a/source/_components/weather.metoffice.markdown
+++ b/source/_components/weather.metoffice.markdown
@@ -13,7 +13,7 @@ ha_release: 0.42
ha_iot_class: "Cloud Polling"
---
-The `metoffice` weather platform uses the Met Office's [DataPoint API][datapoint] for weather data.
+The `metoffice` weather platform uses the Met Office's [DataPoint API](http://www.metoffice.gov.uk/datapoint) for weather data.
## {% linkable_title Configuration %}
diff --git a/source/_components/weather.openweathermap.markdown b/source/_components/weather.openweathermap.markdown
index 1d83077ef80e..6bebcff19f3f 100644
--- a/source/_components/weather.openweathermap.markdown
+++ b/source/_components/weather.openweathermap.markdown
@@ -39,7 +39,7 @@ name:
type: string
default: OpenWeatherMap
mode:
- description: "Can specify `hourly` or `daily`. Select `hourly` for a three-hour forecast or `daily` for daily forecast."
+ description: "Can specify `hourly`, `daily` of `freedaily`. Select `hourly` for a three-hour forecast, `daily` for daily forecast or `freedaily` for a five days forecast with the free tier."
required: false
type: string
default: "`hourly`"
diff --git a/source/_components/weather.smhi.markdown b/source/_components/weather.smhi.markdown
deleted file mode 100644
index f06d56635d64..000000000000
--- a/source/_components/weather.smhi.markdown
+++ /dev/null
@@ -1,20 +0,0 @@
----
-layout: page
-title: "SMHI Weather"
-description: "Instructions on how to integrate SMHI forecasts within Homeassistant."
-date: 2018-09-23 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: smhi.png
-ha_category: Weather
-ha_release: 0.81
-ha_iot_class: "Cloud Polling"
----
-
-The `smhi` platform uses the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location.
-
-## {% linkable_title Configuration %}
-
-Please see the [component](/components/smhi/) documentation for details and configuration.
diff --git a/source/_components/weather.yweather.markdown b/source/_components/weather.yweather.markdown
index 382cbf265090..10d8ed2c91bd 100644
--- a/source/_components/weather.yweather.markdown
+++ b/source/_components/weather.yweather.markdown
@@ -13,41 +13,5 @@ ha_release: 0.47
---
-The Yahoo Weather API is being [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`darksky` weather](/components/weather.darksky/).
+The Yahoo Weather API **has been** [retired](https://developer.yahoo.com/weather/?guccounter=1). A replacement is the [`darksky` weather](/components/weather.darksky/).
-
-The `yweather` platform uses [Yahoo Weather](https://www.yahoo.com/news/weather/) as a source for current meteorological data. This component will show you the condition and temperatures for max. 10 days.
-
-
-Use of the Yahoo Weather API should not exceed reasonable request volume. Access is limited to 2000 signed calls per day.
-
-
-## {% linkable_title Configuration %}
-
-The `woeid` (Where On Earth ID) for your location, as shown in the example below. You can find your WOEID by copying the numeric digits at the end of the URL for your location at [Yahoo Weather](https://www.yahoo.com/news/weather/). If you don't add a WOEID, it will be generated from Home Assistant's latitude and longitude.
-
-To add Yahoo Weather to your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-weather:
- - platform: yweather
-```
-
-{% configuration %}
-woeid:
- description: Your Where On Earth ID, see above for all the info.
- required: false
- type: integer
-name:
- description: The name of the sensor. To easily recognize each sensor when adding more than one Yahoo weather sensor, it is recommended to use the name option.
- required: false
- type: string
- default: yweather
-{% endconfiguration %}
-
-
-This platform is an alternative to the [`yweather`](/components/sensor.yweather/) sensor.
-
-
-Details about the API are available in the [Yahoo! Developer Network](https://developer.yahoo.com/weather/).
diff --git a/source/_components/wemo.markdown b/source/_components/wemo.markdown
index fb16345b3838..0f8ca973c458 100644
--- a/source/_components/wemo.markdown
+++ b/source/_components/wemo.markdown
@@ -8,25 +8,42 @@ comments: false
sharing: true
footer: true
logo: belkin_wemo.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Fan
+ - Light
+ - Switch
featured: true
ha_release: pre 0.7
+redirect_from:
+ - /components/fan.wemo/
+ - /components/binary_sensor.wemo/
+ - /components/light.wemo/
+ - /components/switch.wemo/
---
The `wemo` component is the main component to integrate various [Belkin WeMo](http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) devices with Home Assistant.
+There is currently support for the following device types within Home Assistant:
+
+- Binary Sensor
+- Fan (Belkin WeMo (Holmes) Smart Humidifier)
+- Light (Belkin WeMo LED lights and [Smart Dimmer Switch](http://www.belkin.com/us/F7C059-Belkin/p/P-F7C059/))
+- Switch ([Belkin WeMo Switches](https://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/) and includes support for Wemo enabled [Mr. Coffee](http://www.mrcoffee.com/wemo-landing-page.html) smart coffee makers.)
+
## {% linkable_title Configuration %}
{% configuration %}
- static:
- description: One or more static IP adresses for WeMo to use
- required: false
- type: list
discovery:
description: Setting this value to false will prevent the automatic discovery of WeMo devices by the wemo platform and the discovery platform (static devices will still be discovered)
required: false
type: boolean
default: true
+ static:
+ description: One or more static IP adresses for WeMo to use
+ required: false
+ type: list
{% endconfiguration %}
Supported devices will be automatically discovered if the optional `discovery` configuration item is omitted or set to true or if the `discovery` component is enabled. If the `discovery` configuration item is set to false, then automatic discovery of WeMo devices is disabled both for the `wemo` component and for the `discovery` component. Loading the `wemo` component with the `discovery` configuration item omitted or set to true will scan the local network for WeMo devices, even if you are not using the `discovery` component.
@@ -66,3 +83,35 @@ wemo:
- 192.168.1.23:52001
- 192.168.52.172:52002
```
+
+## {% linkable_title Fan %}
+
+The `wemo` platform allows you to control your Belkin WeMo humidifiers from within Home Assistant. This includes support for the [Holmes Smart Humidifier](https://www.holmesproducts.com/wemo-humidifier.html).
+
+WeMo devices are automatically discovered if the `discovery` component is enabled.
+
+### {% linkable_title Attributes %}
+
+There are several attributes which can be used for automations and templates:
+
+| Attribute | Description |
+| --------- | ----------- |
+| `current_humidity` | An integer that indicates the current relative humidity percentage of the room, as determined by the device's onboard humidity sensor.
+| `fan_mode` | String that indicates the current fan speed setting, as reported by the WeMo humidifier.
+| `filter_expired` | A boolean that indicates whether the filter has expired and needs to be replaced.
+| `filter_life` | The used life of the filter (as a percentage).
+| `target_humidity` | An integer that indicates the desired relative humidity percentage (this is constrained to the humidity settings of the device, which are 45, 50, 55, 60, and 100).
+| `water level` | String that indicates whether the water level is Good, Low, or Empty.
+
+### {% linkable_title Services %}
+
+There are several services which can be used for automations and control of the humidifier:
+
+| Service | Description |
+| --------- | ----------- |
+| `set_speed` | Calling this service sets the fan speed (entity_id and speed are required parameters, and speed must be one of the following: off, low, medium, or high). When selecting low for the speed, this will map to the WeMo humidifier speed of minimum. When selecting high for the speed, this will map to the WeMo humidifier speed of maximum. The WeMo humidifier speeds of low and high are unused due to constraints on which fan speeds Home Assistant supports.
+| `toggle` | Calling this service will toggle the humidifier between on and off states.
+| `turn_off` | Calling this service will turn the humidifier off (entity_id is required).
+| `turn_on` | Calling this service will turn the humidifier on and set the speed to the last used speed (defaults to medium, entity_id is required).
+| `wemo_set_humidity` | Calling this service will set the desired relative humidity setting on the device (entity_id is a required list of 1 or more entities to set humidity on, and target_humidity is a required float value between 0 and 100 (this value will be rounded down and mapped to one of the valid desired humidity settings of 45, 50, 55, 60, or 100 that are supported by the WeMo humidifier)).
+| `wemo_reset_filter_life` | Calling this service will reset the humdifier's filter life back to 100% (entity_id is a required list of 1 or more entities to reset the filter life on). Call this service when you change the filter on your humidifier.
\ No newline at end of file
diff --git a/source/_components/wink.markdown b/source/_components/wink.markdown
index b26f93bf50c7..f854ce8c769e 100644
--- a/source/_components/wink.markdown
+++ b/source/_components/wink.markdown
@@ -1,17 +1,41 @@
---
layout: page
title: "Wink"
-description: "Instructions on how to setup the Wink hub within Home Assistant."
+description: "Instructions on how to set up the Wink hub within Home Assistant."
date: 2015-01-20 22:36
sidebar: true
comments: false
sharing: true
footer: true
logo: wink.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Alarm
+ - Binary Sensor
+ - Climate
+ - Cover
+ - Fan
+ - Light
+ - Lock
+ - Scene
+ - Sensor
+ - Switch
+ - Water heater
featured: true
ha_iot_class: "Cloud Polling"
ha_release: pre 0.7
+redirect_from:
+ - /components/alarm_control_panel.wink/
+ - /components/binary_sensor.wink/
+ - /components/climate.wink/
+ - /components/cover.wink/
+ - /components/fan.wink/
+ - /components/light.wink/
+ - /components/lock.wink/
+ - /components/scene.wink/
+ - /components/sensor.wink/
+ - /components/switch.wink/
+ - /components/water_heater.wink/
---
[Wink](http://www.wink.com/) is a home automation hub that can control a whole wide range of devices on the market. Or, as they say in their own words:
@@ -22,19 +46,31 @@ ha_release: pre 0.7
Home Assistant integrates with the Wink API and automatically sets up any switches, lights, locks, fans, climate devices (thermostats, air conditioners, and water heaters), covers, sensors, alarms, and sirens.
-Check the related components pages for actual devices that are supported.
+There is currently support for the following device types within Home Assistant:
-### {% linkable_title Authenticate using [developer.wink.com](https://developer.wink.com) %}
+- Alarm
+- Binary Sensor
+- Climate
+- Cover
+- Fan
+- Light
+- Lock
+- Scene
+- Sensor
+- Switch
+- Water heater
-You need to setup a developer account with Wink. This process can take a few days to get approved.
+## {% linkable_title Authenticate using [developer.wink.com](https://developer.wink.com) %}
+
+You need to set up a developer account with Wink. This process can take a few days to get approved.
Wink requests three pieces of information from the user when they sign up for a developer account.
-1. `Name:` This can be anything, for example "Home Assistant"
+1. `Name:` This can be anything, for example, "Home Assistant"
2. `Website:` The external address of your Home Assistant instance. If not externally accessible you can use your email address.
-3. `Redirect URI:` This should be "http://192.168.1.5:8123/auth/wink/callback" replacing the IP with the internal IP of your Home Assistant box.
+3. `Redirect URI:` This should be `http://192.168.1.5:8123/auth/wink/callback` replacing the IP with the internal IP of your Home Assistant box.
-No settings are required in the configuration.yaml other than `wink:` this is because you will be guided through setup via the configurator on the frontend.
+No settings are required in the `configuration.yaml` other than `wink:` this is because you will be guided through setup via the configurator on the frontend.
When using the configurator make sure the initial setup is performed on the same local network as the Home Assistant server, if not from the same box Home Assistant is running on. This will allow for authentication redirects to happen correctly.
@@ -44,7 +80,7 @@ When using the configurator make sure the initial setup is performed on the same
wink:
```
-### {% linkable_title Full oauth authentication (legacy) %}
+## {% linkable_title Full oauth authentication (legacy) %}
This should be used for users that obtained their client_id and client_secret via email from Wink support prior to [developer.wink.com's](https://developer.wink.com) existence.
@@ -87,7 +123,7 @@ Local control:
- Wink's local control API isn't officially documented and therefore could be broken by a hub update. For these reasons `local_control` defaults to `false`.
- Using local control doesn't appear to make commands any quicker, but does function in an internet/Wink outage.
- Local control is also only available for the Wink hub v1 and v2, not the Wink relay.
-- Local control isn't used during start-up of Home Assistant; this means initial setup requires an active internet connection.
+- Local control isn't used during the start-up of Home Assistant; this means initial setup requires an active internet connection.
- Local control requests are first sent to the controlling hub. If a request fails, that request will attempt to go online.
@@ -95,23 +131,23 @@ It is possible for the hub to get into a bad state where it stops accepting loca
The following error will be logged if the hub is rejecting local requests.
-```
+```txt
Error sending local control request. Sending request online
```
-### {% linkable_title Service `refresh_state_from_wink` %}
+## {% linkable_title Service `refresh_state_from_wink` %}
The Wink component only obtains the device states from the Wink API once, during startup. All updates after that are pushed via a third party called PubNub. On rare occasions where an update isn't pushed device states can be out of sync.
-You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `True` states will be pulled from the devices controlling hub, not the online API.
+You can use the service wink/refresh_state_from_wink to pull the most recent state from the Wink API for all devices. If `local_control` is set to `true` states will be pulled from the devices controlling hub, not the online API.
-### {% linkable_title Service `pull_newly_added_devices_from_wink` %}
+## {% linkable_title Service `pull_newly_added_devices_from_wink` %}
You can use the service wink/add_new_devices to pull any newly paired Wink devices to an already running instance of Home-Assistant. Any new devices will also be added if Home-Assistant is restarted.
-### {% linkable_title Service `delete_wink_device` %}
+## {% linkable_title Service `delete_wink_device` %}
You can use the service wink/delete_wink_device to remove/unpair a device from Wink.
@@ -119,7 +155,7 @@ You can use the service wink/delete_wink_device to remove/unpair a device from W
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String that points at the `entity_id` of device to delete.
-### {% linkable_title Service `pair_new_device` %}
+## {% linkable_title Service `pair_new_device` %}
You can use the service wink/pair_new_device to pair a new device to your Wink hub/relay
@@ -133,7 +169,7 @@ You can use the service wink/pair_new_device to pair a new device to your Wink h
Calling service wink/pull_newly_added_wink_devices after a device is paired will add that new device to Home Assistant. The device will also show up on the next restart of Home Assistant.
-### {% linkable_title Service `rename_wink_device` %}
+## {% linkable_title Service `rename_wink_device` %}
You can use the service wink/rename_wink_device to change the name of a device.
@@ -150,17 +186,15 @@ Home Assistant entity_ids for Wink devices are based on the Wink device's name.
The Wink hub, by default, can only be accessed via the cloud. This means it requires an active internet connection and you will experience delays when controlling and updating devices (~3s).
-
-### Custom Wink devices and their services
+## {% linkable_title Custom Wink devices and their services %}
- GoControl siren and strobe
- Dome siren/chime/strobe
- Quirky Nimbus (Legacy device) These can no longer be officially added to your Wink account
-
### {% linkable_title Service `set_siren_auto_shutoff` %}
-You can use the service wink/set_siren_auto_shutoff to set how long the siren will sound before shuting off.
+You can use the service wink/set_siren_auto_shutoff to set how long the siren will sound before shutting off.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
@@ -189,7 +223,7 @@ You can use the service wink/set_chime_volume to set the volume for the chime on
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `volume` | no | String. One of ["low", "medium", "high"]
-| `entity_id` | yes | String or list of strings that point at `entity_id`s of siren/chime.
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of the siren/chime.
Example:
@@ -279,7 +313,7 @@ script:
sequence:
- service: wink.set_siren_strobe_enabled
data:
- enabled: False
+ enabled: false
```
### {% linkable_title Service `set_chime_strobe_enabled` %}
@@ -299,7 +333,7 @@ script:
sequence:
- service: wink.set_chime_strobe_enabled
data:
- enabled: False
+ enabled: false
```
### {% linkable_title Service `set_nimbus_dial_state` %}
@@ -353,3 +387,298 @@ script:
entity_id: wink.nimbus_dial_1
rotation: 'ccw'
```
+
+## {% linkable_title Alarm Control Panel %}
+
+The Wink alarm platform allows you to control your [Wink](http://www.wink.com/) Canary all-in-one security camera.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported devices %}
+
+- Canary all-in-one security camera
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Binary Sensor %}
+
+The Wink binary sensor platform allows you to get data from your [Wink](http://www.wink.com/) binary sensors.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported Binary sensor devices %}
+
+- Smoke and CO detectors (No Wink hub required for Nest)
+- Window/Door sensors
+- Motion sensors
+- Ring Door bells (No hub required)
+- Liquid presence sensors
+- Z-wave lock key codes
+- Lutron connected bulb remote buttons
+- Wink Relay buttons and presence detection
+- Wink spotter loudness and vibration (No Wink hub required)
+- Wink hub devices connection status. This includes any paired hubs like Hue, Wink v1, Wink v2, Wink Relay...
+- Dropcam sensors
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Climate %}
+
+The Wink climate platform allows you to get data from your [Wink](http://www.wink.com/) thermostats and air conditioners.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported climate devices %}
+
+- Nest (No Wink hub required)
+- Ecobee (No Wink hub required)
+- Sensi (No Wink hub required)
+- Carrier (Unconfirmed)
+- Honeywell (No Wink hub required)
+- Generic Z-Wave
+- Quirky Aros window AC unit
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Cover %}
+
+Wink Cover garage door functionality varies on the product. Home Assistant can open, close, and view state of GoControl/Linear openers. For Chamberlain MyQ-enabled openers, Home Assistant is limited to show current state (open or closed) only using this Wink cover. This restriction was imposed by Chamberlain for third party control. Wink suggests that MyQ customers should contact Chamberlain directly to inquire about expanding permissions.
+
+The [MyQ Cover](/components/cover.myq/) does provide full functionality for opening and closing Chamberlain MyQ-enabled garage doors. If installed along with the Wink Component, a duplicate garage door entity may exist. In that case, the semi-functional Wink garage door entity can be hidden via customize.yaml.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported cover devices %}
+
+- Bali window treatments
+- Lutron shades
+- Pella motorized blinds and shades
+- GoControl garage door opener
+- Chamberlain MyQ (Limited functionality) (No Wink hub required)
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Fan %}
+
+The Wink fan platform allows you to control your [Wink](http://www.wink.com/) fans.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported fan devices %}
+
+- Home Decorator Wink-enabled Gardinier ceiling fan
+- Hampton Bay ceiling fan module
+
+
+The above devices are confimed to work, but others may work as well.
+
+
+## {% linkable_title Light %}
+
+The `wink` light platform allows you to use your [Wink](http://www.wink.com/) lights.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported light devices %}
+
+- Z-wave switches with dimming
+- Hue
+- Lightify
+- GE link
+- Wink light groups (User created groups of lights)
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Lock %}
+
+The Wink lock platform allows you to control your [Wink](http://www.wink.com/) locks.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported lock devices %}
+
+- Kwikset
+- Schlage
+- August (No Wink hub required) (August Connect required)
+- Generic Z-wave
+
+
+The following services have only been confirmed on Schlage locks.
+
+
+### {% linkable_title Service `wink_set_lock_alarm_mode` %}
+
+You can use the service wink/wink_set_lock_alarm_mode to set the alarm mode of your lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `mode` | no | String one of tamper, activity, or forced_entry
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks.
+
+Example:
+
+```yaml
+script:
+ set_locks_to_tamper:
+ sequence:
+ - service: wink.wink_set_lock_alarm_mode
+ data:
+ mode: "tamper"
+```
+
+### {% linkable_title Service `wink_set_lock_alarm_sensitivity` %}
+
+You can use the service wink/wink_set_lock_alarm_sensitivity to set the alarm sensitivity of your lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `sensitivity` | no | String one of low, medium_low, medium, medium_high, high.
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks.
+
+Example:
+
+```yaml
+script:
+ set_locks_to_high_sensitivity:
+ sequence:
+ - service: wink.wink_set_lock_alarm_sensitivity
+ data:
+ sensitivity: "high"
+```
+
+### {% linkable_title Service `wink_set_lock_alarm_state` %}
+
+You can use the service wink/wink_set_lock_alarm_state to set the alarm state of your lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `enabled` | no | Boolean enabled or disabled, true or false
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks.
+
+Example:
+
+```yaml
+script:
+ disable_all_locks_alarm:
+ sequence:
+ - service: wink.wink_set_lock_alarm_state
+ data:
+ enabled: false
+```
+
+### {% linkable_title Service `wink_set_lock_beeper_state` %}
+
+You can use the service wink/wink_set_lock_beeper_state to set the beeper state of your lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `enabled` | no | Boolean enabled or disabled, true or false
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks.
+
+Example:
+
+```yaml
+script:
+ disable_all_locks_beepers:
+ sequence:
+ - service: wink.wink_set_lock_beeper_state
+ data:
+ enabled: false
+```
+
+### {% linkable_title Service `wink_set_lock_vacation_mode` %}
+
+You can use the service wink/wink_set_lock_vacation_mode to set the vacation mode of your lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `enabled` | no | Boolean enabled or disabled, true or false
+| `entity_id` | yes | String or list of strings that point at `entity_id`s of locks.
+
+Example:
+
+```yaml
+script:
+ enabled_vacation_mode_on_all_locks:
+ sequence:
+ - service: wink.wink_set_lock_vacation_mode
+ data:
+ enabled: false
+```
+
+### {% linkable_title Service `wink_add_new_lock_key_code` %}
+
+You can use the service wink/wink_add_new_lock_key_code to add a new user code to your Wink lock.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | String or list of strings that point at `entity_id`s of locks.
+| `name` | no | the name of the new key code
+| `code` | no | The new code. Must match length of existing codes.
+
+
+Calling service wink/pull_newly_added_wink_devices will add the new key code to Home Assistant. The device will also show up on the next restart of Home Assistant.
+
+
+
+If supported by your lock, a binary sensor will be created for each user key code you have defined. These key codes will turn on when the code is entered and automatically turn off after a few seconds.
+
+
+## {% linkable_title Sensor %}
+
+The Wink sensor platform allows you to get data from your [Wink](http://www.wink.com/) sensors.
+
+The requirement is that you have setup [Wink](/components/wink/) from above.
+
+### {% linkable_title Supported sensor devices %}
+
+- Wink Relay temperature, proximity, and humidity
+- Wink Spotter temperature, humidity, and brightness (No Wink hub required)
+- Wink Porkfolio balance (No Wink hub required)
+- Wink eggminder (No Wink hub required)
+- Nest protect Smoke and CO severity (No confirmation that this is actually reported) (No Wink hub required)
+- Motion sensor temperature
+- Quirky refuel propane tank monitor (No Wink hub required)
+
+
+The above devices are confirmed to work, but others may work as well.
+
+
+## {% linkable_title Switch %}
+
+The Wink switch platform allows you to control your [Wink](http://www.wink.com/) switches.
+
+The requirement is that you have set up [Wink](/components/wink/) from above.
+
+## {% linkable_title Supported switch devices %}
+
+- Wink Pivot power genius (No Wink hub required)
+- non-dimming Z-wave in-wall switches (dimming switches show up as lights)
+- Wink Relay load controlling switches
+- Rachio sprinkler controller (No Wink hub required)
+- iHome smart plug (No Wink hub required)
+- Wink switch groups (User created groups of switches)
+
+## {% linkable_title Water heater %}
+
+The Wink water heater platform allows you to get data from your [Wink](http://www.wink.com/) Water Heaters.
+
+The requirement is that you have set up [Wink](/components/wink/) from above.
+
+## {% linkable_title Supported water heaters %}
+
+- Rheem Econet water heaters (No Wink hub required)
+
+
+Wink water heaters use to live under the `climate` platform prior to release 0.81.
+
\ No newline at end of file
diff --git a/source/_components/wirelesstag.markdown b/source/_components/wirelesstag.markdown
index bd92d2ee6ce1..58fa2f4611b7 100644
--- a/source/_components/wirelesstag.markdown
+++ b/source/_components/wirelesstag.markdown
@@ -8,13 +8,27 @@ sidebar: true
sharing: true
footer: true
logo: wirelesstag.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Sensor
+ - Switch
ha_iot_class: "Local Push and Cloud Polling"
ha_release: 0.68
+redirect_from:
+ - /components/binary_sensor.wirelesstag/
+ - /components/sensor.wirelesstag/
+ - /components/switch.wirelesstag/
---
The `wirelesstag` implementation allows you to integrate your [wirelesstag.net](http://wirelesstag.net) sensors tags in Home Assistant.
+There is currently support for the following device types within Home Assistant:
+
+- [Binary Sensor](#binary-sensor)
+- [Sensor](#sensor)
+- [Switch](#switch)
+
## {% linkable_title Configuration %}
To enable tags set up with your [wirelesstag.net](http://wirelesstag.net) account, add the following to your `configuration.yaml` file:
@@ -37,13 +51,116 @@ password:
type: string
{% endconfiguration %}
-Finish your configuration by visiting the [WirelessTag binary sensor](/components/binary_sensor.wirelesstag/), [WirelessTag sensor](/components/sensor.wirelesstag/), or [WirelessTag switch](/components/switch.wirelesstag/) documentation.
-
To enable local push notifications from the Tags Manager, you need to add the IP address of the Tags Manager into whitelist in `http` component; i.e., add it to `trusted_networks`. See the [HTTP](/components/http/) for details.
- Additionally, you need add at least one [WirelessTag binary sensor](/components/binary_sensor.wirelesstag/) in config to start receiving local push notifications.
+ Additionally, you need add at least one [WirelessTag binary sensor](#binary-sensor) in config to start receiving local push notifications.
Tags Manager supports local push notifications for `http` schema only. So if your hass uses `https`, local push notifications are disabled and data is received via cloud polling.
+
+## {% linkable_title Binary Sensor %}
+
+To enable the binary sensor platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+binary_sensor:
+ - platform: wirelesstag
+ monitored_conditions:
+ - presence
+ - door
+ - battery
+```
+
+{% configuration %}
+monitored_conditions:
+ description: The conditions types to monitor.
+ required: true
+ type: list
+ keys:
+ presence:
+ description: On means in range, Off means out of range.
+ motion:
+ description: On when a movement was detected, Off when clear.
+ door:
+ description: On when a door is open, Off when the door is closed.
+ cold:
+ description: On means temperature become too cold, Off means normal.
+ heat:
+ description: On means hot, Off means normal.
+ dry:
+ description: On means too dry (humidity), Off means normal.
+ wet:
+ description: On means too wet (humidity), Off means normal.
+ light:
+ description: On means light detected, Off means no light.
+ moisture:
+ description: On means moisture detected (wet), Off means no moisture (dry).
+ battery:
+ description: On means tag battery is low, Off means normal.
+{% endconfiguration %}
+
+## {% linkable_title Sensor %}
+
+To enable the sensor platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: wirelesstag
+ monitored_conditions:
+ - temperature
+ - humidity
+```
+
+{% configuration %}
+monitored_conditions:
+ description: The metrics types to monitor.
+ required: true
+ type: list
+ keys:
+ temperature:
+ description: Value is in Celsius or Fahrenheit (according to your settings at Tag Manager).
+ humidity:
+ description: "Humidity level in %."
+ moisture:
+ description: "Water level/soil moisture in % (applicable for Water Tag only)."
+ light:
+ description: Brightness in lux (if supported by tag).
+{% endconfiguration %}
+
+## {% linkable_title Switch %}
+
+To enable the switch platform for your tags, set up with your [wirelesstag.net](http://wirelesstag.net) account. Add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: wirelesstag
+ monitored_conditions:
+ - motion
+ - humidity
+```
+
+{% configuration %}
+monitored_conditions:
+ description: The metrics types to control.
+ required: true
+ type: list
+ keys:
+ temperature:
+ description: Control arm/disarm temperature monitoring.
+ humidity:
+ description: Control arm/disarm humidity monitoring.
+ motion:
+ description: Control arm/disarm motion and door open/close events monitoring.
+ light:
+ description: Control monitoring of light changes.
+ moisture:
+ description: Control monitoring of water level/soil moisture for water sensor.
+{% endconfiguration %}
+
+Arm/Disarm of motion switch is required to receive motion and door binary sensors events.
+Others are only needed if you want to receive push notifications from tags on a specific range of changes in temperature, humidity, light or moisture.
\ No newline at end of file
diff --git a/source/_components/wunderlist.markdown b/source/_components/wunderlist.markdown
index beaa633da561..aed87d67f494 100644
--- a/source/_components/wunderlist.markdown
+++ b/source/_components/wunderlist.markdown
@@ -12,16 +12,14 @@ ha_category: Calendar
ha_release: 0.84
---
-The `wunderlist` component allows you to create tasks in [Wunderlist](https://www.wunderlist.com) from Home Assistant. You can use this if you want Home Assistant to send you a task that
-you should not forget, e.g., Congratulate Dani.
+The `wunderlist` component allows you to create tasks in [Wunderlist](https://www.wunderlist.com) from Home Assistant. You can use this if you want Home Assistant to send you a task that you should not forget, e.g., Congratulate Dani.
## {% linkable_title Setup %}
-Wunderlist API uses OAuth2, so you need to obtain a `client_id` and an `access_token`.
+Wunderlist API uses OAuth2, so you need to obtain a `client_id` and an `access_token`.
There are two ways:
-
-
-1. Go to the [Wunderlist IOT app page](https://wunderlist-iot.herokuapp.com), login with your Wunderlist account and accept the application permissions.
+
+1. Go to the [Wunderlist IOT app page](https://wunderlist-iot.herokuapp.com), log in with your Wunderlist account and accept the application permissions.
It will print for you the `client_id` and the `access_token`.
2. Or you can create your own application and `access_token` following the instructions at the [Wunderlist developer page](https://developer.wunderlist.com/).
@@ -29,20 +27,16 @@ Store the parameters in your Home Assistant configuration:
```yaml
# Example configuration.yaml entry
-
wunderlist:
client_id: YOUR_CLIENT_ID
access_token: YOUR_ACCESS_TOKEN
-
```
-
{% configuration %}
client_id:
description: The ID of your Wunderlist application (OAuth2).
required: true
type: string
-
access_token:
description: A token for your Wunderlist personal account (For the ``client_id`` application).
required: true
@@ -51,15 +45,15 @@ access_token:
## {% linkable_title Creating tasks with service `create_task`%}
-This component offers a new service domain `wunderlist` with the service `create_task`.
-You can call this service with the argument `list_name` the argument `name` and the optional parameter `starred` to create a new task.
-
+This component offers a new service domain `wunderlist` with the service `create_task`.
+You can call this service with the argument `list_name` the argument `name` and the optional parameter `starred` to create a new task.
-|Service data attribute | Optional | Description | Example |
-|-----------------------|----------|-------------|---------|
+| Service data attribute | Optional | Description | Example |
+|------------------------|----------|-------------|---------|
| list_name | no | Name of the list | "Shopping list"
| name | no | Name of the new task | "Spanish Jam" |
| starred | yes | Create the task starred or not | false |
## {% linkable_title Disclaimer %}
+
This product uses the Wunderlist API but is not endorsed or certified by Wunderlist.
diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown
index e4843b644c5a..f797f8f6b3e1 100644
--- a/source/_components/xiaomi_aqara.markdown
+++ b/source/_components/xiaomi_aqara.markdown
@@ -16,34 +16,34 @@ redirect_from: /components/xiaomi/
The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/en/) Aqara-compatible devices into Home Assistant.
-#### {% linkable_title Supported Devices %}
+## {% linkable_title Supported Devices %}
-- Xiaomi Mijia Gateway (lumi.gateway.v2, lumi.gateway.v3)
- Aqara Air Conditioning Companion (lumi.acpartner.v3)
- Aqara Intelligent Door Lock (lock.aq1)
-- Temperature and Humidity Sensor (1st and 2nd generation)
-- Motion Sensor (1st and 2nd generation)
-- Door and Window Sensor (1st and 2nd generation)
-- Button 1st generation (Single, Double, long_click_press)
-- Button 2nd generation (Single, Double)
-- Plug aka Socket (Zigbee version, reports power consumed, power load, state and if device in use)
-- Wall Plug (reports power consumed, power load and state)
-- Aqara Wall Switch (Single)
- Aqara Wall Switch (Double)
-- Aqara Wall Switch LN (Single)
+- Aqara Wall Switch (Single)
- Aqara Wall Switch LN (Double)
-- Aqara Wireless Switch (Single)
+- Aqara Wall Switch LN (Single)
- Aqara Wireless Switch (Double)
+- Aqara Wireless Switch (Single)
+- Battery
+- Button 1st generation (Single, Double, Long Click)
+- Button 2nd generation (Single, Double)
- Cube
+- Door and Window Sensor (1st and 2nd generation)
- Gas Leak Detector (reports alarm and density)
-- Smoke Detector (reports alarm and density)
- Gateway (Light, Illumination Sensor, Ringtone play)
- Intelligent Curtain
-- Water Leak Sensor
+- Motion Sensor (1st and 2nd generation)
+- Plug aka Socket (Zigbee version, reports power consumed, power load, state and if the device is in use)
+- Smoke Detector (reports alarm and density)
+- Temperature and Humidity Sensor (1st and 2nd generation)
- Vibration Sensor
-- Battery
+- Wall Plug (reports power consumed, power load, and state)
+- Water Leak Sensor
+- Xiaomi Mijia Gateway (lumi.gateway.v2, lumi.gateway.v3)
-#### {% linkable_title Unsupported Devices %}
+## {% linkable_title Unsupported Devices %}
- Xiaomi Aqara Gateway (lumi.gateway.aqhm01), as it is not possible to activate dev mode in the Mi Home App.
- Gateway Radio
@@ -250,7 +250,6 @@ This example toggles the living room lamp on a double click of the button.
entity_id: light.living_room_lamp
```
-
## {% linkable_title Troubleshooting %}
### {% linkable_title Initial setup problem %}
@@ -265,6 +264,7 @@ If you run into trouble initializing the gateway with your app, try another smar
```
That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall.
+
- Make sure you have [enabled LAN access](https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz).
- Turn off the firewall on the system where Home Assistant is running.
- Ensure your router supports multicast as this is a requirement of the Xiaomi Gateway.
@@ -274,6 +274,6 @@ That means that Home Assistant is not getting any response from your Xiaomi gate
- Hard reset the gateway: Press the button of the gateway 30 seconds and start again from scratch.
- If you are using Home Assistant in [Docker](/docs/installation/docker/), make sure to use `--net=host`.
- If you receive an `{"error":"Invalid key"}` in your log while trying to control the gateway light
- - You should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances there is an issue with keys being generated using the iOS application.
+ - You should generate the key again using an Android Phone or alternatively an emulator such as [bluestacks](https://www.bluestacks.com). In some instances, there is an issue with keys being generated using the iOS application.
- You need to make sure to have multicast support on your network. If you are running Home Assistant in a virtual machine (like Proxmox), try `echo 0 >/sys/class/net/vmbr0/bridge/multicast_snooping` on the host and restart the service or reboot the host.
- If the required library "PyXiaomiGateway" cannot be installed you will need to install some missing system dependencies `python3-dev`, `libssl-dev`, `libffi-dev` manually (e.g., `$ sudo apt-get install python3-dev libssl-dev libffi-dev`).
diff --git a/source/_components/xs1.markdown b/source/_components/xs1.markdown
new file mode 100644
index 000000000000..99951e6ae2c4
--- /dev/null
+++ b/source/_components/xs1.markdown
@@ -0,0 +1,110 @@
+---
+layout: page
+title: "EZcontrol XS1"
+description: "Instructions on how to integrate an XS1 Gateway within Home Assistant."
+date: 2018-12-04 20:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: xs1.jpg
+ha_category:
+ - Hub
+ - Climate
+ - Sensor
+ - Switch
+ha_release: 0.88
+featured: false
+ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/climate.xs1/
+ - /components/sensor.xs1/
+ - /components/switch.xs1/
+---
+
+The [EZcontrol XS1](http://www.ezcontrol.de/content/view/36/28/) integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway [Bedienungsanleitung v3.0.0.0](http://www.ezcontrol.de/support/downloads/XS1/xs1manual/Bedienungsanleitung_EZcontrol_XS1_3.0.0.0-2.pdf).
+
+## {% linkable_title Configuration %}
+
+Add the following entry to the `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+xs1:
+ host: "192.168.2.100"
+```
+
+The component will automatically detect the configuration of the XS1 Gateway only **on initialization** which currently means when Home Assistant boots. When you change the configuration of the XS1 you (currently) have to restart Home Assistant to see the effects.
+
+{% configuration %}
+host:
+ description: Host of the XS1 Gateway.
+ required: true
+ type: string
+port:
+ description: Custom port if you are running your gateway behind some kind of proxy.
+ required: false
+ type: integer
+ default: 80
+ssl:
+ description: Defines if `https` should be used for API requests (only possible via your own proxy).
+ required: false
+ type: boolean
+ default: false
+username:
+ description: User to access XS1 web API.
+ required: false
+ type: string
+password:
+ description: Password to access XS1 web API.
+ required: false
+ type: string
+{% endconfiguration %}
+
+## {% linkable_title Supported Device Types %}
+
+
+This component currently only covers part of the device types supported by the XS1 gateway, unsupported types are simply ignored.
+
+
+### {% linkable_title Sensors %}
+
+Any type of sensor is supported.
+
+
+If you are using climate devices the "current temp" sensor will be automatically used by the actuator (if named correctly). To make this work have a look at the actuator description below.
+
+
+### {% linkable_title Actuators %}
+
+| Type | Supported | Notes |
+|---------------|-----------|--------------------------------------------------|
+| `switch` | Yes | |
+| `dimmer` | Partly | Dimmers are currently handled like switches so actual dimming is not supported :(|
+| `temperature` | Yes | |
+
+
+### {% linkable_title Climate Actuator/Sensor%}
+
+Home Assistant can combine temperature sensors and climate actuators into a single device. The XS1 gateway does not allow this, but a sensor and actuator can be configured separately. To make Home Assistant register them in the same climate device just prefix the **sensor** name with the actuator name on the XS1 gateway configuration, f.ex:
+
+- Actuator device name: "Bedroom_Temp"
+- Sensor device name: "Bedroom_Temp_Sensor"
+
+## {% linkable_title Examples %}
+
+In this section, you find some real-life examples of how to use this component.
+
+### {% linkable_title Full configuration %}
+
+This example shows how you can use the optional configuration options.
+
+```yaml
+# Example configuration.yaml entry
+xs1:
+ host: "192.168.2.100"
+ port: 80
+ ssl: false
+ username: myuser
+ password: 123totallySecure
+```
diff --git a/source/_components/zabbix.markdown b/source/_components/zabbix.markdown
index fe317fce8102..decbd7437b85 100644
--- a/source/_components/zabbix.markdown
+++ b/source/_components/zabbix.markdown
@@ -37,7 +37,7 @@ path:
type: string
default: "`/zabbix/`"
ssl:
- description: Set to `True` if your Zabbix installation is using SSL.
+ description: Set to `true` if your Zabbix installation is using SSL.
required: false
type: boolean
default: false
@@ -58,7 +58,7 @@ password:
zabbix:
host: ZABBIX_HOST
path: ZABBIX_PATH
- ssl: False
+ ssl: false
username: USERNAME
password: PASSWORD
```
diff --git a/source/_components/zeroconf.markdown b/source/_components/zeroconf.markdown
index d2e8908adeab..be29f6e6d840 100644
--- a/source/_components/zeroconf.markdown
+++ b/source/_components/zeroconf.markdown
@@ -41,6 +41,6 @@ Browsing domain 'local' on -1.-1 ...
Browsing for services of type '_home-assistant._tcp' in domain 'local' on 4.0 ...
Found service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0.
Service data for service 'Home' of type '_home-assistant._tcp' in domain 'local' on 4.0:
- Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data:
+ Host Home._home-assistant._tcp.local (192.168.0.70), port 8123, TXT data:
['requires_api_password=true', 'base_url=http://192.168.0.70:8123', 'version=0.41.0']
```
diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown
index 06dc6715e419..a48d20b2ecc0 100644
--- a/source/_components/zha.markdown
+++ b/source/_components/zha.markdown
@@ -8,21 +8,36 @@ comments: false
sharing: true
footer: true
logo: zigbee.png
-ha_category: Hub
+ha_category:
+ - Binary Sensor
+ - Fan
+ - Light
+ - Sensor
+ - Switch
ha_release: 0.44
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/binary_sensor.zha/
+ - /components/fan.zha/
+ - /components/light.zha/
+ - /components/sensor.zha/
+ - /components/switch.zha/
---
[Zigbee Home Automation](http://www.zigbee.org/zigbee-for-developers/applicationstandards/zigbeehomeautomation/)
-integration for Home Assistant allows you to connect many off-the-shelf Zigbee based devices to Home Assistant, using one of the available Zigbee radio modules compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on seperate libraries which can each interface a with Zigbee radio module a different manufacturer).
+integration for Home Assistant allows you to connect many off-the-shelf Zigbee based devices to Home Assistant, using one of the available Zigbee radio modules compatible with [zigpy](https://github.com/zigpy/zigpy) (an open source Python library implementing a Zigbee stack, which in turn relies on separate libraries which can each interface a with Zigbee radio module a different manufacturer).
There is currently support for the following device types within Home Assistant:
-- [Binary Sensor](../binary_sensor.zha) (e.g., motion and door sensors)
-- [Sensor](../sensor.zha) (e.g., temperature sensors)
-- [Light](../light.zha)
-- [Switch](../switch.zha)
-- [Fan](../fan.zha)
+- Binary Sensor
+- Sensor
+- Light
+- Switch
+- Fan
+
+ZHA exception and deviation handling:
+
+Zigbee devices that deviate from or do not fully conform to the standard specification set by the [Zigbee Alliance](https://www.zigbee.org) may require the development of custom [ZHA Device Handlers](https://github.com/dmulcahey/zha-device-handlers) (ZHA quirks handler implementation) to for all their functions to work properly with the ZHA component in Home Assistant.
Known working Zigbee radio modules:
@@ -32,6 +47,9 @@ Known working Zigbee radio modules:
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html)
- XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy)
- Digi XBee Series 2C (S2C) modules
+- Dresden-Elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
+ - [ConBee USB adapter from Dresden-Elektronik](https://www.dresden-elektronik.de/conbee/)
+ - [RaspBee Raspberry Pi Shield from Dresden-Elektronik](https://www.dresden-elektronik.de/raspbee/)
## {% linkable_title Configuration %}
@@ -47,7 +65,7 @@ zha:
{% configuration %}
radio_type:
- description: One of `ezsp` or `xbee`.
+ description: One of `ezsp`, `xbee` or `deconz`.
required: false
type: string
default: ezsp
@@ -71,4 +89,6 @@ enable_quirks:
default: true
{% endconfiguration %}
-To add new devices to the network, call the `permit` service on the `zha` domain, and then follow the device instructions for doing a scan or factory reset. In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/)
+To add new devices to the network, call the `permit` service on the `zha` domain. Do this by clicking the Service icon in Developer tools and typing `zha.permit` in the **Service** dropdown box. Next, follow the device instructions for adding, scanning or factory reset.
+
+In case you want to add Philips Hue bulbs that have previously been added to another bridge, have a look at: [https://github.com/vanviegen/hue-thief/](https://github.com/vanviegen/hue-thief/)
diff --git a/source/_components/zigbee.markdown b/source/_components/zigbee.markdown
index d43c7051ff18..3c2022dbed7b 100644
--- a/source/_components/zigbee.markdown
+++ b/source/_components/zigbee.markdown
@@ -13,7 +13,7 @@ ha_release: 0.12
ha_iot_class: "Local Polling"
---
-[Zigbee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilize modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local Zigbee device to be connected to a serial port. Through this it will send and receive commands to and from other devices on the Zigbee mesh network.
+[Zigbee](http://www.zigbee.org/what-is-zigbee/) integration for Home Assistant allows you to utilize modules such as the [XBee](http://www.digi.com/lp/xbee) as wireless General Purpose Input/Output (GPIO) devices. The component requires a local Zigbee device to be connected to a serial port. Through this, it will send and receive commands to and from other devices on the Zigbee mesh network.
There is currently support for the following device types within Home Assistant:
@@ -49,7 +49,7 @@ baud:
To find the possible serial port names of your device, run:
```bash
-$ ls /dev/ttyUSB*
+ls /dev/ttyUSB*
```
diff --git a/source/_components/zone.markdown b/source/_components/zone.markdown
index caeb22e761a8..9b9d82c9572b 100644
--- a/source/_components/zone.markdown
+++ b/source/_components/zone.markdown
@@ -1,7 +1,7 @@
---
layout: page
title: "Zone"
-description: "Instructions on how to setup zones within Home Assistant."
+description: "Instructions on how to set up zones within Home Assistant."
date: 2015-10-04 09:23
sidebar: true
comments: false
@@ -14,7 +14,7 @@ ha_qa_scale: internal
Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/getting-started/automation-trigger/#zone-trigger) or [condition](/getting-started/automation-condition/#zone-condition) inside automation setups.
-The Zone component uses YAML sequences to configure multiple zones:
+The `zone` component uses YAML sequences to configure multiple zones:
```yaml
# Example configuration.yaml entry
@@ -68,7 +68,7 @@ passive:
To find the latitude/longitude of a certain place you can use [Google Maps](https://www.google.com/maps/) or [Bing Maps](https://www.bing.com/maps). Just right click and copy the coordinates from there (Bing) or click on the "What is here?" (Google)
-#### {% linkable_title Home zone %}
+## {% linkable_title Home zone %}
If no configuration is given, the `zone` component will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**.
@@ -76,10 +76,10 @@ If no configuration is given, the `zone` component will create a zone for home.
Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI.
-#### {% linkable_title Icons %}
+## {% linkable_title Icons %}
It is preferred to pick an icon to use for your zone. Pick any icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:worker`, `mdi:home`, `mdi:cart`, or `mdi:castle`.
-#### State
+## {% linkable_title State %}
`zoning` is the state a `zone` has when it is configured. A `zone` doesn't have another state; all configured zones are `zoning` all the time.
diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown
index 614a5ce022b3..8c25922db65a 100644
--- a/source/_components/zoneminder.markdown
+++ b/source/_components/zoneminder.markdown
@@ -8,20 +8,37 @@ comments: false
sharing: true
footer: true
logo: zoneminder.png
-ha_category: Hub
+ha_category:
+ - Hub
+ - Binary Sensor
+ - Camera
+ - Sensor
+ - Switch
featured: false
ha_release: 0.31
ha_iot_class: "Local Polling"
+redirect_from:
+ - /components/binary_sensor.zoneminder/
+ - /components/camera.zoneminder/
+ - /components/sensor.zoneminder/
+ - /components/switch.zoneminder/
---
-The ZoneMinder component sets up the integration with your [ZoneMinder](https://www.zoneminder.com) instance so that [cameras](/components/camera.zoneminder/), [sensors](/components/sensor.zoneminder/), and [switches](/components/switch.zoneminder) can use it.
+The ZoneMinder component sets up the integration with your [ZoneMinder](https://www.zoneminder.com) instance.
+
+There is currently support for the following device types within Home Assistant:
+
+- [Binary Sensor](#binary-sensor)
+- [Camera](#camera)
+- [Sensor](#sensor)
+- [Switch](#switch)
## {% linkable_title Configuration %}
```yaml
# Example configuration.yaml entry
zoneminder:
- host: ZM_HOST
+ - host: ZM_HOST
```
{% configuration %}
@@ -64,13 +81,13 @@ password:
```yaml
# Example configuration.yaml entry
zoneminder:
- host: ZM_HOST
- path: ZM_PATH
- path_zms: ZM_PATH_ZMS
- ssl: true
- verify_ssl: true
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
+ - host: ZM_HOST
+ path: ZM_PATH
+ path_zms: ZM_PATH_ZMS
+ ssl: true
+ verify_ssl: true
+ username: YOUR_USERNAME
+ password: YOUR_PASSWORD
```
### {% linkable_title Service %}
@@ -79,12 +96,104 @@ Once loaded, the `zoneminder` platform will expose a service (`set_run_state`) t
| Service data attribute | Optional | Description |
|:-----------------------|:---------|:----------------------------------|
+| `id` | no | Host of the ZoneMinder instance. |
| `name` | no | Name of the new run state to set. |
For example, if your ZoneMinder instance was configured with a run state called "Home", you could write an [automation](/getting-started/automation/) that changes ZoneMinder to the "Home" run state by including the following [action](/getting-started/automation-action/):
+
```yaml
action:
service: zoneminder.set_run_state
data:
+ id: ZM_HOST
name: Home
```
+
+## {% linkable_title Binary Sensor %}
+
+The `zoneminder` binary sensor platform lets you monitor the availability of your [ZoneMinder](https://www.zoneminder.com) install.
+
+Each binary_sensor created will be named after the hostname used when configuring the [ZoneMinder component](/components/zoneminder/).
+
+## {% linkable_title Camera %}
+
+The `zoneminder` camera platform lets you monitor the current stream of your [ZoneMinder](https://www.zoneminder.com) cameras.
+
+## {% linkable_title Configuration %}
+
+To set it up, add the following information to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+camera:
+ - platform: zoneminder
+```
+
+## {% linkable_title Sensor %}
+
+The `zoneminder` sensor platform lets you monitor the current state of your [ZoneMinder](https://www.zoneminder.com) install including the number of events, the current state of the cameras and ZoneMinder's current run state.
+
+To set it up, add the following information to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+sensor:
+ - platform: zoneminder
+ include_archived: false
+```
+
+{% configuration %}
+include_archived:
+ description: Whether to include archived ZoneMinder events in event counts.
+ required: false
+ default: false
+ type: boolean
+monitored_conditions:
+ description: Event count sensors to display in the frontend.
+ required: false
+ type: list
+ keys:
+ all:
+ description: All events.
+ month:
+ description: Events in the last month.
+ week:
+ description: Events in the last week.
+ day:
+ description: Events in the last day.
+ hour:
+ description: Events in the last hour.
+{% endconfiguration %}
+
+## {% linkable_title Switch %}
+
+The `zoneminder` switch platform allows you to toggle the current function of all cameras attached to your [ZoneMinder](https://www.zoneminder.com) instance.
+
+
+You must have the [ZoneMinder component](/components/zoneminder/) configured to use this and if ZoneMinder authentication is enabled the account specified in the component configuration must have "Edit" permission for "System".
+
+
+To enable this switch, add the following lines to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+switch:
+ - platform: zoneminder
+ command_on: Modect
+ command_off: Monitor
+```
+
+{% configuration %}
+command_on:
+ description: The function you want the camera to run when turned on.
+ required: true
+ type: string
+command_off:
+ description: The function you want the camera to run when turned off.
+ required: true
+ type: string
+{% endconfiguration %}
+
+
+The default functions installed by ZoneMinder are: None, Monitor, Modect, Record, Mocord, Nodect.
+
\ No newline at end of file
diff --git a/source/_cookbook/automation_first_light.markdown b/source/_cookbook/automation_first_light.markdown
index 098036db77fd..be4770c4f7e8 100644
--- a/source/_cookbook/automation_first_light.markdown
+++ b/source/_cookbook/automation_first_light.markdown
@@ -30,8 +30,8 @@ automation:
- alias: Enable First Morning Trigger
trigger:
- platform: time
- at: '5:00'
- action:
+ at: '05:00:00'
+ action:
service: homeassistant.turn_on
entity_id: input_boolean.trigger_first_morning
@@ -41,12 +41,12 @@ automation:
- platform: sun
event: sunrise
offset: "01:00:00"
- action:
+ action:
service: homeassistant.turn_off
entity_id: input_boolean.trigger_first_morning
-
+
# This is the main automation. It triggers when my motion sensor is triggered
# (in this case, a motion sensor from a security system attached to my Vera)
- alias: First Morning Motion
@@ -59,17 +59,17 @@ automation:
condition: state
entity_id: input_boolean.trigger_first_morning
state: 'on'
-
+
action:
# turn off the "waiting" boolean regardless of whether lights will turn on
# so that this happens only once
- service: homeassistant.turn_off
entity_id: input_boolean.trigger_first_morning
-
+
# But only turn on lights if the living room and kitchen lights are off or dimmed
- # If a condition tests false, the automation will end
+ # If a condition tests false, the automation will end
- condition: and
- conditions:
+ conditions:
- condition: numeric_state
entity_id: light.livingroom_ec
# if light is off, force a 0, otherwise use the brightness value
@@ -84,13 +84,13 @@ automation:
entity_id: light.kitchen_ceiling
value_template: {% raw %}'{% if states.light.kitchen_ceiling.state == "on" %}{{ states.light.kitchen_ceiling.attributes.brightness }}{% else %}0{% endif %}'{% endraw %}
below: 128
-
+
# Trigger a scene
# You could add as many services or scenes as you'd like
- service: scene.turn_on
entity_id: scene.morning_first_motion
-
+
```
#### {% linkable_title The Scene %}
@@ -98,7 +98,7 @@ automation:
Here is the Scene that is called via the Automations above.
```yaml
-# here's the scene that gets called. Lights in
+# here's the scene that gets called. Lights in
# my living room and kitchen turn on.
scene:
- name: Morning First Motion
diff --git a/source/_cookbook/automation_for_rainy_days.markdown b/source/_cookbook/automation_for_rainy_days.markdown
index 7ce7c46b16a4..a6e3b0bb8b73 100644
--- a/source/_cookbook/automation_for_rainy_days.markdown
+++ b/source/_cookbook/automation_for_rainy_days.markdown
@@ -44,7 +44,7 @@ And then of course turn off the lamp when it stops raining but only if it's with
condition:
- condition: sun
after: 'sunset'
- offset: '-01:00:00'
+ after_offset: '-01:00:00'
action:
service: light.turn_off
entity_id: light.couch_lamp
diff --git a/source/_cookbook/automation_knx.markdown b/source/_cookbook/automation_knx.markdown
new file mode 100644
index 000000000000..5092d6b09a30
--- /dev/null
+++ b/source/_cookbook/automation_knx.markdown
@@ -0,0 +1,217 @@
+---
+layout: page
+title: "KNX automation and interaction with other systems"
+description: "General KNX set up and communication with other systems like the Philips Hue."
+date: 2019-01-20 22:00 +0100
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Automation Examples
+---
+
+This cookbook shows a general KNX set up and communication with other systems like the Philips Hue.
+
+## {% linkable_title General KNX setup %}
+
+``` yaml
+knx:
+ # This is all you need to get the KNX component up and running.
+ # Auto config works nicely and usually no config data for your KNX ip tunnel is needed.
+ # If the KNX router is not found automatically, check the docs and add the IP config here.
+
+# get some sensor data from KNX to HA
+sensor:
+ - platform: knx
+ name: Helligkeit Treppe oben
+ address: '6/1/0'
+ type: 'illuminance'
+ # The entity_id of this sensor will be generated from the name by a slug function.
+ # In this case, it will be sensor.helligkeit_treppe_oben
+ # See dev tools' state page (icons at the bottom of left side menu) for a list of all entity_ids
+
+light:
+ # See "sensor" remarks above for an explanation of the resulting entity_ids
+ - platform: knx
+ # switched light
+ name: 'Eltern Decke'
+ address: '1/2/10'
+ state_address: '1/2/11'
+
+ - platform: knx
+ # dimmed light
+ name: 'Eltern Bett'
+ address: '1/2/12'
+ state_address: '1/2/15'
+ brightness_address: '1/2/13'
+ brightness_state_address: '1/2/16'
+
+cover:
+ # KNX Covers are roller shutters and blinds.
+ # These items currently expose a bug with the invert_position setting:
+ # Either you will get 100% for an open shutter and 0% for a closed one
+ # or you will get the function of up and down arrows exchanged wrongly.
+ # Hope this is resolved soon.
+ # ---
+ # See "sensor" remarks above for an explanation of the resulting entity_ids
+ - platform: knx
+ name: "Eltern"
+ move_long_address: '3/2/0'
+ move_short_address: '3/2/1'
+ position_address: '3/2/3'
+ position_state_address: '3/2/2'
+ travelling_time_up: 23
+ travelling_time_down: 21
+ invert_position: true
+
+ - platform: knx
+ name: "Büro"
+ move_long_address: '3/2/4'
+ move_short_address: '3/2/5'
+ position_address: '3/2/7'
+ position_state_address: '3/2/6'
+ travelling_time_up: 23
+ travelling_time_down: 21
+ invert_position: true
+```
+
+## {% linkable_title Using some values from HA within KNX %}
+
+``` yaml
+# configuration.yaml example
+sensor:
+# Register with Dark Sky to retrieve current environment data.
+# Registration is free for the amount of requests we need here.
+- platform: openweathermap
+ name: OpenWeather
+ language: de
+ api_key: YOUR_API_KEY
+ monitored_conditions:
+ - weather
+ - temperature
+ - wind_speed
+ - wind_bearing
+ - humidity
+ - pressure
+ - clouds
+ - rain
+ - snow
+ - weather_code
+
+knx:
+ # Expose the above sensor data from HA to KNX group addresses.
+ # To find the right "type" setting for each parameter, create a group address in ETS,
+ # add a consuming actor for this kind of parameter to it and check the properties pane.
+ # ETS will show you a data type (DPT) that you can compare to the available DPTs in the
+ # documentation of the HA KNX component.
+ expose:
+ - type: 'temperature'
+ entity_id: 'sensor.dark_sky_temperature'
+ address: '0/1/10'
+ - type: 'humidity'
+ entity_id: 'sensor.dark_sky_humidity'
+ address: '0/1/11'
+ - type: 'temperature'
+ entity_id: 'sensor.dark_sky_pressure'
+ address: '0/1/12'
+ - type: 'DPT-9'
+ entity_id: 'sensor.dark_sky_wind_speed'
+ address: '0/1/13'
+ - type: 'DPT-14'
+ entity_id: 'sensor.dark_sky_wind_bearing'
+ address: '0/1/14'
+```
+
+## {% linkable_title Basic KNX automation %}
+
+This example uses an automation that is activated by a KNX switch.
+
+The automation then triggers a script that controls a KNX light and dims it down in 5 steps from 80% to 0% over a time span of 5 minutes.
+
+Care must be taken to stop the script, when the light is otherwise switched (i.e., by its normal on/off KNX switch). If we don't do that, the light will first switch correctly, but then the script will continue to run in the background and after the next delay has passed it will kick in again and activate its next dim level.
+
+```yaml
+knx:
+
+switch:
+- platform: knx
+ # The normal on/off switch for the light
+ name: "Licht, Eltern Bett"
+ address: '1/2/12'
+- platform: knx
+ # The switch that triggers the dim script
+ # This switch must be configured in ETS to send on when pressed and off when released
+ name: "Licht, Eltern Bett, Fadeout"
+ address: '1/2/17'
+
+light:
+ # This is the light that we want to dim (more precisely it is the dimming actuator of the light).
+ # It is directly controlled through the first switch above.
+ # (Note that the switch shares its group address with this light and thus controls it over the KNX bus.)
+ - platform: knx
+ name: 'Eltern Bett'
+ address: '1/2/12'
+ state_address: '1/2/15'
+ brightness_address: '1/2/13'
+ brightness_state_address: '1/2/16'
+
+automation:
+# start the dim script, if the dim switch is pressed
+- id: light_eltern_bett_fadeout
+ alias: Licht Eltern Bett Fade-Out
+ trigger:
+ - entity_id: switch.licht_eltern_bett_fadeout
+ platform: state
+ to: 'on'
+ condition: []
+ action:
+ # in case the script was already running, we first stop it
+ - service: script.turn_off
+ entity_id: script.light_eltern_bett_fadeout
+ - service: script.turn_on
+ entity_id: script.light_eltern_bett_fadeout
+
+# stop the dim script, if light is switched manually
+- id: light_eltern_bett_fadeout_stop
+ alias: Licht Eltern Bett Fade-Out STOP
+ trigger:
+ - entity_id: switch.licht_eltern_bett
+ platform: state
+ # no argument here = trigger with ANY state change
+ condition: []
+ action:
+ - service: script.turn_off
+ entity_id: script.light_eltern_bett_fadeout
+
+script:
+ light_eltern_bett_fadeout:
+ alias: Licht Eltern Bett Fade-Out
+ sequence:
+ - service: light.turn_on
+ entity_id: light.eltern_bett
+ data:
+ brightness_pct: 80
+ - delay: '00:01:00'
+ - service: light.turn_on
+ entity_id: light.eltern_bett
+ data:
+ brightness_pct: 60
+ - delay: '00:01:00'
+ - service: light.turn_on
+ entity_id: light.eltern_bett
+ data:
+ brightness_pct: 40
+ - delay: '00:01:00'
+ - service: light.turn_on
+ entity_id: light.eltern_bett
+ data:
+ brightness_pct: 20
+ - delay: '00:01:00'
+ - service: light.turn_on
+ entity_id: light.eltern_bett
+ data:
+ brightness_pct: 10
+ - delay: '00:01:00'
+ - service: light.turn_off
+ entity_id: light.eltern_bett
+```
diff --git a/source/_cookbook/automation_kodi_dynamic_input_select.markdown b/source/_cookbook/automation_kodi_dynamic_input_select.markdown
deleted file mode 100644
index 9fc1bbd3f9e0..000000000000
--- a/source/_cookbook/automation_kodi_dynamic_input_select.markdown
+++ /dev/null
@@ -1,156 +0,0 @@
----
-layout: page
-title: "Dynamic input select with Kodi media"
-description: "How to configure an `input_select` that can play in Kodi the latest entries added to the library"
-date: 2017-05-16 19:05
-sidebar: true
-comments: false
-sharing: true
-footer: true
-ha_category: Automation Examples
----
-
-This requires a [Kodi](/components/media_player.kodi/) media player, and consists of commands that perform queries in the Kodi library, and a selection box (`input_select`) that shows the available options. By clicking the commands, the selection box is updated, and when selecting an option, Kodi plays the media.
-
-Option filling is done in an [AppDaemon](/docs/ecosystem/appdaemon/tutorial/) app, which listens for events that are triggered with the results of the Kodi JSONRPC API queries when scripts run. This application also listens to the selection box and calls the play media service with the corresponding parameters.
-
-The media player yaml config:
-
-```yaml
-media_player:
-- platform: kodi
- name: Kodi
- host: 192.168.0.123
-```
-
-The `input_select` with the scripts and a group:
-
-```yaml
-input_select:
- kodi_results:
- name: Kodi API results
- options:
- - Nothing to do
-
-script:
- get_recent_movies:
- alias: Last added movies
- sequence:
- - service: media_player.kodi_call_method
- data:
- entity_id: media_player.kodi
- method: VideoLibrary.GetRecentlyAddedMovies
- properties:
- - title
- - year
- - file
- - lastplayed
-
- get_recent_episodes:
- alias: Last TV shows
- sequence:
- - service: media_player.kodi_call_method
- data:
- entity_id: media_player.kodi
- method: VideoLibrary.GetRecentlyAddedEpisodes
- properties:
- - showtitle
- - file
- - lastplayed
- - firstaired
-
- get_pvr_channels:
- alias: TV Channels
- sequence:
- - service: media_player.kodi_call_method
- data:
- entity_id: media_player.kodi
- method: PVR.GetChannels
- channelgroupid: 1
-
-group:
- Media Select:
- control: hidden
- entities:
- - input_select.kodi_results
- - script.get_recent_movies
- - script.get_recent_episodes
- - script.get_pvr_channels
-```
-
-The AppDaemon app:
-
-```python
-import appdaemon.appapi as appapi
-from homeassistant.components.media_player.kodi import (
- EVENT_KODI_CALL_METHOD_RESULT)
-
-ENTITY = 'input_select.kodi_results'
-MEDIA_PLAYER = 'media_player.kodi'
-DEFAULT_ACTION = "Nothing to do"
-MAX_RESULTS = 20
-
-class DynamicKodiInputSelect(appapi.AppDaemon):
- """AppDaemon app to dynamically populate an `input_select`."""
- _ids_options = None
-
- def initialize(self):
- """Set up appdaemon app."""
- self.listen_event(self._receive_kodi_result,
- EVENT_KODI_CALL_METHOD_RESULT)
- self.listen_state(self._change_selected_option, ENTITY)
- # Input select:
- self._ids_options = {DEFAULT_ACTION: None}
-
- def _receive_kodi_result(self, event_id, payload_event, *args):
- result = payload_event['result']
- method = payload_event['input']['method']
-
- assert event_id == EVENT_KODI_CALL_METHOD_RESULT
- if method == 'VideoLibrary.GetRecentlyAddedMovies':
- values = result['movies'][:MAX_RESULTS]
- data = [('{} ({})'.format(r['label'], r['year']),
- ('MOVIE', r['file'])) for r in values]
- self._ids_options.update(dict(zip(*zip(*data))))
- labels = list(list(zip(*data))[0])
- self.call_service('input_select/set_options',
- entity_id=ENTITY,
- options=[DEFAULT_ACTION] + labels)
- self.set_state(ENTITY,
- attributes={"friendly_name": 'Recent Movies',
- "icon": 'mdi:movie'})
- elif method == 'VideoLibrary.GetRecentlyAddedEpisodes':
- values = list(filter(lambda r: not r['lastplayed'],
- result['episodes']))[:MAX_RESULTS]
- data = [('{} - {}'.format(r['showtitle'], r['label']),
- ('TVSHOW', r['file'])) for r in values]
- self._ids_options.update(dict(zip(*zip(*data))))
- labels = list(list(zip(*data))[0])
- self.call_service('input_select/set_options',
- entity_id=ENTITY,
- options=[DEFAULT_ACTION] + labels)
- self.set_state(ENTITY,
- attributes={"friendly_name": 'Recent TvShows',
- "icon": 'mdi:play-circle'})
- elif method == 'PVR.GetChannels':
- values = result['channels']
- data = [(r['label'], ('CHANNEL', r['channelid']))
- for r in values]
- self._ids_options.update(dict(zip(*zip(*data))))
- labels = list(list(zip(*data))[0])
- self.call_service('input_select/set_options',
- entity_id=ENTITY,
- options=[DEFAULT_ACTION] + labels)
- self.set_state(ENTITY,
- attributes={"friendly_name": 'TV channels',
- "icon": 'mdi:play-box-outline'})
-
- def _change_selected_option(self, entity, attribute, old, new, kwargs):
- selected = self._ids_options[new]
- if selected:
- mediatype, file = selected
- self.call_service('media_player/play_media',
- entity_id=MEDIA_PLAYER,
- media_content_type=mediatype,
- media_content_id=file)
-```
diff --git a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
index d5edc5e9613e..af46927fe5fb 100644
--- a/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
+++ b/source/_cookbook/automation_using_timeinterval_inputboolean.markdown
@@ -25,9 +25,8 @@ automation:
# Changes Hue light every two minutes to random color if input boolean is set to on
- alias: 'Set LivingColors to random color'
trigger:
- platform: time
+ platform: time_pattern
minutes: '/2'
- seconds: 0
condition:
condition: state
entity_id: input_boolean.loop_livingcolors
diff --git a/source/_cookbook/configuration_yaml_by_patatman.markdown b/source/_cookbook/configuration_yaml_by_patatman.markdown
new file mode 100644
index 000000000000..1b45e9742025
--- /dev/null
+++ b/source/_cookbook/configuration_yaml_by_patatman.markdown
@@ -0,0 +1,12 @@
+---
+layout: page
+title: "Configuration.yaml by patatman"
+description: ""
+date: 2019-01-13 21:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Example configuration.yaml
+ha_external_link: https://github.com/patatman/patatman-homeassistant-config
+---
diff --git a/source/_cookbook/configuration_yaml_by_renemarc.markdown b/source/_cookbook/configuration_yaml_by_renemarc.markdown
new file mode 100644
index 000000000000..265bf0c84264
--- /dev/null
+++ b/source/_cookbook/configuration_yaml_by_renemarc.markdown
@@ -0,0 +1,12 @@
+---
+layout: page
+title: "Configuration.yaml by René-Marc Simard"
+description: ""
+date: 2018-12-18 12:18
+sidebar: true
+comments: false
+sharing: true
+footer: true
+ha_category: Example configuration.yaml
+ha_external_link: https://github.com/renemarc/home-assistant-config
+---
diff --git a/source/_cookbook/python_component_mqtt_basic.markdown b/source/_cookbook/python_component_mqtt_basic.markdown
index f038f21969ec..0d208a387365 100644
--- a/source/_cookbook/python_component_mqtt_basic.markdown
+++ b/source/_cookbook/python_component_mqtt_basic.markdown
@@ -34,8 +34,8 @@ DEFAULT_TOPIC = 'home-assistant/hello_mqtt'
def setup(hass, config):
"""Set up the Hello MQTT component."""
- mqtt = loader.get_component('mqtt')
- topic = config[DOMAIN].get('topic', DEFAULT_TOPIC)
+ mqtt = hass.components.mqtt
+ topic = config[DOMAIN].get(CONF_TOPIC, DEFAULT_TOPIC)
entity_id = 'hello_mqtt.last_message'
# Listener to be called when we receive a message.
@@ -44,7 +44,7 @@ def setup(hass, config):
hass.states.set(entity_id, payload)
# Subscribe our listener to a topic.
- mqtt.subscribe(hass, topic, message_received)
+ mqtt.subscribe(topic, message_received)
# Set the initial state.
hass.states.set(entity_id, 'No messages')
@@ -52,7 +52,7 @@ def setup(hass, config):
# Service to publish a message on MQTT.
def set_state_service(call):
"""Service to send a message."""
- mqtt.publish(hass, topic, call.data.get('new_state'))
+ mqtt.publish(topic, call.data.get('new_state'))
# Register our service with Home Assistant.
hass.services.register(DOMAIN, 'set_state', set_state_service)
diff --git a/source/_cookbook/send_a_reminder.markdown b/source/_cookbook/send_a_reminder.markdown
index e08d2c9767da..9b965a77bc56 100644
--- a/source/_cookbook/send_a_reminder.markdown
+++ b/source/_cookbook/send_a_reminder.markdown
@@ -30,13 +30,9 @@ automation:
- alias: Send message at a given time
trigger:
platform: time
- hours: 12
- minutes: 15
- seconds: 0
+ at: '12:15:00'
action:
service: notify.jabber
data:
message: 'Time for lunch'
```
-
-
diff --git a/source/_docs/authentication/multi-factor-auth.markdown b/source/_docs/authentication/multi-factor-auth.markdown
index be55b3118ce2..16ecd5b8e87e 100644
--- a/source/_docs/authentication/multi-factor-auth.markdown
+++ b/source/_docs/authentication/multi-factor-auth.markdown
@@ -65,7 +65,7 @@ TOTP is _time based_ so it relies on your Home Assistant clock being accurate. I
### {% linkable_title Notify multi-factor authentication module %}
-The Notify MFA module uses the [notify component](https://www.home-assistant.io/components/notify/) to send you an [HMAC-based One-Time Password](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm). It is typically sent to your phone, but can be sent to any destination supported by a `notify` service. You use this password to log in.
+The Notify MFA module uses the [notify component](/components/notify/) to send you an [HMAC-based One-Time Password](https://en.wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm). It is typically sent to your phone, but can be sent to any destination supported by a `notify` service. You use this password to log in.
#### {% linkable_title Setting up TOTP %}
diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown
index 659b027ae3f2..a36531c62581 100644
--- a/source/_docs/authentication/providers.markdown
+++ b/source/_docs/authentication/providers.markdown
@@ -63,7 +63,7 @@ The Trusted Networks auth provider defines a range of IP addresses for which no
When you log in from one of these networks, you will be asked which user account to use and won't need to enter a password.
-The [multi-factor authentication module](/docs/authentication/multi-factor-auth/) will not participate in the login process if you using this auth provider.
+The [multi-factor authentication module](/docs/authentication/multi-factor-auth/) will not participate in the login process if you are using this auth provider.
Here is an example in `configuration.yaml` to set up Trusted Networks:
@@ -71,18 +71,55 @@ Here is an example in `configuration.yaml` to set up Trusted Networks:
```yaml
homeassistant:
auth_providers:
- - type: trusted_networks
+ - type: trusted_networks
+ trusted_networks:
+ - 127.0.0.1
+ - ::1
+ - 192.168.0.0/24
+ - fd00::/8
+```
-# Temporary, this will be moved to be part of auth provider config
-# https://github.com/home-assistant/home-assistant/issues/16149
-http:
- trusted_networks:
- - 127.0.0.1
- - ::1
- - 192.168.0.0/24
- - fd00::/8
+If you don't specify any `auth_providers` section in the `configuration.yaml` file then this provider will be set up automatically if `trusted_networks` was configured under `http` section.
+
+### {% linkable_title Command Line %}
+
+The Command Line auth provider executes a configurable shell command to perform user authentication. Two environment variables, `username` and `password`, are passed to the command. Access is granted when the command exits successfully (with exit code 0).
+
+This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. A compatible script for LDAP authentication is [this one](https://github.com/efficiosoft/ldap-auth-sh), for instance.
+
+Here is a configuration example:
+
+```yaml
+homeassistant:
+ auth_providers:
+ - type: command_line
+ command: /absolute/path/to/command
+ # Optionally, define a list of arguments to pass to the command.
+ #args: ["--first", "--second"]
+ # Uncomment to enable parsing of meta variables (see below).
+ #meta: true
+```
+
+When `meta: true` is set in the auth provider's configuration, your command can write some variables to standard output to populate the user account created in Home Assistant with additional data. These variables have to be printed in the form:
+
+```
+name = John Doe
```
+Leading and trailing whitespace, as well as lines starting with `#` are ignored. The following variables are supported. More may be added in the future.
+
+* `name`: The real name of the user to be displayed in their profile.
+
+Stdaerr is not read at all and just passed through to that of the Home Assistant process, hence you can use it for status messages or suchlike.
+
+
+Any leading and trailing whitespace is stripped from usernames before they're passed to the configured command. For instance, " hello " will be rewritten to just "hello".
+
+
+
+For now, meta variables are only respected the first time a particular user is authenticated. Upon subsequent authentications of the same user, the previously created user object with the old values is reused.
+
+
### {% linkable_title Legacy API password %}
@@ -102,6 +139,8 @@ http:
Activating this auth provider will also allow you to provide the API password using an authentication header to make requests against the Home Assistant API. This feature will be dropped in the future in favor of long-lived access tokens.
+If you don't specify any `auth_providers` section in the `configuration.yaml` file then this provider will be set up automatically if `api_password` was configured under `http` section.
+
[Issue 16441](https://github.com/home-assistant/home-assistant/issues/16441): the legacy API password auth provider, won't be automatically configured if your API password is located in a package. This is because Home Assistant processes the `auth_provider` during the `core` section loading, which is earlier than the `packages` processing.
diff --git a/source/_docs/automation.markdown b/source/_docs/automation.markdown
index 99ace9bb2e7c..fdd1526a7f57 100644
--- a/source/_docs/automation.markdown
+++ b/source/_docs/automation.markdown
@@ -49,14 +49,14 @@ Actions are all about calling services. To explore the available services open t
### {% linkable_title Automation initial state %}
-You have to set an initial state in your automations in order for Home Assistant to always enable them upon restart.
+If you always want your automations to be enabled or disabled upon Home Assistant restart, then you have to set an initial state in your automations. Otherwise the previous state will be restored.
+
+If an automation is disabled (turned off) then it will never trigger. Only automations that are enabled (turned on) will trigger.
```text
automation:
- alias: Automation Name
- initial_state: True
+ initial_state: true
trigger:
...
```
-
-If you don't set this the previous state is restored. If you shut Home Assistant down before it finishes starting, the automation will be stored as being off, and your automations will be disabled at the next startup.
diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown
index 7a4e57b496a3..963fd7d8f7c9 100644
--- a/source/_docs/automation/trigger.markdown
+++ b/source/_docs/automation/trigger.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/automation-trigger/
---
-Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.
+Triggers are what starts the processing of an automation rule. It is possible to specify [multiple triggers](/docs/automation/trigger/#multiple-triggers) for the same rule - when _any_ of the triggers becomes true then the automation will start. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.
### {% linkable_title Event trigger %}
@@ -46,7 +46,7 @@ automation:
### {% linkable_title MQTT trigger %}
-Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic.
+Triggers when a specific message is received on given topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely.
```yaml
automation:
@@ -55,6 +55,7 @@ automation:
topic: living_room/switch/ac
# Optional
payload: 'on'
+ encoding: 'utf-8'
```
### {% linkable_title Numeric state trigger %}
@@ -73,7 +74,7 @@ automation:
above: 17
below: 25
- # If given, will trigger when condition has been for X time.
+ # If given, will trigger when condition has been for X time, can also use days and milliseconds.
for:
hours: 1
minutes: 10
@@ -86,6 +87,25 @@ Listing above and below together means the numeric_state has to be between the t
In the example above, a numeric_state that goes to 17.1-24.9 (from 17 or below, or 25 or above) would fire this trigger.
+The `for:` can also be specified as `HH:MM:SS` like this:
+
+{% raw %}
+```yaml
+automation:
+ trigger:
+ platform: numeric_state
+ entity_id: sensor.temperature
+ # Optional
+ value_template: '{{ state.attributes.battery }}'
+ # At least one of the following required
+ above: 17
+ below: 25
+
+ # If given, will trigger when condition has been for X time.
+ for: '01:10:05'
+```
+{% endraw %}
+
### {% linkable_title State trigger %}
Triggers when the state of a given entity changes. If only `entity_id` is given trigger will activate for all state changes, even if only state attributes change.
@@ -101,10 +121,7 @@ automation:
to: 'home'
# If given, will trigger when state has been the to state for X time.
- for:
- hours: 1
- minutes: 10
- seconds: 5
+ for: '01:10:05'
```
@@ -115,6 +132,8 @@ automation:
Triggers when the sun is setting or rising. An optional time offset can be given to have it trigger a set time before or after the sun event (i.e. 45 minutes before sunset, when dusk is setting in).
+Sunrise as a trigger may need special attention as explained in time triggers below. This is due to the date changing at midnight and sunrise is at an earlier time on the following day.
+
```yaml
automation:
trigger:
@@ -125,7 +144,7 @@ automation:
offset: '-00:45:00'
```
-Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting.
+Sometimes you may want more granular control over an automation based on the elevation of the sun. This can be used to layer automations to occur as the sun lowers on the horizon or even after it is below the horizon. This is also useful when the "sunset" event is not dark enough outside and you would like the automation to run later at a precise solar angle instead of the time offset such as turning on exterior lighting. For most things, a general number like -4 degrees is suitable and is used in this example:
{% raw %}
```yaml
@@ -141,9 +160,15 @@ automation:
service: switch.turn_on
entity_id: switch.exterior_lighting
```
-}{% endraw %}
+{% endraw %}
-The US Naval Observatory has a [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time.
+If you want to get more precise, start with the US Naval Observatory [tool](http://aa.usno.navy.mil/data/docs/AltAz.php) that will help you estimate what the solar angle will be at any specific time. Then from this, you can select from the defined twilight numbers. Although the actual amount of light depends on weather, topography and land cover, they are defined as:
+
+- Civil twilight: Solar angle > -6°
+- Nautical twilight: Solar angle > -12°
+- Astronomical twilight: Solar angle > -18°
+
+A very thorough explanation of this is available in the Wikipedia article about the [Twilight](https://en.wikipedia.org/wiki/Twilight).
### {% linkable_title Template trigger %}
@@ -165,32 +190,43 @@ Rendering templates with time (`now()`) is dangerous as trigger templates only u
### {% linkable_title Time trigger %}
-Time can be triggered in many ways. The most common is to specify `at` and trigger at a specific point in time each day. Alternatively, you can also match if the hour, minute or second of the current time has a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You cannot use `at` together with hour, minute or second.
+The time trigger is configured to run once at a specific point in time each day.
```yaml
automation:
trigger:
platform: time
+ # Military time format. This trigger will fire at 3:32 PM
+ at: '15:32:00'
+```
+
+### {% linkable_title Time pattern trigger %}
+
+With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value.
+
+```yaml
+automation:
+ trigger:
+ platform: time_pattern
# Matches every hour at 5 minutes past whole
minutes: 5
- seconds: 00
automation 2:
trigger:
- platform: time
- # When 'at' is used, you cannot also match on hour, minute, seconds.
- # Military time format.
- at: '15:32:00'
+ platform: time_pattern
+ # Trigger once per minute during the hour of 3
+ hours: '3'
+ minutes: '*'
automation 3:
trigger:
- platform: time
+ platform: time_pattern
# You can also match on interval. This will match every 5 minutes
minutes: '/5'
- seconds: 00
```
+
- Remember that if you are using matching to include both `minutes` and `seconds`. Without `seconds`, your automation will trigger 60 times during the matching minute.
+ Do not prefix numbers with a zero - using `'00'` instead of '0' for example will result in errors.
### {% linkable_title Webhook trigger %}
@@ -204,7 +240,8 @@ automation:
webhook_id: some_hook_id
```
-You could test triggering above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`.
+You could test triggering the above automation by sending a POST HTTP request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. An example with no data sent to a SSL/TLS secured installation and using the command-line curl program is `curl -d "" https://your-home-assistant:8123/api/webhook/some_hook_id`.
+
### {% linkable_title Zone trigger %}
@@ -220,10 +257,10 @@ automation:
event: enter # or "leave"
```
-### {% linkable_title Geo Location trigger %}
+### {% linkable_title Geolocation trigger %}
-Geo Location triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geo Location](/components/geo_location/) platform support reporting GPS coordinates.
-Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geo Location platforms.
+Geolocation triggers can trigger when an entity is appearing in or disappearing from a zone. Entities that are created by a [Geolocation](/components/geo_location/) platform support reporting GPS coordinates.
+Because entities are generated and removed by these platforms automatically, the entity id normally cannot be predicted. Instead, this trigger requires the definition of a `source` which is directly linked to one of the Geolocation platforms.
```yaml
automation:
@@ -243,9 +280,8 @@ When your want your automation rule to have multiple triggers, just prefix the f
automation:
trigger:
# first trigger
- - platform: time
+ - platform: time_pattern
minutes: 5
- seconds: 00
# our second trigger is the sunset
- platform: sun
event: sunset
diff --git a/source/_docs/autostart/macos.markdown b/source/_docs/autostart/macos.markdown
index 56e6b27c3f6e..012c72ff83a4 100644
--- a/source/_docs/autostart/macos.markdown
+++ b/source/_docs/autostart/macos.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/autostart-macos/
---
-Setting up Home Assistant to run as a background service is simple; macOS will start Home Assistant on boot and make sure it's always running.
+Setting up Home Assistant to run as a background service is simple; macOS will start Home Assistant after the system has booted, the user has logged in, and make sure it's always running.
To get Home Assistant installed as a background service, run:
diff --git a/source/_docs/autostart/systemd.markdown b/source/_docs/autostart/systemd.markdown
index 2ca35936e20a..30faef2d1220 100644
--- a/source/_docs/autostart/systemd.markdown
+++ b/source/_docs/autostart/systemd.markdown
@@ -70,7 +70,7 @@ After=docker.service
[Service]
Restart=always
RestartSec=3
-ExecStart=/usr/bin/docker run --name="home-assistant-%i" -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
+ExecStart=/usr/bin/docker run --name=home-assistant-%i -v /home/%i/.homeassistant/:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
ExecStop=/usr/bin/docker stop -t 2 home-assistant-%i
ExecStopPost=/usr/bin/docker rm -f home-assistant-%i
@@ -134,3 +134,11 @@ When working on Home Assistant, you can easily restart the system and then watch
$ sudo systemctl restart home-assistant@YOUR_USER && sudo journalctl -f -u home-assistant@YOUR_USER
```
+### {% linkable_title Automatically restarting Home Assistant on failure %}
+
+If you want to restart the Home Assistant service automatically after a crash, add the following lines to the `[Service]` section of your unit file:
+
+```
+Restart=on-failure
+RestartSec=5s
+```
diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown
index 81a5226b41b2..c8266477d4ea 100644
--- a/source/_docs/backend/database.markdown
+++ b/source/_docs/backend/database.markdown
@@ -124,4 +124,4 @@ The `VACUUM` command cleans your database.
sqlite> VACUUM;
```
-For a more interactive way of working with the database, checkout our [Jupyter notebooks](http://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/tree/master/).
+For a more interactive way of working with the database, check the [Data Science Portal](https://data.home-assistant.io/).
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index f97eb07c8676..2955704fbcf8 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -35,10 +35,11 @@ If you run into trouble while configuring Home Assistant, have a look at the [co
## {% linkable_title Reloading changes %}
-You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. You can load changes to [automations](/docs/automation/), [customize](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting if you're not using [packages](/docs/configuration/packages/).
+You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect.
+You can load changes to [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/components/group/), and [scripts](/components/script/) without restarting.
-If you've made any changes, remember to [check your configuration](https://www.home-assistant.io/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart.
+If you've made any changes, remember to [check your configuration](/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart.
## {% linkable_title Migrating to a new system %}
diff --git a/source/_docs/configuration/customizing-devices.markdown b/source/_docs/configuration/customizing-devices.markdown
index cb059e9ebd9f..0ef2263845c0 100644
--- a/source/_docs/configuration/customizing-devices.markdown
+++ b/source/_docs/configuration/customizing-devices.markdown
@@ -42,17 +42,17 @@ hidden:
description: Set to `true` to hide the entity.
required: false
type: boolean
- default: False
+ default: false
homebridge_hidden:
description: Set to `true` to hide the entity from `HomeBridge`.
required: false
type: boolean
- default: False
+ default: false
emulated_hue_hidden:
description: Set to `true` to hide the entity from `emulated_hue` (this will be deprecated in the near future and should be configured in [`emulated_hue`](/components/emulated_hue)).
required: false
type: boolean
- default: False
+ default: false
entity_picture:
description: URL to use as picture for entity.
required: false
@@ -65,7 +65,7 @@ assumed_state:
description: For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon.
required: false
type: boolean
- default: True
+ default: true
device_class:
description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the `unit_of_measurement`.
required: false
diff --git a/source/_docs/configuration/devices.markdown b/source/_docs/configuration/devices.markdown
index 6aedad89483e..61b2213feda1 100644
--- a/source/_docs/configuration/devices.markdown
+++ b/source/_docs/configuration/devices.markdown
@@ -37,8 +37,6 @@ sensor:
switch:
- platform: vera
- - platform: tplink
- host: IP_ADDRESS
```
## {% linkable_title Style 2: List each device separately %}
@@ -65,8 +63,7 @@ switch 1:
platform: vera
switch 2:
- platform: tplink
- host: IP_ADDRESS
+ platform: vera
```
## {% linkable_title Grouping devices %}
diff --git a/source/_docs/configuration/events.markdown b/source/_docs/configuration/events.markdown
index 86494fc7b28f..187e757e0f12 100644
--- a/source/_docs/configuration/events.markdown
+++ b/source/_docs/configuration/events.markdown
@@ -70,6 +70,9 @@ Field | Description
----- | -----------
`service_call_id` | String with the unique call id of the service call that was executed. Example: `23123-4`.
+
+ Starting with 0.84, it is no longer possible to listen for event `service_executed`.
+
### {% linkable_title Event `platform_discovered` %}
Event `platform_discovered` is fired when a new platform has been discovered by the [`discovery`](/components/discovery/) component.
diff --git a/source/_docs/configuration/group_visibility.markdown b/source/_docs/configuration/group_visibility.markdown
index cab429ce404f..230ae78b11b6 100644
--- a/source/_docs/configuration/group_visibility.markdown
+++ b/source/_docs/configuration/group_visibility.markdown
@@ -20,7 +20,7 @@ To change visibility of a group, use the service `group.set_visibility`, pass th
service: group.set_visibility
entity_id: group.basement
data:
- visible: False
+ visible: false
```
@@ -42,7 +42,7 @@ automation:
service: group.set_visibility
entity_id: group.basement
data:
- visible: False
+ visible: false
automation 2:
trigger:
@@ -52,7 +52,7 @@ automation 2:
service: group.set_visibility
entity_id: group.basement
data:
- visible: True
+ visible: true
```
## {% linkable_title Easier automations %}
diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown
index 00a3636b4f49..91285f8c3010 100644
--- a/source/_docs/configuration/packages.markdown
+++ b/source/_docs/configuration/packages.markdown
@@ -12,6 +12,10 @@ redirect_from: /topics/packages/
Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the component key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
+
+Note that if you use packages for your configuration, the configuration reloading buttons in the configuration panel will not reload your packages.
+
+
Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package config. For example, package `pack_1` would be created as:
```yaml
@@ -22,7 +26,7 @@ homeassistant:
...package configuration here...
```
-The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components.
+The package configuration can include: `switch`, `light`, `automation`, `groups`, or most other Home Assistant components including hardware platforms.
It can be specified inline or in a separate YAML file using `!include`.
@@ -88,7 +92,7 @@ homeassistant:
```
This uses the concept splitting the configuration and will include all files in a directory with the keys representing the filenames.
-See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful.
+See the documentation about [splitting the configuration](/docs/configuration/splitting_configuration/) for more information about `!include_dir_named` and other include statements that might be helpful. The benefit of this approach is to pull all configurations required to integrate a system, into one file, rather than accross several.
### {% linkable_title Customizing entities with packages %}
diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index 85117013ff53..945f1c3e8344 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -55,4 +55,4 @@ For remote access for a component, for example, a device tracker, you have to en
* A [self-signed certificate](/cookbook/tls_self_signed_certificate/) - be warned though, some services will refuse to work with self-signed certificates
3. Optionally use a proxy like [NGINX](/docs/ecosystem/nginx/), [Apache](/cookbook/apache_configuration/), or another. These allow you to provide finer-grained access. You could use this to limit access to specific parts of the API (for example, only `/api/owntracks/`)
4. Enable IP Filtering and configure a low [Login Attempts Threshold](/components/http/)
-5. If you use a proxy then install [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to [monitor your proxy logs](https://www.home-assistant.io/cookbook/fail2ban/) (or Home Assistant logs) for failed authentication
+5. If you use a proxy then install [fail2ban](https://www.fail2ban.org/wiki/index.php/Main_Page) to [monitor your proxy logs](/cookbook/fail2ban/) (or Home Assistant logs) for failed authentication
diff --git a/source/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown
index 0d61a87c3e1d..c04bd04460c9 100644
--- a/source/_docs/configuration/splitting_configuration.markdown
+++ b/source/_docs/configuration/splitting_configuration.markdown
@@ -101,7 +101,7 @@ Let's look at the `device_tracker.yaml` file from our example:
hosts: 192.168.2.0/24
home_interval: 3
- track_new_devices: yes
+ track_new_devices: true
interval_seconds: 40
consider_home: 120
```
diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown
index a4887fa8ebf3..53c5af9d7753 100644
--- a/source/_docs/configuration/templating.markdown
+++ b/source/_docs/configuration/templating.markdown
@@ -10,12 +10,12 @@ footer: true
redirect_from: /topics/templating/
---
-This is an advanced feature of Home Assistant. You'll need a basic understanding of the following things:
+This is an advanced feature of Home Assistant. You'll need a basic understanding of:
- [Home Assistant architecture](/developers/architecture/), especially states.
-- [State object](/topics/state_object/)
+- The [State object](/topics/state_object/).
-Templating is a powerful feature in Home Assistant that allows the user control over information that is going into and out of the system. It is used for:
+Templating is a powerful feature that allows you to control information going into and out of the system. It is used for:
- Formatting outgoing messages in, for example, the [notify](/components/notify/) platforms and [alexa](/components/alexa/) component.
- Process incoming data from sources that provide raw data, like [MQTT](/components/mqtt/), [`rest` sensor](/components/sensor.rest/) or the [`command_line` sensor](/components/sensor.command_line/).
@@ -23,11 +23,16 @@ Templating is a powerful feature in Home Assistant that allows the user control
## {% linkable_title Building templates %}
-Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. We will not go over the basics of the syntax, as Jinja2 does a lot better job at this in their [Jinja2 documentation](http://jinja.pocoo.org/docs/dev/templates/).
+Templating in Home Assistant is powered by the [Jinja2](http://jinja.pocoo.org/) templating engine. This means that we are using their syntax and make some custom Home Assistant variables available to templates during rendering. Jinja2 supports a wide variety of operations:
+
+- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math)
+- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons)
+- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic)
+
+We will not go over the basics of the syntax, as Jinja2 does a great job of this in their [templates documentation](http://jinja.pocoo.org/docs/dev/templates/).
+
+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.
-
-The frontend has a template editor developer tool to help develop and debug templates.
-
Templates can get big pretty fast. To keep a clear overview, consider using YAML multiline strings to define your templates:
@@ -47,17 +52,11 @@ script:
```
{% endraw %}
-[Jinja2](http://jinja.pocoo.org/) supports a wide variety of operations:
-
-- [Mathematical operation](http://jinja.pocoo.org/docs/dev/templates/#math)
-- [Comparisons](http://jinja.pocoo.org/docs/dev/templates/#comparisons)
-- [Logic](http://jinja.pocoo.org/docs/dev/templates/#logic)
-
-
## {% linkable_title Home Assistant template extensions %}
-Home Assistant adds extensions to allow templates to access all of the current states:
+ Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters.
+### {% linkable_title States %}
- Iterating `states` will yield each state sorted alphabetically by entity ID.
- Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID.
- `states.sensor.temperature` returns the state object for `sensor.temperature`.
@@ -65,87 +64,60 @@ Home Assistant adds extensions to allow templates to access all of the current s
- `is_state('device_tracker.paulus', 'home')` will test if the given entity is the specified state.
- `state_attr('device_tracker.paulus', 'battery')` will return the value of the attribute or None if it doesn't exist.
- `is_state_attr('device_tracker.paulus', 'battery', 40)` will test if the given entity attribute is the specified state (in this case, a numeric value).
-- `now()` will be rendered as 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.
- - For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
-- `as_timestamp()` will convert datetime object or string to UNIX timestamp
-- `distance()` will measure the distance in kilometers between home, entity, coordinates.
-- `closest()` will find the closest entity.
-- `float` will format the output as float.
-- `strptime(string, format)` will parse a string to a datetime based on a [format][strp-format].
-- `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.
-- `sin(value)` will return the sine of the input. Can be used as a filter.
-- `cos(value)` will return the cosine of the input. Can be used as a filter.
-- `tan(value)` will return the tangent of the input. Can be used as a filter.
-- `sqrt(value)` will return the square root of the input. Can be used as a filter.
-- `e` mathematical constant, approximately 2.71828.
-- `pi` mathematical constant, approximately 3.14159.
-- `tau` mathematical constant, approximately 6.28318.
-- Filter `round(x)` will convert the input to a number and round it to `x` decimals.
-- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
-- Filter `timestamp_utc` will convert an UNIX timestamp to UTC time/data.
-- Filter `timestamp_custom(format_string, local_boolean)` will convert an UNIX timestamp to a custom format, the use of a local timestamp is default, supporting [Python format options](https://docs.python.org/3/library/time.html#time.strftime).
-- Filter `max` will obtain the largest item in a sequence.
-- Filter `min` will obtain the smallest item in a sequence.
-- Filter `regex_match(string, find, ignorecase=FALSE)` will match the find expression at the beginning of the string using regex.
-- Filter `regex_search(string, find, ignorecase=FALSE)` will match the find expression anywhere in the string using regex.
-- Filter `regex_replace(string, find='', replace='', ignorecase=False)` will replace the find expression with the replace string using regex.
-- Filter `regex_findall_index(string, find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches).
-- Filter `bitwise_and(value_one, value_two)` perform a bitwise and(&) operation with two values.
-- Filter `bitwise_or(value_one, value_two)` perform a bitwise or(\|) operation with two values.
-- Filter `base64_encode` convert given value to a Base64 encoded string.
-- Filter `base64_decode` convert given Base64 value to a regulary string.
-- Filter `ordinal` convert a number into a speakable ordinal text.
-
-[strp-format]: https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior
-
-
-If your template uses an `entity_id` that begins with a number (example: `states.device_tracker.2008_gmc`) you must use a bracket syntax to avoid errors caused by rendering the `entity_id` improperly. In the example given, the correct syntax for the device tracker would be: `states.device_tracker['2008_gmc']`
-
-## {% linkable_title Templates using `now()` %}
+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.
-
-Rendering templates with time (`now()`) is dangerous as updates only trigger templates in sensors based on entity state changes.
-
-
-## {% linkable_title Priority of operators %}
-The default priority of operators is that the filter (`|`) has priority over everything except brackets. This means that:
+#### {% linkable_title 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.
{% raw %}
-```yaml
-{{ states('sensor.temperature') | float / 10 | round(2) }}
+```text
+{{ states('device_tracker.paulus') }}
+{{ states.device_tracker.paulus.state }}
```
{% endraw %}
-Would round `10` to 2 decimal places, then divide `states('sensor.temperature')` by that.
+Print out a list of all the sensor states:
-## {% linkable_title Home Assistant template extensions %}
+{% raw %}
+```text
+{% for state in states.sensor %}
+ {{ state.entity_id }}={{ state.state }},
+{% endfor %}
+```
+{% endraw %}
-In templates, besides the normal [state object methods and properties](/topics/state_object/), there are also some extra things available:
+Other state examples:
+{% raw %}
-- `states.sensor.temperature.state_with_unit` will print the state of the entity and, if available, the unit.
+```text
+{% if is_state('device_tracker.paulus', 'home') %}
+ Ha, Paulus is home!
+{% else %}
+ Paulus is at {{ states('device_tracker.paulus') }}.
+{% endif %}
-## {% linkable_title Examples %}
+{{ states('sensor.temperature') | float + 1 }}
-To test a template, go to the
template developer tools, create your template in the _Template editor_ and check the results on the right.
+{{ (states('sensor.temperature') | float * 10) | round(2) }}
-### {% linkable_title States %}
+{% if states('sensor.temperature') | float > 20 %}
+ It is warm!
+{%endif %}
-The next two statements result in same value if state exists. The second one will result in an error if state does not exist.
+{{ as_timestamp(states.binary_sensor.garage_door.last_changed) }}
-{% raw %}
-```text
-{{ states('device_tracker.paulus') }}
-{{ states.device_tracker.paulus.state }}
+{{ as_timestamp(now()) - as_timestamp(states.binary_sensor.garage_door.last_changed) }}
```
{% endraw %}
+
### {% linkable_title Attributes %}
-Print an attribute if state is defined. Both will return the same thing but the last one you can specify entity_id from a variable.
+You can print an attribute with `state_attr` if state is defined.
+
+#### {% linkable_title Attributes examples %}
{% raw %}
```text
@@ -157,7 +129,7 @@ Print an attribute if state is defined. Both will return the same thing but the
```
{% endraw %}
-With strings
+With strings:
{% raw %}
```text
@@ -171,39 +143,24 @@ With strings
```
{% endraw %}
-### {% linkable_title Sensor states %}
-
-Print out a list of all the sensor states.
-{% raw %}
-```text
-{% for state in states.sensor %}
- {{ state.entity_id }}={{ state.state }},
-{% endfor %}
-
-{% if is_state('device_tracker.paulus', 'home') %}
- Ha, Paulus is home!
-{% else %}
- Paulus is at {{ states('device_tracker.paulus') }}.
-{% endif %}
-
-{{ states('sensor.temperature') | float + 1 }}
-
-{{ (states('sensor.temperature') | float * 10) | round(2) }}
-
-{% if states('sensor.temperature') | float > 20 %}
- It is warm!
-{%endif %}
-
-{{ as_timestamp(states.binary_sensor.garage_door.last_changed) }}
-
-{{ as_timestamp(now()) - as_timestamp(states.binary_sensor.garage_door.last_changed) }}
-```
-{% endraw %}
+### {% linkable_title 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.
+ - For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
+- `as_timestamp()` will convert datetime object or string to UNIX timestamp.
+- `strptime(string, format)` will parse a string to a datetime based on a [format](https://docs.python.org/3.6/library/datetime.html#strftime-and-strptime-behavior).
+- Filter `timestamp_local` will convert an UNIX timestamp to local time/data.
+- Filter `timestamp_utc` will convert a UNIX timestamp to UTC time/data.
+- 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).
-### {% linkable_title Distance examples %}
+### {% linkable_title Distance %}
+- `distance()` will measure the distance in kilometers between home, entity, coordinates.
+- `closest()` will find the closest entity.
-If only 1 location is passed in, Home Assistant will measure the distance from home.
+#### {% linkable_title Distance examples %}
+If only one location is passed in, Home Assistant will measure the distance from home.
{% raw %}
```text
@@ -217,8 +174,6 @@ These can also be combined in any combination:
```
{% endraw %}
-### {% linkable_title Closest examples %}
-
Find entities closest to the Home Assistant location:
{% raw %}
@@ -230,7 +185,7 @@ Query all entities in group.children: {{ closest(states.group.children) }}
```
{% endraw %}
-Find entities closest to a coordinate or another entity. All previous arguments still apply for 2nd argument.
+Find entities closest to a coordinate or another entity. All previous arguments still apply for second argument.
{% raw %}
```text
@@ -240,8 +195,6 @@ Closest to an entity: {{ closest(states.zone.school, 'group.children') }}
```
{% endraw %}
-### {% linkable_title Combined %}
-
Since closest returns a state, we can combine it with distance too.
{% raw %}
@@ -250,9 +203,36 @@ Since closest returns a state, we can combine it with distance too.
```
{% endraw %}
+
+### {% linkable_title Formatting %}
+- `float` will format the output as float.
+
+### {% linkable_title 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.
+- `sin(value)` will return the sine of the input. Can be used as a filter.
+- `cos(value)` will return the cosine of the input. Can be used as a filter.
+- `tan(value)` will return the tangent of the input. Can be used as a filter.
+- `sqrt(value)` will return the square root of the input. Can be used as a filter.
+- `e` mathematical constant, approximately 2.71828.
+- `pi` mathematical constant, approximately 3.14159.
+- `tau` mathematical constant, approximately 6.28318.
+- Filter `round(x)` will convert the input to a number and round it to `x` decimals.
+- Filter `max` will obtain the largest item in a sequence.
+- Filter `min` will obtain the smallest item in a sequence.
+- Filter `value_one|bitwise_and(value_two)` perform a bitwise and(&) operation with two values.
+- Filter `value_one|bitwise_or(value_two)` perform a bitwise or(\|) operation with two values.
+
+### {% linkable_title 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.
+- Filter `string|regex_findall_index(find='', index=0, ignorecase=False)` will find all regex matches of find in string and return the match at index (findall returns an array of matches).
+
## {% linkable_title Processing incoming data %}
-The other part of templating is processing incoming data. It will allow you to modify incoming data and extract only the data you care about. This will work only for platforms and components that mentioned support for this in their documentation.
+The other part of templating is processing incoming data. It allows you to modify incoming data and extract only the data you care about. This will only work for platforms and components that mention support for this in their documentation.
It depends per component or platform, but it is common to be able to define a template using the `value_template` configuration key. When a new value arrives, your template will be rendered while having access to the following values on top of the usual Home Assistant extensions:
@@ -329,7 +309,7 @@ The following overview contains a couple of options to get the needed values:
{% raw %}{{ value_json.tst | timestamp_custom('%Y' True) }}{% endraw %}
```
-To evaluate a response, go to the
template developer tools, create your output into "Template", and check the result.
+To evaluate a response, go to the
template developer tools, create your output in "Template", and check the result.
{% raw %}
```yaml
@@ -344,3 +324,28 @@ To evaluate a response, go to the
+ Make sure you include the `hook.service` plugin if you want to run Caddy as a service
+
+
+### {% linkable_title 3. Port forwarding. %}
+
+Forward ports 443 and 80 to your server on your router. Do not forward port 8123.
+
+### {% linkable_title 4. Create Caddyfile. %}
+
+Use this as your Caddyfile, change the domain name to match yours.
```
-hass.example.org {
+example.com {
proxy / localhost:8123 {
websocket
transparent
}
}
```
+
+### {% linkable_title 5. Configure Home Assistant %}
+
+Home Assistant is still available without using the Caddy proxy. Restricting it to only listen to `127.0.0.1` will forbid direct accesses. Also, Home Assistant should be told to trust headers coming from Caddy proxy only. Otherwise, incoming requests will always come from `127.0.0.1` and not the real IP address.
+
+On your `configuration.yaml` file, edit the `http` component.
+
+```yaml
+http:
+ # For extra security set this to only accept connections on localhost if Caddy is on the same machine
+ # server_host: 127.0.0.1
+ # Update this line to be your domain
+ base_url: https://example.com
+ use_x_forwarded_for: true
+ # You must set the trusted proxy IP address so that Home Assistant will properly accept connections
+ # Set this to your Caddy machine IP, or localhost if hosted on the same machine.
+ trusted_proxies:
+```
+
+### {% linkable_title 6. Start Caddy %}
+
+You can either start Caddy or [install it as a service](https://github.com/mholt/caddy/wiki/Caddy-as-a-service-examples), pass the Caddyfile path as a `conf` parameter.
+Home Assistant will be listening on port 443 (HTTPS) and all insecure traffic on port 80 will be redirected.
+
diff --git a/source/_docs/ecosystem/haproxy.markdown b/source/_docs/ecosystem/haproxy.markdown
new file mode 100644
index 000000000000..3e56ae52a9d5
--- /dev/null
+++ b/source/_docs/ecosystem/haproxy.markdown
@@ -0,0 +1,114 @@
+---
+layout: page
+title: "HAProxy"
+description: "Documentation about setting up Home Assistant with HAProxy"
+date: 2018-01-02 11:23:00 -0500
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Using HAProxy to proxy for Home Assistant allows you to serve Home Assistant securely over standard ports with HTTP to HTTPS redirection.
+
+### {% linkable_title Install HAProxy on your server %}
+
+This will vary depending on your OS. Check out Google for this.
+
+### {% linkable_title Obtain an SSL certificate %}
+
+There are multiple ways of obtaining an SSL certificate. Let’s Encrypt is one method.
+Use Google for this, but a good example of using Certbot can be found [here](https://www.digitalocean.com/community/tutorials/how-to-secure-haproxy-with-let-s-encrypt-on-ubuntu-12-04).
+
+### {% linkable_title HAPRoxy Configuration %}
+
+The following configuration updates HAProxy defaults for more secure ciphers for SSL and logging and connection
+timeouts.
+
+Items to update for your deployment:
+
+ * `bind`: Update the ports HAProxy listens on for forwarding.
+ * `subdomain.domain.com`: Your domain to use
+ * `ssl crt`: The path to your SSL certificate.
+ * `server hass 127.0.0.1:8123`: The IP and port location of your Home Assistant instance.
+
+```text
+global
+ log /dev/log local0
+ log /dev/log local1 notice
+ chroot /var/lib/haproxy
+ stats socket /run/haproxy/admin.sock mode 660 level admin
+ stats timeout 30s
+ user haproxy
+ group haproxy
+ daemon
+
+ # Default SSL material locations
+ ca-base /etc/ssl/certs
+ crt-base /etc/ssl/private
+
+ # Default ciphers to use on SSL-enabled listening sockets.
+ # For more information, see ciphers(1SSL). This list is from:
+ # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
+ ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
+ ssl-default-bind-options no-sslv3
+ maxconn 2048
+ tune.ssl.default-dh-param 2048
+
+defaults
+ log global
+ mode http
+ option httplog
+ option dontlognull
+ timeout connect 5000
+ timeout client 50000
+ timeout server 50000
+ timeout http-request 5s #protection from Slowloris attacks
+
+frontend www-http
+ bind *:80
+ redirect scheme https
+
+frontend www-https
+ log /dev/log local0 debug
+ bind *:443 ssl crt /etc/haproxy/certs/MYCERT.pem
+ acl hass-acl hdr(host) -i SUBDOMAIN.DOMAIN.COM
+ use_backend hass-backend if hass-acl
+
+backend hass-backend
+ server hass :8123
+
+ mode http
+ option forwardfor
+ http-request add-header X-Forwarded-Proto https
+ http-request add-header X-Forwarded-Port 443
+```
+
+### {% linkable_title Forward Ports %}
+
+Forward ports 443 and (optionally) 80 to your server on your router.
+
+Do not forward port 8123, HAProxy takes care of securing the connection with HTTPS on 443.
+If 8123 is forwarded then it will not be secured.
+
+Replace 443 with whatever port you chose to bind to in the config if different.
+
+### {% linkable_title Configure Home Assistant HTTP Component %}
+
+In your `configuration.yaml` file, edit the [http component](https://www.home-assistant.io/components/http/).
+
+```text
+http:
+ # For extra security set this to only accept connection on localhost if HAProxy is on the same machine
+ # server_host: 127.0.0.1
+ # Update this line to be your domain
+ base_url: https://example.com
+ use_x_forwarded_for: true
+ # You must set the trusted proxy IP address so that Home Assistant will properly accept connections
+ # Set this to your HAProxy machine IP, or localhost if hosted on the same machine.
+ trusted_proxies:
+```
+
+### {% linkable_title Restart or Reload HAProxy %}
+
+Use your OS method of restarting or reloading HAProxy. Use Google for this.
diff --git a/source/_docs/ecosystem/ios.markdown b/source/_docs/ecosystem/ios.markdown
index d6554f1ace7f..57c9ad0c579e 100644
--- a/source/_docs/ecosystem/ios.markdown
+++ b/source/_docs/ecosystem/ios.markdown
@@ -31,6 +31,8 @@ The `ios` component is the companion component for the Home Assistant iOS app. W
Loading the `ios` component will also load the [`device_tracker`](/components/device_tracker), [`zeroconf`](/components/zeroconf) and [`notify`](/components/notify) platforms.
+The Home Assistant for iOS app supports the new authentication system introduced in Home Assistant 0.77.
+
## {% linkable_title Setup %}
### {% linkable_title Automated Setup %}
diff --git a/source/_docs/ecosystem/ios/notifications/actions.markdown b/source/_docs/ecosystem/ios/notifications/actions.markdown
index 3112ae06a334..9f1493b3d72f 100644
--- a/source/_docs/ecosystem/ios/notifications/actions.markdown
+++ b/source/_docs/ecosystem/ios/notifications/actions.markdown
@@ -58,7 +58,7 @@ When sending a notification:
- **identifier** (*Required*): A unique identifier for this action. Must be uppercase and have no special characters or spaces. Only needs to be unique to the category, not unique globally.
- **title** (*Required*): The text to display on the button. Keep it short.
- **activationMode** (*Optional*): The mode in which to run the app when the action is performed. Setting this to `foreground` will make the app open after selecting. Default value is `background`.
-- **authenticationRequired** (*Optional*): If a truthy value (`true`, `True`, `yes`, etc.) the user must unlock the device before the action is performed.
+- **authenticationRequired** (*Optional*): If `true`, the user must unlock the device before the action is performed.
- **destructive** (*Optional*): When the value of this property is a truthy value, the system displays the corresponding button differently to indicate that the action is destructive (text color is red).
- **behavior** (*Optional*): When `textInput` the system provides a way for the user to enter a text response to be included with the notification. The entered text will be sent back to Home Assistant. Default value is `default`.
- **textInputButtonTitle** (*Optional*): The button label. *Required* if `behavior` is `textInput`.
@@ -76,14 +76,14 @@ ios:
- identifier: 'SOUND_ALARM'
title: 'Sound Alarm'
activationMode: 'background'
- authenticationRequired: yes
- destructive: yes
+ authenticationRequired: true
+ destructive: true
behavior: 'default'
- identifier: 'SILENCE_ALARM'
title: 'Silence Alarm'
activationMode: 'background'
- authenticationRequired: yes
- destructive: no
+ authenticationRequired: true
+ destructive: false
behavior: 'textInput'
textInputButtonTitle: 'Silencio!'
textInputPlaceholder: 'Placeholder'
diff --git a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
index 721386de2e3b..29f0f5c0727c 100644
--- a/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
+++ b/source/_docs/ecosystem/ios/notifications/content_extensions.markdown
@@ -93,13 +93,13 @@ ios:
- identifier: 'OPEN_COVER'
title: 'Open Cover'
activationMode: 'background'
- authenticationRequired: yes
+ authenticationRequired: true
destructive: no
- identifier: 'CLOSE_COVER'
title: 'Close Cover'
activationMode: 'background'
- authenticationRequired: yes
- destructive: yes
+ authenticationRequired: true
+ destructive: true
```
# Troubleshooting
diff --git a/source/_docs/ecosystem/ios/notifications/sounds.markdown b/source/_docs/ecosystem/ios/notifications/sounds.markdown
index 7daa9e1b9a16..0ebc712bf05e 100644
--- a/source/_docs/ecosystem/ios/notifications/sounds.markdown
+++ b/source/_docs/ecosystem/ios/notifications/sounds.markdown
@@ -31,23 +31,24 @@ Notes:
* You must use the full filename in the payload (including extension).
## {% linkable_title Custom push notification sounds %}
-The app allows you to use your own custom sounds in push notifications. The sounds must be formatted following [Apple's requirements][sound-requirements]. You set the filename of the sound in the notification payload. To add sounds:
+
+The app allows you to use your own custom sounds in push notifications. The sounds must be formatted as 32bit float 48000Hz wav files. You set the filename of the sound in the notification payload. To add sounds:
1. Connect the device to a PC or Mac running the latest version of iTunes.
2. Go to the device in iTunes.
-3. Select "Apps" on the left sidebar.
-4. Scroll down until you see the section labeled "File Sharing".
-5. Select Home Assistant.
-6. Drag and drop properly formatted sounds.
-7. Click Sync in the lower right.
-8. Once sync is complete, disconnect the device from the computer.
-9. On your iOS device, open the Home Assistant app.
-10. Go to Settings -> Notification Settings.
-11. Select "Import sounds from iTunes".
+3. Select "File Sharing" in the left-hand menu.
+4. Select Home Assistant.
+5. Drag and drop properly formatted sounds (32bit float 48000Hz wav files).
+6. Click Sync in the lower right.
+7. Once the sync is complete, disconnect the device from the computer.
+8. On your iOS device, open the Home Assistant app.
+9. Go to Settings -> Notification Settings.
+10. Select "Import sounds from iTunes".
Assuming that you correctly formatted the sounds they are now available to use in push notifications.
Notes:
+
* **Please note that due to a bug in iOS 10 you may need to restart your entire device before notification sounds can be played. This should hopefully be fixed by Apple soon.**
* Uploading a file with the same name as an existing one will overwrite the original.
* You can view what sounds are installed on each device by inspecting the `ios.conf` file in your configuration directory. They are listed in the `pushSounds` array.
diff --git a/source/_docs/ecosystem/nginx.markdown b/source/_docs/ecosystem/nginx.markdown
index 0d44113b3e49..4f4fcfa4a244 100644
--- a/source/_docs/ecosystem/nginx.markdown
+++ b/source/_docs/ecosystem/nginx.markdown
@@ -83,6 +83,24 @@ Double check this configuration to ensure all settings are correct and start ngi
Forward ports 443 and 80 to your server on your router. Do not forward port 8123.
+### {% linkable_title 9. Configure Home Assistant %}
+
+Home Assistant is still available without using the NGINX proxy. Restricting it to only listen to `127.0.0.1` will forbid direct accesses. Also, Home Assistant should be told to trust headers coming from the NGINX proxy only. Otherwise, incoming requests will always come from `127.0.0.1` and not the real IP address.
+
+On your `configuration.yaml` file, edit the `http` component.
+
+```yaml
+http:
+ # For extra security set this to only accept connections on localhost if NGINX is on the same machine
+ # server_host: 127.0.0.1
+ # Update this line to be your domain
+ base_url: https://example.com
+ use_x_forwarded_for: true
+ # You must set the trusted proxy IP address so that Home Assistant will properly accept connections
+ # Set this to your NGINX machine IP, or localhost if hosted on the same machine.
+ trusted_proxies:
+```
+
### {% linkable_title NGINX Config %}
```nginx
diff --git a/source/_docs/frontend/browsers.markdown b/source/_docs/frontend/browsers.markdown
index 520f77135c4f..772bd9922c20 100644
--- a/source/_docs/frontend/browsers.markdown
+++ b/source/_docs/frontend/browsers.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /getting-started/browsers/
---
-Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which were tested. This doesn't mean that older or newer releases not work.
+Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which was tested. This doesn't mean that older or newer releases are not work.
If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time.
@@ -50,7 +50,8 @@ We would appreciate if you help to keep this page up-to-date and add feedback.
| [w3m] | 0.5.3 | fails | display the icon shown while loading HA |
| [Epiphany] | 3.18.5 | works | |
| [surf] | 0.7 | works | |
-| [Chrome] | 69.0.3497.100 | works | |
+| [Chrome] | 71.0.3578.98 | works | |
+| [Waterfox] | 56.2.6 | fails | |
## {% linkable_title Android %}
@@ -87,4 +88,5 @@ There are reports that devices running with iOS prior to iOS 10, especially old
[Tor Browser]: https://www.torproject.org/
[Uzbl]: http://www.uzbl.org/
[w3m]: http://w3m.sourceforge.net/
+[Waterfox]: https://www.waterfoxproject.org
diff --git a/source/_docs/installation.markdown b/source/_docs/installation.markdown
index 0d1af7257e1a..9440729d6184 100644
--- a/source/_docs/installation.markdown
+++ b/source/_docs/installation.markdown
@@ -11,55 +11,39 @@ redirect_from: /getting-started/installation/
---
-Beginners should check our [Getting started guide](/getting-started/) first. This is for users that require advanced installations.
+Beginners should check our [Getting started guide](/getting-started/) first.
-Home Assistant provides multiple ways to be installed. A requirement is that you have [Python 3.5.3 or later](https://www.python.org/downloads/) installed.
+Home Assistant provides multiple ways to be installed. The first start may take up to 20 minutes because the required packages will be downloaded and installed. The web interface will be served on `http://ip.add.re.ss:8123/`. Replace `ip.add.re.ss` with the IP of the computer you installed it on.
Please remember to [secure your installation](/docs/configuration/securing/) once you've finished with the installation process.
-## {% linkable_title Recommended options %}
+## {% linkable_title Recommended %}
-
+These install options are fully supported by Home Assistant's documentation. For example, if a component requires that you install something to make it work on one of these methods then the component page will document the steps required.
+
+**Method**|**You have**|**Recommended for**
+:-----|:-----|:-----
+[Hass.io](/hassio/installation/)|Raspberry Pi
VM|Anybody
+[Docker](/docs/installation/docker/)|Docker|Anybody already running Docker
+[Hassbian](/docs/hassbian/installation/)|Raspberry Pi|Those who want a more traditional Linux experience and either have experience with Linux, or intend to learn
## {% linkable_title Alternative installs %}
-The following installs are only recommended for experienced users of those platforms.
+If you use these install methods, we assume that you know how to manage and administer the operating system you're using. Due to the range of platforms on which these install methods can be used, component documentation may only tell you what you have to install, not how to install it.
+
+**Method**|**You have**|**Recommended for**
+:-----|:-----|:-----
+[Virtualenv
(as another user)](/docs/installation/raspberry-pi/)|Any Linux, Python 3.5.3 or later|Those familiar with their operating system
+[Virtualenv
(as your user)](/docs/installation/virtualenv/)|Any Python 3.5.3 or later|Developers
+
+## {% linkable_title Community provided guides %}
+
+These guides are provided as-is. Some of these install methods are more limited than the methods above. Some components may not work due to limitations of the platform or because required Python packages aren't available for that platform.
-
-## {% linkable_title After installation %}
-
-Once Home Assistant is installed, execute the following code in a console/terminal to check if the setup was successful:
-
-```bash
-$ hass
-```
-
-The first start may take up to 20 minutes because the needed packages will be downloaded and installed. The web interface will be served on [http://localhost:8123](http://localhost:8123).
-
-For more details about `hass`, please refer to the [tools section](/docs/tools/hass/).
-
-If you're running a Linux-based platform, we suggest you follow the [VirtualEnv instructions](/docs/installation/virtualenv/) to avoid using `root`.
-
-You may need to install additional libraries depending on the platforms/components you want to use.
diff --git a/source/_docs/installation/armbian.markdown b/source/_docs/installation/armbian.markdown
index 5f16fc5bc0e2..14f548a0453b 100644
--- a/source/_docs/installation/armbian.markdown
+++ b/source/_docs/installation/armbian.markdown
@@ -13,7 +13,7 @@ footer: true
Python 3.5.3 or later is required.
-Setup Python and `pip`
+Setup Python and `pip`:
```bash
$ sudo apt-get update
@@ -23,10 +23,12 @@ $ sudo apt-get install python3-dev python3-pip
Now that you installed python, there are two ways to install Home Assistant:
1. It is recommended to install Home Assistant in a virtual environment to avoid using `root`, using the [VirtualEnv instructions](/docs/installation/virtualenv/)
2. Alternatively, you can install Home Assistant for the user you created when first booting Armbian:
+
```bash
$ sudo pip3 install homeassistant
$ hass --open-ui
```
+
Running these commands will:
- Install Home Assistant
diff --git a/source/_docs/installation/centos.markdown b/source/_docs/installation/centos.markdown
index bf0c76c6eef7..4b3364ec44bc 100644
--- a/source/_docs/installation/centos.markdown
+++ b/source/_docs/installation/centos.markdown
@@ -11,36 +11,48 @@ footer: true
To run Python 3.x on [CentOS](https://www.centos.org/) or RHEL (Red Hat Enterprise Linux), [Software Collections](https://www.softwarecollections.org/en/scls/rhscl/rh-python36/) needs to be activated first.
-You must install Python 3.5.3 or later. Software Collections version of Python 3.5 is 3.5.1 so this guide uses Python 3.6.
-
### {% linkable_title Using Software Collections %}
-First of all install the software collection repository as root. For example, on CentOS:
+First of all install the software collection repository as root and [scl utils](https://access.redhat.com/documentation/en-US/Red_Hat_Developer_Toolset/1/html-single/Software_Collections_Guide/). For example, on CentOS:
```bash
-$ yum install centos-release-scl
+$ sudo yum install centos-release-scl
+$ sudo yum-config-manager --enable centos-sclo-rh-testing
+$ sudo yum install -y scl-utils
```
+
Install some dependencies you'll need later.
```bash
-$ yum install gcc gcc-c++ systemd-devel
+$ sudo yum install gcc gcc-c++ systemd-devel
+```
+
+Then install the Python 3.6 package. If you are using CentOS 7 then you may have to install the packages for Python 3.6 using RHEL Methods listed here: https://www.softwarecollections.org/en/scls/rhscl/rh-python36/) for this to work as mentioned above.
+
+```bash
+$ sudo yum install rh-python36
```
-Then install the Python 3.6 package:
+This is part of the slight change when trying to install Python 3.6 and running the command `python36 --version` which will after install give you the correct version, but won't allow you to set the software collection using the `scl` command. This command downloads the RH collection of Python to allow you to run `scl` command to enable the environment in `bash` and then run the automate command using the template.
```bash
$ yum install rh-python36
```
-Once installed, switch to your `homeassistant` user (if you've set one up), enable the software collection and check that it has set up the new version of Python:
+### {% linkable_title Start using software collections %}
```bash
$ scl enable rh-python36 bash
+```
+
+Once installed, switch to your `homeassistant` user (if you've set one up), enable the software collection and check that it has set up the new version of Python:
+
+```bash
$ python --version
Python 3.6.3
```
-You will be in a command shell set up with Python 3.6 as your default version. The virtualenv and pip commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](/docs/installation/virtualenv/#step-4-set-up-the-virtualenv).
+You will be in a command shell set up with Python 3.6 as your default version. The `virtualenv` and `pip` commands will be correct for this version, so you can now create a virtual environment and install Home Assistant following the main [instructions](/docs/installation/virtualenv/#step-4-set-up-the-virtualenv).
You will need to enable the software collection each time you log on before you activate your virtual environment.
diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown
index 77cc0547d41e..655caea6b85a 100644
--- a/source/_docs/installation/docker.markdown
+++ b/source/_docs/installation/docker.markdown
@@ -15,19 +15,19 @@ Installation with Docker is straightforward. Adjust the following command so tha
### {% linkable_title Linux %}
```bash
-$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
+$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant
```
### {% linkable_title Raspberry Pi 3 (Raspbian) %}
```bash
-$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
+$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
```
You need to replace `/PATH_TO_YOUR_CONFIG` with your path to the configuration, for example if you choose your configuration path to be `/home/pi/homeassistant`, then command would be:
```bash
-$ docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
+$ docker run --init -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
```
### {% linkable_title macOS %}
@@ -37,7 +37,7 @@ When using `docker-ce` (or `boot2docker`) on macOS, you are unable to map the lo
If you wish to browse directly to `http://localhost:8123` from your macOS host, meaning forward ports directly to the container, replace the `--net=host` switch with `-p 8123:8123`. More detail can be found in [the docker forums](https://forums.docker.com/t/should-docker-run-net-host-work/14215/10).
```bash
-$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" -p 8123:8123 homeassistant/home-assistant
+$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" -p 8123:8123 homeassistant/home-assistant
```
Alternatively, `docker-compose` works with any recent release of `docker-ce` on macOS. Note that (further down this page) we provide an example `docker-compose.yml` however it differs from the `docker run` example above. To make the .yml directives match, you would need to make _two_ changes: first add the equivalent `ports:` directive, then _remove_ the `network_mode: host` section. This is because `Port mapping is incompatible with network_mode: host:`. More details can be found at [Docker networking docs](https://docs.docker.com/engine/userguide/networking/#default-networks). Note also the `/dev/tty*` device name used by your Arduino etc. devices will differ from the Linux example, so the compose `mount:` may require updates.
@@ -45,7 +45,7 @@ Alternatively, `docker-compose` works with any recent release of `docker-ce` on
### {% linkable_title Windows %}
```powershell
-$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" --net=host homeassistant/home-assistant
+$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config -e "TZ=America/Los_Angeles" --net=host homeassistant/home-assistant
```
When running Home Assistant in Docker on Windows, you may have some difficulty getting ports to map for routing (since the `--net=host` switch actually applies to the hypervisor's network interface). To get around this, you will need to add port proxy ipv4 rules to your local Windows machine, like so (Replacing '192.168.1.10' with whatever your Windows IP is, and '10.0.50.2' with whatever your Docker container's IP is):
@@ -77,7 +77,30 @@ The steps would be:
* Click on "Next" and then "Apply"
* Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Synology NAS IP address - for example `http://192.168.1.10:8123`)
+To use a Z-Wave USB stick for Z-Wave control, the HA Docker container needs extra configuration to access to the USB stick. While there are multiple ways to do this, the least privileged way of granting access can only be performed via the Terminal, at the time of writing. See this page for configuring Terminal acces to your Synology NAS:
+
+
+
+See this page for accessing the Terminal via SSH:
+
+
+
+Adjust the following Terminal command as follows :
+
+- Replace `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration
+- Replace `/PATH_TO_YOUR_USB_STICK` matches the path for your USB stick (e.g., `/dev/ttyACM0` for most Synology users)
+- Replace "Australia/Melbourne" with [your timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
+
+Run it in Terminal.
+
+```bash
+sudo docker run --restart always -d --name="homeassistant" -v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK -e TZ=Australia/Melbourne --net=host homeassistant/home-assistant
+```
+
+Complete the remainder of the Z-Wave configuration by [following the instructions here.](/docs/z-wave/installation)
+
Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following:
+
* Go to the Docker-app and move to "Registry"-section
* Find "homeassistant/home-assistant" within registry and click on "Download". Choose the "latest" tag, this will overwrite your current image to the latest version.
* Wait until the system-message/-notification comes up, that the download is finished (there is no progress bar)
@@ -127,7 +150,7 @@ If you want to use a USB Bluetooth adapter or Z-Wave USB stick with Home Assista
The above command should show you any USB devices plugged into your NAS. If you have more than one, you may get multiple items returned. Like : `ttyACM0`
- Run Docker command:
- `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant`
+ `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London --device /dev/ttyACM0 homeassistant/home-assistant`
`-v` is your config path
`-e` is set timezone
@@ -145,7 +168,7 @@ That will tell Home Assistant where to look for our Z-wave radio.
- Connect to your NAS over SSH
- Run Docker command:
- `docker run --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant`
+ `docker run --init --name home-assistant --net=host --privileged -itd -v /share/CACHEDEV1_DATA/Public/homeassistant/config:/config -e variable=TZ -e value=Europe/London -v /dev/bus/usb:/dev/bus/usb -v /var/run/dbus:/var/run/dbus homeassistant/home-assistant`
First `-v` is your config path
`-e` is set timezone
@@ -198,7 +221,7 @@ $ docker-compose restart
In order to use Z-Wave, Zigbee or other components that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your docker command:
```bash
-$ docker run -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \
+$ docker run --init -d --name="home-assistant" -v /PATH_TO_YOUR_CONFIG:/config \
-v /etc/localtime:/etc/localtime:ro --device /dev/ttyUSB0:/dev/ttyUSB0 \
--net=host homeassistant/home-assistant
```
diff --git a/source/_docs/installation/fedora.markdown b/source/_docs/installation/fedora.markdown
index be37bdeecba1..847984b31b37 100644
--- a/source/_docs/installation/fedora.markdown
+++ b/source/_docs/installation/fedora.markdown
@@ -23,14 +23,14 @@ and Home Assistant itself.
$ pip3 install homeassistant
```
-To isolate the Home Assistant installation a [venv](https://docs.python.org/3/library/venv.html) is handy. First create a new directory to store the installation and adjust the permissions.
+To isolate the Home Assistant installation a [`venv`](https://docs.python.org/3/library/venv.html) is handy. First create a new directory to store the installation and adjust the permissions.
```bash
$ sudo mkdir -p /opt/homeassistant
$ sudo useradd -rm homeassistant -G dialout
$ sudo chown -R homeassistant:homeassistant /opt/homeassistant
```
-Now switch to the new directory, setup the venv, and activate it.
+Now switch to the new directory, setup the `venv`, and activate it.
```bash
$ sudo -u homeassistant -H -s
diff --git a/source/_docs/installation/hassbian/common-tasks.markdown b/source/_docs/installation/hassbian/common-tasks.markdown
index 7c8b9b5b880c..3a0894c6c37b 100644
--- a/source/_docs/installation/hassbian/common-tasks.markdown
+++ b/source/_docs/installation/hassbian/common-tasks.markdown
@@ -11,7 +11,7 @@ redirect_from: /docs/hassbian/common-tasks/
---
### {% linkable_title Login to the Raspberry Pi %}
-To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Max OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty].
+To login to your Raspberry Pi running Hassbian you're going to be using a ssh client. Depending on your platform there are several alternatives for doing this. Linux and Mac OS generally have a ssh client installed. Windows users are recommended to download and install the ssh client [Putty][ssh-putty].
Connect to the Raspberry Pi over ssh. Default user name is `pi` and password is `raspberry`.
Linux and Mac OS users execute the following command in a terminal.
diff --git a/source/_docs/installation/hassbian/installation.markdown b/source/_docs/installation/hassbian/installation.markdown
index 41af2edf384b..26d1f7294418 100644
--- a/source/_docs/installation/hassbian/installation.markdown
+++ b/source/_docs/installation/hassbian/installation.markdown
@@ -13,7 +13,7 @@ redirect_from: /docs/hassbian/installation/
One of the easiest ways to install Home Assistant on your Raspberry Pi Zero, 2, 3 and 3B+ is by using Hassbian: a Raspberry Pi image with Home Assistant built-in. The image will install the latest version of Home Assistant on initial boot (~10 minutes).
1. [Download the Hassbian image][image-download]
- 2. Use [Etcher][etcher] to flash the image to your SD card. We recommend at least a 32 GB SD card to avoid running out of space.
+ 2. Use [balenaEtcher][balenaEtcher] to flash the image to your SD card. We recommend at least a 32 GB SD card to avoid running out of space.
3. Ensure your Raspberry Pi has wired access to the internet for the entire process or configure your [wireless network settings](#wireless-network) **before proceeding to step 4**.
4. Insert SD card to Raspberry Pi and turn it on. Initial installation of Home Assistant will take about 10 minutes.
@@ -55,6 +55,8 @@ network={
You may need to adjust the country code depending upon where you are. A list of codes can be found [here](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements).
+If you are using a [hidden SSID](https://en.wikipedia.org/wiki/Network_cloaking) for your WiFi network , you must add `scan_ssid=1` to the `network` section to be able to connect.
+
If you are running in trouble with your WiFi connection (for [further details](https://www.raspberrypi.org/forums/viewtopic.php?t=207882)), check the output of the following command:
```bash
@@ -73,7 +75,7 @@ To unblock it, execute `$ sudo rfkill unblock wifi`.
- The configuration is located at `/home/homeassistant/.homeassistant`
[image-download]: https://github.com/home-assistant/pi-gen/releases/latest
-[etcher]: https://etcher.io/
+[balenaEtcher]: https://www.balena.io/etcher
[http://hassbian.local:8123]: http://hassbian.local:8123
[wifi-setup]: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
diff --git a/source/_docs/installation/raspberry-pi.markdown b/source/_docs/installation/raspberry-pi.markdown
index 31af033f9d61..136c1ae2bb5c 100644
--- a/source/_docs/installation/raspberry-pi.markdown
+++ b/source/_docs/installation/raspberry-pi.markdown
@@ -45,7 +45,7 @@ $ sudo apt-get upgrade -y
Install the dependencies.
```bash
-$ sudo apt-get install python3 python3-venv python3-pip
+$ sudo apt-get install python3 python3-venv python3-pip libffi-dev
```
Add an account for Home Assistant called `homeassistant`.
diff --git a/source/_docs/installation/updating.markdown b/source/_docs/installation/updating.markdown
index 4bc5d375eb14..a1d2b06d6622 100644
--- a/source/_docs/installation/updating.markdown
+++ b/source/_docs/installation/updating.markdown
@@ -32,6 +32,13 @@ For a Docker container, simply pull the latest one:
$ sudo docker pull homeassistant/home-assistant:latest
```
+For a Raspberry Pi Docker container, simply pull the latest one:
+
+```bash
+$ sudo docker pull homeassistant/raspberrypi3-homeassistant:latest
+```
+
+
After updating, you must start/restart Home Assistant for the changes to take effect. This means that you will have to restart `hass` itself or the [autostarting](/docs/autostart/) daemon (if applicable). Startup can take considerable amount of time (i.e. minutes) depending on your device. This is because all requirements are updated as well.
[BRUH automation](http://www.bruhautomation.com) has created [a tutorial video](https://www.youtube.com/watch?v=tuG2rs1Cl2Y) explaining how to upgrade Home Assistant.
@@ -63,3 +70,13 @@ If you want to stay on the bleeding-edge Home Assistant development branch, you
```bash
$ pip3 install --upgrade git+git://github.com/home-assistant/home-assistant.git@dev
```
+
+### {% linkable_title Update Hass.io installation %}
+
+Best practice for updating a Hass.io installation:
+
+1. Backup your installation, using the snapshot functionality Hass.io offers.
+2. Check the release notes for breaking changes on [Home Assistant release notes](https://github.com/home-assistant/home-assistant/releases). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f`) and search for **Breaking Changes**.
+3. Check your configuration using the [Check Home Assistant configuration](/addons/check_config/) add-on.
+4. If the check passes, you can safely update. If not, update your configuration accordingly.
+5. Update Home Assistant.
diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown
index e9427bba34f5..548c776ce224 100644
--- a/source/_docs/installation/virtualenv.markdown
+++ b/source/_docs/installation/virtualenv.markdown
@@ -14,7 +14,7 @@ If you already have Python 3.5.3 or later installed, you can easily give Home As
It's recommended when installing Python packages that you use a [virtual environment](https://docs.python.org/3.5/library/venv.html#module-venv). This will make sure that your Python installation and Home Assistant installation won't impact one another. The following steps will work on most UNIX like systems.
-_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`. You may also need to install development libraries using `apt-get install build-essential libssl-dev libffi-dev python-dev`.)_
+_(If you're on a Debian based system, you will need to install Python virtual environment support using `apt-get install python3-pip python3-venv`. You may also need to install development libraries using `apt-get install build-essential libssl-dev libffi-dev python3-dev`.)_
It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/) which allows for the installation to run as a `homeassistant` user. The steps below may be shorter but some users find difficulty when applying updates and may run into issues.
@@ -47,6 +47,8 @@ It is recommended to use the [advanced guide](/docs/installation/raspberry-pi/)
```
$ hass --open-ui
```
+ 8. You can now reach the web interface on `http://ipaddress:8123/` - the first start may take up to 20 minutes before the web interface is available
+
### {% linkable_title Upgrade %}
diff --git a/source/_docs/installation/windows.markdown b/source/_docs/installation/windows.markdown
index 3efe0581137b..4ad45162efd4 100644
--- a/source/_docs/installation/windows.markdown
+++ b/source/_docs/installation/windows.markdown
@@ -15,7 +15,7 @@ To run Home Assistant on Microsoft Windows installation you need to install Pyth
There may be alpha or beta releases of Python listed on that download page (marked by the letters `a` or `b` in the version number. Do not use these versions.
-If you use your machine for something other than Home Assistant, you should install it in a [Python virtual environment](#Installing_in_a_Python_virtual_environment).
+If you use your machine for something other than Home Assistant, you should install it in a [Python virtual environment](#installing-in-a-python-virtual-environment).
Start
diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown
index cfff837d8eae..2fd03ed181ba 100644
--- a/source/_docs/mqtt/broker.markdown
+++ b/source/_docs/mqtt/broker.markdown
@@ -173,4 +173,7 @@ mqtt:
Home Assistant will automatically load the correct certificate if you connect to an encrypted channel of CloudMQTT (port range 20000-30000).
+
+If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then add `certificate: auto` to your broker configuration and restart Home Assistant.
+
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index f0cce9e3f016..85983004e2b8 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -10,7 +10,7 @@ footer: true
logo: mqtt.png
---
-The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/components/binary_sensor.http/) and the [HTTP sensor](/components/sensor.http/). The basic idea is that the device itself adds its configuration into your `configuration.yaml` automatically. To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type.
+The discovery of MQTT devices will enable one to use MQTT devices with only minimal configuration effort on the side of Home Assistant. The configuration is done on the device itself and the topic used by the device. Similar to the [HTTP binary sensor](/components/binary_sensor.http/) and the [HTTP sensor](/components/sensor.http/). To prevent multiple identical entries if a device reconnects a unique identifier is necessary. Two parts are required on the device side: The configuration topic which contains the necessary device type and unique identifier and the remaining device configuration without the device type.
Supported by MQTT discovery:
@@ -24,6 +24,7 @@ Supported by MQTT discovery:
- [Locks](/components/lock.mqtt/)
- [Sensors](/components/sensor.mqtt/)
- [Switches](/components/switch.mqtt/)
+- [Vacuums](/components/vacuum.mqtt/)
To enable MQTT discovery, add the following to your `configuration.yaml` file:
@@ -86,12 +87,25 @@ Supported abbreviations:
'bri_scl': 'brightness_scale',
'bri_stat_t': 'brightness_state_topic',
'bri_val_tpl': 'brightness_value_template',
+ 'bat_lev_t': 'battery_level_topic',
+ 'bat_lev_tpl': 'battery_level_template',
+ 'chrg_t': 'charging_topic',
+ 'chrg_tpl': 'charging_template',
'clr_temp_cmd_t': 'color_temp_command_topic',
'clr_temp_stat_t': 'color_temp_state_topic',
'clr_temp_val_tpl': 'color_temp_value_template',
+ 'cln_t': 'cleaning_topic',
+ 'cln_tpl': 'cleaning_template',
'cmd_t': 'command_topic',
'curr_temp_t': 'current_temperature_topic',
'dev_cla': 'device_class',
+ 'dock_t': 'docked_topic',
+ 'dock_tpl': 'docked_template',
+ 'err_t': 'error_topic',
+ 'err_tpl': 'error_template',
+ 'fanspd_t': 'fan_speed_topic',
+ 'fanspd_tpl': 'fan_speed_template',
+ 'fanspd_lst': 'fan_speed_list',
'fx_cmd_t': 'effect_command_topic',
'fx_list': 'effect_list',
'fx_stat_t': 'effect_state_topic',
@@ -141,6 +155,7 @@ Supported abbreviations:
'rgb_cmd_t': 'rgb_command_topic',
'rgb_stat_t': 'rgb_state_topic',
'rgb_val_tpl': 'rgb_value_template',
+ 'send_cmd_t': 'send_command_topic',
'send_if_off': 'send_if_off',
'set_pos_tpl': 'set_position_template',
'set_pos_t': 'set_position_topic',
@@ -154,6 +169,7 @@ Supported abbreviations:
'stat_open': 'state_open',
'stat_t': 'state_topic',
'stat_val_tpl': 'state_value_template',
+ 'sup_feat': 'supported_features',
'swing_mode_cmd_t': 'swing_mode_command_topic',
'swing_mode_stat_tpl': 'swing_mode_state_template',
'swing_mode_stat_t': 'swing_mode_state_topic',
@@ -182,13 +198,14 @@ Supported abbreviations:
### {% linkable_title Support by third-party tools %}
-The following firmware for ESP8266, ESP32 and Sonoff unit has built-in support for MQTT discovery:
+The following software has built-in support for MQTT discovery:
- [Sonoff-Tasmota](https://github.com/arendst/Sonoff-Tasmota) (starting with 5.11.1e)
-- [esphomeyaml](https://esphomelib.com/esphomeyaml/index.html)
+- [ESPHome](https://esphome.io)
- [ESPurna](https://github.com/xoseperez/espurna)
- [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X)
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
+- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)
### {% linkable_title Examples %}
@@ -212,7 +229,7 @@ $ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/stat
Delete the sensor by sending an empty message.
```bash
-$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/state" -m ''
+$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m ''
```
Setting up a switch is similar but requires a `command_topic` as mentioned in the [MQTT switch documentation](/components/switch.mqtt/).
@@ -254,7 +271,6 @@ Setting up a climate component (heat only) with abbreviated configuration variab
```yaml
{
"name":"Livingroom",
- "dev_cla":"climate",
"mode_cmd_t":"homeassistant/climate/livingroom/thermostatModeCmd",
"mode_stat_t":"homeassistant/climate/livingroom/state",
"mode_stat_tpl":"{{value_json.mode}}",
diff --git a/source/_docs/mqtt/service.markdown b/source/_docs/mqtt/service.markdown
index d4a7aad206d0..223d554d3f9a 100644
--- a/source/_docs/mqtt/service.markdown
+++ b/source/_docs/mqtt/service.markdown
@@ -12,6 +12,20 @@ logo: mqtt.png
The MQTT component will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload.
+### {% linkable_title Service `mqtt.publish` %}
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `topic` | no | Topic to publish payload to.
+| `payload` | yes | Payload to publish.
+| `payload_template` | yes | Template to render as payload value. Ignored if payload given.
+| `qos` | yes | Quality of Service to use.
+| `retain` | yes | If message should have the retain flag set. (default: false)
+
+
+You need to include either payload or payload_template, but not both.
+
+
```json
{
"topic": "home-assistant/light/1/command",
@@ -36,3 +50,14 @@ The MQTT component will register the service `mqtt.publish` which allows publish
"payload":"{\"Status\":\"off\", \"Data\":\"something\"}"
}
```
+
+Example of how to use `qos` and `retain`:
+
+```json
+{
+ "topic": "home-assistant/light/1/command",
+ "payload": "on",
+ "qos": 2,
+ "retain": true
+}
+```
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown
index 9d8b8a218b69..fccdd277509c 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -42,9 +42,10 @@ The most important one is the action to call a service. This can be done in vari
### {% linkable_title Test a Condition %}
-While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will finish. There are many different conditions which are documented at the [conditions page].
+While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page].
```yaml
+# If paulus is home, continue to execute the script below these lines
- condition: state
entity_id: device_tracker.paulus
state: 'home'
diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown
index 32ed35a628de..052845f32283 100644
--- a/source/_docs/scripts/conditions.markdown
+++ b/source/_docs/scripts/conditions.markdown
@@ -12,6 +12,8 @@ redirect_from: /getting-started/scripts-conditions/
Conditions can be used within a script or automation to prevent further execution. A condition will look at the system right now. For example a condition can test if a switch is currently turned on or off.
+Unlike a trigger, which is always `or`, conditions are `and` by default - all conditions have to be true.
+
### {% linkable_title AND condition %}
Test multiple conditions in 1 condition statement. Passes if all embedded conditions are valid.
@@ -28,7 +30,8 @@ condition:
below: 20
```
-If you do not want to combine AND and OR conditions, you can also just list them sequentially, by default all conditions have to be true.
+If you do not want to combine AND and OR conditions, you can also just list them sequentially.
+
The following configuration works the same as the one listed above:
```yaml
@@ -59,7 +62,7 @@ condition:
below: 20
```
-### {% linkable_title MIXED AND and OR conditions %}
+### {% linkable_title MIXED AND and OR conditions %}
Test multiple AND and OR conditions in 1 condition statement. Passes if any embedded conditions is valid.
This allows you to mix several AND and OR conditions together.
@@ -131,7 +134,7 @@ condition:
```yaml
condition:
- condition: or # 'when dark' condition: either after sunset or before sunrise
+ condition: or # 'when dark' condition: either after sunset or before sunrise - equivalent to a state condition on `sun.sun` of `below_horizon`
conditions:
- condition: sun
after: sunset
@@ -141,7 +144,7 @@ condition:
```yaml
condition:
- condition: and # 'when light' condition: before sunset and after sunrise
+ condition: and # 'when light' condition: before sunset and after sunrise - equivalent to a state condition on `sun.sun` of `above_horizon`
conditions:
- condition: sun
before: sunset
diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown
index 2724a7a07842..6a706456f13e 100644
--- a/source/_docs/scripts/service-calls.markdown
+++ b/source/_docs/scripts/service-calls.markdown
@@ -22,7 +22,7 @@ Use the
-You can also use the Z-Wave *Integration* in the *Configuration* menu to set up the Z-Wave component.
-
-
```yaml
# Example configuration.yaml entry
zwave:
@@ -53,7 +23,7 @@ zwave:
{% configuration zwave %}
usb_path:
- description: The port where your device is connected to your Home Assistant host.
+ description: The port where your device is connected to your Home Assistant host. Z-Wave sticks will generally be `/dev/ttyACM0` and GPIO hats will generally be `/dev/ttyAMA0`.
required: false
type: string
default: /zwaveusbstick
@@ -63,7 +33,7 @@ network_key:
type: string
default: None
config_path:
- description: "The path to the Python OpenZWave configuration files. NOTE: there is also the [update_config service](https://www.home-assistant.io/docs/z-wave/services/) to perform updating the config within python-openzwave automatically."
+ description: "The path to the Python OpenZWave configuration files. NOTE: there is also the [update_config service](/docs/z-wave/services/) to perform updating the config within python-openzwave automatically."
required: false
type: string
default: the 'config' that is installed by python-openzwave
@@ -71,7 +41,7 @@ autoheal:
description: Allows disabling auto Z-Wave heal at midnight.
required: false
type: boolean
- default: True
+ default: true
polling_interval:
description: The time period in milliseconds between polls of a nodes value. Be careful about using polling values below 30000 (30 seconds) as polling can flood the zwave network and cause problems.
required: false
@@ -81,7 +51,7 @@ debug:
description: Print verbose z-wave info to log.
required: false
type: boolean
- default: False
+ default: false
device_config / device_config_domain / device_config_glob:
description: "This attribute contains node-specific override values. NOTE: This needs to be specified if you are going to use any of the following options. See [Customizing devices and services](/docs/configuration/customizing-devices/) for the format."
required: false
@@ -91,7 +61,7 @@ device_config / device_config_domain / device_config_glob:
description: Ignore this entity completely. It won't be shown in the Web Interface and no events are generated for it.
required: false
type: boolean
- default: False
+ default: false
polling_intensity:
description: Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc). If not specified then your device will not be polled.
required: false
@@ -101,7 +71,7 @@ device_config / device_config_domain / device_config_glob:
description: Enable refreshing of the node value. Only the light component uses this.
required: false
type: boolean
- default: False
+ default: false
delay:
description: Specify the delay for refreshing of node value. Only the light component uses this.
required: false
@@ -111,114 +81,154 @@ device_config / device_config_domain / device_config_glob:
description: Inverts function of the open and close buttons for the cover domain. This will not invert the position and state reporting.
required: false
type: boolean
- default: False
+ default: false
{% endconfiguration %}
-As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in configuration.yaml is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc.
+As of Home Assistant 0.81, the Z-Wave `usb_path` and `network_key` options are configured through the Integrations page in Home Assistant. Specifying a `zwave:` section in `configuration.yaml` is no longer required unless you need to customize other settings, such as `device_config`, `polling_interval`, etc.
+
+If you change the `usb_path` or `network_key` in your `configuration.yaml` then this will not be updated in the integration. You'll need to remove and re-add the Integration for these changes to take effect.
+### {% linkable_title Network Key %}
-### {% linkable_title Finding the controller path on Linux %}
-
-
-If you're using Hass.io please follow [these setup instructions](/hassio/zwave/) for finding the controller path.
-
-
-To find the path of your Z-Wave USB stick or module, connect it to your system and run:
+Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices.
+An easy script to generate a random key:
```bash
-$ ls -ltr /dev/tty*|tail -n 1
+$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
```
-That will give you a line that looks something like this:
+You can also use sites like [this one](https://www.random.org/cgi-bin/randbyte?nbytes=16&format=h) to generate the required data, just remember to put `0x` before each pair of characters:
-```bash
-crw-rw---- 1 root dialout 204, 64 Sep 21 10:25 /dev/ttyUSB0
+```yaml
+# Example configuration.yaml entry for network_key
+zwave:
+ network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c"
```
-Where the date and time displayed is approximately the time you connected the USB stick or module (it may also be something like `/dev/ttyAMA0` or `/dev/ttyACM0`). The number will be zero for the first device connected, and higher numbers for later devices.
+Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network.
-Or, if there is no result, try to find detailed USB connection info with:
+## {% linkable_title First Run %}
+
+On platforms other than Hass.io and Docker, the compilation and installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed.
+
+The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process.
+
+## {% linkable_title Platform specific instructions %}
+
+### {% linkable_title Hass.io %}
+
+You do not need to install any software to use Z-Wave.
+
+If the path of `/dev/ttyACM0` doesn't work, look in the *System* section of the *Hass.io* menu. There you'll find a *Hardware* button which will list all the hardware found.
+
+You can also check what hardware has been found using the [hassio command](/hassio/commandline/#hardware):
```bash
-$ dmesg | grep USB
+$ hassio hardware info
```
-If Home Assistant (`hass`) runs with another user (e.g., *homeassistant* on Hassbian) give access to the stick with:
+### {% linkable_title Docker %}
+
+You do not need to install any software to use Z-Wave.
+
+To enable access to the Z-Wave stick, add `--device=/dev/ttyACM0` to the `docker` command that starts your container, for example:
```bash
-$ sudo usermod -aG dialout homeassistant
+$ docker run -d --name="home-assistant" -v /home/pi/homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host --device=/dev/ttyACM0 homeassistant/raspberrypi3-homeassistant
```
-
-The output from `ls -ltr` above contains the following information
-The device type is `c` (character special) and permissions are `rw-rw----`, meaning only the owner and group can read and write to it, there is only `1` link to the file, it is owned by `root` and can be accessed by the group `dialout`, it has a major device number of `204`, and a minor device number of `64`, the device was connected at `10:25` on `21 September`, and the device is `/dev/ttyUSB0`.
-
+If the path of `/dev/ttyACM0` doesn't work then you can find the path of the stick by disconnecting and then reconnecting it, and running the following in the Docker host:
-#### {% linkable_title Creating a Persistent Device Path %}
+```bash
+$ ls -1tr /dev/tty*|tail -n 1
+```
-Depending on what's plugged into your USB ports, the name found above may change. You can lock in a name, such as `/dev/zwave`, by following [these instructions](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/).
+### {% linkable_title Hassbian %}
-### {% linkable_title Finding the controller path on macOS %}
+You do not need to install any software to use Z-Wave.
-On macOS you can find the USB stick with:
+To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run:
```bash
-$ ls /dev/cu.usbmodem*
+$ ls -1tr /dev/tty*|tail -n 1
```
-### {% linkable_title Hass.io %}
+### {% linkable_title Community install methods %}
-To enable Z-Wave, plug your Z-Wave USB stick into your system and add the following to your `configuration.yaml`:
+#### {% linkable_title Raspberry Pi specific %}
-```yaml
-zwave:
- usb_path: /dev/ttyACM0
-```
+On the Raspberry Pi you will need to enable the serial interface in the `raspi-config` tool before you can add Z-Wave to Home Assistant.
+
+#### {% linkable_title Linux (except Hassbian) %}
-If the above defaults don't work, you can check what hardware has been found using the [hassio command](/hassio/commandline/#hardware):
+On Debian Linux platforms there two dependencies you will need to have installed ahead of time (included in `systemd-devel` on Fedora/RHEL systems):
```bash
-$ hassio hardware info
+$ sudo apt-get install libudev-dev
+$ sudo apt-get install libopenzwave1.5-dev
```
-Or you can use the UI and look in the *System* section of the *Hass.io* menu. There you'll find a *Hardware* button which will list all the hardware found.
+You may also have to install the Python development libraries for your version of Python. For example `libpython3.6-dev`, and possibly `python3.6-dev` if you're using Python 3.6.
+
+##### {% linkable_title Finding the controller path %}
-### {% linkable_title RancherOS %}
+To find the path of your Z-Wave USB stick, disconnect it and then reconnect it to your system and run:
-If you're using RancherOS for containers, you'll need to ensure you enable the kernel-extras service so that the `USB_ACM` module (also known as `cdc_acm`) is loaded:
+```bash
+$ ls -ltr /dev/tty*|tail -n 1
+```
+
+That will give you a line that looks something like this:
```bash
-$ sudo ros service enable kernel-extras
-$ sudo ros service up kernel-extras
+crw-rw---- 1 root dialout 204, 64 Sep 21 10:25 /dev/ttyACM0
```
-### {% linkable_title Network Key %}
+Where the date and time displayed is approximately the time you connected the USB stick or module (it may also be something like `/dev/ttyAMA0` or `/dev/ttyUSB0`). The number will be zero for the first device connected, and higher numbers for later devices.
-Security Z-Wave devices require a network key before being added to the network using the Add Secure Node button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices.
+Or, if there is no result, try to find detailed USB connection info with:
-An easy script to generate a random key:
```bash
-$ cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
+$ dmesg | grep USB
```
-```yaml
-# Example configuration.yaml entry for network_key
-zwave:
- network_key: "0x2e, 0xcc, 0xab, 0x1c, 0xa3, 0x7f, 0x0e, 0xb5, 0x70, 0x71, 0x2d, 0x98, 0x25, 0x43, 0xee, 0x0c"
+If Home Assistant (`hass`) runs with another user (e.g., *homeassistant*) you need to give access to the stick with:
+
+```bash
+$ sudo usermod -aG dialout homeassistant
```
-Ensure you keep a backup of this key. If you have to rebuild your system and don't have a backup of this key, you won't be able to reconnect to any security devices. This may mean you have to do a factory reset on those devices, and your controller, before rebuilding your Z-Wave network.
+The output from `ls -ltr` above contains the following information:
+* The device type is `c` (character special)
+* The permissions are `rw-rw----`, meaning only the owner and group can read and write to it
+* There is only `1` link to the file
+* It is owned by `root` and can be accessed by members of the group `dialout`
+* It has a major device number of `204`, and a minor device number of `64`
+* The device was connected at `10:25` on `21 September`
+* The device is `/dev/ttyUSB0`.
-## {% linkable_title First Run %}
+#### {% linkable_title macOS %}
-The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspberry Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed.
+When installing on macOS you may have to also run the command below ahead of time, replace "x.x" with the version of Python (`$ python3 --version`) you have installed.
-The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process.
+```bash
+$ sudo /Applications/Python\ x.x/Install\ Certificates.command
+```
+
+On macOS you can find the USB stick with:
+
+```bash
+$ ls /dev/cu.usbmodem*
+```
## {% linkable_title Troubleshooting %}
+### {% linkable_title Device path changes %}
+
+If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it.
+
### {% linkable_title Component could not be set up %}
Sometimes the device may not be accessible and you'll get an error message upon startup about not being able to set up Z-Wave. Run the following command for your device path (here we're using `/dev/ttyAMA0` for our Razberry board):
@@ -252,14 +262,10 @@ That should include `dialout`, if it doesn't then:
$ sudo usermod -aG dialout homeassistant
```
-### {% linkable_title Device path changes %}
-
-If your device path changes when you restart, see [this guide](http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/) on fixing it.
-
### {% linkable_title Unable to install Python Openzwave %}
If you're getting errors like:
openzwave-embed/open-zwave-master/libopenzwave.a: No such file or directory
-Then the problem is that you're missing `libudev-dev`, please [install it](/docs/z-wave/installation/#linux-except-hassio).
+Then the problem is that you're missing `libudev-dev` (or the equivalent for your distribution), please [install it](/docs/z-wave/installation/#linux-except-hassbian).
diff --git a/source/_faq/pip3.markdown b/source/_faq/pip3.markdown
index 9b4fe56e0292..ff61d2fdc46d 100644
--- a/source/_faq/pip3.markdown
+++ b/source/_faq/pip3.markdown
@@ -18,4 +18,10 @@ If you are able to successfully run `python3 --version` but not `pip3`, install
$ python3 -m pip install homeassistant
```
-On a Debian system, you can also install python3 by `sudo apt-get install python3`d and pip3 by `sudo apt-get install python3-pip`.
+On a Debian system, you can also install python3 by `sudo apt-get install python3` and pip3 by `sudo apt-get install python3-pip`.
+
+If you run into errors during installation, check that you've installed all the necessary prerequisite packages, which include `python3-dev`, `libffi-dev`, and `libssl-dev`. On a Debian-based system, you can install these via `apt-get`:
+
+```bash
+$ sudo apt-get install python3-dev libffi-dev libssl-dev
+```
diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html
index 5d672861adc4..e4a12f326189 100644
--- a/source/_includes/asides/about.html
+++ b/source/_includes/asides/about.html
@@ -5,7 +5,7 @@ About Home Assistant
Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
Get started with Home Assistant
- Try the online demo
+ Try the online demo
diff --git a/source/_includes/asides/component_navigation.html b/source/_includes/asides/component_navigation.html
index bd64fc7efe32..21fd0aec209a 100644
--- a/source/_includes/asides/component_navigation.html
+++ b/source/_includes/asides/component_navigation.html
@@ -1,5 +1,5 @@
{%- assign components = site.components | sort_natural: 'title' -%}
-{%- assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/master/homeassistant' -%}
+{%- assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/dev/homeassistant' -%}