I have a good understanding of boolean logic, I could literally teach a class on it. But I'm having a hard time wrapping my head around GHL's implementation. Frankly, I've had to resort to trial and error to get my statements to work! It's unclear whether or not I want a PL statement to evaluate to "true", or "false" in order to do something, like turning a pump on or off... It's also unclear whether or something will evaluate to "true", or "false" when used in a statement. Like, does "filter 1" in a statement evaluate to "true", when a feed pause is initiated? Other things like that...

I can give specific examples if you want, but I'd rather figure it out on my own if you can just point me to some documentation. Thanks!

And, I have a couple of feature requests along this vein. It would be great if there was a description field you could fill out with the PL statements. That way, you could document what they're doing and what they're used for. Otherwise you're stuck with trying to reverse engineer what you did, if you refer back to the logic weeks or months later. It would also be great if PL statements would tell you where they're referenced. As a system implementation gets more complicated, you can end up with orphaned PL statements, but it's hard to be sure whether or not (or where) they're used, without poking around and looking at all your switch channels, etc.