Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Cómo Integrar notificaciones Push HTML en Home Assistant

21 febrero, 2025

En una publicación anterior, vimos cómo crear notificaciones interactivas utilizando IFTTT y cómo hacerlo para dispositivos iOS. Para Android, tenemos otra opción que no requiere aplicaciones de terceros: usar la plataforma HTML5 de Home Assistant.

De acuerdo con el sitio web de Home Assistant, estas notificaciones son compatibles con Chrome y Firefox, funcionando de manera similar a las notificaciones de sitios web de noticias. Lo mejor de todo es que permiten interactuar directamente con Home Assistant, facilitando la ejecución de acciones en respuesta a las notificaciones enviadas desde HA.

Tras esta guía, seremos capaces de enviar notificaciones push a nuestros dispositivos con acciones a realizar.

Configuración de Google Cloud Messaging

Para poder utilizar esta funcionalidad, nuestro sistema tiene que ser accesible desde el exterior y con https. En nuestro caso, el sistema está configurado con Duckdns por lo que no hay problema.

Primero, debemos crear un proyecto en console.cloud.google con el nombre que queramos. De momento simplemente con crearlo será suficiente.

Seguidamente necesitamos verificar nuestro dominio. Esto es un paso necesario para que la plataforma pueda enviar mensajes en nuestro nombre. Para ello iremos a console.cloud.google , seleccionaremos el proyecto que acabamos de crear en el paso anterior y en la pestaña "Verificación de dominio" añadiremos el dominio de nuestra instancia de Home assistant seguido de /local:

Tras clickar en Añadir un dominio, nos saldrá un dialogo pidiendo verificar que este dominio es nuestra propiedad:

Clickaremos en Ir y se nos abrirá el Centro para webmasters de google. Aquí podremos verificar nuestro dominio. Clickaremos en añadir una propiedad y volveremos a escribir el dominio anterior, seguido de /local. Lo que vamos a hacer es obtener un fichero HTML con un token que nos ofrecerá google, y lo ubicaremos en el directorio /config/www de nuestro Home Assistant. De esa manera, google podrá comprobar que efectivamente ese dominio es nuestro. Para ello, en la siguiente página descargaremos el fichero:

SI no teníamos creado el directorio /config/www, lo creamos y colocamos este fichero descargado, sin modificar y con el mismo nombre. Una vez hecho esto, muy importante reiniciar Home Assistant.

Cuando HA haya iniciado de nuevo, haremos click en "Verificar" para que google verifique nuestro dominio

Una vez verificado nuestro dominio, tenemos que añadir el proyecto en el Firebase de google. Navegamos a console.firebase.google.Haremos click sobre Añadir proyecto y seleccionaremos nuestro proyecto creado previamente:

Cuando esté añadido, haremos click en la rueda dentada en el menú de la izquierda, y en el menú seleccionaremos "Configuración del proyecto". Navegaremos a la pestaña "Mensajería en la nube" y tendremos nuestras claves a anotar: Clave del servidor y ID Del remitente

Configuración de Home Assistant

En home assistant necesitaremos definir la plataforma dentro del fichero Configuration.yaml:

Donde API_KEY será la Clave del servidor obtenida anteriormente, y SENDER_ID el ID del remitente del paso anterior.

Habilitando notificaciones

Deberemos habilitar las notificaciones en cada uno de los dispositivos que queramos recibir. Para ello, accederemos a nuestra instancia de Home Assistant desde Chrome o Firefox y desde cualquier dispositivo salvo iOS (Windows, Linux, Android). Haremos click sobre el icono del usuario en el menú y habilitaremos Notificaciones push:

Para probar que nos funcionan las notificaciones, accederemos a la consola de desarrollador y llamaremos al servicio:

Hasta aquí venimos de configurar el servicio de notificaciones y ya somos capaces de enviar nuestra primera notificación de ejemplo. Al final de este post seremos capaces de tener notificaciones interactivas donde podremos ejecutar comandos de respuesta.

