Я ищу решение, которое запускает таймер всякий раз, когда я вхожу в мой офис Wi-Fi и останавливает его, когда я ухожу. По сути, это должно записывать часы, которые я провел в офисе. Я знаю, что для этого есть программное обеспечение iOS, но мне нравится время автономной работы.
Дополнительным бонусом было бы, если бы решение могло автоматически регистрировать часы в iCal.
Ответы:
ControlPlane может быть чем-то, что вы можете использовать для достижения этой цели:
В двух словах, вы можете дать ControlPlane «источник доказательств», такой как
Затем выполните набор действий при входе (или выходе) из определенного контекста, например
Я думаю, что если ControlPlane знает, как называется ваш офисный wifi, вы можете создать правила, чтобы при подключении к нему вы запускали приложение или скрипт оболочки, чтобы начать регистрировать ваши часы. Затем, когда вы отключаетесь, вы останавливаете приложение или запускаете другой сценарий оболочки, чтобы перестать регистрировать ваши часы.
Я понимаю, что это может быть не то решение «серебряной пули», которое вы искали, но, возможно, стоит попробовать. Вам все равно придется найти какое-нибудь приложение / скрипт для таймера, но это, вероятно, самая легкая часть проблемы :)
источник
Вы можете использовать команду,
networksetup -getairportnetwork <device>
чтобы получить имя вашей подключенной в данный момент беспроводной сети (где находится идентификатор устройства вашего аэропорта - возможно, en1).Оттуда вы можете использовать launchd, чтобы запланировать запуск скрипта каждые 5 минут или около того, который будет получать имя беспроводной сети, к которой вы подключены, и регистрироваться, когда вы впервые подключитесь к своему рабочему Wi-Fi.
В зависимости от того, что вы хотите, вы можете затем использовать тот же сценарий для регистрации другой записи, когда он обнаруживает, что вы больше не подключены к вашей Wi-Fi работы, или для публикации какого-то рода уведомлений (возможно, с рычанием) через определенные промежутки времени. Что-то вроде «Я был на работе 9 часов - время идти домой».
Или вы можете использовать время начала / окончания в текущем журнале и написать другой скрипт для его анализа и создания своего рода отчета.
У меня есть фрагменты этих типов сценариев, если время на работе позволяет, я добавлю кое-что здесь.
man launchd
довольно полезно.источник
Вот еще один вариант для людей, пытающихся это сделать.
Вместо того, чтобы запускать команду каждые 5 минут, вы можете запускать ее при каждом
/Library/Preferences/SystemConfiguration/
изменении папки . Обычно это происходит только при каких-либо изменениях в сети.Вы можете сделать это с помощью Lingon или создать свой собственный файл launchd, который будет выглядеть примерно так:
Очевидно, вы хотели бы заменить
/path/to/your/script.sh
на фактический путь.Обратите внимание, что вам может понадобиться включить «sleep 10» в начале скрипта, чтобы дать Mac возможность внести все свои изменения после изменения сети.
Кроме того, самый простой способ получить имя (SSID) сети AirPort, к которой вы подключены, это:
airport
Команду можно найти на сайте/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
в 10.8 (и я считаю , 10.7 и 10.6)Я обычно связываю это с / usr / local / bin:
вам может понадобиться
sudo
эта команда, в зависимости от того, как настроен ваш / usr / local / bin /.И последнее, но не менее важное: вам нужно подумать о том, что делать, когда вы кладете свой ноутбук спать. Например, если вы находитесь в офисе с 9-5 и спите на своем ноутбуке в 5, вы тоже хотите это записать, верно? Иначе как ты узнаешь, когда ушел?
Для этого я рекомендую SleepWatcher 2.2, который доступен по адресу http://www.bernhard-baehr.de (бесплатный, с исходным кодом). Это позволит вам запускать скрипт оболочки всякий раз, когда ваш Mac просыпается или спит.
Единственное другое соображение - что делать, если вы выходите из системы или выключаете компьютер, а не спите. У меня нет хорошего ответа на этот вопрос. Теоретически ответом будет LogoutHook , но они кажутся ненадежными, особенно при выключении или выходе из системы.
Совершенно несвязанное предложение
Вы упомянули, что у вас есть устройство iOS. Возможно, один из способов решения этой проблемы - создать напоминание, когда вы приходите или уходите с работы. Когда напоминание сработает, активируйте Siri и скажите «Помните, что ушли с работы в 17:00» или «Помните, что пришли на работу в 9:00», и Сири запомнит это. Не элегантный и не полностью автоматический, но если бы я смотрел на отслеживание оплачиваемых часов, я бы не отказался от небольшой избыточности :-)
источник