Github

Objectif

Ce script a été conçu pour vérifier les perfomances d’une batterie de remplacement pour un Razer Blade 15 Advanced (2020), mais il peut supporter la plupart des ordinateurs portables, ou système sur batterie utilisant Linux. Il permet d’enregistrer périodiquement le courant, la tension, la capacité, la charge ainsi que la température et l’état de la batterie. Ce script vous permet de spécifier l’intervalle de temps entre chaque enregistrement, le chemin de la batterie, le fichier de sortie, le temps d’acquisition et si vous voulez ou non une interface en temps réel.

Fonctionnalités

  • Enregistre les données de la batterie dans un fichier CSV.
  • Permet de spécifier le fichier de sortie et l’intervalle.
  • Option pour spécifier un chemin de batterie personnalisé.
  • Temps d’acquisition maximum (fonctionne indéfiniment par défaut).
  • Affiche une interface en temps réel avec les données de la batterie.
  • Prend en charge les arguments de ligne de commande et les options d’aide.

Prérequis

  • Système Linux avec /sys/class/power_supply/ pour les informations sur la batterie.
  • Commande acpi installée (pour la lecture de la température, optionnel).
  • Shell Bash.

Installation

chmod +x battery_logger.sh

Usage

./battery_logger.sh [OPTIONS]

Options:

  • -o, --output <FILE>
    Spécifie le fichier CSV de sortie où les données de la batterie seront enregistrées (par défaut : battery_log.csv).

  • -i, --interval <SECONDS>
    Spécifie l’intervalle de temps entre chaque enregistrement en secondes (par défaut : 60).

  • -b, --battery <BATTERY_PATH>
    Spécifie le chemin vers les informations de la batterie (par défaut :/sys/class/power_supply/BAT* et prend la première occurence).

  • -t, --time <SECONDS>
    Spécifie le temps d’acquisition maximum du script en secondes. Si non spécifié ou 0, le script fonctionne indéfiniment.

  • --no-interface
    Désactive l’interface en temps réel (par défaut : activée).

  • -h, --help
    Affiche l’aide.

Pour quitter le script, appuyez sur Ctrl+C.

Examples:

  • Pour enregistrer indéfiniment les données de la première batterie toutes les 30 secondes dans un fichier nommé battery_0_log.csv :

    ./battery_logger.sh -o battery_0_log.csv -i 30
    
  • Pour enregistrer les données de la deuxième batterie toutes les 2 secondes dans un fichier nommé my_battery_log.csv pendant 1 heure :

    ./battery_logger.sh -o my_battery_log.csv -i 2 -b /sys/class/power_supply/BAT1 -t 3600
    

Interface en temps réel:

L’interface affiche les données de la batterie en temps réel et la taille du fichier de log. Elle est activée par défaut et peut être désactivée en utilisant l’option --no-interface.

====================== BATTERY LOGGER =====================
Interval: 10 seconds
Battery Path: /sys/class/power_supply/BAT0
Start Time: Fri Dec  6 07:31:27 PM EST 2024
===========================================================
Log File: battery_log.csv
Current Log File Size: 4.0K

=================== Current Battery Data ==================
| Metric         | Value (converted)  | Raw Value         |
|----------------|--------------------|-------------------|
| current_now    | 1089.000 mA        | 1089000           |
| charge_now     | 4073.000 mAh       | 4073000           |
| voltage_now    | 16.071 V           | 16071000          |
| capacity       | 75 %                                   |
===========================================================
temperature      : 27.8 °C
charging status  : Discharging
===========================================================
Progress: |###########                      | ETA: 01:36:21

Notes

  • current_now : Courrant en microampères. Notez que certains systèmes peuvent ne rapporter que des valeurs positives. Dans ce cas, l’état de charge peut être utilisé pour déterminer la direction du courant.
  • charge_now : Charge en microampères-heures.
  • capacity : Capacité de la batterie en pourcentage.
  • voltage_now : Tension en microvolts.
  • temperature : Température de la batterie en degrés Celsius.
  • charging status :
    EtatValeur
    Charging1
    Discharging-1
    Full0
    Unknown0

Problèmes connus

  • Temperature de la batterie : sur certains systèmes, la température de la batterie est toujours de 27.8°C.