auto-entities Home Assistant

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.

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
(Visited 1.648 times, 2 visits today)