diff --git a/index.js b/index.js index 6cbfd41..fd52d22 100644 --- a/index.js +++ b/index.js @@ -18,30 +18,34 @@ const port = 3000; const save_data = async time => { try { - const devices = await deviceSchema.find({}).select("name ip"); - console.log("DEVICES => " + devices); - for (const { ip, _id } of devices) { + const devices = await deviceSchema.find({}); + //console.log("DEVICES => " + devices); + for (const { ip, _id, lastStatus } of devices) { const value_data = await getScript(ip); const data = JSON.parse(value_data); - await statusSchema.findOneAndUpdate( - { device: _id }, - { - $push: { status: { value: data.Sensors[0].Switch, time } } - } - ); - await deviceSchema.findByIdAndUpdate(_id, { - lastStatus: data.Sensors[0].Switch - }); + //console.log(lastStatus, data.Sensors[0].Switch); + + if (lastStatus != data.Sensors[0].Switch) { + await statusSchema.findOneAndUpdate( + { device: _id }, + { + $push: { status: { value: data.Sensors[0].Switch, time } } + } + ); + await deviceSchema.findByIdAndUpdate(_id, { + lastStatus: data.Sensors[0].Switch + }); + } } } catch (error) { - console.log("ERROR z CATCHA => " + error); + //console.log("ERROR z CATCHA => " + error); } }; let interval = setInterval(() => { save_data(Date.now()); -}, 5000); +}, 1000); const getScript = url => { return new Promise((resolve, reject) => { @@ -51,7 +55,7 @@ const getScript = url => { url = "http://" + url + "/json"; - console.log("DATA URL => " + url); + //console.log("DATA URL => " + url); client .get(url, resp => { @@ -65,7 +69,7 @@ const getScript = url => { // Cały response pobrany i print resp.on("end", () => { resolve(data); - console.log(data); + //console.log(data); }); }) .on("error", err => { @@ -102,7 +106,7 @@ app.get("/start", (req, res) => { if (interval === null) { interval = setInterval(() => { save_data(Date.now()); - }, 5000); + }, 15000); res.json({ message: "Zaczalem dzialac :>" }); } else { @@ -116,7 +120,7 @@ app.get("/all", async (req, res) => { }); app.post("/device", async (req, res) => { - console.log(req.body); + //console.log(req.body); const newDevice = await deviceSchema.create({ name: req.body.name, ip: req.body.ip @@ -126,12 +130,20 @@ app.post("/device", async (req, res) => { }); app.delete("/device/:ip", async (req, res) => { - console.log(req.body); + //console.log(req.body); const newDevice = await deviceSchema.findOneAndRemove({ ip: req.params.ip }); await statusSchema.findOneAndRemove({ device: newDevice }); res.json({ Sukces: "Usuwa OK" }); }); +app.put("/device/:id", async (req, res) => { + const newDevice = await deviceSchema.findByIdAndUpdate( + req.params.id, + req.body + ); + res.json(newDevice); +}); + app.listen(port, () => console.log(`Chillroom server nasluchuje na porcie ${port}!`) );