SmartThings Community

ESP8266 Smart Sprinkler System


(Ghassanjankeel) #83

Actually just rebooting the ESP8266 via web interface works, I wonder if there is a way to schedule a reboot that would happen once a day as an example, that would make the connection more stable.

(Dan D) #86

I’m having the same problem any advice?
Edit: after making the changes in Rickybobby’s post it started working.

(Ghassanjankeel) #87

@Rickybobby can you please elaborate more about this sentence " if you don’t have the hub and port configured correctly. Then when it builds a status update to send to hub it fails" do you mean setting static IP for the hub in the router side, or do you mean do port forwarding to the hub? because I keep getting IP is very frequently and the only way to solve it is to reboot the controller via web interface.

Also I copied your modified device handler and added the parts to make it work for R8. in your screenshot it shows firmware v 4.x.x. where you able to find a firmware update to the ESP8266 and make it work for this project? and how can add the password protection to reboot and firmware update?

(Xm381) #88

Aaron thanks for your effort!

I’ve built my sprinkler controller and have been testing it for a few weeks now and all looks good.

But; I need to make one change regarding the scheduler.

In my community we have “even/odd watering days” meaning, if your street address is an even number you can only water on even number days, odd numbered addresses on odd number days.

To minimize duplicating work, has anyone already added this feature to “IrrigationSchedulerApp.groovy”?

If it’s not been done yet, I’ll take a shot at adding the capability.

Spruce Sprinklers ( has this in their scheduler and I think I’ll do something similar.

Mike W

(Aaron Nienhuis) #89

I haven’t had time to work on this project in a while. The current scheduler definitely does not have this functionality. Feel free to take a shot at adding it!

(Ghassanjankeel) #90

Is anybody else having a problem where the IP changes to the controller and hub, both have static IPs

(Xm381) #91

I found that pressing a zone tile would not turn on the zone, although zones turned on properly when triggered with the scheduler.

I discovered that the device handler showed a null value being sent to the zone when the tile was pressed even though a value had been set.

I changed the input type from “text” to “integer” and it now works.

Example below; starting a line 39, in both the 4 and 8 zone device handler:

Change from this:
39 input(“oneTimer”, “text”, title: “Zone One”, description: “Zone One Time”, required: false, defaultValue: “1”)

To this (do the same to each zone):
39 input(“oneTimer”, “integer”, title: “Zone One”, description: “Zone One Time”, required: false, defaultValue: “1”)

Mike W

(Ghassanjankeel) #92

Hi Xm381,

did you ever get around adding the features from spruceirrigation?
can you share your code?

(Marcus Hamaker) #93

Have you gotten this working? I too have to water on even days. This would be an excellent addition.

(Sean Donaghey) #94

Has anyone been able to source out a vendor that has the LinkNode R8 in stock? It seems to be sold out everywhere, even in China.


I am going to try a Sonoff 4ch Pro this weekend. They are more than the LinkNode but is still ESP8266 so it should work. Sonoff 4ch Pro

(Marcus Hamaker) #96

I tried like crazy tonight to get the thing to work with odd and even days. I couldn’t muster it. I got the config page done and the variables setup but I don’t know how to do the rest. Anyone want to take a stab, I can test.

(Xm381) #97

Yes, got Odd/Even working.

I made changes to the scheduler:

  • MRW Mods 2018
  • Split original 24 zone time inputs into three seperate groups of 8 to allow three programed schedules, prog2 and prog3 not yet implemented
  • Rearrange preferences screens to support zone time changes
  • Implement odd/even water days; add odd/even preference input options, add odd/even logic in function isWateringDay()
  • Change function isWeatherDelay(); changed rainGauge.round(2) to rainGuage due to throwing java error based on what data was returned from Weather Underground

[There was a typo in the original scheduler upload to GitHub, it’s been fixed but make sure you have the most current version]

Also changed the device handler (not related to odd/even):

  • MRW Mods 2018
  • Tiles didn’t work when pressed, chagned Timer inputs from “text” to “Integer”

(Xm381) #98

The LinkNodes are a nice package and darn cheap, but a pain to program (USB to Serial, etc).

I went with an Adafruit Feather HUZZAH ESP8266 (I use these a lot for IoT projects)

and, in my case, a 4 channel relay board (they have 8 channel too).

A little more money but easy to work with and available.


I got the Sonoff 4 CH Pro partially working. My problem is that the GPIO assginments are incorrect so it only toggling relay 1, which it thinks is relay 4. I need to recompile the ino file to match my settings.


// GPIO 12,13,14, and 16


// GPIO 12,04,05, and 15

Any ideas where to start to do that? I have compiled tasmota with platform io but not sure how to apply that here. Seems like I need more than just the ino file.


Well, I have been reading on how to compile and now I am running into ‘StaticJsonBuffer’ was not declared in this scope. Any ideas?


I got it compiled and running on a Sonoff 4ch pro. Works out good. I do wish I could control it with the external buttons but no biggie. I may try to figure that out later.

I noticed that we are limited to one some running at a time. Is there a way to run multiple zones at once? Trying to get around only having a 1 hr watering window each day by running multiple zones at a time.

If anyone wants the bin for Sonoff 4ch pro, here you go Sonoff 4Ch Pro Smartthings Sprinkler

(Ghassanjankeel) #102

I have a LinkNode r8, and I have two extra relays that I’m trying to utilize them for pool chemicals. I wanted the timing to be within the esp8266, so I added those to the ino file and compiled it, when I’m pushing the new bin file using the OTA update, changes are not reflected (changed the version number for easy verification). Am I missing anything?

(Ghassanjankeel) #103

Never mind, OTA is working now, I don’t know why it was not working then.

(Ghassanjankeel) #104

I’m curious if you used the same ino file from linknode with your Adafruit Feather HUZZAH ESP8266 as I’m having a problem with mine that it keeps getting ip every other day. I thought is a problem with my router, and now that I have a different brand router the same problem is still there, and since nobody else is mentioning it. I’m guessing its not the code, but the board.