Lovelace Card Templater

Lovelace Card Templater

Lovelace Card Templater es una tarjeta Lovelace personalizada que permite aplicar plantillas Jinja2 a otras tarjetas.

Instalación Lovelace Card Templater

La mejor forma para instalar esta tarjeta en nuestro Home Assistant es desde HACS.

Entre en HACS

Busca «Lovelace Card Templater» en la tienda y sigue las instrucciones.

Opciones

NombreEscribeOpcional / RequeridoDescripción
typecuerdaRequeridopersonalizado: tarjeta-templater
cardobjetoRequeridoLa tarjeta que se va a mostrar (ver más abajo sobre la creación de plantillas)
entitieslistaRequeridoEntidades para observar los cambios (también se puede usar para modelar estados de entidad, ver más abajo)

Plantillas de tarjetas

La opción de tarjeta aceptará cualquier configuración de tarjeta. Cualquier opción en la tarjeta original que tiene un valor de cadena puede ser templated cambiando el nombre de la opción de ser option_name _template . Por ejemplo, name se convertirá en name_template . Aquí hay un ejemplo:

type: custom:card-templater
card:
  type: entities
  show_header_toggle: true
  columns: 2
  title: Places
  entities:
    - entity: zone.figueres
      name_template: >-
        {{ state_attr("zone.figueres","friendly_name") }} - {{
        (distance(states.person.albert, states.zone.figueres) *
        0.621371) | round(1) }} miles.
    - entity: zone.home
      name_template: >-
        {{ state_attr("zone.home","friendly_name") }} - {{
        (distance(states.person.albert, states.zone.home)) |
        round(1) }} kilómetro.
    - entity: zone.bonpreu
      name_template: >-
        {{ state_attr("zone.bonpreu","friendly_name") }} - {{
        (distance(states.person.albert, states.zone.bonpreu)) |
        round(1) }} kilómetro.
entities:
  - person.albert

Esto mostrará una tarjeta de entidades que muestra dos zonas, con los nombres de visualización que incluyen la distancia entre una entidad device_tracker y la zona. Aquí un ejemplo

Lovelace Card Templater

Listas de plantillas, método experimental alternativo

La versión 0.0.3 introdujo otra forma de crear plantillas de propiedades basadas en listas. Ahora se pueden crear plantillas a través de una plantilla que devuelve YAML o JSON válidos, como este:

type: 'custom:card-templater'
card:
  type: entities
  title: Who's at Home
  entities_template: >-
    {{ states.device_tracker | selectattr("state", "equalto",
    "home") | map(attribute="entity_id") | list | tojson }}
entities:
  - sensor.time

entidades

Esta opción es necesaria para que la plantilla solo se procese cuando una de las entidades referenciadas cambie y sea similar a la opción de entidad para los sensores de plantilla. Estoy investigando si esto se puede determinar a partir de la plantilla, pero esto es difícil de hacer del lado del cliente y, por ahora, esta opción es necesaria.

Para plantillas complejas, puede crear un sensor de tiempo como este:

sensor:
  - platform: time_date
    display_options:
      - 'time'

y luego use sensor.time en entidades

También puede usar esto para modelar el estado de una entidad, de modo que la entidad muestre un estado diferente al real. Por ejemplo:

type: custom:card-templater
card:
  type: entities
  show_header_toggle: false
  columns: 2
  title: Lugares
  entities:
    - entity: zone.home
      name_template: >-
        {{ (distance(states.person.albert, states.zone.home) *
        0.621371) | round(1) }} millas de distáncia.
    - entity: zone.figueres
      name_template: >-
        {{(distance(states.person.albert, states.zone.figueres)
        ) | round(1) }} kilómetros de distáncia.
entities:
  - person.albert
  - entity: zone.home
    state_template: '{{ state_attr("zone.home","friendly_name") }}'
  - entity: zone.figueres
    state_template: '{{ state_attr("zone.figueres","friendly_name") }}'
entity: zone.figueres

mostrará los estados de las zonas como sus nombres descriptivos en lugar del estado real de («zoning») como se muestra a continuación:

Los atributos de las entidades también se pueden crear de esta manera:

type: 'custom:card-templater'
card:
  ...
entities:
  - entity: sensor.my_sensor
     state_template: >
       {{ "One" if states.sensor.my_sensor.state == "1" else "Not One" }}
     attributes:
       unit_of_measurement_template: >
         {{ states.sensor.my_sensor_uom.state }}

Esto se puede hacer con o sin state_template definido, por lo que puede hacer esto:

type: 'custom:card-templater'
card:
  ...
entities:
  - entity: sensor.my_sensor
    attributes:
     unit_of_measurement_template: >
       {{ states.sensor.my_sensor_uom.state }}

Excluir una propiedad con un nombre que termina con la propiedad _template de la plantilla

A veces, es posible que desee crear una plantilla de una tarjeta que tenga propiedades que terminen en _template (por ejemplo, la opción content_template en  lovelace-home-feed-card ) y no desea que estas sean manejadas por card-templater. ¡Esto se puede hacer agregando   hasta el final de la propiedad (por ejemplo content_template!: {{state}}).

Variables

Las siguientes variables se pasan al motor de plantillas para que pueda usarlas en las plantillas

  • user.name – el nombre del usuario actual
  • user.is_admin: si el usuario actual es un administrador
  • user.is_owner: si el usuario actual es el propietario
  • page: este es el objeto de ubicación de Javascript para la página actual y, por lo tanto, se puede usar de la siguiente manera:
    • page.pathname: el nombre de la ruta de la página actual (por ejemplo, / lovelace / home)
    • page.href: la URL completa de la página actual
    • page.protocol: el protocolo (http / https) de la página actual
    • page.host: el nombre de host de la página actual
  • page.path: este es un alias para page.pathname anterior para compatibilidad con versiones anteriores
  • theme: el nombre del tema seleccionado actualmente

Ejemplo

type: custom:card-templater
card:
  type: markdown
  content_template: >
    ## Hola {{ user.name }}. </br> Esta tarjeta está en la página {{ page.path
    }}
entities:
  - entity: sensor.time
Lovelace Card Templater

No te pierdas el vídeo de este artículo.

Sígueme a Youtube

Lovelace Card Templater - Sígueme en Youtube

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio