The most likely culprit is the controller not successfully retrieving data from the weather service. To quickly test if the controller is having an issue, try a different location and see if the value updates within a few seconds.
Also, the end point the controller is reaching out to is: http://weather.opensprinkler.com/weather1.py (1 means Zimmerman method to the controller). It takes the location in as ‘loc’ and the API key as ‘key’, as GET parameters. For more information on the code you can refer to Github: https://github.com/OpenSprinkler/Weather-Adjustment
The reason I am telling you about the end point is for you to test against it. If you see the correct scale on the endpoint but wrong on the OpenSprinkler, then it’s failing to communicate. If it’s wrong on the weather service then it’s a problem in our calculation. This way we can have better data to trace down the issue.