Schlagwort-Archive: freetz

[Update] Scanner an der Fritzbox: Direkt auf ein Netzlaufwerk scannen

Vor ein paar Tagen hatte ich schon geschrieben, wie man mit Hilfe von Freetz einen Scanner an der Fritzbox als Netzwerkscanner nutzen kann. Der Nachteil dieser Lösung ist, dass man immer zum Scanner laufen muss, um ein neues Dokument einzulegen – besser wäre es, wenn man einfach eine Taste am Scanner drückt und das Dokument automatisch auf einem Netzlaufwerk gespeichert wird. Nach einigem Suchen und durchschauen der Paketliste für Freetz habe ich nun eine Lösung am laufen, welche vielleicht nicht die optimale ist, aber durchaus gut funktioniert =)

Hier mal die Kurzfassung:

  1. neues Freetz Image erstellen mit den SANE-, Druckertreiber- und Callmonitorpaketen
  2. kleines Shellscript erstellen, welches ein Dokument scannt und an einer bestimmten Stelle speichert
  3. Callmonitor einrichten und bei einem bestimmten Anrufszenario das Shellscript ausführen

Und nun das Ganze etwas ausführlicher:

Freetz Image erstellen

Wichtig ist wieder, dass man die Entwicklerversion verwendet, weil nur in dieser das SANE Paket enthalten ist. Folgende Pakete sollten ausgewählt werden:

  • SANE (inkl. scanimage)
  • Callmonitor
  • evntl. noch nano (wenn man nicht vi als Texteditor benutzen möchte)

Danach das Image mit make bauen und auf der Fritzbox einspielen.

Shellscript erstellen

Mit dem Befehl scanimage kann man den Scanner anweisen ein Dokument zu drucken. Der Befehl bietet einige Parameter, die es sich lohnt mal anzusehen. Um z.B. ein Dokument in Gray und einer Auflösung von 100dpi zu scannen gibt man gibt man folgenden Befehl ein:

scanimage --mode Gray --resolution 100 > doc.pnm

In meinem Setup habe ich neben dem Scanner noch einen USB Stick an der Fritzbox angeschlossen, auf welchem die Dokumente gespeichert werden sollen. Im Webinterface von AVM sollte man kontrollieren, ob der USB Speicher auch eingebunden wurde:

Speicher NAS
Nachdem man sich via telnet fritz.box mit der Fritzbox verbunden hat, findet man den USB Stick unter /var/media/ftp/NAME_DES_USB_STICKS. Nun brauchen wir nur noch ein kleines Script, welches automatisch ein Dokument scannt und auf dem USB Stick mit einem eindeutigen Namen ablegt. Ich verwende dazu dieses:

#!/bin/sh
datum=`date +%Y-%m-%d_%H-%M-%S`
scanimage --mode Gray --resolution 100 > /var/media/ftp/NAME_DES_USB_STICKS/scan-$datum.pnm

Jeder Scan bekommt also noch Datum und Uhrzeit mit in den Dateinamen. Dieses kleine Shellscript kann man z.B. unter /var/flash/scanDoc speichern. Mit

sh /var/flash/scanDoc

kann man noch testen, ob das Script auch so funktioniert, wie man es möchte.

Callmonitor konfigurieren

