replasing 'got' with 'request' package;
UI for garden watering (start/stop);
This commit is contained in:
50
dht.js
50
dht.js
@@ -6,7 +6,7 @@ const express = require('express');
|
|||||||
const bodyParser = require('body-parser');
|
const bodyParser = require('body-parser');
|
||||||
|
|
||||||
const request = require('request');
|
const request = require('request');
|
||||||
const got = require('got');
|
|
||||||
const WebSocket = require('ws');
|
const WebSocket = require('ws');
|
||||||
|
|
||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
@@ -80,8 +80,7 @@ function(req, res){
|
|||||||
//break it
|
//break it
|
||||||
//code = code.substring(150);
|
//code = code.substring(150);
|
||||||
//console.log("RAW: " + code);
|
//console.log("RAW: " + code);
|
||||||
// if(ir.SendCmd("http://192.168.1.126/irraw", code))
|
if(ir.SendCmd("http://192.168.1.143", code))
|
||||||
if(ir.SendCmd("http://192.168.1.126", code))
|
|
||||||
{
|
{
|
||||||
console.log("OK. Temp: " + req.body.temp);
|
console.log("OK. Temp: " + req.body.temp);
|
||||||
BroadcastWS(ac.Tlc112.GetState());
|
BroadcastWS(ac.Tlc112.GetState());
|
||||||
@@ -111,6 +110,25 @@ var moment = require('moment');
|
|||||||
|
|
||||||
app.use('/dht', ir.html_handle_dht);
|
app.use('/dht', ir.html_handle_dht);
|
||||||
|
|
||||||
|
app.use('/waterTest',function(req, res){
|
||||||
|
|
||||||
|
console.log("Watering TEST for: " + req.params);
|
||||||
|
});
|
||||||
|
app.use('/water',function(req, res){
|
||||||
|
var time = req.query.t;
|
||||||
|
console.log("Watering cmd for: " + time);
|
||||||
|
request('http://192.168.1.109/control?cmd=event,manualwatering='+ time, { json: true }, (err, res, body) => {
|
||||||
|
if (err) { return console.log("Problem watering: " + err); }
|
||||||
|
console.log("Watering cmd successfully sent!");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
app.use('/waterStop',function(req, res){
|
||||||
|
request('http://192.168.1.109/control?cmd=event,stopwatering', { json: true }, (err, res, body) => {
|
||||||
|
if (err) { return console.log("Problem watering: " + err); }
|
||||||
|
console.log("STOP watering cmd sent!");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
function BroadcastWS(msg){
|
function BroadcastWS(msg){
|
||||||
wss.clients.forEach(function each(client) {
|
wss.clients.forEach(function each(client) {
|
||||||
if (client.readyState === WebSocket.OPEN) {
|
if (client.readyState === WebSocket.OPEN) {
|
||||||
@@ -181,7 +199,7 @@ wss.on('connection', ws => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
var mosca = require('mosca')
|
var mosca = require('mosca');
|
||||||
var mqtt_settings = {
|
var mqtt_settings = {
|
||||||
port:1884,
|
port:1884,
|
||||||
secure : {
|
secure : {
|
||||||
@@ -243,7 +261,7 @@ mqtt_client.on('message', function (topic, message) {
|
|||||||
else { console.log("error: " + err); }
|
else { console.log("error: " + err); }
|
||||||
});
|
});
|
||||||
}else {
|
}else {
|
||||||
console.log("got wrong DHT data: " + message );
|
console.log("Got wrong DHT data: " + message );
|
||||||
}
|
}
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
@@ -304,13 +322,21 @@ mqtt_client.on('message', function (topic, message) {
|
|||||||
SaveDhtIf();
|
SaveDhtIf();
|
||||||
handled = true;
|
handled = true;
|
||||||
}
|
}
|
||||||
if(topic === "ESP_Easy/Water/start" || topic === "ESP_Easy/Water/stop")
|
if(topic === "ESP_Easy/Water/start")
|
||||||
{
|
{
|
||||||
var j = JSON.parse(message);
|
var j = JSON.parse(message);
|
||||||
console.log("Garden > Finished watering with " + j.soil + "% soil RH");
|
|
||||||
dht.Soil = j.soil;
|
dht.Soil = j.soil;
|
||||||
SaveDhtIf();
|
SaveDhtIf();
|
||||||
handled = true;
|
handled = true;
|
||||||
|
console.log("Garden > Started watering with " + j.soil + "% soil RH");
|
||||||
|
}
|
||||||
|
if(topic === "ESP_Easy/Water/stop")
|
||||||
|
{
|
||||||
|
var j = JSON.parse(message);
|
||||||
|
dht.Soil = j.soil;
|
||||||
|
SaveDhtIf();
|
||||||
|
handled = true;
|
||||||
|
console.log("Garden > Finished watering with " + j.soil + "% soil RH");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!handled){
|
if(!handled){
|
||||||
@@ -318,7 +344,7 @@ mqtt_client.on('message', function (topic, message) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
function SaveDhtIf(){
|
function SaveDhtIf(){
|
||||||
if(dht.Temp && dht.Hum && dht.Pres && dht.Soil)
|
if(dht.Temp && dht.Hum && dht.Pres)// && dht.Soil
|
||||||
{
|
{
|
||||||
if(dht.Soil < 5)
|
if(dht.Soil < 5)
|
||||||
{
|
{
|
||||||
@@ -336,3 +362,11 @@ function SaveDhtIf(){
|
|||||||
console.log("Missing all data to write to DB !");
|
console.log("Missing all data to write to DB !");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//(function() {
|
||||||
|
// var exLog = console.log;
|
||||||
|
// console.log = function(msg) {
|
||||||
|
// exLog.apply(this, arguments);
|
||||||
|
// fs.writeFileSync('./log.txt', msg);
|
||||||
|
// }
|
||||||
|
//})();
|
||||||
|
|||||||
974
package-lock.json
generated
974
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@@ -18,38 +18,43 @@
|
|||||||
"homepage": "",
|
"homepage": "",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
|
"bufferutil": "^4.0.1",
|
||||||
"connect-ensure-login": "^0.1.1",
|
"connect-ensure-login": "^0.1.1",
|
||||||
"cookie-auth": "^2.4.2",
|
"cookie-auth": "^2.4.2",
|
||||||
"cookie-parser": "^1.4.5",
|
"cookie-parser": "^1.4.5",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"deasync": "^0.1.20",
|
"deasync": "^0.1.20",
|
||||||
"ejs": "^3.1.2",
|
"ejs": "^3.1.3",
|
||||||
"express": "^4.8.7",
|
"express": "^4.8.7",
|
||||||
"express-ejs-layouts": "^2.5.0",
|
"express-ejs-layouts": "^2.5.0",
|
||||||
"express-namespace": "^0.1.1",
|
"express-namespace": "^0.1.1",
|
||||||
"express-session": "^1.17.1",
|
"express-session": "^1.17.1",
|
||||||
"got": "^10.7.0",
|
|
||||||
"helmet": "3.21.3",
|
"helmet": "3.21.3",
|
||||||
"moment": "^2.25.3",
|
"log4js": "^6.3.0",
|
||||||
"moment-timezone": "^0.5.13",
|
"moment": "^2.26.0",
|
||||||
"mongoose": "^5.9.13",
|
"moment-timezone": "^0.5.31",
|
||||||
|
"mongoose": "^5.9.18",
|
||||||
"morgan": "^1.10.0",
|
"morgan": "^1.10.0",
|
||||||
"mosca": "^2.8.3",
|
"mosca": "^2.8.3",
|
||||||
|
"mqtt": "^4.1.0",
|
||||||
"mysql": "^2.18.1",
|
"mysql": "^2.18.1",
|
||||||
"mysql2": "^2.1.0",
|
"mysql2": "^2.1.0",
|
||||||
|
"n": "^6.5.1",
|
||||||
"node-cron": "^2.0.3",
|
"node-cron": "^2.0.3",
|
||||||
"node-uuid": "^1.4.8",
|
"node-uuid": "^1.4.8",
|
||||||
"passport": "^0.4.1",
|
"passport": "^0.4.1",
|
||||||
"passport-auth0": "^1.3.2",
|
"passport-auth0": "^1.3.3",
|
||||||
"passport-cookie": "^1.0.6",
|
"passport-cookie": "^1.0.8",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"plaintextparser": "^1.0.3",
|
"plaintextparser": "^1.0.3",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
"sequelize": "^5.21.8",
|
"sequelize": "^5.21.13",
|
||||||
"sequelize-cli": "^5.5.1",
|
"sequelize-cli": "^5.5.1",
|
||||||
"swagger-ui-express": "^2.0.13",
|
"swagger-ui-express": "^2.0.13",
|
||||||
"sync-request": "^4.0.2",
|
"sync-request": "^4.0.2",
|
||||||
|
"utf-8-validate": "^5.0.2",
|
||||||
"vash": "^0.13.0",
|
"vash": "^0.13.0",
|
||||||
|
"winston": "^3.2.1",
|
||||||
"ws": "^7.3.0"
|
"ws": "^7.3.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ var con = mysql.createConnection({
|
|||||||
database : 'iot'
|
database : 'iot'
|
||||||
});
|
});
|
||||||
|
|
||||||
const got = require('got');
|
//const got = require('got');
|
||||||
|
|
||||||
exports.findByName = function(fieldName, days, cb) {
|
exports.findByName = function(fieldName, days, cb) {
|
||||||
process.nextTick(function() {
|
process.nextTick(function() {
|
||||||
@@ -44,7 +44,7 @@ exports.getFromDht = function(url, cb)
|
|||||||
{
|
{
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
const dht = await got('http://192.168.1.126/json')
|
//! const dht = await got('http://192.168.1.126/json')
|
||||||
var j = JSON.parse(body);
|
var j = JSON.parse(body);
|
||||||
if(j.dht && j.dht.hum <= 100 && j.dht.hum >= 0){
|
if(j.dht && j.dht.hum <= 100 && j.dht.hum >= 0){
|
||||||
exports.insert(0, "A23_DHT", dht.body, cb);
|
exports.insert(0, "A23_DHT", dht.body, cb);
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
const util = require('util');
|
const util = require('util');
|
||||||
const { parse } = require('querystring');
|
const { parse } = require('querystring');
|
||||||
var moment = require('moment');
|
var moment = require('moment');
|
||||||
const got = require('got');
|
|
||||||
const request = require('request');
|
const request = require('request');
|
||||||
|
|
||||||
function GetDht() {
|
function GetDht() {
|
||||||
@@ -10,9 +9,12 @@ function GetDht() {
|
|||||||
var result;
|
var result;
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
var ret = await got('http://192.168.1.126/cm?cmnd=status%2010&user=admin&password=vlado555');
|
var url='http://192.168.1.143/cm?cmnd=status%2010&user=admin&password=vlado555';
|
||||||
console.log("DHT: "+ util.inspect(ret.body));
|
request(url, { json: true }, (err, res, body) => {
|
||||||
var j = JSON.parse(ret.body);
|
if (err) { return console.log("Problem getting current conditions: " + err); }
|
||||||
|
|
||||||
|
console.log("DHT:"+ util.inspect(body));
|
||||||
|
var j = body; //JSON.parse(body);
|
||||||
console.log("JSON> " + util.inspect(j));
|
console.log("JSON> " + util.inspect(j));
|
||||||
if(j.StatusSNS && j.StatusSNS.DHT11 && j.StatusSNS.DHT11.Humidity !== null)
|
if(j.StatusSNS && j.StatusSNS.DHT11 && j.StatusSNS.DHT11.Humidity !== null)
|
||||||
{
|
{
|
||||||
@@ -23,6 +25,7 @@ function GetDht() {
|
|||||||
dew: j.StatusSNS.DHT11.DewPoint
|
dew: j.StatusSNS.DHT11.DewPoint
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
@@ -44,7 +47,11 @@ function GetDht() {
|
|||||||
console.log("IR_SEND_RAW:" + url);
|
console.log("IR_SEND_RAW:" + url);
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
ret = await got(url);
|
|
||||||
|
request(url, { json: true }, (err, res, body) => {
|
||||||
|
if (err) { return console.log("Problem sending IR: " + err); }
|
||||||
|
console.log("IR command send!");
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
@@ -105,11 +112,11 @@ function GetDht() {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log("DHT Error:" + error);
|
console.log("DHT Error:" + error);
|
||||||
}
|
}
|
||||||
console.log("got current conditions??");
|
console.log("current conditions??");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'ir':
|
case 'ir':
|
||||||
console.log("got IR message!");
|
console.log("IR message!");
|
||||||
console.log(req.body);
|
console.log(req.body);
|
||||||
console.log(util.inspect(req.params));
|
console.log(util.inspect(req.params));
|
||||||
try{
|
try{
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
|
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
|
||||||
<div id="now" class="form-text">getting inside conditions...</div>
|
<div id="now" class="form-text">getting inside conditions...</div>
|
||||||
|
|
||||||
|
<div class="fieldset col-12">
|
||||||
|
<select name="waterTime" id="waterTime">
|
||||||
|
<option value="5">5 seconds</option>
|
||||||
|
<option value="15">10 seconds</option>
|
||||||
|
<option value="30">30 seconds</option>
|
||||||
|
<option value="60">1 min</option>
|
||||||
|
<option value="120">2 min</option>
|
||||||
|
<option value="180">3 min</option>
|
||||||
|
<option value="300">5 min</option>
|
||||||
|
</select>
|
||||||
|
<button id="water" class="btn">Water</button>
|
||||||
|
<button id="waterStop" class="btn btn-warning">Stop water</button>
|
||||||
|
</div>
|
||||||
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
|
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
|
||||||
|
|
||||||
<%- contentFor('head') %>
|
<%- contentFor('head') %>
|
||||||
@@ -204,5 +218,8 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},5000);
|
},5000);
|
||||||
|
|
||||||
|
$("#water").on("click", function(){$.ajax({url:"/n/water?t="+$("#waterTime").val()});});
|
||||||
|
$("#waterStop").on("click", function(){$.ajax({url:"/n/waterStop"});});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
Reference in New Issue
Block a user