A little late to the party here, but I use cbpi with a hosehead. My HLT kettle logic is simply the offset logic. I set the offset to zero so simply if my hlt cools below my set point it kicks the element on, if it is above set point it kicks it off. I find this method for me is good enough as there’s so much heat mass between the hlt and recirculating mash it keeps everything real close to set point.
My brewing logic for mashing and ramping are ‘mashin’ for heating everything to strike (I recirculate strike water through my herms coil while heating everything to strike temp). Once I reach strike, my infusion logic is ‘mashstep’ where it drops my hlt setpoint to my mash temp - at this point I’ll also add cool water to hlt to aid in dropping my hlt from strike temp to mash temp so I can start my recirc. After 60 minutes I have another ‘mashstep’ called “ramp” and it ramps my HLT temperature up to about 8degrees F above my next step - which in my case is my mash out. The mashstep logic will hold the HLT at that temp for 1 minute then go to my next step which is ‘switchsensormashstep’. This logic basically controls the hlt to my step temp but waits until the mash sensor reaches my step temp before it starts the timer. So for me once it reaches 168 for my mashout, it starts my 10 minute timer. Once that step is done it goes on and I start my sparge.
Got more than you bargained for, but I see people struggle with the PID logic on this program, and I want to show that it’s really not necessary for herms setups. If you’re running biab, maybe the pid is needed, but in all reality a constantly recirculating mash with so much mass is served well with just the offset logic with zero offset.
hope this is helpful.