ゆるブロ

ゆる~くてちたのIT系?ブログ

スマートメーターからとれる情報を引っこ抜いてみる

はじめに

スマートメーターのBルートを使って電気の見える化を進めてみたけども、とってみていた値は、その中の一部なんですよね。

なので、実際にどんなデータが取れて入っているのかこの目で確かめてみようとおもったわけですよっと。

データのフォーマット等は仕様書見ればいいんだけど、実際のところどんなデータなのかって気になるじゃん?ということで、とってみましょ。

ちなみに筆者は某東京電力管内のスマートメーターからとっています。

参考文献

参考はもちろん公式が一番ですよね。

(なんかリンクの画像表示されないけど・・・)

echonet.jp

スマートメーターからとれる情報は、「APPENDIX ECHONET機器オブジェクト詳細規定」の3.3.25 低圧スマート電力量メータクラス規定に書かれています。

執筆時、M版がリリースされており、低圧スマート電力量メータクラス固有のデータが15種類あるみたいです。それ以外に、スーパークラスというオブジェクトがあります。スーパークラスは全ての機器に備わっているデータとなります。スーパークラスには対象機器がどの仕様書に適合しているのか確認するプロパティがあるので、それを見て読む仕様書が変わります。気を付けてね!!!*1

ちなみにうちのスマートメーターはM版ではありませんでした!!!!

あとは、めっちゃいろんな方が参考にしている、引っこ抜きブログからプログラムをパクリスペクトさせてもらって、データを抜きましょう。

 

qiita.com

機器のメーカーコードは下記のサイトにある「IOTで利用できる機器リスト」に書いてあったのを参考にしました。低圧スマートメータは東芝三菱電機(中部、四国、北海道、中国)、NEC富士通のベンダがいるみたいですね。

sh-center.org

データの中身

上で書いた規定順にうえからとってみましょ。

EPCというのは、各データ(プロパティ)に割り当てられたIDです。実は必須ではないプロパティもいくつかあります。

基本的に取得できる値はHEX値なので、読み替える必要があります。

スーパークラスからとってみましょう。

スーパークラス

No.1 動作状態 (EPC=0x80, 必須)

ON/OFFの状態を示します。
ON=0x30、OFF=0x31

取得電文

80 01 30

内容解析

80:EPC
01:データ長⇒1バイト
30:値

ONですね~
これってOFFになるときあるんですかね・・・?

No.2 設置場所(EPC=0x81, 必須)

設置場所を示します。1バイトのビットマップで表されます。

f:id:TeTiTa:20200429164248p:plain

設置場所プロパティ
取得電文

81 01 61

内容解析

81:EPC
01:データ長⇒1バイト
61:値

61はビット列に直すと 0110 0001 なので、
b7:0⇒表で決まる
b3~b6:1100⇒庭、外周
b0~b2:001⇒場所番号1

場所番号は同じ種類の空間が複数あるときに区別する番号みたいです。1つしかないので、これであっていますね。

No.3 規格Version情報 (EPC=0x82, 必須)

対応するAPPENDIXのリリース番号を示します。

1 バイト目:0x00 固定(for futurereserved)
2 バイト目:0x00 固定(for futurereserved)
3 バイト目:リリース順.を ASCIIで示す。
4 バイト目:0x00 固定(for futurereserved)

取得電文

82 04 00 00 46 00

内容解析

82:EPC
04:データ長
00 00 46 00:値⇒46は「F」ですね~~~最新版のMではないですね~~。

F版がリリースされたのが2014年9月3日になります。東京電力スマートメーターを設置開始したのが同年4月、Bルートサービスの提供が2015年7月ということみたいです。G版がリリースされたのが2015年5月29日ですので、さすがにBルートのサービス提供には間に合わなかったでしょうね。

No.4 識別番号(EPC=0x83)

オブジェクトを固有に識別する番号です。

