{"id":5,"date":"2014-02-24T14:44:18","date_gmt":"2014-02-24T14:44:18","guid":{"rendered":"http:\/\/walterelias.com.ar\/sitio\/?p=5"},"modified":"2018-06-11T08:46:57","modified_gmt":"2018-06-11T11:46:57","slug":"script-para-ahorrar-energia-alarma-sonora-que-avisa-cuando-la-bateria-esta-descargada-y-cuando-se-termina-de-cargar","status":"publish","type":"post","link":"https:\/\/walterelias.com.ar\/sitio\/script-para-ahorrar-energia-alarma-sonora-que-avisa-cuando-la-bateria-esta-descargada-y-cuando-se-termina-de-cargar\/","title":{"rendered":"Script para ahorrar energ\u00eda. Alarma sonora que avisa cuando la bater\u00eda est\u00e1 descargada y cuando se termina de cargar"},"content":{"rendered":"<p><strong>ACTUALIZACI\u00d3N 11\/6\/2018<\/strong><\/p>\n<p>Hace un tiempo, tanto mi amigo N\u00e9stor como yo, venimos buscando en la web alg\u00fan \u00abprogramita\u00bb para GNU\/Linux que avise en forma sonora cuando la bater\u00eda se est\u00e1 terminando o cuando se termin\u00f3 de cargar, con el objetivo de ahorrar energ\u00eda y a la vez extender la vida \u00fatil de la bater\u00eda.<\/p>\n<p>Lamentablemente no encontramos nada y decidimos ponernos a escribir c\u00f3digo, que result\u00f3 mucho m\u00e1s sencillo de lo esperado.<\/p>\n<p>El script est\u00e1 programado en Bash (seguramente se puede mejorar) y tiene un par de par\u00e1metros editables, que son:<\/p>\n<ul>\n<li>El porcentaje de bater\u00eda para el que sonar\u00e1 la alarma de \u00abbater\u00eda descargada\u00bb.<\/li>\n<li>El porcentaje de bater\u00eda para el que sonar\u00e1 la alarma de \u00abbater\u00eda cargada\u00bb.<\/li>\n<li>El nombre de los archivos .wav que se reproducir\u00e1n en cada caso.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>El nombre del archivo puede ser cualquiera. Yo le puse bat.sh y lo guard\u00e9 en un directorio llamado \u00abenergia\u00bb dentro de mi \/home.<\/p>\n<p>El programita depende de bash (ya que es un script de este tipo) que ya viene instalado con el sistema operativo, pero adem\u00e1s usa un programa que deber\u00e1s instalar. Este se llama acpi y sirve para obtener resultados de diferentes dispositivos de hardware, entre ellos la bater\u00eda. Tambi\u00e9n usaremos aplay para reproducir sonidos.<\/p>\n<p>Para instalarlo, en las distribuciones basadas en Debian, ejecutar como root o usando sudo:<\/p>\n<p>apt-get install acpi mplayer<\/p>\n<p>&nbsp;<\/p>\n<pre>NOTA: Antes este script usaba aplay pero con las nuevas \r\nversiones de GNU\/Linux se dej\u00f3 de usar alsa migrando a \r\npulseaudio y aplay ya no existe. \r\nPor lo que lo reemplazamos, con los mismos \r\nresultados, por mplayer<\/pre>\n<p>&nbsp;<\/p>\n<p>Luego crear un directorio dentro de tu home y usando alg\u00fan editor (como gedit) escribir el siguiente c\u00f3digo:<\/p>\n<p>&nbsp;<\/p>\n<pre lang=\"bash\" line=\"1\">#!\/bin\/bash\r\n#Script para avisar cuando la bater\u00eda se est\u00e1 agotando\r\n#O cuando est\u00e1 completamente llena\r\n\r\n#Funci\u00f3n para generar la fecha y hora\r\nfyh() {\r\n  date +\"%Y-%m-%d %H:%M:%S\"\r\n}\r\n\r\n#Exportaci\u00f3n de variables. En este caso sirve para \r\n#que el cron sepa a donde direccionar la salida\r\n#del programa. Cambiar usuario por tu nombre de usuario\r\n#y 1000 por el id de tu usuario. Para conocer el id de\r\n#usuario, usar el comando id en una terminal.\r\n\r\nexport XDG_RUNTIME_DIR=\"\/run\/usuario\/1000\"\r\nexport DISPLAY=:0\r\nexport XAUTHORITY=\/home\/usuario\/.Xauthority\r\n\r\nbateria=`\/usr\/bin\/acpi -V | grep ', 10%'`;\r\n\r\n if [ -z \"$bateria\" ]\r\n then\r\n  fyh;\r\n  echo \" Carga suficiente ...\"\r\n else\r\n  for contador in 1 2 3 4 5\r\n  do\r\n   \/usr\/bin\/mplayer -display :0 -volume 50 \/home\/usuario\/energia\/beep.wav\r\n   sleep 1s\r\n  done\r\n fi;\r\nbateriacargada=`\/usr\/bin\/acpi -V | grep ', 100%'`;\r\n if [ -z \"$bateriacargada\" ]\r\n then\r\n  echo \"\"\r\n else\r\n  for contador2 in 1 2 3 4 5\r\n  do\r\n   echo fyh;\r\n   echo \"Bateria totalmente cargada. Desenchufe cargador\\n\"\r\n   \/usr\/bin\/mplayer -display :0 -volume 50 \/home\/usuario\/energia\/beep2.wav\r\n   sleep 1s\r\n  done\r\n fi;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Notar que en el c\u00f3digo las rutas son ABSOLUTAS es decir, si el directorio creado se llama energia, los archivos deber\u00e1n ponerse con la ruta completa \/home\/usuario\/energia\/ donde usuario es tu nombre de usuario.<\/p>\n<p>Guardar el archivo dentro del directorio creado. Ponerle el nombre que quieras. Yo le puse bat.sh<\/p>\n<p>Darle permisos de ejecuci\u00f3n. En una terminal, dentro del directorio donde est\u00e1 el script:<\/p>\n<p>chmod 777 bat.sh<\/p>\n<p>En el mismo directorio, poner los archivos .wav que vamos a reproducir, con los mismos nombres que en el script (yo les llam\u00e9 beep.wav y beep2.wav).<\/p>\n<p>Por supuesto puedes crear tus propios archivos wav con textos como \u00abenchufame, la bater\u00eda ya se est\u00e1 acabando\u00bb y \u00abdesenchufame, no gastes electricidad al cuete\u00bb \ud83d\ude00<\/p>\n<p>Lo \u00fanico que queda por hacer es agregar el script al cron, para que se ejecute una vez por minuto. Como es muy sencillo, no usar\u00e1 recursos del sistema y no estar\u00e1 ejecut\u00e1ndose permanentemente.<\/p>\n<p>Para agregar esto al cron, abrimos el archivo \/etc\/crontab con un editor de textos (puede ser gedit) pero usando permisos de root o usando sudo.<\/p>\n<p>Usar el comando contrab -e<\/p>\n<p>Permite programar una tarea para que se ejecute a una hora espec\u00edfica del d\u00eda.<\/p>\n<p>Agregar al final la siguiente l\u00ednea:<\/p>\n<p>&nbsp;<\/p>\n<pre>* * * * * \/bin\/sh \/home\/usuario\/energia\/bat.sh &gt;&gt; \/home\/usuario\/energia\/bat.log<\/pre>\n<p>&nbsp;<\/p>\n<p>Reemplazar usuario por tu nombre de usuario.<\/p>\n<p>Los asteriscos al principio le dicen al sistema que el programa se ejecute en todos los minutos, en todas las horas, todos los d\u00edas. Adem\u00e1s, genera un archivo bat.log donde guarda la salida de texto del programa. Esto te servir\u00e1 para estimar el rendimiento de la bateria cuando lo creas necesario. Cada tanto te conviene borrar el archivo bat.log<\/p>\n<p>Por \u00faltimo, reiniciar el servicio de cron<\/p>\n<pre>sudo service cron restart<\/pre>\n<p>&nbsp;<\/p>\n<p>Listo, eso es todo. Es muy sencillo y ahora tendr\u00e1s avisos sonoros cuando la bater\u00eda se est\u00e9 agotando y cuando est\u00e9 cargada.<\/p>\n<p>Te invito a crear tus propios wav y a compartirlos.<\/p>\n<p>Nota: El script es totalmente b\u00e1sico. Se puede mejorar mucho. Lo dejo a tu imaginaci\u00f3n.<\/p>\n<p>Descarga de los wav que yo use:<\/p>\n<p><a title=\"beep.wav\" href=\"http:\/\/www.walterelias.com.ar\/audios\/beep.wav\">beep.wav<\/a><\/p>\n<p><a title=\"beep2.wav\" href=\"http:\/\/www.walterelias.com.ar\/audios\/beep2.wav\">beep2.wav<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ACTUALIZACI\u00d3N 11\/6\/2018 Hace un tiempo, tanto mi amigo N\u00e9stor como yo, venimos buscando en la web alg\u00fan \u00abprogramita\u00bb para GNU\/Linux que avise en forma sonora cuando la bater\u00eda se est\u00e1 terminando o cuando se termin\u00f3 de cargar, con el objetivo de ahorrar energ\u00eda y a la vez extender la vida \u00fatil de la bater\u00eda. Lamentablemente&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[11,13,12,10,9,8],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-software_libre","tag-ahorro","tag-alarma","tag-aviso","tag-bateria","tag-energia","tag-script"],"_links":{"self":[{"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":16,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":162,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/posts\/5\/revisions\/162"}],"wp:attachment":[{"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/categories?post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/walterelias.com.ar\/sitio\/wp-json\/wp\/v2\/tags?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}