¡Asistente doméstico Core 2022.5!
Y, como suele decirse: “¡Todo parece posible en mayo!”. Pues posibilidades tenemos para ti este último mes de primavera.
Lo más visible de esta versión es la próxima iteración del menú de configuración, cuyo resultado, para mí personalmente, tiene mucho sentido. Me costó un poco acostumbrarme, pero la verdad es que me gusta. 🤩
Mientras tanto, en Nabu Casa, lanzaron suscripciones anuales para Home Assistant Cloud en todo el mundo (a excepción de Canadá, el Reino Unido y la UE, seguirán pronto con soporte en moneda local).
¡También estoy muy emocionado de presentarles un montón de nuevas y potentes funciones de automatización y secuencias de comandos! ¡Algunos para la interfaz de usuario, pero hay algunos cambios reales que le encantarán a nuestra comunidad YAML! 🤖
¡Disfruta del lanzamiento!
../francés
Menú de configuración reorganizado
Hace un par de lanzamientos, comenzamos a reorganizar el menú de configuración y este lanzamiento trae el próximo gran paso en esa reorganización.
El objetivo es tener todo en un solo lugar lógico, y después de las pruebas de los usuarios y muchas discusiones en los canales frontend y UX, así es como se ve ahora el menú:
En particular, se le cambió el nombre de “Configuración” a “Configuración” y tenemos un nuevo submenú “Sistema” (que se muestra a la derecha en la captura de pantalla anterior).
¿Está ejecutando el sistema operativo Home Assistant? El Supervisor se ha fusionado completamente en el menú de configuración para brindar una experiencia uniforme/unificada. Elimina rarezas como tener una sección de red en un menú y la sección Supervisor.
Los planos se trasladaron a la sección de automatizaciones y escenas y, por pedido popular: los ayudantes se trasladaron a la página de dispositivos y servicios.
Las herramientas de configuración de YAML tienen un nuevo hogar en las herramientas de desarrollo, un lugar más lógico para las comprobaciones y recargas de configuración de YAML.
Puede notar que algunos de los nuevos elementos del menú están bastante vacíos. Para esos menús, como “Almacenamiento” y “Hardware”, ¡tenemos más contenido planeado pronto!
Solo para estar seguros, hemos agregado una lista de cambios a la sección de cambios importantes; por favor échales un vistazo en caso de que te falte algo.
Encuentra entidades incluso más rápido que antes
¿Busca acceder a esa entidad rápidamente? ¿Pero no está en tu tablero?
La barra rápida ayuda con eso; solo presiona e
estés donde estés en Home Assistant. Esta versión también agrega un botón de búsqueda rápida a los tableros, para que pueda buscar y acceder a cualquier entidad que necesite, incluso cuando no esté en su tablero actual.
Para ahorrar espacio, la búsqueda no se muestra en los dispositivos móviles; pero está disponible a través del menú adicional (los tres puntos en la parte superior derecha).
Nuevas funciones de automatización y secuencias de comandos
¡Esta versión está repleta de nuevas funciones de automatización y secuencias de comandos! Algunas se agregaron a la interfaz de usuario y otras son funciones avanzadas que solo están disponibles cuando se usa YAML.
Casi todos estos cambios tienen algo en común: han sido solicitados y votados por la comunidad en nuestro foro de solicitudes de funciones.
si-entonces
Cuando introdujimos la acción Elegir, nuestro objetivo era proporcionar una estructura que permitiera otras secuencias de acción selectivamente en función de las condiciones.
Si bien esta estructura es muy flexible y extensa, todavía existía el deseo de una estructura if-then(-else) que fuera pequeña, simple, compacta y limpia. Este lanzamiento te trae precisamente eso.
La nueva acción si-entonces está disponible a través de YAML y a través de la interfaz de usuario mediante editores de scripts y automatizaciones.
Si lo tuyo son las automatizaciones YAML, así es como puedes usar la nueva acción si-entonces en tus automatizaciones y scripts.
actions:
- if:
- alias: "If no one is home"
condition: state
entity_id: zone.home
state: 0
then:
- alias: "Then start cleaning already!"
service: vacuum.start
target:
area_id: living_room
# The `else` is fully optional and can be omitted
else:
- service: notify.notify
data:
message: "Skipped cleaning, someone is home!"
Tenga en cuenta que eso if
también admite una plantilla de condición abreviada (si ese es más su estilo), por ejemplo:
actions:
- if: "{{ states('zone.home') == 0 }}"
then:
- alias: "Then start cleaning already!"
service: vacuum.start
target:
area_id: living_room
Se puede encontrar más información en la documentación de los scripts.
Activador de calendario
@allenporter le dio mucho amor a la integración de Calendar (y la integración de Google Calendars). En el proceso, se agregó un nuevo disparador de Calendario, que está disponible para usar en sus automatizaciones.
El nuevo disparador de calendario está disponible en el editor de automatización.
Este nuevo disparador es un poco más flexible que el disparador de estado (anteriormente solo otra opción). También está disponible para automatizaciones en YAML, y el disparador proporciona muchas variables de disparador que puede usar en sus plantillas.
Ejemplo de activador de calendario en YAML
El activador de calendario, por supuesto, también está disponible en YAML. Este ejemplo de automatización muestra el uso del activador y algunas de las variables que proporciona.
automation:
trigger:
- platform: calendar
event: start
entity_id: calendar.personal
action:
- service: persistent_notification.create
data:
message: >-
Event {{ trigger.calendar_event.summary }} @
{{ trigger.calendar_event.start }}
Puede encontrar más información en la documentación de integración de Calendar.
Para cada
Teníamos varias opciones disponibles para repetir un grupo de acciones. Por ejemplo, repetir en función de un conteo, mientras se cumple una condición o hasta que se cumple una condición.
Estos son muy poderosos, pero también se solicitó y se votó a favor de repetir una secuencia para cada elemento de una lista. Esta versión agrega: Para cada uno.
Esta es una función avanzada y solo está disponible para su uso en automatizaciones escritas manualmente en YAML. Aquí hay un ejemplo que envía dos notificaciones en diferentes idiomas:
repeat:
for_each:
- language: English
message: Hello World
- language: Dutch
message: Hallo Wereld
sequence:
- service: notify.phone
data:
title: "Message in {{ repeat.item.language }}"
message: "{{ repeat.item.message }}!"
Cada elemento de la lista se ejecutará en una secuencia de acciones, y el elemento está disponible como una variable que puede usar en sus plantillas. Los elementos que puede proporcionar a for_each
pueden ser asignaciones, listas de solo cadenas e incluso plantillas complejas que proporcionan una lista como resultado.
Se puede encontrar más información en la documentación de los scripts.
Deshabilitar cualquier activador, condición o acción
A veces, es posible que desee deshabilitar un activador, una acción o una condición específicos, ya sea para realizar una prueba, una solución temporal o por cualquier otro motivo.
En YAML, comentaría partes de su automatización, pero si quisiera hacerlo en la interfaz de usuario, la única opción que tiene es eliminarlo de la automatización o secuencia de comandos.
En esta versión, agregamos soporte para deshabilitar un activador, acción o condición; sin necesidad de quitarlo o comentarlo! Un disparador deshabilitado no se activará, una condición deshabilitada siempre pasa y una acción deshabilitada se omite.
Si lo tuyo son las automatizaciones YAML, esta función deshabilitada sigue siendo útil. Si bien, por supuesto, aún puede comentar partes fácilmente; el uso de esta función hará que las partes deshabilitadas sigan apareciendo en la automatización y en los seguimientos de depuración de secuencias de comandos.
Cada disparador, condición y acción ahora tiene un enabled
parámetro. que puedes configurar false
para deshabilitar esa sección. Por ejemplo:
# Example automation with a disabled trigger
automation:
trigger:
# This trigger will not trigger, as it is disabled.
# This automation does not run when the sun is set.
- enabled: false
platform: sun
event: sunset
# This trigger will fire, as it is not disabled.
- platform: time
at: "15:32:00"
Se puede encontrar más información en la documentación de Desencadenadores, condiciones y acciones deshabilitados.
Continuar en caso de error
Una automatización ejecuta una secuencia de acciones. Una de las preguntas que a menudo vemos/leemos/obtenemos es: “Si una de las acciones falla, ¿por qué se detiene toda la automatización?”
¡Buena pregunta! Para responder a esto, hemos agregado: Continuar en caso de error.
Permite que pasos específicos en una secuencia de script o automatización fallen sin interrumpir el resto de la secuencia.
Esta característica avanzada actualmente solo está disponible para automatizaciones y scripts escritos en YAML. El siguiente ejemplo muestra una acción de automatización que siempre ejecutará la segunda acción, incluso si la primera falla con un error:
action:
- alias: "If this one fails..."
continue_on_error: true
service: notify.super_unreliable_service_provider
data:
message: "I'm going to error out..."
- alias: "This one will still run!"
service: persistent_notification.create
data:
title: "Hi there!"
message: "I'm fine..."
Se puede encontrar más información en la documentación de los scripts.
Detener un script o una automatización
Ahora puede detener un script o una automatización a la mitad con la acción Detener. En combinación con la nueva acción If-then mencionada anteriormente, esto se puede usar para detener una automatización o un script de forma condicional.
Por ejemplo, esto puede ser útil si desea que solo una parte de una automatización se ejecute cuando esté en casa y que se ejecute por completo cuando esté fuera.
Esta función está disponible tanto a través de la interfaz de usuario como de YAML.
Al escribir automatizaciones o scripts YAML, así es como se ve la acción Detener:
action:
- stop: "Stop right here!"
# Optionally mark it as an unexpected error
error: true
Se puede encontrar más información en la documentación de los scripts.
Paralelización de acciones
Esta versión presenta una función muy avanzada que proporciona una forma de paralelizar acciones.
De manera predeterminada, todas las acciones en Home Assistant se ejecutan secuencialmente. Esto significa que la siguiente acción solo se inicia después de que se haya completado la acción actual.
La ejecución en serie no siempre es necesaria, por ejemplo, si la secuencia de acciones no depende una de la otra y el orden no importa. Para esos casos, la acción paralela se puede usar para ejecutar las acciones en la secuencia en paralelo, lo que significa que todas las acciones se inician simultáneamente.
automation:
- trigger:
- platform: state
entity_id: binary_sensor.motion
to: "on"
action:
- parallel:
- service: notify.person1
data:
message: "These messages are sent at the same time!"
- service: notify.person2
data:
message: "These messages are sent at the same time!"
Esta función está parcialmente disponible a través de la interfaz de usuario; sin embargo, como se dijo: esta es una característica bastante poderosa y avanzada, y viene con advertencias. Asegúrese de consultar la documentación del script sobre la paralelización de acciones antes de decidirse a usarlo.
Uso de un disparador de estado único para varias entidades
Si escribe automatizaciones en YAML, probablemente ya esté al tanto de la capacidad de activar múltiples entidades en un solo activador; Ha existido durante bastante tiempo.
Y ahora también disponible en la interfaz de usuario. Una pequeña adición que podría ayudarlo a reducir la duración de sus automatizaciones administradas por la interfaz de usuario.
Desencadenar al no coincidir con/desde estados
Esta es una característica exclusiva de YAML que hemos agregado a los activadores de estado: Activación al no coincidir con/desde estados. Sí, has leído bien. Cuando no
coincide con lo que desencadena.
En vez de from
ahora puedes usar not_from
y en lugar de to
ahora puedes usar not_to
. Este activador de ejemplo solo se activará si el estado anteriormente no era “no disponible” o “desconocido”:
trigger:
- platform: state
entity_id: light.living_room
not_from:
- "unavailable"
- "unknown"
to: "on"
Se puede encontrar más información en la documentación de condición del estado.
Notación abreviada para condiciones lógicas
Una pequeña característica de YAML que agregó @thomasloven puede hacer que sus automatizaciones y scripts basados en YAML se vean significativamente más limpios.
Condiciones lógicas (también conocidas como and
, or
, not
) ahora tienen una notación abreviada. Algunos ejemplos de pseudocódigo para mostrarlos a todos:
or:
- <condition>
- and:
- <condition>
- <condition>
- not:
- <condition>
en lo anterior <condition>
por supuesto, debe reemplazarse con una condición real, pero la nueva sintaxis breve de or
, and
y not
es claramente visible.
Se puede encontrar más información en la documentación de la condición.
Colores de los segmentos de la tarjeta de indicador
¡Una excelente adición de @Netzwerkfehler es la capacidad de definir libremente la cantidad de segmentos y sus colores de la tarjeta de indicador!
Captura de pantalla de la tarjeta de indicador con varios segmentos de colores.
Útil si desea definir los límites superior e inferior del sensor en su indicador, como se muestra en el ejemplo anterior. El ejemplo de configuración utilizado para la captura de pantalla anterior se puede encontrar en la documentación de la tarjeta de calibre.
Optimizaciones de bases de datos
La última versión se centró en reducir el tamaño de la base de datos y optimizar la escritura de datos en la base de datos.
Si bien hay algunos…
Visto en