I am working on intelligent watering feature in my MLH farmware. Good news is that it looks like it works. Bad news is that it will not likely to help people who expect it to work out of the box. If you don’t afraid of Python and willing to fork my project - here you go
https://github.com/etcipnja/MLH/tree/dev - please note this is not a mainline branch, so people who are using it already are not affected.
The idea is to let farmware decide how much water each plant needs basing on the
- plant name
- plant age
- past rains in your area
Here are the ideas that I put together:
- you need to run Netatmo farmware in the sequence before MLH to get up-to-date weather reading
- put AFTER sequence that has ‘water’ and ‘mlh’ in it is name (for example “Water [MLH]”) to engage intelligent watering mode (see below for explanations). If this name is not found - MLH works as usual
- In the code I hardcoded a matrix that specifies how much water each plant needs each day (unfortunately openfarm doesn’t have this info afaik). most likely you’ll need to update this matrix as it only has my plants and reflects my understanding of the watering which might differ from yours
- farmware skips watering if there was a big rain 2 days ago or good rain yesterday or rain today (see code to for details)
- otherwise it waters each eligible plant according to the matrix and makes a record to avoid double watering this day.
You need to create a sequence that waters one plant; name it so it has “water” and “mlh”. For example ‘Water [MLH]’. The simplest sequence would be
- open valve
- wait 1000ms
- close valve
Before MLH farmware calls this sequence it updates the duration to the calculated value - this is how each plant gets individual amount of water. In my case 1000ms=80ml. In your case it might be different.
- it is impractical to dispense small water quantities per plant. For example it is not a good idea to water each carrot. I am working on detecting carrot patch box and water all carrots at once (without stopping water for every plant)
- I want to plugin to some water forecast service to avoid watering if rain is expected soon