HEMS gatewayに echonetlite frame を投げつけてみる(蓄電池:機器オブジェクトスーパークラス)

  •  
  •  

続けて、蓄電池のほうのスーパークラスを確認してみる。

まず、EPC:0x9Fに投げてみると次の応答があった。

Send: 1081 0001 05FF01 027D1F 62 01 9F 00
Recv: 1081 0001 027D1F 05FF01 72 01 9F 11 40A595D5A7C4C4C5869795A7E471339392

ということで今回は EPCは小さい順に

33,
40,
71,
86,
92,93,95,95,97,
A5,A7,A7,
C4,C4,C5,
D5
E4

の 17(=0x11) 個 のようだ。
なぜか、95,A7,C4 が2回現れている。

このうち、機器オブジェクト詳細規定のほうに説明があるのは、

0x97: 現在時刻(uc 2b HH:MM)
0xA5: 放電可能量(ul 4b Wh)
0xA7: AC放電下限設定 (uc 1b %)
0xD5: 瞬時充放電電圧計測値(ss 2b V)
0xE4: 蓄電残量3 (uc 1b %)

となっていて、残りの、'33,40,71,86,92,93,95,C4,C5' についての記述は見当たらない。
スーパークラスのほうを見ると

0x86:メーカー異常コード
0x93: 遠隔操作設定

とあるので、たぶんこれでOK。それにしてもあと、'33,40,71,92,95,C4,C5' は何だろう。

プロパティ名称 EPC データ型・サイズ 取得データ 結果
? 0x33 52013300
? 0x40 52014000
? 0x71 52017100
メーカー異常コード 0x86 uc x 4b 7201860400000064
? 0x92 52019200
? 0x93 7201930141
? 0x95 52019500
現在時刻 0x97 uc x 2b 72019702100f 16:15
放電可能量 0xA5 ul x 4b 7201a5040001412 5138 Wh
AC放電下限設定 0xA7 uc x 1b 7201a70100 0 %
? 0xC4 5201c400
? 0xC5 5201c500
瞬時充放電電圧計測値 0xD5 ss x 2b 5201d500
蓄電残量3 0xE4 uc x 1b 7201e4013d 61 %


Getマッププロパティで GETでデータが取れるといいながら、ESVが 52(不可応答)が多いのはどういうことだろうと思う。

HEMS gatewayに echonetlite frame を投げつけてみる(住宅用太陽光発電:機器オブジェクトスーパークラス)

  •  
  •  

ちょっと先走って、住宅用太陽光発電機器クラス規定(0x0279) を見ていたが、そもそもこれは「住宅・設備関連クラスグループ(0x02)」というクラスグループコードに属しており、それは機器オブジェクトスーパークラスのプロパティを継承している。
つまり、このスーパークラスのプロパティもデータが取れるのをちょっと見落としていた。
個別の機器クラス規定と被る EPCもあるが、データが SET/GET できるかという「Setプロパティマップ(EPC:0x9E)」「Getプロパティマップ(0x9F)」があり、これを見ることで、SET/GET できる EPCがわかる。
とりあえず、この GET プロパティだけ取得して見てみると、

'72019f111fe1c18183004001024341830001038382'

と帰ってきた。これを読み解くと、
'72019f11' の最後の 0x11 =17で、この後17個の データが続くことを意味していて、
その最初が '1f' , 0x1F=31 で、GET できる EPCが全部で31個ある!ということになる。
残りの 16byteが、EPCのマッピングで、付録1に書いてあるとあるので、読み解くと、

e1 = b'1110-0001' = F0,E0,D0,80
c1 = b'1100-0001' = F1,E1,81
81 = b'1000-0001' = F2,82
83 = b'1000-0011' = F3,93,83
00 = b'0000-0000' = (nothing)
40 = b'0100-0000' = E5
01 = b'0000-0001' = 86
02 = b'0000-0010' = 87
43 = b'0100-0011' = E8,98,88
41 = b'0100-0001' = E9,89
83 = b'1000-0011' = FA,9A,8A
00 = b'0000-0000' = (nothing)
01 = b'0000-0001' = 8C
03 = b'0000-0011' = 9D,8D
83 = b'1000-0011' = FE,9E,8E
82 = b'1000-0010' = FF,9F

