おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

Wi-Fi等から現在のコンテキストを把握してアクションを実行できるControlPlane

iPodで音楽聴きながらカフェでMac広げてドヤリングしてたら、ミュートになってなくて派手に音を垂れ流して急いでミュートにし、帰宅すると音を鳴らすのにミュート解除しないと、とか面倒ですよね。

出先だったら勝手にミュートしてほしい、このアプリを開いてほしいといった操作を自動化するControlPlaneを利用しています。

今自宅なのか、職場なのか、はたまた出先のカフェなのか、環境を把握するのに使える材料として有用なのは無線LANのSSIDですが、それ以外にもコンテキストを判断するエビデンスとして、いろいろなものに対応しています。

  • アクティブなアプリケーション
  • オーディオ出力先 (スピーカー、ヘッドフォン)
  • AC電源接続有無
  • 接続中のBluetooth、FireWire、UBSデバイス、モニタ
  • Bonjour、ネットワーク (検知しているWifi、接続中のLAN、DNS、IPアドレス等)
  • OS XロケーションサービスのCoreLocation
  • ライトセンサー
  • 独自のシェルスクリプトでの定義
  • Sleep、Wakeのタイミング

これらを組み合わせ、アプリを起動、終了させたり、ミュート、ミュート解除したり、いろいろできます。

たとえば、テザリングしているときはDropbox等を落とす、など可能性は無限大です。 Macなんで、cronでシェル走らせてもできるんですが、GUIで設定できて便利なのでオススメです。