21
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

n8nで毎朝「天気×ビタミンD日光時間」をDiscord通知するリマインダーを作ってみた

21
Posted at

はじめに

毎朝天気予報を見る人は多いですが、

  • 今日はどれくらい日光を浴びるとよいのか
  • 曇りの日はどれくらい不足しやすいのか
  • 日焼け止めありだとどれくらい変わるのか

まで考えることはあまりありません。

そこで今回は n8n で、

  • 天気取得
  • ビタミンD生成を考慮した日光時間推定
  • Discord通知

を自動化するワークフローを作ってみました。

完成すると毎朝こう届きます。

☀️ 天気予報リマインド

📍 地域: 東京
🌤 天気: 晴れ
🌡 気温: 20.5℃
☁️ 雲量: 47%
☔ 降水確率: 4%
🔆 UV指数: 7.6

🧬 推定条件
・年齢: 26歳
・肌タイプ: 3
・露出: 顔+腕
・季節係数: 1.1

🧴 ビタミンD目的の日光目安
・日焼け止めなし: 7分程度
・日焼け止めあり: 28分程度

💡 赤くなるほど浴びる必要はありません。肌トラブルや日焼けが心配な場合は短めにしてください。

作ったもの

全体構成

Schedule Trigger
↓
地域情報生成
↓
天気API取得
↓
地域情報とMerge
↓
ビタミンD計算
↓
Discord通知

使用技術

  • n8n
  • Open-Meteo
  • Discord

image.png

実装した機能

1. 地域ごとの天気取得

登録地域

const regions = [
{
 name:"東京",
 latitude:35.6812,
 longitude:139.7671
},
{
 name:"横浜",
 latitude:35.4437,
 longitude:139.6380
}
]

Open-Meteo APIで取得する情報

  • 気温
  • 天気コード
  • 雲量
  • 降水確率
  • UV指数

2. ビタミンD日光時間推定

単純に「UV指数が高いから5分」のようにはしていません。

その日の条件に合わせて、必要な日光時間をざっくり計算しています。

考慮しているのはこの5つ。

  • 季節(冬は長め)
  • 年齢(高齢ほど長め)
  • 肌タイプ(濃い肌ほど長め)
  • 肌の露出量(顔だけなら長め、腕も出せば短め)
  • 雲量(曇りなら長め)

まず、その日のUVと雲量からベースとなる日光時間を計算。
必要日光時間 = 30 ÷ 実効UV
そのあと各条件で補正します。

ベース時間
× 季節補正
× 年齢補正
× 肌タイプ補正
× 露出補正

日焼け止めありの場合

日焼け止めありは生成効率が落ちる想定で、

通常推定時間 ×4

として別パターンも出しています。

例えば

日焼け止めなし 6分
日焼け止めあり 24分

のように通知されます。

厳密な医療計算ではなく、毎日の健康リマインダーとして使える実用的な目安に寄せています。

3. 地域情報と天気情報をMergeで結合

HTTP Requestノードで天気APIを呼ぶと、APIレスポンスで元の地域情報が失われる場合があります。

そのため Mergeノード を使って

  • 登録地域データ
  • 天気APIレスポンス

を再結合しています。

構成はこうです。

Registered Regions
├── Merge input1
└── Get Weather Forecast
      └── Merge input2

MergeではmergeByPositionを使用しています。

地域ごとの

  • 地域名
  • 緯度経度
  • 年齢
  • 肌タイプ

  • 気温
  • UV指数
  • 雲量
  • 降水確率

を1つのデータにまとめて、後続の計算ノードに渡しています。

結合後のイメージ

{
 "name":"東京",
 "latitude":35.68,
 "age":26,
 "skinType":3,
 "current":{
   "temperature_2m":20.5,
   "cloud_cover":47
 },
 "daily":{
   "uv_index_max":[7.6]
 }
}

この構成にすることで、地域ごとに正しい天気と日光推定結果を通知できます。

まとめ

毎日の天気から 「今日は何分くらい散歩すればよさそうか」 が分かるようになり、健康習慣の目安としてかなり便利になりました。

単なる天気通知ではなく、行動につながるリマインダーになったのが大きなメリットです。

また今後は、

推定された散歩時間に合わせて
10分コース / 20分コースのような
散歩ルートも提案する

ところまでできるとさらに面白いと感じました。

天気予報から「今日の行動提案」まで自動化できると、n8nの活用幅はかなり広がりそうです。

21
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?