IFTTTをcurlで操作


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作成

  1. 右上の、New Appletをクリック

  2. 「if +this then that」がでてくるので、+thisをクリック

  3. 「Choose a service」とでて、検索バーがでてくるので、「webhook」と入力

  4. webhookがでてくるので、クリック

  5. すごく、間延びした画面が登場。一番左、「Receive a web request」をクリック

  6. 登録するイベント名称を入力

    イベント名称は、curlでアクセスするURLが使う文字列になるので、空白や特殊文字は避けたほうが無難です。

  7. ここで、+thisのパートが終了。+thatをクリックして、後半戦へ

  8. 「smart life」と入力し、「smart life」サービスを選択

    もしくは、「meross」でも可

  9. 使いたいサービスを選択。(ここの例では、Turn offを選択して、継続)

  10. どのデバイスを制御するのか聞かれるので、プルダウンから選択。(ここの例は、スマホで"empty"と名付けたdeviceを指定)

Merossでも、大体同じ展開。(ここでは、スマホで"USB Fan"と名付けたdeviceを指定)

 11. 最後に、確認画面をながめて、Finishをクリック

 12. My Appletに登録されているか、確認して、終了

webhookの使い方を確認する

  1. 上部にあるサーチボタンをクリック
  2. serviceのタブをクリック (デフォルトは、Appletなので、その右)
  3. すると、webhookが表示される。webhookをクリック

  1. 右上に注目。「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

無事に、ファンが止まれば成功。(実際にとまりました)