81 lines
5.1 KiB
Markdown
81 lines
5.1 KiB
Markdown
# Integrated application data/model path - 2026-10-02
|
|
|
|
User request: finish application implementation, stop asking for repeated hardware
|
|
confirmations and adding standalone diagnostic samplers. No actuator permission is
|
|
implied by that development request. Confirmed EV allocation remains 161.44 kWh /
|
|
39 kW each direction, with SDL reserve already excluded.
|
|
|
|
## Implemented in the existing application
|
|
|
|
- Native ManagerNetzfahrplanV4DatenTrait: 30-second acquisition of configured numeric
|
|
sources; durable private app-owned outbox; original timestamps, no new Modbus
|
|
polls; acknowledged per-plant batches with retries/backoff. Cursor advances only
|
|
after exact dataset/acceptedThrough acknowledgement. Batches bounded below the
|
|
existing portal's 1 MiB body limit. No credentials in data payload or reports.
|
|
- Existing device proxy now forwards /planner-v4/measurements through the existing
|
|
authentication, plant binding, licence check and separate V4 rate limiter.
|
|
Device route cannot modify the dataset mapping or issue a trial grant.
|
|
- Existing V4 database stores immutable versioned source mappings and observations.
|
|
Same-time conflicts reject the whole batch; repeated identical data is idempotent.
|
|
No writes to portal/users/legacy measurement databases.
|
|
- Existing V4 worker aggregates physical load using original source times. Virtual
|
|
EV/SDL filter outputs are not load inputs. Solar terminal variant counts signed
|
|
terminal power once. Small unobserved parts remain quantified, never zero-filled.
|
|
This configured formula remains an estimate, not independent AC/DC certification.
|
|
- Application profile training actually runs daily/weekly. Models are immutable,
|
|
bootstrap/holdout status explicit. Incumbent replacement requires a causal
|
|
holdout when available. Existing data and model versions are not relabelled.
|
|
- Three corrected load variants (daily robust profile, last-day profile,
|
|
weekday/weekend profile) are paired with the existing PV families 3/13/23.
|
|
They are tagged physical-profile-v1; they are NOT claimed to be the old trained
|
|
load algorithms under a new data name. Automatic future family registry work
|
|
and economic replay are still distinct from this load-profile implementation.
|
|
- Selecting corrected_profile in the existing GUI/setting now actually changes
|
|
the load entering the existing optimizer. Missing trained data cannot silently
|
|
fall back to the contaminated legacy household series.
|
|
- A current SDL request is an explicitly labelled PERSISTENCE SCENARIO for the
|
|
shadow economic calculation, not a published future schedule. Missing/stale SDL
|
|
is not zero. This is not a robust/full SDL production-dispatch policy.
|
|
- GUI now exposes dataset/source selection, records, usable equivalent hours,
|
|
model version, validation and real training cadence. Existing normal portal
|
|
app.js/index files are not changed.
|
|
|
|
## Deployment package
|
|
|
|
Server: commissioning/deploy_application.py --plant <approved UUID> --apply
|
|
Rebuild/test V4 with Python 3.11, portal routing tests, consistent SQLite backup,
|
|
replace ONLY V4 and portal, configure the new per-plant dataset. No automatic
|
|
forecast-source switch and no control grant. Atomic file-bind replacement requires
|
|
portal recreation, not a simple restart. Additive DB rollback retains new data.
|
|
Default invocation without --apply validates source manifests only.
|
|
|
|
Test host: /srv/agent/netplan-v4-application-build/install.php inside Symcon.
|
|
Installs a DATA-ONLY patch of the currently installed passive manager (not the
|
|
unreleased controller-trial candidate), reloads EMS, configures acquisition and
|
|
imports up to 48h of the existing 23-source observer as a delivery backlog.
|
|
Original observer and old raw journals remain intact. Existing separate observers
|
|
are NOT automatically stopped by this initial installer; consolidation should
|
|
follow confirmed native batch acceptance. No new root diagnostic category.
|
|
An asynchronous module registration may require one repeat, handled explicitly.
|
|
|
|
Dataset lihrenmoos-physical-v1: minimum coverage 95%, longest unsupported portion
|
|
10s, at least 24 equivalent usable hours, 28-day profile history. The 95% rule is
|
|
an explicit modelling policy, not a statement that missing energy was measured.
|
|
Insufficient data remains collecting; no promised time to good forecasts.
|
|
All original acquisition thresholds remain unchanged.
|
|
|
|
## Tests and honest limits
|
|
|
|
Host tests use existing isolated QA dependencies; native tests mock IPS/HTTP and
|
|
use temporary files. Real container and kernel tests occur on the user-run deploy
|
|
commands, not during preparation. No services/modules/settings/devices were modified
|
|
by this development session.
|
|
|
|
Still NOT a complete production commissioning: the corrected profile-to-local
|
|
feedback/dispatch integration, full automatic cost replay, independent long-term
|
|
outbox/server retention and staged live/failure acceptance remain open. The trial
|
|
code from previous commits remains gated and is not included in the data-only
|
|
native installation. No accountingEvidenceId/device watchdog proof is fabricated.
|
|
This release is an integrated application build, NOT a claim that the full original
|
|
multi-plant production scope is done. No main/beta release is authorized by tests alone.
|