I have a problem happening similar to the OP. But I updated the firmware, software, and RPi firmware 24 hours ago, which seems to have caused the problem rather than fixed it (the system behaved as expected prior to updating), I have not changed any actuators, sensors, relays, etc. But now I have long periods of idle instead of actuator activity.
Shown is a screenshot my device info. Notice that LCD output says “Idling for 2h41m38”, but the heater should be on because the target beer temp is about 4 degrees higher than current temp. Notice how Device 4 has a value of “100” which I take to mean max PWM power. In other words the heater seems to be on but BrewPi doesn’t record this fact in LCD output or actuator log.
In the Advanced Settings the values are all default, so the Dead Time = 1800. But I notice in the Control Algorithm output this value says 1800000. I take it this is in milliseconds.
Below is my Control Algorithm output:
{
"kind": "Control",
"pids": [
{
"kind": "Pid",
"name": "heater1",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"value": 23.1719
},
"inputSensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 18,
"connected": false,
"address": "28A6A273060000B1",
"calibrationOffset": 0
}
},
"inputError": -5.1289,
"Kp": 10,
"Ti": 600,
"Td": 60,
"p": 51.2891,
"i": 76.6563,
"d": 0.0391,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 100,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
},
{
"kind": "Pid",
"name": "heater2",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"value": null
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer2",
"sensor": {
"kind": "OneWireTempSensor",
"value": 19.625,
"connected": false,
"address": "28B3FC3507000074",
"calibrationOffset": 0
}
},
"inputError": 0,
"Kp": 10,
"Ti": 600,
"Td": 60,
"p": 0,
"i": 0,
"d": 0,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
},
{
"kind": "Pid",
"name": "cooler",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"value": 23.1719
},
"inputSensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 18,
"connected": false,
"address": "28A6A273060000B1",
"calibrationOffset": 0
}
},
"inputError": -5.1289,
"Kp": 10,
"Ti": 1800,
"Td": 200,
"p": 51.2891,
"i": 0,
"d": 0.0781,
"actuatorIsNegative": true,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 1200,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorTimeLimited",
"minOnTime": 120,
"minOffTime": 180,
"maxOnTime": 65535,
"active": false,
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
}
},
{
"kind": "Pid",
"name": "beer2fridge",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"value": 18.8906
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 16.75,
"connected": false,
"address": "28D8C67306000034",
"calibrationOffset": 0
}
},
"inputError": -2.1406,
"Kp": 2,
"Ti": 7200,
"Td": 1200,
"p": 4.2813,
"i": 0,
"d": 0,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorSetPoint",
"targetSetPoint": {
"kind": "SetPointSimple",
"value": 23.1719
},
"targetSensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 18,
"connected": false,
"address": "28A6A273060000B1",
"calibrationOffset": 0
}
},
"referenceSetPoint": {
"kind": "SetPointSimple",
"value": 18.8906
},
"output": 4.2813,
"achieved": -0.8906,
"minimum": -10,
"maximum": 10
}
}
],
"sensors": [
{
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "OneWireTempSensor",
"value": 18,
"connected": false,
"address": "28A6A273060000B1",
"calibrationOffset": 0
}
},
{
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 16.75,
"connected": false,
"address": "28D8C67306000034",
"calibrationOffset": 0
}
},
{
"kind": "TempSensor",
"name": "beer2",
"sensor": {
"kind": "OneWireTempSensor",
"value": 19.625,
"connected": false,
"address": "28B3FC3507000074",
"calibrationOffset": 0
}
}
],
"actuators": [
{
"kind": "ActuatorPwm",
"value": 0,
"period": 1200,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorTimeLimited",
"minOnTime": 120,
"minOffTime": 180,
"maxOnTime": 65535,
"active": false,
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
},
{
"kind": "ActuatorPwm",
"value": 100,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
},
{
"kind": "ActuatorPwm",
"value": 0,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"lastActiveTime": 32760999
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
],
"setpoints": [
{
"kind": "SetPointNamed",
"name": "beer1set",
"setPoint": {
"kind": "SetPointSimple",
"value": 18.8906
}
},
{
"kind": "SetPointNamed",
"name": "beer2set",
"setPoint": {
"kind": "SetPointSimple",
"value": null
}
},
{
"kind": "SetPointNamed",
"name": "fridgeset",
"setPoint": {
"kind": "SetPointSimple",
"value": 23.1719
}
}
]
}