LoginSignup
11

More than 5 years have passed since last update.

1. Node.jsのJavaScriptでECHONET Liteっていうネットワーク家電をコントロールしてみよう的な話

Last updated at Posted at 2016-05-31

前提条件

  • Windows
  • Node.jsはインストール済み
  • 記事時点でのバージョンは,
    • node v4.4.5
    • npm v 2.15.5
    • echonet-lite v0.0.12

Node.jsでのECHONET Liteプログラミング

今回はNPMのechonet-liteモジュールにあるサンプルをとりあえず動かしてみます.
echonet-liteモジュール

Node.jsで簡単なECHONET Lite通信プログラムを作ってみましょう.
まず,新しいフォルダを作ってそのフォルダに移動しておきます.
ここでは下記のフォルダを作業フォルダとして進めます.

C:\SimpleEL

echonet-liteというモジュールを利用しますが,このモジュールはインターネットでインストールする必要があります.
プログラムのフォルダにインストールするので,新しいプログラムを作るたびにインストールが必要です.
下記コマンドでインストールしましょう.

C:\SimpleEL> npm install echonet-lite

まず下記のようなプログラムを「SimpleEL.js」として作成してみます.
文字コードはUTF-8Nで改行コードCrLfが僕は好きです.

SimpleEL.js
//////////////////////////////////////////////////////////////////////
// EL最小構成
var EL = require('echonet-lite');

var objList = ['05ff01'];

var elsocket = EL.initialize( objList, function( rinfo, els ) {
    console.log('----');
    console.log( 'Found facilities are ' );
    console.dir( EL.facilities );
});


//////////////////////////////////////////////////////////////////////
// 全て立ち上がったのでINFでコントローラONの宣言
EL.sendOPC1( '224.0.23.0', [0x05,0xff,0x01], [0x0e,0xf0,0x01], 0x73, 0x80, [0x30]);

// ネットワーク状況の検索と把握
EL.search();

このスクリプトを動かすために下記のコマンドをコマンドプロンプトで実行します.

C:\SimpleEL> node SimpleEL.js

いかがでしょうか,ネットワーク内にあるECHONET Lite機器の状態を取得して出力できましたか?
もしECHONET Lite機器を持っていないのでしたら,次節のエアコンエミュレータを作成して別のパソコンで実行しておくとテストできます.

実行してみよー

下記のような結果になったと思う.

----
Found facilities are
{ '192.168.2.107':
   { '0ef001':
      { '80': '30',
        '82': '010a0100',
        '83': 'fe00000000000000000000000000000000',
        d5: '0105ff01',
        d6: '0105ff01',
        '9d': '0280d5',
        '9e': '00',
        '9f': '098082838ad3d4d5d6d7',
        '8a': '000077',
        d3: '000001',
        d4: '0002',
        d7: '0105ff' },
     '05ff01': { '80': '30' } } }

自分自身もECHONET Lite対応機器(ECHONET Liteノード)なので,自分自身も発見して機能一覧をJSON形式で作ってくれます.

192.168.2.107のIPを持っていて,0ef001の中にいくつかプロパティ,05ff01の中にいくつかプロパティがあるのが分かります.

0ef001はノードプロファイルオブジェクトといってECHONET Liteノードとして生きていく中で必ず必要なものです.モジュールの中で自動的に処理してくれます.

05ff01はECHONET Lite規格においてコントローラと決まっています.規格書のAppendixってのを見ると書いてあります.
これはソースコード内で指定しましたね.

次は実際にコントロールするあたりを記事にしてみたいです.

追加情報!

おうちハックの人がやってくれているこちらのほうも参照してください.
ラズパイからnode.jsを使ってECHONET Liteエアコンの操作をする

また,ECHONET Lite対応家電なんてもってないぜ!って人は下記URLでエミュレータをDLできますよ.
http://kadecot.net/blog/1479/

ECHONET Liteの規格書はオープンなものです.
エコーネットコンソーシアム

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
11