yamamoWorks

.NET技術を中心に気まぐれに更新していきます

Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【07:Deploy編】

だいぶ間が空きましたが…今回はRaspberry Piへの配置です。

Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【概要編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【IoT Hub編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【PS4前編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【PS4後編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【Functions編】
Google HomeとAzure IoT HubとRaspberry PiでTVとPS4をコントロール【IFTTT編】

環境変数の設定

前回までに作成したアプリではAzure IoT Hubへの接続文字列を環境変数IOTHUB_CONNECTION_STRINGから取得する作りにしているので、まずはRaspbianに環境変数を設定します。 なおPS4を制御するモジュール ps4-waker の動作には管理者権限が必要なので、環境変数はユーザレベルではなくサーバ共通で設定しておきます。幾つか方法はあるかと思いますが今回は/etc/profile.d/配下に*.shファイルを置く方法にします。

/etc/profile.d/smarthome.sh

export IOTHUB_CONNECTION_STRING="HostName=yamamoSmartHome.azure-devices.net;DeviceId=raspi;SharedAccessKey=7GUx22gFubaA3pAByoKoyStwp2dxiCSanyoGJiBqT4c="

foreverで永続化

Node.jsで作成したアプリの起動を永続化させる forever をインストールします。

$ sudo npm install -g forever

次に作成したアプリを適当なフォルダに配置しforeverを通じて起動させます。 前述の通りps4-wakerは管理者権限が必要なのでsudoで実行するのですが、環境変数を引き継ぐ-Eオプションが必要です。

$ sudo -E forever start ./SmartHomeHub/main.js

forever listコマンドで実行状態やログファイルのパスが表示されます。

$ sudo -E forever list

ようやく…

これでGoogle Homeに呼びかけてPS4のアプリ起動やスタンバイが出来るようになりました。 (こんなに長編になる予定ではなかった…) 残りはHDMI-CECを用いたテレビの制御です。