Bagaimana saya bisa secara otomatis melacak jam di kantor ketika saya terhubung ke Wi-Fi kantor saya?


8

Saya mencari solusi yang memulai timer kapan saja saya masuk ke wifi kantor saya dan berhenti ketika saya pergi. Pada dasarnya harus mencatat jam yang saya habiskan di kantor. Saya sadar bahwa ada perangkat lunak iOS untuk ini, tetapi saya suka waktu baterai saya seperti sekarang.

Bonus tambahan akan jika solusinya bisa mencatat jam di iCal secara otomatis.


Menarik, saya tidak tahu aplikasi yang bisa melakukan ini ...
Martin Marconcini

Saya berasumsi pekerjaan Anda memiliki nama wifi yang berbeda / berbeda (essid) dari yang Anda gunakan di rumah?
alesplin

@alesplin Ya, tentu saja.
yusf

Saya mungkin memiliki sedikit retasan yang dapat dimodifikasi untuk ini. Saya akan melihatnya dan melihatnya.
alesplin

@alesplin Bagaimana hasilnya?
yusf

Jawaban:


9

ControlPlane mungkin sesuatu yang bisa Anda gunakan untuk mencapai ini:

ControlPlane menentukan di mana Anda berada atau apa yang Anda lakukan berdasarkan sejumlah sumber bukti yang tersedia dan kemudian secara otomatis mengkonfigurasi ulang Mac Anda berdasarkan preferensi Anda. Sumber bukti dapat mencakup lokasi Anda saat ini, jaringan WiFi yang terlihat, perangkat USB yang terpasang, menjalankan aplikasi, dan lainnya. Anda bahkan dapat menulis sumber bukti Anda sendiri menggunakan skrip shell!

Singkatnya, Anda bisa memberi ControlPlane "sumber bukti", seperti

  • WiFi, baik jaringan dalam jangkauan atau berdasarkan jaringan Anda saat ini terhubung

masukkan deskripsi gambar di sini

Kemudian lakukan serangkaian tindakan saat memasukkan (atau meninggalkan) konteks tertentu, seperti

  • Buka file apa pun, termasuk memulai Aplikasi
  • Jalankan skrip, seperti AppleScript atau skrip shell

masukkan deskripsi gambar di sini

Pemikiran saya di sini adalah bahwa jika ControlPlane tahu apa yang disebut wifi kantor Anda, Anda dapat membuat aturan sehingga ketika Anda terhubung, Anda memulai aplikasi atau skrip shell untuk mulai mencatat jam Anda. Kemudian, ketika Anda memutuskan koneksi, Anda menghentikan aplikasi atau menjalankan skrip shell lain untuk berhenti mencatat jam Anda.

Saya menyadari ini mungkin bukan solusi "peluru perak" yang Anda cari, tetapi mungkin patut dicoba. Anda masih harus menemukan semacam aplikasi / skrip pengatur waktu, tetapi mungkin itulah bagian yang lebih mudah dari masalahnya :)


Terima kasih atas jawabannya! ControlPlane tampaknya sedikit berlebihan pada awalnya (mencari solusi yang lebih ringan) tetapi saya akan mencobanya begitu saya punya waktu untuk belajar AppleScript.
yusf

@ yusf Tidak masalah. Semoga ini bisa membantu. Saya juga akan tertarik dengan solusi akhir Anda ketika Anda sampai di sana! :-)
binarybob

4

Anda dapat menggunakan perintah networksetup -getairportnetwork <device>untuk mendapatkan nama jaringan nirkabel yang saat ini terhubung (di mana ID perangkat bandara Anda - mungkin en1).

Dari sana, Anda dapat menggunakan launchd untuk menjadwalkan skrip untuk dijalankan setiap 5 menit atau lebih yang akan mendapatkan nama jaringan nirkabel yang terhubung dan masuk saat Anda pertama kali terhubung ke Wi-Fi kantor Anda.

