最近、Echo(Alexa)をそこそこ使っています。
特にエアコンのオン・オフは便利でおすすめです。
Amazon Echo Dot(Alexa)を活用してみる
IFTTT + トリガーの問題点
便利は便利なのですが、 現状は は、IFTTT + トリガーで実行しているため、最後に「トリガー」と言わなければいけませんでした。
具体的には、「Alexa エアコンオン トリガー」みたいな感じでした。
すごい不自然です。
Node-RED でスマートホームに対応させる
スマートホームに対応させることで「Alexa エアコンつけて」という感じでとても自然な言い回しになります。
通常スマートホームは、家電側が対応していないと利用できないのですが、Node-RED Alexa Home Skill Bridge を利用することで、スマートホームに登録することができます。Alexaの呼び出しをNode-RED側で受けてコマンド実行(今回はcurlでpost)することでiRkitから赤外線を送信し家電を操作することができます。
概要図
ざっくりこんな感じ。
Node-REDの実行環境はRaspberry Piを利用しています。
参考
- Echosim.ioを使うと日本でもAlexaでSmart Homeを実現できるので、安価なBlack Beanで照明やエアコンを制御してみた - 知的好奇心 for IoT
- 【IoT】4.Node-REDの設定をしてみる - そこらへんのパパの独り言
やり方ざっくり
細かいやり方は、上記リンクに記載されているので割愛します。
Node-RED Alexa Home Skill Bridge
肝は Node-RED Alexa Home Skill Bridge で、ここにデバイスを登録することで、Alexaアプリのスマートホームにデバイスを追加することができ、後述のNode-REDでフローを定義することができます。
なのでユーザ登録およびデバイスの登録が必要です。
デバイス登録例:
デバイス情報の使われ方
Node-RED
Node-REDはハードウェアデバイス/APIおよびオンラインサービスを接続するためのツールです。
GUIでフローを作成することでイベントドリブンなアプリケーションを作成することができます。すごい便利そう!!
フロー例:
今回は家電のON/OFFを制御するのみ。
この末端のON/OFFのノードにコマンドを登録します。具体的には、iRKitのAPIを叩くcurlコマンド。
iRKitのcurl は以下参照。
IRKit - Open Source WiFi Connected Infrared Remote Controller
$ curl -i "http://x.x.x.x/messages" -H "X-Requested-With: curl" -d '{"freq":xx,"data":...}'
のような感じで実行できます。
試していないのですが、Node-RED 側でHTTPのRequestも飛ばせるようなので、おそらくそれでも動くと思います。
See Also
Alexa活用術
Siriの場合
同様にHomebridgeを使うことで対応可能です。