Vamos a personalizar aún más Home Assistant con la ayuda de Lovelace. Esto nos permite integrar fácilmente los dispositivos que ya tenemos instalados y configurados en nuestro Home Assistant, sin necesidad de reiniciar continuamente el servidor.
Si por algún motivo, aún no tienes instalado Home-Assistant, puedes hacerlo a través de este enlace donde se nos explica paso por paso como hacer dicha instalación.
Lo primero que debemos hacer, es asegurarnos de tener una versión compatible de Home-Assistant, para ello, debemos tener una versión igual o superior a la 0.72, para poder ver que versión tenemos instalada, podéis verlo de la siguiente forma:
En la parte superior izquierda, tenemos 3 lineas (-) horizontales, pulsamos sobre ellas, y, después, en la parte inferior, pulsamos el último icono (una i dentro de un circulo) y ya se nos mostrará una pantalla con la versión de HA que tenemos (en la imagen podéis ver marcado en rojo donde tenemos que pulsar).
Ahora que estamos seguros de que tenemos una versión compatible, empezamos con la configuración.
En el directorio donde tenemos el configuration.yaml de nuestra instalación de Home-Assistant, creamos un archivo en blanco llamado ui-lovelace.yaml
De esta forma ya tenemos el lovelace activo y operativo, antes de reiniciar, vamos a crear un directorio llamado "www" sobre el mismo directorio en el que se encuentra nuestro archivo de configuración configuration.yaml, por si en algún momento, queremos, por ejemplo, añadir imágenes a nuestro HA.
Ahora abrimos el archivo ui-lovelace.yaml con cualquier editor de texto (personalmente uso Notepad++, pero hay muchos que podemos utilizar).
Ahora pondremos lo siguiente:
1 2 3 4 5 6 |
title: Home Assistant resources: views: - title: Home icon: mdi:home-outline cards: |
A continuación explicamos lo que hace cada cosa:
title: Nombre que le daremos a nuestra página de Home-Assistant, es el texto que se ve en la parte superior izquierda
resources: el contenido que queremos añadir, aquí podemos poner tanto archivos javascript, como también CSS, por el momento no lo usaremos.
views: aquí dentro, es donde añadiremos lo que tenemos integrado en HA
title: este title, es el que se encuentra dentro de views, es el nombre que le daremos a la pestaña en la que nos encontremos (lovelace nombrará estas pestañas de forma numérica)
icon: el icono que queramos utilizar, en el ejemplo que he puesto, se trata del típico icono de casa, para hacer referencia a que se trata de la opción principal
cards: son las "cartas" o "tarjetas" que vamos a mostrar, aquí es donde dependemos de lo que tengamos instalado y configurado en HA, podemos ver todo lo que tenemos dentro del apartado "< >" (dev-state)
Una vez tengamos claro que elementos son los que queremos añadir, tenemos que especificar el tipo de "tarjeta" que vamos a utilizar, las opciones que tenemos son las siguientes:
Como podéis ver, son muchas las opciones que tenemos a nuestra disposición, ahora, vamos a configurar unos cuantos enchufes, una xiaomi yeelight, y alguna que otra cosa más.
En mi caso, tengo configurado en la pantalla principal un apartado donde quiero que se muestre sólo lo que tengo activado, esto lo he hecho con entity-filter de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
- type: entity-filter entities: - entity: switch.iphone icon: mdi:cellphone-iphone - entity: switch.apple_watch icon: mdi:watch-variant - entity: switch.pcotros icon: mdi:laptop - entity: switch.playstation_4 icon: mdi:playstation - entity: switch.anet_a8 icon: mdi:printer-3d - entity: light.dormitorio icon: mdi:lamp state_filter: - "on" card: type: entities title: Dispositivos Activos show_state: false |
Adjunto una captura de pantalla para que se pueda tener en cuenta como debe quedar exactamente en nuestro archivo .yaml.
Como podéis observar, justo después de especificar entity-filter como tipo de card a utilizar, definimos el array de entidades que se mostrarán en ella, especificando para cada una de ellas un icono que identifique fácilmente que está conectado a cada enchufe, también hemos puesto una luz (concretamente una Xiaomi Yeelight).
Tras la definición de los dispositivos que queremos que se tengan en cuenta, especificamos el filtro que queremos aplicar para que se muestren, para ello, definimos únicamente el state_filter con el valor "on", para que sólo tenga en cuenta todos aquellos dispositivos que se encuentren encendidos
El resultado que nos da esa configuración, es el siguiente (con el enchufe del pc y la bombilla encendidos):
Está muy bien, si, pero así sólo puedo apagar lo que previamente tengo encendido ¿Cómo puedo hacer para mostrarlo siempre?, es lo que muchos podéis decir, y es muy sencillo, en este caso, utilizaremos el tipo "glance", el código es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
- title: Dormitorio icon: mdi:hotel cards: - type: glance show_state: false entities: - entity: switch.iphone icon: mdi:cellphone-iphone tap_action: toggle - entity: switch.apple_watch icon: mdi:watch-variant tap_action: toggle - entity: switch.pcotros icon: mdi:laptop tap_action: toggle - entity: switch.playstation_4 tap_action: toggle icon: mdi:playstation - entity: light.dormitorio tap_action: toggle icon: mdi:lamp |
Al igual que antes, así es como debería quedar en vuestra configuración:
El - title: Dormitorio hace referencia a una nueva pestaña, donde únicamente muestro lo que tengo en el dormitorio, con show_state: false lo que hacemos, es evitar que se muestre el texto "Activado/Desactivado" debajo de cada elemento, quedando únicamente el nombre encima de su icono, aquí podéis ver como es el resultado:
Para ocultar el nombre del dispositivo, deberéis utilizar show_name: false
Por último, vamos a explicar otra opción más, que puede resultar muy interesante, vamos a poner una imagen (realmente 2) para cambiar el estado de un switch.
En mi caso, lo he realizado sobre la impresora 3d que tengo (una Anet A8), a la que tengo conectado un TP-Link HS110, que me permite encenderla y apagarla cuando quiero (el control de la impresora lo tengo con Octoprint, pero de eso hablaremos en otra ocasión), además de poder controlar el consumo.
El código utilizado es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
- title: Anet A8 icon: mdi:printer-3d cards: - type: sensor entity: sensor.aneta8_amps - type: sensor entity: sensor.aneta8_kw - type: sensor entity: sensor.aneta8_volts - type: sensor entity: sensor.aneta8_watts - type: picture-entity title: Anet A8 Printer entity: switch.anet_a8 state_image: "on": /local/3dprinter-on.png "off": /local/3dprinter-off.png - type: sensor entity: sensor.aneta8_wattsd |
Al igual que en los ejemplos anteriores, en nuestro código debería quedar así:
Aquí "jugamos" con dos tipos diferentes de tarjetas, el tipo "sensor", que muestra una gráfica, y con "picture-entity", que nos permite definir una foto como una entidad, como podéis comprobar por la configuración, el sensor no tiene ciencia alguna (si tiene más opciones disponibles, pero con las que trae por defecto es más que suficiente para mi), mientras que el "picture-entity" tiene algo más, los campos más importantes son, "entity", aquí definimos la entidad que queremos controlar (en mi caso el switch del TP-Link para encender/apagar la impresora), para después, especificar con "state_image" las dos fotos que vamos a utilizar, una para cuando esté encendido (on) y otra para cuando esté apagado (off).
La ruta absoluta que introducimos es /local/nombre-de-nuestra-imagen esta ruta, hace referencia al directorio www que hemos creado al inicio de esta explicación en la raiz de nuestra configuración de Home Assistant
Ahí, es donde guardaremos las imagenes/fotos que queramos utilizar, en mi caso, he usado una foto que le había hecho con la tira led que le he puesto para que se encienda cuando se enciende la impresora.
Como foto para cuando esté apagada, he usado la misma foto, pero convirtiéndola a blanco y negro, aquí podéis ver el resultado, además de no olvidarnos que podemos hacer la integración conel siguiente proyecto de reproducción de radio on-line en Home-Assistant.
Por último, si queremos que siempre que accedamos a nuestro HA se nos muestre la integración de lovelace, tendremos que pulsar en "Set lovelace as default page on this device" dentro del apartado información, aquí remarco en rojo donde debemos pulsar para llegar a dicho apartado:
Como podéis comprobar, es algo realmente interesante, y sencillo de poder realizar, si queréis más información, u otras configuraciones, podéis obtener más información a través de la propia página de Home-Assistant.