From 083f7c0554f8cf8e28f1cb1357a6ad575bfc4460 Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Wed, 12 Dec 2018 05:31:45 -0600 Subject: [PATCH] Update tap/hold actions to objects (#7751) * Update tap/hold actions to objects * Update default action * typo --- source/_lovelace/entity-button.markdown | 66 +++-- source/_lovelace/glance.markdown | 59 +++- source/_lovelace/picture-elements.markdown | 307 ++++++++++++++------- source/_lovelace/picture-entity.markdown | 63 +++-- source/_lovelace/picture-glance.markdown | 54 +++- source/_lovelace/picture.markdown | 58 +++- 6 files changed, 441 insertions(+), 166 deletions(-) diff --git a/source/_lovelace/entity-button.markdown b/source/_lovelace/entity-button.markdown index d84bd7866f9..b987f532429 100644 --- a/source/_lovelace/entity-button.markdown +++ b/source/_lovelace/entity-button.markdown @@ -47,23 +47,54 @@ icon: default: Entity Domain Icon tap_action: required: false - description: "Set to `toggle` or `call-service` for direct actions." - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `call-service`). - type: string - default: none -service: - required: false - description: "For `call-service`, e.g., `media_player.media_play_pause`" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object - default: "entity_id: entity_id" + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 theme: required: false description: "Set to any theme within `themes.yaml`" @@ -77,9 +108,12 @@ Title and Script Service Example: ```yaml - type: entity-button name: Turn Off Lights - tap_action: call-service + tap_action: + action: call-service + service: script.turn_on + service_data: + entity_id: script.turn_off_lights entity: script.turn_off_lights - service: script.turn_on ```

diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown index 93296e6780d..017c3389c15 100644 --- a/source/_lovelace/glance.markdown +++ b/source/_lovelace/glance.markdown @@ -69,23 +69,54 @@ icon: type: string tap_action: required: false - description: "Set to `toggle` or `call-service` for direct actions." - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `call-service`). - type: string - default: none -service: - required: false - description: "For `call-service`, e.g., `media_player.media_play_pause`" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object - default: "entity_id: entity_id" + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown index 7e830c42553..4c012f1191c 100644 --- a/source/_lovelace/picture-elements.markdown +++ b/source/_lovelace/picture-elements.markdown @@ -25,30 +25,9 @@ type: description: picture-elements type: string image: - required: false + required: true description: The URL of an image. type: string -camera_image: - required: false - description: Camera entity as Background image. - type: string -state_image: - required: false - description: Background image based on entity state. - type: object - keys: - state: - type: string - required: false - description: "`state: image-url`, check the example below." -aspect_ratio: - required: false - description: "Forces the height of the image to be a ratio of the width. You may enter a value such as: `16x9`, `16:9`, `1.78`." - type: string -entity: - required: false - description: Entity to use for `state_image`. - type: string elements: required: true description: List of elements @@ -92,26 +71,54 @@ entity: type: string tap_action: required: false - description: more-info, toggle, navigate, call-service - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`). - type: string - default: none -navigation_path: - required: false - description: Url path to navigate to (e.g., `/lovelace/1`) - type: string -service: - required: false - description: "Service to call (e.g., `light.turn_on`)" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 style: required: true description: Position and style the element using CSS. @@ -140,26 +147,54 @@ suffix: type: string tap_action: required: false - description: more-info, toggle, navigate, call-service - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`). - type: string - default: none -navigation_path: - required: false - description: Url path to navigate to (e.g., `/lovelace/1`) - type: string -service: - required: false - description: "Service to call (e.g., `light.turn_on`)" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 style: required: true description: Position and style the element using CSS. @@ -214,26 +249,54 @@ entity: type: string tap_action: required: false - description: more-info, toggle, navigate, call-service - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`). - type: string - default: none -navigation_path: - required: false - description: Url path to navigate to (e.g., `/lovelace/1`) - type: string -service: - required: false - description: "Service to call (e.g., `light.turn_on`)" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 style: required: true description: Position and style the element using CSS. @@ -254,26 +317,54 @@ entity: type: string tap_action: required: false - description: none, more-info, toggle, navigate, call-service - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`). - type: string - default: none -navigation_path: - required: false - description: Url path to navigate to (e.g., `/lovelace/1`) - type: string -service: - required: false - description: "Service to call (e.g., `light.turn_on`)" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 image: required: false description: The image to display. @@ -355,15 +446,16 @@ state_filter: ## {% linkable_title How to use click-and-hold %} If the option `hold_action` is specified, that action will be performed when the entity is clicked and held for half a second or more. -Please note that the `tap_action` and `hold_action` share variables for `navigation_path`, `service` and `service_data`. It is therefore not possible to, e.g., call two different services when clicked and when held. ```yaml -tap_action: toggle -hold_action: call-service -service: light.turn_on -service_data: - entity_id: light.bed_light - brightness_pct: 100 +tap_action: + action: toggle +hold_action: + action: call-service + service: light.turn_on + service_data: + entity_id: light.bed_light + brightness_pct: 100 ``` ## {% linkable_title Example %} @@ -373,13 +465,15 @@ service_data: image: /local/floorplan.png elements: - type: state-icon - tap_action: toggle + tap_action: + action: toggle entity: light.ceiling_lights style: top: 47% left: 42% - type: state-icon - tap_action: toggle + tap_action: + action: toggle entity: light.kitchen_lights style: top: 30% @@ -399,8 +493,9 @@ service_data: entity_id: group.all_lights - type: icon icon: mdi:home - tap_action: navigate - navigation_path: /lovelace/0 + tap_action: + action: navigate + navigation_path: /lovelace/0 style: top: 10% left: 10% @@ -415,7 +510,8 @@ service_data: # state_image & state_filter - toggle on click - type: image entity: light.living_room - tap_action: toggle + tap_action: + action: toggle image: /local/living_room.png state_image: "off": /local/living_room_off.png @@ -439,8 +535,11 @@ service_data: # Single image, state_filter - call-service on click - type: image entity: media_player.living_room - tap_action: call-service - service: media_player.media_play_pause + tap_action: + action: call-service + service: media_player.media_play_pause + service_data: + entity_id: media_player.living_room image: /local/television.jpg filter: brightness(5%) state_filter: diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown index 450388e757e..727e196b049 100644 --- a/source/_lovelace/picture-entity.markdown +++ b/source/_lovelace/picture-entity.markdown @@ -58,27 +58,54 @@ show_state: default: true tap_action: required: false - description: "Action to perform when clicked (e.g., `more-info`, `toggle`, `navigate`, `call-service`)." - type: string - default: more-info + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 hold_action: required: false - description: "Action to perform when clicked-and-held (e.g., `more-info`, `toggle`, `navigate`, `call-service`)." - type: string - default: none -navigation_path: - required: false - description: "Path to navigate to when action set to `navigate`." - type: string -service: - required: false - description: "For `call-service`, e.g., `media_player.media_play_pause`" - type: string -service_data: - required: false - description: The service data to use. + description: Action to take on tap-and-hold type: object - default: "`entity_id: entity_id`" + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 {% endconfiguration %} ## {% linkable_title Examples %} diff --git a/source/_lovelace/picture-glance.markdown b/source/_lovelace/picture-glance.markdown index e4f4162cbf6..b97171471dd 100644 --- a/source/_lovelace/picture-glance.markdown +++ b/source/_lovelace/picture-glance.markdown @@ -30,10 +30,6 @@ title: required: false description: The card title. type: string -navigation_path: - required: false - description: Navigate to path on tap action. - type: string image: required: false description: Background image URL. @@ -59,6 +55,56 @@ entity: required: false description: Entity to use for `state_image`. type: string +tap_action: + required: false + description: Action to take on tap + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 +hold_action: + required: false + description: Action to take on tap-and-hold + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 {% endconfiguration %} ## {% linkable_title Options For Entities %} diff --git a/source/_lovelace/picture.markdown b/source/_lovelace/picture.markdown index 7f36768de8e..9670b48a371 100644 --- a/source/_lovelace/picture.markdown +++ b/source/_lovelace/picture.markdown @@ -26,18 +26,56 @@ image: required: true description: The URL of an image. type: string -navigation_path: +tap_action: required: false - description: Path of URL to navigate to. - type: string -service: - required: false - description: The service to call. - type: string -service_data: - required: false - description: The service data. + description: Action to take on tap type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 +hold_action: + required: false + description: Action to take on tap-and-hold + type: object + keys: + action: + required: true + description: Action to perform (`more-info`, `toggle`, `call-service`, `navigate`, `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 + 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 {% endconfiguration %} ## {% linkable_title Examples %}