Added EspEasy (garden) handlers.
Added garden chart; GetDevice messages has days filter; Fixed charts & newchart data added.
This commit is contained in:
101
dht.js
101
dht.js
@@ -98,6 +98,7 @@ function(req, res){
|
||||
function(req, res){
|
||||
res.render('chart', { user: req.user });
|
||||
});
|
||||
app.get('/garden', function(req, res){ res.render('chartGarden'); });
|
||||
|
||||
//Authentication --
|
||||
|
||||
@@ -119,8 +120,8 @@ function BroadcastWS(msg){
|
||||
}
|
||||
|
||||
|
||||
app.get("/device/:field_name", function (req, res) {
|
||||
db.devicemessages.findByName(req.params.field_name, function (err, data) {
|
||||
app.get("/device/:field_name/:days?", function (req, res) {
|
||||
db.devicemessages.findByName(req.params.field_name, req.params.days, function (err, data) {
|
||||
if (!err) { res.send(data); }
|
||||
else { console.log("error: ", err); }
|
||||
});
|
||||
@@ -155,20 +156,20 @@ else
|
||||
|
||||
|
||||
|
||||
// # ┌────────────── second (optional)
|
||||
// # │ ┌──────────── minute
|
||||
// # │ │ ┌────────── hour
|
||||
// # │ │ │ ┌──────── day of month
|
||||
// # │ │ │ │ ┌────── month
|
||||
// # │ │ │ │ │ ┌──── day of week
|
||||
// # │ │ │ │ │ │
|
||||
// # │ │ │ │ │ │
|
||||
// # * * * * * *
|
||||
cron.schedule(' */30 * * * *', () => {//cron.schedule('*/5 * * * * *', () => {
|
||||
console.log(new Date().toISOString() + ' running a task every 30 minutes');
|
||||
//StoreSensorReadings();
|
||||
db.devicemessages.getFromDht('http://192.168.1.126/json');
|
||||
}).start();
|
||||
// // # ┌────────────── second (optional)
|
||||
// // # │ ┌──────────── minute
|
||||
// // # │ │ ┌────────── hour
|
||||
// // # │ │ │ ┌──────── day of month
|
||||
// // # │ │ │ │ ┌────── month
|
||||
// // # │ │ │ │ │ ┌──── day of week
|
||||
// // # │ │ │ │ │ │
|
||||
// // # │ │ │ │ │ │
|
||||
// // # * * * * * *
|
||||
// cron.schedule(' */30 * * * *', () => {//cron.schedule('*/5 * * * * *', () => {
|
||||
// console.log(new Date().toISOString() + ' running a task every 30 minutes');
|
||||
// //StoreSensorReadings();
|
||||
// db.devicemessages.getFromDht('http://192.168.1.126/json');
|
||||
// }).start();
|
||||
|
||||
//db.devicemessages.getFromDht('http://192.168.1.126/json');
|
||||
|
||||
@@ -204,23 +205,28 @@ mqtt_client.on('connect', function () {
|
||||
mqtt_client.subscribe('tele/tasmota/STATE');
|
||||
mqtt_client.subscribe('tele/tasmota/RESULT');//IR
|
||||
mqtt_client.subscribe('tele/tasmota/INFO2');
|
||||
mqtt_client.subscribe('tele/tasmota/SENSOR');//DHT
|
||||
|
||||
// mqtt_client.subscribe('tele/tasmota/SENSOR');//DHT
|
||||
mqtt_client.subscribe('tele/+/SENSOR');//DHT
|
||||
mqtt_client.subscribe('tasmota_3FD92D');
|
||||
mqtt_client.subscribe('tele');
|
||||
mqtt_client.subscribe('dht');
|
||||
mqtt_client.subscribe('ir');
|
||||
mqtt_client.publish('tasmota', 'controller')
|
||||
// mqtt_client.subscribe('tele');
|
||||
// mqtt_client.subscribe('dht');
|
||||
// mqtt_client.subscribe('ir');
|
||||
|
||||
mqtt_client.subscribe('ESP_Easy/+/+');
|
||||
mqtt_client.publish('tasmota', 'controller connected')
|
||||
});
|
||||
|
||||
var dht = {};
|
||||
// https://github.com/pauloromeira/Sonoff-Tasmota/wiki/Commands
|
||||
//https://stevessmarthomeguide.com/setting-up-the-sonoff-tasmota-mqtt-switch/
|
||||
mqtt_client.on('message', function (topic, message) {
|
||||
var context = message.toString();
|
||||
console.log("MMQT> " + topic + " : " + context);
|
||||
var handled = false;
|
||||
if(topic === "tele/tasmota/SENSOR")
|
||||
{
|
||||
var j = JSON.parse(message);
|
||||
console.log("JSON> " + util.inspect(j));
|
||||
//console.log("JSON> " + util.inspect(j));
|
||||
if(j.DHT11 && j.DHT11.Humidity !== null)
|
||||
{
|
||||
var msg = {
|
||||
@@ -238,5 +244,52 @@ mqtt_client.on('message', function (topic, message) {
|
||||
}else {
|
||||
console.log("got wrong DHT data: " + message );
|
||||
}
|
||||
handled = true;
|
||||
}
|
||||
});
|
||||
if(topic === "ESP_Easy/Water/Moisture")
|
||||
{
|
||||
console.log("MANGO> " + message + "% moisture");
|
||||
dht.Soil = message.toString();
|
||||
SaveDhtIf();
|
||||
// db.devicemessages.insert(1, "A23_Garden_Humidity", message, function (err, data) {
|
||||
// if (!err) { console.log("success: "+ data);}
|
||||
// else { console.log("error: " + err); }
|
||||
// });
|
||||
handled = true;
|
||||
}
|
||||
if(topic === "ESP_Easy/bmp/Temperature")
|
||||
{
|
||||
console.log("Garden > air " + message + "C");
|
||||
dht.Temp = message.toString();
|
||||
SaveDhtIf();
|
||||
handled = true;
|
||||
}
|
||||
if(topic === "ESP_Easy/bmp/Humidity")
|
||||
{
|
||||
console.log("Garden > air " + message + "% RH");
|
||||
dht.Hum = message.toString();
|
||||
SaveDhtIf();
|
||||
handled = true;
|
||||
}
|
||||
if(topic === "ESP_Easy/bmp/Pressure")
|
||||
{
|
||||
console.log("Garden > air " + message + " hPa");
|
||||
dht.Pres = message.toString();
|
||||
SaveDhtIf();
|
||||
handled = true;
|
||||
}
|
||||
if(!handled){
|
||||
console.log(topic + " > " + message );
|
||||
}
|
||||
});
|
||||
function SaveDhtIf(){
|
||||
if(dht.Temp && dht.Hum && dht.Pres && dht.Soil)
|
||||
{
|
||||
console.log("Writing to DB > " + JSON.stringify(dht));
|
||||
db.devicemessages.insert(1, "A23_Garden_dht", JSON.stringify(dht), function (err, data) {
|
||||
if (!err) { console.log("success: "+ data);}
|
||||
else { console.log("error: " + err); }
|
||||
});
|
||||
dht = {};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user