in Digital

Es genull Nau Uhr – Zeitansage unter OSX

Ich sitze ja seit einiger Zeit täglich im Home-Office. Das klappt überraschend gut. Es gibt keinerlei Ablenkung und man kann mit höchster Konzentration das Tagwerk verrichten. Einzig die Zeit vergeht manchmal ganz schön schnell. Ein paar mal was getippt und schon ist es wieder 15:00.

Und ich darf auf keinen Fall vergessen, die Tochter rechtzeitig vom Kindergarten abzuholen. Es gibt entwicklungspsychologisch wahrscheinlich wenig Schlimmeres, als ein vergessenes Kind im Kindergarten.

Damit ich ab und zu erinnert werde, wie spät es ist, lasse ich meinen Mac zu mir sprechen. Im Prinzip lässt sich das unter OSX wie hier beschrieben ganz einfach über die Systemeinstellungen „Datum & Uhrzeit“ erreichen.

Das Problem ist dann aber, dass der Mac den ganzen Tag spricht. Da mein Rechner auch noch nach meiner Arbeitszeit läuft und die Lautstärke von sehr leise (meine Mutter ruft an) bis megalaut (Kinder hören Deine Freunde) eingestellt ist, darf da nicht jede halbe Stunden eine unkontrollierte Zeitansage ablaufen.

Damit die Ansage nur während meiner Büroöffnungszeiten (9:00 – 16:00) ertönt, braucht es ein kleines Shell-Skript und zwei Cronjob-Einträge (meine Cronjob-Kentnisse sind beschränkt. wer mir sagt, wie ich das in eine Zeile packen kann, darf das gerne machen). So geht’s:

  1. Terminal öffnen (Spotlight mit Apfel+Leertaste -> „Terminal“ eingeben, Enter drücken)
    Bildschirmfoto_2015-04-29_um_10_13_53
  2. Normalerweise befindet man sich dann im Home-Verzeichnis. Zur Sicherheit aber folgendes eingeben:
    cd ~

    Bildschirmfoto_2015-04-29_um_10_18_19
    (Die Tilde bekommt man mit ALT+N)

  3. Ein neues Verzeichnis anlegen mit dem Befehl
    mkdir scripts

    Bildschirmfoto_2015-04-29_um_10_18_35

  4. In das Verzeichnis wechseln mit:
    cd scripts

    Bildschirmfoto_2015-04-29_um_10_19_08

  5. Mit folgendem Befehl öffnet sich ein kleiner Texteditor:
    nano time.sh

    Bildschirmfoto_2015-04-29_um_10_19_37

  6. In die erste Zeile das hier eingeben:
    say Es ist jetzt `date +%l:%M` Uhr

    Bildschirmfoto_2015-04-29_um_10_20_06

  7. „CTRL+X“ drücken und die Nachfrage, ob man speichern will mit „Yes“ bestätigen
    Bildschirmfoto_2015-04-29_um_10_25_23
  8. Auf der Kommandozeile nun eingeben:
    bash time.sh

    Bildschirmfoto_2015-04-29_um_10_51_40
    Wenn bis hierhin alles richtig gemacht wurde, spricht die Systemstimme die aktuelle Uhrzeit.

  9. Nun noch das Skript ausführbar machen:
    chmod +x time.sh

    Bildschirmfoto_2015-04-29_um_10_34_23

  10. Damit die Ausgabe regelmässig kommt, müssen jetzt noch die Cronjobs angelegt werden.
    crontab -e
  11. Es öffnet sich ein weiterer Editor, der sich „vi“ nennt und etwas umständlich zu bedienen ist. „i“ drücken um in den Einfügemodus zu gelangen.
  12. Folgendes eingeben:
    00 9-16  /Users/(username)/scripts/time.sh
    30 9-16  /Users/(username)/scripts/time.sh
    */30 9-15 * * 1-5 /Users/(username)/scripts/time.sh
    

    Bildschirmfoto_2015-04-29_um_10_30_24
    Wobei (username) mit eurem Loginnamen auf dem Mac zu ersetzen ist.

  13. „ESC“ drücken um den Einfügemodus zu verlassen.
  14. Speichern und schließen mit:
    :wq!

    Bildschirmfoto_2015-04-29_um_10_30_41

Wenn alles seine Richtigkeit hat, wird ab jetzt jede halbe Stunde die Uhrzeit durchgesagt (aber nur von 9-16 Uhr).

Schreib einen Kommentar

Kommentar

    • Hi jd
      Danke dir für den Hinweis. Das Wochenende hatte ich noch gar nicht bedacht. Stimmt natürlich. Wenn ich die Stunden von 9-16 einschränke, wird aber auch noch 16:30 angesagt. Mir reicht bis 15:30.

      • Hej Heiko,

        du hast natürlich recht, das um 16:30 noch was kommt ist doof. Um das zu umgehen würde ich vielleicht das Script um die Zeitprüfung erweitern und das Script einfach alle 30 Minuten via Cron aufrufen.

        Aber, ich vermute das ist die für die schwierigere Option und kann als „wenn ich mal zeit habe“ Projekt abgelegt werden – Stichwort Bash Scripting.

        Ein Tip noch, benenne dein Script „Sinnvoll“ das bedeutet etwas wie „zeitansage_bei_aufruf.sh“ ist da sprechender als nur time.sh. Da du diesen Namen ja nicht immer tippen musst kann es ja egal sein, zusätzlich kannst du dich in einem Jahr auch noch daran erinner was es macht nur beim namen ansehen.

        /jd

  • Anderer Inhalt mit diesem Tag