1 バイト目:下位通信層 ID フィールド
0x01~0xFD:下位通信層で使用される通信プロトコルで固有の番号が振られている場合、プロトコル種別に応じて、任意に設定(ECHONETLite では使用しない)
0x11~0x1F:電灯線 a,d 方式
0x31~0x3F:特定小電力無線
0x41~0x4F:拡張 HBS
0x51~0x5F:IrDA
0x61~0x6F:LonTalk
0x71~0x7F:Bluetooth
0x81~0x8F:イーサネット
0x91~0x9F:IEEE802.11/11b
0xA1:電灯線 c 方式
0xB1:IPv6/Ethernet
0xB2:IPv6/6LoWPAN
0xFE:2~17 バイトをメーカ規定。形式により設定(詳細説明参照)
0xFF:2~9 バイトを乱数により生成するプロトコルを下位通信層で使用する場合に設定
0x00:識別番号未設定
2 バイト目以降:固有番号フィールド

取得電文

83 00

内容解析

83:EPC
00:データ長⇒0
取得不可プロパティなので、だめですね~。

No.5 瞬時消費電力計測値(EPC=0x84)

機器の瞬時消費電力をWで示す。
0x0000~0xFFFD(0~65533W)

取得電文

84 00

内容解析

84:EPC
00:データ長⇒0

取得不可プロパティなのでだめですね~。スマートメーターの消費電力見たかったな・・・!

No.6 積算消費電力計測値(EPC=0x85)

機器の積算消費電力を0.001kWhで示す。

0x00000000~0x3B9AC9FF
(0~999,999.999kWh)

取得電文

85 00

内容解析

85:EPC
00:データ長⇒0
取得不可プロパティなので見れませんね。見たかったなぁ~

No.7 メーカ異常コード(EPC=0x86)

各メーカ独自の異常コードを示す。

取得電文

86 00

内容解析

82:EPC
00:データ長⇒0

取得不可プロパティなので、しかたないですね。

No.8 電流制限設定(EPC=0x87)

電流制限の設定値を示す(0~100%)。

取得電文

87 00

内容解析

82:EPC
00:データ長⇒0

取得不可プロパティなので、しかたないですね。

No.9 異常発生状態(EPC=0x88, 必須)

何らかの異常(センサトラブル等)の発生状況を示す。
異常発生有=0x41,異常発生無=0x42

取得電文

88 01 42

内容解析

88:EPC
01:データ長⇒01
42:値⇒異常発生無

異常は発生していないですね。

No.10 異常発生状態(EPC=0x89) 

異常内容を示す。

取得電文

89 00

内容解析

88:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.11 メーカコード(EPC=0x8A, 必須)

3バイトで指定します。ECHONETコンソーシアムで規定されているとのこと。

取得電文

8A 03 00 00 16

内容解析

82:EPC
03:データ長⇒3バイト
00 00 16:値⇒16

0x000016は東芝みたいですね。東京電力管内は東芝みたいです~。

No.12 事業場コード(EPC=0x8B, 必須)

3バイトで事業所コードを指定します。

取得電文

8B 00

内容解析

8B:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.13 商品コード(EPC=0x8C)

ASCIIコードで指定する。

取得電文

8C 00

内容解析

8C:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.14 製造番号(EPC=0x8D)

ASCIIコードで指定します。

取得電文

8D 0C 533134473132333435360000

内容解析

82:EPC
0C:データ長⇒12バイト
53 31 34 47 31 32 33 34 35 36 00 00⇒値

ASCIIコードに直すと、「S14G123456」になります。
スマートメーターの表面に書いてある番号になります。この値を公開すると、どこに設置されているスマートメーターなのかガチでわかっちゃうので、フェイクにしています。

f:id:TeTiTa:20200429194519p:plain

No.15 製造年月日(EPC=0x8E)

4バイトで指定。

