系統概述
Solar Monitor 是 3Q 為自家機房(綠能太陽能 + 儲能)開發的監控平台,從 2025 年 8 月持續迭代至今。整套系統跑在 Docker 容器、不依賴任何雲端服務、所有資料留在本機。
五個主要功能頁
IoT 整合層 — 跟一切設備說話
平台的核心不是「太陽能」三個字,是多協定統一接入的能力。現有部署整合了 4 個來源的數據:
時序資料 pipeline
設備 (Modbus / API / TUYA)
↓ 30 秒輪詢
Python Collector
↓ 資料驗證 + 單位轉換
MySQL (時序表)
↓ REST / WebSocket
Next.js Frontend (React)
↓ 即時推播
瀏覽器 / 手機 / 平板即時能量流向圖
儀表板用 SVG 畫出能量在系統內流動的方向—— 太陽能 → 電池 / 直接給負載、電池 ↔ 逆變器、市電 ↔ 1F+2F 電表、負載分布。線條動態箭頭 + 顏色反映實際流向。

數據點重點
- 動態限流 200A — BMS 根據單體電壓 / 溫度即時調整最大充電電流(已調整 5 次)
- SOC 55% × 474AH — 庫倫計數 + OCV 查表雙重校正,不會像市售逆變器內建 SOC 飄移
- 1F ¥2.26 / 2F ¥1.99 — 兩個迴路獨立計費,累積電費同步顯示
- 逆變器 0W — 純太陽能 + 電池供電中,市電 standby
歷史趨勢 + 太陽能預報
30 秒一筆儲存到 MySQL,提供任意時間區間查詢。6 條時序圖同步顯示,讓你看「電池電壓掉的時候 PV 在做什麼、電網有沒有接力」這種跨設備關聯。

右下角的未來 72 小時太陽能發電預報接 Open-Meteo(免費、免金鑰),每日更新 5 次;再用一年多的歷史資料做月/時天花板修正,每晚比對「預測 vs 實際」滾動校正係數——預報越用越準。預報資料餵進規劃引擎,讓「明天會晴 / 會陰」直接影響今天該不該深度放電。
BMS Cell 級監控 — 看到每一顆電池
市售 BMS 軟體只告訴你「整組電池 OK / 不 OK」。我們做的是每顆 cell 的即時電壓 + 溫度可視化—— 3 組電池 × 16 cell = 48 顆 cell同時呈現。

為什麼 cell 級監控重要
- 異常單體早期發現 — 一顆 cell 電壓比平均高 50mV 持續 1 小時 = 即將老化
- 平衡狀態可視 — 看出哪一顆需要 active balance、被動平衡夠不夠
- 過充 / 過放保護校準 — 不是 BMS 觸發了才知道,是看「最大單體 3.303V」就提前限流
- 溫度梯度 — 電池中間溫度比邊緣高 5°C?散熱有問題
近期進展(2026 Q2)
- BMS 前端控制卡片上線 — 把電池充放電控制與二級保護參數做進前端介面,現場直接操作,不用再進設定檔。
- 電池容量重新校準 — 依實際量測把容量基準校到 885 AH,並以「切換市電的時間點」為基準重設 SOC 起算零點,讓 SOC 估算貼近真實物理狀態。
- 充放電效率係數修正 — 修正效率補償係數後以 Docker 重建固化設定,避免「資料看起來正常、實際卻偏差」的隱性誤差累積。
- 新一代逆變器協議相容 — 盤點 SRNE V2.6.1 的 Modbus 暫存器位址變更,規劃硬體抽象層更新,確保新舊設備平滑切換、監控資料不中斷。
- 夏月費率自動切換 — 確認季節電價在新週期自動套用、無需人工介入,系統自治再進一步。
- 國定假日判斷改用官方公告 — 時間電價的假日認定改吃官方行事曆,補假與彈性放假都算對,避免尖離峰誤判造成電費估算失準。
- 發電預估演算法校正 — 依實測發電曲線修正預估模型,讓「明日可用電量」的推估更貼近真實。
- 擴容規劃中 — 正在規劃新增一組約 5 kWp 陣列與對應的控制器協調邏輯,驗證同一套監控架構在容量成長後的延展性。
系統控制 — 不只看,還能控
看數據是 SCADA 的基本,能下指令才是 EMS(Energy Management System)。系統控制頁的所有按鈕都能透過 Modbus 寫回逆變器:

