einfache Kontrolle der Online - Zeit

Zurück zur Übersicht

             

Der Denkanstoß für dieses Progrämmchen entstand nach einem spitzen Aufschrei meiner lieben Gattin, nach dem Studium der gerade reingekommenen Telefonrechnung. Nun ja, diese war etwas höher als üblich und der Grund waren einfach die Stunden im Internet. Dabei nutze ich einen Vertrag mit 20 h Mindestumsatz im Monat, die ich auch brauche. Aber alles, was darüber ist, kostet extra. Und das wollen wir gern minimieren.

Als dann noch zufällig im Python CookBook ein kleiner Timer auftauchte, der auf Basis von Tkinter die Zeit zählte, war mein Entschluß gefasst. Das Resultat ist dieses Programm, das auf diesem CookBook-Modul basiert und nur einige notwendige Anpassungen erfahren hat. Es ist bewusst einfach gehalten. Man startet es mit der Hand und drückt nach dem Zustandekommen der Onlineverbindung, die man auf gewohnte Weise herstellt, den Knopf "Start". Nun zählen die Sekunden los.

Wird die Verbindung wieder getrennt, drückt man auf "Stop" und kann hiernach die Zeit in Ruhe ablesen. Drückt man nun auf "Save", wird der Zeitverbrauch in eine Logdatei geschrieben. Mit Quit wird das Programm beendet.

Das Programm lief zuerst nur unter Windows. Die Ursache habe ich noch nicht gefunden, aber unter Linux startete einfach der Zähler nicht. Inzwischen hat der Autor der Stoppuhr unter Python CookBook den Code geändert und die Funktion timer.clock() durch timer.timer() ersetzt. Nun geht es tatsächlich auf beiden Betriebssystemen. Aber mir ist der Grund noch nicht ganz klar. Hat mal jemand einen Tip?

Nun ist es mit der Log-Datei ja nicht getan, denn wir wollen ja wissen, ob unsere Verbrauchsnorm überschritten wurde. Dazu dient nun ein weiteres kleines Auswerteprogramm. Es fragt nach dem Start, ob man über den aktuellen Monat oder den Vormonat berichtet haben möchte. Dann checkt es die betreffende Log-Datei durch und gibt die Verbauchswerte aus. Achtung! Wenn dann mal ein ganzes Jahr herum ist, müssen die alten Dateien gelöscht werden, sonst hängt der Timer seine neuen Daten an die alten Dateien!

Nachtrag:

Mit dieser Zeitüberwachung wird es nun keine großen Überraschungen mehr geben, wenn die Telefonrechnung kommt. Dafür bleibt aber immer noch das "Wundern" übrig, wenn man am Ende einer einzelnen Session den Wert abliest. Was, schon wieder eine Stunde rum? Daher habe ich noch eine kleine Ergänzung eingefügt, nämlich einen Signalton nach Ablauf einer bestimmten Zeit. Er sollte hier alle 10 Minuten ertönen. Wer eine andere Zeit möchte,  der kann es leicht abändern (Zeile 33). Das Verfahren beruht darauf, dass ein Beep (print '\a') auf die Konsole gegeben wird. Das war für dieses Problem die einfachste Lösung. Jedoch kam unter Linux der Ton zuerst nicht, sondern wurde erst beim Beendigen des Programms nachgereicht. Diese kleine unerwartete Besonderheit ist auf der Seite "Was nicht geht ... " näher beschrieben. Übrigens, die etwas aufwendigere Behandlung des Beeps in den folgenden Zeilen dient dazu, die ständige Wiederholung zu unterdrücken, wenn eine Minute lang immer noch die Bedingung der 10 Minuten erfüllt ist. Es soll also zum Eintritt der Bedingung nur einmal piepen. Erst wenn die Bedingung vorübergehend nicht mehr erfüllt ist, wird die Überwachung wieder "scharfgeschaltet".


Einschub für Fortgeschrittene:

Was kann nun schöner gemacht werden?

Es wäre eleganter, wenn das Programm automatisch geladen und gestartet wird, wenn die Onlineverbindung steht. Vielleicht macht einer der "Leser" mal einen interessanten Vorschlag :-)

Man könnte in die Logdateien noch eine Jahreszahl einbringen, damit es mit älteren Daten keine Kollision gibt. Zugegeben, die Logdateien lassen sich an Einfachheit kaum noch unterbieten. Aber das hat eben auch Vorteile ... :-)