Zum Inhalt

Amazon Dash Button als Schalter für HomeKit

Bereits seit längerem vertreibt Amazon in den USA seine Dash Buttons, mit welchen sich auf Knopfdruck Artikel, wie Rasierklingen, Zahnpaste oder Toilettenpapier ganz einfach bestellen lassen. Seit kurzem gibt es die Dash Buttons auch in Deutschland. Was das mit HomeKit zu tun hat erkläre ich euch gleich.

Amazon Dash Button als Schalter für HomeKit: Homebridge macht’s möglich

Der Amazon Dash Button ist im Prinzip ein einfacher kleiner Plastik-Schalter, welcher mit einem WLAN-Modul ausgerüstet ist und auf Knopfdruck einen einzelnen Befehl an Amazon sendet und somit einen Artikel eurer Wahl bestellen kann. Die Dash Button’s kann man für lediglich 4,99 € bei Amazon ordern. Und diese 4,99 € werden dir bei der nächsten Bestellung als Gutschein wieder gutgeschrieben. Dass heißt im Prinzip sind diese kleinen Button kostenlos. Was liegt da näher, als die Button zweckzuentfremden und somit einen einfachen und kostenlosen physischen Schalter zu erhalten, mit dem ihr euer Smart-Home steuern könnt und bspw. eure alten Lichtschalter ersetzen könnt. Praktischerweise haben die Dash-Button’s auch gleich noch einen kleinen Haken dabei, mit welchem ihr den Button aufhängen könnt, oder alternativ über den ebenfalls enthaltenen Klebestreifen an einer beliebigen Oberfläche anhaften könnt.

btf_03-dp-de-482x622

Dank Homebridge (Eine ausführliche Erklärung und Anleitung könnt ihr hier nochmal nachlesen) können wir Geräte, welche nicht von Haus aus HomeKit kompatibel sind, fit für Apple’s Smart Home machen. Genau das ist auch mit dem Dash Button möglich und mit Hilfe eines einfachen kleinen Plugins umsetzbar. Da der Dash Button in den USA schon länger erhältlich ist, ist das Plugin auch schon ausgereift und wurde ausführlich getestet. Wir ihr das Plugin installieren könnt und die Einrichtung des Dash Buttons von statten gehen, zeige ich euch in der folgenden Anleitung.

Einrichtung des Amazon Dash Button

Erst einmal müsst ihr einen beliebigen Amazon Dash Button über folgenden Link bestellen. Diesen gibt es von verschiedenen Marken und sind daher mit verschiedenen Logos bedruckt. Wählt also einfach das Logo eurer Wahl.

WICHTIG: Wenn ihr den Dash Button erhalten habt, folgt der beiliegenden Anleitung zur Einrichtung des Buttons über die Amazon-App nicht bis zum Ende. Nach der Verbindung mit eurem WLAN- und Amazon-Account, werdet ihr gefragt welches Produkt der entsprechenden Marke ihr beim Drücken des Button bestellen wollt. Wählt hier nichts aus und brecht den Vorgang ab bzw. schließt die App. Euer Dash-Button ist nun bereit und meldet sich in eurem WLAN an, bestellt aber kein Produkt auf Amazon. Das Homebridge-Plugin lauscht nun ständig, ob euer Dash-Button gedrückt wurde und sich daraufhin ins WLAN einwählt und gibt diese Aktion an HomeKit weiter.

Installation des Homebridge-Plugins

Euer Dash-Button läuft nun also. Kommen wir zur Installation des Homebridge-Plugins. In meiner Anleitung gehe ich davon aus, dass Homebridge bei euch ebenfalls auf einem Raspberry Pi läuft. Details hierzu findet ihr noch einmal in meiner Anleitung zur Installation von Homebridge. Bevor wie das Plugin installieren, benötigen wir aber noch eine weitere kleine Anwendung namens „node-dash-button“. Diese hilft uns dabei die richtige Netzwerkadresse (MAC) eures Dash Buttons herauszufinden.

Für „node-dash-button“ benötigen wir wiederum eine weitere Abhängigkeit, die ihr mit folgendem Befehl installieren könnt:

sudo apt-get install libpcap-dev

Leider hat der obige Befehl bei mir nicht auf Anhieb funktioniert. Sollte das bei euch auch der Fall sein könnt ihr die Installation mit den folgenden Befehlen auch manuell anstoßen:

