Entidades automáticas Home Assistant

Entidades automáticas Home Assistant

Entidades automáticas lo que hace, es rellenar automáticamente las tarjetas de Lovelace con entidades que coincidan con ciertos criterios. Es decir, por ejemplo podemos tener una tarjeta que muestre sólo las luces encendidas, o los teléfonos que estén en menos de x% de batería, etc….

Estas entidades automáticas también se pueden combinar con las tarjetas de entidades desplegables que vimos en capítulos anteriores.

Instalación

Para poder utilizar las tarjetas desplegables debes instalarlo desde HACS. Para ello, entra en HACS, dirígete a Interfaz y dentro de aquí te vas a Explorar y descargar repositorios. Ahora buscas auto-entities. También puedes visitar la página del componente en GitHub.

s auto-entities HACS entidades automáticas
Entidades automáticas en HACS

Estructura básica entidades automáticas

type: custom:auto-entities
card: <card>
entities:
  - <entity>
  - <entity>
filter:
  template: <template>
  include:
    - <filter>
    - <filter>
  exclude:
    - <filter>
    - <filter>

show_empty: <show_empty>
unique: <unique>
sort: <sort_method>

Opciones

  • card: Requerido. La tarjeta que se va a mostrar. Especifique esto como lo haría con cualquier tarjeta normal, pero omita el parámetro entities:
  • entities: Todas las entidades agregadas aquí se agregarán a la tarjeta antes de que se apliquen los filtros.
  • filter:
    • template: Una plantilla jinja2 que evalúa una lista de entradas para incluir
    • include: Una lista de filtros que especifican qué entidades para agregar a la tarjeta
    • exclude: Una lista de filtros que especifican qué entidades que se excluirán de la tarjeta
  • show_empty: Si mostrar la tarjeta si no tiene entidades. Por defecto: true.
  • unique: Ya sea para eliminar valores duplicados después de filtrar y ordenar. Configúrelo en true para eliminar entradas duplicadas exactas. Configúrelo en entity para eliminar entradas con el mismo ID de entidad. Por defecto: false.
  • sort: Cómo ordenar las entidades de la tarjeta. Por defecto: none. Consulte Clasificación de entidades para obtener más detalles.
  • card_param: El parámetro de la tarjeta a rellenar. Por defecto: entities.

Filtros

Las dos secciones principales de filtros includeexclude cada una tiene una lista de filtros.

Los filtros tienen las siguientes opciones y coincidirán con cualquier entidad que cumpla con TODAS las condiciones:

  • domain: Coincidir con el dominio de la entidad (ej. light, binary_sensormedia_player)
  • state: Coincidir con el estado de la entidad (ej. "on"home"3.14")
  • entity_id: Id. De entidad coincidente (ej. light.bed_lightinput_binary.weekdays_only)
  • name: Coincidir con el atributo de nombre descriptivo (ej. Luces cocinapuerta de entrada)
  • group: Hacer coincidir entidades en un grupo determinado (ej group.mesitas )
  • area: Coincidir con entidades en un área determinada (ej. Cocina )
  • device: Coincidir con entidades que pertenecen a un dispositivo determinado (ej. Teléfono Albert )
  • attributes: probará si el atributo de entidad dado es el estado especificado.
  • last_changed: Minutos desde el último cambio de estado (más útil como comparación, ej. last_changed: < 15. )
  • last_updated: Minutos desde la última actualización

Opciones especiales:

  • options: Mapa de opciones para aplicar a la entidad cuando se pasa a la tarjeta.
  • type: Tipo de entradas especiales para incluir en la lista de entidades. Las entradas con un type: no se filtrarán.
  • not: Especifica un filtro que las entidades que no deben coincidir.
  • sort: Especifica un método para ordenar las entidades que coinciden solo con este filtro .
  • or:  Coincide con cualquiera en una lista de filtros.

Filtro de plantilla

La sección de filtro template toma una plantilla jinja2 que se evalúa como una lista de entidades u objetos de entidad.

Cómo funciona

auto-entities crea una lista de entidades por:

  1. Incluyendo todas las entidades dadas en entities:(esto permite anidar auto-entities si desea hacerlo por alguna razón …)
  2. Incluya todas las entidades enumeradas en una evaluación filter.template
  3. Incluya todas las entidades que coincidan con TODAS las opciones de CUALQUIER filtro en la sección filter.include. La misma entidad puede estar incluida varias veces por diferentes filtros.
  4. Elimine todas las entidades que coincidan con TODAS las opciones en CUALQUIER filtro de la sección filter.exclude.

Luego crea una tarjeta basada en la configuración dada en card: y completa esa tarjeta con las entidades de arriba.

Reglas coincidentes

Comodines

Cualquier opción de filtro se puede utilizar *como comodín para la comparación de cadenas. Tenga en cuenta que las cadenas deben estar entre comillas al hacer esto:

filter:
  include:
    - name: "Bedroom *"
    - entity_id: "sensor.temperature_*_max"

Expresiones regulares

Cualquier opción de filtro puede usar expresiones regulares de JavaScript para la comparación de cadenas. Para hacer esto, incluya la expresión regular en /. También asegúrese de citar la cadena:

filter:
  include:
    - name: "/^.* [Ll]ight$/"
    - entity_id: "/sensor.temperature_4[abd]/"

Comparación numérica

Cualquier opción de filtro que trate con cantidades numéricas puede usar operadores de comparación si se especifica como una cadena (debe estar entre comillas):

filter:
  include:
    - attributes:
        battery: "<= 50" # Attribute battery_level is 50 or less
    - state: "> 25" # State is greater than 25
    - attributes:
        count: "! 2" # Attribute count is not equal to 2
    - state: "= 12" # State is exactly 12 (also matches "12", "12.0" etc.)
    - state: 12 # State is exactly 12 but not "12"

