こんにちは。
前回Alexa Skillを自作する方法という結論に至りました。
それは完全な正攻法ではあるのですが、Amazon Developerアカウントが必要だったり実装もメンテも私のスキルでは及ばない、そもそもそこまでしてやりたくない。
いろいろ調べてみると、Belkin社のWeMoというIoTデバイス(スイッチ、照明)をエミュレートするという方法があるらしいです。
初期HomeAssistantでも採用していた方法で、しかも10年近く実績のある安定した方法なのだとか。
私が Node-RED Alexa Home Skill Bridge を使い始めた当時には既にあったということですね。
もっと早く教えてよ・・・
以下に具体的なステップを踏みながらご紹介します。
■STEP1:Node-REDに野良ノードをインストール
インストールするノードは以下です。
node-red-contrib-wemo-emulator
このノードが仮想的なWeMoデバイスとして振る舞い、Alexaがちゃんと認識してくれるもよう。
ただしON/OFFしか受け付けてくれないので、Node-RED側には工夫が必要です。
Node-RED Alexa Home Skill Bridgeでは仮想デバイスは「照明」1つだけで、照度をパラメータとして処理パターンを分岐していました。
node-red-contrib-wemo-emulatorでは、処理パターンごとに仮想デバイスを定義してあげる必要があります。
Node-REDの窓口は前者は1つ、後者は複数ということなります。
少々Node-REDエディタ上の見栄えが悪くなるかもしれませんが、外部サーバ依存を無くせるメリットに比べれば些細なことです。
■STEP2:ノードの設定
ノード名、Alexa上の表示名、ユニークID、ポート番号を指定します。
node-red-contrib-wemo-emulatorは処理パターンごとに複数ノード作成しますので、それぞれ被らないように設定します。
さらに各ノードでAlexaからON/OFFのそれぞれの指示を受信したときのMessageのTopicとPayloardを任意に設定します。
ノードの設定がすべて完了したらデプロイします。
■STEP3:Alexaにデバイスとして追加
スマホのAlexaアプリからデバイス追加操作を行い、Wi-Fiデバイスとして上記ノードが表現する仮想スイッチ(プラグ)を検出します。
たったこれだけ。
えーー・・・クッソ簡単。
私がNode-RED導入時点で存在していたのに、他の方法(Node-RED Alexa Home Skill Bridge)を先に見つけてしまったせいで、外部サーバ利用のためいつ使えなくなるか分からないという懸念を数年間抱え続け、さらにMatterという新しい規格に気を取られたばかりにその懸念を解決できずにいた問題は、ものの10分ほどで解決してしまいました。
しかもNode-RED Alexa Home Skill BridgeのNode.jsのバージョン18では動作しないという縛りからも解放されます。
Node-REDのバージョン4.x.xはNode.js18のサポートを終了すると宣言していますが、この縛りに引っ張られ私のラズパイ4BのNode-REDは3.x.xからバージョンアップできない状態でした。
node-red-contrib-wemo-emulatorはNode.jsバージョン24でも問題なく動作するので、Node-REDも最新バージョンを使えます。
無知ってほんと怖い。
余談ですが、Amazon Echo Show 5 第3世代がセールで半額以下になっていたので第1世代から買い替えました。
本記事の内容はEcho Show 5の世代に関係なく利用できます。
.
posted by Huwy at 13:34
|
Comment(0)
|
TrackBack(0)
|
スマートホーム
|

|