Alexa経由でIoTしたい人多いですよね。というかそれがほとんどですよね。俺もそうなので、Nature Remoを使って照明や空調のコントロールをしているんですが、どうせならPCの電源もAlexaでコントロールしたい。というか出来たらカッコいい!という事で何の知識もないのにチャレンジしました。1年前くらいに。今更だけど、案外苦労したので備忘録として残しておきます。
AlexaでPCの電源をコントロールする際、PCに電源が入ってない状態でAlexa経由でPCの電源を入れる場合、他のデバイスからWake on Lanを叩けないといけない訳で、この時点でラズパイの導入は確定な訳です。という訳でラズパイやそれに準じた何かを準備するのは前提です。
まずラズパイがAlexaのボイスコマンドを処理できるようにNode-REDをインストールします。この辺読みながらやりました。詳しくは覚えてません。
ですがこれだけだとAlexaからラズパイにボイスコマンドを送れないので、Node-RED Alexa Home Skill Bridgeを導入して、PCをオンオフ出来るデバイスとして登録します。あとAlexaアプリのNode-REDスキルを有効にします。詳しくは調べてください。
その後、Node-REDでAlexaにPCの電源をオンする時とオフにする時、それぞれの設定をします。
こんな感じです。
オンにした時はWoLを叩けばいいだけなんですが、問題はオフにするとき。脳内ではラズパイからWindowsにSSHログインしてShutdownコマンド実行すりゃ余裕やろ!くらいに思ってたんですが、これが全く上手くいかないので知識がないなりに考えました。考えたのが上の画像のオフにする際のアクションです。
Alexa→Node-RED→Pushbulletにシャットダウン用メッセージ送信→EventGhostでシャットダウン実行という非常に面倒くさい手順ですが、これで上手くいきました。PushbulletとEventGhostの連携の方法は色んな所で他の方が詳しく説明されているので省きます。
とりあえず、ラズパイからSSHでWindowsにログインしてShutdownコマンド実行できるで!って方がいたらご一報いただけると嬉しいです。Windows全然わからん。