Heater not being activated?

Hi, I have a spark 2 which I have recently started using again after installing brewblox, just a simple fermentation fridge setup, 2 one wires, 1 for fridge and 1 in my fermentation vessel. Which, when both sensors were connected, seemed to be working perfectly in my brew last week, maintaining 0.1/0.2 from target temp.

Should I be able to use the setup created by the fermentation fridge wizard (inc. beer sensor) to just set a fridge temperature when the beer onewire is unplugged? I’m trying to do that, to cold crash something, but it never seems to turn the heater on, and its staying over 1 degree out, setpoint at 1.5c and its hovering around -0.2- 0.5 gradually climbing occasionally.

The spark screenshot attached is with the target set to 5c, just to see if i could force the heater on. Ive replaced the SSR for the heater this morning, thinking that had died, but its still the same. With the Heat PID figures on the picture, should the heater have been on? (Ill be honest, im not really sure how to read those!)

Do i need to have the fermentation fridge WIITHOUT beer sensor wizard for this to work?



Can you share your pid settings and the internal graph of both PIDs? Choose the time period to have just a few cycles.

Hi Elco, I just found another post where Bob asked for actual state vs desired state from the Heat Actuator graph, mine is showing it switching to a desired state of 1 at regular intervals but actual state staying at zero, which, according to his post suggests a config issue?

Thanks for help,


Attached the settings and graphs, not sure if the timescale is OK or not…

In addition, I tried a reboot of the service and controller, and immediately I did that i can see the heater turned on, as show by the Heat PWM graph below, but then ,as you can see, it should be on later but isn’t?


For the PID displays:
Desired temp *C | Actual temp *C
Desired output % | Actual output %

If it’s set to fridge mode, it’ll ignore the beer sensor.

At a guess, this surprising behavior is caused by constraints.

  • To prevent damage to the compressor, the cool actuator has a Minimum Off Time and a Minimum ON Time constraint.
  • To prevent jo-jo’ing between heating and cooling, there is a Mutex (mutually exclusive) + lock out constraint set on the heat and cool actuators. When one turns on, the other one can’t turn on for X time after the first turned off.

This means that if you update the setpoint halfway through a cycle, it will take a while for the system to respond. Constraint lockouts are reset on reboot, which explains why it immediately started heating after you rebooted the controller.

If you go to the Spark service page, and bring up the heat and cool Digital Actuator blocks, they will show their currently limiting constraints.

Try setting Td to zero for both.
I think the system responds too quickly for the high value of Td.

The heater not turning on during a cold crash is desired behaviour. It should not start heating, it should cool less. So the mutex blocks the heater for a while after the cooler has run. Without this, you would keep alternating between heating and cooling, wasting energy.

Thanks, I’ll try that, will Td of zero also be OK when im using the Beer temp as a control point during fermenting?.

I was only a bit concerned as it was dropping 1-1.5c below the target point, to -0.5c at times.


Probably, yes.
With the temp control assistant widget, you can quickly switch between different PID settings for fridge control and beer control.