Garden Watering / Irrigation Project

Wanted to share this simple project with the community in case it helps anyone. I am not an experienced programmer but have put this together based on reading around and to suit my own requirements.

Was redoing water supply pipes so decided to automate the system at the same time. Is using solanoid valves wired upto Sonoff 4ch Pro’s.

UI design is basic but easy to use. Weather info is pulled off my own weather station and the rainfall is taken into account in the automations.

As you can see each zone has a manual override which controlls the relay directly.

In Each Zone there are 3 variables

  1. The toggle to switch the automation on or off
  2. Start time for watering so these can be staggered due to my water pressure
  3. Duration of watering

Each of these variables are helpers.

Automation wise there are 2 automations per zone

The Irrigation automation checks the start time, rainfall and if the toggle switch is on. If this is the case then it switches on the relay for the zone.

The Timer automation starts when the relay is switched on and then starts counting down based on the durration.

Very happy with this so far but would like to add something like water every day, every 2 days etc in the future.

Hope people find this useful if are working on something similar.

5 Likes

That really looks neat. Prrhaps scheduler component can help with automating the timed runs.

Thanks will have a look at this

there is also an upcoming component for esphome on ESP32

1 Like

Can you share, what you did with override buttons and how as well?

The override buttons are just an entities card which links straight to the relay switch. As soon as it is switched on the timer automation starts and then shuts off after the duration variable.

This wasn’t coded intentionally but is a good safety measure so nothing is left on indefinitely.

Ah I see. Thx. But then it will never stop, if the corresponding boolean is switched off in the same time. Or am I wrong?

image

And/or why this condition in general. In the mentioned case, it will let the ovverwrite run without end (if off) and in any other case is seems to be not necessary at all.

What is the reason behind this?

Not sure why i decided on including it as a condition, as i say not a proficient coder. I would agree with you in saying that this condition can actually be removed with no loss of functionality. It should then also not cause an issue with the override if it is set to ‘off’.

Just flag the post next time. Thanks.