Smart Sprinkler System

Update: All sold out, thank you

I had a ThingShield, Arduino Uno and 8-channel relay set. Pretty much everything you need for this project already tested just add power and pair it with your hub. message me if you want it.

Hello Paul,

Didn’t find a way to message you, so posing it here. If you still have it for sale, please let me know, how much?


Seems like a lot of work and expense. I bought the Rachio 8 zone controller during their earth day sale for $150 (usually $199). My water company gives a $125 rebate for installing a smart controller so my price out the door was $25. Seems like the Rachio does everything you want and more and looks cleaner and certainly less work. I installed it in about 15 minutes. I understand that building it from scratch is more fun but just a note for those that don’t want to or cant’t figure out how, there is a very easy alternative. Go to and you can put in your zip code and see what kind of rebate your water company offers.

I’m going the Opensprinkler OSPI route. I like being able to customize, and access remotely, but want the schedules to not be 100% dependent on an internet connection. The only way to fix it would to be to build an Arduino shield with a Real Time Clock, and a wireless card. For $75 I can get a Raspberry Pi Shield and use one of my existing PIs with a wireless. If I figure out a way to tie it into SmartThings then cool. I’m not going to worry about it too much if it functions.

This is still a fun project, and still works. Its not all about saving money its for those “makers” who like to build it them selves. Actually inspired a lot of my other projects.

I think we need to find a few other open sprinkler and smartthings users and work together to integrate.

I have a open sprinkler device that might be able to be salvaged by someone with soldering skills. I had a low voltage wire come in contact with a high voltage line and a chip literally blew up. I’d give it to someone who thinks they might be able to help us with some coding.

I’ve created an ESP8266 based port of this Smart Sprinkler project that does not require the ThinkShield. Since the ESP8266 is Wifi capable, it can communicate directly with the SmartThings hub over the local LAN. The project is on github and contains source for the SmartApps, Device Handlers, and ESP8266 firmware.

I’m not a developer, so the code could use a lot of cleanup. However, it’s been keeping my lawn green for the last couple weeks! Would love to hear your comments and suggestions for improvements. I’ve also created a new thread with additional details.

1 Like

I have this system working on ESP8266 or the Arduino Ethernet Shield if anyone is interested. Since this code uses the ST_Anything code base, it was pretty easy to update it with the new library that now supports ESP and the Ethernet Shield. To get it to work I got help from @ogiewon and had to fix some DH code errors that were uncovered with the new interface.
My goal was to make as few changes as possible. (I did add a Manual/Test Option and a couple more notification options.)

1 Like

Can you share your work? I have 14 stations, so I think l’d need 2 esp8266 boards :thinking:?

I’m pretty novice at this stuff, but I recently set up an esp8266 garage controller with relay, close contact, motion, lux, humity, & temp.

Sorry for the late reply, but I just got back from a week of biking across Colorado with no Internet. I will find my latest updates and will try to post.

OK. I committed my changes in the repository, so they should be seen under a fork branch listed as glcoone.

The esp8266 is just used for WiFi communications, so I don’t think that you need 2 esp8266 unless you plan on a major redesign of this project. This project uses the Arduino Mega to control up to 24 stations (I only modified the 16 station version). The esp8266 only is used for WiFi communications that would replace the ST ThingShield that is no longer being produced or supported by ST.
My changes actually use the Arduino Ethernet Shield, but it is a simple change to use esp8266 as I’m using the ST_Anything library. I actually had started with the ESP-01, but switched over to the Shield, so the esp code should still be there. You can look at the ST_Anything topic if you need info on using the esp, but basically the IP and MAC address of the ESP needs to specified as well as the IP address of your ST hub.

1 Like

@Garnet You might want to check out the ESP8266 Smart Sprinkler System links I posted above. That fork of this project directly uses an ESP8266 based device without an Arduino board. So far, there are device controllers for 4 and 8 relay boards, so you would probably need to use two 8 relay boards and create two schedules. The ESP8266 relay boards I’m using cost between $10-15 USD.

1 Like

Love the smartapp interface and scheduling option vs CoRE or IFTTTT/Stringify. Is there anyway to use this project with the relay controller project here: WEBIOPI

Any thoughts on integrating a moisture meter such as Spruce’s or ?

Most of my plants are very moisture sensitive. Roots with moisture too long or when it is too cold means a dead plant. While this might not seem that big of a deal it is if you are maintaining plants that can cost hundreds of dollars or even a few thousand dollars a piece to replace.

Ideally the app would look at soil moisture data and and based on past temperatures, humidity and precipitation versus moisture change look ahead at the weather forecast 5 days in advance and recommend watering or not.

So I have been using you system since it first got started and it Was working great till recently. The Scheduler no longer is working. For a while there I kept on getting daily errors so I rebooted the whole system and then before I could get it to work I hit my rain threshold. The next day it was supposed to run and did not so I did it by hand. Last night again it did not run. Was there a change in ST that effected this?

So I set it to run at 812 and here are the only errors that came up in the scheduler

07413fe6-6de2-482a-8ded-571d3ecad53f 8:11:00 AM: error java.lang.UnsupportedOperationException: The yesterday feature is not enabled @ line 280
07413fe6-6de2-482a-8ded-571d3ecad53f 8:11:00 AM: info Irrigation Scheduler Is Checking The Weather
07413fe6-6de2-482a-8ded-571d3ecad53f 8:11:00 AM: info Running Irrigation Schedule: Irrigation Scheduler

For the sprinkler the logs were
d1d0ed47-4455-4acb-8863-fe3774555b75 8:16:00 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:15:55 AM: error java.lang.NullPointerException: Cannot invoke method contains() on null object @ line 194
d1d0ed47-4455-4acb-8863-fe3774555b75 8:15:55 AM: debug Parsing: ok,off1,off2,off3,off4,off5,off6,off7,off8,
d1d0ed47-4455-4acb-8863-fe3774555b75 8:15:54 AM: debug Parsing: pumpRemoved
d1d0ed47-4455-4acb-8863-fe3774555b75 8:14:55 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:13:53 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:12:50 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:11:47 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:10:45 AM: debug Parsing: ping
d1d0ed47-4455-4acb-8863-fe3774555b75 8:09:42 AM: debug Parsing: ping

UPDATE : I created a new scheduler and got the same errors as above. I guess this is not supported anymore and I need to move onto something else?

Don’t know if its the same but the WeatherUndergroun API is behaving strangely- in the IDE, I’m getting “feature is not supported” and “exceeding daily limit” for the past few days. Is this an API issue or a Smartthings problem? Is the API flaky?

is this causing your scheduler not to run…maybe that is my issue.

We have seen this issue twice before over the last four years. Apparently, there is an allocation on the number of times SmartThings can call a weather underground feature and it can limit out. I don’t know if its a payment mechanism or what. I’ll create a Smartthings support ticket which solved it last time.

Of course, its also unacceptable that the code just crashes and the sprinkler fails to start. I thought that I had fixed this in a previous release. In parallel, I’ll take a look at 1) ensuring the code runs even if the API goes down and 2) that it sends a notification that the API is down. Give a few days.

In the mean time, I would 1) turn off the switch to check “yesterdays rain” and/or turn off all three virtual rain gauge switches (these switches are in the smart app) and manually monitor that your system runs at the required time.

so again this would stop the scheduler from working?