はじめに
- ウチでは、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未満の消費電力値は取得できない模様)ようで、思っていたより面白みがないですが。