What I have found invaluable on the Apex is the virtual modules. Having those greatly expand the versatility of programming. I am not sure if other controllers have that but I would not be surprised if they did since it's a great feature.
I said that to say this. I have implemented something similar to feed mode for maintenance (which many many have done out there). With a press of an ON-OFF button I can put the tank on maintenance mode for my water change. The return pump, heater, wave makers, skimmer, growth light and reactor turn off. My cabinet lights turn on. When I'm done and I press the same button everything springs back to life, thus eliminating the risk of forgetting to turn of the heater or pumps or something.
Another thing I would like to mention is this. Yes, the controller has to be able to do simple things in a simple manner right out of the box. But, in my opinion, the controller gains points in my eyes with what happens when you try to do something out of the norm or what it was designed to do. An example is what a lot of us have done with the Jebao wave makers. The Apex does not support the nice random/reefcrest etc modes through the wizards for the VDMs' ports (simply because it doesn't really know what goes there) like it does for the Vortech (which has a special module anyway). But, with the versatility that the controller offers with the virtual modules, we create virtual power bars with virtual outlets and through a series of logical time dependent on/offs we can create random waves. Yes, it's a little complicated but the controller's abilities have been expanded although it has not been designed to do so.
Another example of versatility (especially for the code side that a lot of people find as negative). My Radion is on the WXM module. I set up my profile with on/off rampings, colors throughout the day etc. I like my reef to be lit when I am home from work rather than when I am away so the light schedule is 10AM to 10PM. On the weekends though, I might wake up early and might want to have my reef turn on (low blues or whites etc). So, once I set my program up with the GUI wizard I then switched to advanced mode and added a couple of lines of code at the end that pretty much say "if virtual outlet BLUES is on then set the light profile to LOW_BLUE" or "if virtual outlet WHITES is on then set the light profile to LOW_WHITE". In that way, all I have to do is log in to fusion, flip the virtual switch and that overrides the behavior of my lights and schedule. What I was even more pleasantly surprised to find out is that once I put those lines of code in the advanced mode and then saved and switched back to the wizard and made a couple of changes the wizard did not override my custom code.
I am sure that some or all of the features I describe above are available with some or all the controllers out there. I simply have no experience to judge spherically (and probably that's the reason that
@mdbannister has posted this thread). But, these things are what I looked for, when on the market for a controller, and have made me choose Apex.
PS: Since we have
@Terence here, I'm sure it has been voiced before but expanding the language to be able to take multiple logic operations in an IF statement would greatly enhance the usability and experience (on the GUI you could have nice AJAX plus signs that bring extra lines for conditions, yummy!). I can see how the consecutive statements can confuse people.
PPS: Also, on the wishlist subject, it would also be nice (and I'm not sure if Neptune has something like that in mind) to open up an API for your aquabus connection (coupled with a fusion support) so anyone could make a module that talks to the Apex. I know I would! Then talk about having something that no one else has!