YYMD(1 文字 1 バイト) で示す。
YY:西暦年 (1999 年の場合 0 x 07 CF)
M:月 (12 月の場合= 0 x 0 C)
D:日 (20 日の場合= 0 x 1 4)

取得電文

8E 00

内容解析

8E:EPC
00:データ長0

取得不可プロパティなので見れませんね。

No.16 節電動作設定 (EPC=0x8F, 必須)

機器の節電動作状態を示す。

節電動作中=0x41
通常動作中=0x42

取得電文

8F 00

内容解析

8F:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.17 遠隔操作設定(EPC=0x93)

公衆回線を介した操作か否かを示す。

公衆回線未経由操作=0x41
公衆回線経由操作=0x42

取得電文

93 00

内容解析

93:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.18 現在時刻設定(EPC=0x97)

現在時刻 HH:MMを示す。
0x00~0x17:0x00~0x3B(=0~23):(=0~59)

取得電文

97 02 1204

内容解析

97:EPC
02:データ長⇒2バイト
12:18時
04:4分

取得した時間がこんなもんでしたね。

No.19 現在年月日設定(EPC=0x98)

現在年月日 YYYY:MM:DD
1~0x270F:1~0x0C:1~0x1F
(=1~9999):(=1~12):(=1~31)

取得電文

98 04 07E4041D

内容解析

98:EPC
04:データ長⇒4バイト
07 E4:2020年
04:4月
1D:29日

今日取得したので、あっていますね。

No.20 電力制限設定(EPC=0x99)

電力制限の設定値を W で示す。
0x0000~0xFFFF(0~65535W)

取得電文

99 00

内容解析

99:EPC
00:データ長⇒0

取得不可プロパティなので見れませんね。

No.21 積算運転時間(EPC=0x9A)

現在までの運転時間の積算値を単位 1 バイト、時間 4 バイトで示す。
1 バイト目:単位を示す
秒:0x41、分:0x42
時:0x43、日:0x44
2~5 バイト目:1 バイト目に示される時間単位における経過時間を示す。
0x00000000~0xFFFFF

取得電文

9A 00

内容解析

9A:EPC
00:データ長⇒0
取得不可プロパティなので見れませんね。

No.22 SetMプロパティマップ(EPC=0x9B, 必須)

ECHONET Lite機器は搭載不可らしいですよ。

取得電文

9B 00

内容解析

9B:EPC
00:データ長⇒0

搭載不可なので、取れなくて当然ですな。取得不可プロパティでもあります。

No.23 GetMプロパティマップ(EPC=0x9C, 必須)

ECHONET Lite機器は搭載不可らしいですよ。

取得電文

9C 00

内容解析

9C:EPC
00:データ長⇒0

搭載不可なので、取れなくて当然ですな。取得不可プロパティでもあります。

No.24 状変アナウンスプロパティマップ(EPC=0x9D, 必須)

状態が変化した際にブロードキャストでアナウンスされるプロパティの一覧を示します。

取得電文

9D 04 03 80 81 88

内容解析

9D:EPC
04:データ長
03:プロパティ数⇒3つ
80、81、88⇒プロパティコード

今回はプロパティ数が16より少ないので、1バイト目にプロパティ数(バイナリ表示)がきます。2バイト目以降にプロパティのコードが来ます。
80が動作状態、81が設置場所、88が異常発生状態になります。これらの値が変化したときには、アナウンスされるようです。

No.25 Setプロパティマップ(EPC=0x9E, 必須)

Setできるプロパティの一覧を示します。

取得電文

9E 04 03 81 E5 ED

内容解析

9E:EPC
04:データ長
03:プロパティ数⇒3つ
81、E5、ED⇒プロパティコード

プロパティ数が16より少ないので、1バイト目にプロパティ数(バイナリ表示)がきます。2バイト目以降にプロパティのコードが来ます。
81が設置場所、E5が積算履歴収集日1、EDが積算履歴収集日2になります。これらの値はSetが可能みたいですね。設置場所って変えられていいのか・・・

