replasing 'got' with 'request' package;

UI for garden watering (start/stop);
This commit is contained in:
d-popov
2020-06-16 20:35:22 +03:00
parent 6a8a895f69
commit 5f02e7fb61
7 changed files with 640 additions and 450 deletions

50
dht.js
View File

@@ -6,7 +6,7 @@ const express = require('express');
const bodyParser = require('body-parser');
const request = require('request');
const got = require('got');
const WebSocket = require('ws');
const cors = require('cors');
@@ -80,8 +80,7 @@ function(req, res){
//break it
//code = code.substring(150);
//console.log("RAW: " + code);
// if(ir.SendCmd("http://192.168.1.126/irraw", code))
if(ir.SendCmd("http://192.168.1.126", code))
if(ir.SendCmd("http://192.168.1.143", code))
{
console.log("OK. Temp: " + req.body.temp);
BroadcastWS(ac.Tlc112.GetState());
@@ -111,6 +110,25 @@ var moment = require('moment');
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){
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
@@ -181,7 +199,7 @@ wss.on('connection', ws => {
})
var mosca = require('mosca')
var mosca = require('mosca');
var mqtt_settings = {
port:1884,
secure : {
@@ -243,7 +261,7 @@ mqtt_client.on('message', function (topic, message) {
else { console.log("error: " + err); }
});
}else {
console.log("got wrong DHT data: " + message );
console.log("Got wrong DHT data: " + message );
}
handled = true;
}
@@ -304,13 +322,21 @@ mqtt_client.on('message', function (topic, message) {
SaveDhtIf();
handled = true;
}
if(topic === "ESP_Easy/Water/start" || topic === "ESP_Easy/Water/stop")
if(topic === "ESP_Easy/Water/start")
{
var j = JSON.parse(message);
console.log("Garden > Finished watering with " + j.soil + "% soil RH");
dht.Soil = j.soil;
SaveDhtIf();
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){
@@ -318,7 +344,7 @@ mqtt_client.on('message', function (topic, message) {
}
});
function SaveDhtIf(){
if(dht.Temp && dht.Hum && dht.Pres && dht.Soil)
if(dht.Temp && dht.Hum && dht.Pres)// && dht.Soil
{
if(dht.Soil < 5)
{
@@ -336,3 +362,11 @@ function SaveDhtIf(){
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);
// }
//})();

1
log.txt Normal file
View File

@@ -0,0 +1 @@
HTTPS server listening on port 8443

976
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -18,38 +18,43 @@
"homepage": "",
"dependencies": {
"body-parser": "^1.19.0",
"bufferutil": "^4.0.1",
"connect-ensure-login": "^0.1.1",
"cookie-auth": "^2.4.2",
"cookie-parser": "^1.4.5",
"cors": "2.8.5",
"deasync": "^0.1.20",
"ejs": "^3.1.2",
"ejs": "^3.1.3",
"express": "^4.8.7",
"express-ejs-layouts": "^2.5.0",
"express-namespace": "^0.1.1",
"express-session": "^1.17.1",
"got": "^10.7.0",
"helmet": "3.21.3",
"moment": "^2.25.3",
"moment-timezone": "^0.5.13",
"mongoose": "^5.9.13",
"log4js": "^6.3.0",
"moment": "^2.26.0",
"moment-timezone": "^0.5.31",
"mongoose": "^5.9.18",
"morgan": "^1.10.0",
"mosca": "^2.8.3",
"mqtt": "^4.1.0",
"mysql": "^2.18.1",
"mysql2": "^2.1.0",
"n": "^6.5.1",
"node-cron": "^2.0.3",
"node-uuid": "^1.4.8",
"passport": "^0.4.1",
"passport-auth0": "^1.3.2",
"passport-cookie": "^1.0.6",
"passport-auth0": "^1.3.3",
"passport-cookie": "^1.0.8",
"passport-local": "^1.0.0",
"plaintextparser": "^1.0.3",
"request": "^2.88.2",
"sequelize": "^5.21.8",
"sequelize": "^5.21.13",
"sequelize-cli": "^5.5.1",
"swagger-ui-express": "^2.0.13",
"sync-request": "^4.0.2",
"utf-8-validate": "^5.0.2",
"vash": "^0.13.0",
"winston": "^3.2.1",
"ws": "^7.3.0"
}
}

View File

@@ -7,7 +7,7 @@ var con = mysql.createConnection({
database : 'iot'
});
const got = require('got');
//const got = require('got');
exports.findByName = function(fieldName, days, cb) {
process.nextTick(function() {
@@ -44,7 +44,7 @@ exports.getFromDht = function(url, cb)
{
(async () => {
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);
if(j.dht && j.dht.hum <= 100 && j.dht.hum >= 0){
exports.insert(0, "A23_DHT", dht.body, cb);

View File

@@ -2,7 +2,6 @@
const util = require('util');
const { parse } = require('querystring');
var moment = require('moment');
const got = require('got');
const request = require('request');
function GetDht() {
@@ -10,9 +9,12 @@ function GetDht() {
var result;
(async () => {
try {
var ret = await got('http://192.168.1.126/cm?cmnd=status%2010&user=admin&password=vlado555');
console.log("DHT: "+ util.inspect(ret.body));
var j = JSON.parse(ret.body);
var url='http://192.168.1.143/cm?cmnd=status%2010&user=admin&password=vlado555';
request(url, { json: true }, (err, res, 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));
if(j.StatusSNS && j.StatusSNS.DHT11 && j.StatusSNS.DHT11.Humidity !== null)
{
@@ -23,6 +25,7 @@ function GetDht() {
dew: j.StatusSNS.DHT11.DewPoint
}};
}
});
} catch (error) {
console.log(error);
}
@@ -44,7 +47,11 @@ function GetDht() {
console.log("IR_SEND_RAW:" + url);
(async () => {
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) {
console.log(error);
}
@@ -105,11 +112,11 @@ function GetDht() {
} catch (error) {
console.log("DHT Error:" + error);
}
console.log("got current conditions??");
console.log("current conditions??");
break;
case 'ir':
console.log("got IR message!");
console.log("IR message!");
console.log(req.body);
console.log(util.inspect(req.params));
try{

View File

@@ -1,5 +1,19 @@
<div id="chartContainer" style="height: 370px; width: 100%;"></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>
<%- contentFor('head') %>
@@ -204,5 +218,8 @@
}
});
},5000);
$("#water").on("click", function(){$.ajax({url:"/n/water?t="+$("#waterTime").val()});});
$("#waterStop").on("click", function(){$.ajax({url:"/n/waterStop"});});
}
</script>