Ir al contenido principal

Notificar cuando el portatil está cargado en Linux

Hola estimados lectores, agradezco sus visitas al sitio.

No pretendo dar consejos sobre el cuidado de baterías, no soy experto en el tema. Mi único tip es buscar información ofrecida por el propio fabricante y también leer experiencias en algunos foros.

 En mi caso, el fabricante recomienda cargar cuando el nivel sea inferior  al 40%. Así mismo recomienda detener la carga cuando el portatil está en  90%.  Por supuesto, pasar de dichas cifras debería afectar la vida de nuestra bateria. Es decir, en teoría la energía no debería pasar por la batería una vez cargada. Pero, suponiendo que no son los objetivos del fabricante seguimos...

Usando Linux, mi entorno de escritorio  permite configurar las notificaciones acorde a un nivel de bateria indicado. Por ejemplo, puedo configurar notificaciones si la batería está entre el 20% de carga, e incluso apagarla automáticamente si está en 15% , previniendo posibles daños. 

Pero las opciones se agotan y no puedo agregar otra notificación (más agresiva). Yo quería programar las notificaciones para saber cuando debía desconectar mi cargador AC. Entiendo, muchos prefieren configurar desde BIOS el modo de alimentación y ajustes adicionales de batería. Un ejemplo, sería configurar el portatil para estar siempre en modo AC. En lo personal, dicha configuración no me ha funcionado y siento que la bateria se cuida mejor si manipulamos manualmente el cable.

Por tanto, yo quería programar mi laptop para que me notificará cuando se encuentra cargada al 90% y así desconectar. Pues bien, esto logré hacerlo escribiendo un código sencillo pero funcional. Que claro, requiere ejecutarse en segundo plano para estar validando el porcentaje de carga:

full=90;
echo "Notify Full Battery";
while true; do
    batty=$(acpi -i | grep -o -E -m 1 '[0-9]+%'| grep -E -o "[0-9]+")
    if (( $batty >= $full )); then
        spd-say 'WARNING! WARNING! Battery is full charged!';
        zenity --warning --text "BATTERY FULL!
";
    fi
    echo $batty
    # echo "Seleeping... 60s  -_-"
    sleep 60
done
exit;


Podemos notar (subrayado verde)  que el nivel se especifica usando la variable full, y que llamando al comando acpi (advanced config. & power interface) solicitamos información de la carga actual del dispositivo. 

 Se recomienda primeramente llamar este comando acpi -i, para explorar todos los datos de la bateria, así como para conocer el potencial del uso de acpi.  Después, utilizando la herramienta grep filtramos los datos desados (la cifra de carga). Pueden notar que yo use dos veces grep, por lo que puede ser optimizado para invocar en una sóla llamada.

 

Por otro lado, el comando spd-say (send text-to-speech output request to speech-dispatcher), es la notificación. Pero pueden usar el de su preferencia o el que su entorno de escritorio maneje mejor.  





Comentarios

Entradas populares de este blog

Modificar la Temperatura del Screen en Linux

Muchas veces trabajando en nuestro ordenador, llegamos a un punto en que nuestra vista se llega a cansar  y aunque usemos lentes (con protección) es inevitable que el brillo del Screen en ocasiones altera nuestra vista, más si estamos leyendo un pdf's por ejemplo. Bien pues espero esta sea un alternativa ante dicha problematica. Estrenando el sitio con este post, veremos cómo cambiar la temperatura de nuestro monitor en un sistema Unix, sea Kernel Linux o un sistema FreeBSD, y posiblemente en MAC, utilizando un pequeñito programa escrito en lenguaje C por Ted Unangst tedu(@rroba)openbsd.org.   Se  llama SCT :: Screen Color Temperature. -  Instalarlo facilmente en sistemas Debian: sudo aptitude install sct  - Desde el source en Github: https://github.com/faf0/sct Ya instalado, sólo hay que ejecutar el comando correspondiente: sct <nivel de temperatura> Wikipedia nos ilustra los  niveles de temperaturas que existen: https: