source now in separate modules;
Implemented MQTT coms. Using Tasmota for ESP8266; IR working reliably
This commit is contained in:
69
src/db/database.js
Normal file
69
src/db/database.js
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
const Sequelize = require("sequelize")
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
let DeviceMessageSchema = new Schema({
|
||||
_id: {type: Number, required: true},
|
||||
device_id: {type: String, required: true, max: 100}
|
||||
});
|
||||
|
||||
let DevicesSchema = new Schema({
|
||||
id: {type: Number, required: true},
|
||||
url: {type: String, required: true, max: 100}
|
||||
});
|
||||
|
||||
|
||||
var sqlz = new Sequelize('iot', 'iot', '!iot_popovi',{dialect: 'mysql'})
|
||||
var Device = sqlz.define('device', {
|
||||
id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true },
|
||||
name: Sequelize.STRING,
|
||||
baseurl: Sequelize.TEXT,
|
||||
apikey: Sequelize.TEXT,
|
||||
//config: Sequelize.JSON,
|
||||
lastseen: Sequelize.DATE
|
||||
});
|
||||
|
||||
var DeviceMessage = sqlz.define('devicemessage', {
|
||||
id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true },
|
||||
device_id: { type: Sequelize.INTEGER, allowNull: false},
|
||||
//id,"device_id","field_name","field_value","timestamp"
|
||||
field_name: { type: Sequelize.STRING(120), allowNull: false},
|
||||
field_value: { type: Sequelize.TEXT, allowNull: false},
|
||||
timestamp: { type: Sequelize.DATE, allowNull: false},
|
||||
});
|
||||
|
||||
var DeviceCommand = sqlz.define("command", {
|
||||
device: { type: Sequelize.STRING},
|
||||
command: {type: Sequelize.TEXT},
|
||||
info: {type: Sequelize.STRING},
|
||||
ac_power: Sequelize.BOOLEAN,
|
||||
ac_mode: Sequelize.ENUM('Auto', 'Heat', 'Cool', "Fan"),
|
||||
ac_fan: Sequelize.ENUM('Auto', 'Low', 'Med', "Hi"),
|
||||
ac_temp: Sequelize.FLOAT,
|
||||
ac_turbo: Sequelize.BOOLEAN,
|
||||
ac_swing: Sequelize.BOOLEAN,
|
||||
ac_display: Sequelize.BOOLEAN,
|
||||
ac_econo: Sequelize.BOOLEAN,
|
||||
ac_health: Sequelize.BOOLEAN,
|
||||
|
||||
});
|
||||
|
||||
sqlz.sync(
|
||||
//{ force: true }
|
||||
)
|
||||
.then(() => {
|
||||
console.log(`Database & tables created!`)
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
init: function() {
|
||||
//console.log(DeviceCommand.rawAttributes.states.values);
|
||||
sqlz.sync();
|
||||
},
|
||||
sqlz,
|
||||
Device,
|
||||
DeviceCommand,
|
||||
DeviceMessage
|
||||
//etc
|
||||
}
|
||||
Reference in New Issue
Block a user