
713 - Controla TODO desde tu Android
Controla tus dispositivos y servicios desde #android con HTTP Shortcuts. Ejecuta acciones vía #API: apaga tu #raspberry Pi, abre el garaje, lanza scripts.
En distintos episodios te he ido mostrando herramientas o aplicaciones web, que no tienen aplicación para Android. Esto me ha llevado en mas de una ocasión a plantearme la posibilidad de implementar la propia aplicación. Sin embargo, siempre termino por dejarlo pasar. Y es que me quiero meter en demasiados jardines, y la verdad, es que no hay tiempo para todo. Así, algunas de estas aplicaciones web, las termino por dejar, precisamente por no poder interactuar desde Android con ellas. Por ejemplo, algo tan sumamente sencillo como compartir un texto o una dirección. Pero no solo esto. ¿Te imaginas poder apagar tu Raspberry Pi, abrir la puerta del garaje o encender las luces de tu casa con un simple toque en tu Android? ¿O tal vez lanzar un script en tu servidor desde el móvil?. Pues de esto precisamente va este nuevo episodio, de una fantástica app para Android, que te permite ejecutar acciones con solo pulsar un botón en tu móvil Android.

Controla TODO desde tu Android
Un paseo por el pasado (reciente)
En el episodio 710 te hablé de un servicio web que podías auto alojar para la gestión de tareas. Sin embargo, hay algo que no me terminaba de cuadrar.
Como te he contado en alguna que otra ocasión, una de mis tareas habituales, para tenerte al tant o de todo lo que ocurren en el ecosistema Linux, es la de guardar enlaces interesantes, que encuentro mientras reviso mis redes sociales, navego por internet, o cualquier otra situación en la que encuentre algo que me llame la atención.
Estos enlaces, los anoto, para posteriormente procesarlos, siguiendo las recomendaciones de GTD. Y normalmente esto lo anoto, en mi gestor de tareas. Sin embargo, me he dado cuenta que esto no es correcto, que no lo estoy haciendo bien, porque realmente esto no son tareas. Simplemente se trata de una lista de enlaces que quiero leer con calma. Para esto, existen otras herramientas que te permiten guardar enlaces, pero solo necesito una lista, nada mas. Digamos que está a caballo entre una lista de tareas y una herramienta de guardar enlaces.
Justo en ese momento caí en Memos del que te hablé en el episodio 461 titulado Apasionados de las aplicaciones para tomar notas, y pensé que ese era el sitio ideal para guardar esa lista de enlaces, así como otras listas, como puede ser una lista de ideas..
Y aquí es donde se cruzó todo. Lo cierto es que es posible instalar Memos como una webapp en Android. Pero aún así, el problema es que no puedes compartir enlaces con una webapp. No es posible. Y eso estaría fantástico. ¿Como resolverlo?. HTTP Shortcuts.
Le estuve dando vueltas al asunto a ver como podía hacerlo. No solo para añadir enlaces a una aplicación web, sino para cualquier otra cosa que tenga una API Rest, con la que comunicarme. Y como te decía en la introducción, acciones que van desde añadir un enlace, abrir una puerta, apagar un Raspberry. Al final, cualquier cosa que se pueda hacer vía API.
Conceptos básicos o peticiones HTTP para Seres Humanos
Imagina que estás en un restaurante. Quieres algo, así que le hablas al camarero. Él anota tu pedido y se lo lleva a la cocina. La cocina prepara lo que pediste y el camarero te lo trae de vuelta.
Las peticiones HTTP funcionan de una manera muy parecida en internet:
- Tú (tu navegador, tu aplicación como HTTP Shortcuts, o tu programa) eres el cliente.
- El camarero es el protocolo HTTP: el «idioma» que usas para hablar con el restaurante (el servidor).
- El restaurante (la cocina) es el servidor: donde reside la información o donde se realizan las acciones.
- Tu pedido es la «petición HTTP»: lo que le pides al servidor.
- Lo que te trae el camarero es la «respuesta HTTP»: lo que el servidor te envía de vuelta.
Componentes Clave de una Petición HTTP
- URL (La dirección del restaurante y el plato):
- Piensa en la URL (como
https://atareao.es/podcast
ohttp://tu_raspberry_pi:8080/apagar
) como la dirección exacta donde está el «restaurante» (el servidor) y el «plato» específico que quieres (por ejemplo, la página del podcast, o un punto de control para apagar tu Raspberry Pi). - Es la dirección única donde el servidor «escucha» peticiones para algo concreto.
- Piensa en la URL (como
- Método HTTP (Qué tipo de pedido haces):
- Esto es como decirle al camarero qué quieres hacer con el «plato». Los más comunes son:
- GET (Pedir/Ver): Es la petición más habitual. Cuando escribes una dirección en tu navegador y pulsas Enter, estás haciendo una petición GET. Le dices al servidor: «Dame esta página», «Muéstrame esta imagen», «Dame el estado de esta luz». No cambia nada en el servidor, solo pide información.
- POST (Enviar/Crear): Es como rellenar un formulario de pedido. Le dices al servidor: «Aquí tienes esta información (por ejemplo, mis datos de login, un nuevo comentario, datos de un sensor), guárdala o úsala para crear algo nuevo». Con una petición POST, normalmente envías datos al servidor.
- PUT (Actualizar/Reemplazar): «Aquí tienes la versión actualizada de esto, reemplaza la que ya tienes.»
- DELETE (Borrar): «Borra este elemento.»
- Esto es como decirle al camarero qué quieres hacer con el «plato». Los más comunes son:
- Cabeceras (Información extra sobre el pedido):
- Es como si el camarero te preguntara: «¿Eres alérgico a algo?», o «Necesitas una mesa para fumadores?». Son datos adicionales sobre la petición misma, no sobre el plato.
- Por ejemplo, el tipo de navegador que usas, qué idiomas prefieres, si estás «logueado» (información de autenticación) o el formato de los datos que estás enviando.
- Cuerpo (El contenido del pedido, si lo hay):
- Si haces un POST (enviar datos), el cuerpo es el plato en sí. Es donde va la información que quieres enviar al servidor. Por ejemplo, si estás subiendo una foto, la foto iría en el cuerpo; si envías un JSON para controlar algo, ese JSON iría aquí.
- Las peticiones GET normalmente no tienen cuerpo porque solo están pidiendo algo.
Y la Respuesta del Servidor
Una vez que el servidor procesa tu petición, te envía una respuesta HTTP. Esta respuesta también tiene:
- Un Código de Estado (Cómo ha ido el pedido):
- Es como el camarero diciendo: «Todo bien» o «Ha habido un problema».
- 200 OK: ¡Éxito! El pedido ha ido bien.
- 404 Not Found: La URL que pediste no existe (el plato no está en el menú).
- 401 Unauthorized: Necesitas una clave o estar logueado (no tienes acceso a la cocina).
- 500 Internal Server Error: Algo ha fallado en el servidor (la cocina ha tenido un problema).
- Cabeceras de la Respuesta: Información extra del servidor (por ejemplo, el tipo de contenido que te está enviando).
- Cuerpo de la Respuesta: La información que te devuelve el servidor. Si pediste una página web, el HTML de la página estaría aquí; si pediste el estado de la luz, aquí vendría «encendida» o «apagada».
HTTP Shortcuts
¿Que es HTTP Shortcuts? Es una aplicación Android que te permite crear botones en tu pantalla para enviar peticiones HTTP a cualquier dirección URL. Es como tener un control remoto con botones, donde tu defines que es lo que hace cada botón. Un control remoto personalizable para tus dispositivos y servicios conectados en red.
Indicar que no se trata de una automatización completa, en el sentido de que no puedes realizar flujos completos, pero si que te puede servir de utilidad como disparador. Por ejemplo, en Home Assistant o en otras herramientas como n8n, puedes realizar un flujo todo lo complejo que quieras, y en HTTP Shortcuts definir la acción que disparará ese proceso.
¿Que se puede hacer con HTTP Shortcuts?
Como te indiqué anteriormente, con HTTP Shortcuts activar cualquier cosa que tenga una API, y que esté disponible en tu red o en Internet y que responda a una petición HTTP.
Simplemente y por ponerte los dientes largos, algunas de las cosas que puedes hacer son las siguiente,
- Controlar dispositivos inteligentes (luces, enchufes) si tienen una API.
- Interactuar con tu servidor (reiniciar un servicio, ejecutar un script, liberar espacio).
- Enviar notificaciones a otros servicios (Telegram, Discord, etc.).
- Disparar acciones en Home Assistant.
- Manejar tu media center (Kodi, Plex).
- Gestionar servicios web como Traefik, Nginx Proxy Manager.
Características destacadas
Algunas de las características mas interesantes de HTTP Shortcuts son las siguienes,
- Creación de Atajos Personalizables para Peticiones HTTP. Te permite diseñar botones virtuales en tu Android, cada uno configurado para enviar una petición web específica (HTTP).
- Widgets para Acceso Rápido desde la Pantalla de Inicio. Una vez que creas tus atajos, puedes añadirlos como widgets directamente a tu pantalla de inicio de Android.
- Múltiples Tipos de Atajos para Diferentes Interacciones.. La aplicación no solo envía peticiones simples. Puedes configurar atajos que, requieren una confirmación antes de ejecutarse (útil para acciones críticas) o piden una entrada de texto antes de enviar la petición (por ejemplo, para enviar un mensaje personalizado a un servicio o un valor a una API), o presentan una lista de opciones para elegir (imagina elegir qué luz encender o qué modo de ventilación activar).
- Procesamiento de Respuestas del Servidor. HTTP Shortcuts puede capturar y mostrar la respuesta que recibe del servidor después de enviar una petición. Puedes configurar que te muestre un mensaje de éxito/error, el contenido de la respuesta o incluso procesar la respuesta para extraer información.
- Integración con Tasker/Locale (para Automatizaciones Avanzadas). HTTP Shortcuts no solo funciona como una app independiente, sino que puede ser integrada con Tasker o Locale.
- Soporte para Seguridad Básica (Autenticación). Te permite incluir información de autenticación (como nombres de usuario y contraseñas, o tokens de API) directamente en tus peticiones. Esto es fundamental cuando te conectas a servicios o dispositivos que requieren credenciales para funcionar.
Uso y funcionamiento
Para crear tu primer atajo, simplemente tienes que ir a la pantalla principal de la aplicación y pulsar sobre el botón que aparece en la esquina inferior izquierda. Esto te abre una pantalla donde puedes elegir entre distintas opciones según lo que quieras hacer.
En el caso de que selecciones la opción de Crear desde Cero, tendrás que introducir,
- Nombre del atajo
- Descripción
- La dirección y el método, según lo que quieras hacer.
- Los encabezados en caso de ser necesarios.
- La autenticación si la necesitas
- La gestión de la respuesta, si quieres que te muestre un mensaje o que procese la respuesta.
Y mas detalles, que puedes ir profundizando conforme lo vayas necesitando.
Edición web
Soy consciente de que hacer esto en el móvil, aunque utilices scrcpy es una auténtico peñazo. Y el desarrollador de la aplicación también lo sabe. Así que para facilitarte la edición te da la posibilidad de que hagas la edición remota, lo que es una comodidad.
Más información,