Document GOPACS Redispatch attributes, state machine, and runtime behavior - #35
Open
Miggets7 wants to merge 9 commits into
Open
Document GOPACS Redispatch attributes, state machine, and runtime behavior#35Miggets7 wants to merge 9 commits into
Miggets7 wants to merge 9 commits into
Conversation
…ion rules Fills the gaps between the redispatch implementation and ems/README.md: - Adds a Mermaid sequence diagram mirroring the UFTP one - Adds a 'Selection rules' note (MANDATORY preferred over VOLUNTARY) - Adds an 'Asset attributes' table covering all 19 redispatch attributes - Enumerates redispatchBidStatus values (NONE, PENDING_CONFIRMATION, CONFIRMED) - Adds a 'Resilience and polling' subsection covering the polling floor, fetch-failure semantics, mandatory API key, and handler-restart triggers - Clarifies that announcement history records every polled announcement (audit trail) and notes the 10k LRU bound - Cross-links the prerequisites back to the UFTP Getting Started section
- Clarify that redispatchAnnouncementHistory records announcements twice for selections (first-sight without effectivity, then a richer entry when selected) so the audit trail does not look duplicated to operators. - Note that the >=5 min poll floor clamps the configured interval, not a runtime backoff. - Spell out that persistent non-200 responses (e.g. 401 from a bad API key) keep stale announcements visible indefinitely; point to the log strings to grep for. - Add an example category for redispatchEanEffectivity and tighten the redispatchLastPoll description to "completed poll where the API responded". - Note that the diagram's selection-side actions only fire on a new selection, not every iteration.
Member
|
Adding this to the internal sprint board |
There was a problem hiding this comment.
Pull request overview
Documentation update to the EMS GOPACS README to fully describe the Redispatch (intraday congestion management) feature, aligning its detail level with the existing UFTP documentation and making runtime behavior and asset attributes explicit for operators and developers.
Changes:
- Added Redispatch prerequisites cross-linking back to UFTP “Getting Started” and documented the required Redispatch API key/env vars.
- Added a Redispatch sequence diagram plus explicit selection rules and bid-status state machine descriptions.
- Documented all Redispatch-related
EmsGOPACSAssetattributes (grouped table) and clarified resilience/polling and history semantics.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address Copilot review feedback on the redispatch documentation: - Resilience note now describes all three HTTP-200 conditions that clear the active announcement (empty response, no open CONGESTIONMANAGEMENT announcements, or contracted EAN absent from effectivity categories), instead of only the empty-response case. Clarifies that only a failed fetch preserves prior state. - Replace inaccurate "LRU-evicted" wording with insertion-order/FIFO in both the README and the recordedAnnouncementIds code comment; the set uses a LinkedHashMap with accessOrder=false. - Align the sequence diagram announcement state label with the actual ANNOUNCEMENT_OPEN constant used by the handler and prose.
Member
|
@igorrutka to approve |
* Align README redispatch attribute table with new panel grouping Renames the "Status" group to "Announcement" so it matches the new "Redispatch — Announcement" panel title in asset-types.json, and reorders the Bid rows so the operator-editable redispatchBidPrice is listed before the read-only suggestion rows, mirroring the in-UI panel order. * Reorganise EmsGOPACSAsset UI panels by flow Splits the single "Configuration" panel so contractedEAN (shared) and redispatchEnabled (redispatch-only) live in their own groups, relabels the UFTP panel to reflect intraday flex traffic and splits it into Flex Request / Flex Order, separates Redispatch Bid (price and suggestions) from Workflow (confirm + status state machine), and surfaces redispatchAnnouncementHistory / redispatchBidHistory as an explicit "Redispatch — History" panel. Operator-editable attributes are placed first within their panel. Closes openremote/denhaag#162. * Add notes and column-1 sidebar panels to EmsGOPACSAsset Mirrors the EmsEnergyOptimisationAsset layout: a hideOnMobile notes panel at the top of the main column, and the standard sidebar trio (location, history, linkedUsers) in column 1, so the GOPACS asset page picks up free-text notes plus the platform's location, history-timeline and access-management widgets. * Moved some redispatched panels to column 1
Contributor
Author
|
@igorrutka can you please checkout this PR? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Documentation-only changes to
ems/README.mdfilling gaps in the Redispatch (Intraday Congestion Management) section. Before this PR, 14 of the 19 redispatch attributes onEmsGOPACSAssetwere undocumented and several non-obvious runtime behaviors (state machine, MANDATORY-vs-VOLUNTARY selection, transient-failure handling, mandatory API key, polling floor) were not surfaced. The Redispatch section now matches the level of detail already established by the UFTP section above it.What was added
CONGESTIONMANAGEMENT/ANNOUNCEMENT_OPENannouncements where the contracted EAN appears in some EAN-effectivity category, then prefersMANDATORYoverVOLUNTARY.EmsGOPACSAsset, its type, whether it is read-only, and a one-line purpose.redispatchSuggestedPowerandredispatchSuggestedVolumeare explicitly marked as not yet populated (pending bid pricing strategy follow-up).redispatchBidStatusvalues:NONE,PENDING_CONFIRMATION,CONFIRMED.GOPACS_REDISPATCH_API_KEY(logsSEVERE), togglingredispatchEnabledor changingcontractedEANrestarts the handler. Persistent non-200s (e.g. 401 from a bad API key) keep stale announcements visible — operator log strings are documented.Verification
Documentation only — no executable verification. Each claim was cross-checked against:
ems/src/main/java/org/openremote/extension/ems/agent/EmsGOPACSAsset.java(attribute definitions)ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACSRedispatchHandler.java(state machine constants, selection logic, failure handling, polling floor, API-key gate, history recording)ems/src/main/java/org/openremote/extension/ems/manager/EmsOptimisationService.java(lifecycle behaviors triggered by attribute changes)Checklist