No.26 Getプロパティマップ(EPC=0x9F, 必須)

Getできるプロパティの一覧を示します。

取得電文

9F 11 19 41 41 41 60 40 40 00 62 43 00 41 40 40 43 02 02

内容解析

9E:EPC
11:データ長
19:プロパティ数⇒19つ
41 41 41 60 40 40 00 62 43 00 41 40 40 43 02 02⇒プロパティマップ表記

プロパティ数が16以上なので、1バイト目にプロパティ数(バイナリ表示)がきます。2バイト目以降にプロパティマップが来ます。
1:0001
2:0010
3:0011
4:0100
6:0110

これらの値の組み合わせでプロパティマップの色塗りをします。
プロパティマップはAppendixの付録についているので、その通りに塗ってみたのか下記になります。

実際にこれらの値だけ取れました。

f:id:TeTiTa:20200429203952p:plain

プロパティマップ(色塗り)

低圧スマート電力量メータクラス

No.1 動作状態(EPC=0x80, 必須)

スーパークラスで取得しているので省きます。これはONのデータがはいっていましたね。

No.2 係数(EPC=0xD3)

積算電力量計測値、履歴を実使用量に換算する係数を10進表記において 6 桁で示すらしいです。取得できないときは係数を1として取り扱うみたい。
0x00000000~0x000F423F
(000000~999999)

取得電文

D3 04 00 00 00 01

内容解析

D3:EPC
04:データ長⇒4バイト
00 00 00 01:値⇒1

係数は1ですね。必須ではないですが、取れました。

No.3 積算電力量有効桁数(EPC=0xD7, 必須)

積算電力量計測値の有効桁数を示す。
0x01~0x08
(1~8)

取得電文

D7 01 06 

内容解析

D7:EPC
01:データ長⇒1バイト
06:値⇒6

積算電力量計測値の有効桁数は6桁みたいですね。
下位側から6桁なので、積算電力量は 0x000F423F(999999)でオーバーフローし、0x00000000(0)から再インクリメントすることになります。

No.4 積算電力量計測値(正方向計測値)(EPC=0xE0, 必須)

積算電力量[kWh]を10 進表記において、最大 8 桁で示す。
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

E0 04 00 00 7F 0E

内容解析

E0:EPC
04:データ長⇒1バイト
00 00 7F 0E:値⇒32526

実はこの値を係数(EPC=D3)と積算電力量単位(EPC=E1)で補正させてあげることで実測値になります。
私の環境では、係数=1、積算電力量単位=0.1kWhなので、欲しい値は、
積算電力量計測取得値×係数×積算電力量単位=32526×1×0.1=3252.6kWhとなります。

No.5 積算電力量単位(正方向、逆方向計測値)(EPC=0xE1, 必須)

積算電力量計測値、履歴の単位(乗率)を示す。
0x00:1kWh
0x01:0.1kWh
0x02:0.01kWh
0x03:0.001kWh
0x04:0.0001kWh
0x0A:10kWh
0x0B:100kWh
0x0C:1000kWh
0x0D:10000kWh

取得電文

E1 01 01

内容解析

E1:EPC
01:データ長⇒1バイト
01:値⇒0.1kWh

これは1回取っておけばOKなプロパティですね。

No.6 積算電力量計測値履歴1(正方向計測値)(EPC=0xE2, 必須)

積算履歴収集日1と該当収集日の 24 時間 48 コマ分(0 時 0 分~23 時 30 分)の正方向の定時積算電力量計測値の履歴データを時系列順に上位バイトからプロパティ値として示す。
1~2 バイト目:積算履歴収集日
0x0000~0x0063(0~99)
3 バイト目以降:積算電力量計測値
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文(1回目)

E2 C2 00 FF FF FF FF FE FF FF FF FE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFE

内容解析

E2:EPC
C2:データ長⇒194バイト
00 FF:値⇒積算履歴収集日
FF FF FF FE:値⇒計測データなし

