OpenSprinkler Forums Hardware Questions OpenSprinkler Pi (OSPi) Python interval – Location features?

  • This topic is empty.
Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
  • #22678


    So I’ve tried out OSPi and it’s a terrific piece of work! Definitely my preference of all the options for a pi that I’ve seen!

    I started playing and noticed the Location field in the options, but I can’t see that it’s actually used anywhere? I’m guessing that the location is to be used for things such as weather lookups, in particular to check for recent rainfall and adjust accordingly, but that this hasn’t been implemented yet?
    I had some spare time, so have started throwing together some functionality around this. It’s fairly incomplete at the moment, but I’ve got a location lookup function added in the options page and a quick temperature display (Using on the home screen. If I get some time over the next day or so, I’ll add a recent rain check (Say 3 hours) that disables any sprinklers if there has been more than Xmm of rain etc.

    It’s nothing fancy or anything, but I wasn’t sure if anyone else was working on this sort of thing and/or if anyone else was interested in it. Anyway, the fork is at



    One of the things I like about OSPI being written in Python is how (relatively) easy it is to tinker with.

    This thread discussing the use of weather data to adjust watering may be of interest to you – viewtopic.php?f=28&t=364



    Some interesting reading there. Certainly implementing the simplified Hargreaves-Samani seems like it would be fairly trivial and I’ll tackle that tonight.

    Silly question, but ET only deals with watering adjustments based on evaporation right (ie it will always vary a base watering amount upwards)? Is there a defined standard method for varying it downwards based on precipitation levels or is it just a matter of saying Xmm of rain means cut watering time by Y%?



    As I understand it, ET is trying to quantify how much water (inches or mm) will be lost from the soil (evaporation) and plants (transpiration). So conversely ET tells you how much irrigation water will need to be applied to replace that lost water. Since Hargreaves-Samani does not take precipitation into account, my assumption is that you simply subtract precipitation from ET to get how much irrigation water is needed.

    For altering watering, IMO the best way is to measure water output per zone (inches or mm / minute) and then use ET (minus precipitation) to determine how many minutes to run. Measuring water applied to each zone can be done with cans placed on the lawn. A simpler alternative is to figure an average water output for all zones and then adjust them all up/down by some ratio (percent) as ET is higher or lower than this average. Another method is to look at historical ET data and figure an average (for the whole summer or maybe just July) and then use that as a baseline to compute if watering should be increased or decreased.



    I use Dan’s/Ray’s Interval Script to control sprinklers at home and Salbahra’s script to control over the web.

    In Salbahra’s scripts, I know that the sprinkler system reliably stops on rain (making a call you the Yahoo weather API) The other morning though it ran when it was 27 degrees and was reported at 27 degrees.

    I am not sure what the function of location is in the Interval Script. I reviewed Dan’s GitHub and didn’t find location except in Javascript calls and in the field definition.

    My Questions:

      Does Salbahra’s script turn off on freezing temperature as well as rain? It looks like it should, but it didn’t.
      Is there some way that the Interval Program might have conflicted with Salbahra’s?
      Would I be better off to go ahead and add a rain freeze sensor than depend on the Yahoo call?

    I just want to make sure I do what’s best so I don’t have ice on the sidewalks, etc. BUT haven’t had great success with rain/freeze sensors.

    Thanks to Ray, Salbahra and Dan for their great contributions!


    Dan in CA

    Hi Mike,

    Hopefully Samer will check in with an answer to your question about temperature with his app.

    As far as the location feature in the Python program, it has not been implemented so far. I included it in the options stuff since it was part of Ray’s original code.

    Also, I had not implemented the rain/freeze sensor functionality because there was not a connector for it on the original OSPi board. It has been added now to support the new Beagle Bone Black version which does have a connector for a rain/freeze sensor. I also see that Ray is planning a new OSPi version that will have that included.

    It would make sense to have a sensor to adjust your system for your local conditions. You have probably seen Denny’s post on the subject:

    I am looking at the options for more advanced automatic weather based irrigation adjustments. That was my original motivation for getting involved in this project but I would like to develop something that can be used world wide. I use a drip irrigation system which makes it fairly easy to determine how much water is being applied during each watering cycle. That information needs to be included in order to make accurate adjustments.




    @mikethechap My program does not currently disable the sprinkler based on temperature. That is a great idea and easy to implement. Is there a good value to cut off on? 32F?



    If the value had to be hard-coded instead of an option, I would start at least 5 degrees above freezing since the temperature may vary from the location point as well as the temperature may continue to fall while running. Some rain sensors can also include freeze detection, so checking a couple of their specs they too seem to like 37 degrees as a cutoff point.

    What also would be nice with the location known is that one could work off sunrise/sunset times to identify the right time to begin a watering program. There is a C program called “sunwait” that is an example of this.


    Dan in CA


    Thanks for the tip on Sunwait.
    I see it takes Lat-Lon in decimal degrees as the location. That is also what is needed for ET calculations and can be used with e.g. Weather Underground. The original location input Ray used is by city name or zip code. Latitude, longitude is more accurate and I think more useful, it can be used world wide.


Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

OpenSprinkler Forums Hardware Questions OpenSprinkler Pi (OSPi) Python interval – Location features?