It's all done in software. As long as the rain sensor is tripped, the controller won't water.
This is what the controller can do because there is no way to tell how much rain has fallen, even with the rain sensor to satisfy the "measurable rain fall" requirement. Even the requirement is vague - how much is measurable?
Software wise, we can detect when the rain sensor is tripped or dried out and take action. But because the nature of the rain sensor operation, we cannot depend on it reliably.
The rain sensor operates on the principle that when rain gets inside of it, a set of plates expands and pushes a switch. Some sensors have settings "indicating" how many inches of rain before tripping the sensor and how long it takes after the rain for the plates to dry out.
We've tested many different rain sensors to see if they work as advertised. The results were all over the map. First of all, because of the small opening in the rain sensor, it sometimes take torrential rain for a couple of hours before the sensor is tripped. We built a funnel to put on top of the sensor and it did not speed it up. In some sensor, we poured a glass of water directly into it in order to make it trip.
We tried different settings on the rain sensor to delay watering. They were never consistent. It largely depends on the weather. Hotter climate makes it dry faster, obviously.
Basically, we just did not find the rain sensor to be a reliable instrument to depend on. That's why we're reluctant to make decision based on it. We believe to accurately measure how much water is in the ground, you cannot rely on data or instrument in the air, but put a moisture sensor in the ground.