2015年12月4日 星期五

筆電低電壓警告

http://community.linuxmint.com/tutorial/view/1752
---
apt-get install mpg123
---
自行下載一個音訊檔做為警告聲,命名為:alarm2.mp3
---
寫一個 Shell Script  → lowPowerAlarm.sh
設定為電量 40~15% 時,每分鐘做一次 alarm;
而當低於 15% 時,做連續不中斷的 alarm 警告聲。
---
#!/bin/bash
#!/bin/bash
# Low Battery notification

# 得到目前電量值(%)
BATTERY=`acpi -b | grep -P -o '[0-9]+(?=%)'`

# 音訊檔路徑
ALARM_LOCATION=/home/$USER/Other_work/alarm.mp3

# 設定電量臨界值(普通低電量做單響及超低電量做連續發聲)
LOW_POWER=40
VERYLOW_POWER=15

# 檢查有無 charged,若有則代表有接上電源($?=0),不做警告聲響
acpi -b | grep charged > /dev/null
if [ $? != 0 ]; then
        if [ $BATTERY -le $LOW_POWER ] && [ $BATTERY -gt $VERYLOW_POWER ]; then
                mpg123 $ALARM_LOCATION
        elif [ $BATTERY -le $VERYLOW_POWER ]; then
                # crontab 設為每分鐘掃,故這邊設為連響 59 秒
                for i in `seq 1 59`
                do
                        acpi -b | grep charged > /dev/null
                        if [ $? != 0 ]; then
                                mpg123 $ALARM_LOCATION
                                if [ $BATTERY -gt $VERYLOW_POWER ] ; then
                                        # 若電量大於 $VERYLOW_POWER 值就離開警告
聲
                                        exit 0
                                fi
                        else
                                # 若有接上電,就直接離開連續警告聲
                                exit 0
                        fi
                        sleep 1
                done
        fi
else
        echo NOTHING TO DO 
fi
exit 0
---
在加入 crontab 列表 (其中 &> /dev/null 是為了不讓 crontab 寄 mail 至系統。)
自行設定時間(這邊設任何時間每分鐘執行)、 .sh 執行者及指令:
* * * * * $USER /bin/sh $ScriptLocation/lowPoserAlarm.sh &> /dev/null
---
單純查看 Battery 電量可以使用:
printf 'BATTERY: %i %%\n' $(acpi -b | grep -P -o [0-9]+\(?=%\))