I dont want to start a "brand war" here, so just going to go straight to the point.

I want to use the Profilux 4, but need to be able to do custom programming. Does the Profilux give the same freedom as the Apex on custom programming (the Apex where you can use code to start, check, defer, set times etc) so that I can write fully custom programs (like for an AWC where you can say to the profilux at 21:00 start the AWC program, but then turn off the ATO when the AWC is running, empty water until float X is triggered, but for max x minutes, wait for x minutes, start filling water until another level switch is triggered, but max this minutes, then stop and turn on ATO with a deferred time of x hours.