Amazon Dash Button Hack – Nutzung mit IFTTT und weitere Möglichkeiten

Amazon Dash Button Hack - Nutzung mit IFTTT und weitere Möglichkeiten Update 14.07.2018: Aktuell hat Amazon zum Anlasse des Primeday 2018 wieder die Dashbuttons für 1,99€ im Angebot. Zusätzlich erhaltet ihr auf den ersten Knopfdruck 4,99€ Rabatt. Link zur Aktion

Update 14.07.2018: Aktuell hat Amazon zum Anlasse des Primeday 2018 wieder die Dashbuttons für 1,99€ im Angebot. Zusätzlich erhaltet ihr auf den ersten Knopfdruck 4,99€ Rabatt. Link zur Aktion

Da Amazon in den letzten Wochen seine Dash Buttons im Sale hatte, habe ich mir überlegt aus Spaß mal welche zu kaufen und zu schauen, was mit den kleinen Wifi Buttons alles so möglich ist. 

Für mich war die Verbindung mit dem Dienst IFTTT ( If This Then That) https://ifttt.com am interessantesten und er lässt einem nahe zu unbegrenzte Möglichkeiten zu. Ihr könnt zB. mit einem Knopfdruck eine Email versenden, eure Wifi Lampen anschalten, ein Event tracken oder zum Beispiel eure WiFi Steckdosen damit ansteuern. Am besten schaut ihr euch auf der Webseite aber alles mal durch. 

Wie ihr den Dash Button mit IFTTT verbindet, werde ich euch in diesem Beitrag zeigen.

 

Nachteile des Amazon Dash Buttons:

Leider hat der Dash Button einen kleines Manko, was ihn unter anderem als Lichtschalter nicht ganz so optimal geeignet macht. Bei mir hat er eine Verzögerung von ca. 5 Sekunden. Das hat folgenden Grund, da er im Ruhezustand „ausgeschaltet“ ist und sobald man den Button drückt, schaltet er sich erst an, verbindet sich mit dem WLAN und führt die Aktion aus. Ist das Programm durchgelaufen, schaltet er sich wieder ab. Der Vorteil hieran ist, dass er im Standby so gut wie keinen Strom verbraucht. Er ist daher sehr sparsam und die eingebaute AAA-Batterie soll angeblich für über 1000 Klicks halten. Etwas beschleunigen kann die Reaktion des Knopfdrucks aber indem man dem Dash Button eine feste IP vergibt. Dies kann man im Router Menü machen- wie genau das bei eurem Modell dann funktioniert, müsst ihr im Internet nachsehen. 

Ein weiterer Nachteil ist ein Timeout von 10 Sekunden. Heißt: Man kann den Dash Button nur alle 10 Sekunden drücken. Dazwischen durchläuft er sein Programm bis es fertig ist. In den meisten Einsätzen stört dieser Timeout aber nicht.

Zu guter Letzt hat man eben nur einen Push Schalter auf dem Dash Button, mit dem nur 1 Klick möglich ist. Man hat also keinen Schalter, den man auf AN stellen kann und irgendwann wieder auf AUS. Dies macht es zB. beim Einsatz als Lichtschalter etwas komplizierter, da man immer nur einen Push Befehl senden kann. 


Da IFTTT die Anwendungen des Buttons gleich viel umfangreicher macht, möchte ich erst einmal die Einrichtung mit IFTTT erklären und werde in nächster Zeit auch noch weitere Projekte mit dem Dash Button ergänzen. 

 

Schritt für Schritt Anleitung – Verbindung des Dash Buttons mit IFTTT:

In meinem Fall habe ich das Ganze auf meinem Raspberry Pi in Verbindung mit Home Assistant eingerichtet. Home Assistant ist eine sehr umfangreiche Smart Home Plattform für den Pi. Wie ihr HA auf eurem Pi einrichtet, habe ich in einem anderen Beitrag erklärt. Genauso gut möglich ist das aber auch mit openHAB oder anderen Betriebssystemen. 


Was wird benötigt?

Raspberry Pi (mit Raspbian, Home Assistant o.a. )

Amazon Dash Button


1.Einrichtung

Als erstes müsst ihr euren Dash Button einrichten, sodass er sich in euer WLAN Netzwerk einloggen kann. Hier zu startet ihr die Amazon App für Android oder iOS – klickt oben links auf die 3 Balken – Mein Konto – runter scrollen zu Dash-Geräte und dort auf „Ein neues Gerät einrichten“.

