AlexaとラズパイでWoL

先日使い始めたRaspberry Pi 4 Model Bを使って、
Echo Show 5から自室のデスクトップPCを起動出来るようにした。
毎朝2階に上る前に1階から先に起動させておきたかったのよね。
(今までは1階のiPad miniからWake on LANアプリ使ってた)

Alexa→ラズパイでのWoL自体は定番っぽく
解説してるサイトはたくさんあるので大雑把に。

1. Node-RED Alexa Home Skill Bridgeでデバイス登録(呼び名等)
2. AlexaでNode-REDスキルを有効化
3. Alexaでデバイスを追加
4. ラズパイにNode-REDを入れる、自動起動登録
5. http://ホスト名.local:1880/ をブラウザで開く
6. node-red-contrib-alexa-home-skill ノードを追加
7. alexa homeとexecを繋ぐ
8. 任意のディレクトリにWoLのシェルスクリプトを置く
9. execでWoLのスクリプトを指定(sh)する



/home/pi/wakeonlan.sh
#!/bin/sh
wakeonlan ff:ff:ff:ff:ff:ff

やることは多いけど、繋いでみると単純、
最後のmsg.payloadはデバッグ用なので不要。

最初はnode-red-node-wolってノードを使ったけど、
起動したり起動しなかったりしたのでシェルで実行。
wolノードはパケット拾ってみるとほぼ同時に3回送信してる、
反応が悪い時に複数回送ることはあるけどこれが原因?
シェルで実行すると1回で確実に起動してくれる。

alexa用のノードは結果を返すことも出来るようだけど、
6秒以内に返答しなきゃいけない仕様なので、起動確認は無理。
なので「パソコンつけて」に「はい」って返すだけ。

alexa経由でwolすることのいいところは、
alexaアプリ使えば面倒くさいルータ越えが不要なところ。
一方Node-RED Alexa Home Skill Bridgeっていう外部サービス使うので
たまにサービス死んでる時は全く使えないことはある。

0 comments:

コメントを投稿