Objective
Extract valve control from whs.py. The valve responsibilities being extracted:
- Validate requested volume/duration
- Energize Valve
- Observe flow
- Accumulate gallons
- Stop on target, timeout, or error
- Always de-energize valve during cleanup
Done when
The orchestration can use the service without directly manipulating the GPIO
Objective
Extract valve control from whs.py. The valve responsibilities being extracted:
Done when
The orchestration can use the service without directly manipulating the GPIO