≒ Nightscout導入記

医療機器的な物品についてのエントリなんで改めて宣言しておく。以下の内容は全て個人の経験と感想である。各人に何らかのことを推奨する意図は全くない。

前回予告してたエントリ。Nightscout導入の手順説明は世界中の言語で世界中に転がってるけど、俺が幾つか当たった限りでは本家のhttp://nightscout.github.io/nightscout/new_user/ が一番解り易いと思う。そしてここで改めて、最初に注意喚起しておく。

日本語でNightscoutって検索して読んでみると、大体のドキュメントに「チュートリアルの日本語訳が無い」と書いてある。しかしながら本家のチュートリアルのレベルの英語の意味が分からないなら、以下の手順は手を出さないほうが良い。自分の医療や健康にかかわる物事だから、英語に自信が無ければ療養は全て今掛かっているお医者さんに任せて言う通りにしておいたほうが良い。自動翻訳するのは簡単だけど、導入さえすれば後は使うのは簡単というわけでは無く、習熟時、またトラブル発生時には英語マニュアルを読み解かなきゃいけない。とても万人にはお薦めできない。

上記理由から逐語訳は載せていない。間違えていたら責任が持てない+俺レベルの翻訳ではDeepLどころかGoogle翻訳にさえ勝てないから意味ないし、何より本家チュートリアルのアップデートの頻度が高いのでそちらを参照する方がはるかに有益だからだ。なおGoogle翻訳を使って翻訳すれば誰でも充分わかるレベルの日本語になる。もしそれでも手順が分からないなら、英語レベルじゃなくてPCスキルがNightscoutを使うには足りていないと思う。

以下、導入していて引っ掛かったポイントと、その時俺がどうしたかだけ解説する。本家チュートリアルと合わせて解り易いと評判のSpike Follower Mode · SpikeApp/Spike Wiki · GitHubも少し引用する。ちょっと内容が古いけど参考になれば幸いである。

Note: Please follow this tutorial using a browser on a computer. Don’t try to do it using your phone. これ重要。スマホでは無理。複数ウィンドウで同時作業が基本。

まず下準備として3つアカウントを作る。どれが先でなければということはない。順番はどれからでもいい。推奨事項はすべて「同じメールアドレスで登録する」。俺は普段使いしてない、使う場を選んで昔から使っている実名メルアドで全てアカウントを作り直した。GitHubには趣味の開発用のアカウントも幾つか持ってるが、医療情報も扱うので実名メルアドに紐づけした。お医者さんにデータを見せるときに実名と違ってややこしいことになると困るからね。

  • Create a GitHub account 適当でいい。何も難しくない。とにかくFREEプランのアカウントを一つ作ればいい。アカウントを作り終わってもタブは閉じない。
  • Create a Heroku account 同じく何も難しくない。チュートリアル通りにやれば失敗しようがない。俺は「Primary Development Language」を間違えて慣れてるJavaにしちゃったけど、ログインページ最初のところでも選択できるしアプリ制作時にも変更できる。アカウントを作り終わっても~。
  • Create an Atlas account 何も難しくない。引っ掛かるような点はない。俺はサインアップはチュートリアルにあるメルアド登録ではなくGoogle認証で行ったが問題なかった。アカウント作成が終わったらログインしてチュートリアル通りデータベース設定を行い、アプリ接続に必要な「MONGODB_URI」を生成する。作業が終わってもタブは閉じない。

以上三点が終わったら、Fork and deploy cgm-remote-monitor 要するにNightscoutのインストールとウェブアプリとしてのデプロイを行う。俺が引っ掛かったのは「Choose a region」、日本が無い。でもどこでもいいみたいだ。恐らく公開リージョンが遠くなっちゃうんだと思うけどそれほどクリティカルなわけがない。俺は適当にEuropeにした。今のところ不具合は無い。「Add this app to a pipeline」複数アプリや環境の連携に使うものらしいが、詳しくは分からない。調べなかった。俺はこのアカウントではNightscoutしか立ち上げないので空白のまま何もしなかった。

ENABLEセクション。この入力欄の入力はチュートリアルによって指定プラグインが違うので良く分かりにくいが、スペース区切りで任意プラグインの名前文字列を入力欄に書き込むという意味。Dexcomやアイホン、Amazon Alexa、IFTTTで自動化したい人、サイトのcors設定をしたい人はここでpluginを足せばいいようだ。俺は本家チュートリアル通りほとんど全部入れた。実際の使用上は簡単にオンオフできるので全部入れの実害はないと思う。

ここの設定で一番重要なのはAPI_SECRET。後で他のデバイス例えばxDrip+やGlimpからのアクセス時(=データアップロード。なので xDrip+やGlimp はアップローダーと呼ぶらしい)に使用するので控えておく必要がある。これを知っていると誰でもNightscoutアプリ(=サイト)にフルアクセス(データ改変や消去が可能)になるので、強度の高いパスワード文字列にする必要があるのだが、アップローダーからはwebAPIとしてアクセスするので、特殊な文字はURLデコードする必要がある。チュートリアルによっては比較的簡単な文字列(数字とアルファベット大文字、小文字のみ)にした方が良いとあるが俺は無視した。URLデコードなんて一瞬で出来るから。

その他の山ほどある項目は、自分が使っていないアップローダーの設定は無視、分からない項目も無視、で「俺は」行った。他人に薦めるつもりはない。ほとんどの項目はNightscout側から変更できる(た)し、最悪はリセットしてイチからやり直せばいいだけだから。後はデプロイして初回にサイトにアクセスしたらAPI_SECRET入力して(もちろんデコードしてないやつ)ログイン、初期設定をする。そしてアップローダー側の設定。俺は xDrip+。書き方注意。ここでは(必要な文字が含まれるなら)デコードした文字列を入れてMind the syntax! 。ここ見なかったら文字列の組み方は分からなかった。以上で公開完了。すぐにデータも飛んでウェブ上で見れるようになるはずだ。

最後に重要なセキュリティ設定を直ぐにやること。今の状態ではだれでもアクセスできるのでAPI_SECRETかトークン(パスワード)が無ければアクセスできないようにする。設定しないとアラートが出続けるので直ぐわかる。手順は本家チュートリアル通りなんだけど、少し分かりにくいので捕捉。Nightscout Config VarsをEditする手順、それと念のためにNightscoutをリスタートしてすぐ設定を反映させる手順

駆け足解説は以上。この解説を書くのも含めて結局5時間ほど掛かった。短時間の使用感だがすごく良い。 xDrip+ より少しだけデータ入力がきめ細やかに出来るので(時間とか)、スマホのホーム画面にブックマークしておいてデータ入力時にはNightscoutからやろうかと思う。ちょい不満はいきなり音が出る。アラート設定がサウンド設定と一体なんだよね。speechプラグインをオンにしたら止めどなく俺の血糖値を唱えだして吃驚した。後はMongoDBの無料枠がどれほどのサイズなのか。確認してないから分からないが、Nightscoutのデータ保持期限は180日がデフォルトのようで、その日数がDBサイズに見合ったものなんだろう。それまでにはバックアップするか、別のデータベースに移行するかの検討をしなければいけない。本家の方では有料サービスも案内しているみたいだ。

終わりにあまり張ってるドキュメントは見かけなかったので、スマホ版のNightscoutの画面を貼っておく。これAndroidのChromeで見ているウェブページだぜ。結構見た目の出来もいい。参考まで。

Nightscoutのスマホでの画面