I really like my P4 and rate it a 8-9. I've had it for ~6 months with no issues affecting tank operation. I have nothing else to compare it to, but setup is fairly straight forward. Like anything else, you need to read/watch the resources and understand how the settings and features work. For example, the high and low temperature alarms are a calculation based upon your temperature sensor settings. The resource guides detail these calculations.
Once I applied my settings I initiated various scenarios to see how the controller reacted, then adjusted if things didn't react as I expected them to. Which in cases they did not. Examples of scenarios I ran were: high temp, low temp, power fail, level sensor actuation and PAB comm failure.
The only thing my controller really controls is temperature. I mainly use it for monitoring, alarm, notification and turning off multiple pieces of equipment in maintenance modes. All of my Powerbar sockets default on for a PAB comm failure, with the exception of the heaters. No heat is something that I think I would have time to respond to. I use Ehiems with thermostats so I could default one of those to on as well, but why take a chance. My other equipment I use the supplied controllers (e.g. Tunze powerheads, Tunze Skimmer, Osmolator and LX7). I see no need to put all my eggs in one basket.
I like all the methods you can connect to it. Web Interface, Hotspot, USB, GCC and App. I use GCC to make any permanent changes to the system. That way I can backup the configuration.
I setup a daily text notification to ensure the P4 is still communication with the outside world and that the email provider I'm using (Outlook) has not blocked the emails. Which it has a couple of times, thinking that the emails from Germany were suspicious.
This is one thing I don't think GHL has, is a heartbeat to let you know if the controller stopped communicating with MyGHL. Does anyone know? To me, I think this is a very important feature that should be there.