2019年11月20日水曜日

実証実験第3クール

明日から実証実験の第3クールを11/27までの1週間開始する。そのために本日被験者宅にシステム一式を設置した。もっとも手間取ったのはGoogleHomeの設定だった。高齢者の誰もがGoogleHomeに精通しているわけではないので、これについては高齢者でも設置・設定できるような簡単なマニュアルが必要と感じた。

次に、ベアボーンの設定については今回はトラブルなく接続できた。その後の設定作業は
  1. GoogleHomeのIPアドレスをスマホアプリで調べてGoogleスプレッドシート(pill-reminder)へ記入する
  2. 発話依頼プログラム(pill-reminder.js)を起動する
の2点である。
ところがこれらを行っても、時刻になったにもかかわらずGoogleHomeは喋らなかった。原因は発話PUSHサーバがスプレッドシートに設定したGoogleHomeのIPアドレスを読み込んでいなかったからである。
本来は先に上記1をやってからベアボーンサバを起動すべきだった。今回は、いったん発話PUSHサーバを停止後、再度起動することによって対応した。
# cd /home/mtanaka/pill-reminder
# forever stop example.js
# forever start example.js

2019年11月19日火曜日

実験6日目、7日目

間が空いてしまったが結果である。  

6日目

・結果としてはすべて済になっていた。
しかし、朝ゼミの教員から連絡がなければ
ベアボーンのコンセントが抜けていたことに気づけなかったと思う。

7日目

・結果としては夜以外は済になっていた。
ただ、「寝る前の薬飲んだよ」を「夜の薬飲んだよ」と何度も話しかけていたため
夜は工夫する必要があるかと思われる。
・また、「ちょっと待って」と話しても10分延ばされなかったので
3回目の実証実験で確認できたらと思う。

【コメント】


「ちょっと待って」ではなく「少し待って」です。こういった表現の揺らぎに対してIFTTTでは3パターンしか登録できないので問題がありますね。
入力された音声を自然言語処理で近い表現に変換できるといいですね。今後の課題に加えましょう。

2019年11月16日土曜日

瀬戸内医療情報ネットワーク勉強会

瀬戸内医療情報ネットワーク勉強会に参加して研究成果を発表しました。


発表を終えて、その日はホンマチバルで打ち上げです。











料理はどれも彩り豊かでおいしかったです。極めつけはこれです。



2019年11月13日水曜日

11/12

今日は、瀨戸ネット前最後のゼミということで最終調節を行った。
実際に発表の時間を測り、少し長かったため不要な部分を削り、時間内に収めれるように修正した。本番の質問対策のプリントを先生に作っていただいたため、それらにも目を通し、自分たちでもほかの質問が来た場合に備える準備をした。

本番は成功するように頑張りたいと思う。

発話PUSHプログラムのログ

発話PUSHプログラム example.js のログが取れていなかった。ログをとるシェルスクリプトにおいて、ログファイル名を取得すべく forever list コマンドを実行しているが、絶対パス指定をしていなかったのが原因だったのかもしれないと思い、絶対パス指定に修正した。これで様子を見てみることにした。
#!/bin/sh

log_file1=`/usr/local/bin/forever list | grep root | /usr/bin/awk '{print $8}'`
log_file2=$(/usr/bin/printf $log_file1 | /bin/sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")
cp $log_file2 /home/mtanaka/pill-reminder/log/example_`date "+%Y%m%d"`.log
echo '' > $log_file2
リスト1.発話PUSHプログラムのログ取得シェル/root/log-backup.sh

この修正でもダメだった。crontab -e の設定がまずいのかと思い、以下のようにシェルスクリプトの前に/bin/bashを付けてみた。 
0 1 * * * /bin/bash /root/log-backup.sh
これで様子を見てみる。

この方法でもダメだった。そこで、「Cronの使い方とテクニックと詰まったところ」にしたがって /etc/cron.d/内に下記の内容のファイルlog-backupを作成してcronを再起動した。
# /etc/cron.d/log-backup: crontab entries for the pill-reminder package

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 1    * * *   root    /root/log-backup.sh >> /root/log-backup.log 2>> /root/log-backup.err
リスト2./etc/cron.d/log-backup

これで成功した。

2019年11月12日火曜日

プログラムの修正


無応答時の処理変更


  1. 現在、薬を飲んでくださいの呼びかけに対して応答がない場合、LINEへの通知を5回おこなっているが、1回のみとする。
  2. また、薬を飲んでくださいの呼びかけ間隔が1分になっているが5分にする。
上記1の修正はGASの「A3」、上記2の修正はpill-reminder.jsで、いずれもマイナー修正である。

トラブル発生

【現象】


  • 午前5時半ごろ、Teratermでベアボーンサーバに接続したところ、接続できない。
  • ngrokのダッシュボードを確認したところtunnelsが何も表示されていない。
  • 昨夜の午後10時に就寝前のお薬通知は行っている(GoogleカレンダーとGASのログで確認)。

【考えられる原因】


  • 昨日、example.jsのログを取得するスクリプト/root/log-backup.shを修正した。その影響か?
  • ベアボーンサーバが落ちている。

【確認事項】


①ベアボーンサーバーの電源は入っているか(LEDは点灯しているか)?
②入っていなければ電源を入れる。
③入っていたら
・朝のお薬の通知はあったか?
・「昼の薬を飲んだよ」と話しかけたら、「時間外なので無視する」と返答があったか?
④電源を長押しして電源を切り、再度電源を入れて
・「昼の薬を飲んだよ」と話しかけ、「時間外なので無視する」との返答があることを確認する。

【復旧】


午前8時9分にサーバー起動で復旧。ログを見ると前日午後9時17分を最後にログが途絶えている。10時にお薬服用の通知は出しているようなので、その後に何かあったものと思われる。

【原因判明】


電源が抜け落ちていたため。