Amazon Dash Button "missbrauchen"

Ich möchte den Amazon Dashbutton als WLAN Button verwenden um eigene Aktionen auszuführen. Nach dem ich den Knopf vom Internet abgeklemmt habe möchte ich ein Programm haben, das im Netzwerk lauscht und auf einen Knopfdruck eine Aktion startet.

Um einfach zu beginnen möchte ich meine Espresso Maschine einschalten die an eine Funksteckdose angeschlossen ist. Später kommen dann noch andere Sachen dazu.

Mit Wireshark kann man schön sehen was im Netz passiert wenn der Button gedrück wird

Es gibt einige Beschreibungen wie man diesen Event abfangen kann. Ich habe eine angepasste Variante von hier genommen.

Das Pythonprogramm lauscht auf dem Netzwerk und führt den Befehl aus den ich für meine Funksteckdose brauche.

 import logging
 import os
 logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
 from scapy.all import *
 print('Init done.')
 def arp_display(pkt):
   if pkt[ARP].op == 1:
     if pkt[ARP].hwsrc == 'ac:63:be:f6:04:38':
          print("Pushed Button 1")
          os.system ("sudo send 10111 1 1")
     elif pkt[ARP].hwsrc == '10:ae:60:64:04:95':
         print("Pushed Black Button 2")
 print(sniff(prn=arp_display, filter="arp", store=0))

Natürlich muss man das ganze noch etwas robuster und konfigurierbarer gestalten aber die Basis ist gelegt.

Vielen Dank auch an meinen Sohn der mir die Suche nach dem “os.system” Aufruf ersparte weil er mir aus dem Kopf sagen konnte welche Python Bibliothek man dafür braucht.