[Update] Scanner an der Fritzbox: Direkt auf ein Netzlaufwerk scannen
By zefanja
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:
- neues Freetz Image erstellen mit den SANE-, Druckertreiber- und Callmonitorpaketen
- kleines Shellscript erstellen, welches ein Dokument scannt und an einer bestimmten Stelle speichert
- 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:
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