LoginSignup
1
0

More than 5 years have passed since last update.

ECHONET Liteを解析するプログラムを使ってみる

ECHONET Liteを解析するためのechonet lite converterを使ってみるための情報です。
README.mdだけではわかりにくいとおもうので。

準備

console
> npm i echonet-lite
> npm i echonet-lite-conv

テストコード

test.js
var util = require('util');
var EL = require('echonet-lite');
var ELconv = require('echonet-lite-conv');
ELconv.initialize();

var objList = ['05ff01'];
var elsocket = EL.initialize( objList, function( rinfo, els ) {
    // データを受信するたび,このブロックが実行される
});

// 10秒に1回情報を表示(内部データは常時更新されている)
setInterval(function() {
    console.log('====');
    ELconv.refer( EL.facilities, function( devs ) {
        console.log(util.inspect(devs,false,null));
    });
}, 10000);

EL.search();

実行

実行しましょう。受信待ちで無限ループになるので自動的には終了しません。
10秒待っていると出力されて,そのあとも10秒間隔で何度も出力されます。
満足したらCtrl-Cで終了しましょう。

> node test.js

出力

何も機器がなくても,自分がコントローラなので下記1つはあります。
IPアドレスは例です。実行環境に依存します。

output
====
{ IPs: [ '192.168.2.152' ],
  '192.168.2.152':
   { EOJs: [ 'ノードプロファイル01(0ef001)' ],
     'ノードプロファイル01(0ef001)':
      { EPCs:
         [ '動作状態(80)',
           'Version情報(82)',
           '識別番号(83)',
           'インスタンスリスト通知(D5)',
           '自ノードインスタンスリストS(D6)',
           '状変アナウンスプロパティマップ(9D)',
           'Setプロパティマップ(9E)',
           'Getプロパティマップ(9F)',
           'メーカコード(8A)',
           '自ノードインスタンス数(D3)',
           '自ノードクラス数(D4)',
           '自ノードクラスリストS(D7)' ],
        '動作状態(80)': 'ON(30)',
        'Version情報(82)': 'Ver. 1.10 規定電文形式(010A0100)',
        '識別番号(83)': 'referSpec(FE00000000000000000000000000000000)',
        'インスタンスリスト通知(D5)': 'keyValues(0105FF01)',
        '自ノードインスタンスリストS(D6)': 'コントローラ01(0105FF01)',
        '状変アナウンスプロパティマップ(9D)': '02[80, d5](0280D5)',
        'Setプロパティマップ(9E)': '00[](00)',
        'Getプロパティマップ(9F)': '09[80, 82, 83, 8a, d3, d4, d5, d6, d7](098082838AD3D4D5D6D7)',
        'メーカコード(8A)': '学校法人幾徳学園 神奈川工科大学(000077)',
        '自ノードインスタンス数(D3)': '1(000001)',
        '自ノードクラス数(D4)': '2(0002)',
        '自ノードクラスリストS(D7)': 'コントローラ(0105FF)' } } }

ポイント

  • echonet-liteモジュール内部にある「EL.facilities」を読んでしまう事。EL.facilitiesは書き込んではダメよ,受信データと不一致が出てしまうよ。
  • ELconv.referすれば解析結果がコールバックされるよ。
1
0
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
1
0