Ich suche nach einer Lösung, die einen Timer startet, wenn ich mich bei meinem Büro-WLAN anmelde und ihn stoppt, wenn ich gegangen bin. Es sollte im Wesentlichen die Stunden protokollieren, die ich im Büro verbracht habe. Ich bin mir bewusst, dass es dafür iOS-Software gibt, aber ich mag meine Akkulaufzeit so wie sie ist.
Ein zusätzlicher Bonus wäre, wenn die Lösung die Stunden in iCal automatisch protokollieren könnte.
Antworten:
Mit ControlPlane können Sie möglicherweise Folgendes erreichen:
Kurz gesagt, Sie können ControlPlane eine "Beweisquelle" geben, wie z
Führen Sie dann eine Reihe von Aktionen aus, wenn Sie einen bestimmten Kontext betreten (oder verlassen), z
Ich denke hier, wenn ControlPlane weiß, wie Ihr Office-WLAN heißt, können Sie Regeln erstellen, damit Sie beim Herstellen einer Verbindung eine Anwendung oder ein Shell-Skript starten, um Ihre Stunden zu protokollieren. Wenn Sie dann die Verbindung trennen, stoppen Sie die Anwendung oder führen ein anderes Shell-Skript aus, um die Protokollierung Ihrer Stunden zu beenden.
Mir ist klar, dass dies möglicherweise nicht die "Silberkugel" -Lösung ist, nach der Sie gesucht haben, aber es könnte einen Versuch wert sein. Sie müssen immer noch eine Art Timer-App / Skript finden, aber das ist wahrscheinlich der einfachere Teil des Problems :)
quelle
Mit dem Befehl können
networksetup -getairportnetwork <device>
Sie den Namen Ihres aktuell verbundenen drahtlosen Netzwerks abrufen (wo ist die Geräte-ID Ihres Flughafens - wahrscheinlich en1).Von dort aus können Sie mit launchd ein Skript planen, das etwa alle 5 Minuten ausgeführt wird. Dabei wird der Name des drahtlosen Netzwerks, mit dem Sie verbunden sind, abgerufen und protokolliert, wenn Sie zum ersten Mal eine Verbindung zu Ihrem Arbeits-WLAN herstellen.
Je nachdem, was Sie möchten, können Sie dann dasselbe Skript verwenden, um einen anderen Eintrag zu protokollieren, wenn festgestellt wird, dass Sie nicht mehr mit Ihrem Arbeits-WLAN verbunden sind, oder um in bestimmten Intervallen eine Benachrichtigung (möglicherweise mithilfe von Knurren) zu veröffentlichen. Etwas in der Art von "Ich bin seit 9 Stunden bei der Arbeit - Zeit nach Hause zu gehen".
Oder Sie können die Start- / Endzeiten in einem laufenden Protokoll verwenden und ein anderes Skript schreiben, um es zu analysieren und eine Art Bericht zu erstellen.
Ich habe Teile dieser Art von Skripten herumliegen, wenn es die Zeit bei der Arbeit erlaubt, werde ich hier etwas hinzufügen.
man launchd
ist sehr nützlich.quelle
Hier ist eine weitere Option für Leute, die dies versuchen.
Anstatt einen Befehl alle 5 Minuten auszuführen, können Sie ihn ausführen, wenn sich der Ordner
/Library/Preferences/SystemConfiguration/
ändert. Dies geschieht im Allgemeinen nur, wenn sich das Netzwerk ändert.Sie können dies mit Lingon tun oder Ihre eigene Startliste erstellen, die ungefähr so aussieht:
Natürlich möchten Sie
/path/to/your/script.sh
den tatsächlichen Pfad ersetzen .Beachten Sie, dass Sie möglicherweise am Anfang des Skripts eine "Schlaf-10" einfügen müssen, damit der Mac nach einer Netzwerkänderung alle Anpassungen vornehmen kann.
Der einfachste Weg, um den Namen (SSID) des AirPort-Netzwerks zu ermitteln, mit dem Sie verbunden sind, ist:
Der
airport
Befehl ist/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
in 10.8 zu finden (und ich glaube 10.7 und 10.6)Ich verlinke es im Allgemeinen mit / usr / local / bin:
Möglicherweise benötigen Sie
sudo
diesen Befehl, je nachdem, wie Ihr / usr / local / bin / eingerichtet ist.Zu guter Letzt müssen Sie überlegen, was zu tun ist, wenn Sie Ihren Laptop in den Ruhezustand versetzen. Wenn Sie zum Beispiel von 9 bis 5 Uhr im Büro sind und Ihren Laptop um 5 Uhr schlafen, möchten Sie das auch aufzeichnen, oder? Woher wissen Sie sonst, wann Sie gegangen sind?
Dafür empfehle ich SleepWatcher 2.2, das unter http://www.bernhard-baehr.de erhältlich ist (kostenlos, Quellcode enthalten). Auf diese Weise können Sie ein Shell-Skript ausführen, wenn Ihr Mac aufwacht oder in den Ruhezustand wechselt.
Die einzige andere Überlegung ist, was zu tun ist, wenn Sie sich abmelden oder Ihren Computer herunterfahren, anstatt ihn zu schlafen. Ich habe keine gute Antwort darauf. Theoretisch wäre ein LogoutHook die Antwort, aber diese scheinen unzuverlässig zu sein, insbesondere beim Herunterfahren oder Abmelden.
Ein völlig verwandter Vorschlag
Sie haben erwähnt, dass Sie ein iOS-Gerät haben. Möglicherweise besteht eine Möglichkeit, dieses Problem zu lösen, darin, eine Erinnerung zu erstellen, wenn Sie ankommen oder die Arbeit verlassen. Wenn die Erinnerung losgeht, lösen Sie Siri aus und sagen Sie "Erinnere dich an die linke Arbeit um 17 Uhr" oder "Erinnere dich daran, dass du um 9 Uhr bei der Arbeit angekommen bist" und Siri wird es notieren. Weder elegant noch vollautomatisch, aber wenn ich abrechnungsfähige Stunden verfolgen möchte, hätte ich nichts gegen ein wenig Redundanz :-)
quelle