From 88bfff57aeafeed513134b8118b91ab52efac774 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Uribe=20Stengel?= Date: Mon, 27 Jul 2020 13:21:18 +0200 Subject: [PATCH] Added functionality to change mode (dynamic light color). --- imports/ui/Home.jsx | 2 ++ imports/ui/Settings.jsx | 30 ++++++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/imports/ui/Home.jsx b/imports/ui/Home.jsx index 7bbaced..3a4934f 100644 --- a/imports/ui/Home.jsx +++ b/imports/ui/Home.jsx @@ -45,6 +45,7 @@ export default function Home() { Device ID Plant Type Soil Type + Mode Permanent Wilting Point Field Capacity Min Temperature @@ -59,6 +60,7 @@ export default function Home() { {device.deviceId} {device.type} {getSoil(device.type)} + {device.mode} {getPermWilPoint(device.type) + " %"} {getFieldCap(device.type) + " %"} {getMinTemp(device.type) + " °C"} diff --git a/imports/ui/Settings.jsx b/imports/ui/Settings.jsx index 547919c..a40855f 100644 --- a/imports/ui/Settings.jsx +++ b/imports/ui/Settings.jsx @@ -16,6 +16,7 @@ export default function Settings() { var selectedEspId; var selectedAlias = ""; var selectedType; + var selectedMode = null; const payloadVegi = plantTypes.fetch()[0]; const payloadCacti = plantTypes.fetch()[1]; @@ -45,21 +46,34 @@ export default function Settings() { } } + const handleChangeMode = (e) => { + if (e.target.value === "") { + console.log("No type selected!"); + } else { + selectedMode = e.target.value; + } + } + const handleSendData = (e) => { var payload = ""; + var nmValue = null; if (selectedType === "Vegetables") {payload = JSON.stringify(payloadVegi.data.soilMoisture);} if (selectedType === "Cacti") {payload = JSON.stringify(payloadCacti.data.soilMoisture);} if (selectedType === "Flowers") {payload = JSON.stringify(payloadFlower.data.soilMoisture);} + if (selectedMode === "Growth") {nmValue = 450} + if (selectedMode === "Bloom") {nmValue = 700} + console.log("Payload: " + payload); console.log("Alias: " + selectedAlias); console.log("ID: " + selectedEspId); console.log("Type: " + selectedType); + console.log("Mode: " + selectedMode); - if ((payload === "") || (selectedEspId === undefined) || (selectedAlias === "") || (selectedType === undefined)) {alert("Nickname is empty or no device/type selected!");} else { + if ((payload === "") || (nmValue === null) || (selectedEspId === undefined) || (selectedAlias === "") || (selectedType === undefined) || (selectedMode === null)) {alert("Nickname is empty or no device/type/mode selected!");} else { var doc = ConfiguredDevicesCollection.findOne({deviceId: selectedEspId}); - if (doc === undefined) {ConfiguredDevicesCollection.insert({deviceId: selectedEspId, alias: selectedAlias, type: selectedType});} else { - ConfiguredDevicesCollection.update({_id: doc._id}, {$set: {alias: selectedAlias, type: selectedType}}); + if (doc === undefined) {ConfiguredDevicesCollection.insert({deviceId: selectedEspId, alias: selectedAlias, type: selectedType, mode: selectedMode});} else { + ConfiguredDevicesCollection.update({_id: doc._id}, {$set: {alias: selectedAlias, type: selectedType, mode: selectedMode}}); } Meteor.call('mqttPublish', { @@ -91,7 +105,7 @@ export default function Settings() { topic: 'smartgarden/commands/' + selectedEspId + '/light', payload: JSON.stringify({ 'minLX': 500, - 'nm': 700 + 'nm': nmValue }) }, (err, res) => { if (err) { @@ -158,6 +172,14 @@ export default function Settings() { })} + + Mode: + + + + + +