wget http://mirrordirector.raspbian.org/raspbian/pool/main/libp/libpcap/libpcap-dev_1.7.4-2_all.deb
wget http://mirrordirector.raspbian.org/raspbian/pool/main/libp/libpcap/libpcap0.8-dev_1.7.4-2_armhf.deb
wget http://mirrordirector.raspbian.org/raspbian/pool/main/libp/libpcap/libpcap0.8_1.7.4-2_armhf.deb
sudo dpkg -i *.deb

Anschließend können wir nun das Paket „node-dash-button“ installieren:

npm install node-dash-button

So, nun können wir mit dem kleinen Tool „node-dash-button“ die Netzwerkadresse eures Dash Button herausfinden. Hierfür folgende Befehle ausführen:

cd ~/node_modules/node-dash-button 
sudo node bin/findbutton

Die Anwendung lauscht nun in eurem Netzwerk auf mögliche Aufrufe eines Dash-Buttons. Drückt also nun mehrmals den Knopf eures Dash-Buttons. Hat die Anwendung einen möglich Aufruf gefunden, so gibt diese folgendes aus:

Possible dash hardware adress detected: 8f:3f:20:33:54:44

Für uns interessant ist hier der fett markierte Teil. Hierbei handelt es sich um die Netzwerkadresse eures Buttons, welche wir später für die Konfiguration des Homebridge-Plugins benötigen.

Nun also zum Homebridge-Plugin selber. Installiert dieses mit folgendem Befehl:

npm install -g homebridge-amazondash

Nun sollte das Plugin installiert sein und bei einem Neustart von Homebridge aktiv sein. Vorher müssen wir aber noch die config von Homebridge entsprechend anpassen, damit das Plugin auch geladen wird und Homebridge die Netzwerkadresse eures Dash-Buttons kennt. Die config könnt ihr mit folgendem Befehl bearbeiten:

nano ~/.homebridge/config.json

Hier nun folgenden Teil einfügen:

{
   "platform": "AmazonDash",
   "buttons": [
   {
      "name": "Dash",
      "mac": "8f:3f:20:33:54:44"
   }]
}

Unter „name“ tragt ihr einfach einen beliebigen Namen für euren Button ein. Dieser wird später auch in der Home-App so heißen. Unter „mac“ benötigen wir nun wieder die Netzwerkadresse von vorhin. Die config wie gewohnt mit STRG+X beenden und speichern.

Eigentlich wären wir nun bereits am Ende. Leider gibt es bei diesem Plugin aber noch eine Besonderheit. Um euer Netzwerk überwachen zu können muss Homebridge mit erweiterten Benutzerrechten auf eurem Raspberry Pi laufen. Falls ihr meiner Anleitung gefolgt seid, so startet Homebridge bei euch wahrscheinlich auch automatisch mit dem Raspberry Pi. Somit müssen wir nur den Befehl zum Start etwas anpassen.

Hierfür einmal euer Start-Skript mit folgenden Befehl öffnen:

sudo nano /etc/init.d/homebridge

Hier lediglich mit einem # folgende Zeile auskommentieren (Bei mir ist dies Zeile 14):

#user="pi"

Durch diese Änderung startet Homebridge automatisch mit erweiterten Nutzerrechten. Die Datei wieder mit STRG+X schließen und speichern.

Leider ändert sich durch diese Anpassung auch das Verzeichnis, in welchem Homebridge nach der config-Datei sucht. Daher müssen wir in einem letzten Schritt noch unsere bestehende config in das neue Verzeichnis kopieren:

sudo cp ~/.homebridge/config.json /root/.homebridge/config.json

Das war’s! Homebridge nun einmal neustarten und euer Dash Button sollte verfügbar sein:

sudo /etc/init.d/homebridge restart

Dash Button als Auslöser nutzen

Um nun euren Dash Button auch tatsächlich als Schalter gebrauchen zu können, müsst ihr diesen als Auslöser in HomeKit verwenden. Dass heißt sobald der Schalter gedrückt wird, könnt ihr eine bereits definierte Szene aktivieren (z.B. alle Lichter in einem Raum einschalten). Leider erkennt die neue von Apple mit iOS 10 eingeführte Home-App diese Art von Schalter noch nicht. Ich konnte den Schalter aber erfolgreich als Auslöser mit der kostenlosen App „Hesperus“ konfigurieren, welche ich euch uneingeschränkt empfehlen kann.

Wie immer freue ich mich über Hinweise und Tipps in den Kommentaren. Viel Spaß!

Published inAllgemein

