製品・サービス

スマートホームにおけるIFTTTの代替案? Alexaに自作スマートホームスキルを追加して柔軟な連携を可能にしよう!

スマートフォンと連動可能なスマートホーム家電やIoT機器製品は様々なメーカーから販売されています。しかし、メーカー製の公式アプリでは他社製品との連携ができないなどの不満の声が多いです。スマートホーム機器をメーカー関係なく手軽で自在に連携させ、活用したい人達の間で必須ツールとなっているのがIFTTTです。しかし、様々な仕様変更によりIFTTTの代替えを検討している人達が現れ始めました。今回はスマートホームにおけるIFTTTの代替えについて解説します。

IFTTTとは

IFTTT(IF This Then That)とは、Web上のさまざまなアプリやサービスを、プログラミングする必要なしに連携して作業を自動化できる便利なサービスであり、別々のサービスを繋ぐパイプ役のような存在です。リンデン・チベッツによって開発され、2010年にスタートしました。

IFTTTは、当初「レシピ」と呼ばれる個人作成もしくは公に共有しているプロフィールを使ってFacebook、Evernote、Weather、DropboxなどのWebサービス同士で連携することができるWebサービスでした。

「if this then that」というシンプルなコンセプトに基づく「レシピ」を作成し共有することができます。レシピは以下の組み合わせのことです。

・this(きっかけ):Facebookで写真をタグ付けした時、Foursquareでチェックした時など
・that(行動):テキストメッセージの送信、Facebookでステータスメッセージを作成など

Twitter、Foursquare、Flickr、Boxといった61ものサービスに対応した「きっかけ」と「行動」を提供し、2012年6月、ベルキンの「Belkin WeMo」を使ったレシピで、現実の世界とやり取りできるようになりました。またYahoo! Pipesといった他のサービスと組み合わせることで数あるソースからのコンテンツを、容易に閲覧する手の込んだシステムを構築することができます。

最近では、GoogleAssistantやamazon alexaなどのスマートスピーカーとの連携が進んでおり、Wi-FiにつながるIoTデバイスと非常に相性が良いです。そのため、手軽にスマートホームを実現することができます。

IFTTTの仕組み

IFTTTに「もし〇〇したら、△△する」というアプレット(レシピ)を事前に登録しておくと、サービス同士の連携を自動で行ってくれます。そのため、よく使うサービス同士を連携させて、自分だけの自動化を簡単に作成できます。

「〇〇」は起動条件にあたり、トリガーといいます。後の「△△」は実行内容にあたり、アクションといいます。
トリガーやアクションに設定するサービスのことをチャンネルと呼びます。チャンネル毎に設定できる内容は異なり、トリガーとアクションのどちらで使えるかは、チャンネルによって異なります。

たとえば、スマートスピーカー「Google Home」の中では「Google Assistant」というサービスが動いています。また、スマートリモコンである「Nature Remo」も裏でサービスが動いています。IFTTTが2つのサービス連携を手助けし、自動化作成への流れは以下の通りです。

①Google Homeに「テレビをつけて」言うことでトリガーが発動
②IFTTTがGoogle HomeとNature Remoを連携
③Nature Remoから赤外線を発信させてテレビをつけるという自動化が作成可能

また、Twitterで「#電気つけて」と投稿すると、自宅のスマートLEDを自動点灯させることができるなど、組み合わせは自由です。

IFTTTの仕様変更へ反発が起きている

IFTTTは便利で月額無料でも使えるため、すぐに始めることができます。そのため、仕事やプライベートでIFTTTを愛用してきた人も多いと予測できます。

しかし、最近IFTTTの仕様変更への反発から、代替サービスに移ることを真剣に検討する人も出始めました。

2019年、IFTTTはGmailとの連携が終了し、Gmailのトリガーや、下書き作成のアクションが使えなくなりました。IFTTT側は米GoogleがAPIのエコシステムに変更を加えたからだと説明しています。
当然、IFTTTの愛用者からは「自動化のほとんどの部分を、IFTTTとGmailアプレットに頼っているのに、今から別のソリューションを探すとなると、その間は仕事が滞るし、ストレスもたまるじゃないか」という不満の声が挙がりました。

さらに2020年の秋ごろには有料プランを発表し、無課金では自動化定義が3つまでしか作成出来なくなってしまい、利用者の不評を買いました。

業務ワークフローの自動化目的でオススメなIFTTT代替サービス

IFTTTと競合するサービスには、Gmailとの連携に引き続き対応しているものもあり、基本的な機能は無料で利用できる所も多いです。
そのため、業務ワークフローを自動化する目的でIFTTTの代替サービスを探している人にオススメな候補を紹介します。

Zapier

1つ目が「Zapier」です。

・ひとまとまりの連携のことをザップと呼ぶ
・無料プランではザップは最大5つまでであり、いくつものサービスを連携するマルチステップザップ利用不可
・有料プランは月20ドルでザップの数や連携できるサービスやアプリが増える
・Zapierで連携できるアプリやサービスは2000以上
・所定の条件を満たした時にのみ、ザップを作動させるフィルタ設定

Microsoft Power Automate

2つ目が「Microsoft Power Automate」です。

・連携可能なサービスにはMicrosoftのものが多いが、Microsoftのソフトウエアやサービスを業務に使っている法人ユーザー以外でも利用可能
・ひとまとまりの連携のことをフローと呼ぶ
・255のサービスを連携するマルチステップのフローが利用可能
・Office 365、OneDrive、Azureなどの各種サービスやGmail、GitHubなどとも連携可能
・Windows用アプリのほか、Android用とiOS用のモバイルアプリもあり、フローの作成や管理などをスマホでできる
・Microsoft 365やDynamics 365の一部のプランに含まれているほか、1ユーザーあたり月15ドルで利用できる単体のプランもある

