自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/ExcelVBA/JavaScript/Raspberry Piなどで色んなことを自動化

Slackへの投稿をRaspberry Pi×Node-REDでAlexaとGoogleに読み上げてもらう① - Node-RED初期設定

Alexaを喋らせるだけならGCPの永久無料枠を使うのも良いなと思ったけどGoogle Home Miniしか置いていない部屋もあるのでChromecastによる発話も対応するためにRaspberry PiでNode-RED環境を構築します。ちょっと長くなるので全4回の予定。

インストールは公式のコマンドでやります

apt-get install nodered でも可能みたいですが、依存パッケージ全てを含むわけではないらしいのでおとなしく公式のインストールコマンドをコピペ。

nodered.jp

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パスワードを設定しておきます。

nodered.org

パスワードハッシュを生成

以下のコマンドを実行後、Password入力を求められるので入力してEnterを押すとハッシュ値が帰ってくるのでメモ。

node-red admin hash-pw

設定ファイルを編集

ユーザフォルダ以下の .node-red/settings.js が設定ファイルです。

見当たらない場合は node-red-log コマンドで設定ファイルのPathを確認しましょう。

f:id:maru0014:20200922022253p:plain
起動時のログの中で設定ファイルの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

ログイン画面が表示されるようになっていれば成功

f:id:maru0014:20200922021650p:plain


次回はAlexaを喋らせるためのモジュールnode-red-contrib-alexa-remote2を追加してAlexaを喋らせてみます。

codelife.cafe