bohemia日記

おうちハックとか画像処理、DeepLearningなど

ブレーカーを落とさないためのおうちハック

こんにちは。ぼへみあです。

突然ですが、電気のブレーカーをいきなり落とされるのって、かなり暴力的だと思いませんか?
安全上、定格電流を超えると危険なので、遮断しなければいけないのは理解できますが、 「電気を使いすぎています」という警告すら一切なく、特定の家電だけが使えなくなるのではなく 突然全電力をカットされるというのは、やりすぎだと思うのです。 昔の家電なら良くても、今の情報家電では、PCやハードディスクの書き込み中に電源を落とされると、ソフトウェア的に死ぬこともあります。

将棋のマスク反則負けでも、一度の警告すらなくすぐに反則負けにされたことが不服だと聞きましたが 電気のブレーカーも、何の警告もなしに電力全カットは、今時のシステムじゃないと思います。

そこで今回は、ブレーカーを落とさないよう、警告してくれる&部分的に家電をOFFにするシステムを作りました。

デモの様子です。

www.youtube.com

システムの全体図です。

読まなくてもいい前提条件

今住んでいるところは、広いワンルームの集合住宅です。
冬になるとよくブレーカーが落ちるので、契約A数を上げてもらおうと、電力会社に電話して確認してもらいましたが 設備の関係で、契約アンペアを上げることはできない、と言われてしまいました。

契約アンペアは30Aありますが、広い部屋のため強力なエアコンが導入されており、寒い日の全力稼働中エアコン+電子レンジでブレーカーが落ちます。

うちの電気を食う主要な家電の消費電力は下記の通りです。

家電 最大消費電力
エアコン 2.790kW
電子レンジ 1.320kW
乾燥機 1.060kW
ドライヤー 1.200kW

電圧は100Vなので、契約アンペアが30Aであれば、3kW以上になるとブレーカーが落ちる可能性が出てきます。

しかし契約アンペア数を超えるとすぐにブレーカーが落ちるというわけでもありません。 配線遮断機(ブレーカー)の動作時間というのは規格で決められており、下記のような時間で動作します。

配線用遮断器の動作時間(電技解釈第33条)

少しだけ(1.25倍)契約アンペアをオーバーしてしまったら1〜2時間以内に 大幅に(2倍)オーバーすると、数分でブレーカーが落ちるということです。

うちの家電達だと エアコン+電子レンジで、2~5分で落ちる エアコン+乾燥機で、15分で落ちる といった感覚です。

これらの家電を同時に使わなければいいやろ!と言われるかもしれませんが 注意していても忘れる時は忘れますし、家族がいる場合、誰が何を使っているかなんて把握できません。 人間の注意に頼るシステムは悪手だと思うのです。

スマートメーターから現在の消費電力を取ってくる

そこでまず初めにやらないといけないのは、「現在どれくらい電力を消費しているか把握すること」です。 現在2024年度の普及100%を目指してスマートメーターに置き換わりつつあります。 そのスマートメーターを用い、電力メーター情報発信サービス(Bルートサービス)を用いることで、現在の電力使用量が取れます。

スマートメーターにアクセスするには、Wi-SUNという無線規格を採用しているHEMS機器が必要になってきます。

こういった無線モジュールを購入して自分でスマートメーターにアクセスする方法がありますが

ROHM (ローム) BP35A1 WI-SUN対応無線モジュール

私は、Nature Remo E liteというデバイスを購入して使っています。

nature.global

このデバイスを使うと、クラウドAPIを介して現在の電力消費量を取得することができます。 pythonだと現在の消費電力をこのように取得できます。

import requests

token="hogehoge"

url = 'https://api.nature.global/1/appliances'
headers = {'Authorization': 'Bearer ' + token , 'accept':'application/json'}
appliances = requests.get(url, headers=headers).json()

# 電力情報を取得
p_list = appliances[0]['smart_meter']['echonetlite_properties']
p_dict={}
for item in p_list:
    key=item['name']
    p_dict[key]=item['val']

power = int(p_dict['measured_instantaneous'])
print('Power_Now:' + str(power))

このように取得できるようになるためには、スマートメーターのBルートの申請や、APIトークンの発行などの手続きが必要です。 こちらのページを参考にしてください。 qiita.com

消費電力を可視化する

Nature Remo E Liteで消費電力量を取得できるようになりましたら、ディスプレイに表示していつでも確認できるようにします。

私は、M5Stickを使って、このように表示しています。

電子レンジの近くに置いて、使う前に消費電力を確認して、エアコンを切るべきかどうか判断しています。

このプログラムは、UIFlowを用いてビジュアルプログラミングで作りました。 こんな感じでプログラミングしました

プログラム本体はこちらです 使う際は、自分のAPIトークンを入れてください。 https://github.com/bohemian916/breaker_alert/blob/main/remo-e-watt_pub.m5f

それでもブレーカーは落ちる

電子レンジを使う前に消費電力を確認するようになりましたが、それでもブレーカーを落としてしまうことがありました。 エアコンをつけまたまま、うっかり乾燥機を回し始めてしまうのです。

やはり、電力を使いすぎた場合に、自動的に警告をしてくれるシステムが必要だと感じました。

消費電力警告&エアコンOFFシステム

最終的に出来上がったのが、冒頭でも見せたこのシステムです。

www.youtube.com

Raspberry Pi のサーバーがメインで動いており、毎分、Nature Remo E liteから取得された消費電力量を取得しています。 その電力量が3500Wを超えていたら、照明を赤色に点滅させて警告し、すぐにエアコンを切り、Google Homeにその旨を喋らせます。 5分の平均電力量が3000Wを超えていても、同じことが起こります。

色が変えられる電球Hueも、赤外線信号を送ることができるNature Remoも、REST APIで制御することができます。 Google Homeは,pythonライブラリのpychromecastを導入することで、あらかじめ生成しておいた任意の音声ファイルを簡単に流すことができます。

ソースはこちらです

https://github.com/bohemian916/breaker_alert/blob/main/breaker_alert.py

今回使用したデバイスたちのamazonリンクです。 全部買わなくても、部分的にこのシステムは稼働可能ですが、APIのあるガジェットを買うと色々組み合わせて遊べて楽しいので、ぜひ検討して見てください。