Hallo Foris,
aufgrund des Interesses an meinem Projekt "Notfallknopf mit Raspberry Pi und Amazon Dash" im Bereich "was hab ich heute für meine Preparedness getan" hier der versprochene seperate Beitrag dazu mit einer detailierten Erklärung.
Ich habe das für meine Eltern konzipiert, die in ihrem eigenen Haus in der Nähe wohnen aber langsam älter werden.
Deshalb (und aus aktuellem Anlass) wollte ich eine Möglichkeit schaffen, wie die typischen jungen Smartphone Nutzer einfach benachrichtigt werden können falls Hilfe vor Ort nötig wird. Sprich meine Eltern können damit im Notfall einfach zu Hause auf den Knopf drücken und schon bekommen ich, meine Frau und mein Bruder sofort eine Notfallmail aufs Handy. Der Knopf ist klein und kann auch im Haus mitgenommen werden.
Folgende Hardware habe ich verwendet:
- Einen Amazon Dash Button - egal welcher. Einfach bestellen. Kostet in DE 4,99 EUR. Man muss nix damit bestellen. Wenn man es doch tut werden die 4,99 EUR mit der ersten Bestellung verrechnet.
- Ein häusliches WLAN Netz - ich werde das Vorgehen anhand einer Fritzbox 7490 beschreiben, das ist aber reine bequemlichkeit, es eignet sich auch jeder andere Router.
- Ein Raspberry PI - der muss nicht sonderlich schnell sein, ich habe einen Raspberry Pi 2 verwendet. Er muss halt (gerne auch am Kabel) im gleichen Netzwerk wie die WLAN Geräte sein und immer eingeschaltet.
Software:
- Eine "normale" Raspbian Linux Installation (z.B. hier: https://www.raspberrypi.org/downloads/)
- Ein funktionierendes Python muss installiert sein (ist eine Skriptsprache) - das ist bei mir schon eine Weile her, ich weis nicht mehr ob es bereits beim Download mit drin ist. Falls Nein einfach mit "sudo apt-get install python-2.7 python-pip" nachinstallieren.
Schritt 1: Den Dash Button im WLAN Netz einrichten - diese Einrichtung aber nur soweit beenden, dass KEIN Produkt zum Einkauf ausgewählt wird. Also derzeit den Punkt 6. NICHT mehr ausführen.
Amazon beschreibt das hier:
https://www.amazon.de/gp/help/…6340&tag=httpswwwaustr-21
Das war dann gleich mal das letzte Mal, dass Amazon etwas von "seinen" Button gehört hat. Denn jetzt kommt
Schritt 2: Die Admin-Oberfläche des Routers aufrufen, in meinem Fall über die URL http://fritz.box Dort unter "Heimnetz" nach dem Amazon Button suchen. Er ist unter "inaktive Geräte" zu finden, da er aus Stromspargründen nur einige Sekunden "online" ist, wenn gedrückt wurde. Ggf. gibt es im Netz eine Reihe von Beschreibungen, wie man den Button findet und genau identifiziert. Einfach nach "Amazon Dash Hack" suchen. Oder mich fragen
In Eurem Router solltet Ihr gleich nach der Einrichtung in Schritt 1 eine Zugriffsregel für den Button einrichten, die dafür sorgt, dass der Button nicht mehr "nach draussen" kommunizieren darf. Andernfalls würde Amazon Euch mit einer Email nerven, dass die Einrichtung nicht abgeschlossen ist und ungebetene Email-Hilfe anbieten. Das endet hiermit...
Des Weiteren sollte der Übersicht halber dem Button eine feste IP Adresse zugeordnet werden (ist aber nicht zwingend). Und in der Fritzbox wird auch die MAC Adresse des Buttons angezeigt. Diese ist wichtig - gleich notieren, die brauchen wir später noch.
Schritt 3: Den Raspberry Pi als "Lauscher" konfigurieren. Praktisch alle "Dash-Hacks" im Netz funktionieren gleich: Man hat ein Skript das im lokalen Netzwerk auf ein "Lebenszeichen" des Buttons lauscht. Und wenn dieses Lebenzeichen erkannt wurde wird eine beliebige Aktion ausgelöst. In meinem Fall wird eben per SMTP eine Email verschickt. Das Skript das ich zusammen geschraubt habe beinhaltet aber auch bereits die Logik für IFTTT, ein Dienst, der es ermöglicht diverse Aktionen auf einen Web-Event zu definieren. Man könnte z.B. einen Twitter Eintrag generieren o.ä. In der Anlage findet Ihr mein Skript, es ist eine eigene Anpassung von diversen Fundstellen im Netz. Über IFTTT könnte ich in einem seperaten Beitrag schreiben, das würde hier erst mal zu weit führen.
Wichtig ist die Zeile 66: Dort müsst Ihr die MAC Adresse Eures Dash Buttons eintragen anstatt meiner. Falls Ihr mehre Buttons habt können die da auch dazu. Ach ja, und natürlich Eure SMTP Email Infos müssen oben in das Skript rein - das ist ja klar. Die funktionieren so nicht. Diese bekommt Ihr von Eurem Email Betreiber oder es steht in Eurem Email Programm.
Jetzt könnt Ihr das ganze testen, indem Ihr das Skript manuell in Euer Home Verzeichnis kopiert (bei mir in /home/pi/dash/dash.py) und dort mit "sudo python dash.py" startet. Danach den Button drücken und schon sollte das Ereignis ausgelöst werden, in diesem Fall eine Email.
Es fehlt nun noch Schritt 4:
Das Dash-Python-Skript beim (Neu-)start des Raspberry Pis automatisch im Hintergrund starten:
Einfach an der Kommandozeile "sudo crontab -e" ausführen um einen neuen Eintrag im Crontab einzurichten.
Z.B. einfach sowas hier in die erste Zeile rein:
@reboot sh /home/pi/launcher.sh >/home/pi/logs/cronlog 2>&1
Speichern mit Strg-X
Noch das log-Verzeichnis anlegen (falls beim Start was schief geht):
mkdir /home/pi/logs
Wie Ihr seht habe ich im Crontab ein Shellskript hinterlegt - ich war nicht sicher, ob man da direkt ein Python Skript rein schreiben kann. Ausserdem kann man so den Pfad sicher festlegen. Auch das Shellskript findet Ihr in der Anlage - es befindet sich bei mir im Verzeichnis /home/pi
Jetzt noch ein Neustart des Raspis und der Knopfdruck sollte eine Email verursachen.
Wenn der Button sich beim "Knopfdruck" im WLAN registrieren konnte, dann leuchtet er erst kurz weiß und dann 2-3mal rot. Zumindest bei mir ist das so. Laut Amazon hält eine Batterieladung für bis zu 1000 Knopfdrücke. Falls bei mir mal die Batterie leer sein wird werde ich versuchen den Energiespeicher zu tauschen.
Viel Spaß damit - ich hoffe ich habe mich verständlich ausgedrückt und nicht allzu viele Fehler gemacht - ist mein erstes größeres eigenes Tutorial...
:peinlich:
Gruß
Bilbo3000
previval.org/f/index.php?attachment/36944/previval.org/f/index.php?attachment/36945/
PS: Ich habe im Netz auch noch einen Dienst gefunden, der eine virtuelle Telefonanlage beinhaltet. Diese ermöglicht es, eine Ortsfestnetznummer in DE zu wählen und mehrere Telefone oder Handy klingeln gleichzeitig. Derjenige, der als erstes abnimmt hat den Anruf. Das nutze ich schon seit Jahren für Notfälle im Rahmen des Asthmaproblems meines Sohnes. Der Button ist eine Ergänzung wenn man nicht mehr wählen/telefonieren kann. Die Telefonvariante beschreibe ich vielleicht ein anderes Mal...