actuallymentor / battery

CLI for managing the battery charging status for M1 Macs
MIT License
3.2k stars 140 forks source link

App is Broken, do NOT INSTALL THIS #278

Open 993Driver opened 1 month ago

993Driver commented 1 month ago

What is the issue? (required) A clear and concise description of what the bug is.

GUI does not change charging behavior, in fact it does nearly nothing. The only features that work are enabling the 80% limit and force discharging to the 80% limit. For everything else you must rely on terminal command lines. If you uninstall there are a ton of errors on reboot, and you'll be stuck with whatever battery % was setup in command line, or 80% in GUI.

What exactly did you do to produce the issue? (required) Steps to reproduce the behavior:

  1. Go to Battery GUI
  2. Click on 'Disable or Uninstall'....'
  3. Scroll down to 'Disable or Uninstall....'
  4. See error

Expected behavior (required) Expect the disable to actually stop the 80% limit. Expect uninstall to remove entirely and restore back to normal charging function. Does not.

Screenshots (optional)

image

image

Error logs If you know how a terminal works, please paste the content of battery logs here. This allows me to see potential errors on your device.

πŸ‘Ύ Battery CLI logs:

05/22/24-09:08:22 - Battery at 95% (target 80%) 05/22/24-09:09:22 - Battery at 95% (target 80%) 05/22/24-09:10:22 - Battery at 95% (target 80%) 05/22/24-09:11:22 - Battery at 95% (target 80%) 05/22/24-09:12:22 - Battery at 94% (target 80%) 05/22/24-09:13:22 - Battery at 94% (target 80%) 05/22/24-09:14:22 - Battery at 94% (target 80%) 05/22/24-09:15:22 - Battery at 94% (target 80%) 05/22/24-09:16:22 - Battery at 94% (target 80%) 05/22/24-09:17:22 - Battery at 93% (target 80%) 05/22/24-09:18:22 - Battery at 93% (target 80%) 05/22/24-09:19:22 - Battery at 93% (target 80%) 05/22/24-09:20:23 - Battery at 93% (target 80%) 05/22/24-09:21:23 - Battery at 93% (target 80%) 05/22/24-09:22:23 - Battery at 93% (target 80%) 05/22/24-09:23:23 - Battery at 92% (target 80%) 05/22/24-09:24:23 - Battery at 92% (target 80%) 05/22/24-09:25:23 - Battery at 92% (target 80%) 05/22/24-09:26:23 - Battery at 92% (target 80%) 05/22/24-09:27:23 - Battery at 91% (target 80%) 05/22/24-09:28:23 - Battery at 91% (target 80%) 05/22/24-09:29:23 - Battery at 91% (target 80%) 05/22/24-09:30:23 - Battery at 90% (target 80%) 05/22/24-09:31:23 - Battery at 90% (target 80%) 05/22/24-09:32:23 - Battery at 90% (target 80%) 05/22/24-09:33:23 - Battery at 90% (target 80%) 05/22/24-09:34:23 - Battery at 90% (target 80%) 05/22/24-09:35:23 - Battery at 89% (target 80%) 05/22/24-09:42:01 - Battery at 89% (target 80%) 05/22/24-09:43:01 - Battery at 89% (target 80%) 05/22/24-09:44:01 - Battery at 89% (target 80%) 05/22/24-09:45:01 - Battery at 89% (target 80%) 05/22/24-09:46:01 - Battery at 89% (target 80%) 05/22/24-09:47:01 - Battery at 88% (target 80%) 05/22/24-09:48:01 - Battery at 88% (target 80%) 05/22/24-09:49:01 - Battery at 88% (target 80%) 05/22/24-09:50:02 - Battery at 88% (target 80%) 05/22/24-09:51:02 - Battery at 88% (target 80%) 05/22/24-09:52:02 - Battery at 88% (target 80%) 05/22/24-09:53:02 - Battery at 87% (target 80%) 05/22/24-10:06:41 - Battery at 87% (target 80%) 05/22/24-10:07:41 - Battery at 87% (target 80%) 05/22/24-10:08:41 - Battery at 87% (target 80%) 05/22/24-10:09:41 - Battery at 87% (target 80%) 05/22/24-10:10:41 - Battery at 86% (target 80%) 05/22/24-10:11:41 - Battery at 86% (target 80%) 05/22/24-10:12:41 - Battery at 86% (target 80%) 05/22/24-10:13:41 - Battery at 86% (target 80%) 05/22/24-10:14:41 - Battery at 86% (target 80%) 05/22/24-10:15:41 - Battery at 86% (target 80%) 05/22/24-10:16:41 - Battery at 85% (target 80%) 05/22/24-10:17:41 - Battery at 85% (target 80%) 05/22/24-10:18:41 - Battery at 85% (target 80%) 05/22/24-10:19:41 - Battery at 85% (target 80%) 05/22/24-10:20:41 - Battery at 84% (target 80%) 05/22/24-10:21:41 - Battery at 84% (target 80%) 05/22/24-10:22:41 - Battery at 84% (target 80%) 05/22/24-10:23:41 - Battery at 84% (target 80%) 05/22/24-10:24:41 - Battery at 84% (target 80%) 05/22/24-10:25:41 - Battery at 83% (target 80%) 05/22/24-10:26:41 - Battery at 83% (target 80%) 05/22/24-10:27:41 - Battery at 83% (target 80%) 05/22/24-10:28:42 - Battery at 83% (target 80%) 05/22/24-10:29:42 - Battery at 83% (target 80%) 05/22/24-10:30:42 - Battery at 83% (target 80%) 05/22/24-10:31:42 - Battery at 82% (target 80%) 05/22/24-10:32:42 - Battery at 82% (target 80%) 05/22/24-10:33:42 - Battery at 82% (target 80%) 05/22/24-10:34:42 - Battery at 82% (target 80%) 05/22/24-10:35:42 - Battery at 82% (target 80%) 05/22/24-10:36:42 - Battery at 81% (target 80%) 05/22/24-10:38:19 - Battery at 81% (target 80%) 05/22/24-10:39:19 - Battery at 81% (target 80%) 05/22/24-10:40:19 - Battery at 81% (target 80%) 05/22/24-10:41:19 - Battery at 81% (target 80%) 05/22/24-10:42:19 - πŸ”ΌπŸͺ« Disabling battery discharging 05/22/24-10:42:19 - Discharging completed at 80% 05/22/24-10:42:19 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop 05/22/24-10:42:19 - Charging to and maintaining at 80% from 80% 05/22/24-10:47:19 - Charge below 80 05/22/24-10:47:19 - πŸ”ŒπŸ”‹ Enabling battery charging 05/22/24-10:47:19 - πŸ”ΌπŸͺ« Disabling battery discharging 05/22/24-10:47:20 - πŸ’‘ Setting magsafe color to orange 05/22/24-11:08:20 - Charge above 80 05/22/24-11:08:20 - πŸ”ŒπŸͺ« Disabling battery charging 05/22/24-11:08:20 - πŸ’‘ Setting magsafe color to green 05/22/24-22:31:57 - Triggering discharge to 80 before enabling charging limiter 05/22/24-22:31:57 - Discharging to 80% from 80% 05/22/24-22:31:57 - πŸ”½πŸͺ« Enabling battery discharging 05/22/24-22:31:57 - πŸ”ΌπŸͺ« Disabling battery discharging 05/22/24-22:31:57 - Discharging completed at 80% 05/22/24-22:31:57 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop 05/22/24-22:31:57 - Charging to and maintaining at 80% from 80% 05/23/24-11:59:27 - Triggering discharge to 80 before enabling charging limiter 05/23/24-11:59:27 - Discharging to 80% from 80% 05/23/24-11:59:27 - πŸ”½πŸͺ« Enabling battery discharging 05/23/24-11:59:27 - πŸ”ΌπŸͺ« Disabling battery discharging 05/23/24-11:59:27 - Discharging completed at 80% 05/23/24-11:59:27 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop 05/23/24-11:59:27 - Charging to and maintaining at 80% from 80%

