Dan, that PDF is interesting, but doesn’t it also require solar radiation data? From STEP 2:

Rns = net solar radiation over grass as a function of measured solar radiation (Rs)

As I mentioned, I couldn’t find a good data source for solar radiation so if Hargreaves-Samani doesn’t need solar radiation that’s good.

This paper shows an improvement to Hargreaves-Samani that increased accuracy – http://cagesun.nmsu.edu/~zsamani/research_material/files/Hargreaves-samani.pdf

This quote from the above paper emphasizes the need to consider solar radiation in some form:

According to Jensen (1985), at least 80 percent of ET0 can be explained by temperature and solar radiation.

According to the maker of the WeatherSet irrigation controller:

On average, 85% of ET is solar radiation and 10% is wind. When there is no wind, then solar radiation is 90-95% of ET.

(Not sure how credible this is since the website has a less than credible feel.)

The WeatherSet controller has a photo sensor of some sort to measure solar radiation. And perhaps a solar radiation sensor could be added to OpenSprinkler. However, I prefer to focus on efforts that use readily obtainable weather data unless we find it can’t be done accurately.

Dan, good work getting these equations in Python. I feel the first step is to support ET directly since there are sources of ET data available. True the coverage is spotty, but for those that live in those areas, having a daily ET value gets you almost there (just need to figure out what adjustment to make to watering). And these ET numbers should be more accurate than what we could compute based on limited weather data. Yet I can see the appeal of a method that needs only basic weather data as it would work for more people.