Releases ·

Roastwarden 0.18.0

For anyone who builds their own roaster: one guide to what rustRoast expects of a roaster and how to pick a transport, with four small working example roasters (an ESP32 on MQTT, a Modbus TCP register layout, the TC4 serial lines, a WebSocket server), each tested end to end. Adding a roaster that was already streaming now works from the command line, and a register of your own can have a scale.

Added

  • Connect your roaster (Next 75, Connect your roaster): for anyone who programs their own roaster, what rustRoast expects on one page (readings, rates and units, the commands each control level sends, emergency stop, the roaster's own safety, what the check reads), how to pick a transport, and four small working example roasters in examples/roasters/: an ESP32 on MQTT with rustRoast's own names (nothing to map), a Modbus TCP register layout (roles and a scale; Artisan reads it too), the TC4 serial lines as stock aArtisan answers them, and a WebSocket server with its own JSON (a mapping and command templates). Each sketch compiles for an ESP32 (scripts/dev/examples-build.sh), each roaster.json is tested end to end (the check ok at control off, then heater, fan and emergency stop in the device's own syntax), and tools/mock-device/example_roaster.py runs each without its hardware. Add roaster's Connection step links the guide.
  • The register map editor has a Scale column (0.1 for a temperature in tenths), and roast roaster map --register takes one on the type (holding:0:int16*0.1:bt): a builder's own int16 × 10 registers could not be entered before.
  • Hermes eval task 44: a home-built ESP32 already streaming on MQTT, set up as a logger and checked.

Fixed

  • roast roaster add on a roaster the server had already found streaming (MQTT auto-discovery) failed with a 500: it now sets that roaster up in place, changing the connection it was heard on, and refuses one that was added already (CONFLICT). POST /api/devices with an id that exists answers 409 saying so, instead of a 500.
  • hardware-integration-guide.md: the field reference no longer calls the setpoint, mode and heater enable required, and its Modbus slave example read the request at the wrong offsets.