Jetzt müsst ihr 6 Sekunden die Taste eures Dash Buttons drücken und anschließend eure WLAN Daten eingeben. Dies wird euch in der App aber Schritt für Schritt erklärt. WICHTIG ist hier, dass ihr nur bis zu dem Schritt durchgeht, bei dem ihr ein Produkt auswählen müsst. Wählt hier KEIN Produkt aus und brecht den Vorgang ab, in dem ihr in der oberen rechten Ecke das X drückt. 

Amazon wird euch nun regelmäßig Benachrichtigungen schicken, dass ihr euren Dash Button noch nicht fertig installiert habt. Um dies auszustellen müsst ihr unter Mein Konto – Dash Buttons – Geräte verwalten – euren Dash Button anklicken und hier unter Benachrichtigungseinstellungen alle Häckchen deaktivieren. 

 

2. Dasher installieren

Loggt euch zB. mit PuTTY auf euren Pi ein und führt folgende Befehle aus (einfach kopieren):

sudo apt-get install libpcap-dev
sudo apt-get install npm
sudo apt-get install node

wget http://node-arm.herokuapp.com/node_latest_armhf.deb 
sudo dpkg -i node_latest_armhf.deb
git clone https://github.com/maddox/dasher.git
cd dasher
npm install
script/find_button

Den Befehl script/find_button muss ebenfalls im dasher Ordner ausgeführt werden, wo ihr mit „cd dasher“ reinkommt. Jetzt müsst ihr nur noch den Knopf auf eurem Dash Button drücken und euch wird eine MAC-Adresse angezeigt. Bei Manufacturer steht im Normalfall noch „Amazon Technologies Inc.“ dahinter, wobei dies bei mir nicht dort stand. Kopiert euch die MAC-Adresse jetzt in ein Text Dokument und speichert sie euch ab. Brecht mit STRG+C das Script ab.

3. IFTTT Applet anlegen

Falls ihr noch keinen Account habt, erstellt euch einen IFTTT Account auf https://ifttt.com .

Unter My Applets erstellt ihr nun ein neues Applet. Auf der nächsten Seite auf „+this“ klicken und in der Suche nach dem Service „Webhooks“ suchen. Diesen auswählen und „Recieve a web request“ anklicken. Als Eventname könnt ihr einen x-beliebigen Namen eingeben zB. „Dash Button Nr. 1“. Diesen müsst ihr später dann in der config in euren IFTTT Link eintragen. 

Im nächsten Schritt wählt ihr die Aktion aus, die ausgeführt werden soll, wenn der Dash Button gedrückt wird. Als Beispiel eine Info Email an eure Adresse schicken. 

Jetzt braucht ihr nur noch euren IFTTT Maker Key. Dazu hier auf der Seite rechts oben auf den Settings Button mit dem Zahnrad klicken. Es erscheinen ein paar Account Info Daten und bei URL steht jetzt euer Maker Link in der Form: https://maker.ifttt.com/use/“Euer Maker Key“

Speichert euch den Maker Key ab und geht zurück in PuTTY.

 

4. Dasher Config anlegen

Jetzt müssen wir nur noch dasher konfigurieren und eine config – Datei anlegen. Ihr müsst euch dazu in dem Ordner dasher befinden. Falls ihr das nicht mehr seid, kommt ihr mit „cd dasher“ wieder da hin. Zum Anlegen der Config gebt ihr jetzt folgenden Befehl ein:

sudo nano config/config.json

Kopiert hier folgenden Code hinein und passt alle Variablen an (Name, MAC-Adresse und in der URL euren Eventnamen und Maker Key).  Speichert anschließend mit STRG+O und schließt den Editor mit STRG+X.

{"buttons":[
  {
    "name": "Beliebiger Name für euren Button",
    "address": "Die MAC-Adresse eures Dash Buttons",
    "url": "https://maker.ifttt.com/trigger/"Eventname"/with/key/"Euer IFTTT Maker Key",
    "method": "POST"
  }
]}

Alternativ könnt ihr euch auch über WinSCP auf eurem Pi einloggen und in den Ordner /home/user/dasher/config gehen und dort die config Datei anlegen. In dem Ordner befindet sich außerdem noch eine Beispiel Config, die ihr nach euren Wünschen anpassen könnt.

