FTF Notifier (Perl)
Schon seit langem benutze ich ein kleines Perl-Script, welches ich immer wieder anpasse, um mich auf allen möglichen Geräten über FTF-Chancen zu informieren.
Angeregt durch einen Blog-Beitrag der Cacherats habe ich dann vor einiger Zeit diese Scripts auf meiner Homepage veröffentlicht und versprochen, das ganze noch ein wenig aufzuhübschen und zu vereinheitlichen.
Das habe ich nun getan und stelle Euch das Ergebnis hiermit für erste Tests zur Verfügung. Es ist noch absolut ungetestet, aber wenn ich es nicht hier veröffentliche, wird das auch immer bleiben.. ![]()
Wie auch bei meinem anderen Projekt, gcv2gpx gilt auch hier: Ich bin kein Perl-Monk! Dies ist immernoch eines der ersten Perl Scripts, welches ich geschrieben habe! Solltet Ihr in Perl besser bewandert sein, als ich und fasst Ihr Euch an den Kopf ob meiner Programmierkünste, dann könnt Ihr mich gerne in den Kommentaren auf Verbesserungsmöglichkeiten aufmerksam machen, ODER IHR MACHT’S HALT SELBST!
![]()
Features
ftfnotifier.pl läuft grundsätzlich auf allen Systemen, auf denen Perl installiert ist. Also Linux, MacOS X und Windows. Auf letzterem muss Perl jedoch erst installiert werden. z.B. Strawberry Perl.
Das Script überprüft Nachrichten eines bestimmten IMAP E-Mail Accounts nach FTF-Benachrichtigungen und versendet dann Nachrichten an verschiedene Endgeräte:
iPhone PUSH via Prowl
Hierzu wird die kostenpflichtige App “Prowl” benötigt. Hiermit ist es möglich, kostenlose PUSH-Benachrichtigungen an sein iPhone zu senden.- SMS via fullsms.de
Hierzu wird ein Konto bei dem (nicht mit mir verwandten oder verschwägerten
) Dienstleister “fullsms.de” benötigt. Hiermit können relativ günstig SMS versendet werden. Es gibt sicher auch noch andere, vielleicht auch bessere Anbieter – wenn Ihr einen kennt, nennt ihn bitte in den Kommentaren.. - Dreambox (Enigma2)
Hierzu ist außer einer Dreambox mit Enigma2 nichts nötig. Nachrichten werden als PopUp auf dem Fernsehbildschirm dargestellt. - DBox 2 (neutrino)
Hierzu ist eine DBox2 mit dem alternativen Betriebssystem “neutrino” nötig. Nachrichten werden als PopUp auf dem Fernsehbildschirm dargestellt.
Voraussetzungen
- Perl (Windows: Strawberry Perl)
Module:- Net::IMAP::Simple
- Email::MIME
- LWP::UserAgent
- HTTP::Request
- Config::Fast
- Getopt::Long
- CGI::Simple
- geocaching.com premium Mitgliedschaft
- PROWL App (€2,39) – optional
- fullsms.de Konto – optional
- Dreambox – optional
- DBox 2 (neutrino) – optional
Installation
Sinnvoll eingesetzt wird ftfnotifier.pl auf einem Rechner, der 24 Stunden läuft, per Cronjob.
Je nach Softwareversion kann es auch möglich sein, das Script direkt auf einer Dreambox oder DBox2 laufen zu lassen. Das hängt aber stark vom verwendeten Image ab. Nötig sind in jedem Fall Perl und Cron.
Auf die Installation werde ich hier vorerst nur am Rande eingehen, da die jenigen, die dieses Script jetzt schon benutzen, sicherlich auch wissen, was damit zu tun ist.. ![]()
Grundsätzlich muss die Datei ftfnotifier.pl heruntergeladen und an eine Stelle im Path kopiert werden. unter Linux z.B. nach /usr/local/bin/
Genauere Installationsangaben, z.B. auch für Windows-Systeme, werden mit der Zeit folgen..
Konfiguration
Am besten speichert man vor der ersten Benutzung des Scripts alle nötigen Parameter in ein config-file. Dies erhöht (zusammen mit korrekten Dateirechten) die Sicherheit der nötigen Passwörter, welche im Klartext gespeichert werden. Ein Beispiel für eine komplett-Konfiguration sähe so aus:
ftfnotifier.pl -i mail.example.com -u hinz -p secret -s --prowlkey 00112233445566778899aabbccddeeff --smsuser kunz --smspass secret --dreamhost 192.168.1.23 --dboxhost 192.168.1.42 --save
Dies speichert alle nötigen Informationen für alle möglichen Benachrichtigungsoptionen. Möchte man eine bestimmt Methode nicht verwenden, lässt man einfach die entsprechenden Optionen weg.. Der Parameter “–save” speichert alle Angaben in eine Konfigurationsdatei. Auf geeigneten Systemen (Linux & Mac) kann man diese Konfigurationsdatei noch nur für den eigenen Benutzer lesbar machen, um die Sicherheit zu erhöhen:
chmod 600 ~/.ftfnotifier.conf
Eine Beispiel Konfigurationsdatei:
# autogenerated config file for ftfnotifier.pl
verbose 1
prowl_key 00112233445566778899aabbccddeeff
dream_host 192.168.1.23
dbox_host 192.168.1.42
imap_user hinz
imap_server mail.example.com
imap_ssl true
sms_user kunz
sms_pass secret
imap_pass secret
Benutzung
Nun kann das Script erneut aufgerufen und eine Benachrichtigungs-Option mit angeben werden:
ftfnotifier.pl -r
Dies überprüft den in der Konfiguration angegebenen IMAP-Server auf neue FTF-Notifications und sendet diese an den ebenfalls in der Konfiguration angegebenen Prowl Benutzer (API-Key). Alternativ können die Konfigurations-Optionen für den IMAP-Server und den Prowl-Account auch per Kommandozeile übergeben werden (siehe oben) – davon ist aber aus Sicherheitsgründen abzuraten.
Eine komplette Übersicht über alle möglichen Parameter erhält man durch die Option “–help”:
ftfnotifier.pl --help
FTFNotifier v0.1 sends FTF notifications to several devices
(C) 2011 by P. Giebel (stimpy23)
Usage: ./ftfnotifier.pl [options]
Options:
-i | --imapserver=? - Address of your imap server (eg: mail.example.com)
-u | --imapuser=? - Your imap user
-p | --imappass=? - Your imap users password
-s | --imapssl=? - Use ssl to connect to your imap server
-f | --imapfolder=? - imap folder to check (leave empty for inbox)
-q | --quiet - Be quiet (no output)
-v | --verbose - Be verbose (repeat for more output)
-h | --help - This help-text
--save - Save options to configfile
-r | --prowl - Send notification via prowl (more options below)
-m | --sms - Send notification via sms (more options below)
-d | --dreambox - Send notification to dreambox (more options below)
-b | --dbox - Send notification to dbox2 (more options below)
Prowl specific options:
--prowlkey=? - Your prowl api key
--prowlprio=? - Prowl priority level
SMS specific options:
--smsuser=? - Your fullsms.de username
--smspass=? - Your fullsms.de password
--smstype=? - Type of sms to send (1-4 - see fullsms.de)
Dreambox specific options:
--dreamhost=? - Hostname or ip of your dreambox
--dreamtimeout=? - Timeout of the message on your dreambox
DBox2 specific options:
--dboxhost=? - Hostname or ip of your DBox 2
You'll need to provide at least your imap server credentials.
If you saved your options a a config file using the option '--save',
these options will be loaded first and get overwritten by the commandline
arguments, you may have provided.
Please be aware that this is really early beta!
Don't blame me, if it blows up your dog!
Automatisierung
Die einzig sinnvolle Nutzung dieses Scripts ist eine regelmäßige. Da das Script jeweils nur 1x pro Aufruf auf neue Nachrichten prüft und danach wieder beendet, muss es regelmäßig gestartet werden. Unter Linux und Mac OS X ist das kein Problem. Hierzu sind die “cronjobs” da. Um sie zu editieren, bzw. einen neuen hinzuzufügen, schreibt man einfach in der Shell:
crontab -e
..und fügt dann den Eintrag für den ftfnotifier hinzu. Zum Beispiel:
# send ftf-notifications via prowl, dreambox and sms every 5 minutes:
*/5 * * * * /usr/bin/perl /usr/local/bin/ftfnotifier.pl -r -d -m
April 16th, 2013
Hey, kann es sein, dass das Script nichtmehr richtig funktioniert? Bei Prowl wird nur FTF angezeigt
April 16th, 2013
…und auf der Dream nur “FTF-Chance:”
April 16th, 2013
Ja, das ist sehr gut moeglich.. ..Das Script is schon was aelter und ich benutze es schon lange nicht mehr..
Ich guck grad mal – duerfte eigentlich nur eine Kleinigkeit sein..