Turns your existing sprinkler controller into a Wifi connected controller that saves water when its going to rain.

Similar projects worth following
Turning off sprinklers when its going to rain can save thousands of gallons of water per year, but a new WiFi sprinkler controller is expensive. The RainBuddy device upgrades your existing sprinkler controller so it can get the Weather forecast, turn off your sprinklers until its Sunny, and turn off the sprinklers if it gets too cold.

The RainBuddy is a low cost device which converts a conventional sprinkler controller into a Wifi connected controller that has the ability to access weather data via the internet, and stop the sprinklers from running before and after rain events. Other features include the ability to turn off the sprinklers during the winter or low temperature events, and for the user to turn off the sprinklers from a phone App. As landscape watering is the single largest residential use of water, this can safe significant amounts of water. The RainBuddy doesn’t replace the existing controller or allow full fledged programming of the watering schedule – it adds the rain and weather delay features to the existing controller, and any other fun features that come with having an internet connected device.

Why does this matter?
Significant portions of the world continue to suffer from both water shortages and lack of clean drinking water, with some estimates that up to 650 Million people don’t have access to safe, clean drinking water ( ). Even in developed countries, water remains under threat, with portions of the West and SouthEast still experiencing droughts of groundwater, with climate change influencing future water supplies.

In developed countries, the single largest residential use of water is for outdoor watering. The RainBuddy device has the ability to save a significant portion of this outdoor use.

How does it work ?
The RainBuddy device works by taking advantage of the fact that while each sprinkler zone / valve has its own 24VAC power line, all the valves share a common return line - “COM” line. By interrupting the COM line which is the common return line for all sprinkler valves on the same controller, the RainBuddy can prevent the sprinklers from turning on, without having to reprogram the existing sprinkler controller.

The RainBuddy only requires two external wires (other than power). The user only has to unscrew the existing COM wire, attach it to the RainBuddy, and attach the RainBuddy’s COM wire to the COM terminal on the sprinkler controller.


Code for the RainBuddy on Particle.

plain - 4.63 kB - 06/13/2017 at 03:47


  • 1 × Particle Photon
  • 1 × Project Box
  • 1 × Relay Many types will work - interupting 24VAC.
  • 1 × Wire to connect to COM Terminal
  • 1 × Power Supply for Particle and Relay

View all 6 components

  • IFTTT Applet - RainBuddy Public

    Alec06/13/2017 at 04:49 0 comments

    The custom IFTTT Applet is called RainBuddy - Public.

    Enter one version of the Applet that calls the function Rainonoff with the value "Rain" for when tomorrow's weather calls for Rain, and one version of the Applet that calls the function Rainonoff with the value "Dry" when tomorrow's weather calls for Clear (or just Cloudy - your choice).

  • Future project roadmap

    Alec06/13/2017 at 04:00 0 comments

    Future things to work on / develop on this project include:

    1) A purpose built device with a custom PCB - this will have a much lower cost (possibly well under $20 cost), and could add small features such as a battery, which could re-charge from the 24VAC power line when running, and contain its own antenna.

    2) Custom phone App to access features / states of the RainBuddy

    3) An inline current meter - this would allow the RainBuddy to most probably figure out the watering schedule, number of zones, and record this. It could then modify each zone independently, shortening the water times if it hasn't been that hot, for example, and even notify the user if their schedule doesn't match the recommended local schedule.

  • IFTTT Integration

    Alec06/13/2017 at 03:42 0 comments

    This project uses both IFTTT and IFTTT's DO Button App as its interface. This makes it easy for anyone to set up without any coding. If someone is unfamiliar with IFTTT, the functions that are available will show up in your IFTTT account after you have flashed the code (under Files section) to your Particle Photon, and linked Particle to your IFTTT acccount. Also, download the "DO Button" App by IFTTT.

    Then set up the following Do Button - this will allow you to manually turn the RainBuddy On or Off.

    1) DO App
    Set up a New Recipe, under the Particle Channel choose:

    A) Create a new Recipe
    B) Give it a new title such as "Let sprinklers run" or "Sprinklers on normal" or "RainBuddy On"
    C) Under "Then call a function", a list of functions will appear
    D) Choose Sprinkonoff from the list
    E) Under "with input (Function input)" - clear out any text in the box and enter [On] - (Copying the uppercase "O" but using no brackets ! - just the word On.
    F) Hit the "Add" Button and you're done.

    Repeat all of the above exactly, except enter the Title "Rainbuddy Off" or "Turn off sprinklers", and, in step E, enter the word Off (Capital "O").

    Voila - you will have 2 buttons on your phone that can manually turn the RainBuddy On - meaning let the Sprinklers turn on their normal schedule, or RainBuddy Off - meaning don't let the Sprinklers run until you turn them back on.

    2) IFTTT
    I have created a custom function in IFTTT called RainBuddy, which gets tomorrow's weather forecast from IFTTT's Weather Underground channel, and then calls the right function on the RainBuddy when it is going to rain.

  • Installation

    Alec06/12/2017 at 05:23 0 comments

    Installation of the device is easy.

    Here is the before photo of a standard Sprinkler controller wired to 4 zones / valves. The white wire is the "COM" wire, common to all zones.

    Here we interrupt the COM line with a relay connected to a Particle Photon, creating a WiFi enabled control system.

    Installation is easy.
    The project box shown is a sample box - the final device, which would be built with a custom PCB, would be much smaller.

  • Coding

    Alec06/12/2017 at 03:46 0 comments

    Completed writing of the core section of the code.

    Includes functions for:

    - State tracking
    States for Rain delay, Winter delay, and User on / off.
    The User state will override all others so that the User can simply turn off the device and let the sprinkler controller function normally, or turn it on manually to stop the sprinklers should they choose.

    - External Functions for IFTTT (Designed to integrate to Weather Underground App)

    - Internal Functions for turning relays on and off.

    Hardware hookups:
    The prototype system uses a relay which is connected as Normally Closed (this is not the most common way to hook up Relays). This is so that if the unit fails, it fails in way that the sprinklers would continue to function normally - you would just loose the extra features of the RainBuddy device.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates