PRODUCTS
製品について
 
   
 

はじめに

導入が進んでいるスマートメーターですが、調べてみますと、設置を待たなくても申し込めばすぐ用意してもらえるらしく、さっそく前のめりで手続きしてみました。これでようやくBルートが体験できます\(^o^)/

   
 

スマートメーターの設置

下記ページからスマートメーターの設置を申し込みます。
すでに設置済みの場合はBルートの利用開始の申し込みをして下さい。

申し込みページ

申請してから3週間くらいで交換になりましたが、立ち会いは必要ありませんでした。

気になる設置場所ですが、下のように金属扉の向こう側にすっぽり収まってます。電波的になかなか厳しそう・・・。(Aルート大丈夫なのかな)

box

メーカーはGE・富士電機製の模様
meter

設置と同時にBルート認証IDが郵送されてきます。またBルートパスワードが、メールで送られてきます。
この2つは、非常に重要な秘密情報なので、大切に保管してください。パスワードは、東電の上記ウェブサイトから変更の申し込みができるようです。

   
 

Wi-SUN準拠のドングルを入手する

次にスマートメーターに接続するための無線デバイスを入手します。お手軽に試したい時はUSBドングルタイプが良さそうです。Amazonで1個から買えてしまうという点で「WSR35A1-00」か「BP35C2」が圧倒的に入手し易いです。
他の製品は、個人では購入しずらかったり、そもそも販売を断られたりで、敷居が高いです(^o^;) もう少し入手しやすくして欲しいですm__m

発売時期はBP35C2の方が後ですが、以下のような違いがあります。

  • WSR35A1-00
    • Bルート対応のみ
    • BP35C2より若干安価
    • インターネットや雑誌に記事が豊富
  • BP35C2
    • BルートとHANのデュアルスタックなのでコマンドの使い方にちょっとクセがある(フレッツミエルネのUSBドングル「UDG-1-WSNE」とコマンド体系は同じ)
    • WSR35A1-00よりだいぶ小さい
    • TCP関連のコマンドがなくなっている

並べてみた図(上がWSR35A1-00、下がBP35C2)

dongle.jpg
ちなみにこれら無線デバイスは、サポートページで複数のファームウェアが公開されており、購入した後でも、ファームウェアを入れ替えることで用途に応じた機能選択ができるようになってます。現在、BP35A1には6LowPAN/RPLを使ったマルチホップ通信ファームも用意されていますので、スマメに飽きたらファームを入れ換えて、マルチホップで遊んでみるのも面白そうです。

ドキュメントやTera Termのサンプルマクロも非常に豊富なので、いちどはサポートページにアクセスしてみることをお勧めします。

ローム社Wi-SUNサポートページ(ファームウェア、サンプル、一部マニュアル等のダウンロードにはIDとPasswordが必要です)

2017/09 追記

Wi-SUN Bルート向けUSBドングルですが、他にも下記製品は1個から購入可能で入手しやすいかと思います。いずれもWi-SUN認証済みなのでスマートメータとの接続性には全く問題ありません。またコマンド体系が「WSR35A1-00」と同じなので、以下の解説がそのまま当てはまります。

   
 

 

接続から消費電力情報の取得まで

接続前のセットアップ、基本的なコマンドシーケンスは下記の記事が大変参考になります。

スマートメーターの情報を最安ハードウェアで引っこ抜く(WSR35A1-00、BP35A1をお使いの方はこちら)

ミルエネのUSBドングルでスマートメーターからリアルタイムに消費電力を取得する(コマンド体系がBP35C2と同じ)

WSR35A1-00とBP35C2で、よく使うコマンドの違いを簡単にまとめてみました。BP35C2では、

  • SKSCANコマンドに引数が追加
  • SKSENDTOコマンドに引数が追加
  • SKPINGコマンドに引数が追加
  • ERXUDPイベント含めたイベント全般に引数が追加
  • TCP関係のコマンドが廃止されている

追加された引数は、発行するコマンドやイベントがBルートとHANどちらを対象とするか指定するためのものですが、ここでは0(Bルート側)固定で処理してOKです。ERXUDPイベント形式が変更になっていますので、WSR35A1-00でアプリケーションを作られている方は若干、解析処理の手直しが必要です。

またJavaに慣れている方は、SKコマンド用のJavaライブラリがあります。

SKSTACK API for Java

ドングルコマンドの「EVENT XX」がjavaの作法でイベントリスナでハンドリング出来たりなど、なれるととても楽です。ラズベリーパイでも動作します。(WSR35A1-00はOKですが、残念ながら引数の多いBP35C2タイプのコマンドセットには未対応です)

接続までのサンプルコード(.javaファイル)です。

うまく接続できない場合