Fast geschafft =)

Zum Testen gebt ihr jetzt den Befehl:

sudo npm run start

ein und drückt euren Dash Button. Es sollte hier jetzt eine Meldung erscheinen, dass der Button gedrückt wurde und euer Event ausführt wurde.

Amazon Dash Button Hack - Nutzung mit IFTTT und weitere Möglichkeiten Update 14.07.2018: Aktuell hat Amazon zum Anlasse des Primeday 2018 wieder die Dashbuttons für 1,99€ im Angebot. Zusätzlich erhaltet ihr auf den ersten Knopfdruck 4,99€ Rabatt. Link zur Aktion

 
5. Autostart einrichten

Damit man nicht jedes mal Dasher von Hand aus starten muss, lohnt es sich hier das Ganze in den Autostart zu setzen. Das geht folgendermaßen:

Kopier euch das Script unter diesem Link: Dasher Autostart Script

Ändert die ersten 3 Zeilen nach dem Kommentar um in: (falls ihr dasher in ein anderes Verzeichnis installiert habt, müsst ihr das hier abändern)

dir="/home/pi/dasher"
cmd="npm run start"
user="root"

Loggt euch auf eurem Pi über SSH ein und gebt folgende Befehle ein:

sudo nano /etc/init.d/dasher

Kopiert das Script hier rein und speichert mit STRG+O und schließt den Editor mit STRG+X. Anschließend führt ihr noch diese beiden Befehle aus, um die Datei Berechtigung zu ändern und das Autostart Script zu installieren.

sudo chmod 755 /etc/init.d/dasher
sudo update-rc.d dasher defaults

Zu guter Letzt den Pi  noch neustarten mit

sudo reboot

Ihr habt nun euren Dash Button vollständig mit IFTTT eingerichtet. 

 

Wie ihr euren Dash Button anschließend noch in Home Assistant einbinden könnt und was es sonst alles noch für Möglichkeiten gibt, werde ich in einem weiteren Beitrag noch bringen.

