Envíar comandos a tu teléfono desde Home Assistant

Siempre nos imaginamos el flujo contrario, pero ¿sabías que puedes enviar comandos a tu teléfono desde Home Assistant?

Pues así es, lo único que necesitas es tener instalada la aplicación de HA en tu dispositivo Android. A través del servicio de notificaciones de la aplicación puedes ejecutar diversas acciones en el teléfono.

¿Cómo enviar un comando?

Empecemos por el principio. Para enviar un comando a tu teléfono tienes que utilizar el servicio de notificaciones.

Vamos a hacer una prueba muy sencilla para que entiendas el funcionamiento. Accede a tu instancia de HA en el ordenador y ve a Herramientas para desarrolladores > Servicios. Selecciona el servicio ‘notify.mobile_app’ correspondiente al teléfono al que quieras enviar comandos (por ejemplo, ‘notify.mobile_app_iphone’).

Escribe cualquier texto en el campo ‘message’ (por ejemplo, “hola aguacatec!”) y haz clic en llamar servicio. Verás que en tu teléfono aparece una notificación con el texto enviado. Esto es una notificación de texto plano.

Ahora, en lugar de enviar un texto cualquiera, escribe en este mismo campo “command_screen_on” y haz clic en llamar servicio. Puesto que este comando emite la orden de encender la pantalla, verás que tu teléfono se enciende, aunque no hay ninguna notificación ni ha sucedido nada más.

De igual manera puedes enviar otro tipo de órdenes a tu teléfono. A continuación vamos a ver cómo enviar comandos a tu teléfono desde Home Assistant. Estos son sólo unos ejemplos, pero en su página web puedes encontrar una lista completa de los comandos disponibles.

Listado de comandos

Ten en cuenta que para que se ejecuten algunos comandos el teléfono debe estar encendido y desbloqueado. Esto no es ningún impedimento, ya que solo implica que en algunos casos deberás enviar un comando para desbloquear el teléfono antes de enviar el siguiente comando.

  • Abrir una aplicación. Envía una notificación indicando “command_launch_app” en el campo message. Además indica en el campo data la aplicacion que quieres abrir, a través del atributo ‘package_name’. Para identificar el código correspondiente a la aplicación, encuéntrala en la Google Play y fíjate en el texto que figura justo después de ‘https://play.google.com/store/apps/details?id=‘ y antes del ‘&’. Por ejemplo, el id de la aplicación de Home Assistant es io.homeassistant.companion.android. El comando, por tanto, se enviaría de la siguiente forma:
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_launch_app
  data:
    package_name: io.homeassistant.companion.android
  • Control multimedia. Estos comandos permiten controlar cualquier sesión multimedia que se esté reproduciendo en un dispositivo. Para ello envía una notificación indicando “command_media” en el campo ‘message’. En el campo ‘data’ debes indicar “media_command” y el comando correspondiente (a elegir entre, ‘fast_forward’, ‘next’, ‘pause’, ‘play’, ‘play_pause’, ‘previous’, ‘rewind’, ‘stop’). En el campo ‘data’ también tienes que indicar “media_package_name” seguido de la aplicación donde se está reproduciendo el contenido (por ejemplo, “com.spotify.music”).
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_media
  data:
    media_command: pause
    media_package_name: com.spotify.music
  • Control de volumen. Envía una notificación indicando “command_volume_level” en el campo ‘message’ para modificar el nivel de volumen del dispositivo. En el campo ‘data’ debes indicar el atributo “media_stream” para seleccionar sobre que servicio quieres modificar el volumen (por ejemplo, “call_stream” para llamadas o “music_stream” para la música). También dentro del campo ‘data’ tienes que incluir el atributo “command” con un número igual o superior a ‘0’ (con un número inferior se asume 0) que será el nivel de volumen.
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_volume_level
  data:
    media_stream: music_stream
    command: 20
  • Encender la pantalla. Envía una notificación indicando “command_screen_on” en el campo ‘message’. Añade un par de líneas adicionales dentro del campo ‘data’, para que encienda la pantalla incluso cuando el teléfono lleve un tiempo “dormido”.
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_screen_on
  data:
    ttl: 0
    priority: high
  • Enviar notificaciones de audio. Este comando sirve para que, en lugar de recibir una notificación en pantalla, suene como una notificación de audio. Combinada con el comando anterior, activará el teléfono en todo caso para no perder las notificaciones.
service: notify.mobile_app_DISPOSITIVO
data:
  message: TTS
  data:
    tts_text: "Notificación de audio"
    channel: alarm_stream
    priority: high
    ttl: 0
  • Encender o apagar el bluetooth. Envía una notificación para controlar el bluetooth de tu dispositivo móvil indicando “command_bluetooth” en el campo ‘message’, y “turn_on” o “turn_off” en el campo ‘data’.
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_bluetooth
  data:
    command: turn_on
  • Silenciar el teléfono. Envía una notificación para silenciar el teléfono, establecer el modo “vibración” o “normal” indicando “command_ringer_mode” en el campo ‘message’ y el modo deseado (normal/silent/vibrate) en el campo ‘data’.
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_ringer_mode
  data:
    command: vibrate
  • Actualizar sensores. Envía una notificación para forzar la actualización de los sensores de tu dispositivo indicando “command_update_sensors” en el campo ‘message’.
service: notify.mobile_app_DISPOSITIVO
data:
  message: command_update_sensors

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
Send this to a friend