Skrip om die laai- en ontlaadsiklusse van u skootrekenaar se battery te beheer

Diegene wat weet, sê dat om die litiumbattery van 'n skootrekenaar in 'n goeie toestand te hou, dit op die stroomstelsel gekoppel moet word as dit 40% ontlaai is, en moet dit ontkoppel word wanneer dit 80% laai.

Baie vervaardigers bevat in die bios die opsie om die stroomstroom na die battery te "deaktiveer" as dit 'n sekere persentasie bereik, en dat die toerusting die stroom net vanaf daardie oomblik gebruik, maar in my spesifieke geval is my Lenovo IdeaPad U510 nie het nie die opsie nie.

Ek weet nie van enige toepassing in Linux wat dit op sagtewarevlak doen of wat ons net in kennis stel as die battery 'n spesifieke persentasie bereik nie. Daarom het ek besluit om 'n klein skrif te skep wat my in kennis stel as ek die stroom moet koppel en ontkoppel. .

Skripvereistes om die laai- en ontlaadsiklusse van u skootrekenaar se battery te beheer

Die eerste ding wat ons nodig het, is om die pakket te laat installeer acpi op ons rekenaar. As ek ArchLinux gebruik, moet ek net die volgende doen:

$ sudo pacman -S acpi

Waarom het ons ACPI nodig? Wel, om die status van ons battery te ken. As ons dit uitvoer, gee dit so iets terug:

leni :: ~ »acpi Battery 0: ontlaai, 76%, 02:20:07 oor

Die volgende ding is om die lêer te skep wat die kennisgewing sal uitvoer, in my geval plaas ek dit in die gids ~ / .battery, en ek het dit genoem bat_kennisgewing.sh. Binne sit ek die volgende:

#! / bin / bash # # - * - KODERING: UTF-8 - * - # Hierdie program is gratis sagteware. U kan dit herverdeel en / of # wysig onder die voorwaardes van die GNU General Public License # soos gepubliseer deur die Free Software Foundation, of weergawe 2 van daardie lisensie of (na u keuse) enige latere weergawe. # # As u enige wysigings aan hierdie aansoek aanbring, moet u altyd die oorspronklike outeur van die aansoek noem. # # FromLinux.net CC-BY-SA 2015 # Skrywer: ELAV # Ons kry die status van die battery, maar slegs die persentasie: BATTERY = `acpi | awk '{print $ 4}' '# Ons gee die toestand deur na 'n tekslêer: echo $ BATTERY> tmp_battery.txt # Ons skakel onnodige inligting uit die tekslêer uit: RESULT = `cut -c 1-2 tmp_battery.txt` as [$ RESULTAT -ge 80]; meld dan-stuur --urgency = kritiek - expire-time = 5000 --app-name = Battery --icon = battery "Battery Notification" "Skakel die krag uit" elif [$ RESULTAT -le 40]; meld dan-stuur --urgency = kritiek --expire-time = 5000 --app-name = Battery --icon = battery "Battery Notification" "Sluit krag aan" anders $ BATTERY> / dev / null fi

Hoe die skrif werk om die laai- en ontlaadsiklusse van u skootrekenaar se battery te beheer

Die verduideliking van hoe dit werk is binne, maar ek verduidelik dit kortliks.

Eerstens, gebruik awk Ek haal net die persentasiewaarde uit die battery, wat so iets oplewer 76%. Ek stuur hierdie resultaat na 'n tekslêer om later onnodige karakters uit te skakel, en laat slegs die numeriese waarde agter.

Ons gee die nodige regte vir die lêer:

$ chmod a+x ~/.bateria/bat_notificacion.sh

Hoe ArchLinux gebruik word StelselD en het nie die oue nie crontab, ek ek installeer cronie. Nou wysig ons die crontab sodat die teks die batterystatus heeltyd nagaan.

$ crontab -e

En ek voeg binne:

# Batterykontrole * * * * * cd /home/elav/.battery/ && ./bat_notification.sh

En voila, as die battery persentasie gelyk is aan of minder is as 40%, of gelyk is aan of groter is as 80%, kry ek 'n kennisgewing soos volg:

