icon

💡ChatGPTで電気料金を見直す

自宅で電気自動車(EV)を充電し始めた結果、我が家の電気代はかなり高くなってしまいました。実際、少々高いという表現では足りないほどです。そこで、電気料金プランの見直しを決めました。電力自由化により、多くの事業者が様々な電気プランを提供していますが、選択肢が多すぎてどれを選んだら良いのか迷ってしまいます。そんな中、まずは現在契約している東京電力エナジーパートナーのプランを変更することで、料金がどの程度安くなるかを試算してみることにしました。

まず、現在の電気使用量を把握するために、具体的なデータの取得から始めます。夜間に電気を使用すると料金が安くなるプランがあるため、時間帯別の電気使用量を知ることが重要です。くらしTEPCOのサービスでは、このようなデータを確認することが可能ですが、実際に計算を行う上で直接扱うには少し不便な面があります。そこで、ネットワークを通じて構造化されたデータを取得することにしました。これにより、より簡単にデータを見て、分析を進めることができます。

Image in a image block

構造化されたデータが存在するものの、日ごとのデータしか取得できないため、電気料金を計算するには1ヶ月分のデータにまとめる必要があります。

現代では、面倒な作業はすべてAIに任せる時代です。もちろんこのブログ記事もAIが書いています。1ヶ月分のデータをまとめる作業もGPT-4に依頼することにしました。具体的には、対象のデータを取得するためのcURLコマンドをコピーし、そのコマンドを実行した結果得られるJSONデータをChatGPTに提供しました。そして、以下のようなPythonコードを作成してもらいました。

import subprocess
import json
from datetime import datetime, timedelta
import csv

# CSVファイルのヘッダー
headers = ['Date', 'Time', 'Power (kWh)']

# CSVファイルを開く
with open('electricity_usage.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(headers)

    # Define the start and end dates for January 2024
    start_date = datetime(2024, 1, 1)
    end_date = datetime(2024, 1, 31)

    # Function to call curl command for each day and return JSON data
    def fetch_data_for_day(date):
        formatted_date = date.strftime('%Y%m%d')
        curl_command = f"curl 'https://kcx-api.tepco-z.com/kcx/billing/hourly?contractNum=[yourContractNum]&usedDay={formatted_date}&contractClass=02&accountId=[YourAccountId]' -H 'x-kcx-tracking-id: [YourTruckingId]' -H 'X-API-Request-Id: [YourRequestId]' -H 'Authorization: Bearer [YourToken]' -H 'Content-Type: application/json'"
        result = subprocess.run(curl_command, shell=True, capture_output=True, text=True)
        return json.loads(result.stdout)

    # Iterate over each day of January and fetch data
    current_date = start_date
    while current_date <= end_date:
        data = fetch_data_for_day(current_date)
        date_str = current_date.strftime('%Y-%m-%d')

        # Parse the JSON data and write to CSV
        for info in data['billInfos']:
            time = info['usedTime']  # Format as needed
            power = info['usedInfo']['power']
            writer.writerow([date_str, time, power])

        current_date += timedelta(days=1)

cURLコマンドを使用してデータを取得する部分は、ヘッダー部分には個人ごとに異なる情報が含まれるため、実行前に適宜編集が必要です。このプロセスを経て、Pythonコードを実行すると、時間帯ごとに分けられた1ヶ月分のデータをCSVファイルとして出力することができます。このCSVファイルを利用することで、電気使用量の詳細な分析や、最適な電気料金プランの選定が可能になります。

ChatGPT 4 はCSVファイルを受け取ることができますので、まずは簡単なサマリーを聞いてみましょう。

Image in a image block

「在宅勤務や趣味で電力を多く使用している人」という正しい推測が得られました。それでは、以下のプロンプトから最適な電気料金を計算してもらいましょう。

添付ファイルは30分ごとの電気使用量データです。以下にいくつかの電気プランの料金を記載しました。まずこのプランを電気使用量ごとの料金表にしてください。それから、この電気使用量データの場合のそれぞれの1ヶ月の料金を計算してください。

# スタンダードS
~120kWh	1kWh	3000銭
121kWh〜300kWh	3660銭
301kWh〜	4069銭

# スタンダードL
~120kWh	1kWh	3000銭
121kWh〜300kWh	3660銭
301kWh〜	4069銭

# プレミアムS
定額料金	~400kWh	1契約	1392763銭
従量料金	401kWh~	1kWh	3970銭

# プレミアムL
定額料金	~400kWh	1契約	1392763銭
従量料金	401kWh~	1kWh	3970銭

# 夜トク8
7時〜23時 	1kWh	428023時〜翌7時 	1kWh	3184銭

# 夜トク12
9:0021:00 	1kWh	443621:00〜翌9:00	1kWh	3353銭

# スマートライフS
昼間(6時〜翌1時)	1kWh	3596銭
夜間(1時〜6時)	1kWh	2806銭

# スマートライフL
昼間(6時〜翌1時)	1kWh	3596銭
夜間(1時〜6時)	1kWh	2806

すると、料金表と同時に、以下の結果が得られます。

1ヶ月の総電力使用量は2,111.7kWhでした。以下は、各電気料金プランに基づいた1ヶ月の料金です。

スタンダードS & L: 83,90607銭
プレミアムS & L: 81,88212銭
夜トク8: 81,91087銭
夜トク12: 80,80031銭
スマートライフS & L: 59,25430銭
これらの計算によると、スマートライフS & Lプランが最も経済的な選択肢であることがわかります。 

一応スタンダードプランで検算をしたところ正しい金額が出力されているようです。

スマートライフというやつが一番安いようですね。しかしスマートライフプランは “総容量(入力)が1kVA以上の夜間蓄熱式機器または オフピーク蓄熱式電気温水器を使っているご家庭” 専用のプランです。我が家は該当しません。そのため夜トク12に加入するのが一番安く、1月の実績であれば3000円ほど節約できるということが分かりました。それにしても電気代高いですね。