The exact Zimmerman algorithm is documented here:
It uses the average humidity and mean temperature. The average humidity is calculated from min/max humidity (both reported by WUnderground), and the mean temperature is directly reported by WUnderground. Although the highest temperature may be 82 F, the mean temperature over the day, in your case, was only 53 F. From your screen shot, the 15% result is correct. It’s calculated by 100% + (30% – (15%+79%)/2) – (70 – 53) * 4% = 15%
The weather adjustment code is written in Python and is hosted on our server. If you want to customize the formula, you can host the Python script on your own server, and change the ‘WEATHER_SCRIPT_HOST’ macro define in file defines.h accordingly. The code assumes that the script is at:
The reason it’s done this way is that the microcontroller is not powerful enough to parse XML data from WUnderground, so it’s necessary to relay the data to a cloud server, which does the calculation and returns the % watering parameter back to OS.
We are actually trying to implement ET-based algorithm, which is a more standard way to calculate water time. Hopefuly this will make the weather calculation more accurate.