自作スマートホームスキルでAlexaの定型アクションから外部ツールを呼び出し

Alexaの「定型アクション」機能では、モーションセンサーの感知や特定のフレーズの認識などのイベントにAlexaの動作を割り当てて実行させられる。スマートホーム家電の操作も割り当てられるので、「スマートホームスキル」を自作すれば、外部ツールやサービスと連携させることも可能となるぞ。
自宅サーバ上に設置したスクリプトを呼び出せば、Alexaへの音声入力でパソコン上のソフトを起動させたり、モーションセンサーの感知をログファイルに記録するなどといった使い方が可能だ。パソコンには様々なソフトが存在するので、実行させられる動作も様々だ。
また、IFTTTやZapier、Zoho Flowなどのサービスの「WebHook」トリガーを呼び出して連携させることも出来る。アイデア次第でAlexaがますます便利になるぞ。




001

XAMPPをインストールしてHTTPサーバを起動したら、メモ帳などのテキストエディタで以下のようなスクリプトを記述し、拡張子「.php」でXAMPPのフォルダにある「htdocs」フォルダ内に保存しよう。
このとき、htdocs内にランダムな長い名前のサブフォルダを作ってその中に入れれば、URLを予測されにくくし、誰かに勝手にアクセスされるのを防止出来るぞ。

<?php
if(preg_match('@\\.compute\\.amazonaws\\.com$@si',gethostbyaddr($_SERVER['REMOTE_ADDR']))){
    exec("C:\\someapp\\someapp.exe");
}

「if(……){」の行は、Amazonのサーバからのアクセスのときのみ中の処理を実行するという条件分岐で、「exec(‘……’);」は、引用符内に記述されたコマンドラインでプログラムを起動するという処理だ。コマンドライン中のファイルパスなどの「\」記号は「\\」のように二重にして記述する必要があるぞ。


002

設置したPHPスクリプトのURLは、「http://(ダイナミックDNSのアドレス):(Apacheのポート番号)/(htdocsフォルダより後のスクリプトファイルのパス)」のようになる。このURLを、スマートホームスキルのLambda関数コードの「buttons」のところのURL部分に記述し、「Deploy」を押して保存しよう。
擬似デバイスを増やしたい場合は、既存の項目行を複製にして、左の識別名とname以下の表示名、URLの部分を書き換えよう。デバイスを増減させたり名前を変更した場合は、Alexaでデバイスの再検出を行う必要があるぞ。


003

モバイルアプリ版のAlexa上でメニューの「定型アクション」から定型アクション管理画面に進み、右上の「+」ボタンで新規作成画面に進んだら、「実行条件」で自宅サーバのスクリプト起動を割り当てたい条件を設定しよう。
Alexaに特定のフレーズを話し掛けたときや、Alexaに登録してある(現実の)センサー機器が特定の状態を検出したときなどの条件が設定可能だ。


004

次に、「アクションを追加」で動作の種類選択画面に進み、「スマートホーム」を選択。


005

Alexaに登録されているデバイスのカテゴリ一覧が表示されたら、「全てのデバイス」か「照明」のカテゴリを選択しよう。該当するデバイスの一覧が表示されるので、自作スマートホームスキルで登録された擬似デバイスを選択し、右上の「次へ」をタッチ。


006

操作内容を選択する画面では、「電源」の「オン」が選択されていることを確認し、右上の「次へ」を押して設定を完了しよう。
定型アクション作成画面に戻ったら、右上の「保存」を押せば定型アクションが作成される。
実際に実行条件に設定した行動をしてみて、パソコン上で設置したPHPスクリプトに記述した動作が実行されるか確かめよう。

関連記事

2020年10月31日06時40分 公開 | カテゴリー: ライフハック | キーワード: | Short URL
このエントリーをはてなブックマークに追加

最新記事