はじめに
前回(http://d.hatena.ne.jp/hecomi/20120930/1349018540)、iRemocon の IP 調べるのどうやれば良いのかな…、という締めだったので、やってみました。ついでに iRemocon を便利に使える Node.js モジュールも書きました。
iRemocon?という方は一番下の補足を御覧ください。
インストール
$ git clone git://github.com/hecomi/node-iRemocon $ cd node-iRemocon $ npm install
使い方
まず、以下のようにモジュールを読み込みます。
var iRemocon = require('iRemocon') , iremocon = new iRemocon('192.168.0.2') // iRemocon の IP を指定 ;
あとは iRemocon のコマンドを叩けば OK です。コマンドはひと通り揃えてあります。
各コマンドの詳細については公式サイトのマニュアルをご参照ください m(_ _)m。
まず、例として接続確認の au コマンドを叩いてみます。
iremocon.au(function(err, msg) { if (!err) console.log('DETECTED!'); })
すべてのメソッドにはコールバックを指定することができ、コールバック時のエラーは code, error, detail の3つの情報を保持しています。
例として赤外線信号の学習コマンド ic を叩いてエラーを見てみます。
// code : エラーコード(999 は iRemocon で定義されていないエラー) // error : エラーの概略 // detail : エラーの詳細 iremocon.ic(1 /* 1〜1500 の ID */, function(err, msg) { if (err) { console.error(err.code, err.error, err.detail); // e.g. 003 受信エラー 不正なリモコンデータを受信した return; } console.log(msg); // e.g. ic;ok });
エラーは公式マニュアルに書いてある文言が表示されます。
コールバックは省略することもできます。
iremocon.is(1);
で、お待ちかねのネットワーク内の iRemocon を見つけ方です。これかな?という IP をぐわっ配列に突っ込んで、その IP へ順番に au コマンドを送って、iRemocon の応答があれば即座に探索を中止、その IP をコールバック経由で返してくれます。
var iRemocon = require('iRemocon'); var ips = [] for (var i = 1; i < 255; ++i) { ips.push('192.168.0.' + i); } iRemocon.search(ips, function(ip) { var iremocon = new iRemocon(ip); iremocon.is(10); })
という感じでできます。
おわりに
エラーテーブル作るのが苦行だった…。
補足
iRemocon はネットワークにつながる学習リモコンです。
Glamo 【自宅や外出先から、お使いの家電をコントロールできる学習リモコンの決定版! 】 iRemocon(アイリモコン) IRM-01L
- 出版社/メーカー: Glamo
- メディア: エレクトロニクス
- 購入: 1人 クリック: 735回
- この商品を含むブログ (8件) を見る
今回は、仕様を元に Node.js から簡単に iRemocon を利用できるようにしてみた、という内容です。