|
|
|
const mqtt = require('mqtt').connect('mqtt://192.168.3.4');
|
|
|
|
const fs = require('fs');
|
|
|
|
const redis = require('redis').createClient(6379, '127.0.0.1');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var data = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
|
|
|
|
var res = [0, 0, 0, 0];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mqtt.on('connect', function () {
|
|
|
|
mqtt.subscribe('#', function (err) {
|
|
|
|
if (!err) {
|
|
|
|
console.log('Connected...');
|
|
|
|
mqtt.publish('hass/refresh', '1');
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setInterval(()=>{
|
|
|
|
let o = [];
|
|
|
|
|
|
|
|
let date = new Date();
|
|
|
|
|
|
|
|
o = o.concat(data)
|
|
|
|
o.push(date.getHours())
|
|
|
|
o.push(date.getMonth()+1)
|
|
|
|
o = o.concat(res);
|
|
|
|
|
|
|
|
o = o.map(Number)
|
|
|
|
redis.get('smartMode', (e, v)=>{
|
|
|
|
if(v=='0'){
|
|
|
|
//console.log(date.valueOf(), o);
|
|
|
|
fs.appendFile('/var/dataset/'+date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate()+'.dat', '['+o+']\n', ()=>{});
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
}, 1000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mqtt.on('message', function (topic, message) {
|
|
|
|
// message is Buffer
|
|
|
|
console.log(topic.toString(), message.toString());
|
|
|
|
if(topic.toString() == 'hass/snsr/hall/p0'){
|
|
|
|
data[0] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/hall/p1'){
|
|
|
|
data[1] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/hall/p2'){
|
|
|
|
data[2] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/hall/p3'){
|
|
|
|
data[3] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/din/p0'){
|
|
|
|
data[4] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/din/p1'){
|
|
|
|
data[5] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/din/p2'){
|
|
|
|
data[6] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/din/p3'){
|
|
|
|
data[7] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/kit/p0'){
|
|
|
|
data[8] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/kit/p1'){
|
|
|
|
data[9] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/kit/p2'){
|
|
|
|
data[10] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/kit/p3'){
|
|
|
|
data[11] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/liv/p0'){
|
|
|
|
data[12] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/liv/p1'){
|
|
|
|
data[13] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/liv/p2'){
|
|
|
|
data[14] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/liv/p3'){
|
|
|
|
data[15] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/livb/p0'){
|
|
|
|
data[16] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/livb/p1'){
|
|
|
|
data[17] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/livb/p2'){
|
|
|
|
data[18] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/livb/p3'){
|
|
|
|
data[19] = message.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(topic.toString() == 'hass/snsr/hall/light'){
|
|
|
|
res[0] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/din/light'){
|
|
|
|
res[1] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/kit/light'){
|
|
|
|
res[2] = message.toString();
|
|
|
|
}else if(topic.toString() == 'hass/snsr/liv/light'){
|
|
|
|
res[3] = message.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(topic.toString() == 'inner/smartLightMode'){
|
|
|
|
redis.set('smartMode', message.toString());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
})
|