Làm cách nào tôi có thể tự động theo dõi giờ làm việc khi tôi kết nối với Wi-Fi văn phòng của mình?


8

Tôi đang tìm kiếm một giải pháp bắt đầu hẹn giờ bất cứ khi nào tôi đăng nhập vào wifi văn phòng của mình và dừng nó khi tôi rời đi. Nó chủ yếu nên ghi lại số giờ tôi đã dành tại văn phòng. Tôi biết rằng có phần mềm iOS cho việc này, nhưng tôi thích thời gian sử dụng pin của mình.

Phần thưởng thêm sẽ là nếu giải pháp có thể đăng nhập số giờ trong iCal tự động.


Thật thú vị, tôi không biết một ứng dụng có thể làm được điều này
Martin Marconcini

Tôi đang giả sử công việc của bạn có một tên wifi khác biệt / khác biệt so với việc bạn sử dụng nhà?
alesplin

@alesplin Đúng vậy.
yusf

Tôi có thể có một chút hack có thể được sửa đổi cho điều này. Tôi sẽ xem nó và xem.
alesplin

@alesplin Nó đã đi như thế nào?
yusf

Câu trả lời:


9

ControlPlane có thể là thứ bạn có thể sử dụng để thực hiện điều này:

ControlPlane xác định bạn đang ở đâu hoặc bạn đang làm gì dựa trên một số nguồn bằng chứng có sẵn và sau đó tự động định cấu hình lại máy Mac của bạn dựa trên tùy chọn của bạn. Nguồn bằng chứng có thể bao gồm vị trí hiện tại của bạn, mạng WiFi hiển thị, thiết bị USB được đính kèm, ứng dụng đang chạy và nhiều hơn nữa. Bạn thậm chí có thể viết các nguồn bằng chứng của riêng bạn bằng cách sử dụng các kịch bản shell!

Tóm lại, bạn có thể cung cấp cho ControlPlane một "nguồn bằng chứng", chẳng hạn như

  • WiFi, hoặc các mạng trong phạm vi hoặc dựa trên mạng mà bạn hiện đang kết nối với

nhập mô tả hình ảnh ở đây

Sau đó thực hiện một tập hợp các hành động khi nhập (hoặc rời) một bối cảnh cụ thể, chẳng hạn như

  • Mở bất kỳ tệp nào, kể cả bắt đầu Ứng dụng
  • Chạy một tập lệnh, chẳng hạn như AppleScript hoặc shell script

nhập mô tả hình ảnh ở đây

Suy nghĩ của tôi ở đây là nếu ControlPlane biết wifi văn phòng của bạn được gọi là gì, bạn có thể tạo quy tắc để khi kết nối với nó, bạn khởi động một ứng dụng hoặc tập lệnh shell để bắt đầu đăng nhập hàng giờ. Sau đó, khi bạn ngắt kết nối, bạn dừng ứng dụng hoặc chạy một tập lệnh shell khác để dừng đăng nhập hàng giờ.

Tôi nhận ra đây có thể không phải là giải pháp "viên đạn bạc" mà bạn đang tìm kiếm, nhưng nó có thể đáng để thử. Bạn vẫn sẽ phải tìm một số loại ứng dụng / tập lệnh hẹn giờ, nhưng đó có lẽ là phần dễ dàng hơn của vấn đề :)


Cảm ơn bạn đã trả lời! ControlPlane ban đầu có vẻ hơi quá mức (đang tìm kiếm một giải pháp nhẹ hơn) nhưng tôi sẽ dùng thử khi tôi có thời gian tìm hiểu AppleScript.
yusf

@yusf Không có vấn đề. Hy vọng nó sẽ giúp. Tôi cũng sẽ quan tâm đến giải pháp cuối cùng của bạn khi bạn đến đó! :-)
binarybob

4

Bạn có thể sử dụng lệnh networksetup -getairportnetwork <device>để lấy tên của mạng không dây hiện đang được kết nối (ID thiết bị của sân bay của bạn - có thể là en1).

Từ đó, bạn có thể sử dụng launchd để lên lịch cho một kịch bản chạy cứ sau 5 phút hoặc lâu hơn, nó sẽ lấy tên của mạng không dây mà bạn kết nối và đăng nhập khi bạn kết nối lần đầu với mạng wi-fi công việc của mình.

