我が家の電気料金が高い!
我が家は三井ホームで建てた戸建て住居で全館空調が入っており、かつオール電化ということもあって、ごく一般的な家庭と比較すると電力需要は大きいと思う。
特に夏冬の空調がガンガン稼働する時期は電気代が3万円を軽く超えてくる。
電力会社は東電エナジーパートナーで、電化上手というプランの契約になっている。
このプランは昼間>朝晩>夜間の3つの時間帯で料金が別れていて、この順に高い。

他のプランも検討してみたが、電化上手以上にお得なプランはなさそう。
全館空調は常時運転が基本らしいので(不快になるのも嫌だし)頻繁にON/OFFして節約することは避けたい。
ということで、将来的にはソーラーパネルを屋根に載っけて太陽光発電によって最も料金の高い昼間の買電量を減らしたいと考えている。
売電はせず、自家消費目的で。
もっと言えば、屋根に目一杯載せたソーラーパネルでどれだけ発電できるのか、使い切れないほど発電してくれるようなら、さらに買電量を減らせるよう蓄電池を追加で導入したいとも思っている。
蓄電池に関してはテスラのパワーウォールが容量あたりのコスパが最強で、2020年4月からやっと日本でも販売開始になるようなので、色々と事例が出てきたら第一候補として検討したい。

前置きが長くなったが、将来の太陽光発電に向けて、我が家の電力消費量と買電量をモニタリングできるようにしておきたいと思ったのがきっかけ。
今は電力消費量=買電量だけど、太陽光発電が入ったら電力消費量 ー 太陽光発電量=買電量となるはず。
というわけでまずは買電量をトレースできるようにする。
Bルートの申請とWi-SUNのUSBドングルモジュールの入手
Bルートの申し込み
東電の場合は下記リンクより申し込みが行える。
申し込み後、しばらくすると書面でIDが、登録したメールアドレス宛にパスワードが届くので大切に保管しておこう。
また、自宅の電力メーターがスマートメーターでない場合にはBルートの申し込みと同時にスマートメーターへの切り替え工事の申請もしたことになる。
工事とはいっても家の壁面に取り付けてあるメーターを交換するだけなので、立ち会いは不要なので在宅でないといけないということはない。
ちなみに無料で交換してくれます。
事前に書面で「〇月○日に取り替え工事しますね。ご不在でもやっておきますね。」旨な内容が書かれていたように思う。


(左が交換前、右が交換後)
USBドングルモジュール
Bルートでスマートメーターから情報を取得するにはWi-SUNという規格に対応した通信モジュールが必要。
複数メーカーから似た製品が発売されているけど、現在入手しやすくて最も安価なのは以下だと思う。
単に電力消費量を見たいだけならでんき家計簿で見れるし、
フレッツ光 ミルエネとかNatureのRemo-eでも良いと思う。
初期コストがちょっとお高めだったり、ランニングコストがかかったりするけど、導入はすごく楽だと思う。

僕の場合は電力消費データを貯めて、先々他のデータ(気温や天気、太陽光発電量などなど)をまとめてグラフ化してダッシュボード作りたいと思っているのと、手元に使ってないRaspberry Pi 3Bがあったのでこいつで遊びたいと思ったから。
Raspberry Pi 3B
スマートメーターとUSBドングルの間でデータ送受信を行うプログラムを書くことになる。
先人達のナレッジがインターネット上にはゴロゴロとあるので感謝しかない。
特に以下の記事はとても参考にさせていただいた。



この他にもいくつか記事が存在するが、ほとんどがPythonで書かれたコードだった。
僕は個人的に好きなJavascriptで、つまりNode.jsで動かしたいのだが、こちらはPythonに比べてとても情報が少ない。
加えてBルートで通信するための仕様がEchonet Liteというもので、これが日本独自のものっぽいので海外の情報はヒットしない。
少ないながらもほぼ唯一といっても良い情報がこちら。
こちらのソースコードをcloneさせてもらって起動してみたところ、完走せずにどこかで止まってしまっている様子…
コードを眺めているとRL7023以外のモジュールにも対応していたり、シリアル通信以外の方式にも対応していたりで、スマートメーター含めたEchonet Lite全般に対応されているライブラリっぽいので、ただ消費電力を取りたいだけの目的にはちょっと大げさかもしれないと思い、コードを参考にさせていただきながら自分に必要な処理だけをゼロから書くことにした。
開発
準備
OSはRaspbianでインターネット接続が可能なところまでセットアップ。
Node.jsで開発するので、nodeおよびnpmをインストール。
ただapt-getで入れるとv12ではなくv10が入ったので、nodenvをインストールしてその上でv12を動かすことにした。
開発
ソースコードは以下に置いてあるので見てもらうのが早いと思う。
npmでserialportを追加して使っているくらいで、基本は電文送って応答捌いてって感じ。
最後に日時で出力するためにdayjsを入れて使っているけど、電文処理自体にはまったく必要のないものなので不要なら削除で良いです。
スマートメーターからは他にも瞬時電力計測値や売電量なども取れるみたい。
基本的にSKSENDTOあたりの電文を弄ってもらえればデータを取得できるようになると思う。
★全体的にエラー処理は甘いけどご勘弁を…
アウトプットイメージ

このプログラムでは2日前の積算電力量計測値履歴1というデータを取得するようにしており、これによって30分区切りで24時間分の消費電力が取れる。
なので、実際に運用するにはcronで日次実行すれば良いはず。
あと肝心のデータをどこに置くかだけど、インターネット越しにダッシュボードとか見れるようにしたいので、データベースもクラウドに置いた方が使い勝手が良さそう。
今のところDBのマネージドサービスを使うのがベターかと思っていて、無償で使える範囲が実用的っぽいのは以下3つ。
コメント