PTT推薦

[軟體] 改寫了一個 MAC 電池優化程式

看板MAC標題[軟體] 改寫了一個 MAC 電池優化程式作者
serenemind
(沉)
時間推噓69 推:69 噓:0 →:65

(更新)
我做了一些修改來支援關機時維持上限,如果你已經有下載使用要更新的話
只要在 Terminal 下執行
battery update 就可以了

=========================================

原作者的版本 https://tinyurl.com/32ec4mzd

我改寫的版本 https://tinyurl.com/yc4bvyaj


這程式的功能跟 AlDente 差不多,就是設定充電上限,還有電池校正,

目的是延長電池壽命,適合筆電長時間插電的情況。


為什麼要改寫呢?因為七月剛買的 MBPR M1 MAX 整新機,用他的程式做了兩次校正,

健康度直接從100%掉到96%。看原作者已經沒在回應問題,所以只好自己來。


研究後發現的確有一些詭異的地方,改掉後用自己的版本做校正,第一次回復到 98%,第

二次竟然回復到 100%驚喜!!!

就這樣誤打誤撞的幫電池打通了任督二脈,完美回春!!!


後來想想,原版的功能太陽春,既然上手了,乾脆把功能擴充,希望完全取代

AlDente PRO 跟 coconutBattery。

努力了幾天,開發到現在跟原版比已經不可同日而語了,新增的功能包括

1. 原版只支援 Apple 晶片的筆電,我改成也能支援 Intel 晶片,
主要是為了我的 MBPR 2014。

2. 增加 sail mode,這樣就不需要 AlDante PRO 了

3. 增加定時校正,設定每個月哪幾天作校正,或者也可設定固定星期幾,
然後幾個星期做一次校正

4. 電池校正時如果筆電上蓋闔上了,就發出提醒通知。上蓋一被打開就自動開始校正, 超過24小時還沒打開就跳過本次校正。這主要是因為校正過程會放電,沒打開會
導致筆電進入睡眠。

5. 原版筆電睡眠或關機就無法限制充電,我改成睡眠跟關機時仍然有用,這需要用到
Apple 所提供的功能。可惜聽說從 Sequoia 開始,Apple 把這個功能拿掉了,
網路上看到討論區哀鴻遍野。所以若是已經更新到 Sequoia的話,只有開機
才能運作,這是 Apple 的決定,沒辦法。

6. 記錄每日電池容量、健康度、溫度、電壓、循環次數。每天主動發出一次通知
提供這些資訊,這樣就不需要打開 coconutBattery了。

安裝跟使用都很容易,Terminal 下打一行指令就能安裝完成,完成後設定一次以後

就可以無腦使用

- battery maintain 45 40
表示超過 45% 停止充電,低於 40% 開始充電。執行時會跳出對話框
問你要不要立刻放電到45%,可以自己決定,10秒內沒決定,我就幫你決定了。

- battery calibrate
做電池校正,先放電到 15%,接著充電到 100%,等一小時後放電到指定的上限

- battery schedule day 3 18 hour 9 minute 30
表示每月3, 18這兩天早上9:30 做校正

- battery schedule weekday 2 week_period 4 hour 9 minute 30
表示每 4 個星期在星期二早上 9:30 做校正

- battery maintain stop
停止這個程式,這樣上限就消失,會充電到100%

其他使用細節就不在這邊贅述,可以參考我上面的連結。

這樣功能應該算齊全了,分享給大家,有興趣的可以安裝試試看。

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.239.246 (臺灣)
PTT 網址
※ 編輯: serenemind (220.135.239.246 臺灣), 10/27/2024 15:31:58

Ufunin10/27 15:38先幫推,晚點裝

EpicWang10/27 15:59

babylon29710/27 16:10我二月跟人買的M1Pro先後用AlDente和bclm

babylon29710/27 16:10目前還是100% 不過升OS15後bclm不能用了

babylon29710/27 16:10就用回AlDente了 蠻樂見有人做類似開發的

babylon29710/27 16:10晚點也來試試~ 推

ho83leo10/27 16:17

nippleman10/27 16:40

yizang10/27 17:21

Zyar10/27 17:45神人幫推

saedn10/27 18:54好厲害!希望我會用!回家研究看看

sanyoHsu10/27 18:57

twlosser10/27 19:55推一個不用開GUI

Two410/27 20:19推~

lutein10/27 21:05push

max856810/27 22:15

