100% 免伺服器成本 • GitHub Actions 每日定時全自動排程

讓你的 Garmin 手錶數據 真正成為你的專屬馬拉松 AI 教練

每天清晨自動同步 Garmin Connect 運動數據與近三個月賽事倒數,結合 Open-Meteo 當下歷史溫濕度,透過 Google Gemini 深度診斷,輸出 VDOT 靶心配速、ACWR 負荷監控 與 每日訓練菜單,精準推播至 Telegram。

$0 元
全託管免伺服器成本
5 大配速
丹尼爾 VDOT 靶心精算
28 天回溯
ACWR 急慢性負荷比
3 張大圖
滿版高解析度遙測分析
TELEGRAM SMART NOTIFIER

晨間送達:雙軌獨立訊息與滿版高清遙測圖

系統採用「雙軌邏輯切分」,第一則呈現運動數據與分圈,第二則專為 AI 診斷與每日具體菜單;搭配 3 張獨立高清晰度運動科學圖表。

🤖
AI Coach 專屬教練
bot • 線上
04:00 AM
📊 【跑者訓練數據日報 - gemini-2.5-flash】 訊息 1/2
👤 跑者背景:PB 3:45 | 1985 年生 (40歲)
🎯 【VDOT 42.8 靶心配速】E 5:32~6:08 | M 5:12 | T 4:50 | I 4:26 | R 4:06
🏆 【未來目標賽事 (近三個月倒數)】
🚩 2026-10-25 (倒數 32 天 (約 4 週)) 長榮航空城市觀光半程馬拉松 | 21.1km
🩺 【夜間自律神經與準備度】:HRV 58ms (良好) | 靜止心率 48bpm | 身體電量 86
📈 【ACWR 體能負荷比】:1.14 (Sweet Spot 最佳適應區間)
🏃 【最新活動】:2026-09-23 晚間有氧耐力跑
• 距離:10.02 km | 總耗時:58:32 | 平均配速:5:50 /km
• 平均心率:134 bpm (Z2 佔比 86%) | 跑步功率:242 W
• 步頻:178 spm | 步幅:0.96 m | 垂直振幅:7.8 cm | 觸地時間:228 ms
• 🌤️ 氣象:24.2°C | 濕度 72% | 體感 25.5°C
[分圈細節 (配速 | 心率 | 爬升 | 步頻 | 時間)]
  - L01: 6:02 | 126bpm | 0m | 174spm | 6:02
  - L02: 5:54 | 131bpm | 1m | 176spm | 5:54
  - L03: 5:50 | 133bpm | 0m | 178spm | 5:50
  ... (共 10 圈條理列出)
📲 連續推播 3 張獨立高解析度視覺化圖表:
各公里配速心率雙軸走勢圖
⚡ 各公里配速/心率走勢
ACWR 急性與慢性負荷比
📈 ACWR 負荷量規
心率五大區間分佈
💓 心率五大區間
點擊圖片可放大檢視高解析度原圖
🤖 【Gemini AI 教練建議】 訊息 2/2

1. 課表執行評價: 本次跑步辨識為「Zone 2 有氧基礎耐力跑」。Z2 心率停留佔比高達 86%,步頻穩定在 178spm,前半程與後半程配速幾無掉速,執行品質極為優秀。

2. 有氧解耦診斷: 今日有氧解耦率為 3.2%(屬於最佳適應區間),心率未見明顯漂移,代表基礎有氧耐力非常扎實,在 24°C 氣溫下體溫調節良好。

3. 備賽週期分析: 距離長榮半馬僅剩 32 天(進入專項準備期第二階段),當前 ACWR 1.14 處於絕佳體能吸收階段,無過度疲勞跡象。

🎯 【今日具體訓練菜單 (平日彈性執行)】
• 核心課表:E 配速主動恢復跑 6.0 公里 (靶心配速 5:32 ~ 6:08 /km | 心率 ≤ 140 bpm)
(💡 本日課表僅需擇一執行,切勿一日雙練)
• 🌅 晨跑族:動態暖身 10 分鐘,前 1km 刻意放慢喚醒身體,跑後補充電解質早餐。
• 🌙 夜跑族:下午 16:30 補充碳水點心,以心率調節整日工作疲勞,跑後充分收操溫水浴。
CORE HIGHLIGHTS

