50 lines
1,012 B
Bash
Executable file
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
|