いくつかチェックポイントがありますので、どうも接続が安定しないという時に確認してみてください。

  • EVENT 24で接続が失敗する場合、Bルートパスワードと認証IDの指定が正しいか確認してください。Bルートパスワードはアルファベットを大文字で指定する決まりなので、小文字が混じっているとしたら読み違いの可能性があります。
  • パスワードも認証IDも合っているのにやはり接続できない場合、SKSCANコマンドで得られるEPANDESCイベントのLQI値を確認してみてください。10進数で値20-30以下の場合、スマートメーターとUSBドングル間の通信環境が悪すぎて接続できていない可能性が高いです。できればもう少しドングルを近づけて試してみてください。 (LQIの目安値はドングル製品によってかわってきます)
  • アクティブスキャンを何回も実行しないとEPANDESCが表示されない場合も、通信環境が悪い可能性が高いです。SKSCANを実行してみて、最低でも2回に1回は応答があるくらいが好ましいです。Scan Durationは必ず6以上で試してください。

さいわい我が家は、ドングルがスマートメーターと近い部屋にあるためか、パケロスはほとんどなく通信環境的には良好でした。

   
 

ECHONET Liteを試してみる

スマートメーターにいろんな要求を投げてどんな応答が戻ってくるのか試すのが面白くて、これだけで1日過ぎてしまいました\(^o^)/

家庭用のスマートメーターはECHONET Liteでいうと低圧スマート電力量メータクラスで、プロパティがいろいろ用意されています。目的の消費電力情報を取り出すのに、どのプロパティが一番適しているか悩みますがせっかくスマートメーターが30分毎のデータを蓄積してくれているので、これを引出してみることにします。

  • 試しにSET要求で0xE5プロパティを2に設定してみる
    (2日前のデータ履歴を引き出す準備をする)

SKSENDTO 1 FE80:0000:0000:0000:XXXX:XXXX:XXXX:XXXX 0E1A 1 0 000F 108112340EF0010288016001E50102

(データ部は実際にはバイナリ指定です)

  • 正しく設定されているかリードバックしてみる

SKSENDTO 1 FE80:0000:0000:0000:XXXX:XXXX:XXXX:XXXX 0E1A 1 0 000E 108112340EF0010288016201E500

(データ部は実際にはバイナリ指定です)

以下の応答が得られました(受信データだけ掲載)

108112340288010EF0017201E50102

0xE5プロパティが0x02であることを示しているので設定されてるようです。

  • 0xEAプロパティGETで、2日前の積算電力(1日分)の履歴を取り寄せてみる

SKSENDTO 1 FE80:0000:0000:0000:XXXX:XXXX:XXXX:XXXX 0E1A 1 0 000E 108112340EF0010288016201E200

30分毎に1日分なので、48個のデータが来る(と、ECHONET Lite規格書には書いてある)

108112340288010EF0017201E2C2000200000A95
00000A9700000A9A00000A9C00000AA000000AA4
00000AA800000AAB00000AAE00000AB100000AB4
00000AB600000AB900000ABD00000ABF00000AC2
00000AC400000AC600000ACE00000AD500000ADD
00000AE300000AEC00000AF500000AF900000AFA
00000AFB00000AFD00000AFE00000AFF00000B00
00000B0100000B0300000B0400000B0500000B08
00000B0A00000B0D00000B1000000B1200000B15
00000B1800000B1B00000B1D00000B2000000B22
00000B2600000B29

応答戻ってきた(^^)v

ECHONET Liteにはオブジェクト指向的な設計思想が入ってます。個々のスマートメーターは「低圧スマート電力量メータクラス」のインスタンスで、これは「機器オブジェクトスパークラス」を継承していることになってます。そのため通信相手がスマートメーターであれ照明であれエアコンであれ、機器オブジェクトスーパークラスが提供するプロパティは、共通してGet/Setすることができます。

  • そこでGETプロパティマップを取り寄せてみる

SKSENDTO 1 FE80:0000:0000:0000:XXXX:XXXX:XXXX:XXXX 0E1A 1 0 000E 108112340EF00102880162019F00

応答:

108112340288010EF00172019F111941414160404000624300414040430202

\(^o^)/

   
 

Tipsをご紹介

以下ではBルートアプリケーション開発のコツをいくつかご紹介いたします。

長期間の運用

ドングルを長時間放置していると、いつのまにか通信できなくなってることがあります。これの仕組みを簡単に解説しますと、Bルートでは互いの機器が「セッション」を維持します。セッションは定期的にリフレッシュされ、同時に暗号鍵が切り替わるのですが、頻度は1日に1回が推奨値です。リフレッシュ処理で無線通信の具合が悪かったりすると、セッションの貼り直しに失敗して、切断状態になってしまいます。

つまり「いつのまにか通信できなくなる」契機は、1日に1回、訪れますので、このタイミングでリフレッシュが成功したか確認し、うまくいっていないようであれば、リカバリ処理を入れると良いと思います。リカバリ処理としてはスキャンしてJOINコマンド発行という普通の接続手順を冒頭から再度実行するのが一番簡単です。

