Releases ·
Roastwarden 0.19.0
For anyone coming from Artisan: keep Artisan as the screen while rustRoast runs the roaster. The server's Modbus slave serves the roaster to Artisan, and the server writes the Artisan setup file that reads it, checked against Artisan 4.2.0 itself. The slave is now read-only unless writes are switched on, and its writes go through the roaster's control gate and the audit log.
Added
- Artisan as a screen (Next 66, Artisan as a screen): an Artisan user keeps Artisan
while rustRoast runs the roaster. The server's Modbus slave (
RUSTROAST_MODBUS_ADDR) serves the roaster's BT, ET, heater and fan, and writes the Artisan setup that reads them (Settings → About → Artisan screen,roast artisan-screen --aset FILE, orartisan/rustRoast.asetin the compose bundle): Help → Load Settings in Artisan, then ON. Checked against Artisan 4.2.0 itself, headless (scripts/dev/artisan-screen-check.sh), in °C and °F. Read-only unlessRUSTROAST_MODBUS_WRITES=on; then Artisan's Air and Burner sliders go through the roaster's control gate like any command. The compose file has the lines, commented out. roast artisan-screenandroast statussay whether the slave is on, the roaster it serves and when Artisan last read;GET /api/abouthas it asartisan_screen.- Hermes eval task 45: an Artisan user asks for the file to load, read-only.
Changed
- The Modbus slave serves the one real roaster heard when
RUSTROAST_MODBUS_DEVICE_IDis unset (it namedesp32-001, which no roaster is), never a virtual one; with none or several it serves nothing and says why. A read while the roaster is silent is refused (exception 0x0B) so Artisan draws a gap, not 0 °C; the holding registers read back the roaster's own values.
Security
- The Modbus slave took writes from anyone who reached its port and sent them to the roaster
with no record. Writes are now off unless switched on, go through the roaster's control gate
when on, and every one, refused or not, is in the audit log (actor
modbus).