為認真跑者打造的運動科學工程

不只是搬運數據,而是透過頂尖耐力科學公式與 Google 生成式 AI 模型,將手錶數據轉化為真正具備指導價值的每日訓練決策。

丹尼爾 VDOT 靶心配速

依據 Daniels & Gilbert (1979) 攝氧量阻力公式,依個人全馬 PB 自動反解當前 VDOT 跑力,精確推算 E、M、T、I、R 五大訓練配速區間。

ACWR 28 天體能與受傷預警

回溯近 28 天訓練歷程,計算 7 天急性與 28 天慢性負荷比,精確鎖定 0.8~1.3 體能增長「甜點區 (Sweet Spot)」,杜絕過度訓練。

前後半程有氧解耦率

引進 Joe Friel 效率因子 (EF) 模型,精準將運動切分前後半程,計算心率漂移百分比,四段科學等級檢驗有氧耐力底層。

目標賽事倒數與每日菜單

自動調閱 Garmin 行事曆近三個月目標賽事(智慧去重),判讀基礎期、專項期或減量期 (Taper),全天候自適應平日(晨跑/夜跑雙時段二選一)與週末(下午/早上/晚間)動態微調。

Gemini 多模型自動降級備援

動態掃描最新 Gemini 2.5 / 2.0 Flash 模型陣列,若遭遇尖峰 503 UNAVAILABLE 錯誤,毫秒級自動容錯降級重試,推播 100% 不中斷。

Open-Meteo 歷史微氣候

以 GPS 軌跡與起跑時間座標精準抓取當下氣溫、濕度與體感溫度,讓 AI 教練將外部熱壓力與脫水風險納入生理綜合考量。

高階跑步動態全解剖

手錶跑步功率 (W)、步頻 (spm)、步幅、垂直振幅、步幅比與觸地時間 (GCT) 全面分析,診斷跑姿經濟性與落地衝擊風險。

HRV 與體能優雅降級

整合夜間 HRV 心率變異度、靜止心率 (RHR) 與身體電量;未配戴手錶入睡時自動優雅略過,絕不中斷主流程。

3 大獨立高解析度圖表

告別多圖擠在一起的狹窄排版!Matplotlib 獨立產出走勢圖、ACWR 量規與心率甜甜圈,透過 Telegram 逐張推播滿版大圖。

INTERACTIVE SCIENCE LAB

跑力與有氧解耦率即時線上試算

試算核心完全移植自本專案的 Python 運動科學演算法,輸入您的成績即可立即體驗丹尼爾博士 VDOT 跑力公式!

丹尼爾 VDOT 跑力試算

Jack Daniels' Running Formula

Live Calc
42.195 km
常見目標:
計算 VDOT 跑力值 42.8
E 配速 (輕鬆/LSD)
有氧打底與恢復 (~65-74%)
5:32~6:08
M 配速 (馬拉松)
比賽巡航節奏 (~80%)
5:12
T 配速 (乳酸閾值)
節奏跑/抗乳酸門檻 (~88%)
4:50
I 配速 (間歇跑)
最大攝氧量刺激 (~98%)
4:26
R 配速 (衝刺跑)
神經協調與跑姿經濟性 (~108%)
4:06
Telegram 單行推播效果:
🎯 【VDOT 42.8 靶心配速】E 5:32~6:08 | M 5:12 | T 4:50 | I 4:26 | R 4:06

有氧解耦率 (Decoupling %)

Joe Friel 效率因子 (EF) 模型

Drift Lab
$$\text{Decoupling (\%)} = \frac{\text{EF}_1 - \text{EF}_2}{\text{EF}_1} \times 100\%$$
EF (效率因子) = 平均速度 (m/min) 或 功率 (W) ÷ 平均心率 (bpm)
前半程 (前 50% 距離)
171.4 m/min ≈ 5:50/km
後半程 (後 50% 距離)
171.4 m/min ≈ 5:50/km
解耦率計算值 2.94%
極度穩定 (Elite Aerobic Base)

心率漂移低於 3.0%,代表您的有氧底層基底非常扎實,在長時間配速下心血管系統幾乎無額外代償負荷!

