diff --git a/source/_addons/git_pull.markdown b/source/_addons/git_pull.markdown
index bf8324628ca..a316149cae4 100644
--- a/source/_addons/git_pull.markdown
+++ b/source/_addons/git_pull.markdown
@@ -1,6 +1,6 @@
---
layout: page
-title: "GIT pull"
+title: "Git pull"
description: "Load and update configuration files for Home Assistant from a GIT repository."
date: 2017-09-25 14:00
sidebar: true
@@ -15,6 +15,9 @@ Load and update configuration files for Home Assistant from a GIT repository.
{
"repository": "https://example.com/my_configs.git",
"auto_restart": false,
+ "git_branch": "master",
+ "git_command": "pull",
+ "git_remote": "origin",
"repeat": {
"active": false,
"interval": 300
@@ -32,9 +35,20 @@ Load and update configuration files for Home Assistant from a GIT repository.
}
```
-- **repository** (*Required*): GIT url to your repository. You have to add .git to your GITHub-Repository-URL (see example Config)
-- **auto_restart** (*Optional*): Make a restart of Home-Assistant if the config have change and is valid.
-- **repeat/active** (*Optional*): Pull periodic for GIT updates.
+- **repository** (*Required*): Git URL to your repository (make sure to use double quotes). You have to add .git to your GitHub repository URL (see example config)
+- **git_branch** (*Required*): Branch name of the git repo, leave this as 'master' if you are unsure.
+- **git_remote** (*Required*): Name of the tracked repository, leave this as 'origin' if you are unsure.
+- **git_command** (*Required*): Must be either 'pull' or 'reset', leave this as 'pull' if you are unsure.
+
+ * **pull**: Incorporates changes from a remote repository into the current branch. Will preserve any local changes to tracked files.
+ * **reset**: Will execute ```git reset --hard``` and overwrite any local changes to tracked files and update from the remote repository.
+
+
+ Using the reset option will overwrite changes to tracked files. Tracked files are those visible in the Github repository or those given by the output on this command: ```git ls-tree -r master --name-only```
+
+
+- **auto_restart** (*Optional*): Restart Home Assistant when the configuration has changed (and is valid).
+- **repeat/active** (*Optional*): Pull periodic for git updates.
- **repeat/interval** (*Optional*): Pull all x seconds and look for changes.
- **deployment_user** (*Optional*): Username to use when authenticating to a repo with a username and password.
- **deployment_password** (*Optional*): Password to use when authenticating to a repo. Ignored if deployment_user is not set.
diff --git a/source/_components/alarm_control_panel.totalconnect.markdown b/source/_components/alarm_control_panel.totalconnect.markdown
index 821d38075e4..203d53a5c04 100644
--- a/source/_components/alarm_control_panel.totalconnect.markdown
+++ b/source/_components/alarm_control_panel.totalconnect.markdown
@@ -34,3 +34,27 @@ Configuration variables:
- **username** (*Required*): Username used to sign into the TotalConnect app/web client.
- **password** (*Required*): Password used to sign into the TotalConnect app/web client.
+Automation example:
+
+```yaml
+automation:
+ - alias: "Alarm: Disarmed Daytime"
+ trigger:
+ platform: state
+ entity_id: alarm_control_panel.total_connect
+ to: 'disarmed'
+ condition:
+ condition: sun
+ before: sunset
+ action:
+ service: scene.turn_on
+ entity_id: scene.OnDisarmedDaytime
+ - alias: "Alarm: Armed Away"
+ trigger:
+ platform: state
+ entity_id: alarm_control_panel.total_connect
+ to: 'armed_away'
+ action:
+ service: scene.turn_on
+ entity_id: scene.OnArmedAway
+```
diff --git a/source/_components/binary_sensor.command_line.markdown b/source/_components/binary_sensor.command_line.markdown
index b37d6e40bbc..25fb0c03302 100644
--- a/source/_components/binary_sensor.command_line.markdown
+++ b/source/_components/binary_sensor.command_line.markdown
@@ -81,3 +81,27 @@ binary_sensor:
```
Consider to use the [`ping` sensor ](/components/binary_sensor.ping/) as an alternative to the samples above.
+
+### {% linkable_title Check if a system service is running %}
+
+The services running is listed in `/etc/systemd/system` and can be checked with the `systemctl` command:
+
+```
+$ systemctl is-active home-assistant@rock64.service
+active
+$ sudo service home-assistant@rock64.service stop
+$ systemctl is-active home-assistant@rock64.service
+inactive
+```
+
+A binary command line sensor can check this:
+
+```yaml
+binary_sensor:
+ - platform: command_line
+ command: '/bin/systemctl is-active home-assistant@rock64.service'
+ payload_on: 'active'
+ payload_off: 'inactive'
+```
+
+Note: Use single quotes!
diff --git a/source/_components/binary_sensor.enocean.markdown b/source/_components/binary_sensor.enocean.markdown
index 32f3fc3340e..fe4ea3dd681 100644
--- a/source/_components/binary_sensor.enocean.markdown
+++ b/source/_components/binary_sensor.enocean.markdown
@@ -13,7 +13,13 @@ ha_release: 0.21
ha_iot_class: "Local Push"
---
-This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55 which uses the EnOcean PTM 215 module. All switches using this module are expected to work. Other devices will most likely not work without changing the Home Assistant code.
+This can typically be one of those batteryless wall switches.
+Tested with:
+
+- Eltako FT55 which uses the EnOcean PTM 215 module
+- [TRIO2SYS Wall switches](http://www.trio2sys.fr/index.php/fr/produits-enocean-sans-fil-sans-pile-interoperable/emetteur-sans-fils-sans-pile-interoperable-enocean) which uses the EnOcean PTM210 DB module
+
+All switches using theses modules are expected to work. Other devices will most likely not work without changing the Home Assistant code.
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:
diff --git a/source/_components/camera.nest.markdown b/source/_components/camera.nest.markdown
index 82808e724cb..fb87dafaf6c 100644
--- a/source/_components/camera.nest.markdown
+++ b/source/_components/camera.nest.markdown
@@ -13,7 +13,7 @@ ha_release: 0.34
ha_iot_class: "Cloud Poll"
---
-The `nest` platform allows you to watch the live stream of your [Nest](https://nest.com/camera/meet-nest-cam/) camera in Home Assistant.
+The `nest` platform allows you to watch still frames from a video stream (not live stream) of your [Nest](https://nest.com/camera/meet-nest-cam/) camera in Home Assistant.
You must have the [Nest component](/components/nest/) configured to use this camera. The `nest` camera will automatically be setup when you do.
diff --git a/source/_components/device_tracker.gpslogger.markdown b/source/_components/device_tracker.gpslogger.markdown
index 4c2889a94bc..6d1b2d5446a 100644
--- a/source/_components/device_tracker.gpslogger.markdown
+++ b/source/_components/device_tracker.gpslogger.markdown
@@ -56,7 +56,7 @@ Right after enabling, the app will take you to the **Log to custom URL** setting
The relevant endpoint is: `/api/gpslogger`
```text
-https://[IP address Home Assistant]:[Port]/api/gpslogger?
+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
@@ -65,11 +65,11 @@ https://[IP address Home Assistant]:[Port]/api/gpslogger?
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. 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 or remove any parameters.
-- Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=[Your password]` to the end of the URL.
-- You can change the name of your device name by replacing `&device=%SER` with `&device=[Devicename]`.
+- 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.
+- Make sure to include your [API password](/components/http/) if you have configured a password. Add `&api_password=YOUR_PASSWORD` to the end of the URL.
+- You can change the name of your device name by replacing `&device=%SER` with `&device=DEVICE_NAME`.
If your battery drains fast then you can tune the performance of GPSLogger under **Performance** -> **Location providers**
diff --git a/source/_components/device_tracker.snmp.markdown b/source/_components/device_tracker.snmp.markdown
index 9b3805e30ce..faea7253981 100644
--- a/source/_components/device_tracker.snmp.markdown
+++ b/source/_components/device_tracker.snmp.markdown
@@ -34,8 +34,7 @@ The following OID examples pull the current MAC Address table from a router. Thi
| EdgeRouter | Lite v1.9.0 | `1.3.6.1.2.1.4.22.1.2` |
| Ruckus | ZoneDirector 9.13.3 | `1.3.6.1.4.1.25053.1.2.2.1.1.3.1.1.1.6` |
| DD-WRT | unknown RouterOS version/model | `1.3.6.1.2.1.4.22.1.2` |
-| Apple Airport Express (2nd gen.) | 7.6.9 | `1.3.6.1.2.1.3.1.1.2`
-`1.3.6.1.2.1.4.22.1.2.16`|
+| Apple Airport Express (2nd gen.) | 7.6.9 | `1.3.6.1.2.1.3.1.1.2` or `1.3.6.1.2.1.4.22.1.2`|
To use the SNMP version 1 platform in your installation, add the following to your `configuration.yaml` file:
diff --git a/source/_components/homematic.markdown b/source/_components/homematic.markdown
index 8d51ce86304..4ef25974b99 100644
--- a/source/_components/homematic.markdown
+++ b/source/_components/homematic.markdown
@@ -254,3 +254,59 @@ action:
service: lock.unlock
entity_id: lock.leq1234567
```
+
+#### {% linkable_title Detecting lost connections %}
+
+When the connection to your HomeMatic CCU or Homegear is lost, Home Assistant will stop getting updates from devices. This may happen after rebooting the CCU for example. Due to the nature of the communication protocol this cannot be handled automatically, so you must call *homematic.reconnect* in this case. That's why it is usually a good idea to check if your HomeMatic components are still updated properly, in order to detect connection losses. This can be done in several ways through an automation:
+
+* If you have a sensor which you know will be updated frequently (e.g. an outdoor temperature sensor or light sensor) you could set up an automation like this:
+
+ ```yaml
+ automation:
+ - alias: Homematic Reconnect
+ trigger:
+ platform: state
+ entity_id: sensor.outdoor_light_level
+ for:
+ hours: 3
+ action:
+ # Reconnect, if sensor has not been updated for over 3 hours
+ service: homematic.reconnect
+ ```
+* If you have a CCU you can also create a system variable on the CCU, which stores it's last reboot time. Since Home Assistant can still refresh system variables from the CCU (even after a reboot), this is a pretty reliable way to detect situations where you need to call *homematic.reconnect*. This is how this can be done:
+
+ 1. Create a string variable **V_Last_Reboot** on the CCU
+
+ 2. Creata a new programm on the CCU **without any conditions**, which executes the following *HM-Script* with a delay of 30 seconds:
+
+ ```javascript
+ var obj = dom.GetObject("V_Last_Reboot");
+ string now = system.Date("%d.%m.%Y %H:%M:%S");
+ obj.State(now);
+ ```
+
+ The HomeMatic CCU will execute all active programs which meet their conditions (none in this case) on every reboot.
+
+ 3. Set up a template sensor in Home Assistant, which contains the value of the system variable:
+
+ ```yaml
+ - platform: template
+ sensors:
+ v_last_reboot:
+ value_template: "{% raw %}{{ state_attr('homematic.ccu2', 'V_Last_Reboot') or '01.01.1970 00:00:00' }}{% endraw %}"
+ icon_template: "mdi:clock"
+ entity_id: homematic.ccu2
+ ```
+
+ 4. Set up an automation which calls *homematic.reconnect* whenever the sensor variable changes:
+
+ ```yaml
+ automation:
+ - alias: Homematic CCU Reboot
+ trigger:
+ platform: state
+ entity_id: sensor.v_last_reboot
+ action:
+ service: homematic.reconnect
+ ```
+
diff --git a/source/_components/media_player.vizio.markdown b/source/_components/media_player.vizio.markdown
index 1557b166492..12916a2ed3c 100644
--- a/source/_components/media_player.vizio.markdown
+++ b/source/_components/media_player.vizio.markdown
@@ -77,6 +77,7 @@ Configuration variables:
- **host** (*Required*): IP address of your TV.
- **access_token** (*Required*): Authentication token you received in the last step of the pairing process.
+- **suppress_warning** (*Optional*): Set to `true` to disable self-signed certificate warnings.
## Notes and limitations
@@ -91,13 +92,3 @@ Changing tracks works like channels switching. If you have source other than reg
### Sources
Source list shows all external devices connected to the TV through HDMI plus list of internal devices (TV mode, Chrome Cast, etc.).
-
-
-Vizio SmartCast service is accessible through HTTPS with self-signed certificate. If you have low LOGLEVEL in your Home Assistant configuration, you'll see a lot of warnings like this:
-`InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.`
-
-You can adjust the log level for `media_player` components with the [logger](/components/logger/) component, or if you need to keep a low log level for `media_player` you could proxy calls to your TV through an NGINX reverse proxy.
-
-If you want to only ignore only this specific [python urllib3 SSL warning](https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings), you will need to run Home Assistant with the python flag `-W` or the environment variable `PYTHONWARNINGS` set to:
-`ignore:Unverified HTTPS request is being made`
-
diff --git a/source/_components/notify.xmpp.markdown b/source/_components/notify.xmpp.markdown
index 930aa496ac6..14105d9bb6d 100644
--- a/source/_components/notify.xmpp.markdown
+++ b/source/_components/notify.xmpp.markdown
@@ -37,6 +37,10 @@ Configuration variables:
- **verify** (*Optional*): Allow disabling SSL certificate validity check (e.g., self-signed certificate). Defaults to `true`.
- **room** (*Optional*): Room's name (e.g., example@conference.jabber.org). If set, send a message to chatroom instead of the sender.
+
+ sleekxmpp, as of version 1.3.2, does not support >TLS1. If you are running your own XMPP server (e.g. Prosody, ejabberd) make sure to allow using TLS1.
+
+
All Jabber IDs (JID) must include the domain. Make sure that the password matches the account provided as sender.
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
diff --git a/source/_components/sensor.haveibeenpwned.markdown b/source/_components/sensor.haveibeenpwned.markdown
index 7a6b7bc1b30..56cb497b2ad 100644
--- a/source/_components/sensor.haveibeenpwned.markdown
+++ b/source/_components/sensor.haveibeenpwned.markdown
@@ -14,18 +14,28 @@ ha_iot_class: "Cloud Polling"
---
The `haveibeenpwned` sensor platform creates sensors that check for breached email accounts on [haveibeenpwned](https://haveibeenpwned.com).
+
+## {% linkable_title Configuration %}
+
To enable this sensor, add the following lines to your `configuration.yaml`, it will list every specified email address as a sensor showing
-the number of breaches on that email account:
+the number of breaches on that email account.
```yaml
# Example configuration.yaml entry using cloud based emoncms
sensor:
- platform: haveibeenpwned
- email:
- - your_email1@domain.com
- - your_email2@domain.com
+ - platform: haveibeenpwned
+ email:
+ - your_email1@domain.com
+ - your_email2@domain.com
```
+{% configuration %}
+email:
+ description: List of email addresses.
+ required: true
+ type: list
+{% endconfiguration %}
+
## {% linkable_title Breach meta data %}
If one of your email accounts is breached the sensor will display breach meta data. It will list the title of the site where your email
@@ -36,10 +46,6 @@ account has been breached as well as the added date of the breach data. This dat
-## {% linkable_title Configuration variables %}
-
-- **email** (*Required*): List of email addresses.
-
The sensor will scan all email addresses specified with a 5 second delay between all breach data requests on Home Assistant startup.
After this initial startup scanning, the sensor will only scan one email account per 15 minutes to prevent abuse, and not hammer "the
diff --git a/source/_components/sensor.template.markdown b/source/_components/sensor.template.markdown
index 8ef5a5dc442..7d612f01607 100644
--- a/source/_components/sensor.template.markdown
+++ b/source/_components/sensor.template.markdown
@@ -13,11 +13,11 @@ ha_iot_class: "Local Push"
logo: home-assistant.png
---
-The `template` platform supports sensors which break out `state_attributes`
-from other entities.
+The `template` platform supports sensors which break out `state_attributes` from other entities.
-To enable Template Sensors in your installation, add the following to your
-`configuration.yaml` file:
+## {% linkable_title Configuration %}
+
+To enable Template Sensors in your installation, add the following to your `configuration.yaml` file:
{% raw %}
```yaml
@@ -78,13 +78,7 @@ sensor:
## {% linkable_title Considerations %}
-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:
+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 %}
## {% linkable_title Examples %}
@@ -109,8 +103,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 %}
@@ -129,9 +122,7 @@ sensor:
```
{% endraw %}
-Processes monitored by the [System Monitor sensor](/components/sensor.systemmonitor/)
-show `on` or `off` if they are running or not. This example shows how the
-output of a monitored `glances` process can be renamed.
+Processes monitored by the [System Monitor sensor](/components/sensor.systemmonitor/) show `on` or `off` if they are running or not. This example shows how the output of a monitored `glances` process can be renamed.
{% raw %}
```yaml
@@ -149,13 +140,11 @@ sensor:
```
{% endraw %}
-The [Template Binary Sensor](/components/binary_sensor.template/) is the one in
-similar cases if you prefer to see an icon instead of text.
+The [Template Binary Sensor](/components/binary_sensor.template/) is the one in similar cases if you prefer to see an icon instead of text.
### {% linkable_title Multiline Example With an `if` Test %}
-This example shows a multiple line template with an `if` test. It looks at a
-sensing switch and shows `on`/`off` in the frontend.
+This example shows a multiple line template with an `if` test. It looks at a sensing switch and shows `on`/`off` in the frontend.
{% raw %}
```yaml
@@ -182,8 +171,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
@@ -257,7 +245,7 @@ sensor:
### {% linkable_title Change the Friendly Name Used in the Frontend %}
This example shows how to change the `friendly_name` based on a date.
-Explanation: we add a multiple of 86400 seconds (= 1 day) to the current unix timestamp to get a future date.
+Explanation: We add a multiple of 86400 seconds (= 1 day) to the current unix timestamp to get a future date.
{% raw %}
```yaml
@@ -295,3 +283,19 @@ sensor:
unit_of_measurement: 'kW'
```
{% endraw %}
+
+### {% linkable_title Working with dates %}
+
+The `template` sensors are not limited to use attributes from other entities but can also work with [Home Assistant's template extensions](/docs/configuration/templating/#home-assistant-template-extensions).
+
+{% raw %}
+```yaml
+sensor:
+- platform: template
+ sensors:
+ nonsmoker:
+ value_template: '{{ (( as_timestamp(now()) - as_timestamp(strptime("06.07.2018", "%d.%m.%Y")) ) / 86400 ) | round(2) }}'
+ friendly_name: 'Not smoking'
+ unit_of_measurement: "Days"
+```
+{% endraw %}
diff --git a/source/_components/tradfri.markdown b/source/_components/tradfri.markdown
index 0f85a2a644e..020475edc01 100644
--- a/source/_components/tradfri.markdown
+++ b/source/_components/tradfri.markdown
@@ -48,3 +48,6 @@ Do not use the `api_key` variable. The key is only needed once at initial setup.
Please make sure you have `autoconf` installed (`apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (>1h) on slow devices. You might have to use `sudo` when installing `autoconf`.
+
+## {% linkable_title Troubleshooting %}
+- Firmware updates: After updating the firmware of your TrΓ₯dfri gateway it might be necessary to repeat the configuration process. If you encounter problems, delete `.tradfri_psk.conf`, restart Home Assistant, when prompted enter the security key and click configure, just like during initial setup. (Possible errors: ```Fatal DTLS error: code 115```)
diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index f49d53509cb..4ed3e20243e 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -23,6 +23,7 @@ One major advantage of Home Assistant is that it's not dependent on cloud servic
If you want to allow remote access, consider these additional points:
- Protect your communication with [TLS/SSL](/docs/ecosystem/certificates/lets_encrypt/).
+- Enable IP Filtering and configure a low [Login Attempts Threshold](/components/http/)
- Protect your communication with [Tor](/cookbook/tor_configuration/).
- Protect your communication with a [self-signed certificate](/cookbook/tls_self_signed_certificate/).
- Use a [proxy](/cookbook/apache_configuration/).
diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown
index 5ca5b9c756f..39398ca10f1 100644
--- a/source/_docs/scripts/conditions.markdown
+++ b/source/_docs/scripts/conditions.markdown
@@ -126,7 +126,7 @@ condition:
condition: sun
after: sunset
# Optional offset value - in this case it must from -1 hours relative to sunset, or after
- after_offset: "-1:00:00"
+ after_offset: "-01:00:00"
```
```yaml
diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown
index 8f03fe654ae..2d217d8c4a2 100644
--- a/source/_docs/z-wave/device-specific.markdown
+++ b/source/_docs/z-wave/device-specific.markdown
@@ -301,3 +301,56 @@ Button four release|4|1
### {% linkable_title WallC-S Switch %}
Use the same configuration as for the Aeotec Wallmote.
+
+### {% linkable_title HANK One-key Scene Controller HKZN-SCN01 %}
+
+For the HANK One-key Scene Controller, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following:
+
+```xml
+
+
+
+
+
+```
+
+Below is a table of the action/scenes for the Button (as a reference for other similar devices):
+
+**Action**|**scene\_id**|**scene\_data**
+:-----:|:-----:|:-----:
+Button single tap|1|0
+Button hold|1|2
+Button release|1|1
+
+### {% linkable_title HANK Four-key Scene Controller HKZN-SCN04 %}
+
+For the HANK Four-key Scene Controller, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+Below is a table of the action/scenes for the Buttons and associated Pictogram:
+
+**Action**|**Pictogram**|**scene\_id**|**scene\_data**
+:-----:|:-----:|:-----:|:-----:
+Button one tap|Moon and Star|1|0
+Button one hold|Moon and Star|1|2
+Button one release|Moon and Star|1|1
+Button two tap|People|2|0
+Button two hold|People|2|2
+Button two release|People|2|1
+Button three tap|Circle|3|0
+Button three hold|Circle|3|2
+Button three release|Circle|3|1
+Button four tap|Circle with Line|4|0
+Button four hold|Circle with Line|4|2
+Button four release|Circle with Line|4|1
\ No newline at end of file
diff --git a/source/_includes/asides/categories.html b/source/_includes/asides/categories.html
index 8d600335bfb..dbf5fd7ae74 100644
--- a/source/_includes/asides/categories.html
+++ b/source/_includes/asides/categories.html
@@ -1,7 +1,7 @@
Back to the cookbook
diff --git a/source/_includes/asides/faq_navigation.html b/source/_includes/asides/faq_navigation.html
index 68ccac63ebd..65221d5ee22 100644
--- a/source/_includes/asides/faq_navigation.html
+++ b/source/_includes/asides/faq_navigation.html
@@ -2,8 +2,8 @@
+
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
new file mode 100644
index 00000000000..11d53d9f658
--- /dev/null
+++ b/source/_lovelace/entities.markdown
@@ -0,0 +1,63 @@
+---
+layout: page
+title: "Entities Card"
+sidebar_label: Entities
+description: "Entities will be the most common type of card that will also be the most familiar to people using the standard interface. It groups items together very close to how groups used to do."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Entities will be the most common type of card that will also be the most familiar to people using the standard interface. It groups items together very close to how groups used to do.
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: entities
+ type: string
+entities:
+ required: true
+ description: "Entity id's or an `entity` object (see structure below)."
+ type: list
+title:
+ required: false
+ description: Card title
+ type: string
+show_header_toggle:
+ required: false
+ description: Button to turn on/off all entities
+ type: boolean
+ default: true
+{% endconfiguration %}
+
+`entity` object
+
+{% configuration %}
+entity:
+ required: true
+ description: "An entity_id. Example: 'device_tracker.demo_paulus'."
+ type: string
+name:
+ required: true
+ description: A new name for the entity_id
+ type: string
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: entities
+ title: Entities card sample
+ show_header_toggle: true
+ entities:
+ - entity: alarm_control_panel.alarm
+ name: Alarm Panel
+ - device_tracker.demo_paulus
+ - switch.decorative_lights
+ - group.all_lights
+ - group.all_locks
+```
diff --git a/source/_lovelace/entity-filter.markdown b/source/_lovelace/entity-filter.markdown
new file mode 100644
index 00000000000..8eabe85a8e5
--- /dev/null
+++ b/source/_lovelace/entity-filter.markdown
@@ -0,0 +1,83 @@
+---
+layout: page
+title: "Entity Filter Card"
+sidebar_label: Entity Filter
+description: "This card allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home. "
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+This card allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home.
+
+This type of card can also be used together with rest of cards that allow multiple entities, allowing you to use [glance](/lovelace/glance/) or [picture-glance](/lovelace/picture-glance/). By default it uses [entities](/lovelace/entities/) card model.
+
+
+
+Screenshot of the entity filter card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: entity-filter
+ type: string
+entities:
+ required: true
+ description: Array of entity_ids
+ type: array
+state_filter:
+ required: true
+ description: Array of strings representing states
+ type: array
+card:
+ required: false
+ description: Extra options to pass down to the card rendering the result.
+ type: object
+ default: entities type
+show_empty:
+ required: false
+ description: Allows hiding of card when no entities returned by filter.
+ type: boolean
+ default: true
+{% endconfiguration %}
+
+{% linkable_title Examples %}
+
+Show only active switches or lights in the house
+```yaml
+- type: entity-filter
+ entities:
+ - entity: light.bed_light
+ name: Bed
+ - light.kitchen_lights
+ - light.ceiling_lights
+ state_filter:
+ - 'on'
+ card:
+ title: Eating power
+```
+
+Show only people that are at home using [glance](/lovelace/glance/):
+
+```yaml
+- type: entity-filter
+ entities:
+ - device_tracker.demo_paulus
+ - device_tracker.demo_anne_therese
+ - device_tracker.demo_home_boy
+ state_filter:
+ - 'home'
+ card:
+ type: glance
+ title: People at home
+```
+
+
+
+Screenshot of the entity filter used on a Glance card.
+
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index 9d2511eada0..eb90fdbd7ca 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -10,17 +10,78 @@ sharing: true
footer: true
---
-A card that allows you to see see a list of entities at a glance.
+Glance cards are a very compact. Very useful to group together multiple sensors for a quick and easy to use view. Keep in mind that this can be used together with [entity-filter](/lovelace/entity-filter/) cards to create dynamic cards.
-| Name | Type | Default | Description
-| ---- | ---- | ------- | -----------
-| type | string | **Required** | `glance`
-| entities | list | **Required** | Entity id's
-| title | string | Optional | Card title
+
+
+Screenshot of the glance card.
+
-Each entry in the list of entities is either an entity ID or an entity option object. The entity option object can have the following options:
+{% linkable_title Options %}
-| Name | Type | Default | Description
-| ---- | ---- | ------- | -----------
-| entity | entity id | **Required** | The ID of the entity to show.
-| title | string | Optional | The title to use instead of the entity name.
+{% configuration %}
+type:
+ required: true
+ description: glance
+ type: string
+entities:
+ required: true
+ description: "Entity id's or an `entity` object (see structure below)."
+ type: list
+title:
+ required: false
+ description: Card title
+ type: string
+ default: none
+{% endconfiguration %}
+
+`entity` object type
+
+{% configuration %}
+entity:
+ required: true
+ description: "An entity_id. Example: 'device_tracker.demo_paulus'."
+ type: string
+name:
+ required: true
+ description: A new name for the entity_id
+ type: string
+{% endconfiguration %}
+
+{% linkable_title Examples %}
+
+Basic example
+
+```yaml
+- type: glance
+ title: Glance card sample
+ entities:
+ - binary_sensor.movement_backyard
+ - light.bed_light
+ - binary_sensor.basement_floor_wet
+ - sensor.outside_temperature
+ - light.ceiling_lights
+ - switch.ac
+ - lock.kitchen_door
+```
+
+
+
+Screenshot of the glance card with custom title.
+
+
+Example with custom name
+
+```yaml
+- type: glance
+ title: Better names
+ entities:
+ - entity: binary_sensor.movement_backyard
+ name: Movement?
+ - light.bed_light
+ - binary_sensor.basement_floor_wet
+ - sensor.outside_temperature
+ - light.ceiling_lights
+ - switch.ac
+ - lock.kitchen_door
+```
diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown
new file mode 100644
index 00000000000..41c53201d21
--- /dev/null
+++ b/source/_lovelace/history-graph.markdown
@@ -0,0 +1,56 @@
+---
+layout: page
+title: "History Graph Card"
+sidebar_label: History Graph
+description: "History graph is a basic card, allowing you to display a graph for each of the entities in the list specified as config."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+History graph is a basic card, allowing you to display a graph for each of the entities in the list specified as config.
+
+
+
+Screenshot of the history graph card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: history-graph
+ type: string
+entities:
+ required: true
+ description: List of entities to graph.
+ type: list
+hours_to_show:
+ required: false
+ description: Hours to show
+ type: integer
+ default: 24
+refresh_interval:
+ required: false
+ description: Refresh interval in seconds
+ type: integer
+ default: 0
+title:
+ required: false
+ description: Card title
+ type: string
+ default: none
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: history-graph
+ title: 'My Graph'
+ entities:
+ - sensor.outside_temperature
+ - media_player.lounge_room
+```
diff --git a/source/_lovelace/horizontal-stack.markdown b/source/_lovelace/horizontal-stack.markdown
new file mode 100644
index 00000000000..5de229372aa
--- /dev/null
+++ b/source/_lovelace/horizontal-stack.markdown
@@ -0,0 +1,46 @@
+---
+layout: page
+title: "Horizontal Stack Card"
+sidebar_label: Horizontal Stack
+description: "Horizontal stack card will allow you to stack together multiple cards so they always sit next to each other in the space of one column."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Horizontal stack card will allow you to stack together multiple cards so they always sit next to each other in the space of one column.
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: horizontal-stack
+ type: string
+cards:
+ required: true
+ description: List of cards
+ type: list
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+Basic example
+
+```yaml
+- type: horizontal-stack
+ cards:
+ - type: picture-entity
+ image: https://images.pexels.com/photos/164595/pexels-photo-164595.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=240&w=495
+ entity: light.ceiling_lights
+ - type: picture-entity
+ image: https://images.pexels.com/photos/545012/pexels-photo-545012.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=240&w=495
+ entity: light.bed_light
+```
+
+
+
+Screenshot of the 2 cards in a horizontal stack card.
+
diff --git a/source/_lovelace/iframe.markdown b/source/_lovelace/iframe.markdown
new file mode 100644
index 00000000000..99080d33fcc
--- /dev/null
+++ b/source/_lovelace/iframe.markdown
@@ -0,0 +1,58 @@
+---
+layout: page
+title: "iFrame Card"
+sidebar_label: iFrame
+description: "Iframe cards are useful to embed outside websites in your dashboard with little effort. One such example is a grafana view."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Iframe cards are useful to embed outside websites in your dashboard with little effort. One such example is a grafana view. You can also embed files stored in your `config/www` folder and reference them using `/local/`.
+
+
+
+Screenshot of the iframe card.
+
+
+> Make sure the URL you're embedding has the right protocol and allows to be embedded in an iframe on a different domain. For example if your Home Assistant setup uses https you won't be able to embed http URLs
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: iframe
+ type: string
+url:
+ required: true
+ description: iframe source url
+ type: string
+aspect_ratio:
+ required: false
+ description: Iframe height-width-ratio
+ type: string
+ default: "50%"
+title:
+ required: false
+ description: Card title
+ type: string
+ default: none
+{% endconfiguration %}
+
+{% linkable_title Examples %}
+
+```yaml
+ - type: iframe
+ url: https://worldpingdemo.grafana.net/d/000000027/worldping-endpoint-summary?var-endpoint=www_amazon_com&var-probe=All&panelId=2&fullscreen&orgId=3&theme=light
+ aspect_ratio: 100%
+```
+
+Local html for custom content. Place `example.html` in your `config/www` folder and reference it as below:
+```yaml
+ - type: iframe
+ url: /local/example.html
+ title: Sample local file
+```
diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown
new file mode 100644
index 00000000000..63b57ffebbc
--- /dev/null
+++ b/source/_lovelace/map.markdown
@@ -0,0 +1,66 @@
+---
+layout: page
+title: "Map Card"
+sidebar_label: Map
+description: "A card that allows you to display entities on a map"
+date: 2018-07-08 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+A card that allows you to display entities on a map
+
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: markdown
+ type: string
+content:
+ required: true
+ description: Content to render as [markdown](http://commonmark.org/help/).
+ type: string
+title:
+ required: false
+ description: Card title
+ type: string
+ default: none
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: markdown
+ content: >
+ ## Lovelace
+
+ Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface. We're calling it the **Lovelace UI**.
+```
diff --git a/source/_lovelace/media-control.markdown b/source/_lovelace/media-control.markdown
new file mode 100644
index 00000000000..276ee00ee41
--- /dev/null
+++ b/source/_lovelace/media-control.markdown
@@ -0,0 +1,38 @@
+---
+layout: page
+title: "Media Control Card"
+sidebar_label: Media Control
+description: "The media controller card is used to display Media Player entities on an interface with easy to use controls. "
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+The media control card is used to display [Media Player](/components/#search/media-player) entities on an interface with easy to use controls.
+
+
+
+Screenshot of the media player control card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: media-control
+ type: string
+entity:
+ required: true
+ description: "Entity id of `media_player` domain"
+ type: string
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: media-control
+ entity: media_player.lounge_room
+```
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
new file mode 100644
index 00000000000..ad0a0f09c4f
--- /dev/null
+++ b/source/_lovelace/picture-elements.markdown
@@ -0,0 +1,202 @@
+---
+layout: page
+title: "Picture Elements Card"
+sidebar_label: Picture Elements
+description: "Picture elements card is one of the most versatile type of cards"
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Picture elements card is one of the most versatile type of cards.
+
+The cards allows you to position icons or text and even services! on an image based on coordinates. Imagine floor plan, imagine [picture-glance](/lovelace/picture-glance/) with no restrictions!
+
+You can customize tap action and even icon color.
+
+
+
+Screenshot of the picture elements card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: picture-elements
+ type: string
+image:
+ required: true
+ description: URL of an image
+ type: string
+elements:
+ required: true
+ description: List of elements
+ type: list
+title:
+ required: false
+ description: Card title
+ type: string
+ default: none
+{% endconfiguration %}
+
+Element types:
+
+{% configuration %}
+type:
+ required: true
+ description: navigation
+ type: string
+navigation_path:
+ required: true
+ description: navigation_path of URL to navigate to
+ type: string
+icon:
+ required: false
+ description: Icon
+ type: string
+ default: none
+{% endconfiguration %}
+
+{% configuration %}
+type:
+ required: true
+ description: state-badge
+ type: string
+entity:
+ required: true
+ description: Entity id
+ type: string
+style:
+ required: true
+ description: See "Style options"
+ type: object
+{% endconfiguration %}
+
+{% configuration %}
+type:
+ required: true
+ description: state-icon
+ type: string
+entity:
+ required: true
+ description: Entity id
+ type: string
+style:
+ required: true
+ description: See "Style options"
+ type: object
+tap_action:
+ required: true
+ description: "Set to `toggle` to change state"
+ type: string
+ default: more-info
+{% endconfiguration %}
+
+{% configuration %}
+type:
+ required: true
+ description: state-label
+ type: string
+entity:
+ required: true
+ description: Entity id
+ type: string
+style:
+ required: true
+ description: See "Style options"
+ type: object
+{% endconfiguration %}
+
+{% configuration %}
+type:
+ required: true
+ description: service-button
+ type: string
+service:
+ required: true
+ description: light.turn_on
+ type: string
+service_data:
+ required: false
+ description: "See `service_data` object structure."
+ type: object
+ default: none
+style:
+ required: true
+ description: See "Style options"
+ type: object
+title:
+ required: false
+ description: Button label
+ type: string
+ default: none
+{% endconfiguration %}
+
+`service_data` object structure
+
+{% configuration %}
+entity_id:
+ required: true
+ description: light.floor
+ type: string
+{% endconfiguration %}
+
+Style options (CSS):
+
+{% configuration %}
+left:
+ required: true
+ description: Position from left, "25%"
+ type: string
+top:
+ required: true
+ description: Position from top, "50%"
+ type: string
+...:
+ required: inherit
+ description: ...
+ type: string
+ default: none
+"--paper-item-icon-color":
+ required: inherit
+ description: "Badge-icon off-color, `green`"
+ type: string
+ default: none
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: picture-elements
+ image: https://static.vecteezy.com/system/resources/previews/000/102/594/large_2x/free-floor-plan-vector.jpg
+ elements:
+ - type: state-icon
+ tap_action: toggle
+ entity: light.ceiling_lights
+ style:
+ top: 47%
+ left: 42%
+ - type: state-icon
+ tap_action: toggle
+ entity: light.kitchen_lights
+ style:
+ top: 30%
+ left: 15%
+ - type: state-label
+ entity: sensor.outside_temperature
+ style:
+ top: 82%
+ left: 79%
+ - type: service-button
+ title: Turn lights off
+ style:
+ top: 95%
+ left: 60%
+ service: light.turn_off
+ service_data:
+ entity_id: group.all_lights
+```
diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown
new file mode 100644
index 00000000000..60fc038ed2b
--- /dev/null
+++ b/source/_lovelace/picture-entity.markdown
@@ -0,0 +1,121 @@
+---
+layout: page
+title: "Picture Entity Card"
+sidebar_label: Picture Entity
+description: "A very useful card for controling entities. By default you will get `more-info-dialog` but using `tap_action` you can directly control entities that have `on`/`off` states."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+A very useful card for controling entities. By default you will get `more-info-dialog` but using `tap_action` you can directly control entities that have `on`/`off` states. It allows you to generate a very nice looking card with a big touch area, highly recommended for mobile dashboards on small screens.
+
+You can use different image combination to get a more realistic view for images with lights. The image setup also allows enough flexibility to get your garage picture with the door opened and closed.
+
+You can also use `camera` domain entities to use that as `camera_image`.
+
+
+
+Screenshot of the picture entity card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: picture-entity
+ type: string
+entity:
+ required: true
+ description: Entity id to control via picture.
+ type: string
+camera_image:
+ required: false
+ description: "Camera domain entity_id 'camera.demo_camera'"
+ type: string
+ default: None
+image:
+ required: false
+ description: URL of an image.
+ type: string
+ default: None
+state_image:
+ required: false
+ description: "See `state_image` object structure."
+ type: object
+ default: None
+name:
+ required: false
+ description: Custom name for entity
+ type: string
+ default: None
+show_info:
+ required: false
+ description: Set to false to hide infobar
+ type: boolean
+ default: True
+tap_action:
+ required: false
+ description: "Set to `toggle` for turning entity on/off without opening a dialog"
+ type: string
+ default: dialog
+{% endconfiguration %}
+
+`state_image` object structure
+
+{% configuration %}
+"on":
+ required: true
+ description: URL of an image used for on state.
+ type: string
+ default: None
+"off":
+ required: true
+ description: URL of an image used for off state.
+ type: string
+ default: None
+home:
+ required: false
+ description: URL of an image used for home state.
+ type: string
+ default: None
+not_home:
+ required: false
+ description: URL of an image used for not_home state.
+ type: string
+ default: None
+any:
+ required: false
+ description: Any state that is supported by the entity works
+ type: object
+ default: None
+{% endconfiguration %}
+
+{% linkable_title Examples %}
+
+Basic example:
+
+```yaml
+- type: picture-entity
+ image: https://images.pexels.com/photos/775219/pexels-photo-775219.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=295&w=490
+ entity: light.bed_light
+```
+
+
+
+Screenshot of the picture entity card.
+
+
+Example with night/day:
+
+```yaml
+- type: picture-entity
+ entity: light.bed_light
+ image: http://farm7.static.flickr.com/6153/6220100622_88e64ec5d8_b.jpg
+ state_image:
+ "on": http://farm7.static.flickr.com/6220/6220100616_a877f41a66_b.jpg
+ title: Livingroom lights
+```
diff --git a/source/_lovelace/picture-glance.markdown b/source/_lovelace/picture-glance.markdown
new file mode 100644
index 00000000000..5c22ecd72dc
--- /dev/null
+++ b/source/_lovelace/picture-glance.markdown
@@ -0,0 +1,92 @@
+---
+layout: page
+title: "Picture Glance Card"
+sidebar_label: Picture Glance
+description: "A very useful type of card that can display sensors, switches, lights and other entities grouped on top of a custom image. Use this card for easy visual recognition inside a large dashboard."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+### Picture glance
+
+A very useful type of card that can display sensors, switches, lights and other entities grouped on top of a custom image. Use this card for easy visual recognition inside a large dashboard. You also can add `navigation_path` to take the user to a specific view and use these cards in an overview dashboard.
+
+What really sets this card apart is the ability to **control** entities directly from the card without the need to open the details of that entity.
+
+You can also use `camera` domain entities to use that as image. You can also use `state_image` just like in [picture-entity](/lovelace/picture-entity/) together with an `entity` entry to change the image in a dynamic way.
+
+> Picture glance supports a display of maximum 10 items.
+
+
+
+Screenshot of the picture glance card.
+
+
+**Options**
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| type | string | **Required** | `picture-glance`
+| image | string | **Required** | URL of an image
+| entities | list | **Required** | Entity id's
+| navigation_path | string | Optional | Path of URL to use in navigation
+| camera_image | string | Optional | camera domain entity_id 'camera.demo_camera'
+| state_image | object | Optional| See `state_image` object structure.
+| entity | list | Optional | An entity to use for state_image state
+| title | string | Optional | Card title
+
+`state_image` object structure
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| on | string | Optional | URL of an image used for on state.
+| off | string | Optional | URL of an image used for off state.
+| home | string | Optional | URL of an image used for home state.
+| not_home | string | Optional | URL of an image used for not_home state.
+| ... | string | Optional | Any state that is supported by the entity works
+
+**Examples**
+
+```yaml
+- type: picture-glance
+ image: https://images.pexels.com/photos/276724/pexels-photo-276724.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=240&w=495
+ title: Living
+ entities:
+ - switch.decorative_lights
+ - light.ceiling_lights
+ - lock.front_door
+ - binary_sensor.movement_backyard
+ - binary_sensor.basement_floor_wet
+```
+
+Picture glance used together with 'camera_image'
+```yaml
+- type: picture-glance
+ image:
+ camera_image: camera.demo_camera
+ title: Living
+ entities:
+ - switch.decorative_lights
+ - light.ceiling_lights
+ - lock.front_door
+ - binary_sensor.movement_backyard
+ - binary_sensor.basement_floor_wet
+```
+
+Picture glance used together with 'entity-filter'
+```yaml
+- type: entity-filter
+ entities:
+ - light.bed_light
+ - light.kitchen_lights
+ - light.ceiling_lights
+ state_filter:
+ - 'on'
+ card: picture-glance
+ card_config:
+ title: Lights
+ image: https://images.pexels.com/photos/356048/pexels-photo-356048.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=295&w=490
+```
diff --git a/source/_lovelace/picture.markdown b/source/_lovelace/picture.markdown
new file mode 100644
index 00000000000..0517527fc31
--- /dev/null
+++ b/source/_lovelace/picture.markdown
@@ -0,0 +1,78 @@
+---
+layout: page
+title: "Picture Card"
+sidebar_label: Picture
+description: "A very simple card that allows you to set an image to use for navigation to various paths in your interface or to call a service."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+A very simple card that allows you to set an image to use for navigation to various paths in your interface or to call a service.
+
+
+
+Screenshot of the picture card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: picture
+ type: string
+image:
+ required: true
+ description: URL of an image
+ type: string
+navigation_path:
+ required: false
+ description: Path of URL to navigate to
+ type: string
+ default: None
+service:
+ required: false
+ description: "`light.toggle`"
+ type: string
+ default: None
+service_data:
+ required: false
+ description: See service_data object
+ type: object
+ default: None
+{% endconfiguration %}
+
+`service_data` object structure
+
+{% configuration %}
+entity_id:
+ required: true
+ description: light.floor
+ type: string
+{% endconfiguration %}
+
+
+{% linkable_title Examples %}
+
+Basic navigation example:
+
+```yaml
+- type: picture
+ image: /local/exit.jpg
+ navigation_path: /lovelace/arsaboo
+```
+
+> Check the [views](/lovelace/views/) setup on how to setup custom ids
+
+Basic navigation example:
+
+```yaml
+- type: picture
+ image: /local/exit.jpg
+ service: light.toggle
+ service_data:
+ entity_id: light.ceiling_lights
+```
diff --git a/source/_lovelace/plant-status.markdown b/source/_lovelace/plant-status.markdown
new file mode 100644
index 00000000000..11f791b6499
--- /dev/null
+++ b/source/_lovelace/plant-status.markdown
@@ -0,0 +1,38 @@
+---
+layout: page
+title: "Plant Status Card"
+sidebar_label: Plant Status
+description: "The Plant card gives you an easy way of viewing the status of your plants"
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+A card for all the lovely botanists out there.
+
+
+
+Screenshot of the plant status card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: picture-status
+ type: string
+entity:
+ required: true
+ description: "Entity id of `plant` domain"
+ type: string
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+```yaml
+- type: plant-status
+ entity: plant.bonsai
+```
diff --git a/source/_lovelace/vertical-stack.markdown b/source/_lovelace/vertical-stack.markdown
new file mode 100644
index 00000000000..737e3fbe46e
--- /dev/null
+++ b/source/_lovelace/vertical-stack.markdown
@@ -0,0 +1,68 @@
+---
+layout: page
+title: "Vertical Stack Card"
+sidebar_label: Vertical Stack
+description: "The Vertical Stack card allows you to stack multiple cards together"
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Stack card will allow you to stack together multiple cards so they always sit together in the same column one on top of the other. Keep in mind this can be used with any cards, and even used alongside a [horizontal-stack](/lovelace/horizontal-stack/).
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: vertical-stack
+ type: string
+cards:
+ required: true
+ description: List of cards
+ type: list
+{% endconfiguration %}
+
+{% linkable_title Example %}
+
+Basic example
+```yaml
+- type: vertical-stack
+ cards:
+ - type: picture-entity
+ entity: camera.demo_camera
+ show_info: false
+ - type: entities
+ entities:
+ - binary_sensor.movement_backyard
+```
+
+
+
+Screenshot of the vertical stack and horizontal stack combined in a card.
+
diff --git a/source/_lovelace/weather-forecast.markdown b/source/_lovelace/weather-forecast.markdown
new file mode 100644
index 00000000000..4a1a17cd4c3
--- /dev/null
+++ b/source/_lovelace/weather-forecast.markdown
@@ -0,0 +1,39 @@
+---
+layout: page
+title: "Weather Forecast Card"
+sidebar_label: Weather Forecast
+description: "The Weather card allows you a visual card to display the weather."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+Weather forecast is a card to display the weather. Very useful to include on interfaces that people display on the wall.
+
+
+
+Screenshot of the weather card.
+
+
+{% linkable_title Options %}
+
+{% configuration %}
+type:
+ required: true
+ description: weather-forecast
+ type: string
+entity:
+ required: true
+ description: "Entity id of `weather` domain"
+ type: string
+{% endconfiguration %}
+
+
+{% linkable_title Example %}
+
+```yaml
+- type: weather-forecast
+ entity: weather.demo_weather_north
+```
diff --git a/source/_posts/2018-07-06-release-73.markdown b/source/_posts/2018-07-06-release-73.markdown
index b7fbedade39..2f08a40ce8b 100644
--- a/source/_posts/2018-07-06-release-73.markdown
+++ b/source/_posts/2018-07-06-release-73.markdown
@@ -11,13 +11,13 @@ categories: Release-Notes
og_image: /images/blog/2018-07-0.73/lovelace-elements.png
---
-Today we're releasing Home Assistant 0.73. First, let's talk security. Home Assistant has a lot of power. It can control all devices in your house and know what you're up to. That's why securing it is very important. It's not good enough to connect your instance unsecured to the internet and hope no one will find it. All ports on all computers are regularly scanned by bad actors. Please read [our guidelines thoroughly](https://www.home-assistant.io/docs/configuration/securing/) and follow them.
+Today we're releasing Home Assistant 0.73. First, let's talk security. Home Assistant has a lot of power. It can control all devices in your house and know what you're up to. That's why securing it is very important. It's absolutely wrong to connect your instance unsecured to the internet and hope no one will find it. All ports on all computers are regularly scanned by bad actors. Please read [our guidelines thoroughly](https://www.home-assistant.io/docs/configuration/securing/) and follow them.
In the meanwhile, we're also working hard on the new authentication system. A preview version is included in this release, more info on [our developer blog](https://developers.home-assistant.io/blog/2018/07/02/trying-new-auth.html).
This release also includes a TON of love for the new Lovelace UI. Yes, it's still experimental but daaang, it's already so awesome that you should probably just go ahead and try it out. Thanks to all the devs who have jumped on this: [@c727], [@ciotlosm] and [@jeradM].
-We don't have time to go through all the changes in this release, but [@ciotlosm] has been keeping [a very detailed changelog](https://github.com/ciotlosm/docs-lovelace/blob/0.73.0/changelog.md). I'll just leave this screenshot by [@arsaboo] of the new picture-elements card and [the Lovelace configuration](https://github.com/arsaboo/homeassistant-config/blob/master/ui-lovelace.yaml#L15-L158):
+We don't have time to go through all the changes in this release, but [@ciotlosm] has been keeping [a very detailed changelog](/lovelace/changelog/). I'll just leave this screenshot by [@arsaboo] of the new picture-elements card and [the Lovelace configuration](https://github.com/arsaboo/homeassistant-config/blob/master/ui-lovelace.yaml#L15-L158):
@@ -42,13 +42,14 @@ Experiencing issues introduced by this release? Please report them in our [issue
## {% linkable_title Breaking Changes %}
-- Update to hole to 0.3.0 ([@fabaff] - [#15014]) ([sensor.pi_hole docs]) (breaking change)
-- Update PostNL unit of measure to align with UPS ([@keesschollaart81] - [#15023]) ([sensor.postnl docs]) (breaking change)
-- Make Pollen.com platform async ([@bachya] - [#14963]) ([sensor.pollen docs]) (breaking change)
-- Adding 'namespace' for prometheus metrics ([@alexbarcelo] - [#13738]) ([prometheus docs]) (breaking change)
-- Fix zwave climate operation mode mappings ([@cdce8p] - [#15162]) ([climate.zwave docs]) (breaking change)
-- X-Forwarded-For improvements and bug fixes ([@colinodell] - [#15204]) ([emulated_hue docs]) ([http docs]) (breaking change)
+- The `pi_hole` sensor is now limited to `ads_blocked_today` by default and will no longer show all available data. Use [`monitored_conditions`](/components/sensor.pi_hole/#monitored_conditions) to list the sensors you want. ([@fabaff] - [#15014]) ([sensor.pi_hole docs]) (breaking change)
+- Update PostNL unit of measure to `packages` to align with UPS ([@keesschollaart81] - [#15023]) ([sensor.postnl docs]) (breaking change)
+- Various attributes have been relocated to sensors that make more sense; additionally, some names are corrected. More info in [#14963] ([@bachya] - [#14963]) ([sensor.pollen docs]) (breaking change)
+- The filter option for prometheus was aligned with other components ([@alexbarcelo] - [#13738]) ([prometheus docs]) (breaking change)
+- Change some operation_modes for Z-Wave climate devices to comply with Home Assistant standards and compatibility with Google Home, Alexa and HomeKit. ([@cdce8p] - [#15162]) ([climate.zwave docs]) (breaking change)
+- HTTP component: Anyone who has enabled `use_x_forwarded_for` will need to explicitly whitelist their proxy/proxies using the new `trusted_proxies` setting. ([@colinodell] - [#15204]) ([emulated_hue docs]) ([http docs]) (breaking change)
- Stop supporting deprecated TLS ciphers ([@hmmbob] - [#15217]) ([http docs]) (breaking change)
+- LIFX will no longer report `hs_color`/`rgb_color` and `color_temp` simultaneously. ([@amelchio] - [#15234]) ([light.lifx docs]) (breaking change) (beta fix)
## {% linkable_title Beta Fixes %}
diff --git a/source/images/lovelace/lovelace_entity_filter.png b/source/images/lovelace/lovelace_entity_filter.png
new file mode 100644
index 00000000000..0f873ad2ad6
Binary files /dev/null and b/source/images/lovelace/lovelace_entity_filter.png differ
diff --git a/source/images/lovelace/lovelace_entity_filter_glance.png b/source/images/lovelace/lovelace_entity_filter_glance.png
new file mode 100644
index 00000000000..c4d7ed37104
Binary files /dev/null and b/source/images/lovelace/lovelace_entity_filter_glance.png differ
diff --git a/source/images/lovelace/lovelace_glance_card.png b/source/images/lovelace/lovelace_glance_card.png
new file mode 100644
index 00000000000..179633f2c94
Binary files /dev/null and b/source/images/lovelace/lovelace_glance_card.png differ
diff --git a/source/images/lovelace/lovelace_glance_card_custom_title.png b/source/images/lovelace/lovelace_glance_card_custom_title.png
new file mode 100644
index 00000000000..a0ca1f8e9ea
Binary files /dev/null and b/source/images/lovelace/lovelace_glance_card_custom_title.png differ
diff --git a/source/images/lovelace/lovelace_history_graph.png b/source/images/lovelace/lovelace_history_graph.png
new file mode 100644
index 00000000000..5a602955075
Binary files /dev/null and b/source/images/lovelace/lovelace_history_graph.png differ
diff --git a/source/images/lovelace/lovelace_horizontal_stack.PNG b/source/images/lovelace/lovelace_horizontal_stack.PNG
new file mode 100644
index 00000000000..c8b9625eaf5
Binary files /dev/null and b/source/images/lovelace/lovelace_horizontal_stack.PNG differ
diff --git a/source/images/lovelace/lovelace_iframe.png b/source/images/lovelace/lovelace_iframe.png
new file mode 100644
index 00000000000..958824a5283
Binary files /dev/null and b/source/images/lovelace/lovelace_iframe.png differ
diff --git a/source/images/lovelace/lovelace_map_card.png b/source/images/lovelace/lovelace_map_card.png
new file mode 100644
index 00000000000..9325ef07951
Binary files /dev/null and b/source/images/lovelace/lovelace_map_card.png differ
diff --git a/source/images/lovelace/lovelace_markdown.png b/source/images/lovelace/lovelace_markdown.png
new file mode 100644
index 00000000000..dd432a6abd4
Binary files /dev/null and b/source/images/lovelace/lovelace_markdown.png differ
diff --git a/source/images/lovelace/lovelace_mediaplayer.png b/source/images/lovelace/lovelace_mediaplayer.png
new file mode 100644
index 00000000000..2d34d42db8f
Binary files /dev/null and b/source/images/lovelace/lovelace_mediaplayer.png differ
diff --git a/source/images/lovelace/lovelace_picture.png b/source/images/lovelace/lovelace_picture.png
new file mode 100644
index 00000000000..8de121e63aa
Binary files /dev/null and b/source/images/lovelace/lovelace_picture.png differ
diff --git a/source/images/lovelace/lovelace_picture_elements.gif b/source/images/lovelace/lovelace_picture_elements.gif
new file mode 100644
index 00000000000..f38fe5c41fb
Binary files /dev/null and b/source/images/lovelace/lovelace_picture_elements.gif differ
diff --git a/source/images/lovelace/lovelace_picture_entity.gif b/source/images/lovelace/lovelace_picture_entity.gif
new file mode 100644
index 00000000000..8b5ee294643
Binary files /dev/null and b/source/images/lovelace/lovelace_picture_entity.gif differ
diff --git a/source/images/lovelace/lovelace_picture_entity_2.gif b/source/images/lovelace/lovelace_picture_entity_2.gif
new file mode 100644
index 00000000000..3f24d0ba9c9
Binary files /dev/null and b/source/images/lovelace/lovelace_picture_entity_2.gif differ
diff --git a/source/images/lovelace/lovelace_picture_glance.gif b/source/images/lovelace/lovelace_picture_glance.gif
new file mode 100644
index 00000000000..01c94165552
Binary files /dev/null and b/source/images/lovelace/lovelace_picture_glance.gif differ
diff --git a/source/images/lovelace/lovelace_plant.png b/source/images/lovelace/lovelace_plant.png
new file mode 100644
index 00000000000..6a209e5d21d
Binary files /dev/null and b/source/images/lovelace/lovelace_plant.png differ
diff --git a/source/images/lovelace/lovelace_plant_card.png b/source/images/lovelace/lovelace_plant_card.png
new file mode 100644
index 00000000000..6a209e5d21d
Binary files /dev/null and b/source/images/lovelace/lovelace_plant_card.png differ
diff --git a/source/images/lovelace/lovelace_unused_entites.png b/source/images/lovelace/lovelace_unused_entites.png
new file mode 100644
index 00000000000..eb82dde1adb
Binary files /dev/null and b/source/images/lovelace/lovelace_unused_entites.png differ
diff --git a/source/images/lovelace/lovelace_vertical-horizontal-stack.png b/source/images/lovelace/lovelace_vertical-horizontal-stack.png
new file mode 100644
index 00000000000..9efe7ed0dc9
Binary files /dev/null and b/source/images/lovelace/lovelace_vertical-horizontal-stack.png differ
diff --git a/source/images/lovelace/lovelace_vertical-stack.png b/source/images/lovelace/lovelace_vertical-stack.png
new file mode 100644
index 00000000000..e24e9baad2f
Binary files /dev/null and b/source/images/lovelace/lovelace_vertical-stack.png differ
diff --git a/source/images/lovelace/lovelace_views.gif b/source/images/lovelace/lovelace_views.gif
new file mode 100644
index 00000000000..89b7513f326
Binary files /dev/null and b/source/images/lovelace/lovelace_views.gif differ
diff --git a/source/images/lovelace/lovelace_weather.png b/source/images/lovelace/lovelace_weather.png
new file mode 100644
index 00000000000..808038b63ab
Binary files /dev/null and b/source/images/lovelace/lovelace_weather.png differ
diff --git a/source/lovelace/changelog.markdown b/source/lovelace/changelog.markdown
new file mode 100644
index 00000000000..c109e872b20
--- /dev/null
+++ b/source/lovelace/changelog.markdown
@@ -0,0 +1,100 @@
+---
+layout: page
+title: "Lovelace Changelog"
+description: "Changelog of the Lovelace UI."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+## Changes in 0.73.1
+- Setting Lovelace as default now updates `Overview` button to point to `/lovelace`
+- Allow setting background styles (global and per view)
+
+### Cards
+- π£ New card: `map` that allows showing `device_tracker` entities on a map card
+- π£ `entities` card now support `type: custom:state-card-custom` for the entities list
+
+## Changes in 0.73.0
+
+### Views
+- π£ New button to show unused entities in Lovelace
+
+## Changes in 0.73.0b5
+- π Only minor fixes in this release
+
+## Changes in 0.73.0b4
+
+### Cards
+- π£ `picture-entity` allow hiding of infobar using `show_info: false`
+- π£ `picture-entity` now supports `tap_action` parameter allowing you to switch from `on`/`off` to `more-info-dialog`
+- π£ `picture-glance` now supports `navigation_path`
+- `picture-entity` renamed `title` to `name`
+- `picture-elements` renamed `path` to `navigation_path`
+- βΌοΈ `camera-preview` card removed, features added to `picture-entity` and `picture-glance`
+
+## Changes in 0.73.0b3
+
+### Views
+- π£ Added panel mode for a view to use 1st card to fill whole screen
+
+### Cards
+- π£ New card: `picture` for triggering navigation and services
+- π£ `picture-elements` now supports `navigation` type
+- π£ `picture-entity` now supports `camera_image`
+- π£ `picture-glance` now supports `camera_image`
+- π£ `picture-glance` now supports `state_image` and `entity` like `picture-entity`
+- π£ `entity-filter` now supports custom name for entities like `glance` and `entities`
+- `entities` and `glance` custom titles now use `name` not `title`
+- `entity-filter` now uses `entities` as a static list to filter state against
+- `entity-filter` uses `state_filter` array instead of `filter` object
+- π§ Fix wrapping and padding for `service-button` in `picture-elements`
+- βΌοΈ `entity-filter` no longer allows to show all entities or a full domain
+
+## Changes in 0.73.0b2
+- :zap: Went by too fast :zap:
+
+## Changes in 0.73.0b1
+
+### Cards
+- `column` renamed to `vertical-stack`
+- `row` renamed to `horizontal-stack`
+- `picture-elements` new `state-badge` using `ha-state-label-badge`
+- `picture-elements` renamed `state-badge` to `state-icon`
+- `picture-elements` renamed `state-text` to `state-label`
+- `picture-elements` moved/renamed `service.data` to `service_data`
+- `picture-elements` combined `service.domain` and `service.server` into `service`
+- π£ `entities` allow custom title just like `glance`
+- π£ `entity-filter` allow auto-hide if empty using `show_empty: false`
+- π§ Fix card size calculation `horizontal-stack`/`vertical-stack`
+
+## Changes in 0.73.0b0
+- π£ New feature to allow Lovelace to be default for `/`
+
+### Views
+- π£ Now views have deep-links: `/lovelace/3` will link to the tab with id `3`
+- `name` renamed `title` to match cards setup
+- `tab_icon` renamed `icon` for simplicity
+
+### Cards
+- π£ New card: `picture-elements`
+- π£ New card: `column`
+- π£ New card: `row`
+- π£ `glance` allow custom title for entities - rename your entity only in this card
+- π£ `entities` toggle button in header can now be hidden using `show_header_toggle: false`
+- `entity-picture` renamed `picture-entity` to be consistent with `picture-glance`
+- `entity-filter` removed `card_config` and made `card` property an object
+- π§ Fix use of groups in `picture-entity`
+- π§ Fix title in `glance` to avoid overlapping
+
+## Changes in 0.72.1
+
+### Cards
+- π Bug introduced in `glance` card - titles now overlap
+- π£ New card: `iframe`
+
+## Changes in 0.72
+- Initial release of the Lovelace UI
+
diff --git a/source/lovelace/index.markdown b/source/lovelace/index.markdown
index b744540e5ad..b80bf2e3f8b 100644
--- a/source/lovelace/index.markdown
+++ b/source/lovelace/index.markdown
@@ -9,7 +9,7 @@ sharing: true
footer: true
---
-
+
This is an experimental feature. Configuration might change in future versions.
@@ -19,9 +19,13 @@ The Lovelace UI is:
- **Extremely fast**. We create the user interface when the UI configuration changes. When a state changes, we just make the UI represent the current state.
- **Extremely customizable**. We have a new file for just configuration. In the past, we declined UI specific options because they did not fit in the state machine. They will fit in a configuration file for a user interface.
- - **Extremely extensible**. It's based on the web standard [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements). Don't like the built-in cards? Make your own! Custom cards are treated the same as built-in cards and are configured the same way. [Check the docs.](lovelace_custom_card.md)
+ - **Extremely extensible**. It's based on the web standard [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements). Don't like the built-in cards? Make your own! Custom cards are treated the same as built-in cards and are configured the same way. [Check the docs.](https://developers.home-assistant.io/docs/en/lovelace_custom_card.html)
- **Making the backend faster**. With Lovelace, the backend will no longer need to maintain entities like groups for the sole purpose of showing them on the frontend.
+
+
+
+
## How it works
The old user interface relied solely on the state machine. This caused trouble as it meant that the state machine was now not only the source for device states, but also for user interface configuration. With Lovelace, we're taking a completely different approach. All user interface configuration will live in a seperate file, controlled by the user.
@@ -37,12 +41,15 @@ Visual comparison of old configuration versus new configuration
## Trying it out
-Create a new file `/ui-lovelace.yaml` and add the following content:
+Create a new file `/ui-lovelace.yaml` and add the following content. Adjust the entity names to entities that exist in your Home Assistant installation.
```yaml
title: My Awesome Home
# Optional background for all views. Check https://developer.mozilla.org/en-US/docs/Web/CSS/background for more examples.
background: center / cover no-repeat url("/background.png") fixed
+# Exclude entities from "Unused entities" view
+excluded_entities:
+ - weblink.router
views:
# View tab title.
- title: Example
@@ -54,58 +61,53 @@ views:
theme: dark-mode
# The cards to show on this view.
cards:
- # The entities card will take a list of entities and show their state.
- - type: entities
- # Title of the entities card
- title: Example
- # The entities here will be shown in the same order as specified.
- entities:
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_livingroom
- - input_boolean.switch_tv
-
- # The filter card will filter available entities for certain criteria
- # and render it as type 'entities'.
+ # The filter card will filter entities for their state
- type: entity-filter
- # Filter criteria. They are all optional.
- filter:
- - domain: input_boolean
- state: 'on'
- # This config will be passed to the card rendering the filter results
+ entities:
+ - device_tracker.paulus
+ - device_tracker.anne_there
+ state_filter:
+ - 'home'
card_config:
- title: Input booleans that are on
+ type: glance
+ title: People that are home
+
+ # The picture entity card will represent an entity with a picture
+ - type: picture-entity
+ image: https://www.home-assistant.io/images/default-social.png
+ entity: light.bed_light
# Specify a tab icon if you want the view tab to be an icon.
- icon: mdi:home-assistant
# Title of the view. Will be used as the tooltip for tab icon
title: Second view
cards:
+ # Entities card will take list of entities and show their state.
- type: entities
- title: Lots of Kitchen AC
+ # Title of the entities card
+ title: Example
+ # The entities here will be shown in the same order as specified.
+ # Each entriy is an entity ID or a map with extra options.
entities:
- # It is totally possible to render duplicates.
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_kitchen
- - input_boolean.switch_ac_kitchen
-```
+ - light.kitchen
+ - switch.ac
+ - entity: light.living_room
+ # Override the name to use
+ name: LR Lights
-Add to your `configuration.yaml`:
-
-```yaml
-input_boolean:
- switch_ac_kitchen:
- name: AC kitchen
- switch_ac_livingroom:
- name: AC living room
- switch_tv:
- name: TV
+ # The markdown card will render markdown text.
+ - type: markdown
+ title: Lovelace
+ content: >
+ Welcome to your **Lovelace UI**.
```
Now restart Home Assistant, navigate to `/lovelace`. When you make changes to `ui-lovelace.yaml`, you don't have to restart Home Assistant or refresh the page. Just hit the refresh button at the top of the UI.
+## Custom Cards
+
+It is possible to add your own custom cards to show up in the Lovelace UI. For more information, check [the developer docs](https://developers.home-assistant.io/docs/en/lovelace_custom_card.html).
+
## Current limitations
-This is the very very early version aimed at gathering feedback. Discussion and suggestions are welcome in the [ui-schema repository](https://github.com/home-assistant/ui-schema).
+This is the very very early version aimed at gathering feedback. Discussion and suggestions are welcome in the [ui-schema repository](https://github.com/home-assistant/ui-schema) and in the [chat](/join-chat/) in #lovelace.
diff --git a/source/lovelace/views.markdown b/source/lovelace/views.markdown
new file mode 100644
index 00000000000..fbd50d4d56e
--- /dev/null
+++ b/source/lovelace/views.markdown
@@ -0,0 +1,100 @@
+---
+layout: page
+title: "Views"
+description: "The Lovelace UI is a powerful and configurable interface for Home Assistant."
+date: 2018-07-01 10:28 +00:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+---
+
+These are exactly as before, tab views with icons or text that help you manage large dashboards with many entities. The views have now deep links like `/lovelace/0`. You can also assign your own [custom ids](/lovelace/views/#custom-id).
+
+- Using custom id in view, for [nicer navigation paths](/lovelace/views/#custom-id) in URLs
+- Using [icons](/lovelace/views/#icons) instead of text
+- Using a card to [fill a complete view](/lovelace/views/#panel-view), just like panels
+- Using [themes](/lovelace/views/#themes) in views
+
+| Name | Type | Default | Description
+| ---- | ---- | ------- | -----------
+| title | string | Optional | Text title of the view
+| id | string | number | The id to use in URL path of this view
+| icon | string | Optional | The material design icon for the view, uses this instead of title
+| panel | boolean | false | Marks view as a panel reusing the first card in list
+
+
+
+Screenshot of views.
+
+
+{% linkable_title Icons %}
+
+You can use icons instead of text for your view tabs. The title in the example will be used as tooltip.
+
+**Example**
+
+```yaml
+views:
+- icon: mdi:settings
+ title: Debugging
+```
+
+{% linkable_title Panel view %}
+
+This type of view uses the first card in the `cards` array to expand it to ocuppy the complete view space, similar to panels. One very good practical use will be for floor plan type of cards.
+
+**Example**
+
+```yaml
+views:
+- icon: mdi:settings
+ id: debug
+ title: Floorplan
+ panel: true
+ cards:
+ - type: picture-elements
+ image: /local/floorplans/main.jpg
+ elements:
+ - type: state-icon
+ tap_action: toggle
+ entity: light.ceiling_lights
+ style:
+ top: 47%
+ left: 42%
+```
+
+{% linkable_title Themes %}
+
+You can also set a [theme](/frontend/#themes) per view.
+
+> Theme is currently only partially usable (font color works)
+
+```yaml
+views:
+- icon: mdi:heart
+ id: debug
+ title: Home
+ theme: dark-mode
+```
+{% linkable_title Custom id %}
+
+You can now assign a custom id to a view, for nicer navigation paths in URLs. This id allows you to deep-link navigation to this view from cards that allow `navigation_path`.
+
+**Example**
+
+View:
+
+```yaml
+views:
+- icon: mdi:settings
+ id: debugging
+```
+
+Picture card:
+
+```yaml
+- type: picture
+ image: /local/debug.jpg
+ navigation_path: /lovelace/debugging
+```