ということらしい。EPCの小さい順に並べてみると、

80,81,82,83,86,87,88,89,8A,8C,8D,8E,
93,98,9A,9D,9E,9F
D0,
E0,E1,E5,E8,E9,
F0,F1,F2,F3FA,FE,FF

の 31個で、これは 個数 0x1f とあったのと一致している。
この中に規格書には無い、'F0,F1,F2,F3,FA,FE,FF' がある。
メーカー独自仕様のものと思われるが、ドキュメントは公開されてないっぽい。

とりあえず、スーパークラスのデータを出してみると次の通り。

プロパティ名称 EPC データ型・サイズ 取得データ 結果
設置場所 0x81 uc x 1b or 17b 0100
規格Version 情報 0x82 uc x 4b

0400004a00

Release J
メーカー異常コード 0x86 uc x max 225b 0400000064
電流制限設定 0x87 uc x 1b 00 0 %
異常発生状態 0x88 uc x 1b 0142 異常発生無
会員ID/メーカーコード 0x8a uc x 3b 03000064
製造番号 0x8d uc x 12b 31313131313120202020 111111
製造年月日 0x8e uc x 4b 07e8010b 2024-01-10
遠隔操作設定 0x93 uc x 1b 0141 公衆回線未経由操作
積算運転時間 0x9a uc 1b + ul 4b 05410028afaf 2,666,415 秒 = 44440分15秒 = 740時間40分15秒 = 30 日 20 時間 40 分 15 秒
状変アナウンスプロパティマップ 0x9d 0403808188 EPC: 80,81,88
Set プロパティマップ 0x9e 060581939798fe EPC: 81,93,97,98,fe
Get プロパティマップ 0x9f 111fe1c18183004001024341830001038382 (上記参照)

0xf0 06138104040408
0xf1 0104 何かの status ?
0xf2 0a00000000000000000000 日中は '0' ではない。2byte x 5 ?
0xf3 0a00000000000000000000 日中は '0' ではない。2byte x 5 ?
0xfa 0400000000
0xfe 0100 これは setもできる。
0xff 0100

エアコンの HEMS応答

  •  
  •  

scanしたら応答した、パナソニックのエアコン、0x013001 で応答してきたので、こちらでもどういうデータが取れるのかを確認してみた。

HEMSの応答については、"3.2.1 家庭用エアコンクラス規定" を参照し、30個くらいのEPCを投げてみた。

UDPで帰ってきた結果だけ記載すると、

