Smart Irrigation - save water by precisely watering your lawn/garden

thanks - I personally do not have the sensors, so I don’t think I will be building that any time soon. Feel free to make changes to the code however :slight_smile: For now I am happy with just using the forecast.

hi @iz3man. the system will run only when moisture was lost. if more moisture was added due to rain/snow than lost it will not trigger irrigation. also, note that you are the one responsible for actually running the irrigation. In your automation you can decide not to run it and just tell the system to reset the bucket to 0. It will think it ran, but it did not. I left it open ended on purpose so people can make adjustments as they wish / require. I personally plan to run the automation early morning 3 times a week.

Regarding your other point: yes, you can just enter number_of_sprinklers=1 and then set the flow to the total capacity of your system.

for multi-zone support, couldn’t you just create an automation to run the separate zones? remember, the component does not interact with your irrigation system - it just calculates how long it needs to run. so, just create an automation that first runs zone 1 and then zone 2.

Ok makes sense. So it will do the calulation as long as you don’t RESET it.
Eg. let it run for 48h: It will calculate irrgation needed for the time based on evapotranspiration, then substract the amount of rain (captured info from open weather), then do the same for the second day, and it will run the sprinklers for twice the time (in case it didn’t rain those days). Then reset the value.

Ofcourse that is no problem. But the other zone uses completely different sprinklers, so the time calculated by your plugin should be different for each zone…

Another question: Where/how can I change # of sprinklers or float rate after I ran the intergration once? Do I need to delete it and go through everything once again?

that is correct - as long as you do not call the smart_irrigation.reset_bucket service it will continue to ‘fill the bucket’ :slight_smile: Also see the expanded examples that I have posted here:

right now you can only specify either average flow per sprinkler or for the whole system (using number_of_sprinklers=1). I do not expect to add multi-zone support soon as it is not part of my use case.

Yes, you do need to remove the integration and re-add it.

Ok, then this is fairly useless to me. Maybe in the future will keep an eye on htis.

PS why not make it multi-instance? So for each zone we can add the smart irrigation integration. Ofcourse we have to insert the same ET values but we can use another sprinkler configuration?

that could work - have not tried it. have you tried adding the component twice? does that work?

No this needs to be enabled in the integration i think. if you add it again it gives a warning this integration can be added once.

ah ok, let me check! Created an issue here:

Hi all, thanks for all the feedback! I have expanded the documentation to include explanation on how this works as well as examples. The following examples are in the current documentation:
- Example 1: one valve, potentially daily irrigation
- Example 2: one valve, irrigation depending on work day sensor
- Example 3: two valves, irrigation depending on work day sensor
- Example 4: one valve, with extra check on today’s forecast to avoid over-irrigation

Please keep the feedback coming!

Just wanted to share my implementation :slight_smile: maybe will it inspire others to make their own fancy use case of this great component.

Key points:

  • I added % adjustment on general level + on zone level … zones are not equal to each other so instead of adding several integrations IMHO it is better to simply tune duration where needed
  • I added max irrigation duration … just in case :slight_smile: I would not want to irrigate for 2 h is something would went wrong in calculations :slight_smile:
  • wanted to have a possibility to force irrigation even if Smart Irrigation component says “not needed” and also possibility to force stop sequence of the script.
  • added few scripts, timer, UI switches and other fancy things to have usable UI
  • automation is done in my node-red as I have all my automation there.

all done without touching component itself.

In HA frontend it looks like this:
Main screen:

icons are active and opening new cards e.g. zone settings look like this:

RainBird switches:


Node-red part is very simple but yet highly usable thanks to “bigtimer node” :

Today we had a rainy day, that is why both hourly and daily adjusted run times are “0” :slight_smile:

jeroenterheerdt thanks again for your great work.


I’m trying to remove this integration (for now) but can’t.
Can you advise me what to do? Thanks

Fuller details are here

EDIT: Yes I can following the advice on the other thread but it has been suggested that you might be able to stop it happening for others.

wow, looks great, thanks for sharing! Any thing in here that we can generalize to embed in the component? What would you have loved to have in the component right away that you now have had to build yourself?

hi @klogg - thanks for checking in. I cannot do anything here, it is just a effect of how HA works. Any way, more interesting to me is why you chose to remove this component? Was anything missing / broken? What would you need to make this useful for you?

actually I would not change anything in the component itself :slight_smile: SI component only do calculations and this is perfectly fine as this approach gives us full flexibility on how to implement automation. If you would hard code some functionality, entire irrigation system would have to work as you designed which might not fit to everyone’s needs :slight_smile: With current approach everyone can tune final functionality as likes so that’s the best option for me.
ok … maybe one thing you may consider … please add attribute with minutes instead of seconds for run time. I got it via template sensor but could be done directly in the component sensors.

Anyway if you would want to hard code things, I would say that those are my “must have” itms:

  • option to define maximum irrigation duration … just in case if calcs goes wrong
  • option to define % adjustment per zone to tune irrigation time if zones are not equal
  • force mode - option to force next irrigation run with given duration, ignore standard calcs

As an improvement … seems sensor’s values are not persistent and every HA restart reset them to 0. Don’t know if that’s just my case or general issue or maybe “by design” :slight_smile: but you could add 2 services:

  • smart_irrigation.do_calcs_hourly_adjusted_run_time
  • smart_irrigation.do_calcs_daily_adjusted_run_time
    so again we could have a room for manipulation :slight_smile:

No, nothing missing I think it is very cool what you have put together.

The reason I’m not using it for now is that I am just finishing off a project of my own for irrigation. It comes at it from a different perspective to yours in that it attempts to provide the whole package. It does include some rudimentary weather adjustments built in, which are based on some purely intuitive back of the envelope calculations and entirely non-scientific!

As such I think it wouldn’t be hard for me to build your calculations into my system and I definitely plan to revisit it later. There are few people using my system and I think they’d be pleased if I swapped in a ‘proper’ integration for my ‘bespoke’ one.

TLDR: Great work and I for one appreciate the approach you have taken to keep it separate from any actual irrigation logic.

1 Like