Opciones de repetición

Cualquier opción se puede usar más de una vez agregando un número o cadena al nombre de la opción:

filter:
  include:
    - state 1: "> 100"
      state 2: "< 200"

El filtro anterior coincide con las entidades en las que el estado está por encima de 100 y por debajo de 200. Compare con lo siguiente:

filter:
  include:
    - state: "< 100"
    - state: "> 200"

Los dos filtros anteriores juntos coinciden con entidades donde el estado está por debajo de 100 o por encima de 200.

Atributos de objeto

Algunos atributos de entidad contienen en realidad varios valores. Un ejemplo es hs_color para una luz, que tiene un valor para el tono y otro para la saturación. Estos valores se pueden introducir mediante claves o índices separados por dos puntos ( :):

filter:
  include:
    - attributes:
        hs_color:1: ">30"

El ejemplo anterior coincide con luces con un valor hs_color de saturación superior a 30.

Entidades de clasificación

Las entidades se pueden ordenar, ya sea filtro por filtro agregando una opció sort: al filtro, o todas a la vez después de que se hayan aplicado todos los filtros usando la opción sort: de auto-entities.

Los métodos de clasificación se especifican como:

sort:
  method: <method>
  reverse: <reverse>
  ignore_case: <ignore_case>
  attribute: <attribute>
  first: <first>
  count: <count>
  numeric: <numeric>
  • method: Requerido Uno de domainentity_idnamestateattributelast_changed last_updatedlast_triggered.
  • reverse: Configure en true para invertir el orden. Por defecto: false.
  • ignore_case: Establezca en true para que la clasificación no distinga entre mayúsculas y minúsculas. Por defecto: false.
  • numeric: Configure en true para ordenar por valor numérico. Por defecto: false a excepción de last_changedlast_updatedlast_triggered.
  • attribute: Atributo para ordenar por method: attribute. Puede ser un atributo de objeto como el anterior (ej. attribute: rgb_color:2 )
  • firstcount se puede usar para mostrar solo entidades <count>, comenzando con <first> (comienza con 0).

Opciones de entidad

En la opción options: de los filtros, la cadena this.entity_id se reemplazará con el entity_id coincidente. Útil para llamadas de servicio; consulte a continuación.

Ejemplos

Muestra todas las entidades, excepto el clima, los grupos y las zonas de yahoo en una tarjeta de vistazo:

type: custom:auto-entities
card:
  type: glance
filter:
  include: [{}]
  exclude:
    - entity_id: "*yweather*"
    - domain: group
    - domain: zone

Mostrar todos los gps device_tracker con nivel de batería inferior a 50:

type: custom:auto-entities
card:
  type: entities
  title: Battery warning
filter:
  include:
    - domain: device_tracker
      options:
        secondary_info: last-changed
      attributes:
        battery: "< 50"
        source_type: gps

Muestra todas las luces que están encendidas:

type: custom:auto-entities
show_empty: false
card:
  type: glance
  title: Lights on
filter:
  include:
    - domain: light
      state: "on" # Remember that "on" and "off" are magic in yaml, and must always be quoted
      options:
        tap_action:
          action: toggle

También muestra todas las luces que están encendidas:

type: custom:auto-entities
show_empty: false
card:
  type: entities
  title: Lights on
  show_header_toggle: false
filter:
  include:
    - domain: light
  exclude:
    - state: "off"
    - state: "unavailable"

Muestre todo lo que tenga «luz» en su nombre, pero que no sea una luz, y todos los interruptores en la sala de estar:

type: custom:auto-entities
card:
  type: entities
  title: Lights on
  show_header_toggle: false
filter:
  include:
    - name: /[Ll]ight/
      not:
        domain: light
    - type: section
    - domain: switch
      area: Living Room

Enumere todos los sensores que pertenecen a cualquier iPhone:

type: custom:auto-entities
card:
  type: entities
  title: Phones
  show_header_toggle: false
filter:
  include:
    - device: /iPhone/

Enumere los cinco últimos sensores de movimiento activados:

type: custom:auto-entities
card:
  type: entities
filter:
  include:
    - domain: binary_sensor
      attributes:
        device_class: motion
sort:
  method: last_changed
  count: 5

Coloque todos los sensores en tarjetas de entidad individuales en una tarjeta de cuadrícula:

type: custom:auto-entities
card:
  type: grid
card_param: cards
filter:
  include:
    - domain: sensor
      options:
        type: entity

Encienda las escenas haciendo clic en ellas:

type: custom:auto-entities
card:
  type: glance
filter:
  include:
    - domain: scene
      options:
        tap_action:
          action: call-service
          service: scene.turn_on
          service_data:
            # Note the magic value this.entity_id here
            entity_id: this.entity_id

Ejemplo usando plantillas:

type: custom:auto-entities
card:
  type: entities
filter:
  template: |
    {% for light in states.light %}
      {% if light.state == "on" %}
        {{ light.entity_id}},
      {% endif %}
    {% endfor %}

O:

template: "{{states.light | selectattr('state', '==', 'on') | list}}"

Temporizadores activos

type: custom:auto-entities
card:
  type: entities
  title: Temporizadores activos
filter:
  template: |
    {% for timer in states.timer %}
      {% if timer.state == "active" %}
        {{ timer.entity_id}},
      {% endif %}
    {% endfor %}
show_empty: false

Media player reproduciendo

type: custom:auto-entities
card:
  type: entities
  title: Media player reproduciendo
filter:
  include:
    - domain: media_player
      state: playing
  exclude: []
sort:
  method: none

Sígueme a Youtube

Sígueme en Youtube - Entidades automáticas
(Visited 1.119 times, 1 visits today)
EnglishDeutschEspañol