iotcat 4 years ago
parent 6e1328d2e5
commit b74dad9a1b
  1. 2
      .gitignore
  2. 152
      index.js
  3. 23
      package.json
  4. 1224
      yarn.lock

2
.gitignore vendored

@ -1 +1 @@
node_modules/
node_modules/

@ -1,37 +1,115 @@
const mqtt = require('mqtt').connect('mqtt://192.168.3.4');
const mysql = require('mysql').createConnection({
host : 'db.yimian.xyz',
user : 'home',
password : 'KJ4j2JL6s^k@jsa2',
database : 'home'
});
mysql.connect();
const sql = 'INSERT INTO sola_mqtt(timestamp,topic,value) VALUES(?,?,?)';
mqtt.on('connect', function () {
mqtt.subscribe('hass/#', function (err) {
if (!err) {
console.log('Connected...');
}
})
})
mqtt.on('message', function (topic, message) {
// message is Buffer
console.log(topic.toString(), message.toString());
let params = [(new Date()).valueOf(), topic.toString(), message.toString()];
mysql.query(sql,params,function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
return;
}
});
})
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());
}
})

@ -1,11 +1,12 @@
{
"name": "sola_mqtt",
"version": "1.0.0",
"main": "index.js",
"author": "iotcat <i@iotcat.me>",
"license": "MIT",
"dependencies": {
"mqtt": "^3.0.0",
"mysql": "^2.18.1"
}
}
{
"name": "dataset_generator",
"version": "1.0.0",
"main": "index.js",
"author": "iotcat <i@iotcat.me>",
"license": "MIT",
"dependencies": {
"mqtt": "^3.0.0",
"mysql": "^2.18.1",
"redis": "^3.0.2"
}
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save