読者です 読者をやめる 読者になる 読者になる

凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

WeMo を操作する Node モジュールつくった

JavaScript Node.js

はじめに

Belkin 社の WeMo を JS から操作するために、「遠隔コンセントタップ WeMo を SOAP で動かすハックやってみた - 凹みTips 」にて書いた内容をモジュール化しました。

インストール & ソースコード

インストール
$ npm install wemo
ソースコード

github に上げてあります。

使用例

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!
.
.

おわりに

これでドアを潜ったら電気トグルする、が実現できそうです。