Interceptar Amazon Dash Button para otras aplicaciones


Amazon  lleva mas  un año enviando sus famosos  botones Dash , los cuales se pueden transformar en exactamente eso con sólo unos minutos, es   decir que un pequeño dispositivo permita con el simple hecho de darle un botón , desencadenar una  compra predefinida al famoso portal de compra…   pero, obviamente , estos botones  inteligentes están abiertos   a otras posibilidades  sin duda infinitas y que vamos a intentar explorar en este post

Los  famosos Amazon Dash  son  botones pequeños, de plástico  y de un coste ínfimo (  5€) ,pero ademas incluyen  una batería y una conexión WiFi en su interior . Amazon quiere que usted los pegue en el interior de sus puertas y los utilice  para  comprar productos de uso cotidiano  como pueden ser los pañales, té , café,  productos de limpieza   y un largo etcétera.

nescafe.jpg

Existe  una  manera   mas fácil   de darle otros usos a  cualquier botón  Amazon Dash si quiere usar SmartThings para  otras cosas útiles.

Ejemplos de usos:

  • Presionar el botón Dash y encender las luces. (Luces del dormitorio, luces de la sala de estar, todas las luces o lo que sea).
  • Presionar el botón Dash y encender el televisor, cambia a una entrada de TV y abrir Netflix.
  • Presionar el botón Dash y abrir la puerta de la puerta / garaje.
  • Presionar el botón Dash  y abrir una aplicación de cámara en el teléfono e incluso encender la TV y proyectar la cámara al televisor.
  • Presione el botón Dash y abrir una aplicación  en el ordenar que  realice alguna acción.
  • !En resumen: posibilidades ilimitadas!

Entender cómo funciona el registro del botón.

Nuestro objetivo es detectar cuando uno de estos botones Dash se   pulsa  y luego hacer algo más que ordenar  cosas en Amazon. El hack impresionante sería abrir el botón y re-programarlo  ( de hecho esto ya se puede hacer  reprogramando el STM32  que incluye )   pero  vamos a seguir  una  ruta muchísimo mas fácil:  sólo vamos a usar  un programa que rastrea nuestra red wifi para buscar  la evidencia de que el botón fue pulsado  , luego registrar un punto de datos cuando escucha estos y una vez detectado desencadenar una acción .

Resulta que Amazon nos dio una manera muy fácil de hacer esto porque estaban tan preocupados con el ahorro de energía , pues estos  botones  se desactivan la mayor parte del tiempo para conservar la batería dentro y sólo se encienden cuando son pulsados, lo cual significa que tienen que volver a conectarse a su red Wifi cada vez que son pulsados ( y eso  es fácil de detectar).

Los dispositivos de Internet no solo se conectan a una red Wifi y empiezan a hablar con Amazon: se presentan primero a la red local . Esta introducción se hace con algo llamado una sonda ARP , y es esencialmente una comprobación de seguridad para asegurarse de que la dirección MAC que el dispositivo va a utilizar como identificador ya no está siendo utilizada por otra persona.

Cada vez que pulsa un botón Dash, se vuelve a conectar a la red, causando una transmisión predecible  de llamada una sonda ARP que podemos detectar y actuar.

Eso es una gran noticia para nosotros: cada vez que se pulsa un botón Dash, se enciende su radio y transmite rápidamente el mensaje, “Hola! Mi nombre es [Dirección MAC]! “

Así, que conceptualmente, el problema esta resuelto pues sólo tenemos que:

  1. Evitar que el botón realice cualquier pedido
  2. Escuche las sondas ARP del botón Dash
  3. Traducir esas sondas a llamadas   cualquier cosa que se nos  ocurra

Paso 1: Configurar la red wifi en el botón

Para   usar el botón ,primero  debe registrar el Botón básicamente para configurar la red wifi a la que se conectará .  Lo que no queremos es asignar el botón para pedir algo , por lo en lugar de asignar algún producto , antes de finalizar la vinculación simplemente  no haremos nada  !pero el botón de tablero todavía seguirá registrado! , así  que lo sucede a continuación es que cuando presione el botón del tablero, recibirá una notificación  en las versiones antiguas  que dice «Su (inserte el nombre del botón del tablero) está casi listo para usar … bla, bla, bla».

Pasos del botón Dash (Nuevo botón Dash):

  1. Abra la aplicación Amazon Shopping y vaya a su cuenta.
  2. Vaya a Configurar un nuevo botón de tablero y haga clic en Aceptar y comenzar para comenzar.
  3. Mantenga presionado el Botón de tablero por 6 segundos hasta que la luz destelle en azul y haga clic en Conectar. (Asegúrate de que Bluetooth esté habilitado)
  4. Haga clic en la red Wi-Fi a la que desea conectar el botón del tablero y haga clic en Continuar.
  5. El botón de tablero ahora está registrado. No haga nada todavía.
  6. Donde dice Elija un producto simplemente salga (no queremos pedir nada) haciendo clic en la X en la esquina superior derecha.
  7. Hemos terminado con la configuración del botón del tablero.