積算履歴収集日1(EPC=0xE5)を設定していない初期値の場合は、積算履歴収集日に0x00FF、30 分毎の積算電力量計測値に全て 0xFFFFFFFE をセットする仕様です。SET電文を作ってから送るしかないですね。
下記に、積算履歴収集日1に0x00(当日)をセットしてみてから取得した電文を載せます。

取得電文

E2 C2 00 00
00 00 7F 0A 00 00 7F 0B
00 00 7F 0C 00 00 7F 0D
00 00 7F 0D 00 00 7F 0E
00 00 7F 0F 00 00 7F 0F
00 00 7F 10 FF FF FF FE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE
FFFFFFFEFFFFFFFE

内容解析

E2:EPC
C2:データ長⇒194バイト
00 00:値⇒積算履歴収集日0x00⇒当日なので、4/29
00 00 7F 0A :1コマ目(0時0分)
00 00 7F 0B :2コマ目(0時30分)
00 00 7F 0C :3コマ目(1時0分)
00 00 7F 0D :4コマ目(1時30分)
00 00 7F 0D :5コマ目(2時0分)
00 00 7F 0E:6コマ目(2時30分)
00 00 7F 0F :7コマ目(3時0分)
00 00 7F 0F :8コマ目(3時30分)
00 00 7F 10 :9コマ目(4時0分)
FF FF FF FE:10コマ目(4時30分)

取得したのは4時26分なので、4時半以降のデータが入っていないことであっていますね。

No.7 積算電力量計測値(逆方向計測値)(EPC=0xE3, 必須)

積算電力量[kWh]を 10 進表記におい最大 8 桁で示す。
逆方向なので、売電している人向けですね。
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

E3 04 00 00 00 0A

内容解析

E3:EPC
04:データ長⇒4バイト
00 00 00 0A:値⇒10

単位はEPC=E1の結果から0.1kWhなので、1.0kWhになります。たしかに、スマートメーターの表示は逆方向1.0kWhになっていました。ライン検査中なのか、設置後の設置検査なのかで少しだけ回されているみたいですね。

No.8 積算電力量計測値履歴1(逆方向計測値)(EPC=0xE4, 必須)

積算履歴収集日1と該当収集日の 24 時間 48 コマ分(0 時 0 分
~23 時 30 分)の逆方向の定時積算電力量計測値の履歴データ
を時系列順に上位バイトからプロパティ値として示す。
1~2 バイト目:積算履歴収集日
0x0000~0x0063(0~99)
3 バイト目以降:積算電力量計測値
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

E4 C2 00 01
00 00 00 0A 00 00 00 0A
00 00 00 0A 00 00 00 0A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A
0000000A0000000A0000000A0000000A

内容解析

E4:EPC
C2:データ長⇒194バイト
00 01:値⇒積算履歴収集日0x01⇒1日前なので、4/28
00 00 00 0A:値⇒10
4/28は既に計測済みのはずなので、そりゃ取れるわな、といったところですね。
これfor文で回したらどこまで前に遡れるのかなあ?

No.9 積算履歴収集日(EPC=0xE5)

30 分毎の計測値履歴データを収集する日を示す。
0x00~0x63
( 0~99)
0:当日 1~99:前日の日数

取得電文

E5 01 FF

内容解析

E5:EPC
01:データ長⇒1バイト
FF:値

FFは初期値でした。
積算計測値履歴1(EPC=0xE2,0xE4)で呼び出す日を 0x00~0x63(0~99)でSETするためのプロパティですね。

No.10 瞬時電力計測値(EPC=0xE7, 必須)

電力実効値の瞬時値を 1W 単位で示す。
0x80000001~0x7FFFFFFD
(-2,147,483,647~2,147,483,645)

取得電文

E7 04 00 00 00 5E

内容解析

E7:EPC
04:データ長⇒1バイト
00 00 00 5E:値⇒94

