Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2020-09-05 15:14:52 +02:00
commit 58f7bd7009
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
30 changed files with 316 additions and 388 deletions

View File

@ -79,7 +79,7 @@ GEM
mini_portile2 (~> 2.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.5)
public_suffix (4.0.6)
rack (2.2.3)
rack-protection (2.0.8.1)
rack

View File

@ -474,3 +474,17 @@ automation:
- platform: sun
event: sunset
```
### Multiple Entity IDs for the same Trigger
It is possible to specify multiple entities for the same trigger. To do so add multiple entities using a nested list. The trigger will fire and start, [processing](#what-are-triggers) your automation each time the trigger is true for each entity listed.
```yaml
automation:
trigger:
- platform: state
entity_id:
- sensor.one
- sensor.two
- sensor.three
```

View File

@ -407,7 +407,7 @@ Just use the "Square bracket notation" to get the value.
{% raw %}
```yaml
'{{ value_json['values']['temp'] }}'
"{{ value_json['values']['temp'] }}"
```
{% endraw %}

View File

@ -45,10 +45,10 @@ input_select:
name: Threat level
# A collection is used for options
options:
- 0
- 1
- 2
- 3
- 0
- 1
- 2
- 3
initial: 0
```

View File

@ -68,7 +68,7 @@ There are reports that devices running with iOS prior to iOS 10, especially old
| Browser | Release | State | Comments |
| :-------------------- |:---------------|:-----------|:-------------------------|
| [LG webOS TV Built-in]| 2019-2020 | fails | loads empty page |
| [LG webOS TV Built-in]| webOS 04.80.03 | works | including magic remote |
[Chrome]: https://www.google.com/chrome/
[Chromium]: https://www.chromium.org/
@ -89,4 +89,4 @@ There are reports that devices running with iOS prior to iOS 10, especially old
[Uzbl]: https://www.uzbl.org/
[w3m]: http://w3m.sourceforge.net/
[Waterfox]: https://www.waterfoxproject.org
[LG webOS TV Built-In]: https://www.lg.com/uk/support/solutions/tv/smart-tv/internet-browsing
[LG webOS TV Built-In]: https://www.lg.com/uk/support/help-library/details-on-enjoying-internet-browsing-on-your-lg-webos-tv-CT00008334-1435838149474

View File