スマートホームにおけるIFTTT代替え方法を提案

IFTTTと同様の自動化サービスは他にもありますが、無料版は制限が厳しいものが多く、スマートホーム機器への対応も進んでいないのが現状です。

IFTTTの公式スキルはカスタムスキルですので、スマートホームスキルを使えば自然な言葉で操作できるようになるかもしれません。

そこで、「Alexa」に自作の「スマートホームスキル」を追加することで、IFTTTのような柔軟な連携を可能にするIFTTT代替え方法を提案します。

Alexaのスキルには種類がある

ほとんどのスマートホーム機器が対応しているAlexaのスキルには種類があります。

デバイス操作用のスマートホームスキル

1つ目は「デバイス操作用のスマートホームスキル」です。

デバイス操作用のスマートホームスキルの場合、Alexaのインターフェースに沿って実装すると、Alexaがいい感じにワードを解釈してくれます。

たとえば、echoシリーズではAlexaに対応した機器であれば「エアコンの電源をつけて」とか「テレビのチャンネルをNHKにかえて」などと指示できます。
対応した機器は「エアコンつけて」「リビングのエアコンの電源オフ」などと言い換えても動作します。

汎用のカスタムスキル

2つ目は「汎用のカスタムスキル」です。

汎用のカスタムスキルはワードの解釈がスキルに任され、「トリガー」のような特定のワードが必要になるので、ちょっと使い勝手が悪いです。

たとえば、IFTTTはAlexaのスキルが登録されているので、指示する場合「トリガー エアコンの電源つけて」とIFTTTを呼び出すためのワード「トリガー」を必ずつけて言わなければなりません。
また、設定した単語にしか反応せず、「トリガー エアコンの電源つけて」と設定しても「エアコンオン」では動作しません。両方動作させるには両方の設定が必要となります。

AlexaをIFTTT代替えにする3ステップ

AlexaをIFTTT代替えにする3ステップは以下の通りです。

スマートホームスキルの作成

1つ目が「スマートホームスキルの作成」です。

スマートホームスキルはAlexa Developer Consoleから登録できます。
必ず自分が使用する「echoを登録しているAmazonアカウント」を使用してください。同じアカウントでないと、今回開発したスキルを使用できません。

初回ログイン時には開発者アカウントの情報登録が挟まります。
ログイン完了後、スキルの一覧画面が表示されるので、「スキルの作成」ボタンをクリックし、スキル名、言語、種類を選択します。今回は「ifttt_webhook」、日本語、スマートホームを選択します。

アカウントリンク

2つ目が「アカウントリンク」です。

スマートホームスキルはIoTデバイスの操作用ですので、アカウント設定が必要です。何故なら、アカウント設定がないと他の人にデバイスを操作される可能性があるからです。
OAuth2と連携し、以下の流れでアカウントリンクを設定していきます。

①アカウントリンクを選択しリダイレクト先のURLをメモ
②Amazonアカウントによる認証を行えるLogin with Amazonを利用し、OAuth2の認可サーバを用意
③アカウントはどれでも大丈夫なので、ログイン後「新しいアプリケーションを登録する」を選択し、名前、詳細、プライバシー規約URLを入力
④作成後、WEB設定を開き編集、さきほどメモしたリダイレクト先のURLを入力、保存
⑤その後、クライアントID、Client Secretをメモし、Alexa Developer Consoleに戻り、先ほど開いたアカウントリンクに入力、保存
⑥Amazon Alexaを開き、順番に「スキル」「有効なスキル」「ifttt_webhook」を選択後、「有効にする」をクリック
⑦Amazonによる認証を求められるので、認証すると「正常にリンクされました」と表示

デバイスの登録

3つ目が「デバイスの登録」です。

①Alexa Developer ConsoleのスキルIDをメモ
②AWS Lambda関数の作成・連携
③Alexa Smart Homeトリガーを追加し、Alexa Smart Homeを選択、スキルIDを入力追加し、ARNをメモして保存
④Alexa Developer Consoleに戻り、ARNをデフォルトのエンドポイントに入力し保存
⑤スマートホームスキルとLambda関数が連携したので、Lambdaに戻りコーティングして、保存
⑥左のドロップダウンリストに作成したテストが追加されるので、選択した状態でテストボタンをクリックするとコードの下に実行結果が表示される
⑦複数のデバイス追加ができるようにDiscovery(見つけ出し)実装、登録

まとめ

スマートホームにおけるIFTTTの代替えについて解説してきました。以下、まとめになります。

・IFTTTとは、Web上のさまざまなアプリやサービスを、プログラミングする必要なしに連携して作業を自動化できる便利なサービスなので、手軽にスマートホームを実現する
・最近IFTTTの仕様変更への反発から、代替サービスに移ることを真剣に検討する人が出始めている
・Alexaに自作のスマートホームスキルを追加することで、IFTTTのような柔軟な連携を可能にするIFTTT代替案がある

Alexaに自作のスマートホームスキルを追加するIFTTT代替案は手順が多く、難しそうな印象があります。しかし、この方法は月間100万回を超える大量処理をしなければ無課金で利用できます。安価にスマートホーム機器を活用したい人はぜひ挑戦してみてはいかがでしょうか。

関連記事

TOP