I got the majority of the automation working for my pool/spa this weekend.
I can now control the pump, heater, and the supply and return valves from a PLC in a panel in the pool room using a panel-mounted touch-screen.
However, I ran into a problem. Initially I set the program up to delay turning on the pump any time the valves need to change position for the 40 seconds it takes for them to move (Intermatic).
The problem is that during the return valve movement, the spa drains into the pool. It loses a good 3-4 inches in those 40 seconds.
Since I have a 'freeze protection mode' programmed to switch back and forth between circulating the pool and circulating the spa, this is a problem.
I took the delay out for the pump and this reduced the loss per transfer to about an inch. So the current plan is to add some code to count the number of cycles that occur in freeze protection mode and after 5 switch into 'refill spa mode' where water is pulled from pool and put into the spa.
Overall I am very happy with the automation, and more importantly it has de-mystified the operation of the pool/spa for the wife and daughter.
Want to get in the spa? Push the 'spa mode' button and wait for heat.
Want to get in the pool? Push the 'pool mode' button and dial up the pool temp you want.
Done in the spa? Press the 'refill spa' button and walk away.
Done in the pool? Press 'standby mode' and walk away.
I still need to install the thermocouples for the outside air temp and pool water temp.
I'll get some pics posted if anyone is interested.