5.2 KiB
V4 Unified RC1 - actual scope and release boundary
This release consolidates application data recovery, native delivery status, economic family comparison, and optional verified archival. It is NOT a production actuation release. No claim that all original product requirements or hardware acceptance are complete. Sources are in the existing develop branch, not feature branches.
Delivered code
- Audited recovery for the exact 100.0/100 splitToleranceW serialization defect. The internal operator endpoint validates the two complete JSON representations, their exact SHA256, installation, inventory, and every field. Only that numeric representation may differ. Device-supplied arbitrary aliases are never accepted. Existing rows/measurements are not rewritten. The original received mapping and proof reference are recorded with the observation. A mixed 45/75 block and retries are regression tested. Adoption requires an explicit deployment flag.
- Native normalization prevents recurrence. The sender preserves a separate last successful receipt even during scheduled/backoff states, reports safe numeric HTTP status (no response or credential text), and continues trying to deliver a durable prefix if the current capture cannot be appended. No cursor reset or skipped block.
- Economic comparison is actually connected, not an empty score list. At the start of a local calendar day the worker freezes comparable plans for families 3/13/23 with the then-known forecasts, prices and common battery/limit state. Completed days are evaluated against subsequently acquired physical residual data. Initial energy, losses, common terminal energy valuation and 15-minute demand charge are included; monthly maxima are charged once over a comparison period, not per day. GUI lookback/minimum days/coverage/switch margin are applied by the selector.
- v1 economic scope: one grid-charge-enabled battery, frozen day-ahead plans, with local grid-target tracking simulated during the day. It is NOT a full receding- horizon replay. Historical external SDL uses the then-recorded SDL request and is clearly marked as an estimate, not independently measured delivery. Missing actuals, unmatched contexts and breaches cannot become zero cost or a successful comparison. Broader device topologies stay collecting; no fake equivalence.
- Lossless archive implementation and tests are present for acknowledged old native outbox days and old server observations/plans. Archives are verified before plain rows/files are retired. Active plans, acknowledged plans and unacknowledged data are excluded. Archiving is OFF by default; enable only with an explicit storage policy (native NetzfahrplanV4ArchivAktiv; server NETPLAN_V4_ARCHIVE_ENABLED=1). Compressed archives are retained: this is not an external backup or infinite disk.
Deployment is not data/model/actuator acceptance
Server entry: commissioning/deploy_unified_release.py. Default checks sources only. --apply builds and tests a separate candidate context with no network/production mounts before replacing the V4 service. It preserves the running plant allowlist, backs up SQLite consistently, and uses a pinned built image. Only the V4 planner JS asset is updated; unrelated GUI work, portal runtime, tariffs, forecasting, Symcon and actuators are untouched. Rollback restores previous source/image; additive audit rows remain. Database schema changes do not overwrite old observations.
--approve-numeric-mapping-compatibility explicitly authorizes the demonstrated pair of equivalent configuration representations. Without it, strict original validation remains and backlog containing the legacy serialization is still rejected.
Lihrenmoos native stage: /srv/agent/netplan-v4-unified-release/install.php. This patches three data-only libraries, reloads the existing library, compares all pre-existing properties and lets the existing data timer resume. No raw replay, force-skip or actuator callback from the installer. Archiving stays disabled by default.
Remaining product work - do not label as complete
- The full production dispatcher is not installed. Earlier controlled-trial code still has bounded pilot grants; continuous production authority and complete corrected physical/virtual feedback integration are NOT delivered by this RC.
- The actual host/container/kernel and field acceptance of this release are not replaced by CLI mocks. Real source validity and independent command-loss behavior are not asserted by a measurement algebra or an override.
- The replay limitation above must be accepted as a beta feature, or extended to continuous rolling reoptimization and additional asset types before advertising the original full automatic-selection requirement.
- Native multi-plant commissioning, external backups, retained archive lifecycle, model quality on field data and publication authentication remain operational release criteria. The tests do not demonstrate actual cost savings.
Do not re-run obsolete piecemeal installers after this release, bypass their source checks, turn the previous grid schedule on, or turn 'productionReady' true manually. The retained EV capacity is 161.44 kWh / 39 kW; SDL reserve is already outside EV.