pixelbook-charge-control/do_not_charge
2023-01-08 18:59:16 +01:00

50 lines
1,012 B
Bash
Executable file

#!/bin/sh
STOP_THRESHOLD=80
START_THRESHOLD=30
SHALL_CHARGE=0
IS_CHARGING=0
set_charger() {
if [ $1 == 1 ]; then
ectool chargecontrol normal
else
ectool chargecontrol idle
fi
}
while true; do
AC_STATE=`cat /sys/class/power_supply/AC/online`
if [ $AC_STATE == "1" ]; then
echo "on AC"
BAT_LEVEL=`cat /sys/class/power_supply/BAT0/capacity`
CURRENT=`cat /sys/class/power_supply/BAT0/current_now`
echo "current=$CURRENT"
if [ $CURRENT -gt 0 ]; then
IS_CHARGING=1
else
IS_CHARGING=0
fi
if [ $BAT_LEVEL -gt $STOP_THRESHOLD ]; then
echo "bat level > $STOP_THRESHOLD%"
echo "charger disabling"
SHALL_CHARGE=0
elif [ $BAT_LEVEL -lt $START_THRESHOLD ]; then
echo "bat level < $START_THRESHOLD%"
echo "charger enabling"
SHALL_CHARGE=1
else
echo "charger state OK, idling..."
fi
else
echo "not on AC, idling..."
SHALL_CHARGE=0
fi
echo $SHALL_CHARGE $IS_CHARGING
if [ $SHALL_CHARGE != $IS_CHARGING ]; then
set_charger $SHALL_CHARGE;
fi
sleep 10
done