Mit dem Callmonitor kann man auf eingehende und ausgehende Anrufe reagieren (z.B. ein Email verschicken, wenn man einen Anruf verpasst hat). Das wollen wir für unseren Zweck „Missbrauchen“ und bei einem bestimmten Anruf an eine bestimmte Nummer den Scanvorgang auslösen. Dazu öffnet man das Freetz-Webinterface (http://fritz.box:81) und wählt Callmonitor→Listeners im Menu rechts aus. Damit man in das Textfeld auch was schreiben kann, muss zuerst die Sicherheitsstufe der Freetzinstallation geändert werden. Dazu verbindet man sich wieder vie TELNET mit der Box und gibt folgendes ein:

echo 1 > /tmp/flash/mod/security

Nun kann man die Listeners bearbeiten. Wie man diese genau konfigurieren kann, steht im Wiki von Freetz. In meinem Fall reagiere ich auf das Ereignis, wenn ich von meiner 1und1 VOIP Nummer auf meine Telekom-Festnetznummer anrufe. Der Eintrag sieht dann folgendermaßen aus:

in:cancel  012345678$  ^987654321$  sh /var/flash/scanDoc

Wenn ich nun „mich selbst“ anrufe, kommt natürlich ein Besetztzeichen und der Anruf wird abgebrochen, was dazu führt, dass das Shellscript ausgeführt wird und der Scan auf dem USB Stick gespeichert wird. Auf die gescannten Dokumente kann man nun via FTP oder Windows-Freigabe der Fritzbox zugreifen. Die Dateien liegen alle im *.pnm Format vor, welches man später noch in PDF oder ähnliches umwandeln kann.

Fazit

Auch wenn diese Lösung ein wenig Bastelarbeit erfordert, ist es doch eine gute Möglichkeit, um ohne eingeschalteten PC mal schnell einen Brief oder ein anderes Dokument zu scannen. Ich würde mich freuen, wenn jemand noch einen Tipp hat, wie man den Listener noch einfacher gestalten könnte, sodass es z.B. ausreicht nur die 4444 zu wählen, um ein Dokument zu scannen. Update: Folgender Listener führt zum Erfolg:

out:request  ^  ^4444$  sh /var/flash/scanDoc

Scanner an der Fritzbox im Netzwerk nutzen

Mein Multifunktionsdrucker (Photosmart c4340) steht nun schon einige Zeit neben der Fritzbox (7270), da auf meinem Schreibtisch kein Platz dafür ist. Drucken über das Netzwerk ist kein Problem, da HP Drucker oft sehr gut unter Ubuntu unterstützt werden. Nun hat der Drucker aber auch einen Scanner. Jedesmal, wenn man etwas einscannen möchte, dann muss man erst einmal seinen Laptop zum Drucker tragen und dann mit dem USB Port verbinden – insgesamt sehr umständlich.

Nun existiert für die Fritzbox ein Projekt, welches sich Freetz nennt. Hier die Selbstbeschreibung des Projekts:

Freetz ist eine Firmware-Erweiterung (Modifikation) für die AVM Fritz!Box und baulich ähnliche Geräte: Die Original-Firmware des Herstellers wird um zusätzliche Funktionen erweitert und mit einer individuellen Zusammenstellung von Programmen ergänzt.

Freetz bietet einem sozusagen die Möglichkeit, seine Fritzbox zu modifizieren und somit um weitere Features zu erweitern. Eine Liste aller Erweiterungen findet man hier. In dieser Liste gibt es auch ein Paket namens „SANE„, welches die Fritzbox um einen Scann-Server erweitert, sodass im Netzwerk auf diesen Scanner zurückgegriffen werden kann.

Installation

Da SANE noch als unstable gekennzeichnet ist, findet man es nur in der aktuellen Entwicklerversion von Freetz, d.h. zuerst muss diese ausgecheckt werden:

svn co http://svn.freetz.org/trunk freetz-trunk

Man beachte den Hinweis: Die Entwicklerversion ist ausschließlich für Profis gedacht, die sich u.U. selbst zu helfen wissen! Sie ist ständigen Änderungen unterworfen und funktioniert möglicherweise nicht oder nur eingeschränkt. und Die Installation einer modifizierten Firmware führt zum Verlust der Gewährleistung des Herstellers!

Bevor man jetzt weiter macht, sollten die Allgemeinen Hinweise und Voraussetzungen zur Installation gelesen werden (benötigte Abhängigkeiten, …)!!!

Mit

make menuconfig

werden nun die benötigten Pakete ausgewählt (Ich kopiere hier der Einfachheit halber die Schritte aus dem Freetz Wiki):

  • Sicherstellen, daß im Hauptmenü Show advanced options und unter Package selection Unstable ausgewählt sind
  • Im Hauptmenü zu Package selectionUnstableSANE wechseln und SANE auswählen
  • Empfehlung: sane-find-scanner und scanimage auswählen. (Diese sind nicht notwendig für den Betrieb, aber hilfreich, falls das Scannen im nächsten Schritt nicht funktioniert. Wenn einmal alles klappt, kann man die beiden Punkte wieder abwählen um Speicherplatz zu sparen (~150kB) und ein neues Image erstellen)
  • Backend auswählen:
    • Geräte von Hewlett-Packard (HP): Eine Ebene höher wechseln, HPLIP auswählen (HPLIP ist momentan nur im Trunk verfügbar) und dann Printer Class und Printer Type entsprechend auswählen (Hilfefunktion steht zur Verfügung)
    • Für alle anderen Geräte (und sehr alte HPs): Über die Liste unterstützter Geräte den Namen des Backends feststellen und auswählen.
  • Unter Package selectionStandard packages Inetd auswählen (wird in kommenden Versionen automatisch ausgewählt)
  • Image erstellen, flashen, neu starten

Hat man diese Schritte hinter sich gebracht, kann man nun bequem von jedem Rechner im Netzwerk aus scannen.Dazu startet man Xsane mit folgendem Parameter:

xsane net:fritz.box

Alternativ kann man auch die Datei /etc/sane.d/net.conf um den Eintrag fritz.box erweitern, dann kann Xsane auch normal aus dem Anwendungsmenu gestartet werden.

Fazit

SANE auf der Fritzbox bietet die Möglichkeit, dass man nun seinen Scanner auch im Netzwerk nutzen kann. Allerdings muss man immer noch zum Scanner laufen und das entsprechende Dokument einlegen. Optimal wäre eine Lösung, wo man nur das Dokument in den Scanner legen bräuchte und der Scanner das Dokument automatisch auf einem Netzlaufwerk speichert (z.B. auf eine an der Fritzbox angeschlossene Festplatte). Leider gibt es scanbuttond noch nicht als Paket für Freetz.