OpenSprinkler › Forums › OpenSprinkler Unified Firmware › Trouble with Zimmerman Method
- This topic has 103 replies, 22 voices, and was last updated 6 years, 9 months ago by Ray.
March 17, 2015 at 5:27 pm #36062
I seem to be having trouble with the Zimmerman method on my OS. I updated to 2.1.3 at the same time as I noticed this… so not sure how long it’s been going on.
The wunderground diagnostics section says:
- Min Humidity: 20
- Max Humidity: 63
- Mean Temp: 64.3
- Precip Yesterday: 0.00″
- Precip Today: 0.00″
- Method: Zimmerman
- Current %: 100
100 is wrong though 🙁 Popping it through the formula, I get 65.7%
Location is set to “pws:KCASANJO63″
Anything I can do to help diagnose what’s going wrong? To be clear, this has worked in the past for me.March 17, 2015 at 9:58 pm #36067
The most likely reason I can think of is the controller is not getting weather data correctly (the weather data you see in the app are data directly from WUnderground website, and do not necessarily represent what the controller receives). Are you setting OpenSprinkler to use static IP? If so, please make sure you also set the correct router (i.e. gateway) IP, otherwise the controller cannot receive data from weather website. We strongly recommend keep OpenSprinkler in DHCP mode, and use the router’s DHCP reservation feature to set a fixed IP to OpenSprinkler.March 18, 2015 at 5:52 pm #36086
I am having the exact same issue as dankeen (hey dan) above.
I have the sprinkler set to DHCP and it seems to be working fine. it has a static address configured on the router.
This was working last week as far as i can tell, it has recently stopped working. Nothing has changed on my end, the router and the open sprinkler are configured exactly as they were.March 18, 2015 at 7:08 pm #36089
I can confirm there is an issue resolving the data on our end. Even though Weather Underground is returning the correct data, the script which OpenSprinkler uses to calculate watering level is not parsing the data correctly, it appears.
I am still investigating and once a solution is released I will post here to update.
Thank youMarch 18, 2015 at 7:28 pm #36090
Okay, I believe this has been fixed. Please check your OpenSprinkler and see if the correct water level is being shown now.
Some detail: The script was resolving the weather station latitude and longitude to calculate sunrise / sunset times however later in the script the location gets swapped from whatever is provided to the latitude and longitude. This was done before PWS and ICAO locations were supported to allow a uniform query. Of course, this isn’t ideal when using a specific weather station and is also what caused the issue you are both seeing. I have since updated the script (code here: https://github.com/opensprinkler/weather-adjustment) to check if a PWS or ICAO is being used before just changing to latitude and longitude.
Thanks!March 18, 2015 at 10:43 pm #36101
Thanks, its working now. Its now saying 31% so it seems good now.March 20, 2015 at 4:17 pm #36143
Yep, seems to be working great. Thanks for the quick resolution, and loving the new web UI.March 22, 2015 at 11:12 am #36179
I’m new here so sorry if the question is a repeat. I see the Zimmerman algorithm needed a fix which was recently added. Can you tell me which firmware requires the fix? Right now I’m running OS with 2.1.2 firmware.
So my main questions are:
1. Is the algorithm correct with 2.1.2?
2. If I upgrade to 2.1.3, will I need to patch the algorithm (appears so from above thread)?
tomMarch 22, 2015 at 11:39 am #36185
The fix does not depend on the firmware version and all versions have received this fix (no need to reflash).
So answering your questions:
1) Yes it is correct with 2.1.2.
2) If you upgrade to 2.1.3, everything will work without any patching needed.
Thanks.March 22, 2015 at 2:54 pm #36189
Great. Thanks.March 23, 2015 at 9:16 am #36202
It appears I too am experiencing problems with the Zimmerman method calculation. Here is what my weather diagnostics say:
• Min Humidity 50%
• Max Humidity 90%
• Mean Temp 61.9
• Precip yesterday 0.13″
• Precip today 0.02″
• Current % Watering 14%
–> However, if I plug these values into the equation I get -102.4 which means the value should be clamped at zero, right? Further, the % watering has not changed in several days even though previously we received no rain and the calculation yielded significantly higher numbers (like around 30).
It appears no matter what, the number is stuck at 14%. Any ideas?
Attachments:March 23, 2015 at 2:13 pm #36206
Could you point me to the Zimmerman formula?
SeanMarch 23, 2015 at 2:42 pm #36207
Screen shot from the OpenSprinkler manual.
Attachments:March 23, 2015 at 7:26 pm #36209
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.
Thank youMarch 23, 2015 at 8:48 pm #36214
I’ve tried changing the station location several times; each time the “weather diagnostics” changes almost immediately. That is, everything changes except for the “Current % Watering” value which remains at 14% always. Not sure how long I need to wait to see if that changes.
So then I used a REST client to hit the URI you gave me with the added parameters of “loc” and “key”. Here is the URI:
And the GET returned the following response:
…so if I then look on the WebApp and check the “Weather Diagnostics” I get the attached screenshot.
Interestingly, however, if you plug in the values into the algorithm you get -106.4 which should be clamped to zero. And yet the screenshot shows the % watering is invariant and still at 14% regardless of station.
Now looking at the response from the GET I see that “scale” is CORRECT in the response to the GET, but wrong on the openSprinkler.
So does this mean my openSprinkler is not communicating properly?
What I don’t understand is: how can the openSprinkler get all the values correct except one??
Attachments:March 23, 2015 at 8:56 pm #36219
As I mentioned earlier, and you confirmed with your feedback, the controller is not communicating with the Internet correctly. Furthermore, I noticed you have another forum post open about intermittent connectivity issues with your OpenSprinkler. I believe the two are related and the connectivity issue is causing your device not to update its weather level.
Also, the weather diagnostics is showing the live data from Weather Underground, not the control. The watering level is the only variable in out popup that’s actually from the controller. The numbers are what the weather script gets (weather.opensprinkler.com) which is why they are showed there but the actual device watering level is shown since that’s what’s important. Maybe I will add an “expected” value so the difference is more apparent.
Lastly, yes the “scale” value is the end water level result, which is 0% as you expect.March 23, 2015 at 10:10 pm #36224
OK thanks that info was very helpful. Now I think I understand. I didn’t realize the app was pinging the WU directly for all the weather info and the controller only for the % watering factor.
I agree the controller seems to be having trouble connecting. It is able to talk on my local subnet ok (with some intermittent issues which was the subject of the other post), but it cannot seem to communicate with the Internet at all.
I will try to eliminate the wired Ethernet connection as a suspect next.
In the meantime, can you tell me if there is an easy way to verify if the controller can actually reach the Internet? I’ll try a few things as well…
Thanks for all your help.
TomMarch 24, 2015 at 10:04 am #36232
I rebooted the openSprinkler and all problems seem to have gone away. I’ll continue to test the network connectivity to verify things are working well. Thanks for your help.
TomMay 7, 2015 at 6:04 pm #37457
I am having a problem now. My watering level is always 0%. I even changed my location to Tampa, Florida and it is still 0%.
My os connects fine to the internet, as I can always control the unit remotely.
Any ideas what could be causing this? Anything I can screenshot to help troubleshoot?
Attachments:May 7, 2015 at 6:07 pm #37459
What firmware version are you using? If you are on 2.1.3 or lower, I recommend you upgrade to 2.1.4 which fixes an issue with the weather level not updating after the controller has been running for a few weeks.
Otherwise, try to reboot the controller and see if the water level will update.September 8, 2015 at 12:25 am #40149
I am having a similar problem as discussed in this forum. I have 2.1.15(2) firmware on my unit and I am using a local station which is Blairgowrie, Randburg, GAUTENG (IGAUTENG163) according to the Wunderground site. My unit calls it Blairgowrie only.
It was working fine until my rain sensor was triggered. Since then (3 days now) it has been stuck on 0%.
When I click weather diagnostics, nothing is displayed, it just has the loading images for a bit. then nothing.
If I go to select a new location, its slow to display them, but selecting a new one changes nothing.
I can access the unit remotely.
It is on DHCP.
I have rebooted it a few times. Including powering it off and back on
Any suggestions/help would be appreciated.
SeanSeptember 8, 2015 at 12:33 am #40150
@Sean, your weather station is not reporting humidity data at all (instead of reporting -999) which is causing the app to error (which is why the diagnostics popup isn’t opening).
The error specifically is:
Uncaught TypeError: Cannot read property 'minhumidity' of undefined
I will fix the error so it handles the situation however ultimately the issue is the station you are using is not reporting correct data.
Thanks!September 8, 2015 at 2:19 am #40151
I will try selecting another station to see if it resolves the issue.
How do I check that a station is reporting all metrics correctly? If I go to wunderground site, the station (IGAUTENG163) reports 36% humidity.
I would have thought the Zimmerman formula would assume any missing data to be as per the expected norm. I.e in teh absence of a temp reading it would use 21C base temp.
SeanSeptember 8, 2015 at 1:03 pm #40155
I tried a new station, FAOR, I still have a 0% watering.
I then reset all my settings and then selected a different station again, IGAUTENG97. This time I get a watering percentage of 113% but when I select weather diagnostics, nothing comes up as before.
SeanSeptember 10, 2015 at 11:30 am #40178
I have been systemically trying the station near my home. Of the 15 odd I tried all gave me the same result. No weather diagnostics or updates.
I eventually tried a couple in the USA, which worked. The location also updated my timezone.
When I went back trying at home, I couldn’t get the time zone to revert back either (i.e it stayed on the USA zone).
Could it be something specific to my area that is causing the issue? I cant believe all the weather stations are faulty at once?!
- You must be logged in to reply to this topic.
OpenSprinkler › Forums › OpenSprinkler Unified Firmware › Trouble with Zimmerman Method