9 Comments

  1. Mike Mike

    Hi,

    funktioniert es mittlerweile mit der HomeKit App von Apple?

    • Hallo Mike,
      die App „Home“ von Matthias Hochgatterer kann die Auslöser inzwischen auch anlegen. Die offizielle Home-App von Apple kann es leider noch nicht. Ist der Auslöser aber einmal angelegt wird dieser von der Home-App auch richtig angezeigt und ausgelöst. Du bräuchtest also nur einmalig zum Anlegen des Auslösers eine Dritt-App.

  2. Mike Mike

    Ach, was ich noch vergessen habe: Leider funktioniert dein Newsletter nicht richtig. Ich bekomme keine Bestätigungsmail und keine Newsletter…:-)

    • Hallo Mike,
      danke für den Hinweis! Werde ich gleich mal überprüfen. Auf jeden Fall solltest du bei neuen Beiträgen eine Benachrichtigung erhalten 🙂

  3. Sebastian Sebastian

    Hallo irgendwie bekomme ich es nicht zum laufen. Homebridge mit 433MHZ Steckdosen laufen einwandfrei.
    Aber schon bei der Installation des Plugins von dem Dashbuttons macht der RPI irgendwie ärger. Ich habe einen RPI 1 mit Jessie installiert.

    Folgende Meldungen kommen bei der Installation des Amazondash

    pi@raspberrypi:~ $ sudo npm install -g homebridge-amazondash
    (node:2121) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.

    > socketwatcher@0.3.0 install /usr/local/lib/node_modules/homebridge-amazondash/node_modules/socketwatcher
    > node-gyp rebuild

    gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/6.9.1“
    gyp WARN EACCES attempting to reinstall using temporary dev dir „/usr/local/lib/node_modules/homebridge-amazondash/node_modules/socketwatcher/.node-gyp“
    make: Entering directory ‚/usr/local/lib/node_modules/homebridge-amazondash/node_modules/socketwatcher/build‘
    CXX(target) Release/obj.target/socketwatcher/socket_watcher.o
    ../socket_watcher.cpp: In static member function ‘static void SocketWatcher::New(const Nan::FunctionCallbackInfo&)’:
    ../socket_watcher.cpp:104:49: warning: ‘v8::Local v8::Function::NewInstance() const’ is deprecated (declared at /usr/local/lib/node_modules/homebridge-amazondash/node_modules/socketwatcher/.node-gyp/6.9.1/include/node/v8.h:3274): Use maybe version [-Wdeprecated-declarations]
    info.GetReturnValue().Set(cons->NewInstance());
    ^
    SOLINK_MODULE(target) Release/obj.target/socketwatcher.node
    COPY Release/socketwatcher.node
    make: Leaving directory ‚/usr/local/lib/node_modules/homebridge-amazondash/node_modules/socketwatcher/build‘

    > pcap@2.0.0 install /usr/local/lib/node_modules/homebridge-amazondash/node_modules/pcap
    > node-gyp rebuild

    gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/6.9.1“
    gyp WARN EACCES attempting to reinstall using temporary dev dir „/usr/local/lib/node_modules/homebridge-amazondash/node_modules/pcap/.node-gyp“
    make: Entering directory ‚/usr/local/lib/node_modules/homebridge-amazondash/node_modules/pcap/build‘
    CXX(target) Release/obj.target/pcap_binding/pcap_binding.o
    ../pcap_binding.cc:2:23: fatal error: pcap/pcap.h: No such file or directory
    #include
    ^
    compilation terminated.
    pcap_binding.target.mk:93: recipe for target ‚Release/obj.target/pcap_binding/pcap_binding.o‘ failed
    make: *** [Release/obj.target/pcap_binding/pcap_binding.o] Error 1
    make: Leaving directory ‚/usr/local/lib/node_modules/homebridge-amazondash/node_modules/pcap/build‘
    gyp ERR! build error
    gyp ERR! stack Error: `make` failed with exit code: 2
    gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
    gyp ERR! stack at emitTwo (events.js:106:13)
    gyp ERR! stack at ChildProcess.emit (events.js:191:7)
    gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
    gyp ERR! System Linux 4.4.21+
    gyp ERR! command „/usr/local/bin/node“ „/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „rebuild“
    gyp ERR! cwd /usr/local/lib/node_modules/homebridge-amazondash/node_modules/pcap
    gyp ERR! node -v v6.9.1
    gyp ERR! node-gyp -v v3.4.0
    gyp ERR! not ok
    /usr/local/lib
    └── (empty)

    npm ERR! Linux 4.4.21+
    npm ERR! argv „/usr/local/bin/node“ „/usr/local/bin/npm“ „install“ „-g“ „homebridge-amazondash“
    npm ERR! node v6.9.1
    npm ERR! npm v3.10.8
    npm ERR! code ELIFECYCLE

    npm ERR! pcap@2.0.0 install: `node-gyp rebuild`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the pcap@2.0.0 install script ’node-gyp rebuild‘.
    npm ERR! Make sure you have the latest version of node.js and npm installed.
    npm ERR! If you do, this is most likely a problem with the pcap package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR! node-gyp rebuild
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR! npm bugs pcap
    npm ERR! Or if that isn’t available, you can get their info via:
    npm ERR! npm owner ls pcap
    npm ERR! There is likely additional logging output above.

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

    Kann mir vielleicht jemand helfen?
    Vielen Dank
    Sebastian

  4. Guten Abend,
    erstmal vielen dank für das tolle Tutorial!
    Leider bekomme ich bei dem start von Homebridge folgenden fehler, dieser kommt jedoch erst nachdem der Code angezeigt wird, etwa 1 sekunde danach…

    Error: socket: Operation not permitted
    at Error (native)
    at new PcapSession (/usr/local/lib/node_modules/homebridge-amazondash/node_mod ules/pcap/pcap.js:49:39)
    at Object.exports.createSession (/usr/local/lib/node_modules/homebridge-amazon dash/node_modules/pcap/pcap.js:123:12)
    at create_session (/usr/local/lib/node_modules/homebridge-amazondash/node_modu les/node-dash-button/index.js:12:28)
    at register (/usr/local/lib/node_modules/homebridge-amazondash/node_modules/no de-dash-button/index.js:29:24)
    at DashPlatform.didFinishLaunching (/usr/local/lib/node_modules/homebridge-ama zondash/index.js:54:17)
    at emitNone (events.js:86:13)
    at API.emit (events.js:185:7)
    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:93:13)
    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)
    Failed to create pcap session: couldn’t find devices to listen on.
    Try running with elevated privileges via ’sudo‘
    /usr/local/lib/node_modules/homebridge-amazondash/node_modules/node-dash-button/in dex.js:16
    throw new Error(‚Error: No devices to listen‘);
    ^

    Error: Error: No devices to listen
    at create_session (/usr/local/lib/node_modules/homebridge-amazondash/node_modu les/node-dash-button/index.js:16:15)
    at register (/usr/local/lib/node_modules/homebridge-amazondash/node_modules/no de-dash-button/index.js:29:24)
    at DashPlatform.didFinishLaunching (/usr/local/lib/node_modules/homebridge-ama zondash/index.js:54:17)
    at emitNone (events.js:86:13)
    at API.emit (events.js:185:7)
    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:93:13)
    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:40:10)
    at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:1 7:22)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)

    Hat jemand eine Idee woran es liegt?

    • Hallo Filip,

      auf den ersten Blick sieht es so aus, als ob Homebridge noch nicht unter deinem root-Benutzer läuft. Hast du dein Start-Skript entsprechend meiner Anleitung oben bereits angepasst und Homebridge neu gestartet?

  5. MX MX

    Hey,
    Ich habe auch diesen Artikel mit großem Interesse gelesen.
    Es klappt auch alles, er schreibt mir beim „Sudo“ Start von Homebridge auch was „Initializing Amazon Dash Button“ und der Button wird mir dann auch in der Eve App als Auslöser angezeigt. Aber nach Einrichtung einer Szene für den Auslöser passiert mit einem Klick auf den Dash-Button nichts. Auch gibt es im Terminal keine Rückmeldung, dass ein Dash-Button betätigt wurde.
    MAC-Adresse habe ich schon gecheckt. Woran kann das noch liegen?

    LG, MX

  6. Nils Nils

    Hallo Markus

    Das ist eine super Anleitung. Ich habe nun jedoch das Problem, dass der Dash Button nicht immer funktioniert. Man muss dazu sagen, dass ich ein anderes Plugin verwendet habe , welches den Status des der Schwarte in einem normalen Schalter speichert. Nun scheint die Automatisierung in der Home App selbst nicht immer zu funktionieren. Ich sehe das der Button den Status AN bekommt, jedoch führt er das dahinter liegende nicht aus. Deaktiviere und aktiviere ich die automatisierungsregel gehts wieder für ein paar Stunden. Hast du eine idee?

Schreibe einen Kommentar

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