Irrigation Controller with weather adjustment

After considering several options for irrigation controllers, I have decided against buying a ready-made solution and build one myself using Home Assistant. This topic is for me to gather my thoughts and get community feedback at the same time.

Why I’m not using existing solutions

I looked into using some of the most promising solutions out there:

  • Rainbird: Only has a wifi module, which makes the solution expensive and no official API
  • Rainmachine: looked promising, but has no good weather source for my location and development seems to be dead (last commit on github more than 6 months ago)
  • Rachio: not supported in my region
  • OpenSprinkler: don’t like the hardware and don’t want to spin up a separate RPI for it.
  • … others did not even provide basic integration or wifi control

So, I decided against settling for a compromise and start from scratch. After all, an irrigation controller is just a bunch of relays controlled with some smarts.

Step 1: Requirements

The requirements for the irrigation controller are quire simple:

  • Master schedule when the irrigation is allowed to operate. (Times of the day)
  • Master on/off to disable the irrigation out of season.
  • Master pause to temporarily interrupt watering.
  • Master switch in case a pump needs to be switched on for watering.
  • Multiple zones with independent timers. Zones are watered consecutively.
  • Weather adjustments: no need for irrigation when it’s raining! But other parameters need to be monitored as well, for example frost protection.
  • Optional support for local sensors.
  • Zone pause to temporarily interrupt zone watering.
  • Be hardware independent, so it has to work with any hardware supported as a switch in Home Assistant
  • Local control on the device is not required.
  • … and probably much more.

Step 2: Hardware

This is the easy part. It has to be supported as a switch in Home Assistant, so a lot of options. Most valves are 24V ac, so virtually any relay will do. I initially wanted to use a KNX actuator (as in the rest of my home) but they are too expensive for this purpose. So I finally settled for the Devantech DS378 as it is cheap and can be controlled over Modbus TCP.

Step 3: Software

I’m going to build this as an appdaemon app because I lack the knowledge to build a full integration. Maybe at a later time I’ll do that anyway, but I don’t look forward to having to learn how ;-). Timers and such should not be difficult with the inbuilt functionality in Home Assistant. The only hard part (I think) is the weather adjustment.

I found some information on this through the OpenSprinkler forums. It’s called the Zimmerman method. The data needed for this should be retrievable from the weather platforms used in Home Assistant and the math is easy. Downside is that the calculations are in Farenheit and inch, so I have some work to do there.

Step 4: Get started

In the next days I’m starting to build the app and my hardware should also be arriving shortly. If anyone here has thoughts on the project, I look forward to hearing them!

Thomas

3 Likes

Hi Thomas,

Excellent project! I’m thinking about similar one so happy to contribute to yours.
IMHO local sensors support should be there because it is more informative than weather forecast in terms of when to water.

  • Would you mind provide more details about your hardware setup?
  • Do you use any pump?
  • Water tank?
  • Water valves?
  • How are you going to change water flow from zone to zone?
  • Have you considered watering on per-plant basis?

Thanks!

Slava

Hi Slava,

The hardware will be what the installer provides:

  • Rainbird valves, 24v ac
  • The water is pumped from a well at about 6m depth. No tank is needed. I do have a 15m3 tank which collects rainwater and I have an ultrasonic level meter on that, but it serves another purpose (flushing toilets etc)
  • The pump is also provided by the installer. Not sure yet if I will have to switch it on/off myself or if this will be automatic based on water pressure.
  • Water flow is controlled in the Rainbird valves, however I may put a central flow meter to check the correct operation (too much flow may indicate broken tubing)
  • Per plant watering is not really practical in this case. However, it would be possible by using one valve per plant. But that would make it expensive.

There are many similar projects on the forum. Most are done with regular automations and Lovelace cards. Nothing wrong with appdaemon though. Example Irrigation Controller MQTT

If you’re doing this because you’re looking for a project, I get that. However, for info the Rachio product is very good.

It’s not sold in Australia, so I needed to get it imported, as such it’s not officially supported but is fully functional. The hub has full HA integration and works very well. I considered moving the automation into HA but given it just works already and takes care of weather conditions and seasonal shifts I didn’t see the point. I might do it at some point in the future if I’m looking for a project :slight_smile: )

I’m starting down this path myself, but wanting a Zigbee network. You didn’t come across it, but someone in the past trod the same ground and decided to build a product around Home Irrigation + Zigbee - “Spruce” at Order | Spruce - The Smart Irrigation Controller.

For me this is still too much - like you, I just want a switch to control the solenoids and base everything from Home Assistant. But maybe useful to others?

I too am looking at doing something similar myself. I like your criteria but am planning on adding to my implementation the ability to run autonomous without HA. Integrals fine but if HA is unavailable for any reason I want the yard to still get water. I also have a master valve and local weather station that I’ll use for rainfall, temp and wind speed as factors to run the sprinklers or not.

Sounds great!

Joni

Found the same issues when looking for a component so took the plunge. Ticks most of your boxes for requirements. Take a look at

Have fun

This looks very interesting indeed!

I’ve had some delays with the installation of my irrigation system, so I’m almost at the point where I want to implement this. Will be checking this out in more detail for sure.