Hi, first of all: I like this project. It looks clean, test-heavy, and much more maintainable than the YAML-based smart irrigation controller I currently run in Home Assistant.
I am considering replacing my current setup with NeverDry, but I am missing a few capabilities. I would be happy to contribute them if they fit the direction of the project. Before starting a larger PR, I wanted to check whether these ideas make sense upstream.
1. Cycle / soak scheduling
My current controller does not run one long irrigation pass. It splits watering into cycles and lets water soak in between runs.
Example:
- lawn: 5 cycles × 6 min per zone
- terrace bed: 3 cycles × 1 min
- minimum soak time per zone, e.g. 15 min
The important part is that soak time should be smart: time spent watering other zones, waiting for a pump/well to recover, or waiting in the queue should all count toward soak time.
This helps avoid runoff and local puddles, especially on clay soil or sloped/uneven areas.
2. Queue / scheduler behavior
It would be useful to have a real queue/scheduler rather than treating an irrigation run as one blocking operation.
What I would need:
- scheduled/manual/reactive jobs can queue behind each other
- the scheduler picks the next eligible zone segment
- a zone is eligible only if its soak time has elapsed
- overlapping schedules should queue, not overwrite or disappear
This would also make cycle/soak behavior much easier to reason about.
3. Pump / well recovery gate
My irrigation is limited by a well. I currently pause irrigation below one threshold and resume above another, for example:
- pause below 55%
- resume above 90%
Waiting for the well should not reset the irrigation job. It should simply pause the scheduler, and the elapsed time should count as soak time.
I think this could be generic: any HA sensor + pause/resume thresholds, not specifically a well integration.
4. Actuator abstraction / Hydrawise adapter
Another thing I would like to explore is a direct Hydrawise adapter.
Instead of relying only on Home Assistant's Hydrawise integration, NeverDry could have a cleaner actuator abstraction, for example:
- HA switch actuator
- MQTT actuator
- Hydrawise API actuator
For Hydrawise, the adapter could start a zone, poll state, and fetch actual runtime/water metrics if available. That would make delivery accounting much more reliable than relying only on estimated runtime.
Question
Would these fit the intended direction of NeverDry?
If yes, I can start with a smaller architectural PR first, probably one of:
- actuator abstraction while keeping current switch behavior unchanged
- queue/scheduler model
- pump/well gate
- cycle/soak scheduling
I would prefer to contribute this properly upstream and share with others rather than continue growing a private YAML controller or making my own integration if the direction makes sense here.
Hi, first of all: I like this project. It looks clean, test-heavy, and much more maintainable than the YAML-based smart irrigation controller I currently run in Home Assistant.
I am considering replacing my current setup with NeverDry, but I am missing a few capabilities. I would be happy to contribute them if they fit the direction of the project. Before starting a larger PR, I wanted to check whether these ideas make sense upstream.
1. Cycle / soak scheduling
My current controller does not run one long irrigation pass. It splits watering into cycles and lets water soak in between runs.
Example:
The important part is that soak time should be smart: time spent watering other zones, waiting for a pump/well to recover, or waiting in the queue should all count toward soak time.
This helps avoid runoff and local puddles, especially on clay soil or sloped/uneven areas.
2. Queue / scheduler behavior
It would be useful to have a real queue/scheduler rather than treating an irrigation run as one blocking operation.
What I would need:
This would also make cycle/soak behavior much easier to reason about.
3. Pump / well recovery gate
My irrigation is limited by a well. I currently pause irrigation below one threshold and resume above another, for example:
Waiting for the well should not reset the irrigation job. It should simply pause the scheduler, and the elapsed time should count as soak time.
I think this could be generic: any HA sensor + pause/resume thresholds, not specifically a well integration.
4. Actuator abstraction / Hydrawise adapter
Another thing I would like to explore is a direct Hydrawise adapter.
Instead of relying only on Home Assistant's Hydrawise integration, NeverDry could have a cleaner actuator abstraction, for example:
For Hydrawise, the adapter could start a zone, poll state, and fetch actual runtime/water metrics if available. That would make delivery accounting much more reliable than relying only on estimated runtime.
Question
Would these fit the intended direction of NeverDry?
If yes, I can start with a smaller architectural PR first, probably one of:
I would prefer to contribute this properly upstream and share with others rather than continue growing a private YAML controller or making my own integration if the direction makes sense here.