Hue やスマートプラグを amazon.com から買って、スマートホームデバイスを試してみた。Nature Remo も買った。便利に使うには複数デバイスをまたがった操作が欲しくなるが、IFTTT は基本的にアクションを一つしか選択できません。
マルチアクションを行うにはどうしたらいいのか色々調べてみたのでまとめてみた。
Google Assistant を複数設定する
上記のようなトリガーで、アクションごとにアプレットを複数用意するだけ。
特徴
- 起動文言と返事は同一にしておく必要がある
- マルチアクションを使いまわすことができない
IFTTT Platform でアプレットを作成する
https://platform.ifttt.com/maker/ でアプレットを作れる。
1. New Applet を押す
2. トリガーに Google Assistant を設定
日本語しか使わないので、Language フィールドは日本語で固定。
3. アクションを設定
4. 適当な名前をつけて保存
5. 作ったアプレットを使う
下図のリンクから、作ったアプレットを利用できる。
特徴
- フィルターに Javascript を書けるので、洒落たことができるかも1しれない
- アクションごとにアプレットを作っておく必要がある
- 上記のアプレット作成手順では、「3. アクションを設定」で Hue の
Turn on lights
を設定しているが、全消灯させたい場合に Hue のTurn off lights
を設定した別アプレットを作成する必要がある
- 上記のアプレット作成手順では、「3. アクションを設定」で Hue の
- 同一アクションが指定できない
Webhooks を使う
1. Webhooks サービスを検索
2. Webhooks のドキュメント開く
3. Webhooks の URL を確認
{event}
にイベント名を入れたのが URL になります。
4. Webhooks をアクションにしたアプレットを作成
トリガーはご自由に。
3. Webhooks の URL を確認の URL を設定する。
赤線で示しているイベント名は適当に決めて埋める2。
5. Webhooks をトリガーとしたアプレットを作成
4. Webhooks をアクションにしたアプレットを作成で決めたイベント名をトリガーにし、実行したいアクション分アプレットを作成する。
特徴
- アクションがどういう順番で実行されるか不明3
- トリガーとアクションを切り離せるので便利
- 別のトリガーを追加したりできる
- アクションのみ編集できる
- アクション複数、場合によってはトリガーも複数のアプレットになるので、アプレット一覧がアプレットが散らばってしまう
IFTTT Platform と Webhooks を併せて使う
前述した二つの応用。
- アクション側
- IFTTT Platform でアプレットを作成する の 2. トリガーに Google Assistant を設定 で、Google Assistant ではなく Webhooks を指定する。
- トリガー側
- Webhooks を使うと同じ
特徴
- 一応アクションの実行順は保証されそう
- とはいえ同一アクションが指定できないし、ほとんど遅延はないと思われるのであまり意味ないかも
- IFTTT Platform で同一アクションが指定できない点が問題にならないのであれば、一番使い勝手が良いと思う
外部サービスを使う
外部サービスを経由することで、マルチアクションに対応することもできる。
IFTTT が持たない機能を持つサービスも多いので、拡張性はかなり高い。
問題点としては、経由するサービスが増えることにより可用性が低くなることが考えられる。
以下は試してみたサービスの感想。
Stringify
- 遅延は意外と気にならなかった
- Stringify 自体が IFTTT 連携に対応しているので、設定しやすい
- スマートホーム向けの
Things
[^4] も用意されており、 - なんなら Google Assistant にも対応している
- Timer を使うことでマクロ操作をエミュレートできる
- Web 版は見るだけで編集不可、日本の AppStore では未配信なので Android 必須[^5]
Integromat
- IFTTT との連携は URL 直指定の HTTP リクエストで行う
- Free 版は月間 1000 Operations の制限があるが、十分足りそう
- スマートホーム向けの module はあまりない
- アプリだけでなく Web 版で設定できる
- Web UI もリッチで設定しやすい
- Stringfy 同様、Tools の Delay を使うことでマクロ操作をエミュレートできる
- 変数を扱ったり、if、switch 分岐やループ処理などを入れることができるので、高度なフローを構築可能
Microsoft flow
- IFTTT との連携は URL 直指定の HTTP リクエストで行う
- "待ち時間" というアクションがあって Delay を入れることができるが、5秒以上30日以内でないとだめ
- 毎ステップで5秒 Delay が入るのはマクロ操作としては時間かかりすぎて微妙
- 変数を扱ったり、if、switch 分岐やループ処理などを入れることができるので、高度なフローを構築可能
以上
その他の方法があればぜひ教えて下さい。
それでは、スマートホーム環境を楽しんで下さい。