關鍵控制能力
- 排程模式切換 — 「9:00 切 PV 優先、18:00 切電池優先、22:00 切市電優先」這種時段設定
- 動態充電限流 — 手動或 AI 自動,避免單體過充
- 電力管理 — 達到 SOC 上限 / 下限自動觸發動作
- 控制歷史 — 每一次「誰、什麼時候、改了什麼」都記入 action log(稽核必備)
- BMS 二級保護 — 即使主 BMS 失效,平台層也有 cell 電壓 / 溫度警戒
AI 簡報 + 48h 純 Python 雙引擎
能源規劃需要看「明天天氣、現在電池 SOC、電價時段、過去 24 小時負載趨勢、發電預報」一堆變數。我們做了兩條獨立決策路徑:
把所有數據塞給 Claude,請它寫一段給人類看的 100-200 字簡報 + 行動建議。適合早晚兩次決策,內容是「凌晨逆變到 127AH, PV 升回 349AH 連續安全,明日 PV 足,午前可放心 ...」這種人話。
暴力枚舉未來 48 小時的所有「PV 優先 / 電池優先 / 市電優先」切換組合,算 expected cost + 違反 SOC 安全的次數,挑最便宜的。不依賴 LLM,網路斷也能跑。

早期版本只有 AI 簡報。但客戶反映 — 「沒網路怎麼辦?」「Claude API 改價怎麼辦?」「Anthropic 哪天倒了怎麼辦?」
所以我們加了純 Python 引擎當備援 + 比對基準。實際上很多情況純 Python 跟 Claude 結果差不多 — Claude 的價值是「寫成人話讓你信」,不是算得比較準。
同架構應用:工業自動化監控
Solar Monitor 真正的價值不在「監控太陽能」,而是把一個工業現場該有的監控元件做齊了 — 抽掉太陽能領域知識,剩下的就是一個可以接任何設備的監控平台骨幹。
同架構已驗證 / 規劃中的應用場景
傳統 SCADA(Wonderware / iFix / WinCC / GE Cimplicity)一套 NT$50 萬起跳、按 tag 數收費、每年 20% 維護費。中小企業用得到的功能不到 10%,剩下 90% 是給大型發電廠 / 化工廠的複雜邏輯。
我們這套 Open Source stack + AI 整合,單台部署成本不到 NT$3 萬,功能涵蓋 80% 中小企業真實需求,剩下 20% 客製化 1-4 週做完。
技術棧 + 部署
軟體層(全 Open Source)
- 前端:Next.js 14 + React 18 + TypeScript + TailwindCSS + shadcn/ui
- 後端:Python 3.11 + Flask + Flask-SocketIO + APScheduler
- Modbus:PyModbusTCP(TCP)+ pymodbus(RTU over RS-485)
- 資料庫:MySQL 8(30s 採樣 → 多年歷史)
- AI:Anthropic Claude API(claude-sonnet / haiku 可選)
- 部署:Docker Compose(solar-frontend / solar-service / solar-mysql 三容器)
硬體層
- 主機:Mini PC(NUC 等)+ 8GB RAM + 256GB SSD,~NT$15,000
- Modbus 介面:USB-to-RS485 轉換器(RTU),逆變器直接走 TCP
- 網路:RJ45 接到內網 switch,建議獨立 VLAN 隔離工業設備
整套部署成本(不含設備本身)
| 項目 | 金額 (NT$) |
|---|---|
| Mini PC + 配件 | 15,000 |
| 軟體部署 + IoT 設備整合(1-3 種) | 80,000 - 200,000 |
| BMS / Modbus 客製 driver(若需要) | 30,000 - 100,000 / 種 |
| AI 規劃引擎客製(行業特化) | 50,000 - 150,000 |
| 月度維護(含 Claude API) | 5,000 - 15,000 / 月 |
※ 跟 Wonderware / iFix 一套 50 萬起跳 + 每年 20% 維護費比,整體 TCO 降低 60-80%。
最近進展
自家機房 12 kWp 光電 + 三組並聯儲能 24/7 運轉,這半年系統從「看得到」走到「算得出省多少、自己決定怎麼切」:
- 切換指令「寫入後回讀驗證」+ 失敗歷史比對2026 年 8 月 — 近 20 天 27 次成功切換的電壓/電量/負載條件對照,異常能用資料回溯而不是猜。
- 明日切市電時機決策表2026 年 8 月 — 把「切太早浪費光電、切太晚充不飽」攤成表:各時點的中位/保守情境、隔日最低電量風險、推薦時點,以 48 小時總電費最低為依據。
- 省錢儀表板 + 30 日每日省錢柱狀圖2026 年 8 月 — 以「光電替代掉的市電度數 × 當時段真實費率」算今天/本月/今年/近 12 個月省下金額;同一面板列出啟用中的自動規則與上次執行時間。老闆一眼看到太陽能到底幫公司省了多少。
- 電量兩端錨點自動校準2026 年 7 月 — 切市電門檻電壓強制 0%、充飽電壓強制 100%,中間純庫倫計數;每次完整循環後自適應更新真實容量。電量顯示越用越準。
- 依 BMS 單體電壓的動態充電限流(定案)2026 年 7 月 — 每 30 秒讀 48 顆電芯,最高單體 3.60V 允許 180A → 3.95V 降到 0A,含單組過流守門、告警反應、反灌保護、抖動保護。電池不會因一顆電芯衝高而跳保護或減壽。
- 電池展望:一句話回答「今晚電池撐得過去嗎」2026 年 7 月 — 光電預報 − 負載預測積分,即時算出預計何時充飽/用盡/明早剩多少;電池滿時改用近 3 小時峰值估真實發電能力。
- 發電預報升級:歷史基線校正 + 準確度追蹤2026 年 6 月 — 每日 5 次抓 72 小時預報,用一年多歷史做月/時天花板修正,每晚比對「預測 vs 實際」滾動校正。預報越用越準,是所有排程與省錢建議的基礎。
- 雙電表實體切換自動化 + 三組 BMS 遠端控制2026 年 5 月 — 依時段自動挑便宜的電表(逆變運行中才准切,避免負載瞬斷);遠端一鍵校時三組 BMS、開關充放電(含防誤觸確認)。
常見問題
我們不是太陽能廠,可以用這個系統嗎?▼
可以。系統本質是「IoT + 時序資料 + AI 規劃」的工業監控平台,太陽能只是其中一個應用。同一架構可用在工廠產線監控(PLC / Modbus)、機房能源監控、智慧建築 BMS、農業環控等。我們的賣點不是「太陽能監控套件」,是「能整合各種設備的監控平台」。
支援哪些品牌的逆變器 / 儲能設備?▼
目前實測過 SRNE(深圳碩日)系列儲能逆變器、SPI UP 系列美規裂相逆變器。其他支援 Modbus TCP / Modbus RTU 協定的設備都能接,包含 Voltronic、Growatt、Goodwe、Solis 等多家品牌。沒見過的設備我們會先做 protocol reverse + 1-2 週客製。
AI 規劃引擎一個月成本多少?▼
Claude API 平均每筆規劃 $0.16 美金。我們現有系統累積 112 筆,平均每天 1-2 次 AI 簡報,月成本 $5-10 美金(約 NT$160-320)。要省錢可以全切到「48h 純 Python 暴力枚舉」引擎(< 1 秒算完、零 API 成本),結果差不多。
可以離線運作嗎?網路斷了會怎樣?▼
可以。Modbus 採集 + MySQL 儲存 + 本機 Web UI 全部跑在 Docker 容器內,**完全本機**。網路斷只會影響:1) Claude AI 簡報(會降級成純 Python 引擎)、2) 太陽能預報(會用最後一次預報延用)、3) 遠端訪問。其他即時監控、儲存、自動控制全部正常。
可以連政府的能源管理平台嗎?▼
可以。系統本身就是 REST + WebSocket 架構,加 connector 連台電 EMS / 經濟部能源局 ESS 平台 / 智慧電網試點都可以。我們也做過接 Modbus → MQTT 推到雲端 SCADA 的整合。
BMS 是自製的嗎?硬體要買嗎?▼
我們的版本配的是市售的 LiFePO4 BMS(含 RS485 通訊輸出)。BMS 硬體我們不賣,但會協助選型(DALY、JK、JBD、ANT 等都可整合)。軟體層的 Cell 級監控 dashboard 是自製的,市售 BMS 大多沒這麼直觀的 UI。
如果只想要「監控」不要「AI」可以嗎?▼
可以。AI 引擎是可選模組,關掉之後就是純監控 + 排程系統,跟 SCADA 一樣可靠。事實上很多工廠客戶第一階段就是這樣 — 先把所有設備數據抓進來看得到,再決定要不要加 AI 自動決策。
資料保留多久?▼
MySQL 預設保留全部歷史(30 秒一筆,10 年大約 100 GB,硬碟便宜)。如果要 long-term archival 我們會幫你加 PostgreSQL + TimescaleDB 做時序壓縮(節省 80% 空間)+ 自動 retention policy。
前端是手機優先還是桌面優先?▼
響應式設計,手機 / 平板 / 桌面都跑得動。實際操作上,「儀表板 + AI 簡報」適合手機隨時看;「歷史數據 + 系統控制」桌面比較方便(圖表大、表單多)。
我家裡 / 公司 / 工廠想評估,多久能出規劃書?▼
我們會先現場勘查一次(看設備牌、看網路、看現有 SCADA),1-2 週給規劃書 + 報價。實作期視設備數量,常見 4-12 週。
想做類似系統
如果你的工廠 / 機房 / 公司 / 多店家有以下情境,可以聊聊:
- 有多種設備想整合成一個 dashboard,但沒適合的市售方案(或太貴)
- 有現成 SCADA 但太老舊 / 太封閉 / 換廠商要鉅額授權費,想替換
- 想加AI 輔助決策但不知道從哪開始
- 是太陽能 / 儲能 / 充電樁業者,想要不綁逆變器品牌的監控軟體
我們會先到現場勘查(看設備、看網路、看現有系統),1-2 週給規劃書 + 報價,諮詢免費。