Tùy thuộc vào những gì bạn muốn, sau đó bạn có thể sử dụng cùng một tập lệnh để ghi nhật ký một mục khác khi thông báo bạn không còn kết nối với wi-fi công việc của bạn hoặc để đăng một số loại thông báo (có thể sử dụng tiếng gầm gừ) vào các khoảng thời gian cụ thể. Một cái gì đó dọc theo dòng chữ "Tôi đã làm việc trong 9 giờ - thời gian để về nhà".

Hoặc bạn có thể sử dụng thời gian bắt đầu / kết thúc trong nhật ký đang chạy và viết một tập lệnh khác để phân tích cú pháp và tạo một số loại báo cáo.

Tôi đã có các mẩu và các loại kịch bản nằm xung quanh, nếu thời gian tại nơi làm việc cho phép, tôi sẽ thêm một cái gì đó vào đây.

man launchd là khá hữu ích.


Cảm ơn bạn @alespin! Mở ra cho một cách tiếp cận tối thiểu tốt đẹp. :)
yusf

1

Đây là một lựa chọn khác cho những người đang cố gắng làm điều này.

Thay vì chạy lệnh cứ sau 5 phút, bạn có thể chạy nó bất cứ khi nào thư mục /Library/Preferences/SystemConfiguration/thay đổi. Điều này thường chỉ xảy ra khi có một số loại thay đổi mạng.

Bạn có thể làm điều này bằng cách sử dụng Lingon hoặc tạo ra sơ đồ khởi động của riêng bạn trông giống như thế này:

<?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>

Rõ ràng là bạn muốn thay thế /path/to/your/script.shcho đường dẫn thực tế.

Lưu ý rằng bạn có thể cần bao gồm 'ngủ 10' gần khi bắt đầu tập lệnh để cho Mac có cơ hội thực hiện tất cả các điều chỉnh của nó sau khi thay đổi mạng xảy ra.

Ngoài ra, cách dễ nhất để có được tên (SSID) của mạng AirPort mà bạn được kết nối là:

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

Các airportlệnh có thể được tìm thấy ở /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airporttrong 10,8 (và tôi tin 10.7 và 10.6)

Tôi thường liên kết nó với / usr / local / bin:

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

bạn có thể cần sudolệnh đó, tùy thuộc vào cách / usr / local / bin / của bạn được thiết lập.

Cuối cùng nhưng không kém phần quan trọng, bạn cần xem xét những việc cần làm khi đặt laptop đi ngủ. Ví dụ, nếu bạn ở trong văn phòng từ 9-5 và ngủ laptop ở mức 5, bạn cũng muốn ghi lại điều đó, phải không? Nếu không làm thế nào bạn sẽ biết khi bạn rời đi?

Vì vậy, tôi khuyên dùng SleepWatcher 2.2 có sẵn từ http://www.bernhard-baehr.de (miễn phí, bao gồm mã nguồn). Điều đó sẽ cho phép bạn chạy một kịch bản shell bất cứ khi nào máy Mac của bạn thức dậy hoặc ngủ.

Sự cân nhắc duy nhất khác là phải làm gì nếu bạn đăng xuất hoặc tắt máy tính của bạn, thay vì ngủ nó. Tôi không có câu trả lời hay cho câu hỏi đó. Về mặt lý thuyết, một LogoutHook sẽ là câu trả lời, nhưng những điều đó dường như không đáng tin cậy, đặc biệt là khi tắt máy và đăng xuất.

Một đề nghị hoàn toàn không liên quan

Bạn đã đề cập rằng bạn có một thiết bị iOS. Có lẽ một cách để giải quyết vấn đề này là tạo một Lời nhắc cho bất cứ khi nào bạn đến hoặc rời công việc. Khi lời nhắc tắt, kích hoạt Siri và nói "Nhớ công việc còn lại lúc 5 giờ chiều" hoặc "Nhớ đến nơi làm việc lúc 9 giờ sáng" và Siri sẽ ghi chú lại. Không thanh lịch cũng không hoàn toàn tự động, nhưng nếu tôi đang theo dõi số giờ có thể thanh toán, tôi sẽ không ngại một chút dư thừa :-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.