πŸ–₯️ Battery GUI logs:

Resetting interface timer speed Display percentage 80 based on 80 Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Refreshing tray icon... Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status Generate app menu percentage: 80 (discharge allowed, limited off) Found image: /Applications/battery.app/Contents/Resources/battery-inactive-80-Template.png Display percentage 80 based on 80 Resetting interface timer speed Refreshing interface update timer Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Limiter status message: 05/24/24-08:32:53 - Battery at 80% (attached; remaining), smc charging disabled

Get active logo for 80 Force discharge setting: boolean true Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Refreshing tray icon... Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status Limiter status message: 05/24/24-08:32:55 - Battery at 80% (attached; remaining), smc charging disabled

Found image: /Applications/battery.app/Contents/Resources/battery-inactive-80-Template.png Get active logo for 80 Resetting interface timer speed Refreshing interface update timer Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Display percentage 80 based on 80 Force discharge setting: boolean true Generate app menu percentage: 80 (discharge allowed, limited off) Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes Refreshing tray icon... Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status Limiter status message: 05/24/24-08:32:56 - Battery at 80% (attached; remaining), smc charging disabled

Display percentage 80 based on 80 Get active logo for 80 Resetting interface timer speed Refreshing interface update timer Generate app menu percentage: 80 (discharge allowed, limited off) Found image: /Applications/battery.app/Contents/Resources/battery-inactive-80-Template.png Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Force discharge setting: boolean true Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes Refreshing tray icon... Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status Limiter status message: 05/24/24-08:34:04 - Battery at 80% (attached; remaining), smc charging disabled