itsdelovely10/27 22:22

jcwang10/27 23:47推一個

beamen10/28 00:05

Ice910/28 00:56

jacky8100510/28 00:57

BaWanYi10/28 01:00推用心

undft08210/28 01:10先推

x12398778910/28 01:33太神了

gary844210/28 01:57功能真多 好強

KINGWAP10/28 04:19想請教一下 電池校正的目的為何?

參考這兩篇文章,我看過最詳細的介紹

如何延長電池壽命?

https://tinyurl.com/y2ny3kc5

智慧電池如何校正?

https://tinyurl.com/bdzmfrsk

簡單說如果沒做校正,顯示的電池健康度是不準確的。 下面這張圖顯示高電壓下循環 200 次健康度剩下一半

https://i.imgur.com/mh6gLGZ.jpg

這張圖顯示充放電深度對健康度的影響,100%很傷

https://i.imgur.com/zAwlD8u.jpg

就算沒有長期插電,限制充電在 80% 也比較好。高溫、高電壓這兩者是電池殺手,當充 到 100% 時電池就處於高壓狀態,接近13V,設定電池上限到 60% 約 11.6V。有些人說老 子有錢電池衰退換一個就好了,這是沒錯,但是我更在意的是電池膨脹鼓包跟危險。 再補充一點,有些人說蘋果自己就有電池最佳化了,不用搞這些有的沒的 我之前也是這樣想,相信蘋果,結果 ...

https://i.imgur.com/iHZrq6C.jpg

因為當 Home Assistant 伺服器用,長期插電只循環了十次,有一天心血來潮做個校正 健康度直接從 100% 掉到 30%。這也是我為什麼買了新筆電後這麼在意電池維護的原因。

despised10/28 07:31

boyea5510/28 08:51不好意思,可以請問要怎麼安裝嗎?謝謝

在 Terminal 下執行 curl -s

https://raw.githubusercontent.com/js4jiang5/BatteryOptimizer_for_MAC/main/setup.sh

| bash 不過你最好還是去上面的連結看一下完整的簡介,才能正確的使用吧

jerryho010610/28 09:40

gn0188110610/28 09:44厲害 不過我只有mac mini

eltonchung10/28 10:11推 還是希望能有GUI介面可以瀏覽目前狀態

battery status

這個指令就能知道目前狀態了 順便補充一下跟 AlDente 還有 CoconutBattery 比的優缺點 優點 1. 佔用的記憶體是 AlDente 的 1/20,CoconutBattery 的 1/30,非常輕便 2. 功能豐富,除非你花錢買 AlDente PRO 3. 不佔 menu bar 的位置 4. 每日主動推播狀態,不用打開 缺點 1. 要更改狀態或關掉,必須打開 Terminal 下指令,久沒用的話指令會忘記還要查 2. 無圖形介面

alex78031210/28 10:41有神快拜!

river80011110/28 11:06

Faing10/28 11:41很方便使用,謝謝分享,推一下

bookmusic10/28 12:24我有買Aldente Pro應該就不用下載了對吧?XD 蘋果官方

bookmusic10/28 12:24的電佳最佳化都嘛不準

ipis10/28 12:33推一個

guanting88610/28 12:51好奇校正的原理是什麼 為什麼會認為是正確的?

alfahsu10/28 14:16推 老MBPR路過

keyword198310/28 14:35推 厲害

rickieyang10/28 14:39進maintain mode 不充電後,calibrate 會有 error

rickieyang10/28 14:39說沒插充電器

pent10/28 15:24感謝

pent10/28 15:24祝好人 上廁所永遠有衛生紙

serenemind10/28 15:32@rickieyang,你可以在我的 Github 上提出 issue

serenemind10/28 15:32問題討論在那邊比較恰當

dreambegins10/28 15:36推!

serenemind10/28 16:17@rickieyang 你筆電上蓋應該沒打開對吧

ksx06410/28 16:26

PaganTsai10/28 16:32先推已下再研究怎用 m1pro電池 88%了 care到26/9/26

heiwa10/28 16:36

Birdy10/28 16:56先推再說

Miyanishi2510/28 17:23推薦這篇文章

huabandd10/28 17:23推一個

rickieyang10/28 17:28筆電開著, 外接螢幕鍵盤.

rickieyang10/28 17:28下 maintain off 後就可以 calibrate 了

babylon29710/28 17:56今天心血來潮用AlDente做了校正 健康度101%了笑死

