Skip to content

auto-entities Home Assistant

Con auto-entities Home Assistant podrás completar automáticamente las tarjetas de Lovelace con entidades que coincidan con ciertos criterios.

Índice de contenido

    Uso

    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 de encaje normal, pero omita el entities:parámetro.
    • 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 agregar a la tarjeta
      • exclude: Una lista de filtros que especifican qué entidades eliminar 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 truepara eliminar entradas duplicadas exactas. Configúrelo en entitypara 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 TODAS las opciones:

    • domain: Coincidir con el dominio de la entidad (p light. Ej . binary_sensormedia_player)
    • state: Coincidir con el estado de la entidad (p "on". Ej . home"3.14")
    • entity_id: ID de entidad coincidente (p light.bed_light. Ej. , input_binary.weekdays_only)
    • name: Coincidir con el atributo de nombre descriptivo (p Kitchen lights. Ej. , Front door)
    • group: Coincidir con entidades en un grupo determinado (p group.living_room_lights. Ej. )
    • area: Coincidir con entidades en un área determinada (p Kitchen. Ej. )
    • device: Coincidir con entidades que pertenecen a un dispositivo dado (p Thomas iPhone. Ej. )
    • attributes: Mapa de attribute: valueparejas para emparejar.
    • last_changed: Minutos de coincidencia desde el último cambio de estado (más útil como comparación, p last_changed: < 15. Ej. )
    • last_updated: Minutos del partido 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 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 toma template 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. Excluya 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 card: y completa entities: 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" # El atributo battery_level es 50 o menos
        - state: "> 25" # El estado es mayor que 25
        - attributes:
            count: "! 2" # El recuento de atributos no es igual a 2
        - state: "= 12" # El estado es exactamente 12 (también coincide con "12", "12.0", etc.)
        - state: 12 # El estado es exactamente 12 pero no "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 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_colorpara 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 hs_colorvalor de saturación superior a 30.

    Entidades de clasificación

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

    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 truepara invertir el orden. Por defecto: false.
    • ignore_case:Establezca en truepara que la ordenación no distinga entre mayúsculas y minúsculas. Por defecto: false.
    • numeric:Configure en truepara ordenar por valor numérico. Por defecto: falsea excepción de last_changedlast_updatedlast_triggeredmétodos de ordenación.
    • attribute:Atributo para ordenar por si method: attribute. Puede ser un atributo de objeto como el anterior (p attribute: rgb_color:2. Ej. )
    • firstcountse puede usar solo para mostrar <count>entidades, comenzando con <first>(comienza con 0).

    Opciones de entidad

    En la options: opción 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 de auto-entities Home Assistant

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

    type: custom:auto-entities
    card:
      type: entities
    filter:
      include: [{}]
      exclude:
        - entity_id: "*weather*"
        - 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: Teléfono con batería baja
    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" # Recuerda que "on" y "off" son mágicos en yaml, y siempre se deben citar
          options:
            tap_action:
              action: toggle

    Otro ejemplo que 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 área Estancia:

    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: Estancia

    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:
                # Tenga en cuenta el valor mágico this.entity_id aquí
                entity_id: this.entity_id       

    Ejemplo usando plantillas para saber que luces tenemos encendidas:

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

    Sígueme a Youtube

    auto-entities Home Assistant - Sígueme en Youtube
    Ajustes