Szukam rozwiązania, które uruchamia stoper za każdym razem, gdy loguję się do mojego biurowego Wi-Fi i zatrzymuje go, gdy wychodzę. Powinien zasadniczo rejestrować godziny spędzone w biurze. Wiem, że jest do tego oprogramowanie iOS, ale podoba mi się mój czas pracy na baterii.
Dodatkowym bonusem byłoby, gdyby rozwiązanie mogło automatycznie rejestrować godziny w iCal.
Odpowiedzi:
ControlPlane może być czymś, czego możesz użyć do osiągnięcia tego:
W skrócie, możesz dać ControlPlane „źródło dowodów”, takie jak
Następnie wykonaj zestaw działań podczas wchodzenia (lub wychodzenia) z określonego kontekstu, np
Myślę tutaj, że jeśli ControlPlane wie, jak nazywa się twoje biuro wifi, możesz utworzyć reguły, aby po połączeniu z nim uruchomić aplikację lub skrypt powłoki, aby rozpocząć rejestrowanie godzin. Następnie po rozłączeniu zatrzymujesz aplikację lub uruchamiasz inny skrypt powłoki, aby zatrzymać rejestrowanie godzin.
Zdaję sobie sprawę, że to może nie być rozwiązanie „srebrnej kuli”, którego szukasz, ale warto spróbować. Nadal będziesz musiał znaleźć aplikację / skrypt timera, ale to prawdopodobnie najłatwiejsza część problemu :)
źródło
Możesz użyć polecenia,
networksetup -getairportnetwork <device>
aby uzyskać nazwę aktualnie podłączonej sieci bezprzewodowej (gdzie jest identyfikator urządzenia twojego lotniska - prawdopodobnie en1).Stamtąd możesz użyć programu uruchamiającego, aby zaplanować uruchamianie skryptu co około 5 minut, co pozwoli uzyskać nazwę sieci bezprzewodowej, z którą jesteś podłączony, i zalogować się przy pierwszym połączeniu z siecią Wi-Fi.
W zależności od tego, czego chcesz, możesz użyć tego samego skryptu, aby zalogować kolejny wpis, gdy zauważysz, że nie masz już połączenia z siecią Wi-Fi w pracy, lub wysłać jakieś powiadomienie (być może za pomocą warczenia) w określonych odstępach czasu. Coś w stylu „Jestem w pracy od 9 godzin - czas wracać do domu”.
Lub możesz użyć czasu rozpoczęcia / zakończenia w uruchomionym dzienniku i napisać inny skrypt, aby go przeanalizować i utworzyć jakiś raport.
Leżą na mnie fragmenty tego rodzaju skryptów, jeśli pozwoli na to czas pracy, coś tu dodam.
man launchd
jest całkiem przydatne.źródło
Oto kolejna opcja dla osób próbujących to zrobić.
Zamiast uruchamiać polecenie co 5 minut, możesz je uruchomić przy każdej
/Library/Preferences/SystemConfiguration/
zmianie folderu . Zwykle dzieje się tak tylko wtedy, gdy następuje jakaś zmiana sieci.Możesz to zrobić za pomocą Lingona lub stworzyć własną listę uruchomieniową, która wyglądałaby mniej więcej tak:
Oczywiście chcesz zastąpić
/path/to/your/script.sh
rzeczywistą ścieżkę.Pamiętaj, że może być konieczne dołączenie „uśpienia 10” w pobliżu początku skryptu, aby komputer Mac mógł dokonać wszystkich zmian po zmianie sieci.
Najłatwiejszym sposobem uzyskania nazwy (SSID) sieci AirPort, z którą jesteś podłączony, jest:
airport
Polecenia można znaleźć na stronie/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
w 10,8 (i wierzę, 10.7 i 10.6)Ogólnie łączę to z / usr / local / bin:
może być konieczne wykonanie
sudo
tego polecenia, w zależności od konfiguracji / usr / local / bin /.Na koniec musisz zastanowić się, co zrobić, gdy uśpisz laptopa. Na przykład, jeśli jesteś w biurze od 9 do 5 lat i śpisz na laptopie o 5, to też chcesz to nagrać, prawda? W przeciwnym razie, skąd będziesz wiedzieć, kiedy wyszedłeś?
W tym celu polecam SleepWatcher 2.2, który jest dostępny na stronie http://www.bernhard-baehr.de (bezpłatny, zawiera kod źródłowy). Umożliwi to uruchomienie skryptu powłoki za każdym razem, gdy komputer Mac budzi się lub śpi.
Jedynym innym czynnikiem jest to, co zrobić, jeśli wylogujesz się lub zamkniesz komputer zamiast go uśpić. Nie mam na to dobrej odpowiedzi. Teoretycznie LogoutHook byłby odpowiedzią, ale te wydają się niewiarygodne, szczególnie przy zamykaniu systemu przeciwko wylogowaniu.
Zupełnie niezwiązana sugestia
Wspomniałeś, że masz urządzenie z systemem iOS. Być może jednym ze sposobów rozwiązania tego problemu byłoby utworzenie Przypomnienia za każdym razem, gdy przyjedziesz lub odejdziesz z pracy. Kiedy przypomnienie się wyłączy, uruchom Siri i powiedz „Pamiętaj o pracy o 17” lub „Pamiętaj, że dotarłem do pracy o 9 rano”, a Siri to zanotuje. Nie elegancki ani całkowicie automatyczny, ale gdybym patrzył na śledzenie rozliczanych godzin, nie miałbym nic przeciwko małej nadmiarowości :-)
źródło