Merge branch 'current' into next

This commit is contained in:
Fabian Affolter 2018-07-09 15:59:37 +02:00
commit d419236f44
No known key found for this signature in database
GPG Key ID: DDF3D6F44AAB1336
63 changed files with 1669 additions and 123 deletions

View File

@ -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.
<p class='note warning'>
Using the <b>reset</b> 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```
</p>
- **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.

View File

@ -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
```

View File

@ -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!

View File

@ -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:

View File

@ -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.
<p class='note'>
You must have the [Nest component](/components/nest/) configured to use this camera. The `nest` camera will automatically be setup when you do.

View File

@ -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**

View File

@ -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:

View File

@ -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
```

View File

@ -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.).
<p class='note'>
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`
</p>

View File

@ -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.
<p class='note'>
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.
</p>
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/).

View File

@ -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
<img src='/images/components/haveibeenpwned/sensor.png' />
</p>
## {% linkable_title Configuration variables %}
- **email** (*Required*): List of email addresses.
<p class='note warning'>
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

View File

@ -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 %}

View File

@ -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`.
</p>
## {% 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```)

View File

@ -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/).

View File

@ -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

View File

@ -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
<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="1" innif="true" scenecount="0">
<Instance index="1" />
<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>
```
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
<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="5" innif="true" scenecount="0">
<Instance index="1" />
<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="1" label="Button One" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
<Value type="int" genre="system" instance="1" index="2" label="Button Two" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="1" />
<Value type="int" genre="system" instance="1" index="3" label="Button Three" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="1" />
<Value type="int" genre="system" instance="1" index="4" label="Button Four" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="1" />
<Value type="int" genre="system" instance="1" index="5" label="Other" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
</CommandClass>
```
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

View File

@ -1,7 +1,7 @@
<section class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Categories</h1>
<ul class="divided">
{% assign categories = site.categories | sort %}
{% assign categories = site.categories | sort_natural %}
{% for category in categories %}
<li><a href="/blog/categories/{{ category | first | downcase }}/">{{ category | first | replace: '-', ' '}}</a></li>
{% endfor %}

View File

@ -1,4 +1,4 @@
{% assign components = site.components | sort: 'title' %}
{% assign components = site.components | sort_natural: 'title' %}
{% assign github_main_repo = 'https://github.com/home-assistant/home-assistant/blob/master/homeassistant' %}
<section class="aside-module grid__item one-whole lap-one-half">
{% include edit_github.html %}

View File

@ -1,6 +1,6 @@
<section class="aside-module grid__item one-whole lap-one-half">
{% include edit_github.html %}
{% assign cookbook = site.cookbook | sort: 'title' %}
{% assign cookbook = site.cookbook | sort_natural: 'title' %}
<div class='section'>
<a href='/cookbook'>Back to the cookbook</a>

View File

@ -2,8 +2,8 @@
<div class='section'>
<h1 class="title delta">Entries</h1>
<ul class='divided sidebar-menu'>
{% assign faq = site.faq | sort: 'title' %}
{% assign categories = faq | map: 'ha_category' | uniq | sort %}
{% assign faq = site.faq | sort_natural: 'title' %}
{% assign categories = faq | map: 'ha_category' | uniq | sort_natural %}
{% for category in categories %}
<li>

View File

@ -1,11 +1,13 @@
<section class="aside-module grid__item one-whole lap-one-half">
<!-- {% include edit_github.html %} -->
{% assign cards = site.lovelace | sort: 'title' %}
{% assign cards = site.lovelace | sort_natural: 'title' %}
<div class='section'>
<h1 class="title delta">Lovelace UI</h1>
<ul class='divided'>
<li><a href='/lovelace/'>Introduction</a></li>
<li><a href='/lovelace/changelog/'>Changelog</a></li>
<li><a href='/lovelace/views/'>Views</a></li>
</ul>
</div>
@ -19,4 +21,5 @@
{% endfor %}
</ul>
</div>
</section>

View File

