したがって、システムは設定を含めて自動化をしなければならない。トラブルの発生の都度、システムの設定やプログラムのバグ取りをすることはできない。また、システムの起動停止も自動化しなければならない。
ただし、遠隔メンテナンスができるように外部からssh接続ができることが望ましい。
そのために以下の修正を行った。
- OS起動とともに発話PUSHプログラム(~/pill-reminder/example.js)を自動起動した。これは/etc/rc.localに起動コマンドを追加することによって実現した。
- 外部からsshでサーバにアクセスできるようにした。そのために、サーバにngrokをインストールし、 /etc/rc.localにngrokを使ってsshをトンネリングするコマンドを追記した。これは/etc/rc.localに起動コマンドを追加することによって実現した。
- 起動時に発話依頼プログラム(~/pill-reminder/pill-reminder.js)が自動起動するようにした。※注意点としてこれはngrokの前に記述しなければ実行されない。
- 発話PUSHプログラム(~/pill-reminder/example.js)が、自身のIPアドレスを自動取得できるようにgetLocalAddress()関数を追加した。
- 発話PUSHプログラム(~/pill-reminder/example.js)が、Google HomeのIPアドレスをGoogleスプレッドシートから取得できるようにした。そのためにWebAPI(A2)にdoGetエントリーを付け加え、Googleスプレッドシートから読み込んだGoogle HomeのIPアドレスを返すようにした。なお、Google HomeのIPアドレスは手作業で設定する。
- WebAPI(A2)にGoogle HomeのIPアドレスを返す機能を追加した。
- 発話PUSHプログラム(example.js)が、ngrokによって払い出されたURLをGoogleスプレッドシートに記入できるようにした。Googleスプレッドシートはpill-reminder.sheetのシート「設定」である。そのためにWebAPI(A2)のdoPostエントリーを修正してngrok_urlパラメタを受け取るとsetNgrokUrl関数を使って受け取ったURLをスプレッドシートに書き込むよう修正した。
- WebAPI(A2)では、GOOGLE_HOME_notify関数で使用する発話PUSHプログラムのURL(ngrokによって払い出されたURL)をGoogleスプレッドシートから取得するように修正した。これによって、発話PUSHプログラムを再起動して払い出しURLが変わっても自動追随ができる。
- 発話依頼プログラム(~/pill-reminder/pill-reminder.js) が、自身のIPアドレスを自動取得できるようにgetLocalAddress()関数を追加した。
図1.Googleスプレッドシート |
0 件のコメント:
コメントを投稿