Skip to content

Idee für den Raspberry Pi (I) - umgesetzt: Netzwerkdruck mit Steckdosensteuerung

Raspberry Pi mit 443MHz Sender

Lange ist es her, dass ich hier meine erste Idee für die Nutzung des Raspberry Pi beschrieben hatte.
Mittlerweile hab ich die auch umgesetzt und da ich sie letztes Wochenende erst beim Linux Einsteiger Abend und beim Barcamp Westküste mit ein paar Folien vorgestellt hatte muss ich sie ja auch noch hier beschreiben.

Zur Erinnerung: Mein Ziel war es, den Laserdrucker am Raspberry Pi zu betreiben um ihn im Netzwerk zur Verfügung zu haben und der Drucker sollte nicht ständig eingeschaltet sein und Strom verbrauchen, sondern der Raspberry Pi sollte ihn bei Bedarf einschalten und anschliessend wieder abschalten.

Umgesetzt habe ich es indem der Drucker per USB am Pi hängt und dieser per CUPS angesprochen wird. Das ist trivial, CUPS stellt den Drucker im Netzwerk per ipp zur Verfügung und man kann ihn benutzen.
Interessanter ist die Stromgeschichte. Das geschieht über eine Funksteckdose die der Pi über einen 433MHz Sender den es für knapp 2€ im Internetz gibt ansteuert. Ein kleines Script (quick’n‘dirty) guckt minütlich nach ob etwas zu drucken ist, schaltet den Drucker ggf. ein und eine halbe Stunde nach dem letzten Druckjob wieder aus.
Das Script check_printjob.sh sieht folgendermassen aus:

#! /bin/bash

steckdose=0
printjobs=`lpstat -o | wc -l`

if [ “$printjobs” = 0 ] then if test /tmp/druckjobs then if test `find /tmp/druckjobs -cmin +30` then steckdose=0 rm /tmp/druckjobs else steckdose=1 fi fi else if [ “$printjobs” > 0 ] then steckdose=1 touch /tmp/druckjobs fi
fi

#steckdose schalten mit $steckdose
/usr/local/bin/raspberry-remote/send 11100 4 $steckdose >> /dev/null

(die komische Formatierung durch das CSS bekomme ich auch noch in den Griff :O)

Das Script wird wie gesagt minütlich per cron aufgerufen und tut seinen Dienst. So wie das Script aufgebaut ist, wird der Steckdoese auch jede Minute ein Signal geschickt, das halte ich für verschmerzbar und ich war ehrlich gesagt zu faul es anders umzusetzen. So gleiche ich ausserdem verschluckte Signale aus, es gibt dabei ja keinen Handshake 8).
Das Tool zum verschicken der Schaltsignale stammt von wiringpi.com/, die Ansteuerung habe ich gemäss diesem Tutorial aufgebaut.

Die erwähnte kleine Präsentation die ich letzte Woche verwendet habe, habe ich hier als HTML exportiert (Softmaker Presentations macht da leider Grafiken draus) und alternativ als PDF.

  • Twitter
  • Facebook
  • Bookmark using any bookmark manager!

Idee für den Raspberry Pi (I) - Umsetzung 1

Meine erste Idee die ich hier im Blog gepostet hatte war ja den Drucker an den Pi anzuschliessen und nur bei Bedarf über die Steckdose einzuschalten.
Wie von demaya in den Kommentaren vorgeschlagen mache ich das über eine Funksteckdose nach dieser Anleitung.

Der Hardwareteil funktioniert auch schon:

Raspberry Pi 433MHz Testaufbau

Für den Sender überlege ich mir noch eine hübsche Verpackung, eine Streichholzschachtel zum Beispiel cool. Die Steckplatine war jetzt nur zum testen.
Nun kommt die softwareseitige Ansteuerung. Ich denke ich werde einfach das Spoolverzeichnis von Cups überwachen und sobald da was drinliegt den Drucker starten und eine Statusdatei anlegen. Ist diese Datei mindestens eine halbe Stunde alt kann der Drucker wieder ausgeschaltet werden.
Das ist ein primitiver Mechanismus, müsste aber universell funktionieren. Ich hoffe nur, dass Cups es mir nicht übel nimmt wenn der Drucker erst nachträglich eingeschaltet wird.

  • Twitter
  • Facebook
  • Bookmark using any bookmark manager!