@ -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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_entity_filter.png' alt='Screenshot of the entity filter card'>
Screenshot of the entity filter card.
</p>
{% 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
```
<p class='img'>
<img src='/images/lovelace/lovelace_entity_filter_glance.png' alt='Screenshot of the entity filter used on a Glance card'>
Screenshot of the entity filter used on a Glance card.
</p>

View File

@ -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
<p class='img'>
<img src='/images/lovelace/lovelace_glance_card.png' alt='Screenshot of the glance card'>
Screenshot of the glance card.
</p>
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
```
<p class='img'>
<img src='/images/lovelace/lovelace_glance_card.png' alt='Screenshot of the glance card with custom title'>
Screenshot of the glance card with custom title.
</p>
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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_history_graph.png' alt='Screenshot of the history graph card'>
Screenshot of the history graph card.
</p>
{% 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
```

View File

@ -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
```
<p class='img'>
<img src='/images/lovelace/lovelace_horizontal_stack.PNG' alt='Screenshot of the 2 cards in a horizontal stack card'>
Screenshot of the 2 cards in a horizontal stack card.
</p>

View File

@ -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/<file>`.
<p class='img'>
<img width="500" src='/images/lovelace/lovelace_iframe.png' alt='Screenshot of the iframe card'>
Screenshot of the iframe card.
</p>
> 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
```

View File

@ -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
<p class='img'>
<img src='/images/lovelace/lovelace_map_card.png' alt='Screenshot of the map card'>
Screenshot of the map card.
</p>
### {% linkable_title Options %}
{% configuration %}
type:
required: true
description: "`map`"
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
aspect_ratio:
required: false
description: "Map height:width ratio"
type: string
default: 100%
{% endconfiguration %}
`entity` object:
{% configuration %}
entity:
required: true
description: "An entity_id. Example: 'device_tracker.demo_paulus'."
type: string
{% endconfiguration %}
<p class='note'>
Only entities that have latitude and longitude attributes will be displayed on the map
</p>
### {% linkable_title Examples %}
Basic map example:
```yaml
- type: map
aspect_ratio: 100%
entities:
- entity: device_tracker.demo_paulus
- zone.home
```

View File

@ -0,0 +1,46 @@
---
layout: page
title: "Markdown Card"
sidebar_label: Markdown
description: "Markdown card is used to render markdown"
date: 2018-07-01 10:28 +00:00
sidebar: true
comments: false
sharing: true
footer: true
---
Markdown card is used to render [markdown](http://commonmark.org/help/)
<p class='img'>
<img src='/images/lovelace/lovelace_markdown.png' alt='Screenshot of the markdown card'>
Screenshot of the markdown card.
</p>
{% 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**.
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_mediaplayer.png' alt='Screenshot of the media player control card'>
Screenshot of the media player control card.
</p>
{% 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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_picture_elements.gif' alt='Screenshot of the picture elements card'>
Screenshot of the picture elements card.
</p>
{% 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
```

View File

@ -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`.
<p class='img'>
<img src='/images/lovelace/lovelace_picture_entity.gif' alt='Screenshot of the picture entity card'>
Screenshot of the picture entity card.
</p>
{% 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
```
<p class='img'>
<img src='/images/lovelace/lovelace_picture_entity_2.gif' alt='Screenshot of the picture entity card'>
Screenshot of the picture entity card.
</p>
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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_picture_glance.gif' alt='Screenshot of the picture glance card'>
Screenshot of the picture glance card.
</p>
**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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_picture.png' alt='Screenshot of the picture card'>
Screenshot of the picture card.
</p>
{% 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
```

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_plant_card.png' alt='Screenshot of the plant status card'>
Screenshot of the plant status card.
</p>
{% 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
```

View File

@ -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
```
<p class='img'>
<img src='/images/lovelace/lovelace_vertical-stack.png' alt='Screenshot of the vertical stack card'>
Screenshot of the vertical stack card.
</p>
Example using both a Vertical and Horizontal Stack Card
```yaml
- type: vertical-stack
cards:
- type: picture-entity
entity: group.all_lights
image: https://images.pexels.com/photos/106399/pexels-photo-106399.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260
- 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
```
<p class='img'>
<img src='/images/lovelace/lovelace_vertical-horizontal-stack.png' alt='Screenshot of the vertical stack and horizontal stack combined in a card'>
Screenshot of the vertical stack and horizontal stack combined in a card.
</p>

View File

@ -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.
<p class='img'>
<img src='/images/lovelace/lovelace_weather.png' alt='Screenshot of the weather card'>
Screenshot of the weather card.
</p>
{% 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
```

View File

@ -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):
<p class='img'>
<img src='/images/blog/2018-07-0.73/lovelace-elements.png' alt='Screenshot of a floorplan with sensor info and light/camera controls overlayed.'>
@ -42,13 +42,14 @@ Experiencing issues introduced by this release? Please report them in our [issue
<!--more-->
## {% 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 %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -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

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
---
<p class='note warning'>
<p class='note'>
This is an experimental feature. Configuration might change in future versions.
</p>
@ -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.
<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube.com/embed/6FX9_leiikw" frameborder="0" allowfullscreen></iframe>
</div>
## 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 `<config>/ui-lovelace.yaml` and add the following content:
Create a new file `<config>/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 `<YOUR HASS URL>/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.

View File

@ -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
<p class='img'>
<img src='/images/lovelace/lovelace_views.gif' alt='Screenshot of views'>
Screenshot of views.
</p>
{% 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
```