Samer after midnight the data for daily averages resets on the weather sites, though historical data should balance this out it may be a factor. Also there is a brief period after midnight and before the first update where some of the data is absent or null. If you are checking once per hour this may allow invalid data to persist for the first hour of each day.
Just a couple hypotheses, but looking at your code and the Zimmerman calculations, I don’t see where it should water at 0%…unless maxemanuel is seeing the 0% after it watered, and it watered based on another percentage/data set, which of course the log data would reveal.