スマートメーターをWi-SUNドングルBP35A1で読み取る際のいろいろ

#はじめに

[スマートメーターの情報を最安ハードウェアで引っこ抜く](http://qiita.com/rukihena/items/82266ed3a43e4b652adb) で、スマートメーター読み取りのさわりの部分を紹介しました。

本記事ではもうちょっと突っ込んだ話をしようと思います。

#電力と電流の話

電気の話では初歩の初歩の話なのですが、ソフト屋さんとしては別分野なのでちょっと曖昧なままの方もいらっしゃるかもしれません。

**電力＝電圧×電流**

この式は正しいでしょうか？

直流が前提なら正しいです。

交流では必ずしも正しくありません。

交流の場合の電力は次の式になります。

**電力＝電圧×電流×力率**

##力率とは

力率をマジメに話すとサインコサインが出てきて大変なことになってしまうので、簡単に説明します。

力率は、1以下の数字になります。負荷（電気機器）の種類によって1だったり0.7とかだったりします。

力率が悪い（値が小さい）のはどんな機器かというと、

**コイル関係のモノは力率が悪い**

という理解でいいと思います。

代表的にはモーターです。それとトランスを使ったACアダプタです。

モーターを使う代表的な家庭用電気機器は扇風機と掃除機です。

他に、洗濯機や冷蔵庫やエアコンがあるのですが、これらは今時のモノはインバーターなどを使って力率は1に近い値になってます。

ACアダプタも、今時トランスをつかったモノ（昔ながらの重いやつです）は無いと思うので、力率は1に近いものがほとんどでしょう。

家庭用で力率を考えなきゃいけないものは扇風機ぐらいしかなく、しかもそれは消費電力も家庭内総消費量と比較して小さいので、ぶっちゃけ力率について考慮する必要はないかもしれません。

それでも、力率に関する言及がないと「あー、コイツ交流についての知識がないな」と思われてしまいます。

それと、電圧は100Vということになっていますが、結構変動があります。そして電圧値はスマートメーターでは取得できません。

いろいろ書きましたが、言いたいことは **電力＝電流×100 ではない** ということです。

それと、
**電力は請求金額に影響する。**
**電流はブレーカー作動に影響する。**
というところを覚えていただけたらと思います。

（電力会社目線だと、電力は発電コストに影響し、電流は配電コストに影響するという話になります。）

#瞬時電流計測値について

##電流のR相T相

ちゃんと書くと長くなるので、結論だけ書きます。

R相とT相の合計がおうち全体の電流値となります。
T相は無効(0x7FFE)の場合があります。
200Vが使えるおうちならT相があり、100Vしか使えないおうちならT相が無効になっているはずです。

詳しく知りたい方は「単相3線式」とかでググってみてください。

##電流の有効桁数

ECHONET Liteの仕様上は 0.1A単位で取得できることになっていますが、実測値を見てみると1A単位でして取れないようです。

スマートメーターのメーカーによるのかどうかは分かりません。

#瞬時電力計測値と瞬時電流計測値を同時に取得する

ECHONET Lite の仕様では、複数のプロパティを同時に要求（そして取得）することができます。

それで、瞬時**電力**計測値(0xE7)と瞬時**電流**計測値(0xE8)を同時に取得してみるとどんなことが起こるか。

どうも、スマートメーター内部では瞬時**電力**を計測して、そのあと瞬時**電流**を計測して、それらをまとめて返すようです。計測には1秒ぐらいかかるので、要求してから応答があるまで2秒ぐらいかかります。また直列に処理されるので同時に計測することは出来ないようです。

スマートメーターのメーカーによるのかどうかは分かりません。

（電圧が100と仮定して、力率を計算できるのではないかと思ったのですが、同時計測できないので計測タイミングによっては1超えという変な計算結果になることがあり、無理だなと思いました。）


#PANAセッションについて

BP35A1 はスマートメーターとの通信における暗号化やらの低レイヤを内蔵マイコンがやってくれます。PANAセッションの維持も勝手にやってくれることになっています。

セッションタイムアウトする前に再接続してくれるのですが、その通信内容をご丁寧にシリアルにも吐き出してきます。それをちゃんと無視してあげなければなりません。

また、まれに再接続が失敗したというEVENT(EVENT 24)を返してくることがあります。その場合は自力で再接続しなければなりません。

さらに、再接続が成功したというEVENT(EVENT 25)を返してきたにも関わらず、その後のUDP送信が空振りし続けることがあります。その場合も検出して再接続しなければなりません。

この辺のリトライ処理をうまく書かないと、長期間運用できません。。。

#積算電力量の一斉同報通知

スマートメータは30分毎に積算電力量を一斉同報通知してくるようです。折角なので有効利用したいところです。利用しない場合は適切に無視する必要があります。

#積算電力量の履歴取得

過去何日か分の、30分毎の積算電力量をスマートメーターが持っていて、要求すれば取得できます。

でもなぜか、その要求をするとそれ以降の瞬時電力計測値や瞬時電流計測値の要求に対する応答がなくなってしまいます。

再接続すればいいのですが、そういう仕様なのでしょうか。そういう仕様だとして、どこにその制約の件が書いてあるのでしょうか。

いま、これが最大のナゾです。

#ブレーカーの作動時間（引き外し時間）

電気の使い過ぎでブレーカーが落ちた経験をお持ちの方は多いと思います。

ブレーカーが落ちる前にスマートメーターからの情報で何とかしたいと思うのは必然ともいえるでしょう。

ブレーカーというのは定格電流値をちょっとでも超えたら落ちるものと思っていましたが、観察してみるとちょっと超えたぐらいならすぐには作動しないようです。

理由は主に2つあって、
・突入電流が大きい機器もあるのですぐに反応すると困る
・熱で作動するので、すぐには物理的に反応できない
ということみたいです。

「電流値が定格の90%になったら警告する」というモノを作ってみると、想像以上に警告されてウザイです。

「電流値が定格を超えてから警告する」というモノでも、落ちるまえに対応できることが多いです。

#フレッツ・ミルエネの UDG-1-WSNE

UDG-1-WSNE （5000円税別！）でスマートメーターにアクセスする話を見つけました。

[ミルエネのUSBドングルでスマートメーターからリアルタイムに消費電力を取得する](http://blog-yama.a-quest.com/?eid=970182)

ただ、UDG-1-WSNE を入手するにはフレッツ・ミルエネの契約が必要なので、結局安く手に入れられないのかもしれません。

#ROHM BP35C0/BP35C2

ROHMからなんか新しいのが出ています。

http://www.rohm.co.jp/web/japan/news-detail?news-title=2016-08-03_news_usb&defaultGroupId=false

BP35A1/WSR35A1-00 と何が違うのでしょうか。

ユーザーから見ると、HAN対応であるところが違うみたいです。

ハードウェアでみると、いままでRF(無線部)とプロセッサが別だったものが、ワンチップに収まってます。

**コマンド仕様が公開されていない**というのも相違点です。