sunabox

睡眠ログを元にLLMに健康アドバイスをしてもらう仕組みを作った

年末にApple Watchを購入してから、睡眠のログを取るようになりました。
十分な睡眠が取れたかどうかを感覚ではなく定量的に測定し、ログとして残しておくことがLLMを活用していく上で重要だと思ったのがきっかけです。

2025年買ってよかったもの|すな年末になると「今年のベストバイ」的な記事が多く出回る。それを見るのが結構好きで毎年楽しみにしているのだ。今年は自分も書いてみたくなったので10個ほど挙げてみる。特にランキングとかでもなく良かったと思えるものをいくつかピックアップしたので、順番に意味はない。 今年は第一子が産まれたのでベビー用品関連も色々買ったが、その辺は全部除いた個人として使ってよかった物だけに絞っている。 アフィリエイトはめんどくさくて貼ってないので単純に使ってよかったものをオススメするだけの記事です。 1. SwitchBot スマートロック Ultra 顔認証パッド 指紋認証 SwitchBot
faviconnote.com

今回2ヶ月ほど溜まったログを元に、LLMを使って日々の生活改善に役立つアドバイスをもらう仕組みを作ってみました。

残念ながら完全自動化とはいかなかったのですが、無理ない範囲で利用できる準自動化に落ち着いたのでその辺の経緯も含めてまとめておきます。

何を作ったのか

睡眠を含むヘルスケアのデータを元に、分析や改善のアドバイスをLLMにさせる基盤を作ることにしました。
例えば「ここ1週間の睡眠の質はどう?」「睡眠と運動の関係性について分析して」といった質問に対して、データに基づいた回答をもらえるようなものです。

データから判断した、より客観的な健康管理ができるようになることを目指しています。

全体の構成

今回構築した仕組みの全体像は以下の通りです。

iOSショートカット
毎日9時に自動実行

参照

Apple Watch

iPhone ヘルスケア

Health Auto Export

Google Drive

NotebookLM, Gemini, Claude Code

  1. Apple Watchが睡眠中のデータ(睡眠時間、睡眠ステージ等)を自動で収集
  2. iPhoneのヘルスケアアプリにデータが同期される
  3. Health Auto Exportアプリでヘルスケアデータをエクスポートするautomation定義
  4. iOSショートカットのオートメーションで毎日9時にエクスポートを実行
  5. エクスポートされたデータがGoogle Driveに保存される
  6. NotebookLMやGeminiからGoogle Drive上のデータを参照して質問できる

Health Auto Exportでデータをエクスポートする

iPhoneのヘルスケアデータをGoogle Driveにエクスポートするために「Health Auto Export」というアプリを使っています。

無料でも使えるのですが、automation設定をするには有料課金が必要です。と言っても、年間1,100円なので非常に安いです。

CSVもしくはJSON形式でローカルや様々なクラウドに必要なデータをエクスポートできます。
Google Driveも連携できるので、今回はGoogle Driveにエクスポートするようにしました。

iOSショートカットで毎日自動実行する

Health Auto Exportにはオートメーション機能が備わっていて自動実行できるのですが、ここで若干ハマりポイントがありました。

そもそも実行時間が明示的に指定できません。
加えて、Health Auto Export単体のオートメーションでバックグラウンドでのエクスポートを試みたのですが、バッチ処理は起動するもののうまくデータ取得ができませんでした。
どうやらiOSのヘルスケア情報はプライバシー保護の観点から画面ロック時にバックグラウンドで非同期にヘルスケアデータを取得できないようになっている?らしいです。

そのため、完全自動化は諦めて以下の「準自動化」で対応しています。

  1. iOSのショートカットアプリで、毎日9時にHealth Auto Exportのエクスポートを起動するオートメーションを作成
  2. 実行時にユーザーの明示的な確認を挟む

ポイントはオートメーションの設定で「実行前に確認」をONにしている点です。
ショートカットアプリで確認を挟まない設定でオートメーション自体を走らせた場合も試しましたが、
Health Auto Exportのオートメーション同様、データの取得がうまくいきませんでした。

というわけでここは手動での起動が必要になるのですが、
毎朝9時に通知が来て、タップするだけでエクスポートが実行されるので、実用上はそこまで手間はないです。
業務と違って仮に実行されてなくても特に問題があるわけではなく、参照時に必要なデータが足りてなかったらその時自分でエクスポート処理をキックすればいいだけなので。
準自動ではありますが、ワンタップで済むのでまぁ許容できます。

自分は全ての項目のログと睡眠用に絞ったログをそれぞれ別の場所に出力しています。

NotebookLMやGemini, Claude Codeでログを活用する

Google Driveにデータが蓄積されたら、いよいよLLMを使った活用です。

NotebookLM

Google DriveのデータをNotebookLMのソースとして追加するだけで、睡眠データに基づいた質問ができるようになります。