21 Comments

  1. Norbert

    Scheint ne tolle Anleitumg zu sein. Habe lt. Anleitung alles ausgeführt, installiert und am Ende das Script gestartet. Hier wurden mir nun etliche Geräte angezeigt, aber einziges mit „Manufacturer Amazon“

    Woran erkenne ich denn dann, welche mac Adresse die richtige ist.
    Da werden Adressen mit Udo und mit arp angezeigt und etliche von avm (fritzbox).

    1. Patrick

      Hallo Norbert,
      hast du nachdem du das Skript gestartet hast den Dash Button gedrückt?
      Ca. 5 Sekunden nach dem Drücken sollte der jeweilige Dash Button dir dann mit der MAC-Adresse dort angezeigt werden (in jedem Fall mit Amazon im Namen).

      Viele Grüße,
      Patrick

      1. Norbert

        Ja, habe ich. Habe dann auch mal über die fritzbox mitgelockt und ein macadresse einwandfrei zuordnen können. Mehr g8 g dann aber nicht.

        Habe extra, nachdem sie verboten wurden, nochmal 2 nachbestellt. Ich will die Dinger als Lichtschalter nutzen.

      2. Norbert Wangerin

        SO SIEHT MEINE SCRIPT-DATEI AUS. Macadresse kann ihc auhc ohne den Amazon manufactured-Hinweis druch ein log meiner Fritzbox einwandfrei zuordnen), macadresse und menen ifttt-key habe ich unkenntlich gemacht:

        {„buttons“:[
        {
        „name“: „Treppenlichtschalter“,
        „address“: „xx:xx:xx:xx:xx:xx“,
        „url“: „https://maker.ifttt.com/trigger/“Eventname“/with/key/“dasistmein_ifttt-key“,
        „method“: „POST“
        }
        ]}

        Liegt der Fehler evtl. darin, dass noch die „“ drin sind ?

        1. Norbert Wangerin

          wenn ich nun alles nach der anleitung zuende gebracht habe, mein Raspi rebootet ist und ihc das testscript ausführe kommt folgender fehlermeldung:

          Fehler nach ausführen von:
          pi@raspi2:~ $ sudo npm run start

          npm ERR! Linux 4.14.79-v7+
          npm ERR! argv „/usr/local/bin/node“ „/usr/local/bin/npm“ „run“ „start“
          npm ERR! node v4.2.1
          npm ERR! npm v2.14.7
          npm ERR! path /home/pi/package.json
          npm ERR! code ENOENT
          npm ERR! errno -2
          npm ERR! syscall open

          npm ERR! enoent ENOENT: no such file or directory, open ‚/home/pi/package.json‘
          npm ERR! enoent This is most likely not a problem with npm itself
          npm ERR! enoent and is related to npm not being able to find a file.
          npm ERR! enoent

          npm ERR! Please include the following file with any support request:
          npm ERR! /home/pi/npm-debug.log

          1. Patrick

            Das Problem hatte ich auch einmal. Konnte es durch neu installieren von npm beheben.
            Probiere es nochmal neu zu installieren
            sudo apt-get install nodejs npm node-semver

            Anschließend überprüfen, ob es geklappt hat mit
            npm –version

        2. Patrick

          Bin mir grad nicht sicher, ob die Doppelpunkte bei der MAC-Adresse mit rein sollen. Probiere es mal einfach die Adresse ohne Doppelpunkte reinzuschreiben.
          Werde bei Gelegenheit mal nachschauen wie die Script Datei bei mir aussieht.

          1. Norbert Wangerin

            habe heute alles neu auf nem pi zero W installiert.

            vielleicht liegt der fehler woanders. hilf mir odch bitte mal – step-by-step:

            ich möchte den dashbutton als lichtschalter für mein treppenlicht benutzen, dass mit einem emylo-smartswitch (220v) geschaltet wird – funzt perfekt !

            was, bzw. wie genua erstelle ich dafür eine ifttt-action ?

            1. ich klicke auf +that
            2. ich wähle „webhook“
            3. ich vergebe den Namen – bei mit treppenlichtschalter
            4. ?
            5.?
            6.?

          2. Norbert Wangerin

            habe die fehlenden schritte jetzt alleine herausbekommen – war nciht so leihct, weil es ja in der alexa app alles schon automatisch geht.

            für die anderen:
            4. wäre die auswahl der App, in der euere smarthomegerät angemeldet und aktiviert ist – bei mir ist das z.B. u.a. kasa (die tp-link-app).
            5. wählt man nun, NACHDEM man sihc an sienem kasa-konto angemeldet hat dort eins der zu schaltenden geräte aus und wählt abschliessend dieaktion („switch on“ z.B..

            spechern. fertig

    2. HP

      hallo,
      wie wird das script verändert wenn man mehrere Buttons hinzufügen will.

      Vielen Dank

      1. Patrick

        {„buttons“:[
        {
        „name“: „Beliebiger Name für euren Button“,
        „address“: „Die MAC-Adresse eures Dash Buttons“,
        „url“: „https://maker.ifttt.com/trigger/“Eventname“/with/key/“Euer IFTTT Maker Key“,
        „method“: „POST“
        },
        {
        „name“: „Beliebiger Name für eures zweiten Button“,
        „address“: „Die MAC-Adresse eures 2. Dash Buttons“,
        „url“: „https://maker.ifttt.com/trigger/“Eventname“/with/key/“Euer IFTTT Maker Key“,
        „method“: „POST“
        }
        ]}

  2. Neuroplant

    Hallo,
    Wozu ist es nötig die Einrichtung des Dash-Button bei Amazon abzubrechen?
    Ich würde doch gerne zumindest einmal eine Bestellung auslösen, um das Geld zurück zu bekommen) und dann den Internetzugriff für den Button am Router deaktivieren.

    Gruß
    Neuroplant

    1. Patrick

      Hallo,
      es war nötig, da ansonsten der Dash Button fest dem Produkt zugeordnet wurde und sich nicht mehr beliebig konfigurieren lies bzw. eben immer bei Druck noch die Bestellung ausgelöst hat. Ein Reset war dann nicht mehr so leicht möglich.
      Es kann sein, dass man ihn inzwischen auch resetten kann – also einmal einrichten, etwas bestellen und ihn dann resetten und für andere Aktionen nutzen. Das müsste ich mir aber erst einmal anschauen.

      Bezüglich dem Gutschein bei dem ersten Kauf – bei mir war der automatisch im Konto hinterlegt und er wurde automatischen bei jedem Kauf von Amazon Produkten angerechnet. Ein Kauf über den Dashbutton war hier nicht nötig. Aber vielleicht wurde auch hier etwas geändert. Meine Dash Buttons laufen seit einiger Zeit und habe seit ein paar Monaten keine neuen mehr hinzugefügt.

      Werde mir die aktuelle Lage wenn ich Zeit habe mal anschauen, vielleicht kann man inzwischen auch etwas anders vorgehen 🙂

      Viele Grüße,
      Patrick

    2. Patrick

      Noch eine Ergänzung: Über die Amazon App kann man die Dash Buttons resetten indem man sie deaktiviert und anschließend einmal den Knopf drückt am Dash Button.
      Es sollte daher eigentlich kein Problem sein einmal etwas zu bestellen und sie dann zu resetten und für andere Aktionen zu nutzen.

      Grüße, Patrick

  3. Thomas Klockenkämper

    Hallo!

    Meine Frau, die ein absoluter Technik-Feind ist, wurde bekehrt und freut sich über einen Dash-Button, der als „Breastfeeding Time Tracker“ funktioniert.

    Vielen Dank für die tolle Anleitung!

  4. semafelectronics

    Super Tutorial aber hier sollte Node und NPM unbedingt den neueste 4.x Version bekommen. Ich hatte mit der vorhandenen version aus der Repo Probleme und da hilft wenn gleich nach libpcap der rest mit dem untere Befehl installiert wird.

    Da gibt es keine compile Probleme und der Dash Button wird erkannt!

    curl -sL https://deb.nodesource.com/setup_4.x | sudo bash –

  5. Björn

    Hallo

    Was mich interessiert ist, ob der Raspi in Deinem Beispiel im WLAN hängen muss oder ob es auch über Kabel funktioniert?

    Hintergrund ist, dass ich einen Windows Server laufen habe und dort eine schlanke Debian VM laufen lassen könnte.

    Ich möchte persönlich nur erreichen, dass ich bei Betätigung automatisch eine vorgefertigte Email zugesendet bekomme.

    Funktioniert das so?

    1. Patrick

      Hallo Björn,
      ja natürlich kann der Raspi auch über Kabel ans Netzwerk angeschlossen sein – funktioniert in beiden Fällen.
      Das mit der vorgefertigten Email lässt sich mit dem Dash Button sehr einfach dann einrichten. Habe das mit einem meiner Dash Buttons ebenfalls über IFTTT am laufen.

      Viele Grüße,
      Patrick

  6. eyeq1941

    Hallo, erstmal Danke für die Anleitung. Leider funktioniert das starten nicht. Bekomme immer diese Meldung.

    npm ERR! Linux 4.9.35-v7+
    npm ERR! argv „/usr/local/bin/node“ „/usr/local/bin/npm“ „run“ „start“
    npm ERR! node v4.2.1
    npm ERR! npm v2.14.7
    npm ERR! code ELIFECYCLE
    npm ERR! dasher@1.4.1 start: `node app.js`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the dasher@1.4.1 start script ’node app.js‘.
    npm ERR! This is most likely a problem with the dasher package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR! node app.js
    npm ERR! You can get their info via:
    npm ERR! npm owner ls dasher
    npm ERR! There is likely additional logging output above.

    npm ERR! Please include the following file with any support request:
    npm ERR! /home/pi/dasher/npm-debug.log

    gibts hierfür eine Lösung ?

    best

    eyeq

    1. Patrick

      Hey,

      Falls du alle Schritte in der Anleitung ausgeführt hast und keine Fehlermeldung bei den Installationen erschienen ist,
      versuche mal nur npm neu zu installieren auf die neueste Version und alles upzudaten. (Notfalls nochmal alle Schritte von vorne durchgehen mit der Dasher Installation).

      Ich habe es zum Test auch bei mir schon auf mehreren Raspberrys eingerichtet und bisher noch keine Fehlermeldung erhalten.

      Wenn es immer noch nicht klappt, schau mal in deinem Log Bericht nach, welcher sich im Dasher Ordner befindet und poste mir mal den Fehler.
      Eventuell gibt es auch ein Problem in der Config Datei (ungültiges Zeichen mitkopiert o.ä.). Die MAC-Adresse deines Dash Buttons hast du in der Config hinzugefügt?

      Viele Grüße,
      Patrick

    2. Martin

      War bei mir ein Fehler im json script! Danach alles bestens! Danke@Patrick

Schreibe einen Kommentar zu eyeq1941 Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert