Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。
インストールは公式のコマンドでやります
apt-get install nodered
でも可能みたいですが、依存パッケージ全てを含むわけではないらしいのでおとなしく公式のインストールコマンドをコピペ。
Raspberry Pi用のNode-REDインストールコマンド
※アップデートするときも同じコマンドでOKらしい。便利。
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
インストール完了後、Node-REDの起動コマンドを実行
node-red-pi --max-old-space-size=256
起動確認
Raspberry PiのIPアドレス:1880ポートにアクセスしてNode-REDが動いているか確認。
認証もなく即時フローエディタが起動する。
Raspberry Pi起動時に自動実行されるようにする
sudo systemctl enable nodered.service
ID/Passwordでの認証設定
Node-REDはすぐに始められるようにフローエディタが保護されていません。
こちらも公式手順に従って管理者用のIDパスワードを設定しておきます。
パスワードハッシュを生成
以下のコマンドを実行後、Password入力を求められるので入力してEnterを押すとハッシュ値が帰ってくるのでメモ。
node-red admin hash-pw
設定ファイルを編集
ユーザフォルダ以下の .node-red/settings.js
が設定ファイルです。
見当たらない場合は node-red-log
コマンドで設定ファイルのPathを確認しましょう。
nano で編集
nano /home/<ユーザ名>/.node-red/settings.js
adminAuth
のコメントアウトを解除し、password部分のハッシュ値を先程生成したもので書き換える。
adminAuth: { type: "credentials", users: [ { username: "admin", password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.", permissions: "*" } ] }
設定を反映するためNode-REDを再起動(Raspberry Pi自体を再起動する必要はありません)
node-red-restart
ログイン画面が表示されるようになっていれば成功
次回はAlexaを喋らせるためのモジュールnode-red-contrib-alexa-remote2を追加してAlexaを喋らせてみます。