expanded the water levels to be used to configure pumping levels and moved the water draining period to config file
This commit is contained in:
@@ -46,7 +46,15 @@ Template.state.helpers({
|
||||
var sensor = last_sensor_reading();
|
||||
var stateObject = controller_state();
|
||||
if (sensor) {
|
||||
if (parseInt(sensor.tankFull) === 0 && stateObject.state.in_valve === 'open' && stateObject.state.out_valve === 'closed') return "/images/barrellFillingUp.png";
|
||||
var startPumpingLevelReached;
|
||||
if (sensor.startPumpingAt == 'TANKLEVEL0') startPumpingLevelReached = (parseInt(sensor.tankLevel0) === 0)
|
||||
else if (sensor.startPumpingAt == 'TANKLEVEL1') startPumpingLevelReached = (parseInt(sensor.tankLevel1) === 0)
|
||||
else if (sensor.startPumpingAt == 'TANKLEVEL2') startPumpingLevelReached = (parseInt(sensor.tankLevel2) === 0)
|
||||
else if (sensor.startPumpingAt == 'TANKLEVEL3') startPumpingLevelReached = (parseInt(sensor.tankLevel3) === 0)
|
||||
else if (sensor.startPumpingAt == 'TANKLEVEL4') startPumpingLevelReached = (parseInt(sensor.tankLevel4) === 0)
|
||||
else startPumpingLevelReached = true;
|
||||
|
||||
if (parseInt(sensor.tankFull) === 0 && startPumpingLevelReached && stateObject.state.in_valve === 'open' && stateObject.state.out_valve === 'closed') return "/images/barrellFillingUp.png";
|
||||
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'closed')) return "/images/barrellFull.png";
|
||||
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'opening')) return "/images/barrellStartWateringFull.png";
|
||||
else if (parseInt(sensor.tankFull) === 1 && (stateObject.state.out_valve === 'open')) return "/images/barrellWateringFull.png";
|
||||
|
||||
@@ -19,6 +19,10 @@ Api.addRoute('sensorData', {
|
||||
tankLevel3: this.bodyParams.tankLevel3,
|
||||
tankLevel4: this.bodyParams.tankLevel4,
|
||||
tankFull: this.bodyParams.tankFull,
|
||||
startPumpingAt: this.bodyParams.startPumpingAt,
|
||||
stopPumpingAt: this.bodyParams.stopPumpingAt,
|
||||
drainingPeriodUnit: parseInt(this.bodyParams.drainingPeriodUnit),
|
||||
drainingPeriodAmount: this.bodyParams.drainingPeriodAmount,
|
||||
owner: this.bodyParams.owner,
|
||||
controllerId: this.bodyParams.controllerId,
|
||||
created_at: new Date()
|
||||
@@ -32,7 +36,16 @@ function reactToSensorData(nextSensorReading) {
|
||||
console.log("reacting to sensor");
|
||||
var controllerId = nextSensorReading.controllerId;
|
||||
var state = stateOrDefault(controllerId).state;
|
||||
var shouldStartPumping = (!state.in_valve || state.in_valve === 'closed') && ((parseInt(nextSensorReading.tankFull) === 0) && (state.out_valve === 'closed' || state.out_valve === 'closing'));
|
||||
|
||||
var startPumpingLevelReached;
|
||||
if (nextSensorReading.startPumpingAt == 'TANKLEVEL0') startPumpingLevelReached = (parseInt(nextSensorReading.tankLevel0) === 0)
|
||||
else if (nextSensorReading.startPumpingAt == 'TANKLEVEL1') startPumpingLevelReached = (parseInt(nextSensorReading.tankLevel1) === 0)
|
||||
else if (nextSensorReading.startPumpingAt == 'TANKLEVEL2') startPumpingLevelReached = (parseInt(nextSensorReading.tankLevel2) === 0)
|
||||
else if (nextSensorReading.startPumpingAt == 'TANKLEVEL3') startPumpingLevelReached = (parseInt(nextSensorReading.tankLevel3) === 0)
|
||||
else if (nextSensorReading.startPumpingAt == 'TANKLEVEL4') startPumpingLevelReached = (parseInt(nextSensorReading.tankLevel4) === 0)
|
||||
else startPumpingLevelReached = true;
|
||||
|
||||
var shouldStartPumping = (!state.in_valve || state.in_valve === 'closed') && ((parseInt(nextSensorReading.tankFull) === 0) && startPumpingLevelReached && (state.out_valve === 'closed' || state.out_valve === 'closing'));
|
||||
|
||||
if (shouldStartPumping) {
|
||||
ControllerState.update({
|
||||
@@ -45,7 +58,16 @@ function reactToSensorData(nextSensorReading) {
|
||||
}
|
||||
});
|
||||
}
|
||||
var shouldStopPumping = (state.in_valve === 'open' || state.in_valve === 'opening') && (parseInt(nextSensorReading.tankFull) === 1 || state.out_valve === 'open' || state.out_valve === 'opening');
|
||||
|
||||
var stopPumpingLevelReached;
|
||||
if (nextSensorReading.stopPumpingAt == 'TANKLEVEL0') stopPumpingLevelReached = (parseInt(nextSensorReading.tankLevel0) === 1)
|
||||
else if (nextSensorReading.stopPumpingAt == 'TANKLEVEL1') stopPumpingLevelReached = (parseInt(nextSensorReading.tankLevel1) === 1)
|
||||
else if (nextSensorReading.stopPumpingAt == 'TANKLEVEL2') stopPumpingLevelReached = (parseInt(nextSensorReading.tankLevel2) === 1)
|
||||
else if (nextSensorReading.stopPumpingAt == 'TANKLEVEL3') stopPumpingLevelReached = (parseInt(nextSensorReading.tankLevel3) === 1)
|
||||
else if (nextSensorReading.stopPumpingAt == 'TANKLEVEL4') stopPumpingLevelReached = (parseInt(nextSensorReading.tankLevel4) === 1)
|
||||
else stopPumpingLevelReached = false;
|
||||
|
||||
var shouldStopPumping = (state.in_valve === 'open' || state.in_valve === 'opening') && (parseInt(nextSensorReading.tankFull) === 1 || stopPumpingLevelReached || state.out_valve === 'open' || state.out_valve === 'opening');
|
||||
|
||||
if (shouldStopPumping) {
|
||||
ControllerState.update({
|
||||
@@ -96,8 +118,8 @@ function stateOrDefault(id) {
|
||||
},
|
||||
time: new Date(),
|
||||
config: {
|
||||
draining_period_amount: 40,
|
||||
draining_period_unit: 'minutes'
|
||||
draining_period_amount: drainingPeriodAmount,
|
||||
draining_period_unit: drainingPeriodUnit
|
||||
},
|
||||
set_by: 'server'
|
||||
});
|
||||
|
||||
@@ -24,6 +24,10 @@ if (Meteor.isServer) {
|
||||
tankLevel3: this.bodyParams.tankLevel3,
|
||||
tankLevel4: this.bodyParams.tankLevel4,
|
||||
tankFull: this.bodyParams.tankFull,
|
||||
startPumpingAt: this.bodyParams.startPumpingAt,
|
||||
stopPumpingAt: this.bodyParams.stopPumpingAt,
|
||||
drainingPeriodUnit: parseInt(this.bodyParams.drainingPeriodUnit),
|
||||
drainingPeriodAmount: this.bodyParams.drainingPeriodAmount,
|
||||
owner: this.bodyParams.owner,
|
||||
created_at: new Date()
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user