このときは94Wの電力を使用していたみたいですね。
冷蔵庫、照明、ノーパソ、NAS、ラズパイ。。。まぁこんなもんかな?

No.11 瞬時電流計測値(EPC=0xE8, 必須)

実効電流値の瞬時値を 0.1A 単位で R 相 T 相を並べて示す。
単相 2 線式の場合は、T 相に0x7FFE をセット。
0x8001~0x7FFD(R 相):0x8001~0x7FFD(T 相)
(-3,276.7~3,276.5):(-3,276.7~3,276.5)

取得電文

E8 04 00 0A 00 0A

内容解析

E8:EPC
04:データ長⇒4バイト
00 0A 00 0A:値

R相が1.0A、T相が1.0Aということですかね。3相交流の世界はよくわからんぞ。。。

No.12 定時積算電力量計測値(正方向計測値)(EPC=0xEA,必須)

最新の 30 分毎の計測時刻における積算電力量(正方向計測値)を、計測
年月日を 4 バイト、計測時刻を 3 バイト、積算電力量(正方向計測値)4
バイトで示す。
・計測年月日 YYYY:MM:DD
・計測時刻 hh:mm:ss
・積算電力量[kWh] 10進表記で最大8桁
1~4バイト目:計測年月日
YYYY:0x0001~0x270F
(1~9999)
MM:0x01~0x0C(1~12)
DD:0x01~0x1F(1~31)
5~7バイト目:計測時刻
hh:0x00~0x17(0~23)
mm:0x00~0x3B(0~59)
ss:0x00~0x3B(0~59)
8~11 バイト目:積算電力量計測値
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

EA 0B 07 E4 04 1D 03 00 00 00 00 7F 0F

内容解析

EA:EPC
0B:データ長⇒11バイト
07 E4 :2020年
04 : 4月
1D : 29日
03 : 3時
00 : 0分
00 : 0秒
00 00 7F 0F :32639⇒3263.9kWh

なんでこんな時間にやってんだって思われちゃうね!!!いろいろな形態で30分値を取得できるんですね。

No.13 定時積算電力量計測値(逆方向計測値)(EPC=0xEB, 必須)

最新の 30 分毎の計測時刻における積算電力量(逆方向計測値)を、計測年月日を 4 バイト、計測時刻を3 バイト、積算電力量(逆方向計測値)4 バイトで示す。

・計測年月日 YYYY:MM:DD
・計測時刻 hh:mm:ss
・積算電力量[kWh] 10 進表記で最大 8 桁
1~4バイト目:計測年月日
YYYY:0x0001~0x270F
(1~9999)
MM:0x01~0x0C(1~12)
DD:0x01~0x1F(1~31)
5~7バイト目:計測時刻
hh:0x00~0x17(0~23)
mm:0x00~0x3B(0~59)
ss:0x00~0x3B(0~59)
8~11 バイト目:積算電力量計測値
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

EB 0B 07 E4 04 1D 03 1E 00 00 00 00 0A

内容解析

EB:EPC
0B:データ長⇒11バイト
07 E4 :2020年
04 : 4月
1D : 29日
03 : 3時
1E : 30分
00 : 0秒
00 00 00 0A :10⇒1.0kWh

当たり前にとれていますね。

No.14 積算電力量計測履歴2(正方向、逆方向計測値)(EPC=0xEC)

積算履歴収集日時、収集コマ数及び積算電力量(最大 8 桁)の計測結果履歴を、正・逆 30 分毎のデータで過去最大 6時間分示す。
・積算履歴収集日時
YYYY:MM:DD:hh:mm
・収集コマ数
・積算電力量[kWh] 10 進表記において最大 8 桁、最大 6 時間分

