LoginSignup
4
4

More than 5 years have passed since last update.

ECHONET Lite対応の空気清浄機から温湿度を取得する

Last updated at Posted at 2019-05-15

はじめに

 我が家ではSHARP製の加湿空気清浄機(KI-HS50)を使用しています。
 この機種はネットワークに接続が可能で、本体のモニターでは温度、湿度、PM2.5濃度を切り替えて表示することができます。
 温湿度が取得できたらスマートハウスがはかどるなーと思い、なんとかネットワーク経由で温湿度を取得する方法がないか調べてみました。
 製品HPを見ると、ECHONET Liteという家電をネットワークで制御する規格に対応していることが分かったため、ECHONET Liteパケットでの情報取得について調査を行いました。
 ※なお、本記事では最終的に温湿度の取得に成功しますが、メーカ独自に規定しているデータを利用したため、本機種以外では同様の手法での温湿度取得はできません。

環境

  • 加湿空気清浄機(SHARP KI-HS50)
  • Windows
  • ECHONET Liteパケットの送受信ツール(SSNG Ver.3.0.1)
    • SSNGの使い方についてはこちらに詳しく記載されています。

ECHONET Liteで取得できる情報の解析

1.ECHONET Lite対応機器の検索

とりあえずSSNGを起動してみます。
SSNGは、GUIでECHONET Liteの電文を作成し、対象機器に送受信できます。
SSNG

ひとまず、通信開始ボタンを押し、機器検索をしてみます。
赤枠の送信パケット欄に機器検索ボタンで送信されたECHONET Liteの電文が表示され、緑枠の受信データ欄に空気清浄機が応答した内容が表示されています。
機器検索
ここで受信データの各パラメータは以下の内容を表しています。
詳しくはECHONET Lite規格書を参照してください。

パラメータ 意味
EHD1(ECHONET Lite ヘッダ1)  EHD1とEHD2の組み合わせでECHONETのプロトコル種別を表す。
EHD1:10、EHD2:81はECHONET Liteプロトコルであることを示す。
EHD2 (ECHONET Lite ヘッダ2) EHD1参照
TID (トランザクションID) 送信側の要求に対する応答であることを紐づけするためのパラメータであり、記述内容に規定はない。
応答側は送信側の電文に記載されたTIDと同じ値を返す。
SEOJ (送信元オブジェクト指定) 送信元の機器を示すパラメータである。
0x0EF001はノードプロファイルオブジェクトであることを示す。
詳細はAPPENDIX ECHONET機器オブジェクト詳細規定を参照。
DEOJ (相手先オブジェクト指定) 送信先の機器を表すパラメータである。
0x05FF01はコントローラ(PC)であることを示す。
詳細はAPPENDIX ECHONET機器オブジェクト詳細規定を参照。
ESV (ECHONET Liteサービス) EPCで指定されるプロパティに対する操作を指定するパラメータである。操作には「要求」・「応答」(応答/不可応答)・「通知」の3種類がある。
0x72は受信時の値であり、プロパティ値読み出し要求に対する応答であることを示す。
OPC (処理プロパティ数) 一度の電文で処理するプロパティ数を指定する。受信データであれば、応答のプロパティ数である。
EPC1 (ECHONET Liteプロパティ) 動作状態や、運転モードといった取得したい情報(プロパティ)を指定するパラメータである。
0xD6は自ノードインスタンスリストを示しており、APPENDIX ECHONET機器オブジェクト詳細規定に規定された機器のうち、どの機器に対応しているかの情報を応答している。
PDC1 (EDTのバイト数) EDTのバイト数を示している。
EDT1 (プロパティ値データ) EPCで指定されたプロパティに対するデータが格納されている。
0x01013501の1バイト目はオブジェクト数を示している。そのあと3バイトの0x013501は空気清浄機のオブジェクトを持つことを示している。

というわけで、機器検索に対する応答から、この空気清浄機はECHONET Liteの規格としては空気清浄機(0x013501)として登録されていることがわかりました。(当たり前)

ここで、APPENDIX ECHONET機器オブジェクト詳細規定の空気清浄機のページを見てみます。

空気清浄器クラス規定

ふんふん、風量設定や、空気汚れ検知状態が取れるのね…。あれ?温湿度は…?
というわけで、いきなり頓挫しそうですがもう少しあがいてみます。

2.応答可能プロパティの確認

まずは、この空気清浄機が返せるプロパティが本当にこれだけなのかを調べます。
そのためにEPCにGetプロパティマップというものを指定して、どんなプロパティを応答できるのかを要求してみます。
プロパティマップについては、こちらで詳しく解説されています。

