Encuentro mi teléfono silencioso gracias a Home Assistant

Mi objetivo

A veces pongo mi teléfono en silencio o vibra y es precisamente cuando he hecho esto que ya no puedo encontrar mi teléfono.

Instalo la aplicación Home Assistant para Android

Hay toneladas de documentación para instalar la aplicación HA, no vuelvo a ella.

Configurar el enlace entre la aplicación y mi HA

Todos eligen el enlace que establecen local o remotamente. Por mi parte, me suscribí a la suscripción de Nabu Casa para el enlace con Alexa.

Durante mucho tiempo, traté de configurar el IP:port local o el enlace URL de Nabu Casa externamente, pero me encontré con algunos fallos.

Renuncié a la idea de definir una URL interna, porque solo me dio problemas.

Finalmente, la forma más fácil es verificar Ha Cloud, sin una URL interna, y todo ha funcionado perfectamente desde entonces.

 

 

 

Identifico mi teléfono en HA

Al configurar mi teléfono, gracias a mi gran inspiración, especificé el nombre: S21 para mi Samsung S21.

Voy a Home Assistant y voy a buscar mi teléfono.

Luché un poco para encontrar el comando de notificación, finalmente, encontré, será este servicio el que se usará:

  • Servicio: notificar.mobile_app_s21

Encuentro la configuración del servicio Notificar

Mi objetivo es hacer que el teléfono hable. incluso si está en silencio.

Aquí está el Yaml del servicio a activar:

Servicio: Notificar.mobile _app_s21 datos: Mensaje: Datos TTS: ttl: 0 prioridad: High Media _stream (en inglés): _stream _max tts_texto: ¡El teléfono de Sigalou está aquí!

Esto es lo que significan las diferentes partes de este código:

  • servicio: Este es el servicio que utilizo para enviar la notificación. En este caso, es notificar.mobile_app_s21, indicando que se trata del servicio de notificación de la aplicación móvil en un dispositivo Samsung Galaxy S21.
  • datos: Esta es la sección donde proporciono los datos específicos de la notificación.
    • mensaje: Este es el texto de la notificación que quiero enviar a su dispositivo.
    • ttl: Significa "Tiempo de vivir". Esta es la duración de la notificación, en segundos. En este ejemplo, 0 significa que la notificación no se conservará si el dispositivo no está disponible para recibirla inmediatamente.
    • prioridad: Esto define la prioridad de la notificación. En mi ejemplo, la prioridad se establece en "alta" para indicar una prioridad alta.
    • media_stream: Esto se puede utilizar para enviar flujos de medios con notificación. _stream _max ajustará temporalmente el volumen del flujo de alarma al nivel máximo, emitirá la notificación y luego volverá al nivel de volumen original.
    • tts_text: Esto significa "Texto a voz". Utilizo esta opción para especificar un texto que se leerá en voz alta cuando se reciba la notificación en el dispositivo.

Añado automatización

Para activar este servicio desde el Dashboard, agrego una automatización HA

alias: Encuentra la descripción del Teléfono de Sigalou: Activador "": [] condición: [] acción: - repetir: cómputo: 2 secuencias: - servicio: Notificar.mobile _app_s21 datos: Mensaje: Datos TTS: ttl: 0 prioridad: High Media _stream (en inglés): _stream _max tts_texto: ¡El teléfono de Sigalou está aquí! - retraso: horas: 0 minutos: 0 segundos: 4 milisegundos: 0 - servicio: Notificar.mobile _app_s21 datos: Mensaje: Datos TTS: ttl: 0 prioridad: High Media _stream (en inglés): _stream _max tts_texto: ¡El teléfono de Sigalou está aquí! - retraso: horas: 0 minutos: 0 segundos: 4 milisegundos: Modo 0: soltero

Añado un botón en mi Dashboard

Hay una gran cantidad de posibilidades de hacer un botón que desencadena la automatización.

Para hacerlo muy sencillo al principio, añado un «botón», aquí está su código Yaml:

