Jak liczyć cykle baterii?

14

Jak większość użytkowników, którzy przeszukali, wiedzą, implementacja ACPI producentów to bałagan, a dla większości naszych laptopów informacje o baterii są niedostępne lub niepoprawne (w przypadku Dell Inspiron 15z stawka jest dzielona przez 10).

Czy istnieje sposób (za pomocą skryptu perl / python / bash, istniejący pakiet lub cokolwiek innego) rejestrowania cykli baterii w systemie Ubuntu 12.04?

(co to jest cykl baterii?)

Cykl ładowania oznacza wykorzystanie całej mocy akumulatora, ale nie musi to oznaczać pojedynczego ładowania. Na przykład możesz słuchać swojego [urządzenia] przez kilka godzin jednego dnia, zużywając połowę jego mocy, a następnie w pełni go naładować. Jeśli zrobiłbyś to samo następnego dnia, liczyłoby się to jako jeden cykl ładowania, a nie dwa, więc ukończenie cyklu może potrwać kilka dni. Za każdym razem, gdy zakończysz cykl ładowania, zmniejsza to nieco pojemność baterii, ale możesz przełączyć [baterię urządzenia] przez wiele cykli ładowania, zanim utrzymają one tylko 80% pierwotnej pojemności baterii. Apple dzięki uprzejmości

Mój laptop to Clevo W150HRM, a kiedy to zrobię: cat /sys/class/power_supply/BAT0/cycle_count Dostaję: 0 Mój laptop ma 2 lata.

Z góry dziękuję.

The_guy_with_a_laptop
źródło
liczniki nie są trudne. jakich danych możesz użyć do liczenia?
grantbow 24.04.15
Oczywiście liczniki są trudne! Są przechowywane w oprogramowaniu układowym baterii. (Tak, akumulatory mają oprogramowanie układowe)
Bahaïka

Odpowiedzi:

1

Właśnie przyjrzałem się twojemu pytaniu ... więc może być za późno na odpowiedź, ponieważ minęło wiele lat, kiedy je opublikowałeś.

Używasz raczej starego ubuntu, który był znany / miał wtedy problemy z tą konkretną domeną.

Zachęcam jednak do pytania: Jak sprawdzić stan baterii za pomocą terminala?

Odpowiedź Lekensteyn to początek tego, czego szukasz.

Jak widać w odpowiedzi, sprawa ewoluuje wraz z wersją jądra, więc rozwiązanie ...

Aby być bardziej szczegółowym i powracać do twoich warunków (uzyskać status i Ubuntu 12.04), potrzebujesz ulepszenia w swoim systemie i możesz utworzyć skrypt, taki jak:

#!/bin/sh
DATE=$(date +%Y-%m-%d:%H:%M:%S)
STATE=$(upower -i /sys/class/power_supply/BAT0 | awk '/state/ {print $2}')
echo "$DATE $STATE" >> /var/log/battery_status.log

Następnie dodaj go do pętli procesu monitorowania ... lub crontab.

Może to wymagać uprawnień roota (sudo)

Mam nadzieję że to pomoże.

Antoine Rodriguez
źródło
Próbowałem, $ STATE zwraca puste. nawet po prostu uruchamianie linii osobno. Czego brakuje? ys GCP
GCP420