Alexa(アレクサ)からApple Homekit製品を操作する方法

CHASUKEの記事をシェアする..

どうも、Chasukeです。

我が家の廊下照明はAppleのHomekit対応のスマート電球がハマっており、iPhoneを起動してSiriから操作ができる。

KoogeekスマートソケットでSiriから照明の操作ができた!!
どうも、おウチのIoT化を進めているCHASUKEです。 Google HomeやAmazon E...

だが、iPhoneをイチイチ起動するのが、面倒になってきたので、枕元に「Amazon ダッシュボタン」を置いて、そちらで廊下照明を入切できるようにした。

Amazonダッシュボタンで家中の照明を操作する方法!!
どうも、CHASUKEです。 プライム会員であれば実質無料な『Amazon Dash Button(ダッシ...

寝室にEcho Dotを設置した。

Amazon Echo Dot用の壁掛けホルダーで省スペース化に成功!!
Amazon Echo Dotの2回目の招待がきたChasukeです。 ついでの如く、Echo、Echo Plus...

こうなると、ベッドの中からEcho Dotに廊下照明を消してもらいたくなってくる。ということで、先日手に入れたばっかりの「ラズパイ Zero WH」を使って、Node-RED経由でアレクサにHomekit対応スマート電球を入切できる仕組みを考えてみました。

『Raspberry Pi Zero WH』スターターキットを購入してみた!!
どうも、Chasukeです。 なんだかんだで我が家に3台目のラズベリーパイ(ラズパイ)がやってきました。 ...

超絶ニッチな内容ですが、きっと同じことがしたい人はいるはず..いってみましょう!!

SPONSORED LINKS

アレクサでHomekit製品を動かす仕組み

こんな感じ。

Alexaスマートホームスキル『Node-RED』により、フローを呼び出し、Node-RED上に設置したHomekitノードに、ダミーのスイッチアクセサリを用意します。

このダミーのスイッチアクセサリと、実際に操作したい廊下の照明をオートメーションで繋いで、電気ON/OFFする仕組みでございます♪

仕組みを作ってみた

アレクサからNode-RED連携

ラズパイには最初から「Node-RED」がインストールされていますが、バージョンをアップデートしてから起動させましょう!!

// Node-REDの更新コマンド
$ update-nodejs-and-nodered

まず、アレクサからNode-REDの呼び出しですが、こちらを参考にしてください。

Alexaスマートホームスキル『Node-RED』を使ってみた
どうもCHASUKEです。 Alexaで使えるスマートホームスキル『Node-RED』の利用方法を書いてい...

今回は、廊下というデバイスを作成しました。

Debugノードを繋いで、アレクサが「true」や「false」を飛ばしてくるのを確認しましょう。

Node-REDにHomekitノードを設定

続いて、Homekitノードを追加していきます。

▼アレクサノードと同様に「Homekit」ノードをパレットに追加していきます。

▼「ノードを追加」からhomekitで検索。

2つ出てきますが、内容は同じなのでどちらを選んでも良いと思います。

追加すると、パレットの左側「その他」というところに「homekit」ノードが作成されているので、こちらを以下のように繋げて動きの確認をします。

▼ノードの設定内容です

鉛筆アイコンを選び、アクセサリを追加していきます。

▼アクセサリ名やPINコードを変更できます。

製造元やシリアル番号とかモデルなんて何でも良いです。

▼廊下の照明用のダミースイッチを作成するため、Serviceを「SWITCH」としています。

これで、Homekitノードの設定は完了です。

Appleホームアプリにアクセサリを追加

Homekitノードを設置すると、ホームアプリ側に取り込めるようになります。

▼「コードがないか、スキャンができませんか?」をタップ。

近くのアクセサリが表示されています!!

キター!!!!!

※ 何度か試しているとアイコンが表示されない場合がありました。その場合、一度「ノードの設定」からアクセサリー情報を削除して再度、登録してみるとうまくいきます。

▼PINコードを入力します。

コードを入力して、「(アクセサリ名)が追加されました」というメッセージが出れば成功です♪

▼こんな感じで、アイコンが増えました。

Node-REDからステータス変更を確認

先ほどのNode-REDに戻ります。

以下のようなフローを作って、ホームアプリ側のステータスが変更されるか確認してみました。

Homekitノードに与える入力は、こちらのJSONです。

「”On”: 1」を与えれば、ステータスはオンになります。逆に「”On”: 0」を与えるとステータスはオフとなります。

設置したinjectノードをポチポチして、確認してみてください。僕がやってみた感じだと、再デプロイすると、連携が切れるためか反応しなくなりました。こうなると、一度ホームアプリ側のアクセサリを削除して再取り込みするしかありません。

これ、なかなか面倒だ..

AlexaノードからHomekitノードへ連携

こんな感じで作成しました。

アレクサからの入力で「オン」または「オフ」を判定して、Homekitノードに与えるパラメータを変えてます。

▼スイッチ判定は、「msg.payload」の中身をチェックする。

▼判定結果をもとにパラメータを設定する。

今回の場合であれば、「アレクサ、廊下をオンにして」と言ってみて、ホームアプリ側のステータスがオンになれば成功です。

[追記]

実際に運用していると、スイッチと電球のOn/Offステータスがずれることがあったので以下のフローに改善しました。一旦スイッチの足並みを揃えてから操作を実施してます。

オートメーションで照明デバイスを操作

最後の仕上げです。スイッチがオンになったら、廊下照明がオンになるようにオートメーションを設定します。

オートメーションの「+」ボタンが表示されない場合は、サードパーティ製アプリを利用することで使えるようになります。

ハブ無しでHomeKitオートメーション機能を使う方法!!
どうも。 CHASUKEでございます。 Appleデバイスを使って快適なスマートホームを実現する...

▼トリガーに、作成した「ダミースイッチ」をセットします。

▼アクションに実際に操作した廊下の照明をセットします。

以上、完成です!!!!!

これで寝室に配置したEcho Dotから操作できるようになりました^^

最後に

Apple Homekit対応の製品をAlexaを通して音声操作できるようにしてみました。

海外では発売しているApple HomePodを利用すれば、一瞬で実現できる内容ですが、やりたいことが実現できてよかったです^^

それではまた!!