1~6 バイト目:積算履歴収集日時
YYYY:0x0001~0x270F
(1~9999 年)
MM:0x01~0x0C(1~12 月)
DD:0x01~0x1F(1~31 日)
hh:0x00~0x17(0~23 時)
mm:0x00/0x1E(0/30 分)
7 バイト目:収集コマ数
0x01~0x0C(1~12 コマ)
8 バイト目以降:
積算電力量計測値(正方向)
0x00000000~0x05F5E0FF
(0~99,999,999)
積算電力量計測値(逆方向)
0x00000000~0x05F5E0FF
(0~99,999,999)

取得電文

EC0FFFFFFFFFFFFF01FFFFFFFEFFFFFFFE

内容解析

EC:EPC
0F:データ長⇒15バイト
FF FF FF FF FF FF:積算履歴収集日時
01:収集コマ数
FF FF FF FE:積算電力量計測正方向
FF FF FF FE:積算電力量計測逆方向

積算履歴収集日2(EPC=0xED)が設定されていない初期値の場合は、積算履歴収集日時に0xFFFFFFFFFFFF、収集コマ数に 0x01 をセットし、30 分値は正方向、逆方向それぞれ 1 コマ分に0xFFFFFFFE をセットするとのことなので、やはりEDをセットしてからですな。

というわけで、EDに2020年4月29日5時から12コマ取得でセットして、データを取得してみました。

取得電文

EC6707E4041D05000C
00007F110000000A00007F110000000A
00007F100000000A00007F0F0000000A
00007F0F0000000A00007F0E0000000A
00007F0D0000000A00007F0D0000000A
00007F0C0000000A00007F0B0000000A
00007F0A0000000A00007F0A0000000A

内容解析

EC:EPC
67:データ長⇒103バイト
07E4 04 1D 05 00 0C:2020年4月29日5時00分12コマ
00 00 7F 11:1つめ(5:00)
00 00 00 0A
00 00 7F 11:2つめ(4:30)
00 00 00 0A
00 00 7F 10:3つめ(4:00)
00 00 00 0A
00 00 7F 0F:4つめ(3:30)
00 00 00 0A
00 00 7F 0F:5つめ(3:00)
00 00 00 0A
00 00 7F 0E:6つめ(2:30)
00 00 00 0A
00 00 7F 0D:7つめ(2:00)
00 00 00 0A
00 00 7F 0D:8つめ(1:30)
00 00 00 0A
00 00 7F 0C:9つめ(1:00)
00 00 00 0A
00 00 7F 0B:10つめ(0:30)
00 00 00 0A
00 00 7F 0A:11つめ(0:00)
00 00 00 0A
00 00 7F 0A:12つめ(23:30)
00 00 00 0A

遡って取ることができるので、とり忘れちゃった時用ですね。
いつまでさかのぼれるのか気になるね。

No.15 積算履歴収集日2(EPC=0xED)

30 分毎の計測値履歴データを収集する日時(30 分単位)、及び 30分毎の計測値履歴データを 1 コマとし、収集するコマ数を示す。
1~6 バイト目:積算履歴収集日時
YYYY:0x0001~0x270F(1~9999 年)
MM:0x01~0x0C(1~12 月)
DD:0x01~0x1F(1~31 日)
hh:0x00~0x17(0~23 時)
mm:0x00/0x1E(0/30 分)
7 バイト目:収集コマ数
0x01~0x0C(1~12 コマ)

取得電文

ED 07 FF FF FF FF FF FF 01

内容解析

ED:EPC
07:データ長⇒7バイト
FF FF FF FF FF FF:積算履歴収集日時(初期値)
01:収集コマ数(初期値)

本プロパティの初期値は、積算履歴収集日時を 0xFFFFFFFFFFFF、収集コマ数を 0x01 なので、初期値がはいっておりますね。

 

完了した感想

結構大変だったけど、気になっていたのでちょうどよかったです。

 

結局取れるのは瞬時値と積算値ですね。30分値を集めれば、毎月の電気代計算を自分でできるはずなので、検算ができそう!

 

*1:後になって気が付いたのは内緒