Display percentage 80 based on 80 Resetting interface timer speed Refreshing interface update timer Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Generate app menu percentage: 80 (discharge allowed, limited off) Force discharge setting: boolean true Get active logo for 80 Found image: /Applications/battery.app/Contents/Resources/battery-inactive-80-Template.png Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Refreshing tray icon... Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status Limiter status message: 05/24/24-08:34:14 - Battery at 80% (attached; remaining), smc charging disabled

Found image: /Applications/battery.app/Contents/Resources/battery-inactive-80-Template.png Generate app menu percentage: 80 (discharge allowed, limited off) Resetting interface timer speed Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew battery status_csv Force discharge setting: boolean true Get active logo for 80 Refreshing interface update timer Display percentage 80 based on 80 Battery status: {"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"} Setting interface refresh speed to 10 minutes

πŸ“ Config folder details:

total 680 drwxr-xr-x@ 6 brett staff 192B May 23 14:56 . drwxr-x---+ 16 brett staff 512B May 23 14:56 .. -rwxr-xr-x@ 1 brett staff 6.5K May 24 08:38 battery.log -rw-r--r--@ 1 brett staff 268K May 24 08:34 gui.log -rw-r--r--@ 1 brett staff 3B May 23 11:59 maintain.percentage -rw-r--r-- 1 root staff 897B May 23 14:56 visudo.tmp

βš™οΈ Battery data:

05/24/24-08:38:00 - Battery at 80% (attached; remaining), smc charging disabled Battery CLI utility v1.1.6 brett@bretts-mbp ~ %

Did battery fail to install? Use tail -n 1000 ~/.battery/*/log instead.

Additional context (optional) Add any other context about the problem here.

blackradysh commented 1 month ago

Hi, I confirm that the app is broken. I don't know if this is related to the recent macOS updates.

I managed to restore my Mac's charging behavior with the following 2 steps:

  1. By uninstalling the application in CLI with the battery uninstall command.
  2. By resetting my SMC using the Apple procedure
colinbrislawn commented 14 hours ago

For others,

I discovered that when I closed my M1 Mac's lid so it went to sleep, then plugged it in, it would not charge even though the battery was low.

This was through the CLI version on Homebrew. I'm not sure if the GUI version has this same issue.

EDIT: I'm going to go try this: https://github.com/zackelia/bclm