ARCHITECTURE & TELEMETRY

端到端全自動化系統架構

以事件與排程驅動的現代化 Python 架構,分層解耦數據採集、運動生理運算、AI 提示工程與即時通訊推播。

AI Coach System Architecture
點擊放大查看 16:9 高清晰度全景圖
各公里走勢圖

各公里配速心率雙軸走勢圖

左 Y 軸時間倒序排列、右 Y 軸心率刻度,中央清晰標繪紫色半程解耦分割線 (Halfway Split)。

ACWR 量規圖

ACWR 負荷與體能監測圖

左側 7 天急性 vs 28 天慢性負荷對比柱狀圖,右側大尺寸狀態 Badge 與四級防受傷指針。

心率區間分佈

心率區間分佈 (Z1~Z5)

科技風甜甜圈圖標示總時間,右側垂直排版各心率區間耗時與百分比,刺激能量系統一目了然。

ZERO-COST DEPLOYMENT

只需 3 個步驟,5 分鐘搞定全自動排程

完全不需要租用雲端主機(VPS),不需要安裝任何軟體!直接在 GitHub 上 Fork 即可終身免費運行。

1

Fork 儲存庫

前往本專案的 GitHub 頁面,點擊右上角的 Fork 按鈕,將代碼完整複製至您自己的 GitHub 帳號底下。

立即前往 Fork 專案
2

設定 5 大必要 Secrets

在您的倉庫進入 Settings → Secrets and variables → Actions,填入以下 5 項安全金鑰:

GARMIN_EMAILGarmin 帳號
GARMIN_PWDGarmin 密碼
TG_TOKENBotFather Token
TG_CHAT_ID你的 Telegram ID
GEMINI_API_KEYGoogle AI Studio
金鑰受 GitHub 銀行級加密保護
3

啟用 Actions 自動排程

點擊倉庫上方的 Actions 分頁,啟用工作流。每天早上 06:00 (UTC 22:00) 即會自動執行並推播!您也可以隨時點選 Run workflow 立即手動測試。

內建 Cleanup 工作流,可一鍵清空歷史紀錄!

選填:個人化跑者設定 (GitHub Secrets)

可自訂 RUNNER_NAME、RUNNER_PB (如 3:45)、RUNNER_BIRTH_YEAR 與 ZONE2_MAX_HR,打造專屬您的 AI 課表。

查看完整文件 →
FREQUENTLY ASKED QUESTIONS

常見問題解答

關於安全性、成本、API 與排程的所有疑問。

真的完全不需要支付任何費用嗎?

是的,100% 免費!GitHub Actions 每月提供 2,000 分鐘的免費 CI/CD 執行時間(本程式每日僅需跑 30~50 秒,若為公開倉庫更是無限執行);Google Gemini API 亦提供免費額度(每日足夠使用數百次);Open-Meteo 天氣查詢無需金鑰完全開源免費。

我的 Garmin 帳號密碼安全嗎?

非常安全。所有帳號密碼都是儲存在您個人私有的 GitHub Repository Secrets 中,經由 GitHub 伺服器進行非對稱非對稱加密(Asymmetric Encryption)。程式碼為 100% 開源純 Python,直接從 GitHub 虛擬機連線至 Garmin 官方,絕不經過任何第三方中繼伺服器。

如果我今天休息沒有跑步,系統還會發送日報嗎?

會的!系統內建 26 小時判定機制。若最近沒有新運動,系統會自動轉發「今日休整與超補償日報」,統計您近 7 筆的累積跑量與負荷,由 AI 教練提供滾筒伸展、電解質修復處方與下次重啟課表建議,絕不重複發送舊活動,維持每日清晨開立當日指引的儀式感。

我可以更改每日推播的時間嗎?

可以。只需編輯倉庫中的 .github/workflows/daily_task.yml 檔案,修改裡面的 cron 表達式即可(預設為 UTC 19:55,即台灣時間清晨約 03:55 ~ 04:00 送達,讓跑者一早起床即可掌握當晚課表與全日飲食補給規劃;注意 GitHub 採用 UTC 時間,台灣時間需減去 8 小時)。