Geocaching Wetterau Blog
3Mai/113

FTF Notifier (Perl)

Dreambox NotificationSchon 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.. Wink

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! Razz Wink

 

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:

  • FTF-PUSH-Benachrichtigung via ProwliPhone 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 Wink) 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

 

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.. Wink

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
									

Das Wichtigste zum Schluss

Download

veröffentlicht unter: Software Kommentar schreiben
Kommentare (3) Trackbacks (0)
  1. Hey, kann es sein, dass das Script nichtmehr richtig funktioniert? Bei Prowl wird nur FTF angezeigt Frown

    • …und auf der Dream nur “FTF-Chance:” Frown

    • Ja, das ist sehr gut moeglich.. ..Das Script is schon was aelter und ich benutze es schon lange nicht mehr.. Wink Ich guck grad mal – duerfte eigentlich nur eine Kleinigkeit sein..


Leave a comment

Click to Insert Smiley

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette

Noch keine Trackbacks.