赤枠の通り、DEOJに空気清浄機(0x013501)、ESVに読み出し(0x62)、EPCにGetプロパティマップ(0x9F)を指定して、要求送信してみたものが以下です。
Getプロパティ.png
ここで、緑枠の受信データのうちEDT1が応答できるプロパティです。
Getプロパティマップで取得したEDTデータの見方は、APPENDIX ECHONET機器オブジェクト詳細規定に記載されています。
1バイト目がプロパティの数を示しており、2~17バイト目は以下の表に当てはめてプロパティとの対応を確認します。

プロパティ表.png

というわけで、先ほど取得した15 95 81 81 80 01 01 01 00 01 01 01 01 01 82 02 02を当てはめてみます。
まず1バイト目の0x15は10進数で21なので、プロパティ数は21個あることがわかります。
そして、2バイト目以降を2進数に直すと以下のようになります。

    7 6 5 4 3 2 1 0
2バイト目 1 0 0 1 0 1 0 1
3バイト目 1 0 0 0 0 0 0 1
4バイト目 1 0 0 0 0 0 0 1
5バイト目 1 0 0 0 0 0 0 0
6バイト目 0 0 0 0 0 0 0 1
7バイト目 0 0 0 0 0 0 0 1
8バイト目 0 0 0 0 0 0 0 1
9バイト目 0 0 0 0 0 0 0 0
10バイト目 0 0 0 0 0 0 0 1
11バイト目 0 0 0 0 0 0 0 1
12バイト目 0 0 0 0 0 0 0 1
13バイト目 0 0 0 0 0 0 0 1
14バイト目 0 0 0 0 0 0 0 1
15バイト目 1 0 0 0 0 0 1 0
16バイト目 0 0 0 0 0 0 1 0
17バイト目 0 0 0 0 0 0 1 0

よって下記の緑枠で示したプロパティを取得できることがわかりました。
プロパティ表2.png

それぞれのプロパティは下記の意味のようです。

番号 プロパティ値 意味
1 0x80 動作状態
2 0x81 設置場所
3 0x82 規格Version情報
4 0x84 瞬時消費電力計測値
5 0x85 積算消費電力計測値
6 0x86 メーカ異常コード
7 0x88 異常発生状態
8 0x89 異常内容
9 0x8A メーカコード
10 0x8B 事業場コード
11 0x8C 商品コード
12 0x9D 状変アナウンスプロパティマップ
13 0x9E Setプロパティマップ
14 0x9F Getプロパティマップ
15 0xA0 風量設定
16 0xC0 空気汚れ検知状態
17 0xF0 メーカ独自プロパティ
18 0xF1 メーカ独自プロパティ
19 0xF2 メーカ独自プロパティ
20 0xF3 メーカ独自プロパティ
21 0xFD メーカ独自プロパティ

残念ながら、応答可能プロパティの中に、温湿度がずばりとれるものはなさそうです。
頼みの綱は0xFXのメーカ独自プロパティです。

3.メーカ独自プロパティの解析

メーカ独自プロパティで取得できるデータに温湿度が含まれていないか見てみます。
まずは、0xF0です。
独自プロパティはGUIで指定できないため、オレンジ色の枠の送信パケットにチェックを入れ、送信パケットを直接指定します。
ここでは、緑線で示す箇所を変更しEPCを0xF0にしています。
F0.png
同様に、EPCを0xF1 0xF2 0xF3 0xFD とした場合についても応答を確認します。

プロパティを取得した際に、空気清浄機のモニタで表示された温度は25度、湿度は55%でした。
とりあえず、温湿度の最小分解能を1と仮定して、モニタで表示された値の16進数値(25 -> 0x19、55 -> 0x37)が取得したデータに含まれていないか検索してみます。

ありました。
EPCが0xF1の時の応答に含まれているようです。(下記の赤線と緑線)
F1.png

本当にこれが温湿度を示しているのか確認するため、空気清浄機にドライヤーを当て、温度と湿度を変化させた状態でも確認しました。
変化時の温度は26度、湿度は54%です。それぞれ16進数では26 -> 0x1A、54 -> 0x36となります。
下記がその時の取得データです。値が一致しているので、これが温湿度でよさそうです。
F1_2.png

まとめ

  • ECHONET Lite対応機器に対し、取得できるプロパティを調査した。
  • 対象とした空気清浄機(SHARP製 KI-HS50)にはメーカ独自プロパティがあり、EPC:0xF1で温湿度が取得できることを確認した。

参考文献

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4