OpenSprinkler › Forums › OpenSprinkler Unified Firmware › Penmen-Monteith ETo method python script for possible use as weather script › Reply To: Penmen-Monteith ETo method python script for possible use as weather script
So I finally made a fork to the main project and have been running it for a few days with no issues. I’m sure there are better ways to accomplish everything but it works.
The UI has not been updated at all so it can really only be used for displaying status. To get everything working do the following:
1) compile and upload the firmware (I used arduino 1.0.6 and usbASP on OS HW 2.1)
2) Change password, set your timezone and location, enter WU API key, and name your zones, using the UI.
3) Enter a program using the api (there are some changes here so I’ll provide an example)
3a) OS-IP/cp?pw=MD5Password&pid=-1&v=[195,127,0,[20540,16444,12318,8252],[dur1,dur2,…],[planttype1,planttype2,planttype3,1,0…],[etmin,etmax]]&name=Weather1mm (OS-IP use the ip address, pid -1 adds new program, 195 uses weather and et, 127 is everyday, starttimes are based on sunrise/set,dur is duration to 1mm of precip from sprinkler, planttype 0=grass or < 4″ tall 1=shrubs or > 4″ tall, etmin/max are min and max et to water in one run * 10 eg 50,150 will water 5 to 15 mm in one run if less than 5 it won’t water, the name can be anything)
4) Reboot the controller while holding B3 and cycle through options until you reach “Weather Algo.” and set it to 3. Hold B3 until OS resets.
5) Enjoy happy plants and grass, with a lower water bill.
Things to remember:
You must have an SD card installed, and this requires a good internet connection. If the connection fails the controller will not water.
If you change the weather algorithm used it will reset your ET based water balance. I haven’t found a good way to do this yet.
This requires a WU key, I do not have any other weather algorithms on my server, so if you want to use Zimmerman or auto rain delay you need to change it back to os.com.
I know there are much better ways to do this but since it seems the idea died before it got off the ground I decided to get some sort of working implementation out in the wild. If you have suggestions, comments or issues let me know on github. The developers here will probably not be huge fans of dealing with this project. The majority of the work is not mine, so please respect the original authors works.