I’ve been giving this some thought as well lately. There’s even another thread on TFP discussing this topic that I’ve been following, but I haven’t seen a viable solution proposed just yet. You could hypothetically use an HVAC float switch which are very cheap, but how to wire that in to your specific pool controller to detect the high water basin level is the question.
I have an OmniPL which does have one external interlock input which could be used to detect the float switch trip on high water volume. The Omni would then be easy to configure this as an interlock to shutdown the chiller, which would actuate the valves to close. In my case however I’m using that interlock already to detect when my home is on generator power, to then load shed the pool pump if the generator load gets too high. My alternate thought and what I’m leaning towards is a separate homemade ESP32 controller that I already have installed in my Omni controller panel which has some extra breadboard space; using that today to monitor controller temp and chiller water temperature as the Omni let me down by not being able get access to the extra temperature inputs on the board. Would be simple to add in the float switch, then use Home Assistant to stop the chiller.
What pool controller do you have? If you have an interlock input similar to the Omni, that’s an option with the float switch. I’ve thought about if it would be possible to wire the float switch in series with the valve actuator to close it when the float trips, but I need to read more about how the actuators work to see if that’s a possibility.