Je recherche une solution qui démarre une minuterie chaque fois que je me connecte à mon bureau wifi et l'arrête quand je suis parti. Il devrait essentiellement consigner les heures que j'ai passées au bureau. Je suis conscient qu'il existe un logiciel iOS pour cela, mais j'aime l'autonomie de ma batterie telle qu'elle est.
Un bonus supplémentaire serait si la solution pouvait enregistrer automatiquement les heures dans iCal.
Réponses:
ControlPlane peut être quelque chose que vous pouvez utiliser pour accomplir cela:
En un mot, vous pouvez donner à ControlPlane une "source de preuves", telle que
Effectuez ensuite un ensemble d'actions lorsque vous entrez (ou quittez) un contexte particulier, tel que
Ma pensée ici est que si ControlPlane sait comment s'appelle le wifi de votre bureau, vous pouvez créer des règles pour que lorsque vous vous connectez, vous démarrez une application ou un script shell pour commencer à enregistrer vos heures. Ensuite, lorsque vous vous déconnectez, vous arrêtez l'application ou exécutez un autre script shell pour arrêter l'enregistrement de vos heures.
Je me rends compte que ce n'est peut-être pas la solution miracle que vous recherchiez, mais cela pourrait valoir la peine d'être essayé. Vous devrez toujours trouver une sorte d'application / script de minuterie, mais c'est probablement la partie la plus facile du problème :)
la source
Vous pouvez utiliser la commande
networksetup -getairportnetwork <device>
pour obtenir le nom de votre réseau sans fil actuellement connecté (où est l'ID de l'appareil de votre aéroport - probablement en1).À partir de là, vous pouvez utiliser launchd pour planifier l'exécution d'un script toutes les 5 minutes environ qui obtiendra le nom du réseau sans fil auquel vous êtes connecté et vous connectera lorsque vous vous connecterez pour la première fois à votre réseau Wi-Fi professionnel.
Selon ce que vous voulez, vous pouvez ensuite utiliser le même script pour enregistrer une autre entrée lorsqu'il remarque que vous n'êtes plus connecté à votre travail wi-fi, ou pour publier une sorte de notification (peut-être en utilisant un grognement) à des intervalles spécifiques. Quelque chose du genre "Je suis au travail depuis 9 heures - il est temps de rentrer à la maison".
Ou vous pouvez utiliser les heures de début / fin dans un journal en cours d'exécution et écrire un autre script pour l'analyser et créer une sorte de rapport.
J'ai des morceaux de ces types de scripts qui traînent, si le temps au travail le permet, j'ajouterai quelque chose ici.
man launchd
est assez utile.la source
Voici une autre option pour les personnes qui essaient de le faire.
Plutôt que d'exécuter une commande toutes les 5 minutes, vous pouvez l'exécuter chaque fois que le dossier
/Library/Preferences/SystemConfiguration/
change. Cela se produit généralement uniquement en cas de changement de réseau.Vous pouvez le faire en utilisant Lingon ou créer votre propre liste de lancement qui ressemblerait à ceci:
De toute évidence, vous souhaitez remplacer
/path/to/your/script.sh
le chemin réel.Notez que vous devrez peut-être inclure un «sommeil 10» près du début du script pour donner au Mac une chance de faire tous ses ajustements une fois qu'un changement de réseau s'est produit.
De plus, la façon la plus simple d'obtenir le nom (SSID) du réseau AirPort auquel vous êtes connecté est:
La
airport
commande peut être trouvée/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
dans 10.8 (et je crois 10.7 et 10.6)Je le relie généralement à / usr / local / bin:
vous devrez peut-être exécuter
sudo
cette commande, selon la configuration de votre / usr / local / bin /.Enfin, vous devez vous demander quoi faire lorsque vous mettez votre ordinateur portable en veille. Par exemple, si vous êtes au bureau de 9 h à 17 h et que vous dormez à 5 h, vous voulez enregistrer cela aussi, non? Sinon, comment saurez-vous quand vous êtes parti?
Pour cela, je recommande SleepWatcher 2.2 qui est disponible sur http://www.bernhard-baehr.de (gratuit, code source inclus). Cela vous permettra d'exécuter un script shell chaque fois que votre Mac se réveille ou se met en veille.
La seule autre considération est de savoir quoi faire si vous vous déconnectez ou éteignez votre ordinateur, au lieu de le mettre en veille. Je n'ai pas de bonne réponse pour celle-là. Théoriquement, un LogoutHook serait la réponse, mais ceux-ci semblent peu fiables, en particulier à l'arrêt vs à la déconnexion.
Une suggestion complètement indépendante
Vous avez mentionné que vous disposiez d'un appareil iOS. Peut-être qu'une façon de résoudre ce problème serait de créer un rappel pour chaque fois que vous arrivez ou quittez le travail. Lorsque le rappel se déclenche, déclenchez Siri et dites «Rappelez-vous de quitter le travail à 17 h» ou «Rappelez-vous arrivé au travail à 9 h» et Siri en prendra note. Pas élégant ni complètement automatique, mais si je cherchais à suivre les heures facturables, cela ne me dérangerait pas un peu de redondance :-)
la source