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.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Steffen am :

Steffen

Also nach deiner Anleitung schaltet sich meine Funksteckdose nach 1 Minute ein und bleibt eingeschalten… Wo liegt der Fehler?
Ich war gleich begeistert von deiner Idee und hab es direkt nachgebaut – als absolut blutiger Anfänger… laugh

rowi am :

Auf Twitter lesen: rowi
rowi

Das ist so pauschal schwer zu sagen, nach einer Minute einschalten ist korrekt wenn ein Druckauftrag ansteht.

Was gibt es “lpstat -o” (ohne Anführungszeichen) denn bei dir aus?

Wenn ein Druckjob anliegt wird die Datei /tmp/druckjobs angelegt bzw. deren Dateidatum aktualisiert. Erst wenn die aktuelle Uhrzeit später ist als das Dateidatum von /tmp/druckjob älter als 30 Minuten ist wird sie wieder gelöscht und die Steckdose abgeschaltet.
Bei mir funktioniert das auch, auch wenn ich es praktisch selten nutze.

rowi schrieb auch: Fertige Warenkörbe für die Flüchtlingshilfe Flensburg

Steffen am :

Steffen

Nachdem ich stundenlang erfolglos herum probiert habe, bin ich auf TeaCups gekommen. Hat relativ schnell funktioniert und klappt wunderbar.
Danke dir dennoch, für den/die tollen Artikel rund um den RasPi laugh

Steffen am :

Steffen

Hallo, ich glaube ich muss das hier nochmal aufgreifen…
Zwar habe ich jetzt einen funktionierenden Drucker am rasPi, unmittelbar nach Druckauftrag schaltet die Funksteckdose auch den Drucker ein und der Druckauftrag wird ausgeführt, aber und das ist ein großes ABER
Schaltet die Steckdosen rigoros im Viertelstundentakt bei meiner Lösung ab. Auch wenn der Drucker mitten im Druck ist. Um detaillierter zu werden : rasPi ist um Uhrzeit 14:00 uhr gestartet worden, so kommt das Ausschaltsignal zu jeder Viertelstunde (14:15, 14:,…) Respektive andere Urzeiten wenn Reboot erfolgte.
AnAnsich ja kein großes Ding, druckt man aber um ekurz vor ganz oder jeweils viertel Stunde später, geht der Drucker immer kurz drauf aus auch wenn man erneut was drucken möchte.
Nun möchte ich gerne deine Lösung umsetzen, eben jene definierte Ausschaltzeit nach dem letzten Druckauftrag, allerdings in meiner bisherigen funktionierenden Lösung.
Nun habe ich schon probiert und getan, leider ohne Erfolg – mir fehlen einfach fundierte Kenntnisse…… sad

rowi am :

Auf Twitter lesen: rowi
rowi

Das ist merkwürdig, ich arbeite ja mit einer leeren Datei deren Erstell- (bzw. Aktualisier-) Zeit ausgewertet wird.
Ich vermute du verwendest Raspian, ich habe hier Arch Linux.

Probier mal eine Datei in /tmp anzulegen und kontrollier die Uhrzeit:

touch /tmp/test

ls -l /tmp/test

und dann ein paar Minuten später beides noch einmal, die Uhrzeit sollte sich dann auf den zweiten Zeitpunkt aktualisiert haben. Ich vermute Raspian mountet das /tmp/ so, dass das nicht funktioniert.
Lässt sich dann aber beheben smile

rowi schrieb auch: Neue PowerBank: noch mehr Strom für Gadgets

Steffen am :

Steffen

Ja das funktioniert mit dem Zeitstempel. Und ja, ich nutze Raspbian smile

Bisher habe ich es so gelöst via crontab – e:

  1. Drucker aussschalten, wenn kein Druckjob ansteht

/15 0,1,2,3,4,5,6 sudo lpstat -p | grep -EB1 “idle” > /dev/null && sudo /home/pi/raspberry-remote/send 00111 1 0 > /dev/null

Kommentar schreiben

Textile-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Twitter, Identica, Pavatar, Gravatar, Wavatars, Monster ID Autoren-Bilder werden unterstützt.
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
Formular-Optionen