TeslaMate
💡 快速導航
TeslaMate 是我用來保存 Tesla 長期車輛資料的服務。官方 App 很適合看即時狀態,但它不是為了長期分析而設計;TeslaMate 的價值在於把行程、充電、電耗和狀態變化保留下來,讓我可以用資料回顧實際使用習慣。
這類服務和一般 Home Lab 工具不同,因為它保存的是高度個人化的行為資料。車輛資料會反映日常作息、通勤模式、常去地點、充電習慣,甚至可能推測住家與工作地點。因此公開筆記只適合記錄架構與維運原則,不適合展示真實 dashboard 或完整設定。
Important
這篇是公開筆記,所以不會記錄真實網域、內網位址、port、Tesla 帳號、token、encryption key、資料庫密碼、VIN、車牌、車名、住家/公司位置、GPS 座標、充電地點、行程截圖或 Grafana 圖表截圖。
🎯 我為什麼用它
官方 App 看的是當下,TeslaMate 看的是歷史
Tesla 官方 App 很適合回答「現在車在哪裡、電量多少、是否正在充電」。但我更想知道的是長期趨勢:
- 每月實際開了多少里程
- 通勤與長途行程的耗電差異
- 家用充電和外部充電的比例
- 不同天氣、速度和路線對電耗的影響
- 長期電池狀態是否有明顯變化
這些不是每天都要看,但累積半年、一年後很有價值。資料量一多,就能從「感覺好像很耗電」變成「哪些情境真的比較耗電」。
讓車輛資料留在自己的系統裡
我不希望車輛使用紀錄只存在於第三方平台。TeslaMate 讓我可以把資料保留在自己的資料庫裡,並用 Grafana 做長期分析。
但資料掌握在自己手上,也代表自己要負責:
- 服務更新
- token / session 狀態
- 資料庫備份
- Grafana dashboard 維護
- 隱私邊界與公開內容控管
🧱 在 Home Lab 裡的角色
TeslaMate 跑在 OMV 的 Docker 環境,屬於 App Layer。它不需要像 Immich 一樣貼近大量媒體資料,也不是 TrueNAS 的儲存層服務;它更像是一個長期資料收集與分析系統。
flowchart TD CAR[Tesla 車輛 / Tesla Cloud] --> TM[TeslaMate] TM --> DB[(Postgres Database)] TM --> MQTT[Mosquitto MQTT] TM --> API[TeslaMate API] DB --> GF[Grafana] USER[使用者 / 瀏覽器] --> NPM[Nginx Proxy Manager] NPM --> API NPM -. 視需求 .-> GF
部署摘要
| 項目 | 目前做法 |
|---|---|
| 部署位置 | OMV / Docker |
| 核心服務 | TeslaMate、Postgres、Grafana、Mosquitto、TeslaMate API |
| 資料庫 | Postgres 保存車輛歷史與設定狀態 |
| 視覺化 | Grafana 讀取資料庫並提供 dashboard |
| MQTT | Mosquitto 作為 TeslaMate stack 內部訊息通道 |
| 對外入口 | 由 nginx-proxy-manager 控制需要公開或反代的入口 |
Note
實際 compose、環境變數、掛載路徑、port、token 和 proxy host 設定都保留在私有設定裡。公開筆記只保留元件關係與維運重點。
關於 Mosquitto
目前 Mosquitto 是這個 stack 裡的內部元件,主要給 TeslaMate / API 相關流程使用。這種情境下,重點是不要把 MQTT broker 當成公開入口,也不要把它暴露給不需要的網路範圍。
📊 我實際會看的資料
TeslaMate 很容易讓人一開始被 dashboard 數量吸引,但真正有用的是能改善決策的資料。
常看的方向
| 類型 | 用途 |
|---|---|
| 行駛里程 | 了解每月用車量和長途比例 |
| 電耗 | 看通勤、天氣、速度與路線對效率的影響 |
| 充電紀錄 | 觀察家充和外部充電比例、充電時間與頻率 |
| 電池狀態 | 長期追蹤趨勢,不用單次數值過度解讀 |
| 休眠狀態 | 確認車輛是否能正常 sleep,避免不必要耗電 |
我不會公開展示的資料
- 單趟行程路線
- 常用停車點
- 充電站與時間規律
- 住家或公司附近的 geofence
- 原始地圖、座標或 dashboard 截圖
TeslaMate 的資料很適合自己回顧,但不適合原樣公開。就算只是截圖,也可能暴露行程模式或固定地點。
🔐 隱私與安全邊界
TeslaMate 需要和 Tesla 帳號 / API 流程互動,也會保存長期車輛遙測資料,所以安全邊界要比一般 dashboard 更嚴格。
公開筆記只記錄原則
| 面向 | 原則 |
|---|---|
| Tesla account | 不公開帳號、授權流程、token 或任何恢復資訊 |
| 車輛識別 | 不公開 VIN、車牌、車名或可識別車輛的細節 |
| 地點資料 | 不公開 GPS、geofence、住家、公司或常去地點 |
| Grafana | 不公開實際 dashboard 截圖或 query 細節 |
| API | 不公開 token、endpoint、header 或實際路由 |
入口保護思路
TeslaMate 本體、Grafana 和 API 的暴露面要分開思考:
- TeslaMate 管理介面不應隨意公開
- Grafana dashboard 即使只讀也可能洩漏位置與行程
- API 應該只開給明確需要的整合使用
- NPM 負責入口與 HTTPS,但不是唯一安全防線
Warning
車輛資料的敏感性不只在帳號密碼,也在「行為模式」。能看見長期位置和充電紀錄的人,可能推測日常作息。
💾 備份與還原
TeslaMate 的核心價值是長期歷史資料,所以備份重點在資料庫和設定狀態。
需要保護的內容
| 類型 | 說明 |
|---|---|
| Postgres 資料 | 行程、充電、狀態、位置、車輛 metadata |
| TeslaMate 設定 | 授權狀態、車輛設定、地點/geofence 設定 |
| Grafana 資料 | dashboard、資料來源、使用者設定 |
Compose / .env | 服務定義與必要環境變數,但必須私有保存 |
| 匯入/備份檔 | migration 或 restore 時使用的備份資料 |
還原後檢查
- Postgres 是否正常啟動
- TeslaMate 是否能連到資料庫
- 車輛是否恢復資料同步
- Grafana dashboard 是否能讀取資料
- Mosquitto 是否正常供 stack 內部使用
- TeslaMate API 是否仍能被需要的整合使用
- NPM 入口是否仍只暴露必要服務
備份文件要跟實際 stack 同步
我目前的 stack 包含 TeslaMate、Postgres、Grafana、Mosquitto 和 TeslaMate API。備份/還原筆記要跟著實際服務數量更新,避免災難恢復時照著舊文件漏掉元件。
📈 Grafana 與回顧習慣
TeslaMate 最有價值的地方不是 dashboard 很多,而是能定期回顧。
我會固定看的問題
- 最近一段時間的平均電耗是否改變
- 家充比例是否符合預期
- 長途行程的充電策略是否需要調整
- 車輛是否有異常耗電或無法 sleep 的情況
- 使用習慣是否因季節或路線改變而變化
如果只把資料收起來但從不看,它就只是另一個需要維護的資料庫。對我來說,TeslaMate 的價值來自「用資料調整行為」。
公開分享時的處理方式
如果未來要分享圖表,我會先做去識別化:
- 移除日期與時間細節
- 避免地圖與地點標籤
- 只保留聚合後的趨勢
- 不放原始 dashboard 截圖
- 不顯示車輛名稱或帳號資訊
⚠️ 我踩過的坑
只收集資料,不回顧就沒有決策價值
TeslaMate 很容易變成「資料都有,但沒有被使用」。如果沒有固定回顧,久了只會增加維護成本,不會真的改善用車習慣。
Dashboard 截圖比想像中敏感
Grafana 圖看起來只是漂亮的統計,但常常包含時間、地點、路線、充電站和車輛狀態。這些資訊單獨看可能還好,組合起來就能推測很多私人習慣。
更新前一定要先確認備份
TeslaMate 依賴資料庫,Grafana 也有自己的持久化資料。更新前如果只看 app container,可能忽略資料庫 migration、dashboard 設定或 API 整合相容性。
⬆️ 升級與維運原則
TeslaMate stack 有多個元件,升級時要當成一組服務看,而不是只更新單一 container。
升級前
- 確認 Postgres 備份可用
- 確認 Grafana 資料有備份
- 保留 compose 和
.env的私有備份 - 閱讀 TeslaMate、Grafana、Postgres 相關變更
- 避免同時大改 NPM、資料庫和 TeslaMate
升級後
- TeslaMate Web UI 是否正常
- 車輛資料是否繼續更新
- Grafana dashboard 是否正常顯示
- API 整合是否仍可用
- Mosquitto 是否正常
- 備份任務是否仍然成功
日常巡檢
- 車輛最後同步時間是否合理
- 車輛是否能正常 sleep
- 資料庫容量是否持續成長但可控
- Grafana dashboard 是否仍能讀取資料
- 對外入口是否仍只開必要服務
- 備份檔是否能完成還原演練
結論
TeslaMate 是我 Home Lab 裡很有生活感的資料服務。它讓車輛使用從「看當下狀態」變成「理解長期趨勢」,可以幫助我回顧里程、電耗、充電習慣和車輛休眠狀態。
但它也是高隱私資料服務。公開分享時,我只記錄架構、備份範圍和維運原則,不公開任何能還原車輛身份、行程模式、地點或帳號授權的資訊。
延伸閱讀:Home Lab 總覽、OpenMediaVault、Nginx Proxy Manager、Home Assistant