@ -92,15 +92,14 @@ mqtt:
### CloudMQTT
[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance that is free for up to 10 connected devices. This is enough to get started with for example [OwnTracks](/integrations/owntracks/) and give you a taste of what is possible.
[CloudMQTT](https://www.cloudmqtt.com) is a hosted private MQTT instance. Plans start at 5$ per months.
<div class='note'>
Home Assistant is not affiliated with CloudMQTT nor will receive any kickbacks.
</div>
1. [Create an account](https://customer.cloudmqtt.com/login) (no payment details needed)
1. [Create an account](https://customer.cloudmqtt.com/login)
2. [Create a new CloudMQTT instance](https://customer.cloudmqtt.com/subscription/create)
(Cute Cat is the free plan)
3. From the control panel, click on the _Details_ button.
4. Create unique users for Home Assistant and each phone to connect<br>(CloudMQTT does not allow two connections from the same user)
1. Under manage users, fill in username, password and click add

View File

@ -275,6 +275,7 @@ The following software has built-in support for MQTT discovery:
- [Zwave2Mqtt](https://github.com/OpenZWave/Zwave2Mqtt) (starting with 2.0.1)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
- [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon)
## Examples

View File

@ -110,6 +110,7 @@ condition:
You can optionally use a `value_template` to process the value of the state before testing it.
{% raw %}
```yaml
condition:
condition: numeric_state
@ -117,8 +118,9 @@ condition:
above: 17
below: 25
# If your sensor value needs to be adjusted
value_template: {% raw %}'{{ float(state.state) + 2 }}'{% endraw %}
value_template: '{{ float(state.state) + 2 }}'
```
{% endraw %}
It is also possible to test the condition against multiple entities at once.
The condition will pass if all entities match the thresholds.
@ -236,21 +238,25 @@ For an in-depth explanation of sun elevation, see [sun elevation trigger][sun_el
[sun_elevation_trigger]: /docs/automation/trigger/#sun-elevation-trigger
{% raw %}
```yaml
condition:
condition: and # 'twilight' condition: dusk and dawn, in typical locations
conditions:
- condition: template
value_template: {% raw %}'{{ state_attr("sun.sun", "elevation") < 0 }}'{% endraw %}
value_template: "{{ state_attr('sun.sun', 'elevation') < 0 }}"
- condition: template
value_template: {% raw %}'{{ state_attr("sun.sun", "elevation") > -6 }}'{% endraw %}
value_template: "{{ state_attr('sun.sun', 'elevation') > -6 }}"
```
{% endraw %}
{% raw %}
```yaml
condition:
condition: template # 'night' condition: from dusk to dawn, in typical locations
value_template: {% raw %}'{{ state_attr("sun.sun", "elevation") < -6 }}'{% endraw %}
value_template: "{{ state_attr('sun.sun', 'elevation') < -6 }}"
```
{% endraw %}
#### Sunset/sunrise condition
@ -304,11 +310,13 @@ A visual timeline is provided below showing an example of when these conditions
The template condition tests if the [given template][template] renders a value equal to true. This is achieved by having the template result in a true boolean expression or by having the template render 'true'.
{% raw %}
```yaml
condition:
condition: template
value_template: "{% raw %}{{ (state_attr('device_tracker.iphone', 'battery_level')|int) > 50 }}{% endraw %}"
value_template: "{{ (state_attr('device_tracker.iphone', 'battery_level')|int) > 50 }}"
```
{% endraw %}
Within an automation, template conditions also have access to the `trigger` variable as [described here][automation-templating].
@ -394,6 +402,7 @@ condition:
### Examples
{% raw %}
```yaml
condition:
- condition: numeric_state
@ -410,3 +419,4 @@ condition:
entity_id: script.light_turned_off_5min
state: 'off'
```
{% endraw %}

View File

@ -2,33 +2,39 @@
<!-- {% include edit_github.html %} -->
{% assign cards = site.lovelace | sort_natural: 'title' %}
<div class='section'>
<div class="section">
<h1 class="title delta">Lovelace UI</h1>
<ul class='divided sidebar-menu'>
<ul class="divided sidebar-menu">
<li>{% active_link /lovelace/ Introduction %}</li>
<li>{% active_link /lovelace/changelog/ Changelog %}</li>
</ul>
</div>
<div class='section'>
<div class="section">
<h1 class="title delta">Advanced</h1>
<ul class='divided sidebar-menu'>
<ul class="divided sidebar-menu">
<li>{% active_link /lovelace/how-it-works/ How it works %}</li>
<li>{% active_link /lovelace/header-footer/ Headers & Footers %}</li>
<li>{% active_link /lovelace/yaml-mode/ YAML mode %}</li>
<li>{% active_link /lovelace/dashboards-and-views/ Dashboards & Views %}</li>
<li>
{% active_link /lovelace/dashboards-and-views/ Dashboards & Views %}
</li>
<li>{% active_link /lovelace/badges/ Badges %}</li>
<li>{% active_link /lovelace/actions/ Actions %}</li>
<li><a href='https://developers.home-assistant.io/docs/frontend/custom-ui/lovelace-custom-card.html'>Developing Custom Cards <i icon='icon-external-link'></i></a></li>
<li>
<a
href="https://developers.home-assistant.io/docs/frontend/custom-ui/lovelace-custom-card.html"
>Developing Custom Cards <i class="icon-external-link"></i
></a>
</li>
</ul>
</div>
<div class='section'>
<div class="section">
<h1 class="title delta">Cards</h1>
<ul class='divided sidebar-menu'>
<ul class="divided sidebar-menu">
{% for card in cards %}
<li>{% active_link {{card.url}} {{card.sidebar_label}} %}</li>
<li>{% active_link {{card.url}} {{card.sidebar_label}} %}</li>
{% endfor %}
</ul>
</div>
</section>

View File

@ -35,6 +35,16 @@ There is currently support for the following device types within Home Assistant:
The Daikin integration can be configured via the Home Assistant user interface where it will let you enter the IP-address of your Daikin AC (SKYFi based devices need to provide a password and BRP072Cxx devices need to provide a key).
<div class='note'>
If your Daikin unit does not reside in the same network as your Home Assistant instance, i.e. your network is segmented, note that a couple of UDP connections are made during discovery:
- From Home Assistant to the Daikin controller: `UDP:30000` => `30050`
- From the Daikin controller to Home Assistant: `UDP:<random port>` => `30000`
If this situation applies to you, you may need to adjust your firewall(s) accordingly.
</div>
## Climate

View File

@ -19,6 +19,7 @@ Known supported devices:
- Denon AVR-X1000
- Denon AVR-X1200W
- Denon AVR-X1300W
- Denon AVR-X1400H
- Denon AVR-X1500H
- Denon AVR-X1600H
- Denon AVR-X2000

View File

@ -56,6 +56,7 @@ Supported devices:
Tested devices:
- Epson EH-TW5350
- Epson EH-TW7000
To make this module work you need to connect your projector to your LAN.
The best is to use iProjection app by Epson to test if it is working.

View File

@ -61,6 +61,7 @@ Once configuration is completed you'll see a Konnected.io entry in **Configurati
The settings for each panel can be accessed by selecting the entry in **Configuration** -> **Integrations** => **Configured** and then clicking on the gear icon in the upper right corner. You can reconfigure these settings at any time and once completed the settings will be immediately applied.
The settings UI starts by having you configure the general behavior of each zone. You need to specify `Disabled`, `Binary Sensor`, `Digital Sensor`, or `Switchable Output` for each zone. After that, you'll be prompted, for each zone that is not disabled, to configure details of the zones' behavior. All zones will allow entry of a Name. Additional fields depend on how you configured the general behavior of the zone.
**Note some zones do not support all behaviors. The UI will reflect specific options available to each zone.**
##### Binary Sensor:

View File

@ -12,7 +12,7 @@ ha_domain: nuki
The `nuki` platform allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via either a [software bridge](https://play.google.com/store/apps/details?id=io.nuki.bridge) or a [physical bridge](https://nuki.io/en/bridge/).
To add a Nuki bridge to your installation, you need to enable developer mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki) or [iPhone app](https://apps.apple.com/app/nuki-smart-lock/id1044998081). Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one.
To add a Nuki bridge to your installation, you need to enable developer mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki) or [iPhone app](https://apps.apple.com/app/nuki-smart-lock/id1044998081). Go to manage my devices, and select the bridge. Within the bridge configuration turn on the HTTP API and check the details in the screen. Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one.
Then add the following to your `configuration.yaml` file:
```yaml

View File

@ -17,10 +17,6 @@ There is currently support for the following device types within Home Assistant:
- [Binary Sensor](#binary-sensor)
- [Sensor](#sensor)
<div class='note'>
You must have the <a href="#configuration">OctoPrint component</a> configured (below) to use the sensor and binary sensor. After configuring that component, the sensors and binary sensors automatically appear.
</div>
## Configuration
To get started with the OctoPrint API, please follow the directions on their [site](https://docs.octoprint.org/en/master/api/general.html). Once OctoPrint is configured you will need to add your API key and host to your `configuration.yaml`.

View File

@ -42,6 +42,7 @@ Both events have three attributes:
To receive notifications of the entering flights using the [Home Assistant Companion App](https://companion.home-assistant.io/), add the following lines to your `configuration.yaml` file:
{% raw %}
```yaml
automation:
- alias: 'Flight entry notification'
@ -51,6 +52,7 @@ automation:
action:
service: notify.mobile_app_<device_name>
data:
message : 'Flight entry of {{ trigger.event.data.callsign }} '
message: 'Flight entry of {{ trigger.event.data.callsign }}'
```
{% endraw %}

View File

@ -42,7 +42,7 @@ To enable this integration in your installation, add the following to your `conf
proximity:
home:
ignored_zones:
- twork
- work
devices:
- device_tracker.car1
tolerance: 50

View File

@ -97,9 +97,9 @@ monitored_conditions:
irradiance:
description: "Sun intensity in Watt per square meter ([W/m2](https://en.wikipedia.org/wiki/W/m2))."
rainlast24hour:
description: The rail over the last 24 hours (in mm).
description: The rain over the last 24 hours (in mm).
rainlasthour:
description: The rail over the last hour (in mm).
description: The rain over the last hour (in mm).
temperature_1d:
description: "The forecasted temperature (in [C](https://en.wikipedia.org/wiki/Celsius))."
mintemp_1d:

View File

@ -2,6 +2,7 @@
title: SimpliSafe
description: Instructions on how to integrate SimpliSafe into Home Assistant.
ha_release: 0.81
ha_iot_class: Cloud Polling
ha_category:
- Alarm
- Lock

View File

@ -132,7 +132,7 @@ In this example `12345` is the `home_id` you'll need to configure.
If the above method returns an unauthorized error. The `home_id` can also be found using Chrome developer tools. Whilst logged into https://my.tado.com/webapp, take the following steps:
- Select the "Networ"' tab
- Select the "Network"' tab
- Filter for "home"
- Under "Name", select "users"
- Click on the "Response" tab

View File

@ -67,6 +67,24 @@ automation:
```
{% endraw %}
In order to also update the input select in case some external event changes the Vallox profile (web interface, mechanical switch, reboot, etc...) you can use the following automation:
{% raw %}
```yaml
automation:
- alias: Update Vallox input_select
description: Update input_select when external event changes the profile
trigger:
- entity_id: sensor.vallox_current_profile
platform: state
action:
- data_template:
entity_id: input_select.ventilation_profile
option: "{{ states('sensor.vallox_current_profile') }}"
service: input_select.select_option
```
{% endraw %}
## Fan Services
### Service `vallox.set_profile`

View File

@ -70,8 +70,8 @@ This integration provides sensors for the following information from WLED:
- Estimated current (in mA).
- Uptime (disabled by default)
- Free memory (in bytes, disabled by default).
- Wi-Fi Signal Strength (in %m disabled by default).
- Wi-Fi Signal Strength (RSSI in dBm).
- Wi-Fi Signal Strength (in %, disabled by default).
- Wi-Fi Signal Strength (RSSI in dBm, disabled by default).
- Wi-Fi Channel (disabled by default).
- Wi-Fi BSSID (disabled by default).

View File

@ -69,11 +69,6 @@ key:
description: The key of your gateway. *Optional if only using sensors and/or binary sensors.*
required: false
type: string
discovery_retry:
description: Number of times that Home Assistant should try to discover subdevices of the gateway.
required: false
type: integer
default: 3
name:
description: Name of the Gateway
required: false
@ -221,7 +216,6 @@ That means that Home Assistant is not getting any response from your Xiaomi gate
- Make sure you have [enabled LAN access](https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz).
- Turn off the firewall on the system where Home Assistant is running.
- Ensure your router supports multicast as this is a requirement of the Xiaomi Gateway.
- Try to set `discovery_retry: 10`.
- Try to disable and then enable LAN access.
- Hard reset the gateway: Press the button of the gateway 30 seconds and start again from scratch.
- If you are using Home Assistant in [Docker](/docs/installation/docker/), make sure to use `--net=host`.

View File

@ -192,15 +192,15 @@ name:
### Supported Xiaomi gateway models:
| Gateway name | Zigbee id | model | supported |
| ------------------ | ------------------- | ------------ |------------------------------------------ |
| Chinese version | lumi.gateway.v3 | DGNWG02LM | yes |
| European version | lumi.gateway.mieu01 | ZHWG11LM-763 | only gateway features (no subdevices yet) |
| Aqara hub | lumi.gateway.aqhm01 | ZHWG11LM | untested |
| Mijia Zigbee 3.0 | lumi.gateway.mgl03 | ZNDMWG03LM | untested |
| Aqara AC Companion | lumi.acpartner.v1 | KTBL01LM | untested |
| Mi AC Companion | lumi.acpartner.v2 | KTBL02LM | untested |
| Aqara AC Companion | lumi.acpartner.v3 | KTBL11LM | yes |
| Gateway name | Zigbee id | model | supported |
| ------------------ | ------------------- | ------------------------ |------------------------------------------ |
| Chinese version | lumi.gateway.v3 | DGNWG02LM | yes |
| European version | lumi.gateway.mieu01 | ZHWG11LM-763 / DGNWQ05LM | only gateway features (no subdevices yet) |
| Aqara hub | lumi.gateway.aqhm01 | ZHWG11LM | untested |
| Mijia Zigbee 3.0 | lumi.gateway.mgl03 | ZNDMWG03LM | untested |
| Aqara AC Companion | lumi.acpartner.v1 | KTBL01LM | untested |
| Mi AC Companion | lumi.acpartner.v2 | KTBL02LM | untested |
| Aqara AC Companion | lumi.acpartner.v3 | KTBL11LM | yes |
### Gateway Features
@ -1364,7 +1364,7 @@ The following table shows the units of measurement for each attribute:
| `total_cleaned_area` | square meter | Total cleaned area in square meters |
| `total_cleaning_time` | minutes | Total cleaning time in minutes |
| `clean_start` | datetime | The last date/time the vacuum started cleaning (offset naive) |
| `clean_end` | datetime | The last date/time the vacuum finished cleaning (offset naive) |
| `clean_stop` | datetime | The last date/time the vacuum finished cleaning (offset naive) |
### Example on how to clean a specific room

View File

@ -54,12 +54,12 @@ ZHA integration uses a hardware independent Zigbee stack implementation with mod
- [ConBee USB adapter from dresden elektronik](https://phoscon.de/conbee)
- [RaspBee II (a.k.a. RaspBee 2) Raspberry Pi Shield from dresden elektronik](https://www.dresden-elektronik.com/product/raspbee-II.html)
- [RaspBee Raspberry Pi Shield from dresden elektronik](https://phoscon.de/raspbee)
- EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [ITEAD Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! This first have to be flashed with [Tasmota firmware and EmberZNet 6.5.x.x](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
- Silicon Labs EmberZNet based radios using the EZSP protocol (via the [bellows](https://github.com/zigpy/bellows) library for zigpy)
- [ITEAD Sonoff ZBBridge](https://www.itead.cc/smart-home/sonoff-zbbridge.html) (Note! This first have to be flashed with [Tasmota firmware and Silabs EmberZNet NCP EZSP UART Host firmware](https://www.digiblur.com/2020/07/how-to-use-sonoff-zigbee-bridge-with.html))
- [Nortek GoControl QuickStick Combo Model HUSBZB-1 (Z-Wave & Zigbee USB Adapter)](https://www.nortekcontrol.com/products/2gig/husbzb-1-gocontrol-quickstick-combo/)
- [Elelabs Zigbee USB Adapter](https://elelabs.com/products/elelabs_usb_adapter.html)
- [Elelabs Zigbee Raspberry Pi Shield](https://elelabs.com/products/elelabs_zigbee_shield.html)
- Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587 (no flashing necessary)
- Bitron Video/Smabit BV AV2010/10 USB-Stick with Silicon Labs Ember 3587
- Telegesis ETRX357USB (Note! This first have to be flashed with other EmberZNet firmware)
- Telegesis ETRX357USB-LRS (Note! This first have to be flashed with other EmberZNet firmware)
- Telegesis ETRX357USB-LRS+8M (Note! This first have to be flashed with other EmberZNet firmware)

View File

@ -2123,10 +2123,11 @@
# Lovelace documentation
/lovelace/entity-button /lovelace/button
/lovelace/views /lovelace/dashboards-and-views
/lovelace/yaml-mode /lovelace/dashboards-and-views
# Removed documentation
/docs/installation/hassbian /getting-started
/docs/installation/macos /docs/installation/virtualenv
/docs/installation/raspberry-pi-all-in-one /getting-started
/getting-started/hassbian /getting-started
/getting-started/installation-raspberry-pi-all-in-one /getting-started
/getting-started/installation-raspberry-pi-all-in-one /getting-started

View File

@ -1,45 +1,46 @@
---
title: "Enable I2C on the Home Assistant Operating System"
description: "Instructions on how to enable I2C on a Raspberry PI"
description: "Instructions on how to enable I2C on a Raspberry Pi"
---
Home Assistant using the Home Assistant Operating System is a managed environment, which means you can't use existing methods to enable the I2C bus on a Raspberry Pi.
If you're attempting to add an external sensor you will have to [enable the I2C interface in the Home Assistant configuration](https://github.com/home-assistant/hassos/blob/dev/Documentation/boards/raspberrypi.md#i2c) using a USB stick.
## Step by step instructions
You will need:
- USB drive
- A way to add files to the USB drive
- A way to connect the drive to your Raspberry Pi
- SD card reader
- SD card with Home Assistant Operating System flashed on it
### Step 1 - Prepare the USB drive
### Step 1 - Access the Home Assistant OS boot partition
Connect the USB drive to a device capable of adding and editing files to the USB drive.
Format a USB stick with FAT32/EXT4/NTFS and name the drive `CONFIG` (uppercase).
Shutdown/turn-off your Home Assistant installation and unplug the SD card.
Plug the SD card into an SD card reader and find a drive/file system named
`hassos-boot`. The file system might be shown/mounted automatically. If not,
use your operating systems disk management utility to find the SD card reader
and make sure the first partition is available.
### Step 2 - Add files to enable I2C
- In the root of the USB drive add a folder called `/modules`.
- Inside that folder add a text file called `rpi-i2c.conf` with the following contents:
- In the root of the `hassos-boot` partition, add a new folder called `CONFIG`.
- In the `CONFIG` folder, add another new folder called `modules`.
- Inside the `modules` folder add a text file called `rpi-i2c.conf` with the following content:
```txt
i2c-bcm2708
i2c-dev
```
- In the root of the USB drive add a file called `config.txt` with the following contents:
- In the root of the USB drive edit the file called `config.txt` add two lines
to it:
```txt
dtparam=i2c1=on
dtparam=i2c_vc=on
dtparam=i2c_arm=on
```
### Step 3 - Load the new USB configuration
### Step 3 - Start with the new configuration
- Insert the USB drive into your Raspberry Pi.
- Now go to your Home Assistant web interface, in the sidebar click **Supervisor** > **System**.
- Now click `Import from USB`.
- This will restart your Home Assistant instance, and load the new USB configuration.
- Insert the SD card back into your Raspberry Pi.
- On startup, the `hassos-config.service` will automatically pickup the new
`rpi-i2c.conf` configuration.
- Another reboot might be necessary to make sure the just imported `rpi-i2c.conf` is
present at boot time.
When the service has restarted, you will have a working I2C interface.
The I2C devices should now be present under /dev.

View File

@ -0,0 +1,152 @@
---
title: "Lovelace Badges"
description: "Description of the various badges that are available."
---
Badges are widgets that sit at the top of a Lovelace panel, above all the cards.
### State Label Badge
The State Label badge allows you to dislay a state badge. This badge supports [actions](/lovelace/actions/).
```yaml
type: state-label
entity: light.living_room
```
{% configuration state_label %}
type:
required: true
description: entity-button
type: string
entity:
required: true
description: Home Assistant entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
default: Name of Entity
icon:
required: false
description: Overwrites icon or entity picture.
type: string
default: Entity Domain Icon
image:
required: false
description: The URL of an image.
type: string
show_name:
required: false
description: Show name.
type: boolean
default: "true"
show_icon:
required: false
description: Show icon.
type: boolean
default: "true"
{% endconfiguration %}
### Entity Filter Badge
This badge 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.
{% configuration filter_badge %}
type:
required: true
description: entity-filter
type: string
entities:
required: true
description: A list of entity IDs or `entity` objects, see below.
type: list
state_filter:
required: true
description: List of strings representing states or `filter` objects, see below.
type: list
{% endconfiguration %}
#### Options For Entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
{% configuration entities %}
type:
required: false
description: "Sets a custom badge type: `custom:my-custom-badge`"
type: string
entity:
required: true
description: Home Assistant entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
icon:
required: false
description: Overwrites icon or entity picture.
type: string
image:
required: false
description: The URL of an image.
type: string
state_filter:
required: false
description: List of strings representing states or `filter` objects, see below.
type: list
{% endconfiguration %}
#### Options For state_filter
If you define state_filter as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:
{% configuration state_filter %}
value:
required: true
description: String representing the state.
type: string
operator:
required: false
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=` or `regex`.
type: string
attribute:
required: false
description: Attribute of the entity to use instead of the state.
type: string
{% endconfiguration %}
#### 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"
```
Specify filter for a single entity
```yaml
type: entity-filter
state_filter:
- "on"
- operator: ">"
value: 90
entities:
- sensor.water_leak
- sensor.outside_temp
- entity: sensor.humidity_and_temp
state_filter:
- operator: ">"
value: 50
attribute: humidity
```

View File

@ -3,12 +3,35 @@ title: "Dashboards and Views"
description: "The Lovelace UI is a powerful and configurable interface for Home Assistant."
---
### Dashboards
You can define multiple dashboards in Lovelace. Each dashboard can be added to the sidebar. This makes it possible to create separate control dashboards for each individual part of your house.
You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards.
To create new or manage existing (with `mode: storage` only) dashboards, click on `Configuration` in the sidebar and then on `Lovelace Dashboards`.
You can manage your dashboards via the user interface. Go to configuration -> Lovelace Dashboards. Here you can see all defined dashboards and create new ones.
The key of the dashboard is used as the URL, this needs to contain a hyphen (`-`).
### Using YAML for the default dashboard
To change the default dashboard, create a new file `ui-lovelace.yaml` in your configuration directory and add the following section to your `configuration.yaml` and restart Home Assistant:
```yaml
lovelace:
mode: yaml
```
A good way to start this file is to copy and paste the "Raw configuration" from the UI so your manual configuration starts the same as your existing UI.
- Go into the `Overview` tab.
- Click the three dots menu (top-right) and click on `Configure UI`.
- Click the three dots menu again and click on `Raw config editor`.
- There you see the configuration for your current Lovelace UI. Copy that into the `<config>/ui-lovelace.yaml` file.
Once you take control of your UI via YAML, the Home Assistant interface for modifying it won't be available anymore and new entities will not automatically be added to your UI.
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 in the menu at the top of the UI.
To revert back to using the UI to edit your Lovelace interface, remove the `lovelace` section from your `configuration.yaml` and copy the contents of your `ui-lovelace.yaml` into the raw configuration section of Home Assistant and restart.
### Adding more dashboards with YAML
It is also possible to use YAML to define multiple dashboards. Each dashboard will be loaded from its own YAML file.
```yaml
lovelace:
@ -298,6 +321,7 @@ views:
cards:
...
```
### Options For Visible
If you define `visible` as objects instead of a boolean to specify conditions for displaying the view tab:
@ -349,279 +373,3 @@ frontend:
example:
lovelace-background: center / cover no-repeat url("/local/background.png") fixed
```
## Badges
### State Label Badge
The State Label badge allows you to dislay a state badge
```yaml
type: state-label
entity: light.living_room
```
{% configuration state_label %}
type:
required: true
description: entity-button
type: string
entity:
required: true
description: Home Assistant entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
default: Name of Entity
icon:
required: false
description: Overwrites icon or entity picture.
type: string
default: Entity Domain Icon
image:
required: false
description: The URL of an image.
type: string
show_name:
required: false
description: Show name.
type: boolean
default: "true"
show_icon:
required: false
description: Show icon.
type: boolean
default: "true"
tap_action:
required: false
description: Action to take on tap
type: map
keys:
action:
required: true
description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)"
type: string
default: "`toggle`"
navigation_path:
required: false
description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`"
type: string
default: none
url_path:
required: false
description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`"
type: string
default: none
service:
required: false
description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`"
type: string
default: none
service_data:
required: false
description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`"
type: string
default: none
confirmation:
required: false
description: "Present a confirmation dialog to confirm the action. See `confirmation` object below"
type: [boolean, map]
default: "false"
hold_action:
required: false
description: Action to take on tap-and-hold
type: map
keys:
action:
required: true
description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)"
type: string
default: "`more-info`"
navigation_path:
required: false
description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`"
type: string
default: none
url_path:
required: false
description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`"
type: string
default: none
service:
required: false
description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`"
type: string
default: none
service_data:
required: false
description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`"
type: string
default: none
confirmation:
required: false
description: "Present a confirmation dialog to confirm the action. See `confirmation` object below"
type: [boolean, map]
default: "false"
double_tap_action:
required: false
description: Action to take on double tap
type: map
keys:
action:
required: true
description: "Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `url`, `none`)"
type: string
default: "`more-info`"
navigation_path:
required: false
description: "Path to navigate to (e.g., `/lovelace/0/`) when `action` defined as `navigate`"
type: string
default: none
url_path:
required: false
description: "Path to navigate to (e.g., `https://www.home-assistant.io`) when `action` defined as `url`"
type: string
default: none
service:
required: false
description: "Service to call (e.g., `media_player.media_play_pause`) when `action` defined as `call-service`"
type: string
default: none
service_data:
required: false
description: "Service data to include (e.g., `entity_id: media_player.bedroom`) when `action` defined as `call-service`"
type: string
default: none
confirmation:
required: false
description: "Present a confirmation dialog to confirm the action. See `confirmation` object below"
type: [boolean, map]
default: "false"
{% endconfiguration %}
#### Options For Confirmation
If you define confirmation as an object instead of boolean, you can add more customization and configurations:
{% configuration confirmation %}
text:
required: false
description: Text to present in the confirmation dialog.
type: string
exemptions:
required: false
description: "List of `exemption` objects. See below"
type: list
{% endconfiguration %}
#### Options For Exemptions
{% configuration badges %}
user:
required: true
description: User id that can see the view tab.
type: string
{% endconfiguration %}
### Entity Filter Badge
This badge 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.
{% configuration filter_badge %}
type:
required: true
description: entity-filter
type: string
entities:
required: true
description: A list of entity IDs or `entity` objects, see below.
type: list
state_filter:
required: true
description: List of strings representing states or `filter` objects, see below.
type: list
{% endconfiguration %}
#### Options For Entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
{% configuration entities %}
type:
required: false
description: "Sets a custom badge type: `custom:my-custom-badge`"
type: string
entity:
required: true
description: Home Assistant entity ID.
type: string
name:
required: false
description: Overwrites friendly name.
type: string
icon:
required: false
description: Overwrites icon or entity picture.
type: string
image:
required: false
description: The URL of an image.
type: string
state_filter:
required: false
description: List of strings representing states or `filter` objects, see below.
type: list
{% endconfiguration %}
#### Options For state_filter
If you define state_filter as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:
{% configuration state_filter %}
value:
required: true
description: String representing the state.
type: string
operator:
required: false
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=` or `regex`.
type: string
attribute:
required: false
description: Attribute of the entity to use instead of the state.
type: string
{% endconfiguration %}
#### 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"
```
Specify filter for a single entity
```yaml
type: entity-filter
state_filter:
- "on"
- operator: ">"
value: 90
entities:
- sensor.water_leak
- sensor.outside_temp
- entity: sensor.humidity_and_temp
state_filter:
- operator: ">"
value: 50
attribute: humidity
```

View File

@ -1,28 +0,0 @@
---
title: "Lovelace YAML mode"
description: "Advanced users can switch on YAML mode for editing the Lovelace UI."
---
It is possible to customize your Home Assistant interface by writing in YAML instead of via the UI. To do so, you configure the Lovelace integration to be in YAML mode by adding the following to your `configuration.yaml`:
```yaml
lovelace:
mode: yaml
```
Restart Home Assistant for the mode to be changed. Create a new file `<config>/ui-lovelace.yaml` and add your Lovelace configuration. A good way to start this file is to copy and paste the "Raw configuration" from the UI so your manual configuration starts the same as your existing UI.
- Go into the `Overview` tab.
- Click the three dots menu (top-right) and click on `Configure UI`.
- Click the three dots menu again and click on `Raw config editor`.
- There you see the configuration for your current Lovelace UI. Copy that into the `<config>/ui-lovelace.yaml` file.
Once you take control of your UI via YAML, the Home Assistant interface for modifying it won't be available anymore and new entities will not automatically be added to your UI.
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 in the menu at the top of the UI.
To revert back to using the UI to edit your Lovelace interface, remove the `lovelace` section from your `configuration.yaml` and copy the contents of your `ui-lovelace.yaml` into the raw configuration section of Home Assistant and restart.
### Advanced configuration
You can define multiple dashboards that all have their own YAML file, and add custom resources that are shared by all dashboards. For more details refer to [this](/lovelace/dashboards-and-views/) page.