Controlando un smart plug de Amazon (Alexa) desde el Stream Deck
Hoy me surgió la necesidad de controlar un smart plug de Amazon (Alexa) que tengo desde el Stream Deck. Tengo conectada una lámpara de Pac-Man al smart plug y la prendo cada que transmito por Twitch para adornar un poco mi fondo.
La cosa está en que ya controlo las luces de mi oficina desde el Stream Deck usando el plugin de Philips Hue el cual jala chido y hasta ahí ningún problema. Lo que sucede es que me estuve topando con pared a la hora de querer controlar el smart plug de Amazon desde el Stream Deck, ya que hasta donde yo sé no existe algún plugin que te permita controlar ese tipo de dispositivos.
Entonces me eché un clavado a Reddit esas noches que uno no puede dormir y por ahí leí que hay manera de usar el servicio de Voice Monkey para controlar dispositivos de Amazon desde afuera de su ecosistema.
Básicamente lo que Voice Monkey es, es como un servicio parecido a Zapier o IFTTT pero para controlar dispositivos que tengas agregados a tu Alexa.
Lo único que hay que hacer es crear una cuenta y luego te va a pedir que inicies sesión con tu cuenta de Amazon. Una vez que le das permiso de controlar tu cuenta, se instala un skill de Alexa de Voice Monkey y es básicamente eso lo que permite que te puedas comunicar con tus dispositivos de Alexa.
Luego una vez que instalas ese cotorreo, solamente tienes que hacer un par de cosas dentro de Voice Monkey:
Primero agregas Voice Monkey como un dispositivo de tipo Speaker

Ahí lo que yo hice fue agregar “una nueva smart speaker” (¿Echo se llaman?, la verdad es que no sé porque no tengo Alexas en mi casa). Yo le puse de nombre “Voice Monkey Device” así genericote y automáticamente se le generó el ID de voice-monkey-device.
Con eso se supone que Voice Monkey ya vivirá dentro de la app de Alexa en el teléfono.
Después crea un “trigger” dentro de Voice Monkey

Yo le puse “Pacman Trigger” así tal cual y pues me generó el ID pacman-trigger.
Creando la rutina dentro de Alexa
Luego me fui a mi teléfono, abrí la app de Alexa y luego me fui vas a crear la rutina que encenderá el smart plug. Solo le especifiqué que cuando “Pacman Trigger” sea presionado, quiero simplemente que se haga un toggle on/off en mi smart plug. De esa manera cada que “se presione” el “Pacman Trigger”, encienda y apague lo que esté conectado al smart plug, en este caso la lámpara de Pac-Man.

Y básicamente la parte difícil ya está hecha. Ahora lo que queda es generar el endpoint para triggerear el “Pacman Trigger” valga la redundancia (recuerden que Voice Monkey te da una API para comunicarte con él desde el exterior).
Endpoint del trigger que creamos
Leyendo la documentación de Voice Monkey, la estructura del endpoint es la siguiente:
https://api-v2.voicemonkey.io/trigger?token=API_TOKEN&device=TRIGGER_ID
Lo que tenemos que pasarle como parámetros son tu API TOKEN para autentificarte con tu cuenta de Voice Monkey (el token lo puedes obtener ahí mismo dentro de la consola de Voice Monkey) y el device que queremos triggerear, en este caso le pasas el TRIGGER_ID que se creó en el paso anterior.
Entonces mi endpoint quedó algo así:
https://api-v2.voicemonkey.io/trigger?token=CADENA_RANDOM_DE_CARACTERES_QUE_NO_PUEDO_COMPARTIR&device=pacman-trigger
Y así de sencillo, si pongo ese URL en mi navegador y entro, se enciende mi lámpara de Pac-Man. 🥳
¡Lo último que queda es crear un botón en el Stream Deck que abra ese link y listo! Con eso se soluciona la necesidad que tengo, pero todavía tuve el problema de que al presionar el botón en el Stream Deck pues como usé la acción de abrir un sitio web, pues se abre una ventana de mi navegador y pues no quiero eso.
Para evitarlo, hice un pequeño programita en Python que lo único que hace es triggerear ese endpoint:
import requests
url = "https://api-v2.voicemonkey.io/trigger?token=CADENA_RANDOM_DE_CARACTERES_QUE_NO_PUEDO_COMPARTIR&device=pacman-trigger"
response = requests.get(url)
print(response.status_code)
Entonces ya solamente en lo guardé en mi compu como toggle-light.py y luego ya en Stream Deck agregué la acción de abrir una app y seleccioné mi pequeño script de Python.
Con eso solamente se triggerea el endpoint sin que se abra una ventana de mi navegador. 🫢
No está de más decir que para que jale ese programa en tu compu es necesario que tengas instalado Python.
Y pues la neta eso es todo, ahora puedo controlar mi lámpara de Pac-Man desde el Stream Deck en mi escritorio. 👍
-
Likes
Comentarios