Batterykennisgewing

En dit is dit .. Enige bydraes wat u wil lewer, kode-voorstelle en ander, kan deur my bewaarplek gedoen word Bitbucket.


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

32 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   word wakker dijo

    Baie goed, ek wil dit probeer, maar ek gebruik meer as 'n rekenaar: /
    'n vraag, waar word die tydelike lêer gestoor? As dit byvoorbeeld tuis is, kan u 'n punt voorhou sodat u dit nie hoef te sien nie? 😛

    1.    lewendig dijo

      Wel, in my geval het ek nie die probleem nie, aangesien ek die script in 'n verborge vouer tuis bestuur. Die tydelike lêer word saam met die script aangebied. 😀

  2.   NaM3loos dijo

    Die teks is goed, maar ek het die kwessie van die battery op skootrekenaars gelees, en dit is vir my nog nie duidelik of die battery ontkoppel of nie as dit 100% laai nie.
    Boy, ek is al langer as 2 jaar by 'n Lenovo en het geen probleme nie (klop aan hout): v
    Hoe dit ook al sy, dit sal goed wees as iemand verduidelik of die kwessie van die tromme waar is of net 'n mite.
    Groete!

    1.    Swart Net dijo

      Ek het 'n Dell Inspiron-skootrekenaar, wat al vir vier jaar is. Ek probeer om dit altyd te laat aansluit, en die battery duur nog steeds ongeveer 'n uur sonder om aan te sluit (afhangend van die werk natuurlik). Ek dink dit is 'n uitstekende raad, ek sal probeer om dit te installeer ... Groete

  3.   Personeel dijo

    As u stelselmatig het (geen hoofletters nie, 'n fout wat ek ook gemaak het), kan u timers gebruik en u hoef nie toepassings van derdepartye te installeer nie.

    https://wiki.archlinux.org/index.php/Systemd/Timers#As_a_cron_replacement

    Wat die battery betref, verstaan ​​ek dat die litiumbatterye se stroombane die las ontkoppel wanneer hulle die limiet bereik, sonder om afhanklik te wees van die SO, andersins veilige ontploffing 🙂
    En dit is dat, as ek altyd net 40% van sy kapasiteit hoef te gebruik, dit dieselfde sal wees as om 'n beskadigde battery te hê.
    Die laaier moet ontkoppel word wanneer dit 100% of kort vantevore bereik word, maar slegs om te vermy wat bekend staan ​​as die "spanning" van die battery (begin en beëindig die laaiproses vinnig en konstant tussen 99% en 100%).

    1.    lewendig dijo

      Wel, ek weet regtig nie, daar is baie verskillende menings en ek weet nie na wie om te luister nie.

      1.    reën dijo

        Wel, dit is u rekenaar, gebruik wat u verkies, maar dit is altyd goed om verskillende maniere te ken om dit te doen 🙂

      2.    reën dijo

        Wel, dit is u rekenaar, gebruik wat u verkies, daar sal altyd mense wees wat sê dat dit beter is om x dinge te gebruik in plaas van y bla bla bla.

        en in Linux is daar baie maniere om dieselfde xD te doen

        doel van alternatiewe
        'n alternatiewe ACPI vanaf kern 2.6 om te weet dat die las is:
        kat / sys / klas / kragvoorsiening / BAT1 / kapasiteit

  4.   reën dijo

    Daar is diegene wat daarvan hou dat al die geskeduleerde take in een lêer verenig word. In plaas daarvan om 'n lêer vir elkeen hiervan te skep.

    Dit lyk vir my 'n bietjie buitensporig xD

    1.    lewendig dijo

      As u die stelselmatige cron a bedoel, lyk dit nie vir my buitensporig nie, dit lyk soos 'n kak op 'n stok. Wat 'n manier om jou lewe te kompliseer.

  5.   ThecaTony dijo

    Die idee is baie goed, dit word waardeer.

    Dit sou nodig wees om die teks aan te pas met die gegewens oor die batterylading wat reën in die kommentaar deurgegee het, wat die afhanklikheid van acpi uitskakel.
    Wat ek vreemd vind, is dat sodra die vasgestelde perke geslaag is, herhaalde kennisgewings begin aankom, of hoe? Indien wel, moet 'n addisionele beheer bygevoeg word, byvoorbeeld:

    # / Bin / sh
    BATLVL = $ (kat / sys / klas / kragvoorraad / BAT0 / kapasiteit)
    as [$ BATLVL -ge 80]; dan
    as [! -a / tmp / batwarn]; dan
    notify-send –urgency = critical – expire-time = 5000 –app-name = Battery –icon = battery "Battery Notification" "Ontkoppel die elektriese stroom asseblief";
    raak / tmp / batwarn;
    fi
    elif [$ BATLVL -le 40]; dan
    as [! -a / tmp / batwarn]; dan
    in kennis stel-stuur – noodgeval = kritiek –verlooptijd = 5000 –app-name = Batterij –icon = battery "Batterykennisgewing" "Skakel die krag aan"
    raak / tmp / batwarn;
    fi
    anders
    as [-a / tmp / batwarn]; dan
    rm -f / tmp / batwarn;
    fi
    fi

    (Bogenoemde is nie getoets nie, alhoewel ek dink dit werk goed)

    Cheers! "

    1.    lewendig dijo

      Dankie vir die bydrae, ek probeer dit nou en ek sê dit vir u.

  6.   Edu dijo

    Weet iemand hoe om die temperatuur van die skootrekenaar te beheer en te versag? Dit is dat die temperatuur tot meer as 40 grade Celsius styg en baie meer hulpbronne van die masjien verbruik as u na 'n video op YouTube kyk.

    1.    Pep dijo

      Die skoonmaak van die waaier kan help, byvoorbeeld met 'n stofsuier. Haal dit uitmekaar vir skoonmaak, dit hang af van u vaardighede en of u seker is van wat u doen.

      Waaierbasis is ook goed, maar hou die waaier so groot as moontlik, want dit sal meer lug laat beweeg.
      'N Paar jaar gelede, met 'n dell xps, sonder die basis, was dit onmoontlik om te werk. Namate dit warmer geword het, het dit stadiger en warmer geword. Met 'n basis met 'n waaier het ek dit baie ordentlik laat werk.

      Ek hoop dat u dit nuttig sal vind.

  7.   Gonzalo Martinez dijo

    Baie goeie draaiboek!

    Wat ek gedoen het, was om dit 100 te laat laai, ek haal dit uit en gebruik dit met gelykstroom. Die battery het dit gebruik as daar geen stroom naby was nie.

    Nou met Mac kan ek nie

  8.   Luciano Lagassa dijo

    Hallo, u idee is baie goed. Ek sê vir u dat ek dieselfde idee in gedagte gehad het. Nou het ek u teks begin sien en aangepas en aangepas sodat dit u net waarsku as dit ooreenstem. Ek slaag u die resultaat.

    STATUS = acpi | awk '{druk $ 3}' NUMBER = acpi | awk '{druk $ 4}' | sny -c 1-2 eggo $ STATUS $ NUMBER% as ["$ STATUS" == "Ontlaai,"] dan as [$ NUMBER -le 40] dan kennisgewing-stuur --urgency = kritiek --expire-time = 5000 --app-name = Battery --icon = battery "Battery Notification" "Verbind asseblief die krag" fi elif ["$ STATUS" == "Laai,"] dan as [$ NUMBER -ge 80] dan in kennis stel -stuur - dringendheid = kritiek - expire-time = 5000 - app-name = Battery --icon = battery "Battery Notification" "Skakel die krag uit" fi fi
    1.    lewendig dijo

      Goed, alhoewel ek op die voorstel van sommige en ander kommentaar dit nou so het:

      #! / bin / bash # # - * - KODERING: UTF-8 - * - # Hierdie program is gratis sagteware. U kan dit herverdeel en / of # wysig onder die voorwaardes van die GNU General Public License # soos gepubliseer deur die Free Software Foundation, of weergawe 2 van daardie lisensie, of (na u keuse) enige latere weergawe. # # As u enige wysigings aan hierdie aansoek aanbring, moet u altyd die oorspronklike outeur van die aansoek noem. # # FromLinux.net CC-BY-SA 2015 # Skrywer: ELAV  
      
      BATLVL = $ (cat / sys / class / power_supply / BAT1 / capacity) as [$ BATLVL -ge 80]; dan as [! -a / tmp / batwarn]; stel dan in kennis-stuur - noodgeval = kritiek - uitbreek-tijd = 5000 --app-naam = Batterij --icon = battery "Batterykennisgewing" "Koppel asseblief krag af"; raak / tmp / batwarn; elif [$ BATLVL -le 40]; dan as [! -a / tmp / batwarn]; stel dan in kennis-stuur - noodgeval = kritiek - uitbreek-tijd = 5000 --app-naam = Batterij --icon = battery "Batterykennisgewing" "Verbind asseblief krag" touch / tmp / batwarn; anders as [-a / tmp / batwarn]; dan rm -f / tmp / batwarn; fi fi fi
      1.    xxxtonixxx dijo

        Wat ek nie verstaan ​​nie, is die noodsaaklikheid om 'n leë lêer te skep wat geen waarde stoor nie, en ook nie om iets te stoor nie, aangesien dit wat u ondersoek, u moet ondersoek op die tydstip waarop die script uitgevoer word en nie daarna nie, of waardes vergelyk of enigiets daarvoor styl. Ek dink dat die skep van 'n lêer nie die beste opsie is nie. Skep u dit as 'n kontrolepunt of so dat dit nie meer as een keer of so iets sal loop nie?

    2.    Luciano Lagassa dijo

      Hallo, die bron wat gebeur het, het 'n paar foute en ek het dit skoner, dit lyk asof dit baie goed werk.

      STATUS = acpi | awk '{druk $ 3}' NUMBER = acpi | awk '{druk $ 4}' | sny -c 1-2 as dit ooreenstem met "$ STATUS" "Ontlaai" dan eggo "Laai $ NUMBER% af" indien [$ NUMBER -le 40] dan eggo "Verbind die krag" meld-stuur - nood = kritiek - expire-time = 5000 --app-name = Battery --icon = battery "Battery Notification" "Verbind die elektriese stroom" fi elif expr match "$ STATUS" "Laai" en eggo "Laai $ NUMBER%" as [$ NUMMER -le 80] eggo dan "Skakel asseblief die krag uit" kennisgewing-stuur - noodgeval = kritiek - expire-time = 5000 --app-name = Battery --icon = battery "Battery Kennisgewing" "Ontkoppel die elektrisiteit asseblief "fi fi
  9.   jony127 dijo

    Hallo, wat u sê, is meer 'n stedelike legende as enigiets anders. Ek het onlangs 'n skootrekenaar gekoop en begin soek na inligting oor hierdie onderwerp, die gevolgtrekking: laai die battery altyd op 100% en laai dit ook soveel moontlik voordat u dit weer laai.

    Die battery het x nuttige lewensduur-laaisiklusse, dus hoe meer u die lewensduur verminder, hoe meer u dit laai.

    Ek het die tegniese diens van Fujitsu en Motorola gekontak en hulle het albei vir my gesê wat ek hierbo gesê het. Geen vervaardiger gaan aanbeveel dat u die battery net tot 80% laai nie, of dat u dit nie onder x persentasie laat ontlaai nie, want dit is verkeerd, ek herhaal, dit is die beste om die volle kapasiteit van die battery te benut ontslag.

    As u ook die limiete gebruik wat u voorstel, sal ons die battery elke nou en dan moet laai, en dit is ook nie sinvol nie, sê ek?

    Verwyder die skrif aangesien die battery gebruik word soos hierbo uiteengesit.

    Groete

  10.   Armando Leisure dijo

    'N Baie interessante onderwerp, vir my lyk die kennisgewing baie nuttig, dit is 'n funksie wat in enige distro geïmplementeer kan word.
    Het iemand dit in Linux MInt geïmplementeer? dit sal interessant wees om te sien hoe dit werk.

    1.    Slimbook-span dijo

      goeie,
      Vir Linux Mint kan u Ubuntu gebruik, u het dit hier:
      https://slimbook.es/tutoriales/linux/45-script-linux-para-avisar-de-batearia-cargada
      Beste groete,
      Slimbook-span

  11.   Toon dijo

    Man wat 'n goeie blog is dit, ek het dit net ontdek, ek het Ubuntu vir ongeveer 15 dae getoets en alles lyk baie interessant, vinnig en ... wel, ek hou regtig van hierdie wêreld, en hierdie blog van diegene wat ek besoek het, lyk vir my, dink ek, die beste.

  12.   fredericlinux dijo

    Wel, PSS wat ek JBattery 'n paar maande gelede geskep het, dit is 'n Java-app waarmee u grafies dieselfde kan doen. In sy mees onlangse weergawe kan u selfs die gesondheidstatus van die battery ken. hulle kan die projek in ken

    http://niconsystem.zz.mu/proyectos/jbattery

    1.    lewendig dijo

      interessante

  13.   David dijo

    Ek het verskeie dinge met u skrif geleer. Oor batterye het u al op verskeie interessante punte kommentaar gelewer, maar ek sal 'n paar aspekte neerskryf wat volgens my belangrik is oor batterye. Ek hou van radiobeheer, die Lipo-batterye wat ons gebruik, is fyner, maar baie soortgelyk aan dié van litium wat in skootrekenaars gebruik word. In ons omgewing is ons en ons moet baie versigtiger met batterye wees, dit is ietwat gevaarliker (LiPo) en dit kos ons 'n ooggesig, en daarom wil ons dit in 'n goeie toestand hou.

    1.- Dit moet nooit oorlaai of oorlaai word nie. Dit word goed beheer deur die stroombane van u skootrekenaar, anders is dit onveilig en sal vervaardigers meer as een skrik en herinnering hê. Daarom word enige toestel met litiumbatterye slegs uitgeskakel as dit lae battery het (byvoorbeeld selfone). As die lading 100% bereik, handhaaf hulle 'n minimum onderhoudsstroom. (Kyk na 'n mobiele persoon as dit 100% bereik, word die hitte verminder). In moderne skootrekenaars neem hulle die stroom verkieslik vanaf die kraginvoer in plaas van die battery wanneer dit ingeprop is, dus dit moet geen probleem wees om dit ingeprop te hou nie, selfs al is dit 100%. Om 'n goeie batterygesondheid te handhaaf, sal dit natuurlik goed wees om te voorkom dat dit uitskakel omdat dit die minimum bereik het, maar 40% sal buitensporig wees. Ek dink dat 10-15% genoeg sou wees.

    2.- Hitte verneder hierdie batterye baie, dit is verkieslik om dit op te laai en op 'n koel plek te gebruik, dit sal waarskynlik minder tyd neem om op 'n koel plek te laai as in 'n warm, om nie te praat van ontlading nie. Die probleem is dat skootrekenaars redelik warm word. As u dit regkry om die temperatuur te verlaag, sal dit nog 'n paar minute duur.

    3.- Hoe meer ons die hoeveelheid kere wat ons laai, verminder, hoe beter. Kwaliteitbatterye het 'n nuttige gebruiksduur van ongeveer 1000 laadsiklusse. As u dit goed behandel het, sal dit langer hou as dit hard behandel word, sal die gebruiksduur daarvan vroeër verminder. Let op dat die battery van selfone of skootrekenaars na 'n paar jaar al hoe minder hou. As ons van 20% tot 100% hef, sal dit langer as 40 tot 80% duur.

    4.- Die interne stroombane van moderne skootrekenaars stel u in staat om die batterygebruiksprofiel in te stel, meestal gekoppel aan die stopcontact of in die skootrekenaarmodus. As u aan die stroom gekoppel gaan wees, moet u die metode instel (die vervaardigersagteware wat dit doen, is helaas slegs beskikbaar vir Windows, maar dit kan in die BIOS geïnstalleer word), die feit is dat dit in die ingeslote modus die laai wanneer dit 80% bereik, want dit word die beste onderhou en bewaar as 'n battery nie gebruik word nie. Die laai begin wanneer die battery onder 40% daal. Dit is my voorkeurkonfigurasie. Ek moet net in gedagte hou dat as u dit op enige tydstip ontkoppel moet gebruik, die oorspronklike hoeveelheid van die battery 80% sal wees. As u dit in draagbare modus plaas, sal dit 100% laai, maar as ek dit reg onthou, sal dit nie weer begin laai voordat dit onder 'n minimum waarde val nie (miskien tussen 40 en 60%), sodat u perfek kan werk ingeprop met hierdie modus as u gewoonlik baie daarmee beweeg

    5.- Huidige tegnologie is gewoonlik litium, dus ly hulle nie aan geheue-effek nie. Die opsies wat baie jare gelede in die bios, wat verskillende laai / ontlaadsiklusse gemaak het om skoon te maak of die battery te probeer herstel, het nie meer sin gehad nie. Dit was meer sinvol in die van nikkelkadmium en in 'n mindere mate die van nikkelmetaalwaterstof, maar nie in dié van nikkelkadmium nie (Lithium, Life, Lipo).

    6. - As u rekening hou met wat in punt 1 en 3 gesê is, moet u die batterye nie lank leeg laat staan ​​nie, want dit word geleidelik ontlaai. Hierdie teks is 'n goeie manier om te waarsku as u die skootrekenaar met die battery in die "skootrekenaarmodus" het en u dit lankal onbenut sal laat, dus die ideaal is om die battery ongeveer 80-85% te laat staan. laai, want dit is hoe beter hulle die lading oor tyd behou en in werklikheid is dit hoe dit moet kom toe u dit op sy dag gekoop het.

    Weet as 'n opmerking dat die laaste 5% (95-100%) van die battery baie meer kos om op te laai, dus as u haastig is om dit gereeld te gebruik, is dit nie die moeite werd om te wag totdat dit 100 is nie. % vir slegs 5%.

    Beste groete,
    David.

    1.    lewendig dijo

      Uitstekende verduideliking .. baie dankie

  14.   Fabian dijo

    Goeiemiddag, ek probeer u teks redigeer deur die wenke te verhoog om 'n geluid soos die ander kennisgewings te speel, maar dit speel nie, u kan my help deur my te vertel wat ek verkeerd doen.
    voorbeeld.

    kennisgewing-stuur -h string: klanklêer: /usr/share/sounds/KDE-Sys-Error-Printing.ogg «toets »« Dit is 'n goeie kennisgewingstoets "

  15.   Diego dijo

    Goed ...
    Meer as 'n sny

    RESULTATE =cut -c 1-2 tmp_bateria.txt

    Moet daar nie 'n tr gedoen word nie?

    RESULTATE =tr "%," " " < tmp_bateria.txt

    Maar as die battery op 100 is, sal dit 10 (-c 1-2) neem en u sal vra om aan te sluit.
    Ag ... antwoord ek myself. Met hierdie draaiboek moet u nooit 100 bereik nie 🙂 Soos my geval is met die aansluiting van die adapter: p
    Dankie.

  16.   Mario dijo

    Hi. Uitstekende teks, ek dink daaraan om iets soortgelyks te doen, maar gebruik eerder die elektroniese laaikontroleerder wat byvoorbeeld sorg dat die battery 100% laai en die energie direk van die bron af neem as die battery bereik. Op so 'n manier dat daar gekies word om tot 80℅ op te laai en wanneer ek die vlak bereik, stop die beheerder energie na die battery en neem hy slegs die stroom van die bron af, sonder dat dit gekoppel en ontkoppel moet word , onnodige siklusse deurbring en terselfdertyd dat die battery altyd werk binne die reekse wat die voortydige agteruitgang daarvan vermy

  17.   Jose Alberto Chavez Alvarez dijo

    Jammer dink jy dink jy kan die script 'n aflos aktiveer om die skootrekenaar se vrag te deaktiveer en te aktiveer as dit op 'n lae laaivlak is.