三本綠能電廠自動Line回報機器人

2022/06/07

daily-repot.png

 

專案簡介

三本綠能是一間專門開發綠能產業的公司

2021年底開始投資第一間自購電廠

電廠建置完成後有專門的系統軟體廠商配合

該軟體可查看每日電廠的發電量、轉換率、機電設定運轉狀態

並提供APP可在手機上查看

 

雖然上述看起來都非常方便

但有時候台電會無預警停電

這種自購電廠在台電停電的時候

雖然太陽能雖然可以繼續正常發電但無法送電至台電

也就是停電期間發的電都無法成為收入

 

一開始三本綠能每日都會有人員在白天不定時查看APP

確認電廠運轉正常是否有正常對台電送電

但是有時後人員如果因為工作較忙

都多少會忘記查看

而且即使維運APP有機電設備異常推播通知

但現代人手機太多APP

推播很容易被洗掉或沒注意到

初期電廠運行期間

曾因為台電停電結束復電後

台電方沒確認送電機制能夠正常運作導致無法送電

三本綠能那段期間也因工程繁忙未即時發現台電復電後未正常送電

在發現後已經是數天後

期間損失了好幾天的電廠收入

 

因此我們透過此專案利用系統排程配合puppeteer作為爬蟲Line Notify API進行每日3次定時通知

並在每月的第一天取得上個月的每日發電量、收入等資料

透過Google Drive API存為Excel自動上傳到Google Drive保存

另外也透過Line Notify API在Line群組上回報上個月份的總收入、總發電量

解決上述問題

 

功能實做細節

透過oclif這個Node.js CLI framework配合Puppeteer來實做所有功能

 

每日定時通知

在每日的早上8點、中午12點、晚上8點透過Puppeteer開啟電廠維運後台

並取得相關發電資訊、及截圖

透過Line Notify API傳送到指定群組

 

使用這三個時間點的原因為

  1. 一般日出為5-6點,早上8點取資料發通知可以看到些微的發電量,若8點的時候看到發電量為0或過低代表電廠異常,或是台電非預期停電,這時候內部人員若發現可即時進行相關處置,或是可立即致電台電尋求協助復電,減少發電收益損失。
  2. 中午一般為日照最強烈的時候,因此12點取資料發通知可知早上8-12點這段時間是否有異常。
  3. 一般日落時間為6-7點,因此在晚上8點的時候電廠停止運轉,這時候發通知算是每日的發電資訊、收益回報。

 

每月回報上個月份狀況並建立Excel至Google Drive

除了每日回報電廠資訊外

在每個月的一號此服務也會提供上個月報表

主要實做為透過puppeteer開啟網頁後自動設定上個月的時間區間做篩選

並把該月的每日電廠資訊留存下來

另外也計算總月收入、總發電量、平均效能等計算過的資訊

 

最後透過將資料寫入Excel檔案

再透過Goolge Drive API將Excel上傳至指定Google Drive目錄

當然

也有一些計算整合資訊會發送到Line群組中

 

Demo

以下為Demo

因此影片中的Puppeteerheadless mode為disabled狀態

 

 

 

完工感想

在這個專案經過測試、穩定使用後

已經可以每日、每月都正常回報

三本綠能Line維運群組內的人員只要每天稍微瞄一下Line通知

一有問題即可立即發現

 

也讓三本綠能的專業技師能夠將時間專注在工程專業

不需要將時間浪費在不定時查看APP這種瑣碎的小事情上

這種簡單重複性高不需專業的事情交給Bot處理即可

 

2022/11更新(容器化)

原本這個服務與我的Web Server(EC2)放在一起

在2022/11我已經將此服務容器化

並佈署在GCP Cloud Run上

透過Cloud Scheduler排程觸發

大大降低我的Web Server負載

畢竟每次要執行爬蟲的時候都需要開Chrome headless

損耗的資源滿大的

 

容器化遷移至Cloud Run之後

成本降低許多

我的Web Server再也不需要為了因應每天幾分鐘的爬蟲通知來增加Server成本