やりたい事7:浮いた金額計算

やりたい事6で、売買料金を算出しましたが、ソーラーパネルを導入したことにより、結局どれだけ浮いたのかが不明なので以下の金額を算出することにした。

発電金額

ソーラーパネルで発電した電力を、以下の2つに分け金額換算をする

  • 売電分

家で消費せず、電力会社に売った電力と、金額を算出

1kW/h当たり38円で計算をする

  • 消費分

電力会社から買わずに済んだ電力と金額を算出

発電した電力の内、消費してしまった電力

1kW/h当たり24円で計算をする

買電金額

上記の発電で賄えず、電力会社から購入した電力を金額換算する

1kW/h当たり24円で計算をする

こんなメールが届くようになりました

総発電電力:19.06kWh、総使用電力:12.17kWh

だと、1日当たり「635円 」ぐらい浮いている計算になった。

毎日これだけ発電してくれれば、5.6年でソーラーパネルを購入した金額を回収出来る計算になるが、実際には雨や曇りの日などが有るので、何年で回収できるかは不明・・・

将来的には、「回収見込み年数」とかも計算してみようと思う

ソースは以下の通り

ソース

def send_email():

    try:
       #=================================
       # 昨日の時間範囲
       #=================================
       post_datetime = datetime.datetime.now()
       post_datetime = post_datetime + timedelta(hours=9)
       post_datetime = datetime.datetime(post_datetime.year, post_datetime.month, post_datetime.day,0,0,0,0)
       post_datetime = post_datetime - timedelta(hours=24)
       post_datetime_s = post_datetime
       post_datetime_e = post_datetime + timedelta(hours=24)
       post_datetime_s = post_datetime_s - timedelta(hours=9)
       post_datetime_e = post_datetime_e - timedelta(hours=9)
       sql = ("SELECT * FROM List5Min WHERE date_time >= DATETIME('%s') AND date_time < DATETIME('%s') ORDER BY date_time ASC" % (post_datetime_s, post_datetime_e))
       power_consumption = db.GqlQuery(sql)
       power_consumption = power_consumption.fetch(300)
       
       out_power = []
       gen_watt_total = 0
       use_watt_total = 0
       sell_watt_total = 0
       buy_watt_total = 0
       txt = ""
       for fav in power_consumption:
           gen_watt = fav.watt_value1
           use_watt = fav.watt_value1 + fav.watt_value2
           
           gen_watt_total = gen_watt_total + gen_watt
           use_watt_total = use_watt_total + use_watt
           if fav.watt_sell != None:
               sell_watt_total = sell_watt_total + fav.watt_sell
           if fav.watt_buy != None:
               buy_watt_total = buy_watt_total + fav.watt_buy
           txt = txt + (fav.date_time + timedelta(hours=9)).strftime("%Y/%m/%d %H:%M") + '\t' + str(fav.watt_value1_max) + '\t' + str(gen_watt / fav.write_cnt) + '\t' + str(use_watt / fav.write_cnt) + '\r\n'
       
       gen_watt_total = float(gen_watt_total) / (30.0 * 1000.0)
       use_watt_total = float(use_watt_total) / (30.0 * 1000.0)
       sell_watt_total = float(sell_watt_total) / (30.0 * 1000.0)
       buy_watt_total = float(buy_watt_total) / (30.0 * 1000.0)
       use_gen_watt_total = use_watt_total - buy_watt_total
       
       sender_address = "you <xxxx@xxx.xxx>"
       subject = u"電力計測結果" + post_datetime.strftime(" %Y/%m/%d")
       body = u'昨日の電力量結果を送信します。\n\n'
       body += u'総発電電力:' + str.format('{0:03.2f}', gen_watt_total) + u'kWh\n'
       body += u'総使用電力:' + str.format('{0:03.2f}', use_watt_total) + u'kWh\n'
       body += u'\n--------------------\n\n'
       body += u'発電金額\n'
       body += u' 売電分:' + str.format('{0:03.2f}', sell_watt_total) + u'kWh(' + str.format('{0:03.2f}', sell_watt_total * 38) + u'円)\n'
       body += u' 消費分:' + str.format('{0:03.2f}', use_gen_watt_total) + u'kWh(' + str.format('{0:03.2f}', use_gen_watt_total * 24) + u'円)\n\n'
       body += u'買電金額:' + str.format('{0:03.2f}', buy_watt_total) + u'kWh(' + str.format('{0:03.2f}', buy_watt_total * 24) + u'円)\n'
       body += u'\n--------------------\n\n'
       body += u'太陽電池導入による効果(売電分+消費分)\n'
       body += str.format('{0:03.2f}', sell_watt_total * 38 + use_gen_watt_total * 24) + u'円\n'
       body += u'\n--------------------\n'
       body += u'買電金額は24円/kWhで計算しています\n'
       body += u'売電金額は38円/kWhで計算しています\n'
       mail.send_mail(sender=sender_address,
                  to=sender_address,
                  subject=subject,
                  body=body,
                  attachments=[post_datetime.strftime("watt_%Y_%m_%d") + '.txt', txt])
    except:
       logging.error("send mail error")
       logging.error(traceback.format_exc())