作者serenemind (沉)
看板MAC
標題[軟體] 改寫了一個 MAC 電池優化程式
時間Sun Oct 27 15:29:58 2024
(更新)
我做了一些修改來支援關機時維持上限,如果你已經有下載使用要更新的話
只要在 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.cc), 來自: 220.135.239.246 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MAC/M.1730014202.A.7F4.html
※ 編輯: serenemind (220.135.239.246 臺灣), 10/27/2024 15:31:58
1F:推 Ufunin: 先幫推,晚點裝 10/27 15:38
2F:推 EpicWang: 推 10/27 15:59
3F:→ babylon297: 我二月跟人買的M1Pro先後用AlDente和bclm 10/27 16:10
4F:→ babylon297: 目前還是100% 不過升OS15後bclm不能用了 10/27 16:10
5F:→ babylon297: 就用回AlDente了 蠻樂見有人做類似開發的 10/27 16:10
6F:→ babylon297: 晚點也來試試~ 推 10/27 16:10
7F:推 ho83leo: 推 10/27 16:17
8F:推 nippleman: 推 10/27 16:40
9F:推 yizang: 推 10/27 17:21
10F:推 Zyar: 神人幫推 10/27 17:45
11F:推 saedn: 好厲害!希望我會用!回家研究看看 10/27 18:54
12F:推 sanyoHsu: 推 10/27 18:57
13F:推 twlosser: 推一個不用開GUI 10/27 19:55
14F:推 Two4: 推~ 10/27 20:19
15F:推 lutein: push 10/27 21:05
16F:推 max8568: 推 10/27 22:15
17F:推 itsdelovely: 推 10/27 22:22
18F:推 jcwang: 推一個 10/27 23:47
19F:推 beamen: 推 10/28 00:05
20F:推 Ice9: 推 10/28 00:56
21F:推 jacky81005: 推 10/28 00:57
22F:→ BaWanYi: 推用心 10/28 01:00
23F:推 undft082: 先推 10/28 01:10
24F:→ x123987789: 太神了 10/28 01:33
25F:推 gary8442: 功能真多 好強 10/28 01:57
26F:推 KINGWAP: 想請教一下 電池校正的目的為何? 10/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%。這也是我為什麼買了新筆電後這麼在意電池維護的原因。
27F:推 despised: 推 10/28 07:31
28F:推 boyea55: 不好意思,可以請問要怎麼安裝嗎?謝謝 10/28 08:51
在 Terminal 下執行
curl -s
https://raw.githubusercontent.com/js4jiang5/BatteryOptimizer_for_MAC/main/setup.sh
| bash
不過你最好還是去上面的連結看一下完整的簡介,才能正確的使用吧
29F:推 jerryho0106: 推 10/28 09:40
30F:推 gn01881106: 厲害 不過我只有mac mini 10/28 09:44
31F:推 eltonchung: 推 還是希望能有GUI介面可以瀏覽目前狀態 10/28 10:11
用
battery status 這個指令就能知道目前狀態了
順便補充一下跟 AlDente 還有 CoconutBattery 比的優缺點
優點
1. 佔用的記憶體是 AlDente 的 1/20,CoconutBattery 的 1/30,非常輕便
2. 功能豐富,除非你花錢買 AlDente PRO
3. 不佔 menu bar 的位置
4. 每日主動推播狀態,不用打開
缺點
1. 要更改狀態或關掉,必須打開 Terminal 下指令,久沒用的話指令會忘記還要查
2. 無圖形介面
32F:推 alex780312: 有神快拜! 10/28 10:41
33F:推 river800111: 推 10/28 11:06
34F:推 Faing: 很方便使用,謝謝分享,推一下 10/28 11:41
35F:→ bookmusic: 我有買Aldente Pro應該就不用下載了對吧?XD 蘋果官方 10/28 12:24
36F:→ bookmusic: 的電佳最佳化都嘛不準 10/28 12:24
37F:推 ipis: 推一個 10/28 12:33
38F:推 guanting886: 好奇校正的原理是什麼 為什麼會認為是正確的? 10/28 12:51
39F:推 alfahsu: 推 老MBPR路過 10/28 14:16
40F:推 keyword1983: 推 厲害 10/28 14:35
41F:推 rickieyang: 進maintain mode 不充電後,calibrate 會有 error 10/28 14:39
42F:→ rickieyang: 說沒插充電器 10/28 14:39
43F:推 pent: 感謝 10/28 15:24
44F:→ pent: 祝好人 上廁所永遠有衛生紙 10/28 15:24
45F:→ serenemind: @rickieyang,你可以在我的 Github 上提出 issue 10/28 15:32
46F:→ serenemind: 問題討論在那邊比較恰當 10/28 15:32
47F:推 dreambegins: 推! 10/28 15:36
48F:→ serenemind: @rickieyang 你筆電上蓋應該沒打開對吧 10/28 16:17
49F:推 ksx064: 推 10/28 16:26
50F:推 PaganTsai: 先推已下再研究怎用 m1pro電池 88%了 care到26/9/26 10/28 16:32
51F:推 heiwa: 推 10/28 16:36
52F:推 Birdy: 先推再說 10/28 16:56
53F:推 Miyanishi25: 推薦這篇文章 10/28 17:23
54F:推 huabandd: 推一個 10/28 17:23
55F:推 rickieyang: 筆電開著, 外接螢幕鍵盤. 10/28 17:28
56F:→ rickieyang: 下 maintain off 後就可以 calibrate 了 10/28 17:28
57F:→ babylon297: 今天心血來潮用AlDente做了校正 健康度101%了笑死 10/28 17:56
58F:→ babylon297: 對了請教一下 校正時沒開蓋的提醒是怎麼提醒 10/28 18:29
59F:推 evolgnitiaw: 神人推一個! 10/28 18:40
60F:→ serenemind: 就 macOS 的通知功能啊,會出現在右上角 10/28 18:43
62F:推 idletime: 運用自己的專業去造福大家,好人! 10/28 18:51
63F:→ babylon297: 我看了英文說明似乎還需要開啟睡眠時通知 10/28 18:54
64F:→ babylon297: 這可能會比較耗電 此外沒開蓋也看不到 10/28 18:54
65F:→ babylon297: 可能要開通知音效XD 10/28 18:54
66F:推 macings: 推 10/28 19:53
67F:推 weimr: 推 10/28 21:07
68F:→ gary8442: 占用少記憶體是一大優點 10/28 23:11
69F:→ gary8442: 我有買Pro版確確實占用不少 (還好捏上去升級大ram 10/28 23:12
70F:→ gary8442: 買丐版MACBOOK 記憶體容易不夠用 10/28 23:12
71F:推 wwwsamyoui12: 推一個 感謝開源 10/28 23:25
72F:推 moanchuang: 感謝 10/29 00:28
73F:推 j26356147: 推! 10/29 00:44
74F:推 rayray0410: 推open source 10/29 05:19
75F:推 rayray0410: 想問一下關於第5點 10/29 05:24
76F:→ rayray0410: 已經更新至sequoia表示蓋上筆電/關機持續充電就沒辦 10/29 05:24
77F:→ rayray0410: 法限制充電上限?那只要蓋上筆電/關機不要充電就好了? 10/29 05:24
78F:推 rayray0410: 另一個情況是接上電源外接螢幕, 筆電蓋起來使用 10/29 05:52
79F:推 eit: 推 10/29 08:02
80F:→ serenemind: Sequoia 是關機跟睡眠不行,跟螢幕有沒有蓋上無關 10/29 09:21
81F:→ serenemind: 除非你一蓋上螢幕就啟動睡眠 10/29 09:21
83F:推 kobe083: 請問我剛剛安裝中有出現80%提示選項,她就自動默認安裝! 10/29 09:48
84F:→ kobe083: 我這樣是完成的意思嗎?謝謝大家 10/29 09:48
你應該是從來沒有安裝過 xcode,所以當要安裝 brew 時自動去尋找安裝 xcode 吧。
他應該會繼續安裝,你就依照他的指示進行,過程可能會再要求你輸入密碼。
不過,就算 xcode 沒有安裝成功,也不影響 BatteryOptimzer 的運作,會出現 80%
的提示,表示目前已經限定在 80%了,你可以自己更改成你要的上限,或是進行校正。
85F:推 kobe083: 感謝解答 10/29 10:12
87F:→ babylon297: 只要關機後不插電,那個關機後的上限我認為根本沒差 10/29 12:14
88F:→ babylon297: ,除非你關機前留下很低的電量,關機後又會不正常掉 10/29 12:14
89F:→ babylon297: 電,所以我升Sequoia了 10/29 12:14
(更新)
我做了一些修改來支援關機時維持上限,如果你已經有下載使用要更新的話
只要在 Terminal 下執行
battery update 就可以了
90F:推 b6mh19841227: 插著變壓器的話,好像還是一直在充電,2016MBP 10/29 16:18
91F:→ b6mh19841227: 用外接dongle供電 10/29 16:20
你的設定是什麼,右上角的電池 icon 顯示什麼狀態,可以提供畫面嗎?
我的 2014 都可以,你2016一定沒問題的。而且控制是從內部,跟外面怎們充電無關。
92F:推 rayray0410: 再問一個 安裝後是不是需要關掉macbook內建電池優化 10/29 17:01
93F:→ rayray0410: 謝謝 10/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
94F:推 kobe083: 請問安裝後插電然後可以邊使用電腦嗎? 10/29 21:03
95F:→ kobe083: 還是建議關機充電。 10/29 21:03
96F:→ kobe083: 謝謝 10/29 21:03
當然可以邊使用電腦,不要關機充電。
97F:推 onlywe: 感謝開源分享 10/29 22:06
98F:→ onlywe: 安裝後用指令查看狀態,健康度跟Mac內建提供的數值不一樣 10/29 22:06
99F:→ onlywe: 另外有一個問題,個人習慣外接螢幕闔上mac工作(螢幕供電 10/29 22:06
100F:→ onlywe: 這樣使用校正時,還需要將mac打開嗎? 10/29 22:06
校正時把螢幕打開,這是為了普羅大眾的設計,有些人可以蓋住螢幕仍然不會睡眠
但是一般人不會這麼做,蓋上螢幕一改成電池供電就會進入睡眠。總之要維持正常
的校正,這段時間就是不能睡眠,所以養成良好的習慣,校正時就把螢幕打開。
習慣闔上mac工作,一個月打開一次讓它透透氣也不錯。
102F:推 kobe083: 請問我插電使用只會充電到80%就不會充電了。 10/29 22:13
103F:→ kobe083: 然後合蓋關機她就又自動充電到100%。 10/29 22:13
104F:→ kobe083: 這樣可以吧? 10/29 22:13
105F:→ kobe083: 謝謝 10/29 22:13
照理說我目前已經設計成關機後上限仍然有作用,除非你的作業系統已經更新到
Sequoia了
106F:→ Two4: 試了幾次校正都顯示 Calibration Error: Discharge to 15% 10/29 22:43
107F:→ Two4: fail。不曉得原因 10/29 22:43
是有放電但放不到15%,還是連放電都沒放?
108F:推 kobe083: 有!我今天升級15.1系統,這樣可以吧?感謝 10/29 23:35
109F:推 autopass: me too, 怎樣算校正完成、成功? 10/29 23:39
校正完成會回到你設定的上限,也會發出通知說 Calibration completed。
我近期會再加入兩個功能
1. 有更新時主動通知,使用者看到後就知道有新版的,自行決定要不要更新
2. 根據 macOS 的語系決定通知用的語言,當然只會有台灣的繁體中文跟英文這兩種
我想許多人還是偏好看中文
110F:推 superstu: 推爆 10/30 00:06
111F:→ Two4: 有放電到 15%。會先顯示 Discharging completed at 15%,下 10/30 00:12
112F:→ Two4: 一行就跳上面的 Error,然後就回復 Battery maintain。機型 10/30 00:12
113F:→ Two4: 是 2015 MPBR 13 10/30 00:12
這有點匪夷所思,等於放電完成要執行下一步時的一剎那間被中斷了,機率也太低。
你可以再試一次看是否還是會發生,我下一版會針對這個情況做調整。
114F:→ b6mh19841227: 2016MBP插著沒有辦法discharge 10/30 08:14
蘋果在電池 100% 的時候不允許放電,就算用 AlDente 也一樣,所以你要先放個電
讓他低於 100%,可以執行下面的指令先放到 80%
battery discharge 80
你的電池現在健康度 104% 應該是新買的,好好維護可以用很久
116F:推 jimmy1112111: 推推 10/30 08:42
117F:→ Newtype: 感謝分享! 10/30 09:22
118F:→ b6mh19841227: 感謝大大,我測試看看,電池淘寶回來DIY的 10/30 09:35
119F:推 rickieyang: 跟 Two4 一樣 10/30 10:53
120F:→ rickieyang: 10/29/24-09:36:36 - Discharging completed at 15% 10/30 10:53
121F:→ rickieyang: 10/29/24-09:36:36 - Calibration Error: Discharge t 10/30 10:54
122F:→ rickieyang: o 15% fail 10/30 10:54
123F:→ rickieyang: 10/29/24-09:36:36 - Battery maintain is already ru 10/30 10:54
124F:→ rickieyang: nning 10/30 10:54
125F:→ rickieyang: 然後就跳出了 10/30 10:54
126F:→ rickieyang: 但明明 battery calibrate 前有先 maintain stop 了 10/30 10:56
目前為止有三個人碰到這個問題,我研究一下
對了,@Two4 @rickieyang 你們兩位有執行過 battery update 更新到最新版嗎?
如果沒有的話請先更新,因為我在新版有修掉一些問題,做了一些穩定度的改善
搞不好跟你們碰到的問題相關
127F:推 humor0913: 大神推一個 感謝分享 10/30 14:15
128F:→ babylon297: 我今天update後看battery status發現電量 10/30 15:00
129F:→ babylon297: 應為80% 而log顯示76%與上面某版友一致 10/30 15:00
130F:→ babylon297: 會是因為我開了AlDente的硬體電池電量嗎 10/30 15:00
跟 AlDente 無關,APPLE 顯示的電量跟健康度都是「快樂表」,95%~100%都會顯示100%
AlDente, coconutBattery,跟我目前寫的這個程式顯示的才是真實的。其實如果你
之前有用 coconutBattery 在看電池狀態的話應該就有發現了
131F:→ b6mh19841227: 目前測試只要插上AC就沒辦法中斷充電 10/30 17:20
132F:→ b6mh19841227: 插回AC後電會被充滿,然後終端機會顯示拔掉前的電量 10/30 17:22
133F:→ b6mh19841227: 更正,插回剩餘容量就不會掉,系統Power內卻顯示未 10/30 17:24
134F:→ b6mh19841227: 充電 10/30 17:25
這不就是你要的嗎?超過你設定的上限停止充電,所以是正常的
135F:推 icepak83: 推 晚點來裝看看 10/31 12:35
138F:→ kobe083: 我終於搞懂了!謝謝版大 10/31 16:25
139F:推 ballII: 請教若想解除安裝,指令是?(只是預問,不是使用不順) 11/01 10:01
140F:推 Jacktang: battery uninstall 11/01 15:10
141F:推 qqplusqq: 請問為何是選45%停止充電,40%開始充電?而不是80%?差 11/03 09:37
142F:→ qqplusqq: 距只有5%不就蠻常要充電?想知道理由,做為設定的參考 11/03 09:37
143F:→ qqplusqq: ,感謝。 11/03 09:37
sail mode 停在 45%後,是吃電源供應器的電,電池每天只會掉個 0.1~0.2%
※ 編輯: serenemind (220.135.239.246 臺灣), 11/03/2024 11:31:45
144F:推 qqplusqq: 原來如此,因為我的習慣是休眠就拔掉充電器,但後來的 11/03 19:45
145F:→ qqplusqq: M2休眠又很耗電,才想說只有5%不就常常要充電~ 11/03 19:45