['1081', '0000', '013001', '05ff01', '72', '01', '80', '01', '30']
['1081', '0000', '013001', '05ff01', '72', '01', '8f', '01', '42']
['1081', '0000', '013001', '05ff01', '72', '01', 'b0', '01', '41']
['1081', '0000', '013001', '05ff01', '52', '01', 'b1', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b2', '00', '']
['1081', '0000', '013001', '05ff01', '72', '01', 'b3', '01', '1b']
['1081', '0000', '013001', '05ff01', '52', '01', 'b4', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b5', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b6', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b7', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b8', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'b9', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'bc', '00', '']
['1081', '0000', '013001', '05ff01', '72', '01', 'ba', '01', '2d']
['1081', '0000', '013001', '05ff01', '72', '01', 'bb', '01', '1d']
['1081', '0000', '013001', '05ff01', '52', '01', 'bd', '00', '']
['1081', '0000', '013001', '05ff01', '72', '01', 'be', '01', '22']
['1081', '0000', '013001', '05ff01', '52', '01', 'bf', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'a3', '00', '']
['1081', '0000', '013001', '05ff01', '72', '01', 'a0', '01', '41']
['1081', '0000', '013001', '05ff01', '72', '01', 'a1', '01', '43']
['1081', '0000', '013001', '05ff01', '52', '01', 'aa', '00', '']
['1081', '0000', '013001', '05ff01', '72', '01', 'a4', '01', '43']
['1081', '0000', '013001', '05ff01', '52', '01', 'a5', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'ab', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c0', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c1', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c2', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c4', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c6', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c7', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c8', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'c9', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'ca', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'cb', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'cc', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'cd', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'ce', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', 'cf', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '90', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '91', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '92', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '94', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '95', '00', '']
['1081', '0000', '013001', '05ff01', '52', '01', '96', '00', '']

と、ほとんどが '52' を返してきて、HEM経由ではあまりデータ取得や操作はできなさそう。
純正のエオリアアプリを使えということか。
一応取れているのは、

80: 動作状態 (30: ON)
8f: 節電動作設定 (42: 通常動作中)
b0: 運転モード設定 (41:自動)
ba: 室内相対湿度計測値 (2d: 45%)
bb: 室内温度計測値 ( 1d: 29度)
be: 外気温度計測値 (22: 34度)
a0: 風量設定( 41: 自動設定)
a1: 風向自動設定 (43: 上下 AUTO)
a4: 風向上下設定 (43: 中央)

だった。一応、これも取得して、infuxdbに入れることにするか。。。

HEMS gatewayに echonetlite frame を投げつけてみる(蓄電池) その2

  •  
  •  

夜にまた ゲートウェイにリクエストしてみた。

プロパティ名称 EPC 取得データ 結果
動作状態 0x80 0130 30:ON
識別番号 0x83 fe0000643000NNNNNNNNNNNN0000000000 17byte
MACアドレス
異常内容 0x89 0000 0000
異常無し
商品コード 0x8C 5043532d5250314120202020 PCS-RP1A
現在時刻設定 0x97 1526 21:38
現在年月日設定 0x98 07e80809 2024:08:09
AC実効容量(充電) 0xA0 7201a00400002424 9252 Wh
AC実効容量(放電) 0xA1 000020e7 8423 Wh
AC充電可能容量 0xA2 00002424 9252 Wh
AC放電可能容量 0xA3 000020e7 8423 Wh
AC充電可能量 0xA4 00001da2 7586 Wh
AC放電可能量 0xA5 000005ec 1516 Wh
AC充電上限設定 0xA6 64 100 %
AC放電下限設定 0xA7 00 0 %
AC積算充電電力量計測値 0xA8 00017763 96.099 kWh
AC積算放電電力量計測値 0xA9 0001436e 82.798 kWh
AC充電量設定値 0xAA 00000000 0:未設定
AC放電量設定値 0xAB 00000000 0:未設定
充電方式 0xC1 03 03:指定電力充電
放電方式 0xC2 03 03:指定電力放電
最小最大充電電力値 0xC8 0000000000000fa0 最小: 0 W
最大:4000 W
最小最大放電電力値 0xC9 0000000000000fa0 最小: 0W
最大: 4000W
最小最大充電電流値 0xCA 5201ca00 52:不可応答
最小最大放電電流値 0xCB 5201cb00 52:不可応答
再連係許可設定 0xCC 41 41:許可
運転許可設定 0xCD 41 41:許可
自立運転許可設定 0xCE 41 41:許可
運転動作状態 0xCF 44 44: 待機
AC定格電力量 0xC7 5201c700 52:不可応答
定格電力量 0xD0 7201d00400002648 9800 Wh
定格容量 0xD1 5201d100 52:不可応答
定格電圧 0xD2 5201d200 52:不可応答
瞬時充放電電力計測値 0xD3

7201d30400000000

0 Wh
瞬時充放電電流計測値 0xD4 5201d400 52:不可応答
瞬時充放電電圧計測値 0xD5 5201d500 52:不可応答
積算放電電力量計測値 0xD6 5201d600 52:不可応答
積算充電電力量計測値 0xD8 5201d800 52:不可応答
運転モード設定 0xDA 46 46:自動
系統連係状態 0xDB 02

02:系統連係(逆潮流不可)

最小最大充電電力値(独立時) 0xDC 0000000000000fa0 最小: 0 W
最大: 4000 W
最小最大放電電力値(独立時) 0xDD 0000000000000fa0 最小: 0 W
最大: 4000 W
最小最大充電電流値(独立時) 0xDE 5201de00 52:不可応答
最小最大放電電流値(独立時) 0xDF 5201df00 52:不可応答
充放電量設定値1 0xE0 5201e000 52:不可応答
充放電量設定値2 0xE1 5201e100 52:不可応答
蓄電残量1 0xE2 00000633 1587 Wh
蓄電残量2 0xE3 5201e300 52:不可応答
蓄電残量3 0xE4 12 18 %
劣化状態 0xE5 64 100 %
蓄電池タイプ 0xE6 04 type: 04
充電量設定値1 0xE7 5201e700 52:不可応答
放電量設定値1 0xE8 5201e800 52:不可応答
充電量設定値2 0xE9 5201e900 52:不可応答
放電量設定値2 0xEA 5201ea00 52:不可応答
充電電力設定値 0xEB 7201eb0400000fa0 最小: 0 W
最大: 4000 W
放電電力設定値 0xEC 7201ec0400000fa0 最小: 0 W
最大: 4000 W
充電電流設定値 0xED 5201ed00 52:不可応答
放電電流設定値 0xEE 5201ee00 52:不可応答
定格電圧(独立時) 0xEF 5201ef00 52:不可応答

夜で発電無し、バッテリー残容量が20%以下となっていて、充電も放電もせず、系統の電気をそのまま使っている状態。
この中で、時系列でデータを取得して意味がありそうなのは、A4,A5,A8,A9,CF,D3,E2,E4 くらい?
D3(瞬時充放電電力計測値)は signed long なので、数値がマイナス(放電)とプラス(充電)がある。

とりあえず、時系列で変化が有りそうな以下のデータをモニタすることにする。

0x80 動作状態
0x89 異常状態
0x97 現在時刻
0x98 現在年月日

0xA4 AC充電可能量(Wh)
0xA5 AC放電可能量(Wh)

0xA8 AC積算充電電力量計測値(kWh)
0xA9 AC積算放電電力量計測値(kWh)

0xCF 運転動作状態

0xD3 瞬時充放電電力計測値(プラス:充電、マイナス:放電)(W)

0xDA 運転モード設定

0xE2 蓄電残量1(Wh)
0xE4 蓄電残量3(%)

蓄電池設定(SOC)が勝手に変更される件

  •  
  •  

いまいろいろ設定を試して見ているが、時間帯価格変動のサービスに変えることを前提に、価格が安い時間(普通は夜間)に蓄電池に充電する機能を試してみる。

今のシステムだと、グリーンモードの場合に蓄電池の容量の何%まで充電するかを設定することができて、0%~50%まで10%刻みで設定できる。

とりあえず50%に設定してみたが、なぜか勝手にこれがリセットされて0%になっていることが続いた。

で、オムロンに電話してみたところ、これは「AI制御の設定」で「翌日の天気予報で充電制御」というのを有効にしていた場合に、翌日の天気が良いときは充電が期待されるので勝手に変更することがあるとのこと。なるほど。。。

でも、これって、充電能力と蓄電池の容量と、消費電力との兼ね合いになるんだろうけどそこまで賢くやってくれるのだろうか?

うちは一般家庭と比べて消費電力が多い、充電能力は低くてバッテリー100%になることはほぼ無いのではと思われるので、できるだけ安い時間帯で溜め込むのが良いと考えているのだが。。。

HEMS gatewayに echonetlite frame を投げつけてみる(蓄電池)

  •  
  •  

マルチキャストの HEMSのINFメッセージを見て、蓄電池のインスタンスが '1f' と分かったので、とりあえずこのノードに GET できる情報を投げてみた。

いつもの"ECHONET 機器オブジェクト詳細規定 Release R rev.2" の蓄電池のところをみて EPCを変えながら応答を見てみた。

プロパティ名称 EPC データ型・サイズ 取得データ 結果
動作状態 0x80 uc 1b 7201800130 30:ON
識別番号 0x83 uc 9b or 17b 72018311fe0000643000NNNNNNNNNNNN0000000000 17byte
MACアドレス
異常内容 0x89 us 2b 720189020000 0000
異常無し
商品コード 0x8C uc 12b 72018c0c5043532d5250314120202020 PCS-RP1A
現在時刻設定 0x97 uc 2b 720197020c03 12:03
現在年月日設定 0x98 uc 4b 7201980407e8071a 2024:07:26
AC実効容量(充電) 0xA0 ul 4b 7201a00400002424 9252 Wh
AC実効容量(放電) 0xA1 ul 4b 7201a104000020e7 8423 Wh
AC充電可能容量 0xA2 ul 4b 7201a20400002424 9252 Wh
AC放電可能容量 0xA3 ul 4b 7201a304000020e7 8423 Wh
AC充電可能量 0xA4 ul 4b 7201a40400001158 4440 Wh
AC放電可能量 0xA5 ul 4b 7201a5040000111b 4379 Wh
AC充電上限設定 0xA6 uc 1b 7201a60164 100 %
AC放電下限設定 0xA7 uc 1B 7201a70100 0 %
AC積算充電電力量計測値 0xA8 ul 4B 7201a804000022d1 8.913 kWh
AC積算放電電力量計測値 0xA9 ul 4b 7201a904000015b2 5.554 kWh
AC充電量設定値 0xAA ul 4b 7201aa0400000000 0:未設定
AC放電量設定値 0xAB ul 4b 7201ab0400000000 0:未設定
充電方式 0xC1 uc 1b 7201c10103 03:指定電力充電
放電方式 0xC2 uc 1b 7201c20103 03:指定電力放電
最小最大充電電力値 0xC8 ul x2 8b 7201c8080000000000000fa0 最小: 0 W
最大:4000 W
最小最大放電電力値 0xC9 ul x2 8b 7201c9080000000000000fa0 最小: 0W
最大: 4000W
最小最大充電電流値 0xCA us x2 4b 5201ca00 52:不可応答
最小最大放電電流値 0xCB us x2 4b 5201cb00 52:不可応答
再連係許可設定 0xCC uc 1b 7201cc0141 41:許可
運転許可設定 0xCD uc 1b 7201cd0141 41:許可
自立運転許可設定 0xCE uc 1b 7201ce0141 41:許可
運転動作状態 0xCF uc 1b 7201cf0142 42:充電
AC定格電力量 0xC7 ul 4b 5201c700 52:不可応答
定格電力量 0xD0 ul 4b 7201d00400002648 9800 Wh
定格容量 0xD1 ul 4b 5201d100 52:不可応答
定格電圧 0xD2 us 2b 5201d200 52:不可応答
瞬時充放電電力計測値 0xD3 sl 4b 7201d304000004d1 1233 Wh
瞬時充放電電流計測値 0xD4 ss 2b 5201d400 52:不可応答
瞬時充放電電圧計測値 0xD5 ss 2b 5201d500 52:不可応答
積算放電電力量計測値 0xD6 ul 4b 5201d600 52:不可応答
積算充電電力量計測値 0xD8 ul 4b 5201d800 52:不可応答
運転モード設定 0xDA uc 1b 7201da0146 46:自動
系統連係状態 0xDB uc 1b 7201db0102

02:系統連係(逆潮流不可)

最小最大充電電力値(独立時) 0xDC ul x2 8b 7201dc080000000000000fa0 最小: 0 W
最大: 4000 W
最小最大放電電力値(独立時) 0xDD ul x2 8b 7201dd080000000000000fa0 最小: 0 W
最大: 4000 W
最小最大充電電流値(独立時) 0xDE us x2 4b 5201de00 52:不可応答
最小最大放電電流値(独立時) 0xDF us x2 4b 5201df00 52:不可応答
充放電量設定値1 0xE0 sl 4b 5201e000 52:不可応答
充放電量設定値2 0xE1 sl 4b 5201e100 52:不可応答
蓄電残量1 0xE2 ul 4b 7201e204000011ea 4586 Wh
蓄電残量2 0xE3 us 2b 5201e300 52:不可応答
蓄電残量3 0xE4 uc 1b 7201e40134 52 %
劣化状態 0xE5 uc 1b 7201e50164 100 %
蓄電池タイプ 0xE6 uc 1b 7201e60104 type: 04
充電量設定値1 0xE7 ul 4b 5201e700 52:不可応答
放電量設定値1 0xE8 ul 4b 5201e800 52:不可応答
充電量設定値2 0xE9 ul 2b 5201e900 52:不可応答
放電量設定値2 0xEA ss 2b 5201ea00 52:不可応答
充電電力設定値 0xEB ul 4b 7201eb0400000fa0 最小: 0 W
最大: 4000 W
放電電力設定値 0xEC ul 4b 7201ec0400000fa0 最小: 0 W
最大: 4000 W
充電電流設定値 0xED us 2b 5201ed00 52:不可応答
放電電流設定値 0xEE us 2b 5201ee00 52:不可応答
定格電圧(独立時) 0xEF us 2b 5201ef00 52:不可応答

uc: unsigned char,us: unsgined short ,ul: unsigned long, sl: signed long, ss: signed short,

この中で、時系列でデータを取得して意味がありそうなのは、A4,A5,A8,A9,CF,D3,E2,E4 くらい?
D3(瞬時充放電電力計測値)は signed long なので、数値がマイナス(放電)とプラス(充電)がある。

蓄電池のとりつけ完了

  •  
  •  

部材(壁取付金具)の納品が遅かったため、暫定的に「太陽光発電」+「パワーコンディショナー」だけの構成で、昼間は発電したものを自家消費、余ったら幹線に売電(でも未契約なので収入にはならない)で1週間ほど運用していたが、やっと蓄電池の設置にいたる。

で、この間、ゲートウェイのパケットをキャプチャーしていて、どういう応答をするのだろうかと確認してみた。

クラウドに取得しているデータは MQTTで送っているよう。これはほぼ60秒に1回送る(実質63秒毎?)。

あとは マルチキャストアドレス '224.0.23.0' に対して、HEMSでいうところの INF( ESV:73) をときどき送っている。ネットワークへの自発的な通知なので、何かしらの状態変化(機器が増えた、ステータスが変化した)タイミングで送っているようだ。

いくつか見てみると、


1081000a0ef0010ef0017301d5070202791f027d1f

EHD:1081 固定
TID: 000a
SEOJ: 0ef001 送信元機器
DEOJ: 0ef001 送信先機器
ESV:73 INF(ormation) 通知
OPC:01
EPC:d5(?)
PDC:07  EDTが7byteあることを示す
EDT: 0202791f027d1f
02: 2つ機器があることを示す
02791f: 太陽光発電クラス + インスタンス 1f
027d1f: 蓄電池クラス + インスタンス 1f

ということで、蓄電池クラスの機器が接続されたことを multicastでアナウンス!


1081000b02791f0ef0017301800130

1081 000b 02791f 0ef001 73 01 80 01 30
=> 送信元 02791f(太陽光発電機器、インスタンス 1f) 80(動作状態)に関して 30(起動中) を送信。


1081000c027d1f0ef0017307800130810100880142c10103c20103cf0144da0146

1081 000c 027d1f 0ef001 73 07 800130 810100 880142 c10103 c20103 cf0144 da0146

027df1f: 蓄電池 インスタンス 1f

OPC:07 7つの要求あり
EPC1:80 動作状態
PDC1:01 1byte
EDT1:30 起動中
EPC2:81 設置場所
PDC2:01
EDT2:00 未設定
EPC3:88 異常発生状態
PDC3:01
EDT3:42 異常発生無
EPC4:c1 充電方式
PDC4:01
EDT4:03 指定電力充電
EPC5:c2 放電方式
PDC5:01
EDT5:03 指定電力放電
EPC6:cf 運転動作状態
PDC6:01
EDT6:44 待機
EPC7:da 運転モード設定
PDC7:01
EDT7:46 自動


1081000802791f0ef0017301880141
太陽光発電
 異常発生状態:異常発生有


1081000a027d1f0ef0017301cf0144
蓄電池
運転動作状態:待機


1081000b02791f0ef0017301880142
太陽光発電
異常発生状態:無


など。

ゲートウェイ取説に書いてある hems 対応機器

  •  
  •  

ゲートウェイ RC-307Aの取説は、これだが、ここには

ECHONET Lite 規格適合性認証

Appendix バージョン:蓄電池 Release M, 住宅用太陽光発電 Release J,分電盤 ReleaseM

ECHONET Lite AIF 仕様適合性認証

(住宅用太陽光発電・HEMSコントローラ間 Ver.1.01,蓄電池・HEMSコントローラ間 Ver.1.10)

とある。

住宅用太陽光発電クラスは、'0279'で、探索から帰ってきたのは '02791f'だったので、DEOJにこの値を設定して、いくらかのデータが取れた。

ということで、同様に、蓄電池のクラスは '027D' 分電盤は 「分電盤メータリングクラス規定」というのがあって、これは '0287'らしい。

ので、DEOJの4Byteはこれを指定して送信してみればいいのでは?ただし最後の2バイト(インスタンスコード?)がどうなっているのかよくわからないところはあるけれど。

HEMS gatewayに echonetlite frame を投げつけてみる。

  •  
  •  

HEMSの探索で、'0279'という、"住宅用太陽光発電クラス" という応答が帰ってきたので改めてこの規格を確認して、APPENDIX ECHONET機器オブジェクト詳細規定Release R rev.2 の当該のところを読んでみる。

この 3.3.13「住宅用太陽光発電クラス規定」(3-206)の中で、アクセスルールで 'GET'が出来るものについて片っ端からアクセスして情報を取得することを考える。

プロパティ名称 EPC データ型・サイズ 取得データ 結果
動作状態 0x80 uc x 1B 7201800130 ON
規格version情報 0x82 uc x 4b 00004a00 Release 'J'
識別番号 0x83 uc x 9B or 17B 72018311fe00006430NNNNNNNNNNNN1e0000000000, 17Byte
NN = MACアドレス
異常内容 0x89 us x 2B 720189020000 異常無し
商品コード 0x8C uc x 12B 72018c0c5043532d5250314120202020 PCS-RP1A
現在時刻設定 0x97 uc x 2B 720197020d2b 1353
現在年月日設定 0x98 uc x 4B 7201980407e80716 20240722
状変アナウンスプロパティマップ

0x9D

uc x (max 17B) 72019d0403808188 03,80,81,88
Setプロパティマップ 0x9E uc x (max 17B) 72019e060581939798fe 05,81,93,97,98,fe
Getプロパティマップ 0x9F uc x (max 17B) 72019f111fe1c18183004001024341830001038382

1f,e1,c1,81,83,00,40,01,02,43,41,83,00,01,03,83,82

出力制御設定1 0xA0 uc x 4B 5201a000 52:不可応答
出力制御設定2 0xA1 uc x 1B 5201a100 52:不可応答
余剰買取制御機能設定 0xA2 uc x 2B 5201a200 52:不可応答
出力制御スケジュール 0XB0 uc x 100B 5201b000 52:不可応答
次回アクセス日時 0xB1 uc x 7B 5201b100 52:不可応答
余剰買取制御機能タイプ 0xB2 uc x 1B 5201b200 52:不可応答
出力変化時間設定値 0xB3 us x 2B 5201b300 52:不可応答
上限クリップ設定値 0xB4 us x 2B 5201b400 52:不可応答
運転力率設定値 0xC0 uc x 1B 5201c000 52:不可応答
FIT契約タイプ 0XC1 uc x 1B 5201c100 52:不可応答
自家消費タイプ 0xC2 uc x 1B 5201c200 52:不可応答
設備認定容量 0xC3 us x 2B 5201c300 52:不可応答
換算係数 0xC4 uc x 1B 5201c400 52:不可応答
系統連携状態 0xD0 uc x 1B 7201d00100

00:逆潮流可

出力抑制状態 0xD1 uc x 1B 5201d100 52:不可応答
瞬時発電電力計測値 0xE0 us x 2B 7201e00208bf 2239 W
= 2.239 kW
積算発電電力量計測値 0xE1 us x 4B 7201e10400018e36 101942
= 101.942 kWh
積算売電電力量計測値 0xE3 us x 4B 5201e300 52:不可応答
発電電力制限設定1 0xE5 uc x 1B 7201e50164 0x64 = 100%
発電電力制限設定2 0xE6 us x 2B 5201e600 52:不可応答
売電電力制限設定 0xE7 us x 2B 5201e700 52:不可応答
定格発電電力値(系統連携時) 0xE8 us x 2B 7201e802170c 0x170c
= 5900 W (5.9kW)
定格発電電力値(独立時) 0xE9 us x 2B 7201e9020fa0 0x0fa0
=4000 w (4.0kW)


とりあえず、蓄電池を繋いでいない状態で取得出来た情報は上の通り。
0xE0,0xE1 くらいが時系列で取得して意味ある数値か。

HEMS ゲートウェイの応答(hems discovery)

  •  
  •  

ネットにゲートウェイを繋いで、さて、どういうHEMS応答があるのかを探るのに、まずは デバイス探索だろうと思った。ネットにHEMSデバイスの代理応答をしているのだろうと思うので、普通にデバイス探索を行うのにどうすればと思ったら、次のページがあった。

https://end0tknr.hateblo.jp/entry/20170305/1488712308

この script を動かしてみたら、ゲートウェイは反応せず、別のIPアドレスから返答が。

身に覚えが無いなぁと思いながら、'01013001'という応答を考えてみたら、Panasonic のエアコンだった。
なるほど、これもHEMS一家だったか。
太陽光関係が終わったら、これもデータを取得してみよう。といってもどこまで何が取れるかよくわかってないが。室内外温度、湿度あたり、消費電力あたりくらいか。

で、ゲートウェイがHEMS機器として反応しないのは困った、独自プロトコルなのか?と思って、とりあえずパケットキャプチャーしてみたら、MDNSに応答しているのを発見。

_ossgwsvc._tcp.local: type PTR, class IN, SN._ossgwsvc._tcp.local

SN._ossgwsvc._tcp.local: type TXT, class IN, cache flush

SN._ossgwsvc._tcp.local: type SRV, class IN, cache flush, priority 0, weight 0, port 443, target NN.local

SN.local: type A, class IN, cache flush, addr IPaddress

というレスポンスを返してきた。'SN'は製品のシリアルナンバー、'IPaddress'は、このゲートウェイのIPアドレス。


ということで、どうも ip:224.0.0.251, port 5353で mDNSには応答するらしい。

hemsの規格書には マルチキャストアドレスの "244.0.23.0"でreq/res するとあるが 、このゲートウェイはどうもそのマルチキャストには反応しないようになっているようだ。

なので、もう決め打ちで、echonet liteの port 3610 に broadcast '224.0.0.251' でechonet lite の問い合わせフレームを投げてみたら、ビンゴっぽい。

['1081', '0000', '0ef001', '05ff01', '72', '01', 'd6', '04', '0102791f']

と、 '0279' という住宅用太陽光発電クラス規定のノードだという返答が返ってきた。

このIPアドレスで、port 3610 に udp で通信することで echonet lite のやりとりができるっぽい。