はじめに
- ウチでは、10年以上前にエコキュートを設置して使用してきました。
- 最近になって、LANアダプターを付加するとタブレットで状態監視や操作を行えることを知り、色々と調べてみたところ、スマートメーターとの通信にも使われている、ECHONET Lite準拠とのこと。
- エコキュートの最新機種への置き換えと合わせて、有線LANアダプターも設置したので、どんなパケットが流れているのかをパケットキャプチャしてみました。
- なお、パケット解析にはECHONET Lite プロトコル解析器 for Wiresharkを使わせて頂きました。
パケットの流れ
- ホームコントローラ(タブレットアプリ)を起動していると、
- 最初に、自ノードインスタンスリストS、プロパティマップの取得
- 以降、エコキュート状態1、消費電力、エコキュート状態2、エコキュート状態3の取得がサイクリックに行われているようです。
自ノードインスタンスリストS(EPC=0xd6)の取得
-
EOJ(ECHONETオブジェクト)は、0x026b01(電気温水器クラス)であるようです。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c0 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x0ef001 (Node profile) Destination ECHONET Lite object (DEOJ): 0x0ef001 (Node profile) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 1 Property 1: Self-node instance list S ECHONET Property (EPC): 0xd6 (Self-node instance list S) Property Data Counter (PDC): 4 ECHONET Property Value Data (EDT): 01026b01 Instance count: 1 - Electric water heater (ID: 1)
プロパティマップの取得
-
状変アナウンスプロパティマップ(EPC=0x9d)、Setプロパティマップ(EPC=0x9e)、Getプロパティマップ(EPC=0x9f)の3種類のプロパティマップを取得しているようです。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c1 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x026b01 (Electric water heater) Destination ECHONET Lite object (DEOJ): 0x05ff01 (Controller) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 3 Property 1 ECHONET Property (EPC): 0x9d Property Data Counter (PDC): 6 ECHONET Property Value Data (EDT): 05808188c3ea Property 2 ECHONET Property (EPC): 0x9e Property Data Counter (PDC): 12 ECHONET Property Value Data (EDT): 0b8190919798b0b4b6c0e3e4 Property 3 ECHONET Property (EPC): 0x9f Property Data Counter (PDC): 17 ECHONET Property Value Data (EDT): 241b6b4971796148020341410000020202
EPC | 状変 | Set | Get | プロパティ |
---|---|---|---|---|
0x80 | ○ | × | ○ | 動作状態 |
0x81 | ○ | ○ | ○ | 設置場所 |
0x82 | × | × | ○ | 規格Version情報 |
0x83 | × | × | ○ | 識別番号 |
0x84 | × | × | ○ | 瞬時消費電力計測値 |
0x85 | × | × | ○ | 積算消費電力計測値 |
0x88 | ○ | × | ○ | 異常発生状態 |
0x89 | × | × | ○ | 異常内容 |
0x8a | × | × | ○ | メーカーコード |
0x90 | × | ○ | ○ | ONタイマ予約設定 |
0x91 | × | ○ | ○ | ONタイマ時刻設定値 |
0x97 | × | ○ | ○ | 現在時刻設定 |
0x98 | × | ○ | ○ | 現在年月日設定 |
0x9d | × | × | ○ | 状変アナウンスプロパティマップ |
0x9e | × | × | ○ | Setプロパティマップ |
0x9f | × | × | ○ | Getプロパティマップ |
0xb0 | × | ○ | ○ | 沸き上げ自動設定 |
0xb1 | × | × | ○ | 沸き上げ湯温自動設定 |
0xb2 | × | × | ○ | 沸き上げ中状態 |
0xb4 | × | ○ | ○ | 手動沸き上げ停止日数設定値 |
0xb6 | × | ○ | ○ | タンク運転モード設定 |
0xc0 | × | ○ | ○ | 昼間沸き増し許可設定 |
0xc3 | ○ | × | ○ | 給湯中状態 |
0xc4 | × | × | ○ | 風呂保温運転相対時間設定値 |
0xd1 | × | × | ○ | 給湯温度設定値 |
0xd3 | × | × | ○ | 風呂温度設定値 |
0xd4 | × | × | ○ | 風呂湯量設定4 |
0xd5 | × | × | ○ | 風呂湯量設定4設定可能最大レベル |
0xe1 | × | × | ○ | 残湯量計測値 |
0xe2 | × | × | ○ | タンク容量値 |
0xe3 | × | ○ | ○ | 風呂自動モード設定 |
0xe4 | × | ○ | ○ | 手動風呂追い焚き動作設定 |
0xe5 | × | × | ○ | 手動風呂足し湯動作設定 |
0xe6 | × | × | ○ | 手動風呂ぬるめ動作設定 |
0xe9 | × | × | ○ | 浴室優先設定 |
0xea | ○ | × | ○ | 風呂動作状態監視 |
エコキュート状態の取得1
-
ホームコントローラ(タブレットアプリ)に表示される内容が、ここで取得された値に由来していると思われます。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c4 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x026b01 (Electric water heater) Destination ECHONET Lite object (DEOJ): 0x05ff01 (Controller) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 7 Property 1 ECHONET Property (EPC): 0x80 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 30 Property 2 ECHONET Property (EPC): 0x81 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 20 Property 3 ECHONET Property (EPC): 0x89 Property Data Counter (PDC): 2 ECHONET Property Value Data (EDT): 0000 Property 4 ECHONET Property (EPC): 0x8a Property Data Counter (PDC): 3 ECHONET Property Value Data (EDT): 000008 Property 5 ECHONET Property (EPC): 0xe3 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 6 ECHONET Property (EPC): 0xe1 Property Data Counter (PDC): 2 ECHONET Property Value Data (EDT): 01f4 Property 7 ECHONET Property (EPC): 0xb2 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42
EPC | プロパティ | 値 |
---|---|---|
0x80 | 動作状態 | 起動中(0x30) |
0x81 | 設置場所 | 浴室、バス(0x20) |
0x89 | 異常内容 | 異常なし(0x0000) |
0x8a | メーカーコード | ?(0x000008) |
0xe3 | 風呂自動モード設定 | 自動解除(0x42) |
0xe1 | 残湯量計測値 | 500L(0x1f4) |
0xb2 | 沸き上げ中状態 | 非沸き上げ中(0x42) |
瞬時消費電力計測値(EPC=0x84)の取得
-
文字通り、消費電力(W)で、このパケットでは100W(0x0064)を示しています。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c5 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x026b01 (Electric water heater) Destination ECHONET Lite object (DEOJ): 0x05ff01 (Controller) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 1 Property 1 ECHONET Property (EPC): 0x84 Property Data Counter (PDC): 2 ECHONET Property Value Data (EDT): 0064
エコキュート状態の取得2
-
ホームコントローラ(タブレットアプリ)に表示される内容が、ここで取得された値に由来していると思われます。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c6 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x026b01 (Electric water heater) Destination ECHONET Lite object (DEOJ): 0x05ff01 (Controller) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 6 Property 1 ECHONET Property (EPC): 0xc3 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 2 ECHONET Property (EPC): 0xb2 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 3 ECHONET Property (EPC): 0xea Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 4 ECHONET Property (EPC): 0xd1 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 2a Property 5 ECHONET Property (EPC): 0xd3 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 29 Property 6 ECHONET Property (EPC): 0xe1 Property Data Counter (PDC): 2 ECHONET Property Value Data (EDT): 01f4
EPC | プロパティ | 値 |
---|---|---|
0xc3 | 給湯中状態 | 非給湯中(0x42) |
0xb2 | 沸き上げ中状態 | 非沸き上げ中(0x42) |
0xea | 風呂動作状態監視 | 停止中(0x42) |
0xd1 | 給湯温度設定値 | 42度(0x2a) |
0xd3 | 風呂温度設定値 | 41度(0x29) |
0xe1 | 残湯量計測値 | 500L(0x1f4) |
エコキュート状態の取得3
-
ホームコントローラ(タブレットアプリ)に表示される内容が、ここで取得された値に由来していると思われます。
ECHONET Lite ECHONET Lite Header (EHD) Transaction ID (TID): 0x00c7 ECHONET Lite Data (EDATA) Source ECHONET Lite object (SEOJ): 0x026b01 (Electric water heater) Destination ECHONET Lite object (DEOJ): 0x05ff01 (Controller) ECHONET Lite service (ESV): Get_Res (0x72) Property size (OPC): 9 Property 1 ECHONET Property (EPC): 0x80 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 30 Property 2 ECHONET Property (EPC): 0xe3 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 3 ECHONET Property (EPC): 0x90 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 4 ECHONET Property (EPC): 0x91 Property Data Counter (PDC): 2 ECHONET Property Value Data (EDT): 1100 Property 5 ECHONET Property (EPC): 0xb4 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 00 Property 6 ECHONET Property (EPC): 0xb0 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 41 Property 7 ECHONET Property (EPC): 0xb6 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 8 ECHONET Property (EPC): 0xc0 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42 Property 9 ECHONET Property (EPC): 0xe4 Property Data Counter (PDC): 1 ECHONET Property Value Data (EDT): 42
EPC | プロパティ | 値 |
---|---|---|
0x80 | 動作状態 | 起動中(0x30) |
0xe3 | 風呂自動モード設定 | 自動解除(0x42) |
0x90 | ONタイマ予約設定 | 予約切(0x42) |
0x91 | ONタイマ時刻設定値 | 17:00(0x1100) |
0xb4 | 手動沸き上げ停止日数設定値 | 0日(0x00) |
0xb0 | 沸き上げ自動設定 | 自動沸き上げ(0x41) |
0xb6 | タンク運転モード設定 | 節約(0x42) |
0xc0 | 昼間沸き増し許可設定 | 昼間沸き増し禁止(0x42) |
0xe4 | 手動風呂追い焚き動作設定 | 追い焚き切(0x42) |
まとめ
- 時系列データを取ってみようと思えるデータとしては、消費電力値と残湯量計測値くらいですね。
- いずれの値も、あまり細かい数値は取れない(100W未満の消費電力値は取得できない模様)ようで、思っていたより面白みがないですが。