T430u [gelöst] T430 Akku mit Python auslesen und Ergebnis in Datei loggen

fred0815

New member
Registriert
12 Juni 2024
Beiträge
2
Ich habe meinen T430 mit neuen Akku-Zellen bestückt und ein kleines Programm mit Python geschrieben, welches mir Zeit und Spannung in eine Datei schreibt.
Vielleicht kann es jemand gebrauchen:
Python:
#!/usr/bin/env python3

import datetime
from os import system
from time import sleep

DATEI = "/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:08/PNP0C09:00/PNP0C0A:00/power_supply/BAT0/hwmon1/in0_input"
log = "akkuzellen_laufzeit_test.log"

def main():
    startzeit = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print(startzeit)
    with open(log, "w") as l:
        l.write(str("\nBeginn der Messung: {}".format(startzeit)))
    while True:
        with open(DATEI, "r") as spannungsdatei:
            v = int(spannungsdatei.read())
            now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            cls = lambda: system('clear')
            cls()
            gesamt = v/1000
            print("{0:.2f} Volt insgesamt".format(gesamt))
            zelle = gesamt/3
            print("{0:.2f} Volt pro Zelle".format(zelle))
            now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            with open(log, "a") as l:
                l.write(str("\n{0}\n {1:.2f} Volt gesamt\n {2:.2f} pro Zelle\n".format(now, gesamt, zelle)))
            sleep(60)
            if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print("Abbruch")
Wenn man nicht jede Minute loggen will, kann man den sleep(60) natürlich auch anpassen, z.B. sleep(600) für eine Messung alle 10 Minuten.
Möglicherweise lässt sich das auch auf andere Modelle anwenden, das kann ich aber nicht testen.
 
Zuletzt bearbeitet:
Code:
            zelle = gesamt/3
            print("{0:.2f} Volt pro Zelle".format(zelle))
Zwei Anmerkungen:
1. In einem T430-Akku sollten entweder 6 oder 9 18650-Zellen verbaut sein. 2 bzw. 3 Zellen sind jeweils parallel geschaltet. Drei dieser Pakete sind in Reihe geschaltet.
Was du hier als "Zelle" "misst" ist eigentlich ein Paket von Zellen.

2. "misst" habe ich in Anführungszeichen geschrieben, weil du ja einfach durch die drei Pakete teilst, da du ein einzelnes Paket/eine einzelne Zelle nicht messen kannst. Das gibt die Ladeelektronik nicht her. Du ermittelst hier das arithmetische Mittel der Paketspannungen, aber nicht die Spannungen der Einzelpakete.
Das ist insofern relevant, als dass sich nicht alle Zellen gleich verhalten. Wenn z.B. die Zellen eines Pakets schneller degenerieren als die der anderen beiden Pakete, dann wirst du das in der gemittelten Ausgabe nicht sehen.
 
Das ist richtig, beim meinem sind 3s2p, also 3 in Serie und 2 parallel verbaut, ich wollte nur nicht die Spannung im Kopf durch 3 teilen.
Ob die Ladeelektronik auch balancieren kann, weiß ich auch nicht.
:cool:
 
Doch, die Elektronik des Akkus, kann die einzelnen Spannung, der in Serie verbauen Akkus auslesen.
Aber das T430 ist nicht in der Lage, dies wiederzugeben, mit der Baureihe davor (X*20) geht das noch.
Nach meinen Infos, kann die Ladeelektronik die Zellen aber nicht balancieren, zumindest habe ich nie beobachtet, dass sich die Spannungen der einzelnen Zellen angleichen, was ich über mehrere Jahre bei einem X220 beobachtet habe
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben