Gateway config file outside the jar (D3) with fail-fast validation, Main/Gateway assembly of all devices, writer, poller, watchdog (30 min) and HTTP, end-to-end test against MockModbusServer and a stub Influx, baseline removed with modbus4j/influxdb-java/guava/lombok (D2, D4, D5, D8), unit passes the config path with RestartSec=60. KEEP OPEN until the Pi has gateway.json and the new unit: merging changes what master deploys. 🤖 Generated with Claude Code
Gateway config file outside the jar (D3) with fail-fast validation, Main/Gateway assembly of all devices, writer, poller, watchdog (30 min) and HTTP, end-to-end test against MockModbusServer and a stub Influx, baseline removed with modbus4j/influxdb-java/guava/lombok (D2, D4, D5, D8), unit passes the config path with RestartSec=60. KEEP OPEN until the Pi has gateway.json and the new unit: merging changes what master deploys. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The baseline packaged its config in the jar (D3). The gateway reads JSON from a path given on the command line; disabled devices are not validated, and the minimum pause of Modbus links is required.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Gateway builds every part from the config and closes them in reverse, flushing the spool once more after the pollers stop. It refuses to start with no device or with a critical device that is not enabled.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Asserts the POMPA point keeps exactly the 8 legacy field names with their values, heat_pump is written, and /health and /snapshot answer. MockModbusServer becomes public to be used from another package.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The gateway replaces it: its own Modbus core drops modbus4j, the JDK-based writer drops influxdb-java and guava, lombok was only used by the baseline. Fixes D4 and D5; the logging and the one-point-per-poll writer fix D2 and D8. The jar keeps its name and now starts home.gateway.Main.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A watchdog exit must not hammer the controller, which takes one client at a time. README describes the config file.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The review found that draining a large spool rewrites a lot on the Pi's
SD card; 20 MB still holds days of readings during an outage.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The block count changed when 4011 was added; comparing with
PRODUCTION_BLOCKS keeps the test about the default, not a number.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Gateway config file outside the jar (D3) with fail-fast validation, Main/Gateway assembly of all devices, writer, poller, watchdog (30 min) and HTTP, end-to-end test against MockModbusServer and a stub Influx, baseline removed with modbus4j/influxdb-java/guava/lombok (D2, D4, D5, D8), unit passes the config path with RestartSec=60. KEEP OPEN until the Pi has gateway.json and the new unit: merging changes what master deploys. 🤖 Generated with Claude Code
Pull request closed