En el sistema de domótica de Home Assistant, las tarjetas son la forma de sacar los controles de algún dispositivo al menú principal para interactuar con él. Por ejemplo, si tienes una integración del aire acondicionado, podrás sacar al menú principal la tarjeta específica de aire acondicionado, o bien una tarjeta tipo «Mosaico» o «Tile Card». Lo mismo ocurre con los deshumificadores, calefacción e incluso con los botones de acción para abrir o cerrar puertas, encender y apagar luces etc. Hoy en RedesZone os vamos a enseñar cómo se pueden «bloquear» algunas de estas tarjetas, con el objetivo de evitar pulsaciones accidentales.
Cuando tenemos muchas integraciones en nuestro Home Assistant, es posible que queramos añadir una capa de seguridad a los diferentes botones para no «darle» sin querer y ejecutar una acción. Por ejemplo, si tenemos una alarma conectada a nuestro sistema de domótica, podemos impedir abrir la puerta del garaje o de la calle, si previamente no la hemos desactivado con el móvil, para evitar que salte.
Otro de los motivos de implementar este tipo de integración en este software puede servir para reforzar la seguridad de una acción en concreto, como abrir la puerta del garaje cuando estamos en casa, para «impedir» abrirla por error al pulsar el botón.
Hay que tener claro que existe un software que podemos instalar a través de HACS muy interesante que se llama «Restriction Card«, y lo que nos permite es «bloquear» las tarjetas del menú principal (Lovelace). El desbloqueo de estas tarjetas puede ser a través de un doble toque, introduciendo un PIN o contraseña, e incluso en función de una condición adicional, todo es muy configurable. Por lo que es una de las diferentes alternativas que se pueden llegar a usar en herramienta si se configura de la manera correcta.
Instalación y documentación
Lo primero que debemos hacer es instalar una integración de categoría «Lovelace» llamada «Restriction Card«. Esto lo tendremos que hacer a través de HACS, en RedesZone tenemos un completo tutorial paso a paso de cómo instalar y configurar HACS correctamente para instalar software adicional en nuestra instalación de Home Assistant. Por lo que una vez que contemos con este complemento en particular, podremos ponernos más a la obra para instalar y configurar esta integración.
Una vez que lo tengamos instalado y funcionando perfectamente, nos metemos y realizamos la búsqueda de Restriction Card, hay que tener en cuenta que este software tiene miles de descargas porque es realmente útil en el día a día para los usuarios, como es nuestro caso.
Si pinchamos en la entrada que nos encuentra el buscador, podemos ver los requisitos de Home Assistant, y también podremos ver un pequeño tutorial de cómo se debe utilizar en nuestro Lovelace (menú principal). Algo bastante útil si no tienes muy claro cuál es la finalidad de esta opción y quieres conocer con más detalle sobre esta integración.
Tanto en la web oficial de GitHub del proyecto, como directamente a través de HACS, vamos a poder encontrar un tutorial de cómo debemos utilizarlo en nuestras tarjetas de Lovelace, ya que no deja de ser una tarjeta adicional donde dentro tendremos que meter otras tarjetas, a modo de «encapsulación». En estos menús podemos ver todas las opciones que dispone, las opciones a la hora de restringir el acceso, opciones de confirmación, y también qué opciones tenemos para el desbloqueo por PIN, el bloqueo, opciones de excepciones a usuarios (administradores, por ejemplo) y mucho más.
Para proceder con la instalación de este software, basta con pinchar en el botón azul de «Descargar», nos pedirá confirmar la acción y volvemos a pinchar en «Descargar». Una vez instalado, nos pedirá refrescar el Home Assistant para borrar la caché del navegador, ya que este software está muy relacionado con Lovelace y es necesario hacerlo así.
En estos instantes ya tendremos esta nueva tarjeta llamada «Restriction Card» instalada, ahora vamos a ver algunos ejemplos de uso con las configuraciones correspondientes. Aunque, una de las primeras recomendaciones que se ofrecen de esta opción es que no se tiene que usar como medio para proteger la integridad de una vivienda. Básicamente, porque alguien que cuente con el conocimiento y los medios necesarios puede saltarse estas restricciones si quiere y tener acceso igualmente. Aun así, son muchos los usos que se pueden aprovechar de esta integración para Home Assistant.
Ejemplos de uso
Nosotros usamos este software de «Restriction Card» para bloquear ciertos botones que nos interesan, pero solamente en determinados casos y si se cumplen ciertas condiciones. Por lo que hay que tener bien claro cuáles son los mejores usos que se pueden aprovechar de esta intergación.
Para ello, os vamos a poner dos ejemplos donde nosotros lo usamos diariamente, y otro ejemplo de cómo integrar esta restriction card a cualquier tarjeta que ya tengas configurada en Lovelace. Así se puede tener una idea más general de cómo usar Restriction Card.
Bloqueo dependiendo de una condición
Nuestro sistema de domótica principal es Home Assistant, sin embargo, para la alarma de casa usamos una de Ajax Systems, la cual se puede comunicar vía protocolo SIA con el sistema de domótica de Home Assistant. Esto solo nos permite saber el estado de la alarma (si está armada, desarmada o modo noche), y también si ha ocurrido un salto de alarma o no, pero al integrarlo por SIA el fabricante Ajax limita su configuración por temas de seguridad. De esta forma, si tenemos la alarma armada, no podremos desarmarla con el sistema de domótica, pero sí leer su estado. Igualmente, nos beneficiamos de conocer esta información en todo momento, de ahí su gran utilidad.
Ya nos ha ocurrido varias veces que olvidamos desactivar la alarma de Ajax Systems al entrar por el garaje. Siempre usamos Home Assistant para abrir la puerta por la comodidad que nos proporciona, y también para evitar que alguien cercano nos «clone» el mando del garaje utilizado. De esta forma, abrimos la puerta del garaje y en cuanto aparecemos por él, automáticamente salta la alarma por descuido.
Aunque hay una manera que hemos empleado para evitar esto. En este caso, lo que he hecho es «bloquear» los botones de apertura del garaje cuando la alarma está en modo «ARMADO», y solamente podemos pulsarlos en el caso de que hagamos «tap», y posteriormente pulsemos el botón. Si desarmamos la alarma, los botones no están bloqueados de ningún modo.
En la siguiente galería podéis ver la primera foto con la alarma desarmada, y en la segunda foto podéis ver los botones con la alarma armada. Tal y como podéis ver, en los botones «Dos puertas» y «Garaje Nuestro» podéis ver que hay un pequeño candado en la parte superior izquierda.
La configuración de los botones «Dos puertas» y «Garaje nuestro» es exactamente igual respecto al «restriction-card». Lo único que debemos tener mucho cuidado es con la sintaxis, ya que es YAML y debemos indentarlo correctamente para evitar errores de sintaxis. En algunas ocasiones, aunque no haya errores de sintaxis, no funciona Restriction card porque la indentación es incorrecta.
El código fuente de todo «Control casa» es el siguiente para que os ayude con la configuración:
title: Control Casa
type: horizontal-stack
cards:
- show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: script.1641920572722
name: Garaje Comu
hold_action:
action: none
show_state: false
icon: mdi:home-city
icon_height: 50px
- type: custom:restriction-card
card:
type: button
entity: script.abrir_garaje_dos_puertas_a_la_vez
name: Dos Puertas
icon: mdi:home-floor-2
icon_height: 50px
tap_action:
action: toggle
condition:
entity: sensor.sensor_alarma_ajax_armado_desarmado
value: ARMADO
- type: custom:restriction-card
card:
type: button
entity: cover.garajepuertaiconograndebloqueo
name: Garaje Nuestro
icon_height: 50px
tap_action:
action: toggle
condition:
entity: sensor.sensor_alarma_ajax_armado_desarmado
value: ARMADO
La parte realmente importante, y que está relacionada con el restriction-card es la siguiente:
- type: custom:restriction-card
card:
type: button
entity: script.abrir_garaje_dos_puertas_a_la_vez
name: Dos Puertas
icon: mdi:home-floor-2
icon_height: 50px
tap_action:
action: toggle
condition:
entity: sensor.sensor_alarma_ajax_armado_desarmado
value: ARMADO
Debemos tratar la restriction-card como si fuera una tarjeta más, así que podemos integrarla en un vertical-stack o en un horizontal-stack sin ningún problema. La parte de la condición de bloqueo es la siguiente:
condition:
entity: sensor.sensor_alarma_ajax_armado_desarmado
value: ARMADO
El resto del código que tenemos en la parte de arriba, es como si fuera una tarjeta más, excepto al principio el «– type: custom:restriction-card«. Si en la sección de «Tap_action:» no ponemos nada, por defecto, la opción de desbloqueo es «tap».
Bloqueo en todo momento
Otra tarjeta que usamos diariamente es la del listado de entidades, y aquí tenemos incluido un pequeño «cover» para ver perfectamente el estado de la puerta del garaje. En esta parte solamente tenemos «bloqueado» esta cover que hemos creado manualmente, podéis ver el código a continuación:
Todo el código fuente sería el siguiente:
type: custom:hui-entities-card
entities:
- entity: alarm_control_panel.8235_abcd1234_zone_1_alarm
name: Alarma Ajax Systems
- card:
entity: cover.garajedoor
name: Garaje Nuestro
restrictions:
confirm: null
type: custom:restriction-card
row: true
action: double_tap
- entity: counter.garaje_aperturas_contador
name: Número abrir/cerrar mensual
icon: mdi:garage-variant
- entity: binary_sensor.garajecamara_sensor_movimiento
name: Movimiento en garaje
- entity: switch.adguard_home_proteccion
name: Adguard Home
show_header_toggle: false
state_color: true
title: Estados
La parte verdaderamente importante es la siguiente:
- type: custom:restriction-card
card:
entity: cover.garajedoor
name: Garaje Nuestro
restrictions:
confirm: null
row: true
action: double_tap
Como pdéis ver, estamos usando la card con una entidad cover dentro, y tenemos la restricción con «confirm: null» y desbloqueo con double_tap, recuerda que, si no pones nada, el desbloqueo predeterminado es «tap» únicamente.
Bloqueo en todo momento y desbloqueo con PIN
Si tenemos una horizontal-stack con varios botones en su interior, tenemos la posibilidad de integrar el restriction-card de manera muy sencilla, no hay que hacer todo de nuevo de forma manual, simplemente integrarlo y asegurarnos de que la sintaxis y la indentación es correcta. Aquí podéis ver el código fuente predeterminado de dos botones en un horizontal-stack:
El código es el siguiente:
type: horizontal-stack
cards:
- show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: fan.shelly_1_extractor
name: Extractor
hold_action:
action: none
show_state: false
icon_height: 50px
- show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: siren.timbre_y_luz_exterior_channel_2
name: Timbre
hold_action:
action: none
show_state: false
icon_height: 50px
Si ahora integramos el restriction-card, se quedaría de la siguiente forma:
El código fuente sería el siguiente:
type: horizontal-stack
cards:
- type: custom:restriction-card
restrictions:
pin:
code: 1234
card:
show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: fan.shelly_1_extractor
name: Extractor
hold_action:
action: none
show_state: false
icon_height: 50px
- type: custom:restriction-card
card:
restrictions:
confirm: null
show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: siren.timbre_y_luz_exterior_channel_2
name: Timbre
hold_action:
action: none
show_state: false
icon_height: 50px
En la parte del botón del «Extractor», hemos decidido incorporar un código PIN para proceder con el desbloqueo, tal y como podéis ver:
type: horizontal-stack
cards:
- type: custom:restriction-card
restrictions:
pin:
code: 1234
card:
show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: fan.shelly_1_extractor
name: Extractor
hold_action:
action: none
show_state: false
icon_height: 50px
Si hacemos un tap, nos saldrá un mensaje emergente que nos indica que introduzcamos el código PIN configurado.
En caso de meter el código PIN erróneo, el candado aparecerá en rojo y no se desbloqueará.
Un aspecto importante, es que esto no es una medida de seguridad frente a usuarios malintencionados, sino de cara a evitar despistes nuestros que se pueden dar en diferentes momentos, o hasta para cuando sea necesario bloquear ciertas partes de Home Assistant a familiares o amigos si tenemos un Wall Panel. Por lo que se trata de un detalle importante a la hora de usar esta integración. Por ejemplo, en el caso de que quieras esconder ciertos botones, lo mejor que puedes hacer es crear otra vista adicional, y darle permisos de visualización solamente a ciertos usuarios y no a todos. Así nos podemos asegurar de quién puede tener ese acceso o no.
Como podéis ver, esta tarjeta de Restriction Card es realmente útil para bloquear otras tarjetas, haciendo que tengamos que hacer tap, doble tap e incluso introducir un PIN o una contraseña. Si queréis ver más opciones de configuración que tenemos disponibles, podéis entrar en el GitHub de Restriction Card donde tenéis todas ellas, y también el código fuente del software.