Como contar os ciclos da bateria?

14

Como a maioria dos usuários que pesquisou sabe, a implementação ACPI dos fabricantes é uma bagunça e, para a maioria dos nossos laptops, as informações da bateria estão indisponíveis ou incorretas (em um dell inspiron 15z, a taxa é dividida por 10).

Existe uma maneira (usando um script perl / python / bash, um pacote existente ou o que seja) para registrar ciclos de bateria no Ubuntu 12.04?

(o que é um ciclo de bateria?)

Um ciclo de carga significa usar toda a energia da bateria, mas isso não significa necessariamente uma única carga. Por exemplo, você pode ouvir seu [dispositivo] por algumas horas em um dia, usando metade de sua energia e depois recarregá-lo completamente. Se você fizesse a mesma coisa no dia seguinte, contaria como um ciclo de carga, não dois, portanto, você pode levar vários dias para concluir um ciclo. Cada vez que você conclui um ciclo de carga, ele diminui um pouco a capacidade da bateria, mas você pode passar por [ciclos de carga do dispositivo] por vários ciclos de carga antes que eles tenham apenas 80% da capacidade original da bateria. Cortesia da Apple

Meu laptop é um Clevo W150HRM e, quando o faço: cat /sys/class/power_supply/BAT0/cycle_count Recebo: 0 meu laptop tem 2 anos.

Agradecemos antecipadamente.

The_guy_with_a_laptop
fonte
contadores não são difíceis. quais dados você pode usar para contar?
grantbow
Claro que os contadores são difíceis! Eles são armazenados no firmware da bateria. (Sim, as baterias têm firmwares)
Bahaïka

Respostas:

1

Acabei de analisar sua pergunta ... então pode ser tarde demais para responder, já que faz anos que você a publica.

Você está usando um ubuntu bastante antigo, conhecido / conhecido na época por ter problemas nesse domínio específico.

No entanto, encorajo você a ver esta pergunta: Como verificar o status da bateria usando o terminal?

A resposta de Lekensteyn é o começo do que você está procurando.

Como você pode ver na resposta, o assunto evolui ao longo da versão do kernel e, portanto, a solução ...

Para ser mais específico e refazer suas condições (obter status e ubuntu 12.04), você precisa de upower no seu sistema e pode criar um script como:

#!/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

Em seguida, adicione-o em um loop do processo de monitoramento ... ou em um crontab.

Pode precisar de privilégio root (sudo)

Espero que isto ajude.

Antoine Rodriguez
fonte
Eu tentei, o $ STATE retorna em branco. mesmo apenas executando a linha separadamente. O que está faltando? ys GCP
GCP420