47歳でやむなくセミリタイア

病気のためセミリタイアをすることに。現在は週20時間程度のバイトをしています。その他、雑多なことを記録として書いています。

Raspberry Piでパソコンの電源をON/OFFする設定を行いました

台風14号が近づいていて、関東でも明日から雨のようです。買い物に行っておかなければ。

さて、先日購入した、Raspberry Pi Zero 2 Wを利用して、Alexaからパソコンの電源ON/OFFができるようになりました。

あれから、持っていたMicroSDカードが読み込み4MB/sのタイプで遅すぎたので、100MB/sのものに買い換えています。

Alexaでパソコンの電源ON/OFF

これまで、パソコンの電源のOFFは、Assistant Computer Controlを使用してAlexaから行っていました。 そして、電源のONは、Sleep状態にしておいてキーボード操作から復帰するという方法を使っていました。

ただ、両方とも安定していませんでした。Assistant Computer Controlはログイン状態でないと使えないし、ログインしても動かないことも時々あり。Sleep状態の方も間違って復帰することが時々起きてしまっていました。

という訳でRaspberry PiでON/OFFする方法に切り替えました。

Node-REDのインストール

最初はhomebridgeでやろうとしていたのですが、2$/月がかかるという事が分かったため、Node-REDを使用することにしました。

インストールを、公式(Raspberry Piで実行する : Node-RED日本ユーザ会)に従って行うと「Install Node-RED core」で、失敗してしまいました。 なので今回は以下の方法でインストールしました。

$ sudo apt install nodered

デフォルトでは、piというユーザ名を期待しているので、/lib/systemd/system/nodered.service のUser, Group, WorkingDirectoryを使用するユーザ名に書き換える必要があります。

Alexaとの連携の設定

AlexaからNode-REDを使えるようにするのは以下の通りにやれば一発で出来ました。

qiita.com

AlexaにNode-REDのスキルを追加すると、Node-REDに登録したものが、Alexaのデバイスに出てきて、少し感動しました。

残りの手順は以下です。この手順でWindows 10にsshで(パスワードなしで)ログインする設定以外はうまくいきました。

qiita.com

Wake On LanでPCを起動、sshWindows 10にログインしてshutdownコマンドを実行という感じです。

Windows 10 にsshでログインできるようにする

という訳で、ここだけ詰まったので、何に詰まったか書いておきます。 Windows 10へのssh接続事態は、検索したら山ほど出てきます。

  1. Windows 10にopensshをインストール
  2. C:\ProgramData\ssh\sshd_configの最後2行をコメントアウト
  3. ssh-keygenで id_rsa と id_rsa.pubを作成
  4. id_rsaをraspberrypiの~/.ssh/配下に置く (.sshパーミッションは700にする)
  5. id_rsa.pubをWindowsの$HOME\.ssh\authorized_keysとして置く (authorized_keysのパーミッション設定する)

という感じで、さして難しくない手順です。

ただ、最後の authorized_keys のパーミッションの設定がわからずに難儀しました。 最終的に以下を行うことでパスワードなしでのログインができるようになりました。

PS C:\> icacls.exe $HOME\.ssh\authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

IPアドレスを固定

ルータの設定で、WindowsRaspberry PiDHCPで割り当てられるIPアドレスを固定しておく必要があります。 Raspberry Pi側は必須ではないですが、固定しておいたほうがわかりやすいと思います。

まとめ

Raspberry Pi Zero 2 WとNode-REDの組み合わせで、PCの電源ON/OFFがAlexaから行えるようになりました。 今のところ安定して使用できています。

お値段はトータルで5,000円くらい掛かっています。 一度Raspberry Piは触ってみたかったので丁度よかったとはいえ、他にも使い道を探したいなあと思っています。