Pasos del botón de tablero (dispositivo antiguo):

  1. Abra la aplicación Amazon Shopping y vaya a su cuenta.
  2. Diríjase al botón del tablero con el que tiene programada la configuración y haga clic en Desactivar este botón del tablero. Aparecerá una ventana emergente preguntándole si está seguro. Decir que sí.
  3. Ahora vaya a Configurar un nuevo botón de tablero y haga clic en Aceptar y comenzar para comenzar.
  4. Mantenga presionado el Botón de tablero por 6 segundos hasta que la luz destelle en azul y haga clic en Conectar. (Asegúrate de que Bluetooth esté habilitado)
  5. Haga clic en la red Wi-Fi a la que desea conectar el botón del tablero y haga clic en Continuar.
  6. El botón de tablero ahora está registrado. No haga nada todavía.
  7. Donde dice Elija un producto simplemente salga (no queremos pedir nada) haciendo clic en la X en la esquina superior derecha.
  8. Hemos terminado con la configuración del botón del tablero.

Nota: Puede activar y desactivar la notificación de Amazon Shopping para cada dispositivo que desee habilitar o deshabilitar en caso de que se moleste. Esto se puede hacer abriendo la aplicación Amazon Shopping en cada dispositivo individual y deshabilitando o habilitando «Alexa Shopping & Dash Updates». Habilite en el dispositivo que planea hacer esta guía de configuración. Deshabilite en todos los dispositivos en los que no planea usar esta configuración. Naranja = Activado.

Paso 2: Captura  de la IP del botón