Bergantung pada apa yang Anda inginkan, Anda kemudian dapat menggunakan skrip yang sama untuk mencatat entri lain ketika pemberitahuan Anda tidak lagi terhubung ke wi-fi pekerjaan Anda, atau untuk memposting semacam pemberitahuan (mungkin menggunakan growl) pada interval tertentu. Sesuatu di sepanjang baris "Saya sudah bekerja selama 9 jam - waktu untuk pulang".

Atau Anda dapat menggunakan waktu mulai / berakhir di log yang sedang berjalan dan menulis skrip lain untuk menguraikannya dan membuat semacam laporan.

Saya mendapatkan beberapa jenis skrip ini, jika waktu memungkinkan, saya akan menambahkan sesuatu di sini.

man launchd cukup bermanfaat.


@Alespin terima kasih! Terbuka untuk pendekatan minimal yang bagus. :)
yusf

1

Berikut opsi lain untuk orang yang mencoba melakukan ini.

Daripada menjalankan perintah setiap 5 menit, Anda dapat menjalankannya setiap kali folder /Library/Preferences/SystemConfiguration/berubah. Ini umumnya terjadi hanya ketika ada semacam perubahan jaringan.

Anda bisa melakukan ini menggunakan Lingon atau membuat launchd plist Anda sendiri yang akan terlihat seperti ini:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>AbandonProcessGroup</key>
        <true/>
        <key>Label</key>
        <string>localhost.on_networkchange</string>
        <key>ProgramArguments</key>
        <array>
                <string>/path/to/your/script.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>WatchPaths</key>
        <array>
                <string>/Library/Preferences/SystemConfiguration/</string>
        </array>
</dict>

Jelas Anda ingin mengganti /path/to/your/script.shke jalur yang sebenarnya.

Perhatikan bahwa Anda mungkin perlu memasukkan 'sleep 10' di dekat bagian awal skrip untuk memberi Mac kesempatan untuk melakukan semua penyesuaian setelah perubahan jaringan terjadi.

Juga, cara termudah untuk mendapatkan nama (SSID) dari jaringan AirPort yang terhubung dengan Anda adalah:

airport -I | awk -F': ' '/ SSID/{print $NF}'

The airportperintah dapat ditemukan di /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airportdalam 10,8 (dan saya percaya 10,7 dan 10,6)

Saya biasanya menautkannya ke / usr / local / bin:

ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

Anda mungkin perlu menjalankan sudoperintah itu, tergantung pada bagaimana pengaturan / usr / local / bin / Anda.

Terakhir namun tidak kalah pentingnya, Anda perlu mempertimbangkan apa yang harus dilakukan ketika Anda meletakkan laptop Anda untuk tidur. Misalnya, jika Anda berada di kantor mulai jam 9-5 dan tidur laptop Anda jam 5, Anda ingin merekam itu juga, kan? Kalau tidak, bagaimana Anda akan tahu kapan Anda pergi?

Untuk itu saya merekomendasikan SleepWatcher 2.2 yang tersedia dari http://www.bernhard-baehr.de (gratis, termasuk kode sumber). Itu akan memungkinkan Anda menjalankan skrip shell setiap kali Mac Anda bangun atau tidur.

Satu-satunya pertimbangan lain adalah apa yang harus dilakukan jika Anda logout atau mematikan komputer Anda, bukannya tidur itu. Saya tidak punya jawaban yang bagus untuk itu. Secara teoritis LogoutHook akan menjadi jawabannya, tetapi itu tampaknya tidak dapat diandalkan, terutama pada shutdown vs logout.

Saran yang sama sekali tidak terkait

Anda menyebutkan bahwa Anda memiliki perangkat iOS. Mungkin salah satu cara untuk mengatasi masalah ini adalah dengan membuat Pengingat kapan pun Anda Tiba atau Tinggalkan pekerjaan. Ketika pengingat berbunyi, memicu Siri dan mengatakan "Ingat bekerja kiri jam 5 sore" atau "Ingat tiba di kantor jam 9 pagi" dan Siri akan mencatatnya. Tidak elegan atau sepenuhnya otomatis, tetapi jika saya melihat pelacakan jam yang dapat ditagih, saya tidak akan keberatan sedikit redundansi :-)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.