Ian Richardson 4467de4c34 Lovelace: add visible example for views (#11061)
* add visible example

* Update views.markdown

* Update views.markdown
2019-11-18 09:52:16 +01:00

12 KiB

title, description
title description
Views The Lovelace UI is a powerful and configurable interface for Home Assistant.

To display cards on the UI you have to define them in views. Views sort cards in columns based on their card size. If you want to group some cards you have to use stack cards.

Views toolbar Use titles and icons to describe the content of views.

{% configuration views %} views: required: true description: A list of view configurations. type: list keys: title: required: true description: The title or name. type: string badges: required: false description: List of entities IDs or badge objects to display as badges. type: list cards: required: false description: Cards to display in this view. type: list path: required: false description: Paths are used in the URL, more info below. type: string default: view index icon: required: false description: Icon-name from Material Design Icons. type: string panel: required: false description: Renders the view in panel mode, more info below. type: boolean default: false background: required: false description: Style the background using CSS, more info below. type: string theme: required: false description: Themes view and cards, more info below. type: string visible: required: false description: "Hide/show the view tab from all users or a list of individual visible objects." type: [boolean, list] default: true {% endconfiguration %}

Options For Visible

If you define visible as objects instead of a boolean to specify conditions for displaying the view tab:

{% configuration badges %} user: required: true description: User id that can see the view tab (unique hex value found on the Users configuration page). type: string {% endconfiguration %}

Example

View config:

- title: Living room
  badges:
    - device_tracker.demo_paulus
    - entity: light.ceiling_lights
      name: Ceiling Lights
      icon: mdi:bulb
    - entity: switch.decorative_lights
      image: /local/lights.png

Paths

You can link to one view from another view by its path. For this use cards that support navigation (navigation_path). Do not use special characters in paths.

Example

View config:

- title: Living room
  # the final path is /lovelace/living_room
  path: living_room

Picture card config:

- type: picture
  image: /local/living_room.png
  tap_action:
    action: navigate
    navigation_path: /lovelace/living_room

Icons

If you define an icon the title will be used as a tool-tip.

Example

- title: Garden
  icon: mdi:flower

Visible

You can specify the visibility of views as a whole or per-user. (Note: This is only for the display of the tabs. The url path is still accessible)

Example

views:
  - title: Ian
    visible:
      - user: 581fca7fdc014b8b894519cc531f9a04
    cards:
      ...
  - title: Chelsea
    visible:
      - user: 6e690cc4e40242d2ab14cf38f1882ee6
    cards:
      ...
  - title: Admin
    visible: db34e025e5c84b70968f6530823b117f
    cards:
      ...

Panel mode

This renders the first card on full width, other cards in this view will not be rendered. Good for cards like map, stack or picture-elements.

Example

- title: Map
  panel: true
  cards:
    - type: map
      entities:
        - device_tracker.demo_paulus
        - zone.home

Themes

Set a separate theme for the view and its cards.

Example

- title: Home
  theme: happy

Background

You can style the background of your views with a theme. You can use the CSS variable lovelace-background. For wallpapers you probably want to use the example below, more options can be found here.

Example

# Example configuration.yaml entry
frontend:
  themes:
    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

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

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

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