[Magisk] Uluru25:
Temperature-controlled charging with acc

29.03.2024: updated, see at the end of this post!

... sorry for such a long post here...

There is a negative effect discussed on the battery's longevity in case of too high (and too low) temperatures during charging, e. g. here.

If this is really a concern in case of moderate temperatures between 10 - 40 ºC I don't know.

Nevertheless, in case you want to control the charging process according to the battery's temperature, there is now a new option available in the last build of acc:

VR25, the developer of acc, has implemented (see here how to update to this build) two three new parameters: "cooldown temperature", at which a cooldown scenario (e. g. a limited cooldown charging current and/or a sequence of charging/pause/charging/pause etc.), "max temperature" (mt) at which charging will stop until the battery has cooled down to the "resume temperature" (rt). In contrast to "cooldown capacity" (cc) which is a one-way trigger (it will be activated and then limit the charging current or apply charging/pausing cycles but will not fall back to the normal charging mode) the rt/ct/mt triggers will toggle charging up to the ct, then applying a cooldown scenario until cooled down to rt, and then again charging without the limitations defined as cooldown scenario. However, if reaching the mt, charging will pause until cooled down to rt (not ct) .

To use these variables I would set the cc to a value above (!) the pc to avoid unwanted interference between a temperature and a capacity driven cooldown scenario.

But this is only my personal consideration, you are free to check your own preferences.

Thus, a terminal command could be "su", then followed by "acc -s pc=70 rc=65 cc=101 ct=34 mt=35 rt=32 cdc=2000"

which will set the

- pause capacity to 70 %,

- resume capacity to 65 %,

- cooldown capacity to 101 % (thus inactive),

- cooldown temperature to 34 ºC,

- cooldown current to 2000 mA,

- max. temperature to 35 ºC, and

- resume temperature to 32 ºC.

or:

"acc -s pc=70 rc=65 cc=101 ct=34 mt=35 rt=32 cch=50 cp=10"

which will set the

- pause capacity to 70 %,

- resume capacity to 65 %,

- cooldown capacity to 101 % (thus inactive),

- cooldown temperature to 34 ºC,

- cooldown charge period to 50 s,

- cooldown pause period to 10 s,

- max. temperature to 35 ºC, and

- resume temperature to 32 ºC.

Also all these parameters are only an example and or up to you.

Good luck!

🤠

Update (10.09.2023):

1. Meanwhile the dev provided a simple solution to the issue described in point 1 (interference of restarting the charging if meanwhile rc is exceeded): Just define the resume temperature (rt) with a "r" following to the value, e. g. "acc -s rt=32r", thus when the resume temperature is reached, this condition will override a potential rc restriction.

2. Furthermore, the cooldown temperature condition can be used in a logical way (at least logical for me) since it is no (longer) a one-way-trigger but can also be terminated when rt is reached:

If you define the values for rt, ct, mt, st in the following way: rt < ct < mt < st then acc will provide the max. "allowed" charging within your definitions (see enclosed screenshot from the TG group) and will toggle between these modes (for sure, st as shutdown command will be a one-way-trigger). I use ct with a cdc (cooldown current) limitation, which reduces the charging current to e. g. 1500 mA when triggered, whereas mcc (max. charging current) is unlimited until ct is triggered (including "mcc=" in the below shown command without a value deletes an eventually previously defined mcc).

Thus, a terminal command could be "su", then followed by "acc -s pc=80 rc=70 cc=101 rt=32 ct=34 mt=35 st=45 cdc=1000"

Sometimes, if you define charging currents (e. g. via mcc or cdc) acc asks you to plug the charger to verify these settings. This usually only happens once.

Update 29.03.2024:

Completely re-written.

Take care thar the previously described need for a trailing "r" after rt=xx is no longer needed and if present, making the rt=xx command not working.