51 lines
1,012 B
Text
51 lines
1,012 B
Text
![]() |
#!/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
|