Thank you for your thoughtful reply.
“Are you wanting the ability to set a budget of 'x gallons' (in your case 4000) and have the software schedule zone durations accordingly to not exceed the preset 'gallon' budget?“
No, the pump will harmlessly shut off if the tank runs out, and those calculations are tricky to be reliable. But you might think of something to do if you know the maximum storage and if there has been usage totaling near that and no rain for several waterings – several ways to play with this. You could simply warn to check the tank or something like that.
“Or do you simply want the ability to have a zone with no zone attributes defined?”
Yes that would work well, other than max run time to prevent possibility of leaving the water on by mistake.
I developed a full featured irrigation controller based on the Arduino platform for my own use and am happy to share the features with you. I did not do the beautiful job you guys have done on the user interface and set up – that is very well done. I bought your system after we decided to sell the house and move and wanted the new owner to have a supported commercial product. I have painfully removed all traces of my system and fitted yours in – a very simple installation process as you know.
After suffering many damaging droughts and watering restrictions with our 1.5 acre hortictural garden, I decided to collect rainwater on a massive scale and have minimum dependency on city water and watering restrictions. I collect over 4000 gallons of rainwater, and the irrigation zones run off a Grundfos pump that draws water from the underground tanks. The whole system has run nearly flawlessly for several years.
It is based on the Vegetronix soil moisture sensors ( a weak point electronically), SHT air temperature and humidity sensors, and a water flow sensor. Each zone has its range of moisture targets that determine watering. The system accesses the Yahoo RSS feed for current conditions and 2 day weather forecasts (they are not reliable after that) and delays watering as needed until a critical low moisture level is reached. Each zone is monitored and watered independently of the others. My long term goal was to have no setup required at all other than zone type and have the system determine the soil type though its sensor readings.
Having the flow meter lets me know if there is a system leak or runaway valve, etc. It checks for 23 system errors and reports them in detail and can retry a failed sensor until it is sure it has failed. Many cool things become options with enough sensors!
It monitors the water volume of the storage tank with a chip that reads differential air pressure through an air hose to the bottom of the tank that basically weighs a column of water which is reported to the Arduino as a linear voltage, then it is converted to gallons arithmetically. Each day at midnight, the system checks the soil moistures, temperature, and forecast to determine which zones it will water. It keeps a record by zone of the amount of water generally used (based on flow meter history). It then checks to see if there is enough water in the tank. If not, it calculates the shortfall and turns on a valve to run city water into the tank to make up the difference, stopping when the tank level is measured at its target reading. This process assures minimum draw from expensive city water. Filling the tank is very slow relative to watering which can occur at up to 19GPM, which is why the process starts at midnight. Water confirmation with last minute forecast check happens at 4am, then it fires off the zones sequentially (easier to test software that way…).
The system records all activity indefinitely and has a real-time and historical graphics interface that scrolls the zone activity, storage gallons and temp and humidity. It also can be imported to excel as a csv file.
With all that said, I would not expect your system to do all that without the tank level sensor, which I would be happy to provide the details/code, etc for, but would not expect it to be a big seller in general.
Without sensors, the best you could do is to track calculated usage and rainfall from your weather sites and have a user defined “inches collected per inch of rainfall” parameter (mine is 38 inches or about 2800 gallons per inch of rain) and a flag to set when the tank is full and a setting for max tank capacity. That could be used to issue a warning to check the tank level before watering.
I hate to see my system disassembled and packed up, and would be willing to share more detail if you have the need or interest. You have a really great system from my perspective as a serious user and developer. I applaud your efforts!