Node-REDを使ってECHONET Lite機器を制御する2

Node-REDを使ってECHONET Lite機器を制御する2
本記事ではWindows PCにNode-REDを走らせ、ECHONET Lite機器を制御する方法を説明します。

# ECHONET Lite機器もしくはエミュレータの準備
ECHONET Lite機器はない場合は、下記のエミュレータを準備する。　
 ・MoekadenRoom
 Windowsなどで利用可能なエアコン・照明・ブラインド・電子錠・温度計のエミュレータ
 http://kadecot.net/blog/1479/
 ＊Node-REDと同じPCでは起動しないこと。
　
# ECHONET Liteパケットの受信
「input」カテゴリの「udp」ノードでECHONET Liteパケットを受信する。
![pic3.png](https://qiita-image-store.s3.amazonaws.com/0/145903/50f44e5f-bc91-71ea-e857-b8bbe3594c2e.png)

「output」カテゴリの「debug」ノードで受信したパケットをデバッグ窓に表示する。
![pic4.png](https://qiita-image-store.s3.amazonaws.com/0/145903/2d79de06-a2e8-c3ba-791d-0f2762405d23.png)

★「Deploy」し、パケット受信するか確認する。
　同じネットワークに接続されたECHONET Lite機器の動作状態を変更するなどして、INFパケットを出す操作を行い、そのパケットを受信できることを確認する。

# 送信相手のIPアドレスを表示
 「output」カテゴリの「debug」ノードで受信したパケットの送信元IPアドレスをデバッグ窓に表示する。
![pic5.png](https://qiita-image-store.s3.amazonaws.com/0/145903/97758fd8-cfd0-eafd-517c-c3883bbaed8d.png)
★「Deploy」し、パケット受信した際、IPアドレスが表示されるか確認する。

# 機器検索
マルチキャストアドレス(224.0.23.0)に対し、EPC=0xD6(自ノードインスタンスリストS)をGetする。
「function」カテゴリの「function」ノードに上記機能を実装する。
![pic6.png](https://qiita-image-store.s3.amazonaws.com/0/145903/8f10d63b-dd40-d3bd-7b0d-6d280e8b6580.png)
「output」カテゴリの「debug」ノードで、デバッグ窓に「function」ノードで指定した文字「Search」を表示する。
＊function「Search」が実行された時に表示する。
![pic7.png](https://qiita-image-store.s3.amazonaws.com/0/145903/0e571a9e-2128-8f00-0845-ca168d59b52a.png)
「input」カテゴリの「inject」ノードで、 function「Search」を実行するトリガを作成する。
![pic8.png](https://qiita-image-store.s3.amazonaws.com/0/145903/da09eecf-b54c-4101-3317-02e81a1a3532.png)
★「Deploy」し、機器検索するか確認する。
　「Start」ノードの左をクリックで機器検索する。
 　同じネットワーク内にECHONET Lite機器があれば、EPC=0xD6(自ノードインスタンスリストS)をGet_RESしてくる。
# 受信したELパケットをParse
「function」カテゴリの「function」ノードに上記機能を実装する。
![pic9.png](https://qiita-image-store.s3.amazonaws.com/0/145903/6fb1ae30-23f8-4e12-cc18-9332892b3b2d.png)
Parseした結果をデバッグ窓に表示する。
![pic10.png](https://qiita-image-store.s3.amazonaws.com/0/145903/82efd1f6-bde0-8a97-ce27-065a6261f27f.png)
★「Deploy」し、デバッグ窓に表示される結果を確認する。
# 照明を制御
マルチキャスト向けに、一般照明クラス(0x0290)の動作状態(0x80)をON(0x30)にSet(0x61)する。
![pic11.png](https://qiita-image-store.s3.amazonaws.com/0/145903/5167120e-282c-8002-07f7-6d2add85b6c8.png)
★「Deploy」し、照明がONするか確認する。

照明をOFFするものも作る。
「Light_ON」ノードをコピーし、「Light_OFF」ノードを作成する。
`edt = 0x31;`
に変更する。

「function」カテゴリの「delay」ノードと、「input」カテゴリの「inject」ノードを使って、照明のON/OFFを繰り返し制御する。
![pic12.png](https://qiita-image-store.s3.amazonaws.com/0/145903/962ea167-4d7d-c66c-9048-286426d4b4d4.png)

# エアコンを制御
ユニキャスト向けに、家庭用エアコンクラス(0x0130)の動作状態(0x80)をON(0x30)にSet(0x61)する。
まずはIP指定。　＊IPアドレスはそれぞれの環境にあわせて設定すること。
![pic13.png](https://qiita-image-store.s3.amazonaws.com/0/145903/ab877139-95b4-1eaa-4f94-98c3861c729e.png)
エアコンONのパラメータ設定
![pic14.png](https://qiita-image-store.s3.amazonaws.com/0/145903/cac14718-8821-0148-6e29-954cd628a104.png)
ECHONET Liteパケット送信
![pic15.png](https://qiita-image-store.s3.amazonaws.com/0/145903/114fc3d4-0f2b-25c8-c9fb-a65a01c2c488.png)
デバッグ窓へ表示
![pic16.png](https://qiita-image-store.s3.amazonaws.com/0/145903/1b69fb34-29f8-f9a1-1ce1-f22d0bb1e379.png)
★「Deploy」し、エアコンがONするか確認する。

制御するエアコンを増やす場合、
![pic17.png](https://qiita-image-store.s3.amazonaws.com/0/145903/82ad9e67-3d33-117a-2657-0625cd6b7c51.png)

# 鍵の状態に応じてエアコン制御
電気錠クラス(0x026F)は施錠設定(0xE0)が変化するとINFがでることを利用する。
![pic19.png](https://qiita-image-store.s3.amazonaws.com/0/145903/4df2783b-2cc9-70f2-453c-662595be6b98.png)
「function」カテゴリの「switch」ノードで施錠設定(0xE0)の値に応じて、条件分岐を行う。
![pic20.png](https://qiita-image-store.s3.amazonaws.com/0/145903/c2b8236e-e233-109e-df46-430b143db5ca.png)
「output」カテゴリの「link」ノードを使う。
![pic21.png](https://qiita-image-store.s3.amazonaws.com/0/145903/b61269d0-ac32-01cd-ed16-48d176340b80.png)
「input」カテゴリの「link」ノードを使う。
![pic22.png](https://qiita-image-store.s3.amazonaws.com/0/145903/175816fd-9740-e1d3-f8ab-e5193434a49a.png)
追加したノードに線をつなげます。
![pic23.png](https://qiita-image-store.s3.amazonaws.com/0/145903/777d71e2-0d19-fba5-a1f3-0c7a993a330a.png)
★「Deploy」し、鍵の状態に応じてエアコンが制御されるか確認する。

以上。