例えば以下のような質問を投げかけることができます。

  • 「直近1ヶ月の睡眠時間の平均は?」
  • 「睡眠の質が良かった日と悪かった日の違いは?」
  • 「ここ1週間の睡眠と運動の関係性を分析してレポートして」

NotebookLMはソースに基づいた回答をしてくれるので、ハルシネーションのリスクが低いのが地味に嬉しいポイントです。

試しに「ここ1週間の睡眠と運動の関係性を分析してレポートして」と指示した時の回答の一部はこんな感じです。

  1. 活動量と睡眠時間の相関
    この1週間のデータを確認すると、活動量が増えた日の夜、あるいはその翌日に睡眠時間が十分に確保される傾向が見て取れます。
    • 最大活動日: 2月19日は歩数が10,395歩、アクティブエネルギー消費が1646 kJと、この1週間で最も高い活動量を記録しました。その日の睡眠は7.18時間でしたが、翌20日の睡眠では深い睡眠が1.6時間と、週の平均を大きく上回る高い数値を記録しています。
    • 休息と回復: 睡眠時間が最も長かったのは2月21日の8.37時間と2月16日の8.33時間です。これらの日の前日の歩数は4,000〜6,000歩台と平均的であり、適度な活動が安定した長時間の睡眠に寄与している可能性があります。
  2. 運動が睡眠の質(深い睡眠)に与える影響
    運動量と「深い睡眠」の時間には密接な関係が見られます。
    • 深い睡眠のピーク: 2月20日(1.6時間)と2月21日(1.63時間)に、深い睡眠が週の最大値となりました。
    • 分析: このピークは、2月19日の高強度の活動(1万歩超え)およびそれに続く20日の安定した活動(6,414歩)の後に現れています。**「しっかりと動いた後に、深い睡眠が増える」**という理想的な回復サイクルが確認できます。
    • 逆に、歩数が5,000歩を下回った2月18日(4,377歩)の後の深い睡眠は1.06時間と、活動的な日に比べて少なめになっています。
  3. 安静時心拍数と睡眠・運動の関係
    活動量と睡眠のバランスは、心拍データにも反映されています。
    • 心拍数の安定: 1万歩以上歩いた2月19日の安静時心拍数は58拍/分でしたが、翌20日の睡眠で質の高い休息をとったことで、21日の安静時心拍数は51拍/分まで低下し、心肺系が良好に回復していることを示しています。

これがどれくらい妥当性のある分析かという議論はあるかもしれませんが、少なくとも自分の場合はもっと運動しなきゃなと思わされます...

NotebookLMであればインフォグラフィックを出力させることで視覚的に情報を整理することもできますし、とても便利です。

1点注意点としては、NotebookLMはGoogle Driveを参照できますが、ディレクトリ丸ごと参照できるわけではなくファイルを明示的に指定する必要があります。
iPhoneからエクスポートされるデータは日別ファイルになっているので、GASを使用して単一のシートに行を追記する運用にし、そのシートを参照するようにしました。
もちろんGASの内容は全てLLM任せで自分では1行も書いてません。

さらに、NotebookLMで参照するシート内容は常に同期されるわけではないので、最新のデータを参照する際にはその前に「クリックしてGoogleドライブと同期」ボタンをクリックする必要があります。
この辺は正直自動で同期してほしいなと思いつつ、まぁ自分しか使わないし毎日分析させるわけでもないので許容範囲です。今後のアップデートに期待。

Gemini, Claude Code

GeminiもGoogle Driveとの連携が可能なので、同様にデータを参照した質問ができます。
Geminiは他にも様々なツールと連携もできるので、より幅広い用途で利用できるでしょう。

ところで、最近は毎日その日あったことの振り返りを日記形式で特定のリポジトリにコミットするようにしています。
ヘルスケアの情報と合わせてこういった日々の記録を参照させれば、「特定のことをした日に睡眠スコアがどうなったか」などの分析がより詳細にできるようになります。

最近iPhoneの睡眠スコアが100になった日がありました。90点台後半は何度も出したことがあるのですが、100点は計測以来2回目です。

何が原因だったか自分ではあまりピンときていなかったのですが、その日は久々に入浴剤のメディキュアを使っていた日でした。
それが関係したのかは定かではありませんが、「もしかしたらこれが関係あるのかも」という気づきを与えてくれたこと自体に大いに価値があるように思います。

今回はやっていませんが、Claude CodeでもMCPの設定やskillsを作成しておけば同様のことができるはずです。

まとめ

Apple WatchとHealth Auto Export、iOSショートカットを組み合わせて、睡眠ログの記録を準自動化しました。
完全自動化はiOSのヘルスケアデータの制約で難しかったですが、毎朝ワンタップで済むので実用上は十分です。

蓄積したデータをNotebookLMやLLMに読み込ませることで、自分の睡眠データに基づいたアドバイスをもらえる仕組みが作れました。
始めたばかりですが、すでにいい効果が見られているのでしばらく運用してみようと思います。

Buy Me A Coffeeのbutton

目次