diff --git a/app/client/state.js b/app/client/state.js index 1e0bbca..fdab860 100644 --- a/app/client/state.js +++ b/app/client/state.js @@ -46,11 +46,15 @@ Template.state.helpers({ var sensor = last_sensor_reading(); var stateObject = controller_state(); if (sensor) { - if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'closed' || stateObject.state.out_valve === 'opening')) return "/images/barellFull.png"; - else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'closed' || stateObject.state.out_valve === 'opening')) return "/images/barellNotFull.png"; - else if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'open' || stateObject.state.out_valve === 'closing')) return "/images/barellWateringFull.png"; - else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'open' || stateObject.state.out_valve === 'closing')) return "/images/barellWateringNotFull.png" - else if (sensor.tankFull === 0 && stateObject.state.in_valve === 'open') return "/images/barellFillingUp.png"; + if (sensor.tankFull === 0 && stateObject.state.in_valve === 'open' && stateObject.state.out_valve === 'closed') return "/images/barellFillingUp.png"; + else if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'closed')) return "/images/barellFull.png"; + else if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'opening')) return "/images/barellStartWateringFull.png"; + else if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'open')) return "/images/barellWateringFull.png"; + else if (sensor.tankFull === 1 && (stateObject.state.out_valve === 'closing')) return "/images/barellStopWateringFull.png"; + else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'closed')) return "/images/barellNotFull.png"; + else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'opening')) return "/images/barellStartWateringNotFull.png"; + else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'open')) return "/images/barellWateringNotFull.png" + else if (sensor.tankFull === 0 && (stateObject.state.out_valve === 'closing')) return "/images/barellStopWateringNotFull.png" else return "/images/statusAmber.png"; } else return "/images/statusRed.png"; diff --git a/app/public/images/barellStartWateringFull.png b/app/public/images/barellStartWateringFull.png new file mode 100644 index 0000000..d0763d1 Binary files /dev/null and b/app/public/images/barellStartWateringFull.png differ diff --git a/app/public/images/barellStartWateringNotFull.png b/app/public/images/barellStartWateringNotFull.png new file mode 100644 index 0000000..c9c9110 Binary files /dev/null and b/app/public/images/barellStartWateringNotFull.png differ diff --git a/app/public/images/barellStopWateringFull.png b/app/public/images/barellStopWateringFull.png new file mode 100644 index 0000000..a95bcfa Binary files /dev/null and b/app/public/images/barellStopWateringFull.png differ diff --git a/app/public/images/barellStopWateringNotFull.png b/app/public/images/barellStopWateringNotFull.png new file mode 100644 index 0000000..6c5d2d9 Binary files /dev/null and b/app/public/images/barellStopWateringNotFull.png differ diff --git a/app/server/api.js b/app/server/api.js index 1bdcd08..b59951a 100644 --- a/app/server/api.js +++ b/app/server/api.js @@ -27,7 +27,7 @@ function reactToSensorData(nextSensorReading) { console.log("reacting to sensor"); var controllerId = nextSensorReading.controllerId; var state = stateOrDefault(controllerId).state; - var shouldStartPumping = (parseInt(nextSensorReading.tankFull) === 0 && (!state.in_valve || state.in_valve === 'closed')); + var shouldStartPumping = (!state.in_valve || state.in_valve === 'closed') && ((parseInt(nextSensorReading.tankFull) === 0) && (state.out_valve === 'closed' || state.out_valve === 'closing')); if (shouldStartPumping) { ControllerState.update({ @@ -40,7 +40,7 @@ function reactToSensorData(nextSensorReading) { } }); } - var shouldStopPumping = parseInt(nextSensorReading.tankFull) === 1 && (state.in_valve === 'open' || state.in_valve === 'opening'); + var shouldStopPumping = (state.in_valve === 'open' || state.in_valve === 'opening') && (parseInt(nextSensorReading.tankFull) === 1 || state.out_valve === 'open' || state.out_valve === 'opening'); if (shouldStopPumping) { ControllerState.update({ @@ -91,7 +91,7 @@ function stateOrDefault(id) { }, time: new Date(), config: { - draining_period_amount: 5, + draining_period_amount: 60, draining_period_unit: 'minutes' }, set_by: 'server'