feat(application): integrate measured-load ingestion training and planner source
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user