Limitar usuarios en Home Assistant

Limitar usuarios en Home Assistant

Como probablemente, tarde o temprano, todos buscamos cómo hacerlo, en esta entrada te enseño cómo limitar usuarios en Home Assistant.

¿Por qué querría limitar usuarios en Home Assistant?

Aunque es una de las preguntas más repetidas en nuestra comunidad, cabe plantearse por qué querríamos hacerlo. La verdad es que pueden darse muchas situaciones en las que busquemos limitar las capacidades de nuestros usuarios, por ejemplo:

  • Cuando en casa hay otros usuarios «menos hábiles» y queremos evitar que dañen la configuración de nuestra instancia.
  • Cuando tenemos dispositivos que, potencialmente, pueden ser vistos y usados por terceros (como un wall panel de invitados) y queremos limitar la información y controles que muestran.
  • Cuando estamos configurando un dispositivo con unas características concretas, y queremos adaptar su estética a las funciones deseadas.
  • Cuando queremos otorgar a un tercero la capacidad de actuar sobre alguno de nuestros dispositivos (como abrir una puerta), sin que tenga acceso a nada más.

Lo cierto es que hay distintas medidas que puedes llevar a cabo, y todo depende de lo que quieras conseguir. A continuación vamos a hacer un repaso de algunas de ellas, para que puedas aplicar las que consideres adecuadas.

Segmentación de usuarios

Creo que esta es la primera medida que hay que llevar a cabo, y me refiero a crear un nuevo usuario para cada persona o dispositivo con acceso permanente a Home Assistant. Esto no sólo te va a permitir dotar de permisos específicos a cada usuario y limitar los paneles que puede ver, también te proporcionará un registro de quién ha ejecutado las acciones.

Para crear un nuevo usuario ve a Configuración > Personas > Usuarios > Añadir usuarios. En la ventana emergente puedes activar dos casillas interesantes:

  • Sólo acceso local. Como indica, esto va a limitar el acceso del usuario en cuestión a nuestra red local. Esta opción es totalmente recomendable, por ejemplo, cuando se trata de un wall panel para evitar brechas de seguridad.
  • Administrador. Puesto que sólo los administradores pueden gestionar usuarios, dispositivos, automatizaciones y paneles, es conveniente que sólo tú (o quien admnistre HA) tenga este permiso. De esta forma evitarás que rompan algo «sin querer».

A partir de aquí puedes controlar muy fácilmente quien ha activado alguno de tus dispositivos, añadiendo una tarjeta de tipo «Registro» o leyendo los datos generados por el evento correspondiente.

Mostrar u ocultar paneles a usuarios

Una de las cosas que podemos hacer de forma sencilla es elegir qué paneles puede ver cada usuario. Personalmente, más que una medida de seguridad, me parece una buena forma de ordenar qué contenido muestras en cada situación. Esto resulta muy útil para personalizar tus paneles y que se adapten a la resolución del dispositivo, el gusto del usuario o la información que quiere visualizar.

Por un lado, cualquier usuario que haga login en Home Assistant puede hacer clic en su perfil en la parte inferior del menú lateral, seleccionar un tema entre todos los que tengas instalados y elegir un panel para que sea el que se muestra por defecto al acceder.

Estas opciones se encuentran en el apartado «Configuración del navegador» y hacen referencia al cliente donde lo configures. Esto significa que las opciones que selecciones, por ejemplo, en tu dispositivo móvil, no afectan a otros dispositivos (como el acceso desde el navegador del ordenador).

Por otro lado, si entras en el «modo edición» de cualquiera de tus paneles (pulsando en el icono del lápiz) y accedes a la pestaña de «Visibilidad», puedes seleccionar qué usuarios tienen acceso a este panel en concreto.

Mostrar u ocultar menús al usuario

Una de las consultas más realizadas es la de cómo ocultar el menú lateral y la barra superior. Y es normal, ya que resulta muy útil tanto en términos estéticos como a la hora de limitar usuarios en Home Assistant.

Por defecto, cualquier usuario puede hacer clic en su perfil en la parte inferior del menú lateral y activar la opción de «Ocultar siempre el panel lateral» en el apartado de Configuración del navegador. No obstante, esto sólo sirve para ganar espacio en tu panel en el momento de abrirlo, pero no lo deshabilita para el usuario. Basta con que pulse sobre el icono de las tres líneas de la barra superior para desplegarla.

Si lo que estás buscando es que desde el dispositivo no se pueda acceder ni al menú lateral ni a la barra superior, la opción más popular es descargar «Kiosk Mode» desde HACS.

Una vez instalado, accede desde el menú lateral al panel correspondiente y pulsa sobre el icono del lápiz de la esquina superior derecha. Ahora pulsa sobre el icono de los 3 puntos que ha aparecido en su lugar, y selecciona la opción «Editor de configuración en bruto». Esto te mostrará el código yaml del panel, para que añadas las siguientes líneas al principio del código.

kiosk_mode:
  hide_header: true
  hide_sidebar: true

Otorgar permisos restringidos

Personalmente, creo que abrir la puerta de tu instancia a cualquier persona puede ser peligroso. Es por ello que, cuando se trata de usos esporádicos prefiero cambiar el enfoque para limitar usuarios en Home Assistant. Por ejemplo:

  • Si tienes una vivienda con alquiler vacacional, seguro que quieres que los inquilinos tengan acceso a ciertos controles (iluminación, climatización, etc), pero no a la configuración o el resto de dispositivos. En este caso puedes crear un sencillo de panel de control en cualquier pantalla usando ESPHome. De esta forma no podrán llegar a través de ellos al resto de información.
  • Si ESPHome no es lo tuyo o simplemente quieres que los invitados puedan acceder desde sus propios dispositivos, también puedes crear un sencillo panel web utilizando ‘webhooks’. Conseguirás lo mismo que en el caso anterior, ya que sólo podrán ejecutar aquellos dispositivos que incluyas explícitamente.
  • Y si lo que buscas es algo mucho más sencillo, como permitir que alguien entre a regar las plantas o limpiar, puedes darle acceso (por ejemplo) a través de un bot de Telegram. De esta forma no sólo no tendrán acceso a otros dispositivos, también puedes aplicar condicionantes como el tramo horario, los días de la semana, el usuario concreto…