|
|
|
@ -1225,31 +1225,29 @@ exports.IotDevice = async (req, reply) => {
|
|
|
|
|
// Update the waterlevel using the tankHeight value
|
|
|
|
|
const tank_height = parseInt(existingTank.height.replace(/,/g, ''), 10) * 30.48;
|
|
|
|
|
const water_level_height = tank_height - tankHeight;
|
|
|
|
|
const customerId = existingTank.customerId;
|
|
|
|
|
const waterCapacityPerCm = parseInt(existingTank.waterCapacityPerCm.replace(/,/g, ''), 10);
|
|
|
|
|
let water_level = water_level_height * waterCapacityPerCm;
|
|
|
|
|
water_level = Math.round(water_level); // Round to nearest whole number
|
|
|
|
|
existingTank.waterlevel = water_level.toString(); // Convert to string as per schema definition
|
|
|
|
|
|
|
|
|
|
const tank_name = existingTank.tankName;
|
|
|
|
|
// Save the updated tank document
|
|
|
|
|
await existingTank.save();
|
|
|
|
|
|
|
|
|
|
// Update water level of tanks linked through output connections
|
|
|
|
|
for (const outputConnection of existingTank.connections.outputConnections) {
|
|
|
|
|
console.log(outputConnection,"this is for testing")
|
|
|
|
|
const linkedTank = await Tank.findOne({ hardwareId: outputConnection.outputConnections });
|
|
|
|
|
console.log(linkedTank)
|
|
|
|
|
const linkedTank = await Tank.findOne({ customerId: customerId, tankName: outputConnection.outputConnections, tankLocation: outputConnection.output_type });
|
|
|
|
|
if (linkedTank) {
|
|
|
|
|
linkedTank.waterlevel = existingTank.waterlevel;
|
|
|
|
|
await linkedTank.save();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Update water level of tanks linked through input connections
|
|
|
|
|
for (const inputConnection of existingTank.connections.inputConnections) {
|
|
|
|
|
const linkedTank = await Tank.findOne({ hardwareId: inputConnection.inputConnections });
|
|
|
|
|
if (linkedTank) {
|
|
|
|
|
linkedTank.waterlevel = existingTank.waterlevel;
|
|
|
|
|
await linkedTank.save();
|
|
|
|
|
// linkedTank.waterlevel = existingTank.waterlevel;
|
|
|
|
|
//await linkedTank.save();
|
|
|
|
|
|
|
|
|
|
// Update water level of tanks linked through input connections of the linked tank
|
|
|
|
|
for (const inputConnection of linkedTank.connections.inputConnections) {
|
|
|
|
|
if (inputConnection.inputConnections === tank_name) {
|
|
|
|
|
inputConnection.water_level = water_level.toString();
|
|
|
|
|
await linkedTank.save();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1268,6 +1266,7 @@ exports.IotDevice = async (req, reply) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// exports.getIotD = async(req, reply) => {
|
|
|
|
|
// try {
|
|
|
|
|
// await IotData.find({hardwareId: req.query.hardwareId})
|
|
|
|
|