セッション切れをどう確認するか

通信状態によっては、片側はセッションを維持しているつもりだけれど、もう片側は切れている、という状態になってしまうこともあります。こうなるとイベントだけでは判定できず、通信によって確認する必要がでてきます。方法としてはだいたい2種類の選択肢があるのではないかと思います。

  • 必ず応答があることが分かっているECHONET Lite電文を投げて、応答のありなしを確かめる。一定回数、応答がなければ、スキャンから接続をやり直すのが良いです。
  • SKPINGを使う。SKPINGコマンドはIP通信におけるICMP Echo requestを発信して、スマメからのEcho replyを要求します。そこでSA1レジスタ=0、とした上で、SKPINGコマンドを周期的に実行してEPONGイベントの発生を確認することで、セッション切れを判定することができます。

SA1レジスタ=0とする理由ですが、スマートメーターによってはセッションがない状態だとEcho replyを平文で返してくる場合も考えられます。SA1=0として暗号化されたEcho replyだけをEPONGイベントで拾うようにすると、スマメとのセッションのあり・なしが、簡単なコマンドで確認できます。SA1設定はいつ行っても害はないので、USBドングルの初期設定時に設定しておくのが簡単でいいかと思います。

通信頻度はどのくらいか良いか

セッションの更新処理は、通信状態が悪いと再送を繰り返すので、結果がでるまで1分以上かかる場合があります。この間、アプリケーションレベルの通信はなるべく控えた方が良いです。アプリケーションの通信(ECHONET LiteのGET要求など)を頻繁に実行しすぎていると、PANAの再認証の通信を邪魔してしまい、結果的にセッションが切れやすくなります。

  • アプリケーションによるGET要求の発行は、1分に1回程度以上の間隔にする
  • EVENT 29でセッションの更新が始まったら、次にEVENT 24か25が出るまで、一時的にECOHNET Lite送信を停止する

といった制御をすると、より安定すると思います。

通信は必要最低限で

Wi-SUNをはじめとする920MHz通信では「1時間あたりに360秒までしか電波をだせない」という送信時間総和の制限が電波法で規程されています。実際のところ、ECHONET Lite程度の通信で360秒制限を超えることはまずありえないわけですが、法令面でみても「必要最小限以外の通信はしない」という運用が求められており、920MHzは何かと制約があります(^o^;) 決して無線LANと同じに考えない方がいいです。

そのため、実現したいアプリケーションを考えた時に、たとえば瞬時電力計測値、瞬時電流計測値の取得の周期や、また本当にこれらを常に取得し続ける必要があるかなどは、慎重に検討する必要がありそうです。せっかく定期的にスマートメーターから積算電力量が送信されていますので、

  1. これを受信毎に保存しておけば、1個前のデータとの差分で30分間の消費電力はいつでもローカルで計算できます。ドングル側の送信時間は消費されないで済みます。
  2. 欠測の可能性は常にありますが、0xE5, 0xE2プロパティの履歴情報をうまく使えば、欠けた部分は後から補填できます。

いかに少ない通信で必要な情報を揃えるかが、アプリケーション開発の腕のみせどころになります\(^o^)/

   
 

一歩進んだ使い方

せっかく購入したBルートのUSBドングル、スマートメーターと接続して終わりと思っていませんか?

Bルート向けのUSBドングルは、汎用の無線通信機器でもあります。たとえば2個め、3個めのドングルを購入して、温度センサや照明センサと接続し、センシングしたデータをスマートメーターに接続しているドングルに送信してみるとどうなるでしょうか?

ちゃんとERXDATAイベントが発生して受信します。

もちろん送信もできます。この辺り以外と知られていないですが、ドングルはスマートメーターと接続後、そのスマートメーターとだけしか通信できないわけではありません。SKSENDTOコマンドの宛先アドレスを適切に指定すれば、追加のドングルとも自由にデータの送受信ができます。ただし「送受信は平文のみ」という制約があります。

暗号化に使うリソースは、すでにメーターとの接続で使っているため、残念ながら追加の機器とは暗号通信ができません。またこれはWSR35A1-00、BP35C2では確認できてますが、製品依存なので、他のUSBドングル製品ではスマメ以外の機器とは通信できないかもしれません。

標準に則ったやり方で、しっかり暗号化を確保して家の中をネットワークしたい場合は、Wi-SUN HAN(Home Area Network)を導入する必要があります。BP35C2にはこのHAN規格の機能も入っていますので、こちらはまた機会があったら試してご紹介したいと思います。

スマメとの接続にせっかくドングルを導入したのですから、この際、家中からいろんなセンシングデータを集めてみるのも、面白そうですよね。

次は、取得した消費電力情報を蓄積して、スマホからグラフで見たいんですが、極力コーディングしなくて済む良さそうなクラウドサービスってないものですかね〜

その他の記事はこちらからご覧頂けます。

   
 

 

 
このページの最上部へ