Para facilitar este post, realizaremos la configuración siguiendo un ejemplo. Nuestro ejemplo consistirá en poder abrir la puerta si llaman al timbre, como por ejemplo si hemos realizado la modificación al vídeo portero, aunque esto solo servirá de ejemplo.

Creando notificación simple

Lo primero que tenemos que hacer es crear una automatización o editar alguna existente con la cual queramos disparar una notificación por HTML5. Por ejemplo, cuando llamen al timbre.

De esa manera, cuando llamen al timbre recibiremos la notificación en los dispositivos suscritos. De momento, realizaremos la automatización notificando a todos los usuarios suscritos.

Vamos a seguir con el ejemplo del videoportero. Suponiendo que hemos llamado a nuestra plataforma "notifications.htmlpush", un ejemplo de notificación sería el siguiente:

Con esto, recibiremos una notificación cuando nos llamen al timbre. Hasta aquí, nada distinto a lo que teníamos anteriormente.

Añadiendo acciones a la notificación

Sin embargo, la potencia de estas notificaciones reside en que también pueden ponerse acciones a ejecutar. En nuestro caso, vamos a configurar en la notificación de llamada al timbre vamos a añadir un botón para abrir la puerta. Para ello, dentro del servicio notify.htmlpush, añadiremos los parametros action, dentro de otra clave 'data'. Modificamos la acción anterior para que quede como sigue:

De esta manera, tendremos un botón en la notificación para abrir la puerta:

Si quisiéramos más acciones, podríamos añadirlas en al array de actions.

Ahora debemos interceptar el comando, es decir, configurar el qué queremos hacer cuando hagan click en una acción u en otra. es por eso que es importante al nombre de la acción, el valor que aparece en la clave - action. Es importante que sea único en toda la app, ya que será la clave que nos ayudará a identificar en las automatizaciones qué acción o script queremos ejecutar.

Para ello, añadimos una nueva automatización para interceptar el "abrir_puerta":

Lo que hacemos es reaccionar al evento html5_notification.clicked con el event_data que coincida con la clave de nuestra acción, y así ejecutamos el script que queramos en reacción a esta.
Así, si organizamos nuestras automatizaciones en un fichero, quedaría como sigue:

De esta manera, podemos realizar notificaciones con eventos o callbacks asociados sin necesidad de una app de terceros!

Filtrar dispositivos a notificar

Con la configuración anterior, todos los dispositivos suscritos recibirían la notificación, y podrían tomar la determinación de abrir o no la puerta. Sin embargo, se puede filtrar este comportamiento para enviar solo la notificación a algunos dispositivos.

Para ello, con cada suscripción, Home assistant habrá creado una entrada en un fichero json en /config/html5_push_registrations.conf como la siguiente:

SI vamos añadiendo las suscripciones una a una, podremos saber de qué dispositivo son. A continuación podemos editar el nombre "unnamed device" y poner lo que queramos, por ejemplo, "Mi movil"

A continuación, después de los cambios , es necesario reiniciar HA.

Una vez arrancado, podemos editar las automatizaciones añadiendo a quién queremos enviar la notificación. SI no indicamos nada, se enviarán a todos los dispositivos suscritos. Para ello, debemos añadir un atributo target indicando a quién va dirigida la notificación. Así, si quisiéramos enviar la anterior sólo al dispositivo Mi MOvil, editado anteriormente, nuestra automatización quedaría como sigue:

Como en todas las ocasiones, podemos usar templates en los mensajes, títulos, etc y con esto, ya tenemos nuestras notificaciones bidireccionales funcionando!

Escrito por Noel

Buenas, me llamo Noel, soy un divulgador y amante del software libre y Gnu Linux.
Usuario inquieto por ver las novedades y dar a conocer a todos las grandes ventajas del software libre y Gnu Linux.

Suscribirse
Notificarme las
guest
0 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram