While active duty military, I relied heavily on Neptune systems controllers.
Now that I'm retired, I was given a hydros controller to play with and discovered right away that this wasn't truly a controller, more a place holder for one in the future. In my mind there's a lot of vapor wear that has yet become reality.
I don't like the Ford vs GM argument either because it makes it seem like the 2 are equal when in fact they are not. I would gladly recommend GHL profilux or apex, as these 2 are truly controllers with virtually unlimited versatility.
I think what entices people to hydros is that most of the proponents are currently the most convincing voices, and that CV reduces the learning curve because they confine you to what they program into the user interface.
While GHL and Neptune allows you to not only utilize the predetermined settings, but also allow you to explore beyond cookie cutter programming.
Hydros fanboy here, power user, tester and reseller. I have well over 40 hydros devices and I use them for not only my reefs but for freshwater shrimp setups, multiple reptile enclosures and even have my pellet stove controlled by one with a battery backup to maintain temperature in my living area for tanks/reptiles.
I have to disagree with the confines you say that hydros puts on users. This might have been true in the early days of hydros but the ecosystems flexibility has evolved.
I was (well still am somewhat since I still run a NP) a Neptune user and I understand the flexibility that Neptune provides with their basic scripting. But hydros does provide some powerful building blocks to create some more complex programs. Breaking down functionality into outlets and cascading them can generate some powerful uses. The pre-defined outputs yes give you the basics for most users but the combiner and generic outputs allow users to expand past the cookie cutter templates. Breaking functions into “virtual outputs (apex style)” and then building up a program using combiners or “depends on” controls gives you a lot of flexibility. The logic conditionals provided in the combiners (and/or/nor/nand) I’ve found to be pretty powerful. There’s only been a couple things I couldn’t do that Neptune can but I’ll touch on that later.
Even the canned output profiles have some complex functions that are useful to leverage in more complex programs. I personally leverage the RODI profile a lot since it generates a latching output using 2 inputs (it’s basically a SR latch in logic terms, something Neptune doesn’t provide directly with scripting). The advanced settings on most outputs also provide flexibility with the min/max off/on controls to create delays and pauses in functions. Laying modes on top of this allows you to gate off functions completely so that they can only run when in that state. This allows another layer of control and flexibility. Also understanding the use of the “depends on” control is handy in more complex programs, in the fact that this input is immediate and voids any min/max off/on conditionals plus it will reset these control timers as well.
Inputs, esp focused around 0-10v are extremely useful to DIY. A lot of flexibility to use voltage inputs for sensors and directly port them in as usable data sources for control. For example I use some high quality tyco humidity sensors for my reptile tanks that use the 0-10v and I’m able to convert the data into hydros as a humidity (0-100) value to control my mister system and regulate environments. Hydros also lets you use voltages to generate virtual toggle switches so you can turn external momentary triggers into a toggled state input. Or create delayed state input where a trigger can turn on an input for x time and then automatically revert. The one area that hydros hasn’t covered that Neptune has is the ability to generate discrete voltages on the 0-10v based on condition. Ie if conditional A is true output 1V, if conditional B is true output 3V and etc. 0-10v output control is more tied to lighting or flow schedules currently.
But on the subject of schedules, you can leverage multiple concurrent schedules with outputs like Simple Lights/LED. And program outputs to follow the sum of multiple programmed schedules and then tie that output of the simple light/LED into some other function. Then you can also have each schedule be controlled by conditionals as well since a schedule can be disabled using the Depends On control as well or even modes.
Then there are output profiles that hide more complex features within themselves. The auto water change profile actually has a non-volatile component to it in the fact that the profile keeps track of its current state in local NV memory. So if the controller is in the middle of a water change period and power goes out or the controller is momentary unplugged, hydros will re-enter the state it was in. Meaning it will continue to drain and refill saltwater and not revert to running your auto top off and dropping your salinity. This is one feature I know Neptune does not have.
I have some pretty complex functions running across my systems. And all I did was take the building blocks hydros profiles give you and stack them up as needed. It’s similar to what you have to do with Neptunes virtual outputs as well since you can only do so much within one output due to the line priority. Hydros isn’t as flexible since you don’t have a blank slate to write all possible functions into one output but the majority of what you need can be found in one output profile or other. And if not you just split up that function across a couple.
In the beginning i did struggle coming from Neptune to hydros since I was trying to do everything the same way and would hit walls. But once in the ecosystem for awhile, you have to utilize a different path to accomplish things. But overall I’ve been able to do anything I want in one way or another.