master
parent
6e1328d2e5
commit
b74dad9a1b
4 changed files with 756 additions and 645 deletions
@ -1 +1 @@ |
|||||||
node_modules/ |
node_modules/ |
||||||
|
@ -1,37 +1,115 @@ |
|||||||
const mqtt = require('mqtt').connect('mqtt://192.168.3.4'); |
const mqtt = require('mqtt').connect('mqtt://192.168.3.4'); |
||||||
const mysql = require('mysql').createConnection({ |
const fs = require('fs'); |
||||||
host : 'db.yimian.xyz', |
const redis = require('redis').createClient(6379, '127.0.0.1'); |
||||||
user : 'home', |
|
||||||
password : 'KJ4j2JL6s^k@jsa2', |
|
||||||
database : 'home' |
|
||||||
}); |
|
||||||
|
|
||||||
|
|
||||||
|
var data = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; |
||||||
mysql.connect(); |
var res = [0, 0, 0, 0]; |
||||||
const sql = 'INSERT INTO sola_mqtt(timestamp,topic,value) VALUES(?,?,?)'; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mqtt.on('connect', function () { |
|
||||||
mqtt.subscribe('hass/#', function (err) { |
mqtt.on('connect', function () { |
||||||
if (!err) { |
mqtt.subscribe('#', function (err) { |
||||||
console.log('Connected...'); |
if (!err) { |
||||||
} |
console.log('Connected...'); |
||||||
}) |
mqtt.publish('hass/refresh', '1'); |
||||||
}) |
} |
||||||
|
}) |
||||||
mqtt.on('message', function (topic, message) { |
}) |
||||||
// message is Buffer
|
|
||||||
console.log(topic.toString(), message.toString()); |
|
||||||
let params = [(new Date()).valueOf(), topic.toString(), message.toString()]; |
|
||||||
|
setInterval(()=>{ |
||||||
mysql.query(sql,params,function (err, result) { |
let o = []; |
||||||
if(err){ |
|
||||||
console.log('[INSERT ERROR] - ',err.message); |
let date = new Date(); |
||||||
return; |
|
||||||
}
|
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()); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
}) |
||||||
|
@ -1,11 +1,12 @@ |
|||||||
{ |
{ |
||||||
"name": "sola_mqtt", |
"name": "dataset_generator", |
||||||
"version": "1.0.0", |
"version": "1.0.0", |
||||||
"main": "index.js", |
"main": "index.js", |
||||||
"author": "iotcat <i@iotcat.me>", |
"author": "iotcat <i@iotcat.me>", |
||||||
"license": "MIT", |
"license": "MIT", |
||||||
"dependencies": { |
"dependencies": { |
||||||
"mqtt": "^3.0.0", |
"mqtt": "^3.0.0", |
||||||
"mysql": "^2.18.1" |
"mysql": "^2.18.1", |
||||||
} |
"redis": "^3.0.2" |
||||||
} |
} |
||||||
|
} |
||||||
|
Loading…
Reference in new issue