スマートスピーカーで Mac を操作するピタゴラスイッチ

コンピュータ、仕事終わり

って言うと電気消したり扇風機とめたり音楽止めたりするようにしてたんだけど、Mac は Sleep させられなくて暗闇でぼんやり光ってたり悲しい気持ちになってた。

で、なんとか出来ないかなって色々試してた。
Alexa に 「hey siri, Mac をスリープして」って言わせても実現できたんだけど、iPhoneiPad の siri が反応しちゃったりで微妙だった。

で、いろいろ考えたんだけど、ifttt を使って自分のマシンになにかイベントを起こさせれば行けるなぁとか考えてた。*1
で、ifttt 経由で Dropbox の File を更新すれば良いことに気がついた。
なので、こんな感じのトリガー用意して*2 f:id:Yoshiori:20200806192700p:plain

fswatch をインストール

$  brew install fswatch    

Automatorシェルスクリプトのアプリ作って

/usr/local/bin/fswatch /Users/yoshiori/Dropbox/remote_command/sleep | xargs -n1 -I{} pmset sleepnow

Mac 起動時にそのアプリを起動するようにしたら完成。

ちょっとスリープまで時間かかるけど完成!
イベントトリガーにファイル更新使ってるだけなので任意のコマンドが何でも実行できて便利!!(俺は会社の退勤も組み込んだ)


退勤

*1:最初はローカルでサーバ立ててインターネットに公開してそこ叩くと sleep するとかも考えたんだけど、流石に蛮族すぎるw

*2:TriggeredAt 入れておくとデバッグに便利