最終更新: 2023/07/28(Fri)22:35

自作と修理を愛するブログ。トイラジ、電子工作、ボルティー、NucleusCMS 、いろいろゴソゴソやってます
3Dプリンター / 3Dスキャナーも -kyu-

Home

ラズパイ Alexa から Windows PC を起動する

  • カテゴリ: Raspberry pi

GW につくったラズパイアレクサ、ニュースや Radiko などでそこそこ活用してます。いろいろいじったのでまとめておきます。

まずは 同じネットワーク内にある PC を Alexa から起動できるようにしました。手を伸ばせばそこに PC があるのに、わざわざそんなことしなくてもってのは、まあほっといてください。

参考にさせていただいたのはこちら。

ラズパイからマジックパケットを送信し、Wake on lan の設定をした PC の電源を入れるというものです。アレクサからスクリプトを実行するためには Node-RED という仕組みを使います。

PC で Wake on lan を使うための設定については省略。BIOS の設定変更とネットワークカードの設定が必要でした。使ってるマザボや NIC によって違うのでここで説明してもアレかなと。

Wake on lan

まずは PC の MAC アドレスを調べます。コマンドプロンプトから

ipconfig /all

です。
xx-xx-xx-xx-xx-xx という形式で得られるので、ハイフンをコロンに置き換えて準備しておきます。

ラズパイからマジックパケットを飛ばすためには、そのものズバリ wakeonlan というパッケージを利用します。
インストール

sudo apt-get install wakeonlan

インストールが完了したら一度

wakeonlan MACアドレス

と打って実行してみましょう。PC の電源が入ったら成功です。
余談ですが、メイン PC からターミナル経由で実行してもメイン PC の電源が入るかどうかはわからないので、Bean-Linux をインストールした古い vaio を引っ張り出して試しました。

うまくいったらシェルスクリプト化します。

sudo nano ~/sdk-folder/wol.sh
sudo /usr/bin/wakeonlan xx:xx:xx:xx:xx:xx

Node-RED

アレクサから物理的ななにかを操作するためには、スマートホームスキルをつくるのが一般的ですが、Lambda とかエンドポイントとか小難しい単語がわらわら出てくるので敷居が高いです。
で、今回は Node-RED という仕組みを使って、さっき作ったシェルスクリプト wol.sh を Alexa から実行できるようにします。

…などと偉そうに言ってますが、前出のパソコン鳥のブログさんに書かれていることをそのままやっただけですハイ。
わたしがうだうだ説明するよりもあちらを読んでいただいたほうがわかりみが早いです。

sudo apt-get install nodered
sudo update-nodejs-and-nodered
sudo node-red-start
(ctrl-c)
sudo systemctl enable nodered.service

Node-RED をインストールしサービスに追加して再起動、ですね。
あと、AmazonAlexaアプリのスキルメニューで「Node-RED」を検索し有効にする必要があります。

PC からブラウザで http://xx.xx.xx.xx:1880 にアクセス。(xx.xx.xx.xx はラズパイのIPアドレス)

★Node-RED
付箋を貼って線でつなぐ要領でプログラミングができます。へぇ~
特にハマることもなく、無事できました。

アレクサに「俺の PC つけて」と言うと「はい」と返事が返ってきて電源が入ります。なかなか気分いいです。
あ、ちなみにシャットダウンはいろいろ面倒そうだったので手動のままです。

コメント

4件のコメントがあります

素人です。シェルスクリプト化の手順をもう少し細かくご説明いただけますでしょうか?ここでつまずいてます。

  • マー君

マー君さんこんにちは。
nano コマンドで wol.sh を作成します。場所は上記の通りです。
wol.sh の中身は一行で
sudo /usr/bin/wakeonlan xx:xx:xx:xx:xx:xx
です。
このくらいしか説明できないんですがどうでしょうか。

  • kyu

ありがとうございました。この冬休み勉強しながら、ようやくシェルスクリプトの作り方を理解しつつあります。とりあえず成功しました。現在は、シャットダウンもできるようになりましたが、2台目のPCは休止にしたいですが、アイデアありますでしょうか?rpcではシャットダウンしかないようなので。度々すみません。

  • マー君

マー君さんこんにちは。

実際にやってみていないのでなんとも言えないのですが、Windows をコマンドラインからスリープさせる方法と raspbian (Linux) から Windows のコマンドラインを実行する方法を組み合わせれば実現できそうな気がします。

Windows Sysinternals の psshutdown.exe を raspbian の winexe から叩けばいけそうですね。

  • kyu

コメントを投稿

( *は必須項目です )

%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%22%20%76%61%6c%75%65%3d%22%31%36%34%33%62%38%32%31%64%30%39%30%32%65%62%65%38%31%30%37%65%61%36%31%30%30%34%64%34%30%63%37%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%6e%70%5f%70%72%6f%74%65%63%74%62%79%6d%64%35%5f%68%61%73%68%22%20%76%61%6c%75%65%3d%22%39%63%62%39%63%30%37%65%63%36%30%33%66%35%63%62%31%31%38%39%38%32%35%38%66%61%36%64%63%37%38%38%22%3e

サイト内検索

↑ページ先頭へ

2382362 [Mode]
Copyright © kyu-weblog All Rights Reserved. Powered by Nucleus CMS v3.71 管理