Skip to content

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.

Índice de contenido

    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
    Ajustes