diff --git a/src/controllers/tanksController.js b/src/controllers/tanksController.js index b9fdc327..65a1d120 100644 --- a/src/controllers/tanksController.js +++ b/src/controllers/tanksController.js @@ -344,10 +344,6 @@ exports.motorAction = async (req, reply) => { const receiver_type = (req.body.to_type).toLowerCase() // console.log(supplier_tank) // const suplr_tank_info1 = await Tank.findOne({ customerId ,tankName:supplier_tank,tankLocation:supplier_tank_type}); - - - - const interval_variable = supplier_tank+receiver_tank let currentTank = supplier_tanks.find(tank => tank.supplier_tank === supplier_tank); let currentSump = sump_water_levels.find(tank => tank.supplier_tank === supplier_tank); @@ -1158,58 +1154,61 @@ exports.IotDevice = async (req, reply) => { } // Update waterlevel in tanksSchema for each tank - for (const tank of tanks) { - const { tankhardwareId, tankHeight } = tank; +for (const tank of tanks) { + const { tankhardwareId, tankHeight } = tank; - // Find the corresponding tank in tanksSchema - const existingTank = await Tank.findOne({ hardwareId, tankhardwareId }); - - - if (existingTank) { - // Update the waterlevel using the tankHeight value - - const tank_height1 = (parseInt(existingTank.height.replace(/,/g, ''), 10)) * 30.48; - console.log(tank_height1, 25); - - // The value of tank_height1 is a number, not a string, so you cannot use replace on it. - // If you want to format it with commas, you can create a function to add commas to a number. - function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); - } - - // Now you can use the function to format the tank_height1 value with commas. - const formatted_tank_height1 = numberWithCommas(tank_height1); - console.log(formatted_tank_height1, 25); - - const tank_height = parseInt(formatted_tank_height1.replace(/,/g, ''), 10); - console.log(tank_height); - // console.log(tank_height,1) - const water_level_height = tank_height - tankHeight - console.log(water_level_height,2) - - const waterCapacityPerCm = parseInt(existingTank.waterCapacityPerCm.replace(/,/g, ''), 10) - console.log(waterCapacityPerCm,3) - const water_level = water_level_height * waterCapacityPerCm; -console.log(water_level, 4); - -// Function to add commas to a number -function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); -} + // Skip if tankHeight is null or undefined + if (tankHeight === null || tankHeight === undefined) { + continue; // Skip this iteration and move to the next tank + } -const formatted_water_level = numberWithCommas(water_level); -console.log(formatted_water_level, 4); + // Find the corresponding tank in tanksSchema + const existingTank = await Tank.findOne({ hardwareId, tankhardwareId }); -existingTank.waterlevel = parseInt(formatted_water_level.replace(/,/g, ''), 10); -console.log(existingTank.waterlevel); + if (existingTank) { + // Update the waterlevel using the tankHeight value + const tank_height1 = (parseInt(existingTank.height.replace(/,/g, ''), 10)) * 30.48; + console.log(tank_height1, 25); + // The value of tank_height1 is a number, not a string, so you cannot use replace on it. + // If you want to format it with commas, you can create a function to add commas to a number. + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + } - // Save the updated tank document - await existingTank.save(); - } + // Now you can use the function to format the tank_height1 value with commas. + const formatted_tank_height1 = numberWithCommas(tank_height1); + console.log(formatted_tank_height1, 25); + + const tank_height = parseInt(formatted_tank_height1.replace(/,/g, ''), 10); + console.log(tank_height); + // console.log(tank_height,1) + const water_level_height = tank_height - tankHeight + console.log(water_level_height, 2) + + const waterCapacityPerCm = parseInt(existingTank.waterCapacityPerCm.replace(/,/g, ''), 10) + console.log(waterCapacityPerCm, 3) + const water_level = water_level_height * waterCapacityPerCm; + console.log(water_level, 4); + + // Function to add commas to a number + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } + const formatted_water_level = numberWithCommas(water_level); + console.log(formatted_water_level, 4); + + existingTank.waterlevel = parseInt(formatted_water_level.replace(/,/g, ''), 10); + console.log(existingTank.waterlevel); + + // Save the updated tank document + await existingTank.save(); + } +} + + // Send the latest three documents const latestOttanks = await IotData.find({ hardwareId }) .sort({ date: -1, time: -1 }); diff --git a/src/models/tanks.js b/src/models/tanks.js index 915800d6..b2f2a6c8 100644 --- a/src/models/tanks.js +++ b/src/models/tanks.js @@ -53,6 +53,9 @@ const tanksSchema = new mongoose.Schema({ motor_temperature: { type: String, default: "0" }, waterlevel_at_midnight:{ type: String,default:"0" }, total_water_added_from_midnight:{ type: String,default:"0" }, + auto_min_percentage :{ type: String, default: "20" }, + auto_max_percentage :{ type: String, default: "80" }, + manual_threesold_percentage:{type: String, default: "90"}, connections: { source: { type: String }, inputConnections: [ @@ -63,6 +66,8 @@ const tanksSchema = new mongoose.Schema({ motor_id:{ type: String ,default: null}, motor_status: { type: String, default: "0" }, motor_stop_status: { type: String, default: "1" }, + motor_on_type :{ type: String, default: "manual" }, + } ], outputConnections: [ @@ -73,6 +78,7 @@ const tanksSchema = new mongoose.Schema({ motor_id:{ type: String ,default: null}, motor_status: { type: String, default: "0" }, motor_stop_status: { type: String, default: "1" }, + } ] }