How it works

Roaster kind and control level

Each roaster's kind, outputs and control level, and the one gate in the server that every command passes.

Each roaster has a setup: what kind of roaster it is, what Roastwarden may send it, which outputs it has and the range of each, and a fan floor. A new roaster starts at control off: Roastwarden records it and sends it nothing, not even STOP, until you choose otherwise. Every command, whoever sends it (you on the Roast page, the roast sequence at CHARGE, an alarm action, Profile drive, fan assist, autotune, an agent, Artisan as a screen), passes one gate in the server that applies the setup. So a gas drum added for logging never gets a fluid bed's "fan 100 %, heater 60 %" at its first CHARGE.

Using it

  • Where: Roasters → the roaster → Control → Setup. Add roaster asks for the kind in its first step and the control level in its last.
  • Who: only the owner key changes it. An agent with an admin token may set up a roaster at control off; switching control on from a token waits for your approval.
  • Raising control asks once: "Roastwarden will send commands to …: the roast sequence at CHARGE, alarm actions, Profile drive. Check its own safety cutoffs first." Raise it only when the roaster has cutoffs of its own (connect your roaster), and run the write check once, cold (Roasters → the roaster → Check).
  • The simulated roaster virtual_roaster always has full control.

Kind

KindOutputsFan floorRoast sequence
Fluid bed, electricHeater, Fan, 0–100 %45 %CHARGE: fan 100 %, heater 60 %, Profile drive starts; DROP: fan 100 % until BT is 45 °C, then off
Drum, electricHeater, Fan, 0–100 %noneCHARGE and DROP only record
Drum, gasBurner, Air, 0–100 %noneCHARGE and DROP only record
Logger only (reads temperatures)nonenoneCHARGE and DROP only record
OtherHeater, Fan, 0–100 %noneCHARGE and DROP only record

A kind is a starting point, not a driver. Changing it sets the outputs, the fan floor, the roast sequence and fan assist to the new kind's defaults (it asks first); declared channels stay.

Control level

LevelRoastwarden sendsWhat works
Off · logs onlynothing at all, not even STOPrecording, the scope, RoR, events, alarms that notify, profiles as a background, history, guidance, reports, labels
Manualheater %, fan %, drum % and damper % when declared, heater on/off, STOPthe above, plus the sliders, STOP, alarm actions of those kinds, the roast sequence's fan and heater steps
Fulleverything: also setpoint, mode, PID gainseverything, plus Profile drive, the server's PID loop, autotune, the gain schedule, fan assist

With control off, the Roast page shows "Control is off for this roaster: Roastwarden only records it. Use the roaster's own controls." where the controls were, the header has no STOP, and Profile drive offers ghost only. A roaster whose own PID is in auto stays in auto when you lower it to manual: switch its mode to manual first.

Outputs and their limits

Outputs → Edit lists Heater, Fan, Drum and Damper, each with a Label, Min %, Max % and Step %, then Save outputs.

  • An output that is off is never sent and its slider is hidden; a command for it is refused ("… has no fan output").
  • A value outside the range is sent as the nearest end; with a step it is rounded to the step. 0 is always off, so a fan whose lowest speed is 30 % still switches off.
  • Drum and damper get sliders on the Roast page once declared. Profile drive, alarm actions and the roast sequence do not set them yet.

Fan floor

While the heater is on, the fan never goes below the floor (0: none). A fan set lower by hand while heating, or switched off, is raised to it; the roast sequence, fan assist, Profile drive and the autotune keep to it, and their fan settings must be at or above it. The heater counts as on when the roaster's latest reading says so (heater power on, or a heater % above 0), except for 5 s after Roastwarden sent heater off or STOP. A floor needs both a heater and a fan.

When the gate refuses

A command the setup does not allow is refused with a reason: "control is off for …: Roastwarden only records it (Roasters → … → Control)", "control is manual for …: setpoint needs full control", "… has no fan output". Features that run by themselves skip quietly instead: the roast sequence only records, fan assist stands down, an alarm still notifies.

From the command line, roast roaster show <roaster> prints the setup (kind, control, outputs, fan floor, channels) and roast roasters a control column. roast roaster control <roaster> off lowers control at once; manual or full asks the owner for approval.