ECHONET Liteについてのメモ
とりあえずエミュレータを用意
パケットについて理解しないと使い方わからなさそうなので簡潔にここにまとめておきたい
http://sh-center.org/sdk にあるチュートリアルを読む
HEMS ... 家の家電製品などを管理・コントロールする機械
ECHONET Lite ... コントローラや各機器との通信プロトコル
プロトコルについて
- ECHONET Lite は UDP レイヤー上のプロトコル
- 受信ポート番号:
3610
- マルチキャストアドレス:
224.0.23.0
(IPv4),ff02::1
(IPv6) - メッセージは全てバイナリデータで定義
機器の機能・状態はすべてプロパティで定義されている。
- 取得する時はGet命令
- 設定(操作)する時はSet命令
- 通知する時はINF命令
通知はマルチキャストさせるってことかな
メッセージのフォーマットについて
シンプルなフォーマットは以下
+-----+-----+------+------+-----+-----+-----+-----+-----+
| EHD | TID | SEOJ | DEOJ | ESV | OPC | EPC | PDC | EDT |
+-----+-----+------+------+-----+-----+-----+-----+-----+
EHD: ECHONET Lite Header (2byte)
ECHONET Liteのメッセージであることを示すヘッダー値で(0x1081)が固定で入る
TID: Transaction ID (2byte)
リクエスト時に任意の値を設定し、同じ値のメッセージがそのリクエストに対するレスポンス内容
SEOJ: Source ECHONET Lite Object (3byte)
送信元の機器を示すデータ
DEOJ: Destination ECHONET Lite Object (3byte)
送信先の機器を示すデータ(Destinationの訳は行き先)
ESV: ECHONET Lite Service (1byte)
メッセージのサービスの種類
Get, Set INF命令を指定する部分?かな
OPC: Operation Count (1byte)
命令の数
後続にあるEPC
, PDC
, EDT
がセットで1つの命令で、この数を宣言している形
EPC: ECHONET Lite Property Code (1byte)
機器の設定・状態・機能はプロパティを指定する
PDC: Property Data Count (1byte)
後述するEDTのデータサイズ
Get命令の場合はEDTは指定しないので0
が設定される
EDT: ECHONET Lite Data (可変長)
設定(操作)するプロパティの値
通知する場合はここで指定した値が通知されるのかな...?
蓄電池の運転モードについて
参考:https://echonet.jp/wp/wp-content/uploads/pdf/General/Standard/AIF/sb/sb_aif_ver1.20.pdf
「運転モード(EPC: 0xDA
)」を 充電(0x42
) (※急速充電も?)または 放電(0x43
) に設定する前に、「AC充電量設定値(EPC: 0xAA
)」または「AC放電量設定値(EPC: 0xAB
)」を先に設定する必要がある。
25ページから引用
設定値の分充電・放電が行われるので、その機器が充電・放電できる値を設定値に設定する?
40ページから引用
「充電方式(EPC: 0xC1
)」または「放電方式(EPC: 0xC2
)」を設定するのもあり?
279ページから引用
0xA4
と0xA5
を使えばいいかな
上のやつは通常時だから、バッテリーが劣化したときにこれらの値に差ができていくっぽそう
新しいAPPENDIX ECHONET機器オブジェクト詳細規定がでてた
分電盤の計測チャンネルについて
EPCにて「計測チャンネル1 (~32) [EPC: 0xD0~0xEF
]」が用意されている
ただ、「計測チャンネル数(片方向)[EPC: 0xB1
]」と「計測チャンネル数(双方向)[EPC: 0xB8
]」には、1~252または不明が取得できるとある。
要するに片方向・双方向の計測チャンネルが最大504個あるケースも考慮する必要がある。
「計測チャンネル1 」などは上記のなかからどれが設定されているのだろう...?
片方向・双方向の計測チャンネルのデータは設定してリストで取得できるみたい
ただし、範囲したすべての電力量が合算されるみたいなので、複数チャンネルで正方向・逆方向を集計したいという要件は厳しそう
発電・消費のどっちの電力量なのかは電流(A)のR相、T相で判別できるかも?
データはsigned short
なのでマイナスの値もくるはず。
そもそもR相、T相ってよくわからんけど
→ 交流だから、判別は無理