_Nombre del espectáculo: Auténtico espectáculo _icon: tipo verdadero: botón tap_action: Acción: servicio de atención telefónica: _data del servicio automation.trigger: {} objetivo: _id (entidad): Automation.find_telephone_sigalou entidad: Automation.find _telephone _sigalou icono: mdi:cellphone-basic

Proyecto de mejora del usuario

El RetEx puede detenerse allí, pero continuaré mejorando la interfaz de usuario.

Noté una posible latencia (y aleatoria) entre el momento en que presiono y el momento en que habla el teléfono. Por lo tanto, un usuario se verá tentado a presionar algunos rápidamente en el botón. Para evitar esto, acusaré recibo en la pantalla del envío del pedido y permitiré al usuario rastrear el envío de pedidos, para esto, alimentaré una variable de _text de entrada que mostraré en la pantalla cuando no esté vacía.

Añado una entrada_text para mostrar un mensaje durante el envío

En Configuración / Dispositivos y Servicios / Entradas, agrego un Switch. Yo añadiría Texto en pantalla

A esta nueva entrada _text se le llama input_text.texte_a_l_ecran

Cambié la automatización para añadir potencia a esta entrada_text

Aquí está el nuevo código Yaml para mi automatización:

alias: Encuentra la descripción del Teléfono de Sigalou: Activador "": [] condición: [] acción: - repetir: cómputo: 2 secuencias: - servicio: input_text.set_valor objetivo: _id (entidad): input_text.text _a_l_ecran datos: valor: Orden enviada a {{ now().strftime(')%H:%M:%S') }} - servicio: Notificar.mobile _app_s21 datos: Mensaje: Datos TTS: prioridad: High Media _stream (en inglés): _stream _max tts_texto: ¡El teléfono de Sigalou está aquí! - servicio: input_text.set_valor objetivo: _id (entidad): input_text.text _a_l_ecran data_template: valor: >- {{ states('input _text.texte _a _l _ecran') }} . [ El teléfono de Sigalou está aquí ] - retraso: horas: 0 minutos: 0 segundos: 4 milisegundos: 0 - servicio: Notificar.mobile _app_s21 datos: Mensaje: Datos TTS: prioridad: High Media _stream (en inglés): _stream _max tts_texto: ¡El teléfono de Sigalou está aquí! - servicio: input_text.set_valor objetivo: _id (entidad): input_text.text _a_l_ecran datos: valor: >- {{ states('input _text.texte _a _l _ecran') }} . [El teléfono de Sigalou es el ] - retraso: horas: 0 minutos: 0 segundos: 4 milisegundos: 0 - servicio: input_text.set_valor objetivo: _id (entidad): input_text.text _a_l_ecran datos: valor: Modo "": soltero

Esta automatización modificada enviará mensajes a la entrada _text.texte _a_l_ecran en cada paso y luego purgará la entrada _text.texte _a_l_ecran al final.

Añado una tarjeta condicional que mostrará el mensaje

Este gran mapa mostrará un mapa con el contenido de la entrada _text.text _a _l _ecran, pero solo cuando la entrada _text.text _a _l _ecran no está vacía.

- tipo: condiciones condicionales: - condición: entidad estatal: input_text.texte_a_l_ecran state_not: Tarjeta «»: Tipo: contenido de la reducción: | ## {{ states('input _text.texte _a _l _ecran') }}

Jugando con la pila horizontal y la pila vertical, mostré este mapa en todo el ancho de mi tablero en la parte superior.

Estoy mejorando el mapa que muestra la baldosa en el tablero

Tipo: custom:entidad de tarjeta de botón: light.basement _wall show _entity _picture: a la verdadera entidad_picture: /local/home/Presence/sigalou.1.png?v=2 nombre: 💬 Haz que Sigalou toque el teléfono de _action: Acción: servicio de atención telefónica: _data del servicio automation.trigger: {} objetivo: _id (entidad): Automation.find _telephone Estilos de _sigalou: _imagen de la entidad: - anchura: Nombre 140px: - tamaño de fuente: 18px - color: lightblue - alinearse a sí mismo: medio - fondo acolchado: 10px - tapa de relleno: 20px

 

Preguntas o necesidades de información 

 

Bibliografía