Mastodon Senseo Kaffeemaschine Fernsteuern über Raspberry Pi :: Yama's Blog

Senseo Kaffeemaschine Fernsteuern über Raspberry Pi 20. March 2016, 12:29

Seit einiger Zeit hatte ich einen Raspberry Pi als MediaPlayer mit Kodi in Verwendung, den ich auch für Server-Backups von A.T.S.P. im Einsatz hatte und auch andere Kleinigkeiten.
Später haben sich ein paar mehr Raspberry Pis angesammelt und da ich schon immer mit dem Gedanken spielte, meine Senseo fernzusteuern, habe ich mal danach gesucht und nun kann ich vom PC und auch vom Smartphone Kaffee machen :D

Ich selber habe leider keine Bilder davon gemacht, wie ich die Kontakte an die Platine gelötet habe. Aber auf dieser Seite und auf dieser Seite, wird genau gezeigt, welche Kontakte man Löten muss.
Allerdings habe ich zusätzlich auch einen Kontakt an die LED gelötet, damit ich prüfen kann, ob die Senseo an ist und noch weiteres, wozu ich später komme.
Somit hatte ich insgesamt 4 Drähte in der Senseo gelötet, Masse, Power-Taste, LED und eine doppelte-Kaffee-Taste.

Das war erst der Anfang… Denn die Programmierung der Scripte zum Steuern der Senseo war eine viel größere Herausforderung, die sehr viel Spaß gemacht hat :D
Nachdem ich ein paar Vorlagen aus dem Internet eingesetzt habe, habe ich schnell angefangen mir selber etwas mit Python zu programmieren. Dies besteht aus zwei Teilen (Github):

  • Server-Teil, welcher auf dem Raspberry Pi läuft, der direkt mit der Senseo verbunden ist.
  • Client-Teil, welcher auf einem Computer läuft. Bisher ist dies nur auf einem Windows-System im Einsatz, mit einer G510s Tastatur.

Das Display der Tastatur nutze ich für den Status der Senseo und die Tasten für Ein/Aus und Kaffee.
Beide Teile haben noch die Möglichkeit Funksteckdosen zu steuern, wenn ein 433MHz-Sender an dem RPi verbunden ist.
Der Server-Teil läuft als Service und hört die ganze Zeit auf einem bestimmten Port auf TCP-Verbindungen.

Das sind die Möglichen Befehle:

Possible commands:
#cmd    device  off or on
light   <1-4>   <0,1>
#cmd    do
senseo  status  # Returns LED status
senseo  on-off  # Turns either on or off, same command for both
senseo  coffee  # Does a cup of coffee. If the Senseo is turned off, it turns on and waits till it preheats and does coffee.
#other
cmd     xbmc    status  # service xbmc status
cmd     xbmc    start   # service xbmc start
cmd     xbmc    stop    # service xbmc stop
cmd     temp            # Shows CPU temperature
cmd     hdd     sd      # Sends all "df -h" output of precoded devices

Vieles davon nutze ich kaum noch, jedoch sind das für alle gute Beispiele eigene Befehle reinzusetzen.
Bei der Senseo hat es mich schon immer gestört darauf zu warten, dass der Boiler geheizt ist, bevor man die Taste für den Kaffee drücken kann.
Mein Script prüft daher anhand der LED ob die Maschine schon an ist (LED in 1.5 Sekunden abstand an) und schaltet die Senseo ein, falls diese aus ist. Wartet bis sie vorgeheizt hat und schickt dann automatisch den Befehl zum Kaffee machen. Wenn die Senseo schon an ist, wird direkt Kaffee gemacht.

Die Senseo ist auch wunderbar steuerbar mit der netIO-App und würde mit allem funktionieren, was TCP-Pakete abschickt und nicht über http.
Somit Funktioniert der Server-Teil ohne besondere Beachtung mit dem Smartphone und mit dem PC.

Yama

Move to Top