はじめに
Belkin 社の WeMo を JS から操作するために、「遠隔コンセントタップ WeMo を SOAP で動かすハックやってみた - 凹みTips 」にて書いた内容をモジュール化しました。
使用例
var WeMo = require('wemo'); var wemoSwitch = new WeMo('192.168.0.16'); wemoSwitch.setBinaryState(0, function(err, result) { if (err) console.error(err); console.log(result); }); setTimeout(function() { wemoSwitch.setBinaryState(1, function(err, result) { if (err) console.error(err); console.log(result); }); }, 2000); var wemoMotion = new WeMo('192.168.0.2'); wemoMotion.state = 0; setInterval(function() { wemoMotion.getBinaryState(function(err, result) { if (err) console.error(err); switch (parseInt(result) - wemoMotion.state) { case 1 : console.log('move!'); break; case 0 : console.log('.'); break; case -1 : console.log('no motion'); break; default : console.error('unexpected error'); break; } wemoMotion.state = parseInt(result); }); }, 1000);
結果
$ node test 0 . . 1 . . move! . . . no motion . . . . move! . .
おわりに
これでドアを潜ったら電気トグルする、が実現できそうです。