動機
昨年の11月にVAIO S13を買ったのですが,購入当初から「バッテリが少なくなっています」という警告が出ずにいきなりバッテリ切れでスリープに入ることがありました。
指紋リーダーもフリーズすることがよくあったので,「ソフトウェア(Windows?)のインストールに失敗してるのかな」と考えてとりあえず放置していました
Windowsのアップデートをいくつか経て,今はバッテリ残量低下の警告がでるようになってきたのですが,電池残量が30~20%のところから一気に0%に減ってPCがダウンすることがたまにあります。
ただ,毎回そうなるわけではなく,いまいち再現性がない不具合なのでログをとってみたいと思うようになりました。
pythonによるバッテリ残量の取得
バッテリに関するセンサーが取得した情報はpsutil
パッケージで得られるようです。
psutil documentation — psutil 5.5.0 documentation
で,日時とバッテリ残量(%),充電器接続の有無といった情報を一定時間ごとに取得してcsvに保存するコードを書いてみました(私はエンジニアリング技術が皆無なのでたぶんスマートなコードじゃないと思いますが…)
import psutil import datetime import pandas as pd import os import time i = 0 while True: # バッテリ情報 btr = psutil.sensors_battery() # 現在時刻情報 dt_now = datetime.datetime.now() # date and time # make DF log_i = pd.DataFrame(data = {"date": [dt_now.strftime('%Y-%m-%d')], "time": [dt_now.strftime('%H:%M:%S')], "battery_left_percent": [btr.percent], "battery_power_plugged": [btr.power_plugged]}) # print print(log_i) # DF binding if i == 0: log = log_i else: log = pd.concat([log, log_i]) # save file_name = "log_"+dt_now.strftime('%Y-%m-%d')+".csv" log.to_csv(file_name, index = None) # sleep time.sleep(60) i = i + 1
データの様子
取得したcsvデータを使って差分をとってバッテリ残量の変化量を算出し,plotするとこんな感じ。
-15前後の2つの点は,1分間にバッテリが約15%減少したことを示します。
やっぱおかしいですね。サポートに連絡します…