Una forma fácil de encontrar su ID del botón de pantalla es usar Wireshark (https://www.wireshark.org/#download), que se puede  obtener  mediante una descarga gratuita para Mac / Win.

Una vez  descargada  e instalada la aplicación  podemos lanzar Wireshark, estableciendo el filtro para capturar paquetes en «arp«, seleccionando  el modo wifi para la red y haciendo clic en el icono de Blue Shark para habilitar el filtro al capturar paquetes.

wireshar.png

A continuación, verá una ventana como la siguiente: haga clic en el ícono de Green Shark para comenzar a capturar paquetes, presione el botón de Amazon Dash.

Verá una línea en el parte superior que tiene «AmazonTe …» en la fuente Colunm.

amazonte.png

Selecciónelo y en el panel a continuación, verá la dirección MAC del botón Amazon Dash en parantesis, junto a AmazonTe _… Src, como se muestra a continuación.

mac.png

Realmente la dirección MAC es importante  para algunas aplicaciones,   pero realmente lo que nos va a importar  para capturar la petición,   es la dirección ip  del botón obtenida en la pantalla  anterior   , ( en  nuestro caso : 192.168.1.32)

Alternativamente, puede seguir las instrucciones de node-dash-button para encontrar su id del botón de pantalla.

Nota :   Un pedido real se marca  controlando la luz en el botón Dash para que se vuelva verde. Actualmente se vuelve blanco cuando se transmite una solicitud DHCP o paquete ARP y luego se vuelve rojo cuando no recibe una respuesta de Amazon, así que  cuando usa un botón Dash de la manera normal, la luz se vuelve verde después de que Amazon haya realizado su pedido, pero si eso No es  lo que pretende,  todavía  puede ir a la app( o en la web)  para cancelar el pedido

Paso 3 :  Utilización  sobre windows

Existen scripts en python que pueden ejecutarse  en una raspberry Pi  para  escuchar las peticiones  en la red wifi  de modo que cuando detecten  la ip de nuestro botón desencadenen un acción.
Para  windows existe una  interesante  utilidad que busca cualquier llamada a la IP de nuestro botón  y desencadene la ejecución de un comando o aplicación.

Descargue el sw de aquí: https://github.com/fiveseven808/AmazonDashButtonHack

Una vez descomprimido  tendremos al menos dos ejecutables:

amanzonbut

En versiones  antiguas del botón era posible el auto-descubrimiento  de la ip del botón ( es decir obviar el paso comentado  nº 2),   por  lo que  los pasos  serian los siguientes :

  • Ejecutar  «AmazonButton_Discovery_160715 _ ****. Exe» para comenzar a buscar botones.
  • Pulsamos clic en «Aceptar» en el aviso y comenzariamos  a presionar el botón que desea emparejar repetidamente.
  • Si no se encuentran dispositivos de Amazon, intente de nuevo, pero comience a presionar el botón tan pronto como haga doble clic en el archivo EXE.
  • Si se encuentran más de un dispositivo de Amazon, tendrá que ir y averiguar qué IP corresponde con su botón por su cuenta.
  • Finalmente elija un programa que desea ejecutar cuando se presiona el botón
  • Ingrese un comentario para el daemon, lo cual  identificará el daemon particular que corresponde con el botón en particular.

 

Como el proceso anterior  no es mas eficaz , si ya conoce la IP de su botón( descrito en el paso 2 )  siga los siguientes  pasos:

  • Haga doble clic en AmazonButton_v4.0.exe .
  • Ingrese la IP conocida / reservada de su botón Dash ( en nuestro caso 192.168.1.36)
  • Elija un programa que desea ejecutar cuando se presiona el botón . Por ejemplo puede asociar un fichero mp3  de modo que cuando pulsemos el botón  comience  a reproducirse el tema
  • Ingrese un comentario para el daemon, lo cual identificará el daemon particular que corresponde con el botón en particular.

También permite argumentos vía  parámetros   por  línea de comando por ejemplo para automatizar el arranque de este proceso en el inicio del ordenador :

AmazonButton_v4.0.exe [IP del botón] [Programa para iniciar] «[Comentario opcional]»

Es interesante saber   que incluso se puede repetir  estas llamadas según sea necesario para cualquier otro botón.

NOTA :  Hay informes de que el nuevo botón JK29LP pierde su configuración de Wifi si la desasocia con su cuenta de Amazon. La «solución alternativa» actual es utilizar una cuenta ficticia de Amazon para configurar su botón con su teléfono y luego volver a iniciar sesión en su propia cuenta para que pueda seguir usando la aplicación.

Pequeña mejora para minialtavoz


Como muchos lectores habrán apreciado han proliferado,  a un coste ínfimo ,  pequeños altavoces  con batería  y reproductor de mp3 incorporados  incluso soportando  la mayoría bluetooth   y   radio FM

Estos  altavoces son  de  tamaño compacto   y portátiles de aspecto metálico en un tamaño mini, ofreciendo sonido de audio de buena calidad  con graves profundos   gracias sobre todo  a los  chip de audio  ( en su mayoría  usan el chip Avera AC4603)

Entre sus cualidades destacan  su conectividad universal pues  suelen  equiparase  con la tecnología Bluetooth 3.0 + EDR superior a 33 pies, compatible con la mayoría de los dispositivos habilitados para Bluetooth, como teléfonos, tabletas, MP3, vídeo y computadora, soportando  casi todos multi-función ,  es decir   ayuda inteligente    basada en  voz   ( eso  si en perfecto ingles)

Al arsenal de bondades de estos dispositivos  hay que añadir   soporte de micro-sd   e incluso usb  nativo  (en algunos modelos) , lo que  quiere  decir  que podemos añadir nuestra música en archivos mp3    en la   TF o en una  unidad  USB extraible  para poderlos  reproducir  directamente desde el propio  mini-alatavoz   , Por   ultimo adema de la función de reproducción  de mp3, se añade   la función de radio estéreo via AUX FM , la entrada  auxiliar    y por micrófono incorporado   para el teléfono de manos libres que llama.

Asimimo mucho presumen de Long Playtime, es decir sólo necesitan  2 horas para cargar completamente, pero puede proporcionar hasta 4 horas de tiempo de juego, diviértete con su familia y amigos

Estos altavoces, por su bajo precio ,son propensos  a diferentes mejoras:

  • Aprovechamiento de las leds indicadoras de estado ( suelen ir ocultos tras la batería)
  • Salida de audio ( usando las conexiones de los dos altavoces
  • Mejora batería  ( cambiando la batería   por una de mayor capacidad)
  • Cambio ubicación batería ( para eliminar tapa)
  • Mejora altavoces ( por ejemplo conectando otros altavoces fuera de la carcasa)
  • Aprovechamiento parte reproductor mp3
  • etc

 

En esta ocasión   vamos  a proceder reubicar la batería   y  proceder  al  aprovechamiento de las leds indicadoras de estado  pues en la mayoría  de los modelos  suelen ir ocultos tras la batería: el led de power ( rojo ) y el de reproducción (azul)

Para llevar  la tarea lo primero es desmontar la tapa de la batería:

 

IMG_20171125_173530[1].jpg

Debemos usar las conexiones de alimentación  hacia la tapa para soldarlas directamente sobre la batería  con cuidado de no equivocarnos

Habrá que eliminar un poco los contactos para que pegue la soldadura:

IMG_20171125_173807[1].jpg

Ahora se trataría  de probar el funcionamiento normal  con la batería cambiada de ubicación

IMG_20171125_173712[1].jpg

Probado  el  dispositivo, pegaremos cinta de doble cara sobre la bateria

IMG_20171125_174103[1].jpg

Ya solo queda colocar la batería , los altavoces   y cerrar la tapa que ahora quedara sin conexiones.

IMG_20171125_173822[1].jpg

Por ultimo  cerrado el conjunto   queda ya solo queda  probar el funcionamiento  donde como se puede apreciar los dos leds quedan completamente visibles;