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 elentities:
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 incluirinclude:
Una lista de filtros que especifican qué entidades agregar a la tarjetaexclude:
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 entrue
para eliminar entradas duplicadas exactas. Configúrelo enentity
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 include
y exclude
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 (plight
. Ej .binary_sensor
,media_player
)state:
Coincidir con el estado de la entidad (p"on"
. Ej .home
,"3.14"
)entity_id:
ID de entidad coincidente (plight.bed_light
. Ej. ,input_binary.weekdays_only
)name:
Coincidir con el atributo de nombre descriptivo (pKitchen lights
. Ej. ,Front door
)group:
Coincidir con entidades en un grupo determinado (pgroup.living_room_lights
. Ej. )area:
Coincidir con entidades en un área determinada (pKitchen
. Ej. )device:
Coincidir con entidades que pertenecen a un dispositivo dado (pThomas iPhone
. Ej. )attributes:
Mapa deattribute: value
parejas para emparejar.last_changed:
Minutos de coincidencia desde el último cambio de estado (más útil como comparación, plast_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 untype:
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:
- Incluyendo todas las entidades dadas en
entities:
(esto permite anidarauto-entities
si desea hacerlo por alguna razón …) - Incluya todas las entidades enumeradas en una evaluación
filter.template
- 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. - 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_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 hs_color
valor 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-entities
sí 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 dedomain
,entity_id
,name
,state
,attribute
,last_changed
last_updated
olast_triggered
.reverse:
Configure entrue
para invertir el orden. Por defecto:false
.ignore_case:
Establezca entrue
para que la ordenación no distinga entre mayúsculas y minúsculas. Por defecto:false
.numeric:
Configure entrue
para ordenar por valor numérico. Por defecto:false
a excepción delast_changed
,last_updated
ylast_triggered
métodos de ordenación.attribute:
Atributo para ordenar por simethod: attribute
. Puede ser un atributo de objeto como el anterior (pattribute: rgb_color:2
. Ej. )first
ycount
se 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 %}