I just recently discovered OpenSprinkler, liked the idea, ordered one and just started using it (OS3.0 AC).
I like the idea of “virtual” valves aka the ability to define http devices that can be treated just like regular valves.
What about driving this idea and create virtual sensors? Instead of having to physically wire the max of two sensors have N sensors(there’s no limit) that can be feeded via API? This could also be weather sensors for temp/humidity or virtual switches.
I already have quite a few weather, moisture and rain sensors deployed if this feature would be available I would not even need external weather data. This data could then be used for the watering algorithms as well. Or a virtual moisture sensor per valve etc.
Not sure if that has been brought up before or if it’s maybe a stupid idea.
I was just about to start integrating the sensors into node red and move all the logic there and use Opensprinker to turn on/off specific valves. But from a use for the community virtual sensors might make more sense. I also think it would be a shame to degrade OpenSprinker to a stupid valve switch.
This can be done in two ways: the easiest is probably to use an external server, like a Raspberry Pi, which receives data from the sensors, computes watering level or any adjustment you need, and use OpenSprinkler’s HTTP API to send the result to OpenSprinkler, say, to modify the watering level, trigger a rain delay etc.
The more difficult route is to modify the OpenSprinkler firmware to read the sensors. This is harder due to the limited computation resources of the microcontroller, and also you will be restricted to use C++ as that’s what the firmware is written in. In contract, with the first approach you can use any scripting language you want.