<2020年5月1日更新:瞬時電力についても取得可能になりました>
本エントリでは、Nature Remo EもしくはNature Remo E liteに登録したスマートメーターから電力データを算出する方法を解説します。
Nature Remo Cloud APIのGET /1/appliances というエンドポイントを叩くと、登録された機器のオブジェクト一覧が配列で取得できますが、その機器がスマートメーターの場合smart_meterというプロパティが存在します。ここに格納さているデータから電力利用量などの電力データを求めることが可能です。
しかし、このデータはECHONET Liteの生プロパティの最新値を返しているに過ぎず、ここから電力データを求める方法は少し複雑です。ECHONET機器オブジェクト詳細規定の「低圧スマート電力量メータクラス規定」と突き合わせれば解読はできますが、ここでは簡単に電力データを算出する方法にフォーカスし、かいつまんで説明します。
説明にあたっては以下「APPENDIX ECHONET機器オブジェクト詳細規定Release M Revised」より、一部引用をおこないます。
このエントリのゴール #
APIが返すスマートメーターの情報から正方向・逆方向の積算電力データを算出すること。
※ごく一部の例外はあるようですが、大半の環境で正方向が買電、逆方向が売電だと考えて問題ありません。以下ではそれを前提として話を進めます。
サンプルデータ #
ここでは以下のサンプルデータを利用します。これは、湯河原にあるNature社のSmart Energy Labの実データから、smart_meterのキーを抜粋したものです。
"smart_meter": {
"echonetlite_properties": [
{
"name": "coefficient",
"epc": 211,
"val": "1",
"updated_at": "2020-04-27T15:24:03Z"
},
{
"name": "cumulative_electric_energy_effective_digits",
"epc": 215,
"val": "6",
"updated_at": "2020-04-27T15:24:03Z"
},
{
"name": "normal_direction_cumulative_electric_energy",
"epc": 224,
"val": "5167",
"updated_at": "2020-04-27T15:24:03Z"
},
{
"name": "cumulative_electric_energy_unit",
"epc": 225,
"val": "1",
"updated_at": "2020-04-27T15:24:03Z"
},
{
"name": "reverse_direction_cumulative_electric_energy",
"epc": 227,
"val": "3606",
"updated_at": "2020-04-27T15:24:03Z"
},
{
"name": "measured_instantaneous",
"epc": 231,
"val": "360",
"updated_at": "2020-04-27T15:24:03Z"
}
]
}
先に説明したとおり、appliance(機器)情報にsmart_meterというプロパティが生えており、そこにさらに、echonetlite_propertiesという配列があります。一般的なスマートメーターの場合、ここに6つのオブジェクトが入っています。ここではそれをechonetlite_propertyオブジェクトと呼びます。これらの値から電力データを算出できます。
ECHONETLITE_PROPERTY オブジェクトの見方 #
上記のサンプルデータの先頭の値を使って解説します。
{
"name": "coefficient",
"epc": 211,
"val": "1",
"updated_at": "2020-04-27T15:24:03Z"
}
echonetlite_property には以下のキーが存在します。
- name: string
- epc: integer
- val: string
- updated_at: time
NAME #
これは「何の値か」をAPI利用者に向けて説明するものです。上記のサンプルデータでは"coefficient"となっており、そこからこれは「係数情報」であることがわかります。
注意点として、このnameはECHONET機器オブジェクト詳細規定の英語版を参考にして命名していますが、これはあくまで人間向けの情報で、文字列自体は将来的に変わりうる可能性があります。プログラム上でユニーク性を担保したい場合は、次のepcを利用してください。
EPC #
これはEPCを示します。EPCとはECHONETプロパティのことで、機器の情報を取得するためのキーとなります。
以下は、低圧スマート電力量メータークラス規定からの抜粋です。
ここには、EPC 0xD3(=211)が係数情報を示していることが書かれています。サンプルデータのepcは211であり、これが係数情報であることが改めて分かります。
VAL #
そのプロパティの値を示します。ECHONET Liteのプロパティは任意の型の値を取るため、このフィールドの型は数値ではなく文字列であることに気をつけてください。サンプルデータでは “val”: “1” となっていて、係数が1であることが分かります。
UPDATED_AT #
その値の最終更新時をRFC3339フォーマットで表現しています。値は1分程度の間隔で更新されます。
スマートメーターの各EPCの解説 #
単独のプロパティの値の見方が分かったので次に各EPC毎に解説していきます。サンプルデータとは順番が異なりますが、分かり易さのために以下の表の順番で説明します。
epc | name | プロパティ名称 |
---|---|---|
0xE0(224) | normal_direction_cumulative_electric_energy | 積算電力量計測値(正方向) |
0xE3(227) | reverse_direction_cumulative_electric_energy | 積算電力量計測値(逆方向) |
0xD3(211) | coefficient | 係数 |
0xE1(225) | cumulative_electric_energy_unit | 積算電力量単位 |
0xD7(215) | cumulative_electric_energy_effective_digits | 積算電力量有効桁数 |
0xE7(231) | measured_instantaneous | 瞬時電力計測値 |
積算電力量計測値: 0XE0(224), 0XE3(227) #
これまでの正方向・逆方向の電力量の積算値です。正方向が買電、逆方向が売電に対応します。
積算値が必須で取得できることがスマートメーターの一つの特徴です。積算値を使うことで任意の2点の時刻間の電力消費量を算出できます。
これは、既存のアナログ式誘導型電力量計の円盤型のメーターと考え方は同じです。アナログ時代は、検針員が毎月一ヶ月ごとに目で表示を確認し、先月との差をとることで、当月の電力消費量を算出していたわけです。
サンプルデータをみると、それぞれ以下の数値であることが分かります。
- 積算電力量(正方向): 5167
- 積算電力量(逆方向): 3606
これの単位がkWhであれば良いのですが、残念ながら話はそう単純ではありません。係数と単位の反映が必要です。
係数: 0XD3(211) #
積算量を実データに換算するための係数情報です。サンプルデータではこの値は"1"となっているため、前項の、正方向・逆方向の値に1を乗じます。1なのでここでは値はそのままです。
- 積算電力量(正方向): 5167
- 積算電力量(逆方向): 3606
これに対してもう一回さらに単位を付ける変換が必要です。
積算電力量単位: 0XE1(225) #
積算電力量の単位の情報です。どの値がどの単位に対応するかは上記の画像の表のとおりです。サンプルデータではこの値は"1"となっているため、単位は0.1kWhとなります。
これで、これまでの積算電力量を以下のように求めることができました。
- 積算電力量(正方向): 516.7kWh
- 積算電力量(逆方向): 360.6kWh
この値を定期的に観測することで、ある期間の電力消費量を求められます。例えば、5月1日の値と6月1日の値を算出して、差分を取ることで5月の電力消費量及び販売量を算出できるのです。
ちなみに、係数と単位のプロパティが無いシンプルなスマートメーターもあります。その場合は、積算値の生の値をそのままkWhとして利用できます。
積算電力量有効桁数: 0XD7(215) #
電力量は積算値で表すわけですが、これはカウンター値であり、無限にカウントアップするわけにはいきません。その上限を表すのがこの積算電力量有効桁数です。
サンプルデータでは"6"となっています。これは「10進数」で6桁が有効桁数ということです。つまりこの場合、値域が、0-999999で、999999を超えると0に戻るという仕様です。また、これは係数情報などを乗じる前の生の値に対して適用されます。
たとえば、ある時点で積算値が999990を計測し、次の計測時点で5を計測した場合、その2時点間では15の差分となります。これはサンプルデータと同じ係数と単位である場合は1.5kWhと算出できます。
有効桁数が10進で表現されていることに驚くかもしれませんが、従来のアナログ式誘導型電力量計の円盤メーターを模していると思えばわずかに納得がいくかもしれません。
瞬時電力計測値: 0XE7(231) #
現在(計測時点)の電力を表します。単位はW(ワット)です。正方向の場合は正値、逆方向の場合は負値となります。サンプルデータからは計測時点で360Wの電力を消費していることが分かります。
まとめ #
APIが返すスマートメーターの情報から正方向(買電)・逆方向(売電)の積算電力データを算出する方法を解説しました。 ぜひNature Remo EもしくはNature Remo E liteを購入して、APIも利用してみてください。ご意見、ご感想もお待ちしています。