2019年10月31日木曜日

実証実験第2クールに向けての準備

実証実験の第2クールは一般の利用者に対して行う。ここで「一般の利用者」とは、本システムの開発関係者ではないということを意味する。
したがって、システムは設定を含めて自動化をしなければならない。トラブルの発生の都度、システムの設定やプログラムのバグ取りをすることはできない。また、システムの起動停止も自動化しなければならない。
ただし、遠隔メンテナンスができるように外部からssh接続ができることが望ましい。

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

0 件のコメント:

コメントを投稿