Amazon Dash-Button gefügig machen

So hier mal wieder ein Bastelprojekt:

 

Mein Problem:

Ein Entwickler wie ich braucht Kaffee! Viel Kaffee! Sehr sehr viel Kaffee!

Aber Kaffee schmeckt nun mal nur mit Milch. Auf meiner Arbeit gibt es leider immer wieder das Problem, das die Milch im Lager leer ist. Der letzte vergisst immer einen Bestellvorgang dazu anzulegen oder wenigstens in der Orga Bescheid zu sagen.

 

Meine Lösung:

Ich klebe einen Amazon Dash-Button im Lager wo die Milch steht. Mit dem Amazon Dash-Button kann man auf Knopfdruck ein Produkt beim Amazon kaufen. Durch einen kleinen Hack kann man den Button auch für seine eigenen Projekte miss- …  ääähhh … ge-brauchen 😉 Ich habe den Button so angepasst, dass kein Amazon Artikel gekauft wird, sondern bei uns im Firmen-Aufgabenmanagement ein „Kaffeemilch“-Bestellvorgang angelegt wird.

Wie funktioniert ein Amazon Dash-Button?

Beim Drücken des Buttons fährt der Button hoch, verbindet sich mit dem WLAN und sendet an Amazon „ich wurde gedrückt“. Der Button, ist um Strom zu sparen, immer ausgeschaltet. Das Signal dauert also 2-5 Sekunden. Jeder Button hat eine eindeutige ID, die man einmalig mit der Amazon App mit seinem Konto und einem zu kaufenden Produkt verknüpft hat.

 

Wie genau funktioniert der Hack?

Das Signal an Amazon kann man leider nicht direkt abfangen. Aber mit einem kleine. Trick geht‘s irgendwie schon: Beim starten und einwählen ins WLAN wird schickt der Button über das ARP (Address Resolution Protocol) ein Paket. Das ist IP Grundlage und ist für den Verbindungsaufbau wichtig. Da dieses Paket aber an alle Geräte im Netzwerk geschickt wird, kann man dieses mittels sniffing abfangen. Perfekt! Und ja, das bedeutet das das Skript im gleichen LAN sein muss.

 

So, hier jetzt die Anleitung was genau mach machen muss:

  1. Man kauft sich einen Button (Die kosten nur 5€ und das wird bei einer einmaligen Bestellung gutgeschrieben). Also 0€. Super! Aber es geht nur für Prime-Mitglieder. Aber irgendeiner kennt immer einer dieser Prime-Mitglieder.
  2. Dann startet man den Button in dem Einrichtungsprozess: Ein paar Sekunden gedrückt lassen bis dieser Orange aufleuchtet.
  3. In der Amazon-App kann man den Button jetzt einrichten. Einfach den Anweisungen folgen. Wenn man an dem Schritt angekommen ist, wo man das zu bestellende Produkt auswählen soll, oben einfach auf X Klicken. Also abbrechen. Denn das wollen wir ja nicht. Aber der Button verbindet sich so schon mal beim Drücken mit dem WLAN. Perfekt!
  4. Einmalig muss man die MAC-Adresse des Buttons ermittelt. Dazu kann man mit diesem Script arbeiten:

https://github.com/hortinstein/node-dash-button#find-a-dash

  1. Jetzt braucht man nur noch ein Sniffer welcher auf das ARP (oder auch UDP) Paket wartet. Hier ein Beispiel in NodeJS: https://github.com/hortinstein/node-dash-button
  2. Wenn das Paket gefeuert wird, kann man theoretisch alles machen. In meinem Fall habe ich ein HTTP-Request in unserem Firmen-Aufgabenmanagement gesendet, welches dann die Aufgabe anlegt.

 

Hier ein paar weitere Idee, was man mit dem Button machen könnte:

  • Zuhause Knopf mit der Rollo-Automatik verbinden
  • Automatische Bestellungen für andere Anbieter (nicht Amazon)

Hat in die Kommens eure Ideen! Auf jeden Fall viel Spaß!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

*

code