diff --git a/_config.yml b/_config.yml
index a664cf4ab37..c2f323a8ff4 100644
--- a/_config.yml
+++ b/_config.yml
@@ -143,9 +143,9 @@ social:
# Home Assistant release details
current_major_version: 0
-current_minor_version: 85
-current_patch_version: 1
-date_released: 2019-01-11
+current_minor_version: 86
+current_patch_version: 0
+date_released: 2019-01-23
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_components/alarm_control_panel.arlo.markdown b/source/_components/alarm_control_panel.arlo.markdown
index ddc28e0fdb6..6f21a5269de 100644
--- a/source/_components/alarm_control_panel.arlo.markdown
+++ b/source/_components/alarm_control_panel.arlo.markdown
@@ -37,6 +37,11 @@ away_mode_name:
required: false
type: string
default: "`Armed` mode in Arlo"
+night_mode_name:
+ description: "Arlo base station does not have a built-in night mode. You can map one of your custom modes to Home Assistant's night mode by setting the name of the custom mode in this configuration variable. The name of the custom mode should match eactly as you set it up in the Arlo app."
+ required: false
+ type: string
+ default: "`Armed` mode in Arlo"
{% endconfiguration %}
## {% linkable_title Examples %}
diff --git a/source/_components/alarm_control_panel.homekit_controller.markdown b/source/_components/alarm_control_panel.homekit_controller.markdown
new file mode 100644
index 00000000000..ae24f556192
--- /dev/null
+++ b/source/_components/alarm_control_panel.homekit_controller.markdown
@@ -0,0 +1,16 @@
+---
+layout: page
+title: "HomeKit Alarm Control Panel"
+description: "Instructions how to setup HomeKit security systems within Home Assistant."
+date: 2018-12-27 20:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: apple-homekit.png
+ha_category: Alarm Control Panel
+ha_iot_class: "Local Polling"
+ha_release: 0.86
+---
+
+To get your HomeKit security system working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).
diff --git a/source/_components/asuswrt.markdown b/source/_components/asuswrt.markdown
index 486ec51086a..4a9b09e1cb5 100644
--- a/source/_components/asuswrt.markdown
+++ b/source/_components/asuswrt.markdown
@@ -63,6 +63,20 @@ require_ip:
required: false
type: boolean
default: true
+sensors:
+ description: List of enabled sensors
+ required: false
+ type: list
+ default: all (`upload`, `download`, `upload_speed`, `download_speed`)
+ keys:
+ "upload":
+ description: TX upload sensor
+ "download":
+ description: RX download sensor
+ "download_speed":
+ description: download mbit/s sensor
+ "upload_speed":
+ description: upload mbit/s sensor
{% endconfiguration %}
diff --git a/source/_components/cover.homekit_controller.markdown b/source/_components/cover.homekit_controller.markdown
new file mode 100644
index 00000000000..d641ac746a9
--- /dev/null
+++ b/source/_components/cover.homekit_controller.markdown
@@ -0,0 +1,16 @@
+---
+layout: page
+title: "HomeKit Cover"
+description: "Instructions how to setup HomeKit covers within Home Assistant."
+date: 2019-1-8 5:30
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: apple-homekit.png
+ha_category: Cover
+ha_iot_class: "Local Polling"
+ha_release: 0.86
+---
+
+To get your HomeKit garage door openers, windows, or window coverings working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).
diff --git a/source/_components/demo.markdown b/source/_components/demo.markdown
index 8eccea14537..1107426877f 100644
--- a/source/_components/demo.markdown
+++ b/source/_components/demo.markdown
@@ -24,7 +24,7 @@ Available demo platforms:
- [Climate](/components/climate/) (`climate`)
- [Cover](/components/cover/) (`cover`)
- [Fan](/components/fan/) (`fan`)
-- [Geo Location](/components/geo_location/) (`geo_location`)
+- [Geolocation](/components/geo_location/) (`geo_location`)
- [Image Processing](/components/image_processing/) (`image_processing`)
- [Light](/components/light/) (`light`)
- [Lock](/components/lock/) (`lock`)
diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown
index c512698bedf..01dc20046d5 100644
--- a/source/_components/device_tracker.gpslogger.markdown
+++ b/source/_components/device_tracker.gpslogger.markdown
@@ -1,73 +1,19 @@
---
layout: page
-title: "GPSLogger"
+title: "GPSLogger Device Tracker"
description: "Instructions on how to use GPSLogger to track devices in Home Assistant."
date: 2016-11-25 15:00
sidebar: true
comments: false
sharing: true
footer: true
+logo: gpslogger.png
ha_category: Presence Detection
ha_release: 0.34
---
-The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `GET` request to update GPS coordinates. This can be configured with Home Assistant to update your location.
+The `gpslogger` device tracker platform allows you to detect presence using [GPSLogger](http://code.mendhak.com/gpslogger/).
-## {% linkable_title Configuration %}
-
-GPSLogger uses long-lived access tokens for authentication. These are setup [under your profile](/docs/authentication/#your-account-profile) and configured in the GPSLogger application on your smartphone as explained below.
-
-```yaml
-# Example configuration.yaml entry
-device_tracker:
- - platform: gpslogger
-```
-
-## {% linkable_title Setup on your smartphone %}
-
-Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device.
-
-After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**.
-
-
-
- GPSLogger Settings
+
+You must have the [GPSLogger component](/components/gpslogger/) configured to use this device tracker.
-
-Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**.
-
-
-
- Logging Details
-
-
-Right after enabling, the app will take you to the **Log to custom URL** settings.
-
-
-
- Log to custom URL details
-
-
-The relevant endpoint is: `/api/gpslogger`
-
-```text
-https://YOUR.DNS.HOSTNAME:PORT/api/gpslogger?latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT
-```
-
-Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here.
-
-- It's HIGHLY recommended to use SSL/TLS.
-- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network.
-- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using.
-- For Home Assistant only the above URL, as written, will work - do not add, remove, or change the order of any of the parameters.
-- Add `Authorization: Bearer LLAT` to the HTTP Headers setting (replace `LLAT` with your Long Lived Access Token).
-- You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`.
-
-If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers**
-
-
-
- Performance
-
-
-A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number.
diff --git a/source/_components/device_tracker.locative.markdown b/source/_components/device_tracker.locative.markdown
index 0d7b04f075e..2eb43bd3a6f 100644
--- a/source/_components/device_tracker.locative.markdown
+++ b/source/_components/device_tracker.locative.markdown
@@ -9,6 +9,7 @@ sharing: true
footer: true
logo: locative.png
ha_category: Presence Detection
+ha_iot_class: "Cloud Push"
---
@@ -17,23 +18,8 @@ Locative is no longer under active development. See https://blog.locative.io/bye
This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.
-To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-device_tracker:
- - platform: locative
-```
-
-Install on your smartphone:
-
-- [Android](https://play.google.com/store/apps/details?id=io.locative.app)
-- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453)
-
-To configure Locative, you must set up the app to send a `GET` request to your Home Assistant server at `http:///api/locative`. Make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). When you enter or exit a geofence, Locative will send a `GET` request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.
-
-
-
+
+You must have the [Locative component](/components/locative/) configured to use this device tracker.
When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home".
diff --git a/source/_components/doorbird.markdown b/source/_components/doorbird.markdown
index b8b3050ae9e..610549f2966 100644
--- a/source/_components/doorbird.markdown
+++ b/source/_components/doorbird.markdown
@@ -72,6 +72,9 @@ devices:
description: Monitor doorbell events.
motion:
description: Monitor motion events (Motion monitoring must be enabled on the doorstation via DoorBird app).
+ relay:
+ description: Monitor relay events. This event is fired even if a relay is not physically connected to the door station. Can be used to lock/unlock any smart lock present in Home Assistant via the Doorbird app.
+
{% endconfiguration %}
The configuration above is also used by the following platforms:
@@ -99,11 +102,12 @@ doorbird:
monitored_conditions:
- doorbell
- motion
+ - relay
```
-## {% linkable_title Motion and Doorbell Events %}
+## {% linkable_title Events %}
-Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Home Assistant log file.
+Home Assistant will fire an event any time a `monitored_condition` happens on a doorstation. Event names are created using the format `doorbird_{station}_{event}` (Examples: `doorbird_side_entry_button`, `doorbird_side_entry_motion`). You can verify the assigned event names in the Available Events list on the Events developer view.
Home Assistant will register the monitored conditions with the device as schedule entries that correspond to favorites on startup. If you remove monitored conditions from your configuration, Home Assistant will attempt to remove these items from the device. However, in some cases, such as if the IP address of the machine running Home Assistant changes or if the device is renamed in your configuration, this will not work correctly and some data will be left in device storage.
diff --git a/source/_components/emulated_roku.markdown b/source/_components/emulated_roku.markdown
new file mode 100644
index 00000000000..3465330d682
--- /dev/null
+++ b/source/_components/emulated_roku.markdown
@@ -0,0 +1,125 @@
+---
+layout: page
+title: "Emulated Roku"
+description: "Instructions on how to set up Emulated Roku within Home Assistant."
+date: 2019-01-10 08:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: home-assistant.png
+ha_category: Hub
+ha_release: 0.86.0
+ha_iot_class: "Local Push"
+---
+
+This component integrates an emulated Roku API into Home Assistant,
+so remotes such as Harmony and Android apps can connect to it through WiFi as it were a Roku player.
+Home Assistant will see key presses and app launches as Events, which you can use as triggers for automations.
+Multiple Roku servers may be started if you run out of buttons by specifying multiple server entries.
+
+
+Windows is not supported because Home Assistant uses `ProactorEventLoop` which does not support UDP sockets.
+
+
+
+This component opens an unauthenticated API on the host, allowing anything on the local network to access
+your Home Assistant instance through the automations you create with emulated Roku as the trigger.
+Using a proxy with whitelist for IP addresses is recommended. (set `advertise_ip` to the proxy's ip or DNS name)
+
+
+## {% linkable_title Configuration %}
+
+The component is configurable through the frontend. (**Configuration** -> **Integrations** -> **Emulated Roku**)
+
+If you wish to configure advanced options, you can add the following entry in `configuration.yaml`.
+
+```yaml
+# Example configuration.yaml entry
+emulated_roku:
+ servers:
+ - name: Home Assistant
+ listen_port: 8060
+```
+
+{% configuration %}
+name:
+ description: Name of the Roku that will be displayed as the serial number in Harmony.
+ required: true
+ type: string
+listen_port:
+ description: The port the Roku API will run on. This can be any free port on your system.
+ required: true
+ type: integer
+host_ip:
+ description: The IP address that your Home Assistant installation is running on. If you do not specify this option, the component will attempt to determine the IP address on its own.
+ required: false
+ type: string
+advertise_ip:
+ description: If you need to override the IP address or DNS name used for UPnP discovery. (For example, using network isolation in Docker or using a proxy)
+ required: false
+ type: string
+advertise_port:
+ description: If you need to override the advertised UPnP port.
+ required: false
+ type: integer
+upnp_bind_multicast:
+ description: Whether or not to bind the UPnP (SSDP) listener to the multicast address (239.255.255.250) or instead to the (unicast) host_ip address specified above (or automatically determined). The default is true, which will work in most situations. In special circumstances, like running in a FreeBSD or FreeNAS jail, you may need to disable this.
+ required: false
+ type: boolean
+ default: true
+{% endconfiguration %}
+
+After starting up, you can check if the emulated Roku is reachable at the specified ports on your Home Assistant instance (eg.: `http://192.168.1.101:8060/`).
+
+## {% linkable_title Events %}
+
+### {% linkable_title Event `roku_command` %}
+
+All Roku commands are sent as `roku_command` events.
+
+Field | Description
+----- | -----------
+`source_name` | Name of the emulated Roku instance that sent the event. Only required when using multiple instances to filter event sources.
+`type` | The type of the event that was called on the API.
+`key` | the code of the pressed key when the command `type` is `keypress`, `keyup` or `keydown`.
+`app_id` | the id of the app that was launched when command `type` is `launch`.
+
+The available keys are listed here:
+[Roku key codes](https://sdkdocs.roku.com/display/sdkdoc/External+Control+API#ExternalControlAPI-KeypressKeyValues)
+
+## {% linkable_title Automations %}
+
+The following is an example implementation of an automation:
+```yaml
+# Example automation
+- id: amp_volume_up
+ alias: Increase amplifier volume
+ trigger:
+ - platform: event
+ event_type: roku_command
+ event_data:
+ source_name: Home Assistant
+ type: keypress
+ key: Fwd
+ action:
+ - service: media_player.volume_up
+ entity_id: media_player.amplifier
+```
+
+## {% linkable_title Troubleshooting %}
+
+If you change your advertised IP or ports, you will have to re-add the emulated Roku in your app.
+When using Harmony, the app should auto-discover any changes via UPnP discovery (if `name` is unchanged) once it detects that the device is unreachable.
+Alternatively, you can trigger the 'Fix' page by pressing a button on the unreachable device's remote in the app and wait ~10 seconds, then click 'Fix it'.
+
+Known limitations:
+* Some Android remotes send key up/down events instead of key presses.
+* Functionality other than key presses and app launches are not implemented yet.
+* App ids are limited between 1-10. (The emulated API reports 10 dummy apps)
+* Harmony uses UPnP discovery (UPnP is not needed after pairing), which might not work in Docker. You can:
+ * Change Docker to host networking temporarily, then revert after pairing.
+ * Run the `advertise.py` helper script from the emulated_roku library directly somewhere else and point it to the emulated Roku API.
+* Harmony cannot launch apps as it uses IR instead of the WiFi API and will not display the custom dummy app list.
+* Home control buttons cannot be assigned to emulated Roku on the Harmony Hub Companion remote as they are limited to Hue (and possibly other APIs) within Harmony.
+* Harmony will not set the name of the added emulated Roku device to the specified `name`.
diff --git a/source/_components/fibaro.markdown b/source/_components/fibaro.markdown
index 1e503e324d9..aff4ccdc416 100644
--- a/source/_components/fibaro.markdown
+++ b/source/_components/fibaro.markdown
@@ -2,14 +2,14 @@
layout: page
title: "Fibaro"
description: "Instructions on how to setup Fibaro Z-Wave hubs (HCL and HC2) and configure devices within Home Assistant."
-date: 2018-11-14 20:04
+date: 2019-01-10 20:04
sidebar: true
comments: false
sharing: true
footer: true
logo: fibaro.png
ha_category: Hub
-ha_release: 0.83
+ha_release: "0.83"
ha_iot_class: "Local Push"
redirect_from:
- /components/scene.fibaro/
@@ -25,12 +25,25 @@ To use Fibaro devices in your installation, add the following to your `configura
```yaml
fibaro:
- url: http://192.168.1.161/api/
- username: your_username
- password: your_password
+ gateways:
+ - url: http://192.168.1.161/api/
+ username: your_username
+ password: your_password
+ device_config:
+ light_device_name_123:
+ color: false
+ white_value: false
+ reset_color: true
+ binary_device_name_123:
+ device_class: "garage_door"
+ icon: mdi:open
```
{% configuration %}
+gateways:
+ description: List of gateway configurations.
+ requires: true
+ type: list
url:
description: The URL for your Fibaro HomeCenter device.
required: true
@@ -48,6 +61,11 @@ plugins:
required: false
type: bool
default: false
+device_config:
+ description: Lists device specific parameter or behaviour overrides.
+ required: false
+ type: list
+ default: None
{% endconfiguration %}
diff --git a/source/_components/geo_location.geo_json_events.markdown b/source/_components/geo_location.geo_json_events.markdown
index 2144a0c6bcd..f17703b0f99 100644
--- a/source/_components/geo_location.geo_json_events.markdown
+++ b/source/_components/geo_location.geo_json_events.markdown
@@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: geo_location.png
-ha_category: Geo Location
+ha_category: Geolocation
ha_iot_class: "Cloud Polling"
ha_release: "0.79"
---
@@ -39,8 +39,8 @@ url:
radius:
description: The distance in kilometers around the Home Assistant's coordinates in which events are considered.
required: false
- type: string
- default: 20km
+ type: float
+ default: 20.0
latitude:
description: Latitude of the coordinates around which events are considered.
required: false
@@ -53,6 +53,17 @@ longitude:
default: Longitude defined in your `configuration.yaml`
{% endconfiguration %}
+## {% linkable_title State Attributes %}
+
+The following state attributes are available for each entity in addition to the standard ones:
+
+| Attribute | Description |
+|-------------|-------------|
+| latitude | Latitude of the event. |
+| longitude | Longitude of the event. |
+| source | `geo_json_events` to be used in conjunction with `geo_location` automation trigger. |
+| external_id | The external ID used in the feed to identify the event in the feed. |
+
## {% linkable_title Advanced Configuration Example %}
When integrating several GeoJSON feeds, it may be useful to distinguish the entities of different feeds. The easiest way to do that is by defining an [`entity_namespace`](/docs/configuration/platform_options/#entity-namespace/) for each platform which will prefix each entity ID with the defined value.
diff --git a/source/_components/geo_location.markdown b/source/_components/geo_location.markdown
index 6540d5d2000..a7cfd900c8a 100644
--- a/source/_components/geo_location.markdown
+++ b/source/_components/geo_location.markdown
@@ -1,7 +1,7 @@
---
layout: page
-title: "Geo Location"
-description: "Instructions on how to integrate geo location aware platforms into Home Assistant."
+title: "Geolocation"
+description: "Instructions on how to integrate geolocation aware platforms into Home Assistant."
date: 2018-08-27 08:00
sidebar: true
comments: false
@@ -11,13 +11,13 @@ logo: geo_location.png
ha_release: "0.78"
---
-Geo Location aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes.
+Geolocation aware entities are typically related to events in the real world in the vicinity of Home Assistant's location, like for example weather events, bush fires or earthquakes.
-Entities can have associated geo location coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering.
+Entities can have associated geolocation coordinates (latitude and longitude) so that they are displayed on the map. The distance from the entity's coordinates to Home Assistant's location can be used for filtering.
-## {% linkable_title Geo Location trigger %}
+## {% linkable_title Geolocation trigger %}
-The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can be used in automations triggered by Geo Location entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities:
+The [Geolocation trigger](/docs/automation/trigger/#geolocation-trigger) can be used in automations triggered by Geolocation entities appearing in or disappearing from zones. The following value must be used as `source` of the trigger depending on which platform is managing the entities:
| Platform | Source |
|---------------------------------------------------|-------------------------------|
@@ -27,7 +27,7 @@ The [Geo Location trigger](/docs/automation/trigger/#geo-location-trigger) can b
Conditions can be used to further filter entities, for example by inspecting their state attributes.
-## {% linkable_title Geo Location notification example %}
+## {% linkable_title Geolocation notification example %}
The following example automation creates a notification on the screen when a fire classified as 'Bush Fire' is reported within a predefined bush fire alert zone:
diff --git a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown
index 5879a583c04..6212e4873ee 100644
--- a/source/_components/geo_location.nsw_rural_fire_service_feed.markdown
+++ b/source/_components/geo_location.nsw_rural_fire_service_feed.markdown
@@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: nsw-rural-fire-service.png
-ha_category: Geo Location
+ha_category: Geolocation
ha_iot_class: "Cloud Polling"
ha_release: "0.81"
---
@@ -44,7 +44,7 @@ radius:
description: The distance in kilometers around Home Assistant's coordinates in which incidents are included.
required: false
type: float
- default: 20km
+ default: 20.0
categories:
description: List of incident category names found in the feed. Only incidents from the feed that match any of these categories are included. Valid categories are 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'.
required: false
@@ -70,6 +70,7 @@ The following state attributes are available for each entity in addition to the
|--------------------|-------------|
| latitude | Latitude of the incident. |
| longitude | Longitude of the incident. |
+| source | `nsw_rural_fire_service_feed` to be used in conjunction with `geo_location` automation trigger. |
| external_id | The external ID used in the feed to identify the incident in the feed. |
| category | One of 'Emergency Warning', 'Watch and Act', 'Advice', 'Not Applicable'. |
| location | Location details of where the incident takes place. |
diff --git a/source/_components/geo_location.usgs_earthquakes_feed.markdown b/source/_components/geo_location.usgs_earthquakes_feed.markdown
index c101a2f6697..e853fbc6699 100644
--- a/source/_components/geo_location.usgs_earthquakes_feed.markdown
+++ b/source/_components/geo_location.usgs_earthquakes_feed.markdown
@@ -8,7 +8,7 @@ comments: false
sharing: true
footer: true
logo: us-geological-survey.png
-ha_category: Geo Location
+ha_category: Geolocation
ha_iot_class: "Cloud Polling"
ha_release: 0.84
---
@@ -52,7 +52,7 @@ radius:
description: The distance in kilometers around Home Assistant's coordinates in which seismic events are included.
required: false
type: float
- default: 50
+ default: 50.0
latitude:
description: Latitude of the coordinates around which events are considered.
required: false
diff --git a/source/_components/geofency.md b/source/_components/geofency.md
index bff78c98327..7b270b15d2f 100644
--- a/source/_components/geofency.md
+++ b/source/_components/geofency.md
@@ -41,4 +41,4 @@ geofency:
- keys
```
-To configure Geofency, you must configure (via the Webhook feature) to send a POST request to your Home Assistant server at `http:///api/geofency`. Use the default POST format, and make sure to include the API password if you have configured a password in Home Assistant (add `?api_password=` to the end of the URL). Make sure to enable the 'Update Geo-Position' functionality for mobile beacons.
+To configure Geofency, you must set it up via the integrations panel in the configuration screen. You must then configure the iOS app (via the Webhook feature) to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. Use the default POST format. Make sure to enable the 'Update Geo-Position' functionality for mobile beacons.
diff --git a/source/_components/gpslogger.md b/source/_components/gpslogger.md
new file mode 100644
index 00000000000..d458c5d55a7
--- /dev/null
+++ b/source/_components/gpslogger.md
@@ -0,0 +1,71 @@
+---
+layout: page
+title: "GPSLogger"
+description: "Instructions on how to use GPSLogger to track devices in Home Assistant."
+date: 2016-11-25 15:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: gpslogger.png
+ha_category: Presence Detection
+ha_release: 0.86
+ha_iot_class: "Cloud Push"
+---
+
+This component sets up integration with [GPSLogger](http://code.mendhak.com/gpslogger/). GPSLogger is an open source app for [Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) that allows users to set up a `POST` request to update GPS coordinates. This can be configured with Home Assistant to update your location.
+
+Enabling this component will automatically enable the [GPSLogger Device Tracker](/components/device_tracker.gpslogger/).
+
+## {% linkable_title Configuration %}
+
+To configure GPSLogger, you must set it up via the integrations panel in the configuration screen. This will give you the webhook URL to use during mobile device configuration (below).
+
+## {% linkable_title Setup on your smartphone %}
+
+Install [GPSLogger for Android](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger) on your device.
+
+After the launch, go to **General Options**. Enable **Start on bootup** and **Start on app launch**.
+
+
+
+ GPSLogger Settings
+
+
+Go to **Logging details** and disable **Log to GPX**, **Log to KML** and **Log to NMEA**. Enable **Log to custom URL**.
+
+
+
+ Logging Details
+
+
+Right after enabling, the app will take you to the **Log to custom URL** settings.
+
+
+
+ Log to custom URL details
+
+
+The relevant endpoint starts with: `/api/webhook/` and ends with a unique sequence of characters. This is provided by the integrations panel in the configuration screen (configured above).
+
+```text
+https://YOUR.DNS.HOSTNAME:PORT/api/webook/WEBHOOK_ID?latitude=%LAT&longitude=%LON&device=%SER&accuracy=%ACC&battery=%BATT&speed=%SPD&direction=%DIR&altitude=%ALT&provider=%PROV&activity=%ACT
+```
+
+Add the above URL after you modified it with your settings into the **URL** field. Remove the line breaks as they are only there to make the URL readable here.
+
+- Make sure to check the `Use POST method` checkbox.
+- It's HIGHLY recommended to use SSL/TLS.
+- Use the domain that Home Assistant is available on the internet (or the public IP address if you have a static IP address). This can be a local IP address if you are using an always on VPN from your mobile device to your home network.
+- Only remove `PORT` if your Home Assistant instance is using port 443. Otherwise set it to the port you're using.
+- For Home Assistant only the above URL, as written, will work - do not add, remove, or change the order of any of the parameters.
+- You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`.
+
+If your battery drains too fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers**
+
+
+
+ Performance
+
+
+A request can be forced from the app to test if everything is working fine. A successful request will update the `known_devices.yaml` file with the device's serial number.
diff --git a/source/_components/greeneye_monitor.markdown b/source/_components/greeneye_monitor.markdown
index 596751358d5..b303f8014bc 100644
--- a/source/_components/greeneye_monitor.markdown
+++ b/source/_components/greeneye_monitor.markdown
@@ -22,7 +22,7 @@ Configure your GEM(s) to produce binary-format packets (for example, "Bin32 NET"
greeneye_monitor:
port: 8000
monitors:
- - serial_number: YOUR_SERIAL_NUMBER
+ - serial_number: "YOUR_SERIAL_NUMBER"
channels:
- number: 1
name: total_power
@@ -53,9 +53,9 @@ monitors:
type: list
keys:
serial_number:
- description: The last five digits (omitting leading zeroes) of your GEM serial number.
+ description: Your 8-digit GEM serial number, as it appears in the UI.
required: true
- type: integer
+ type: string
channels:
description: The list of channels that should appear in Home Assistant for this monitor. Data from other channels will be ignored.
required: false
diff --git a/source/_components/homekit_controller.markdown b/source/_components/homekit_controller.markdown
index daa9e79b71e..1992d84b1d8 100644
--- a/source/_components/homekit_controller.markdown
+++ b/source/_components/homekit_controller.markdown
@@ -22,8 +22,11 @@ ha_iot_class: "Local Polling"
There is currently support for the following device types within Home Assistant:
+- [Alarm Control Panel](/components/alarm_control_panel.homekit_controller/)
- [Climate](/components/climate.homekit_controller/)
+- [Cover](/components/cover.homekit_controller/)
- [Light](/components/light.homekit_controller/)
+- [Lock](/components/lock.homekit_controller/)
- [Switch](/components/switch.homekit_controller/)
The component will be automatically configured if the [`discovery:`](/components/discovery/) component is enabled and an enable entry added for HomeKit:
diff --git a/source/_components/lifx.markdown b/source/_components/lifx.markdown
index a630595c4dd..65cd60bfc75 100644
--- a/source/_components/lifx.markdown
+++ b/source/_components/lifx.markdown
@@ -111,14 +111,14 @@ Run an effect that does nothing, thereby stopping any other effect that might be
## {% linkable_title Advanced configuration %}
-There are some manual configuration options available. These should only be needed if you have more than one network interface and automatic configuration does not find your LIFX devices.
+There are some manual configuration options available. These are only needed with unusual network setups where automatic configuration does not find your LIFX devices.
```yaml
# Example configuration.yaml entry
lifx:
light:
- server: IP_ADDRESS
- broadcast: IP_ADDRESS
+ - server: IP_ADDRESS
+ broadcast: IP_ADDRESS
```
{% configuration %}
@@ -127,7 +127,7 @@ server:
required: false
type: string
broadcast:
- description: The broadcast address for discovering lights.
+ description: The broadcast address for discovering lights. Can also set this to the IP address of a bulb to skip discovery.
required: false
type: string
{% endconfiguration %}
diff --git a/source/_components/locative.md b/source/_components/locative.md
new file mode 100644
index 00000000000..93f8d43e5d8
--- /dev/null
+++ b/source/_components/locative.md
@@ -0,0 +1,40 @@
+---
+layout: page
+title: "Locative"
+description: "Instructions on how to use Locative to track devices in Home Assistant."
+date: 2015-10-13 19:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: locative.png
+ha_category: Presence Detection
+ha_release: 0.86
+ha_iot_class: "Cloud Push"
+---
+
+
+Locative is no longer under active development. See https://blog.locative.io/bye-everyone-df01871fe949
+
+
+This platform allows you to detect presence using [Locative](https://my.locative.io/). Locative is an open source app for [iOS](https://github.com/LocativeHQ/ios-app) and [Android](https://github.com/LocativeHQ/Locative-Android) that allows users to set up a `GET` or `POST` request when a geofence is entered or exited. This can be configured with Home Assistant to update your location.
+
+To integrate Locative in Home Assistant, add the following section to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+locative:
+```
+
+Install on your smartphone:
+
+- [Android](https://play.google.com/store/apps/details?id=io.locative.app)
+- [iOS](https://itunes.apple.com/us/app/geofancy/id725198453)
+
+To configure Locative, you must set it up via the integrations panel in the configuration screen. You must set up the app to send a POST request to your Home Assistant server at the webhook URL provided by the integration during setup. When you enter or exit a geofence, Locative will send the appropriate request to that URL, updating Home Assistant. You are not able to specify a device name in Locative. Instead, you will need to look in your known_devices.yaml file for a new device that Locative will have created on it's first `GET`. If you had been or are using Owntracks as well, you will need to update the device name used in the Owntracks setup with the name that Locative generated.
+
+
+
+
+
+When you enter a geofence, your location name in Home Assistant will be set to the name of the geofence in Locative. When you exit a geofence, your location name in Home Assistant will be set to "not home".
diff --git a/source/_components/lock.homekit_controller.markdown b/source/_components/lock.homekit_controller.markdown
new file mode 100644
index 00000000000..399acb61c73
--- /dev/null
+++ b/source/_components/lock.homekit_controller.markdown
@@ -0,0 +1,16 @@
+---
+layout: page
+title: "HomeKit Lock"
+description: "Instructions how to setup HomeKit locks within Home Assistant."
+date: 2019-1-8 7:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: apple-homekit.png
+ha_category: Lock
+ha_iot_class: "Local Polling"
+ha_release: 0.86
+---
+
+To get your HomeKit lock working with Home Assistant, follow the instructions for the general [HomeKit controller component](/components/homekit_controller/).
diff --git a/source/_components/media_player.nad.markdown b/source/_components/media_player.nad.markdown
index 25152678fa7..0725043437b 100644
--- a/source/_components/media_player.nad.markdown
+++ b/source/_components/media_player.nad.markdown
@@ -25,11 +25,25 @@ media_player:
```
{% configuration %}
-serial_port:
- description: The serial port.
- required: true
- default: "/dev/ttyUSB0"
+type:
+ description: Type of communication. Valid types are `RS232`, `Telnet` or `TCP`
+ required: false
+ default: RS232
type: string
+serial_port:
+ description: The serial port. (for `RS232` type only)
+ required: false
+ default: /dev/ttyUSB0
+ type: string
+host:
+ description: The IP address of your amplifier. (for `TCP` and `Telnet` types)
+ required: false
+ type: string
+port:
+ description: The port number of the device. (for `Telnet` type only)
+ required: false
+ default: 53
+ type: integer
name:
description: Name of the device.
required: false
@@ -46,9 +60,14 @@ max_volume:
default: -20
type: integer
sources:
- description: A list of mappings from source to source name. Valid sources are `1 to 10`.
+ description: A list of mappings from source to source name. Valid sources are `1 to 10`. (for `RS232` and `Telnet` types)
required: false
type: [list, string]
+volume_step:
+ description: The amount in dB you want to increase the volume with when pressing volume up/down. (for `TCP` type only)
+ required: false
+ default: 4
+ type: integer
{% endconfiguration %}
The min_volume and max_volume are there to protect you against misclicks on the slider so you will not blow up your speakers when you go from -92dB to +20dB. You can still force it to go higher or lower than the values set with the plus and minus buttons.
diff --git a/source/_components/media_player.nadtcp.markdown b/source/_components/media_player.nadtcp.markdown
deleted file mode 100644
index 046ba913216..00000000000
--- a/source/_components/media_player.nadtcp.markdown
+++ /dev/null
@@ -1,54 +0,0 @@
----
-layout: page
-title: "NAD tcp"
-description: "Instructions on how to integrate the NAD D 7050 or C338 digital amplifiers into Home Assistant."
-date: 2017-06-07 20:00
-sidebar: true
-comments: false
-sharing: true
-footer: true
-logo: nad.png
-ha_category: Media Player
-ha_release: 0.47
-ha_iot_class: "Local Polling"
----
-
-The `nadtcp` platform allows you to control the D7050 and C338 from Home Assistant via WiFi. Note that it has only been tested with the D 7050.
-
-To add a NAD amplifier to your installation, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-media_player:
- - platform: nadtcp
- host: 192.168.0.112
-```
-
-{% configuration %}
-host:
- description: The IP address of your amplifier.
- required: true
- type: string
-name:
- description: Name of the device.
- required: false
- default: NAD amplifier
- type: string
-min_volume:
- description: Minimum volume in dB to use with the slider.
- required: false
- default: -60
- type: integer
-max_volume:
- description: Maximum volume in dB to use with the slider.
- required: false
- default: -10
- type: integer
-volume_step:
- description: The amount in dB you want to increase the volume with when pressing volume up/down.
- required: false
- default: 4
- type: integer
-{% endconfiguration %}
-
-The maximum volume level of the D 7050 amplifier is +10 db, minimum is -90.
diff --git a/source/_components/media_player.roku.markdown b/source/_components/media_player.roku.markdown
index d301898db11..af72795a3a7 100644
--- a/source/_components/media_player.roku.markdown
+++ b/source/_components/media_player.roku.markdown
@@ -1,6 +1,6 @@
---
layout: page
-title: "Roku"
+title: "Roku Media Player"
description: "Instructions on how to integrate Roku into Home Assistant."
date: 2016-05-16 20:0+0000
sidebar: true
@@ -13,19 +13,4 @@ ha_release: "0.20"
ha_iot_class: "Local Polling"
---
-The [Roku](http://www.roku.com/) media players will be automatically discovered if you enable the [discovery component](/components/discovery/).
-
-The `roku` media player platform can also be forced to load by adding the following lines to your `configuration.yaml`:
-
-```yaml
-# Example configuration.yaml entry
-media_player:
- - platform: roku
-```
-
-{% configuration %}
-host:
- description: The IP address or the hostname of the device. Use only if you don't want to scan for devices.
- required: false
- type: string
-{% endconfiguration %}
+To set up the `roku` media player platform, please follow the instructions on the [Roku Component page](/components/roku/).
diff --git a/source/_components/notify.discord.markdown b/source/_components/notify.discord.markdown
index 01fca89820b..6f296ea538e 100644
--- a/source/_components/notify.discord.markdown
+++ b/source/_components/notify.discord.markdown
@@ -18,7 +18,7 @@ In order to get a token you need to go to the [Discord My Apps page](https://dis
Retreive the **Client ID** from the information section and the (hidden) **Token** of your bot for later.
-When setting up the application you can use this [icon](/demo/favicon-192x192.png).
+When setting up the application you can use this [icon](/images/favicon-192x192-full.png).
To use Discord notifications, add the following to your `configuration.yaml` file:
@@ -79,7 +79,7 @@ This channel ID has to be used as the target when calling the notification servi
"0987654321"
],
"data": {
- "images": [
+ "images": [
"/tmp/garage_cam.jpg"
]
}
diff --git a/source/_components/notify.group.markdown b/source/_components/notify.group.markdown
index b4eb9b5e3a4..a81cc3d6ce0 100644
--- a/source/_components/notify.group.markdown
+++ b/source/_components/notify.group.markdown
@@ -58,6 +58,6 @@ An example on how to use it in an automation:
action:
service: notify.NAME_OF_NOTIFIER_GROUP
data:
- message: "The sun is {% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}!"
+ message: "{% raw %}The sun is {% if is_state('sun.sun', 'above_horizon') %}up{% else %}down{% endif %}{% endraw %}!"
```
{% endraw %}
diff --git a/source/_components/notify.html5.markdown b/source/_components/notify.html5.markdown
index 524b92ac9db..84f4338db7d 100644
--- a/source/_components/notify.html5.markdown
+++ b/source/_components/notify.html5.markdown
@@ -196,6 +196,22 @@ data:
If no URL or actions are provided, interacting with a notification will open your Home Assistant in the browser. You can use relative URLs to refer to Home Assistant, i.e. `/map` would turn into `https://192.168.1.2:8123/map`.
+### {% linkable_title Dismiss %}
+
+You can dismiss notifications by using service notify.html5_dismiss like so:
+
+```json
+{
+ "target": ["my phone"],
+ "data": {
+ "tag": "notification_tag"
+ }
+}
+```
+
+If no target is provided, it dismisses for all.
+If no tag is provided, it dismisses all notifications.
+
### {% linkable_title Automating notification events %}
During the lifespan of a single push notification, Home Assistant will emit a few different events to the event bus which you can use to write automations against.
diff --git a/source/_components/openuv.markdown b/source/_components/openuv.markdown
index 8cdd5dbbb90..10ef2e1a6ac 100644
--- a/source/_components/openuv.markdown
+++ b/source/_components/openuv.markdown
@@ -13,19 +13,26 @@ ha_release: 0.76
ha_iot_class: "Cloud Polling"
---
-The `openuv` component displays UV and Ozone data from [openuv.io](http://openuv.io).
+The `openuv` component displays UV and Ozone data from
+[openuv.io](http://openuv.io).
## {% linkable_title Generating an API Key %}
-To generate an API key, [simply log in to the OpenUV website](https://www.openuv.io/auth/google).
+To generate an API key,
+[simply log in to the OpenUV website](https://www.openuv.io/auth/google).
-The "Limited" plan (which is what new users are given by default) is limited to 50 API requests per day. In order to leave a buffer, the `openuv` component queries the API every 30 minutes by default. This value can be modifed (via the `scan_interval` key), but please note that over-running the API will require you to upgrade to a paid plan (and may disable your access in the meantime).
+Beginning February 1, 2019, the "Limited" plan (which is what new users are
+given by default) is limited to 50 API requests per day. Because different
+API plans and locations will have different requirements, the `openuv`
+component does not automatically query the API for new data after it initially
+loads. To request new data, the `update_data` service may be used.
## {% linkable_title Configuration %}
-To retrieve data from OpenUV, add the following to your `configuration.yaml` file:
+To retrieve data from OpenUV, add the following to your `configuration.yaml`
+file:
```yaml
openuv:
@@ -37,11 +44,6 @@ api_key:
description: The OpenUV API key.
required: true
type: string
-scan_interval:
- description: the frequency (in seconds) between data updates.
- required: false
- type: integer
- default: 1800
binary_sensors:
description: The binary sensor-related configuration options.
required: false
@@ -88,11 +90,15 @@ sensors:
description: The approximate exposure time for skin type VI.
{% endconfiguration %}
-The approximate number of minutes of a particular skin type can be exposed to the sun before burning/tanning starts is based on the [Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale).
+The approximate number of minutes of a particular skin type can be exposed to
+the sun before burning/tanning starts is based on the
+[Fitzpatrick scale](https://en.wikipedia.org/wiki/Fitzpatrick_scale).
-## {% linkable_title Full example %}
+## {% linkable_title Full Configuration Example %}
-To configure additional functionality, add configuration options beneath a `binary_sensor` and/or `sensor` key within the `openuv` section of the `configuration.yaml` file as below:
+To configure additional functionality, add configuration options beneath a
+`binary_sensor` and/or `sensor` key within the `openuv` section of the
+`configuration.yaml` file as below:
```yaml
openuv:
@@ -115,5 +121,51 @@ openuv:
```
-The above guidelines constitute estimates and are intended to help informed decision making. They should not replace analysis, advice or diagnosis from a trained medical professional.
+The above guidelines constitute estimates and are intended to help informed
+decision making. They should not replace analysis, advice or diagnosis from a
+trained medical professional.
+
+## {% linkable_title Services %}
+
+### {% linkable_title `openuv.update_data` %}
+
+Perform an on-demand update of OpenUV data.
+
+## {% linkable_title Examples of Updating Data %}
+
+One method to retrieve data every 30 minutes and still leave plenty of API key
+usage is to only retrieve data during the daytime:
+
+```yaml
+automation:
+ - alias: Update OpenUV every 30 minutes during the daytime
+ trigger:
+ platform: time
+ minutes: "/30"
+ seconds: 00
+ condition:
+ condition: and
+ conditions:
+ - condition: sun
+ after: sunrise
+ - condition: sun
+ before: sunset
+ action:
+ service: openuv.update_data
+```
+
+Another method (useful when monitoring locations other than the HASS latitude
+and longitude, in locations where there is a large amount of sunlight per day,
+etc.) might be to simply query the API less often:
+
+```yaml
+automation:
+ - alias: Update OpenUV every hour (24 of 50 calls per day)
+ trigger:
+ platform: time
+ minutes: "/60"
+ seconds: 00
+ action:
+ service: openuv.update_data
+```
diff --git a/source/_components/remote.harmony.markdown b/source/_components/remote.harmony.markdown
index 02a098eb5db..b7a2ae8387e 100644
--- a/source/_components/remote.harmony.markdown
+++ b/source/_components/remote.harmony.markdown
@@ -182,6 +182,24 @@ data:
delay_secs: 0.6
```
+### {% linkable_title Service `remote.harmony_change_channel` %}
+
+Sends the change channel command to the Harmony HUB
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | ----------- |
+| `entity_id` | no | Only act on a specific remote, else target all.
+| `channel` | no | Channel number to change to
+
+A typical service call for changing the channel would be::
+
+```yaml
+service: remote.change_channel
+data:
+ entity_id: remote.tv_room
+ channel: 200
+```
+
### {% linkable_title Service `remote.harmony_sync` %}
Force synchronization between the Harmony device and the Harmony cloud.
diff --git a/source/_components/remote.roku.markdown b/source/_components/remote.roku.markdown
new file mode 100644
index 00000000000..38a31283611
--- /dev/null
+++ b/source/_components/remote.roku.markdown
@@ -0,0 +1,60 @@
+---
+layout: page
+title: "Roku Remote"
+description: "Instructions on how to integrate Roku into Home Assistant."
+date: 2018-10-17 20:0+0000
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: roku.png
+ha_category: Remote
+ha_release: 0.86
+ha_iot_class: "Local Polling"
+---
+
+The `roku` remote platform allows you to send remote control buttons to a Roku device. It is automatically set up when a Roku is configured; please see [Roku Component page](/components/roku/) for configuration details.
+
+At the moment, the following buttons are supported:
+
+- back
+- backspace
+- channel_down
+- channel_up
+- down
+- enter
+- find_remote
+- forward
+- home
+- info
+- input_av1
+- input_hdmi1
+- input_hdmi2
+- input_hdmi3
+- input_hdmi4
+- input_tuner
+- left
+- literal
+- play
+- power
+- replay
+- reverse
+- right
+- search
+- select
+- up
+- volume_down
+- volume_mute
+- volume_up
+
+A typical service call for pressing several buttons looks like this.
+
+```yaml
+service: remote.send_command
+data:
+ entity_id: remote.roku
+ command:
+ - left
+ - left
+ - select
+```
\ No newline at end of file
diff --git a/source/_components/roku.markdown b/source/_components/roku.markdown
new file mode 100644
index 00000000000..b3d7aacb057
--- /dev/null
+++ b/source/_components/roku.markdown
@@ -0,0 +1,37 @@
+---
+layout: page
+title: "Roku"
+description: "Instructions how to integrate Roku devices into Home Assistant."
+date: 2018-10-17 20:47
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: roku.png
+ha_category: Hub
+ha_iot_class: "Local Polling"
+ha_release: 0.86
+---
+
+The [Roku](http://www.roku.com/) component allows integration of Roku [media players](/components/media_player.roku) and [remotes](/components/remote.roku/) which will be automatically discovered if you enable the [discovery component](/components/discovery/).
+
+The `roku` component can also be forced to load by adding the following lines to your `configuration.yaml`:
+
+```yaml
+# Example configuration.yaml entry
+roku:
+ - host: 192.168.1.100
+```
+
+{% configuration %}
+host:
+ description: Set the IP address of the Roku device. Use only if you don't want to autodiscover devices.
+ required: false
+ type: string
+{% endconfiguration %}
+
+## {% linkable_title Services %}
+
+### {% linkable_title Service `roku_scan` %}
+
+Scans the local network for Rokus. All found devices are presented as a persistent notification.
diff --git a/source/_components/sensor.asuswrt.markdown b/source/_components/sensor.asuswrt.markdown
index 8c091b166e2..50fc69e1a7a 100644
--- a/source/_components/sensor.asuswrt.markdown
+++ b/source/_components/sensor.asuswrt.markdown
@@ -13,8 +13,6 @@ ha_iot_class: "Local Polling"
ha_release: 0.83
---
-The `asuswrt` platform allows you to get data from your [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) sensors from within Home Assistant.
-
-The sensor platform will be automatically configured if Asuswrt component is configured.
+The `asuswrt` sensor platform allows you to get upload and download data from your [ASUSWRT](http://event.asus.com/2013/nw/ASUSWRT/) within Home Assistant.
For more configuration information see the [Asuswrt component](/components/asuswrt/) documentation.
diff --git a/source/_components/sensor.imap_email_content.markdown b/source/_components/sensor.imap_email_content.markdown
index 706b10b3e25..32fbc95a500 100644
--- a/source/_components/sensor.imap_email_content.markdown
+++ b/source/_components/sensor.imap_email_content.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
logo: smtp.png
ha_category: Mailbox
-ha_iot_class: "Local Polling"
+ha_iot_class: "Cloud Push"
ha_release: 0.25
---
@@ -28,6 +28,7 @@ sensor:
port: 993
username: USERNAME
password: PASSWORD
+ folder:
senders:
- example@gmail.com
```
@@ -54,6 +55,11 @@ password:
description: Password for the IMAP server.
required: true
type: string
+password:
+ description: Folder to get mails from.
+ required: false
+ default: INBOX
+ type: string
senders:
description: A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed.
required: true
diff --git a/source/_components/sensor.markdown b/source/_components/sensor.markdown
index a3cc2019987..791be58a734 100644
--- a/source/_components/sensor.markdown
+++ b/source/_components/sensor.markdown
@@ -23,6 +23,7 @@ The way these sensors are displayed in the frontend can be modified in the [cust
- **illuminance**: The current light level in lx or lm.
- **temperature**: Temperature in °C or °F.
- **pressure**: Pressure in hPa or mbar.
+- **timestamp**: Datetime object or timestamp string.
diff --git a/source/_components/sensor.nest.markdown b/source/_components/sensor.nest.markdown
index 801198eb46b..fe730b1a341 100644
--- a/source/_components/sensor.nest.markdown
+++ b/source/_components/sensor.nest.markdown
@@ -51,12 +51,12 @@ The following conditions are available by device:
- operation\_mode
- temperature
- target
- - hvac\_state: The currently active state of the HVAC system, `heating`, `cooling`, or `off`.
+ - hvac\_state: The currently active state of the HVAC system, `heat`, `cool` or `off` (previously `heating`, `cooling` or `off`).
- Nest Protect:
- - co\_status: `Ok`, `Warning`, or `Emergency`
- - smoke\_status: `Ok`, `Warning`, or `Emergency`
+ - co\_status: `Ok`, `Warning` or `Emergency`
+ - smoke\_status: `Ok`, `Warning` or `Emergency`
- battery\_health: `Ok` or `Replace`
- - color\_status: `gray`, `green`, `yellow`, or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app.
+ - color\_status: `gray`, `green`, `yellow` or `red`. Indicates device status by color in the Nest app UI. It is an aggregate condition for battery+smoke+CO states, and reflects the actual color indicators displayed in the Nest app.
- Nest Camera: none
## {% linkable_title Security State %}
diff --git a/source/_components/sensor.postnl.markdown b/source/_components/sensor.postnl.markdown
index 0510b0dd14b..fdbd5ec8f1f 100644
--- a/source/_components/sensor.postnl.markdown
+++ b/source/_components/sensor.postnl.markdown
@@ -15,7 +15,7 @@ ha_iot_class: "Cloud Polling"
The `postnl` platform allows one to track deliveries by [PostNL](https://www.postnl.nl) (Dutch Postal Services). To use this sensor, you need a [PostNL Account](https://jouw.postnl.nl). It is possible to add multiple accounts to your Home Assistant configuration.
-The sensor value shows the number of packages to be delivered. Each of the packages is available as an attribute.
+The sensor value shows the number of packages to be delivered. The packages are available in the shipments attribute.
## {% linkable_title Configuration %}
diff --git a/source/_components/sensor.rest.markdown b/source/_components/sensor.rest.markdown
index 8a9dfa32bb0..e029e264698 100644
--- a/source/_components/sensor.rest.markdown
+++ b/source/_components/sensor.rest.markdown
@@ -52,6 +52,12 @@ name:
required: false
type: string
default: REST Sensor
+device_class:
+ description: >
+ The [type/class](/components/sensor/) of
+ the sensor to set the icon in the frontend.
+ required: false
+ type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the value."
required: false
diff --git a/source/_components/sensor.sma.markdown b/source/_components/sensor.sma.markdown
index 6365675c6e4..8ce932e4d38 100644
--- a/source/_components/sensor.sma.markdown
+++ b/source/_components/sensor.sma.markdown
@@ -29,7 +29,7 @@ sensor:
password: YOUR_SMA_PASSWORD
sensors:
current_consumption: [total_consumption]
- current_power:
+ pv_power:
total_yield:
```
@@ -59,29 +59,47 @@ group:
type: string
sensors:
description: A dictionary of sensors that will be added. The value of the dictionary can include a list of sensor names that will be used as attributes.
- required: true
+ required: false
+ default: All sensors
type: map
keys:
- current_power:
- description: Current power (W).
- current_consumption:
- description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W).
+ pv_power:
+ description: Current power generated by the inverter (W).
+ pv_gen_meter:
+ description: Total kWh generated to date (kWh)
total_yield:
description: Total power yield from solar installation (kWh).
+ daily_yield:
+ description: The yield for today (Wh)
+
+ current_consumption:
+ description: Power that you are currently drawing, depending on your installation it can be a combination of the inverter and the grid (W).
total_consumption:
description: Total power consumption (kWh).
- grid_voltage:
- description: The grid voltage (V)
- pv_power:
- description: PV Power (W)
- daily_yield:
- description: daily_yield (Wh)
- power_supplied:
+
+ grid_power_supplied:
description: Power supplied (W)
- power_absorbed:
+ grid_power_absorbed:
description: Power absorbed (W)
+ grid_total_yield:
+ description: Total power fom the grid (kWh)
+ grid_total_absorbed:
+ description: Total power supplied to the grid
+
+ grid_power:
+ description: Power supplied by the grid (W)
+ frequency:
+ description: Grid frequency (W)
+ voltage_l1:
+ description: Voltage for phase 1 (V)
+ voltage_l2:
+ description: Voltage for phase 2 (V)
+ voltage_l2:
+ description: Voltage for phase 3 (V)
+
status:
- description: Status of the solar plant.
+ description: Status of the solar plant.
+
your-custom-sensor:
description: Any sensor name defined in the `custom:` section
custom:
@@ -123,4 +141,4 @@ Example:
factor: 1000
```
-Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L59). Feel free to submit additional sensors on that repository.
+Over time more sensors will be added as standard sensors to the [pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L100). Feel free to submit additional sensors on that repository.
diff --git a/source/_components/switch.xiaomi_miio.markdown b/source/_components/switch.xiaomi_miio.markdown
index e2f8d92b3b7..0b88bcf5294 100644
--- a/source/_components/switch.xiaomi_miio.markdown
+++ b/source/_components/switch.xiaomi_miio.markdown
@@ -21,7 +21,7 @@ Please follow the instructions on [Retrieving the Access Token](/components/vacu
### {% 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
@@ -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 %}
diff --git a/source/_components/vacuum.neato.markdown b/source/_components/vacuum.neato.markdown
index 9ed678cfb61..3b38389171b 100644
--- a/source/_components/vacuum.neato.markdown
+++ b/source/_components/vacuum.neato.markdown
@@ -32,3 +32,4 @@ Currently supported services are:
- `stop`
- `return_to_base`
- `locate`
+- `spot_clean`
diff --git a/source/_components/zha.markdown b/source/_components/zha.markdown
index 7d353f91ac0..c3a1069360a 100644
--- a/source/_components/zha.markdown
+++ b/source/_components/zha.markdown
@@ -32,6 +32,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 %}
diff --git a/source/_components/zoneminder.markdown b/source/_components/zoneminder.markdown
index a5f49f7082a..d8d934df811 100644
--- a/source/_components/zoneminder.markdown
+++ b/source/_components/zoneminder.markdown
@@ -21,7 +21,7 @@ The ZoneMinder component sets up the integration with your [ZoneMinder](https://
```yaml
# Example configuration.yaml entry
zoneminder:
- host: ZM_HOST
+ - host: ZM_HOST
```
{% configuration %}
@@ -64,13 +64,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,6 +79,7 @@ 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/):
@@ -87,5 +88,6 @@ For example, if your ZoneMinder instance was configured with a run state called
action:
service: zoneminder.set_run_state
data:
+ id: ZM_HOST
name: Home
```
diff --git a/source/_cookbook/configuration_yaml_by_patatman.markdown b/source/_cookbook/configuration_yaml_by_patatman.markdown
new file mode 100644
index 00000000000..1b45e974202
--- /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/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown
index 5719edb7848..6a084964d8c 100644
--- a/source/_docs/automation/trigger.markdown
+++ b/source/_docs/automation/trigger.markdown
@@ -173,33 +173,40 @@ 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.
-
As mentioned in the Sun trigger section, sunrise is a different day than any time prior to midnight. If you want to trigger an action with a large enough amount of time before sunrise that it precedes midnight, this must be accounted for properly. One way is to convert the sunrise time to a timestamp (seconds since 1 Jan 1970). Then do the same for the offset desired (in seconds). This is done with the _as_timestamp_ method explained in the [Templating - Home Assistant template extensions](/docs/configuration/templating/#home-assistant-template-extensions) section.
@@ -231,10 +238,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:
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index cf3d015bb32..a7931e22cf0 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -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',
@@ -213,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/).
diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html
index 5d672861adc..e4a12f32618 100644
--- a/source/_includes/asides/about.html
+++ b/source/_includes/asides/about.html
@@ -5,7 +5,7 @@
Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
diff --git a/source/_includes/custom/welcome.html b/source/_includes/custom/welcome.html
index 0eb5931cd4c..12eb9286563 100644
--- a/source/_includes/custom/welcome.html
+++ b/source/_includes/custom/welcome.html
@@ -5,6 +5,6 @@ Open source home automation that puts local control and privacy first. Powered b
diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown
index 2572ba03117..6e82ea9c13d 100644
--- a/source/_lovelace/map.markdown
+++ b/source/_lovelace/map.markdown
@@ -28,7 +28,7 @@ entities:
type: list
geo_location_sources:
required: true
- description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geo Location](/components/geo_location/) platform for valid sources. Either this or the `entities` configuration option is required.
+ description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geolocation](/components/geo_location/) platform for valid sources. Either this or the `entities` configuration option is required.
type: list
title:
required: false
diff --git a/source/_posts/2019-01-23-lovelace-released.markdown b/source/_posts/2019-01-23-lovelace-released.markdown
new file mode 100644
index 00000000000..a51c8dc1646
--- /dev/null
+++ b/source/_posts/2019-01-23-lovelace-released.markdown
@@ -0,0 +1,82 @@
+---
+layout: post
+title: "Lovelace UI released!"
+description: "After 8 months of development, we're proud to release our brand new Lovelace UI."
+date: 2019-01-23 00:01:02
+date_formatted: "January 23, 2019"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2019-01-lovelace/demo.png
+---
+
+Today we're happy to announce that our new Lovelace UI, which has been in beta for the last 8 months, is becoming the new default interface of [Home Assistant 0.86](/blog/2019/01/23/release-86/). With Lovelace we're taking a new approach to building user interfaces for Home Assistant. We're no longer storing the look and feel of your UI in your configuration.yaml, requiring restarts for changes. With Lovelace we're keeping the UI concerns in the UI1, unlocking a whole new set of features:
+
+ - [24 cards](https://www.home-assistant.io/lovelace/alarm-panel/) to place and configure as you like.
+ - UI Editor. A configuration UI to manage your Lovelace UI including live preview when editing cards.
+ - Fast. Using a static config allows us to build up the UI once.
+ - Customizable.
+ - Cards have numerous options to configure how your data is presented.
+ - Themes; even at a per card basis.
+ - Ability to override names and icons of entities.
+ - Custom Cards from our amazing community are fully supported.
+
+
+
+
+
+In case you're reading this and want to give it a try right now: we've updated [the Home Assistant demo](https://demo.home-assistant.io). It now features multiple Lovelace configuration examples. The demo is fully interactive, including the configuration UI (accessible via the menu in the top right). You can also access it by updating to Home Assistant 0.86.
+
+For a deep dive into all the new features, check out the [latest episode of the Home Assistant podcast](https://hasspodcast.io), featuring an interview with [Zack Arnett][@zsarnett] from the Lovelace team.
+
+1: If you prefer YAML, Lovelace also includes a [YAML mode](/lovelace/yaml-mode/) that supports the use of `!include` and `!secret`.
+
+## {% linkable_title History %}
+
+With Lovelace we've built a foundation that not only provides a lean and sleek interface, but will also allow us to add many new exciting features in the future. The main difference with the old UI is that we no longer store any UI concerns in the state machine.
+
+When Home Assistant was started, I came up with an algorithm that would automatically organize the available entities in badges, cards and tabs; and then show that on the screen. Users demanded more influence; so over time, we've added a bunch of components and features of the backend whose main or sole purpose were to influence how the algorithm in the UI shows and organizes entities.
+
+As this kept growing, I realized that we were on the wrong path. It was impossible to get an algorithm that would fulfill all needs and the backend shouldn't be aware of anything in the frontend. It should just deliver the entities and the frontend should figure out how to display things together with the user.
+
+At the same time as this was happening, we also had some discussions about the development of the frontend. Users wanted more control on what is shown, when it's shown and how it's shown. Eventually, [@andrey-git] came up with Custom UI for the old interface. This allowed users to do whatever they wanted. However, it was limited to power users.
+
+Lovelace was built [from the start](https://github.com/home-assistant/architecture/issues/14) to tackle these problems. The initial version completely dropped the algorithm and required users to add each card to their configuration. We went from a fully automatic UI to nothing. We launched it under the nomer "experimental UI" and it quickly gained traction. People loved the control and the ability to inject custom cards or entity rows at will.
+
+The enthusiasm was great among our power users, however by switching away from an automatic UI, we were no longer beginner-friendly. A new user would open Home Assistant and they would see a blank, unconfigured UI. We realized that this had to be solved if we were to make Lovelace the default.
+
+To solve this, we re-introduced our automatic algorithm. However, this time the algorithm generates a Lovelace configuration. If a user doesn't like the automatic configuration, they can take control and configure it to their liking. When you take control, the automatic generated configuration will no longer be updated by Home Assistant, allowing the user to change each detail.
+
+To make configuring your UI as easy as possible, Lovelace UI allows (custom) cards to include a config editor. This way the user will be able to quickly edit a card while a live preview shows how the changes look. If a card does not include an editor (yet), the user will be presented with a text editor in the browser.
+
+Because of the ease to customize and share customizations, we've already seen a big community get created around Lovelace. They are very active in the #lovelace channel on [our chat](/join-chat/), and work is shared on [ShareTheLove.io](https://sharethelove.io/) and the [Lovelace section on Awesome HA](https://www.awesome-ha.com/#lovelace-ui).
+
+## {% linkable_title Credits %}
+
+Lovelace UI has been 8 months in the making and it has been a big undertaking. We've worked hard and are proud of being able to ship this first version. Lovelace UI would not have been possible without the following current and former members of the Lovelace team:
+
+ - [@balloob] / Paulus Schoutsen
+ - [@bramkragten] / Bram Kragten
+ - [@c727]
+ - [@ciotlosm] / Marius Ciotloș
+ - [@iantrich] / Ian Richardson
+ - [@jeradM] / Jerad Meisner
+ - [@thomasloven] / Thomas Lovén
+ - [@zsarnett] / Zack Arnett
+
+I also want to thank the community for adopting this so eagerly, building a ton of helpful tooling and examples and helping one another to create beautiful UIs for their homes.
+
+## {% linkable_title Old UI %}
+
+The transition to Lovelace should be painless for most users. If you are encountering issues, please [let us know](https://github.com/home-assistant/home-assistant-polymer/issues). For the time being, you will be able to still change back to the old user interface on a per-device basis by going to the info developer tool and following the instructions.
+
+[@andrey-git]: https://github.com/andrey-git
+[@balloob]: https://github.com/balloob
+[@bramkragten]: https://github.com/bramkragten
+[@c727]: https://github.com/c727
+[@ciotlosm]: https://github.com/ciotlosm
+[@iantrich]: https://github.com/iantrich
+[@jeradM]: https://github.com/jeradM
+[@thomasloven]: https://github.com/thomasloven
+[@zsarnett]: https://github.com/zsarnett
diff --git a/source/_posts/2019-01-23-release-86.markdown b/source/_posts/2019-01-23-release-86.markdown
new file mode 100644
index 00000000000..28cb0ae7886
--- /dev/null
+++ b/source/_posts/2019-01-23-release-86.markdown
@@ -0,0 +1,655 @@
+---
+layout: post
+title: "0.86: New Lovelace UI and Zigbee Management Panel!"
+description: "Lovelace is in, Zigbee Control Panel is in. New demo is in."
+date: 2019-01-23 00:01:03
+date_formatted: "January 23, 2019"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories: Release-Notes
+og_image: /images/blog/2019-01-release-86/zha.png
+---
+
+Today we're releasing Home Assistant 0.86. And oh wow, this is an amazing release. First awesome thing: the Lovelace user interface, which we've been working on for the last 8 months, is now the default in Home Assistant. We have a lot to talk about, so we created a separate blog post just for the Lovelace release [here](/blog/2019/01/23/lovelace-released/).
+
+Next up, we've updated the [Home Assistant demo](https://demo.home-assistant.io). It's snappier, it's snazzier, and best of all: it contains four fully functional Lovelace user interfaces that you can play with! Change the states or go in config mode and add, edit or re-organize the cards. We've set it up in such a way now that the demo will be automatically updated with the latest release of Home Assistant, so it will always feature the latest things.
+
+
+
+ Screenshot of Lovelace in the new demo.
+
+
+## {% linkable_title Zigbee management panel %}
+
+This release includes a brand new Zigbee management panel to manage your Zigbee network thanks to the hard work by [@dmulcahey] with the help of [@Adminiuga] and [@damarco]. The new panel makes it easy to:
+
+ - Issue Permit and Remove operations
+ - Reconfigure Node, which will rebind and reconfigure the reporting for a device. Which can help solve issues.
+ - Reading and setting cluster attributes. This is useful for viewing and setting things such as device sensitivity levels.
+ - View and issue cluster commands. Note on this feature: support for commands with arguments is coming soon.
+
+The Zigbee team is also planning a bunch of cool things for 2019. Direct device binding (directly pairing remotes to lights) is already in development and they are planning support for group management as well. Targeted and broadcast joins are also right around the corner (we’re waiting for a new Zigpy release). Exciting times for Zigbee users!
+
+