babylon29710/28 18:29對了請教一下 校正時沒開蓋的提醒是怎麼提醒

evolgnitiaw10/28 18:40神人推一個!

serenemind10/28 18:43就 macOS 的通知功能啊,會出現在右上角

serenemind10/28 18:43https://i.imgur.com/5n88eQ7.jpg

idletime10/28 18:51運用自己的專業去造福大家,好人!

babylon29710/28 18:54我看了英文說明似乎還需要開啟睡眠時通知

babylon29710/28 18:54這可能會比較耗電 此外沒開蓋也看不到

babylon29710/28 18:54可能要開通知音效XD

macings10/28 19:53

weimr10/28 21:07

gary844210/28 23:11占用少記憶體是一大優點

gary844210/28 23:12我有買Pro版確確實占用不少 (還好捏上去升級大ram

gary844210/28 23:12買丐版MACBOOK 記憶體容易不夠用

wwwsamyoui1210/28 23:25推一個 感謝開源

moanchuang10/29 00:28感謝

j2635614710/29 00:44推!

rayray041010/29 05:19推open source

rayray041010/29 05:24想問一下關於第5點

rayray041010/29 05:24已經更新至sequoia表示蓋上筆電/關機持續充電就沒辦

rayray041010/29 05:24法限制充電上限?那只要蓋上筆電/關機不要充電就好了?

rayray041010/29 05:52另一個情況是接上電源外接螢幕, 筆電蓋起來使用

eit10/29 08:02

serenemind10/29 09:21Sequoia 是關機跟睡眠不行,跟螢幕有沒有蓋上無關

serenemind10/29 09:21除非你一蓋上螢幕就啟動睡眠

kobe08310/29 09:46https://i.imgur.com/3Xa6PA5.jpeg

kobe08310/29 09:48請問我剛剛安裝中有出現80%提示選項,她就自動默認安裝!

kobe08310/29 09:48我這樣是完成的意思嗎?謝謝大家

你應該是從來沒有安裝過 xcode,所以當要安裝 brew 時自動去尋找安裝 xcode 吧。 他應該會繼續安裝,你就依照他的指示進行,過程可能會再要求你輸入密碼。 不過,就算 xcode 沒有安裝成功,也不影響 BatteryOptimzer 的運作,會出現 80% 的提示,表示目前已經限定在 80%了,你可以自己更改成你要的上限,或是進行校正。

kobe08310/29 10:12感謝解答

kobe08310/29 10:13https://i.imgur.com/OEjStkc.jpeg好像快完成

babylon29710/29 12:14只要關機後不插電,那個關機後的上限我認為根本沒差

babylon29710/29 12:14,除非你關機前留下很低的電量,關機後又會不正常掉

babylon29710/29 12:14電,所以我升Sequoia了

(更新)

我做了一些修改來支援關機時維持上限,如果你已經有下載使用要更新的話 只要在 Terminal 下執行

battery update

就可以了

b6mh1984122710/29 16:18插著變壓器的話,好像還是一直在充電,2016MBP

b6mh1984122710/29 16:20用外接dongle供電

你的設定是什麼,右上角的電池 icon 顯示什麼狀態,可以提供畫面嗎? 我的 2014 都可以,你2016一定沒問題的。而且控制是從內部,跟外面怎們充電無關。

rayray041010/29 17:01再問一個 安裝後是不是需要關掉macbook內建電池優化

rayray041010/29 17:01謝謝

是的,關掉比較好

※ 編輯: serenemind (220.135.239.246 臺灣), 10/29/2024 19:10:43 ※ 編輯: serenemind (220.135.239.246 臺灣), 10/29/2024 19:12:22

kobe08310/29 21:03請問安裝後插電然後可以邊使用電腦嗎?

kobe08310/29 21:03還是建議關機充電。

kobe08310/29 21:03謝謝

當然可以邊使用電腦,不要關機充電。

onlywe10/29 22:06感謝開源分享

onlywe10/29 22:06安裝後用指令查看狀態,健康度跟Mac內建提供的數值不一樣

onlywe10/29 22:06另外有一個問題,個人習慣外接螢幕闔上mac工作(螢幕供電

onlywe10/29 22:06這樣使用校正時,還需要將mac打開嗎?

校正時把螢幕打開,這是為了普羅大眾的設計,有些人可以蓋住螢幕仍然不會睡眠 但是一般人不會這麼做,蓋上螢幕一改成電池供電就會進入睡眠。總之要維持正常 的校正,這段時間就是不能睡眠,所以養成良好的習慣,校正時就把螢幕打開。 習慣闔上mac工作,一個月打開一次讓它透透氣也不錯。

kobe08310/29 22:11https://i.imgur.com/TVf1hT8.jpeg

kobe08310/29 22:13請問我插電使用只會充電到80%就不會充電了。

kobe08310/29 22:13然後合蓋關機她就又自動充電到100%。

kobe08310/29 22:13這樣可以吧?

kobe08310/29 22:13謝謝

照理說我目前已經設計成關機後上限仍然有作用,除非你的作業系統已經更新到 Sequoia了

Two410/29 22:43試了幾次校正都顯示 Calibration Error: Discharge to 15%

Two410/29 22:43fail。不曉得原因

是有放電但放不到15%,還是連放電都沒放?

kobe08310/29 23:35有!我今天升級15.1系統,這樣可以吧?感謝

autopass10/29 23:39me too, 怎樣算校正完成、成功?

校正完成會回到你設定的上限,也會發出通知說 Calibration completed。 我近期會再加入兩個功能 1. 有更新時主動通知,使用者看到後就知道有新版的,自行決定要不要更新 2. 根據 macOS 的語系決定通知用的語言,當然只會有台灣的繁體中文跟英文這兩種 我想許多人還是偏好看中文

superstu10/30 00:06推爆

Two410/30 00:12有放電到 15%。會先顯示 Discharging completed at 15%,下

Two410/30 00:12一行就跳上面的 Error,然後就回復 Battery maintain。機型

Two410/30 00:12是 2015 MPBR 13

這有點匪夷所思,等於放電完成要執行下一步時的一剎那間被中斷了,機率也太低。 你可以再試一次看是否還是會發生,我下一版會針對這個情況做調整。

b6mh1984122710/30 08:142016MBP插著沒有辦法discharge

b6mh1984122710/30 08:17https://i.imgur.com/LGIeGZB.jpeg

蘋果在電池 100% 的時候不允許放電,就算用 AlDente 也一樣,所以你要先放個電 讓他低於 100%,可以執行下面的指令先放到 80%

battery discharge 80

你的電池現在健康度 104% 應該是新買的,好好維護可以用很久

jimmy111211110/30 08:42推推

Newtype10/30 09:22感謝分享!

b6mh1984122710/30 09:35感謝大大,我測試看看,電池淘寶回來DIY的

rickieyang10/30 10:53跟 Two4 一樣

rickieyang10/30 10:5310/29/24-09:36:36 - Discharging completed at 15%

rickieyang10/30 10:5410/29/24-09:36:36 - Calibration Error: Discharge t

rickieyang10/30 10:54o 15% fail

rickieyang10/30 10:5410/29/24-09:36:36 - Battery maintain is already ru

rickieyang10/30 10:54nning

rickieyang10/30 10:54然後就跳出了

rickieyang10/30 10:56但明明 battery calibrate 前有先 maintain stop 了

目前為止有三個人碰到這個問題,我研究一下 對了,@Two4 @rickieyang 你們兩位有執行過 battery update 更新到最新版嗎? 如果沒有的話請先更新,因為我在新版有修掉一些問題,做了一些穩定度的改善 搞不好跟你們碰到的問題相關

humor091310/30 14:15大神推一個 感謝分享

babylon29710/30 15:00我今天update後看battery status發現電量

babylon29710/30 15:00應為80% 而log顯示76%與上面某版友一致

babylon29710/30 15:00會是因為我開了AlDente的硬體電池電量嗎

跟 AlDente 無關,APPLE 顯示的電量跟健康度都是「快樂表」,95%~100%都會顯示100% AlDente, coconutBattery,跟我目前寫的這個程式顯示的才是真實的。其實如果你 之前有用 coconutBattery 在看電池狀態的話應該就有發現了

b6mh1984122710/30 17:20目前測試只要插上AC就沒辦法中斷充電

b6mh1984122710/30 17:22插回AC後電會被充滿,然後終端機會顯示拔掉前的電量

b6mh1984122710/30 17:24更正,插回剩餘容量就不會掉,系統Power內卻顯示未

b6mh1984122710/30 17:25充電

這不就是你要的嗎?超過你設定的上限停止充電,所以是正常的

※ 編輯: serenemind (220.135.239.246 臺灣), 10/30/2024 19:42:08