IFTTTをcurlで操作
smart plugをスクリプトから操作したい
最近、Smart Plug (いわゆる遠隔操作ができるコンセント) が安くなっています。ただ、スマホからOn/Offするだけではもったいない。
自家サーバ (というなのRaspberry Pi君) が、一定温度以上になったら、勝手に外付けファンをOnにできないものかと、思っていた。
そこで、IFTTTにある、Webhookと、Smart Lifeを組み合わせて、自動化に挑戦してみた。
- Webhook: 作成したAppletに対して、curlインターフェースを提供するサービス
- Smart Life: Smart Plugの一派 (スマホで、Smart Lifeアプリで動作するもの)
- Meross: Smart Plugの一派 (スマホで、Merossアプリで動作するもの)
IFTTTでのMy Applet作成
-
「Choose a service」とでて、検索バーがでてくるので、「webhook」と入力
-
登録するイベント名称を入力
イベント名称は、curlでアクセスするURLが使う文字列になるので、空白や特殊文字は避けたほうが無難です。 -
どのデバイスを制御するのか聞かれるので、プルダウンから選択。(ここの例は、スマホで"empty"と名付けたdeviceを指定)
Merossでも、大体同じ展開。(ここでは、スマホで"USB Fan"と名付けたdeviceを指定)
11. 最後に、確認画面をながめて、Finishをクリック
12. My Appletに登録されているか、確認して、終了
webhookの使い方を確認する
- 上部にあるサーチボタンをクリック
- serviceのタブをクリック (デフォルトは、Appletなので、その右)
- すると、webhookが表示される。webhookをクリック
- 右上に注目。「Documentation」と「Settings」が現れる
- Documentation アクセス方法が記載された説明書
- Settings アクセス方法で使用するトークンを管理
Settings
- URLに記載されたURLが、webhookで利用するURL。トークンの部分があるので、本当はもっと長いURLデス
- Edit connectionを押すと、トークンが変化する。つまり、表示されるURLのトークン部分が、変化していくのが確認できる
Documentation
**{event}**と書かれているところに、イベント名で指定したものを入れて使う。ここの例ですと、TurnOffFanとなる。
Curlしてみる
それでは、実際に、curlしてみる。上記、Documentationに書かれているまんま実行
$ curl -X POST https://maker.ifttt.com/trigger/{TurnOffFan}/with/key/abcdefghijklmnopqrstuv
Congratulations! You've fired the TurnOffFan event
無事に、ファンが止まれば成功。(実際にとまりました)