From 4bc6b76695a1b137caf54402312a7d108bf8b988 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 6 May 2026 14:04:32 +0200 Subject: [PATCH 1/4] Align README redispatch attribute table with new panel grouping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- ems/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ems/README.md b/ems/README.md index e810142..c6c8dd2 100644 --- a/ems/README.md +++ b/ems/README.md @@ -181,20 +181,20 @@ Every redispatch attribute on `EmsGOPACSAsset`. All status, bid-suggestion and h | Group | Attribute | Type | RO | Purpose | |---|---|---|---|---| | Configuration | `redispatchEnabled` | boolean | | Master switch — toggle off/on to (re)start the polling handler. | -| Status | `redispatchAnnouncementId` | text | ✓ | ID of the currently selected announcement, if any. | -| Status | `redispatchComplianceType` | text | ✓ | `MANDATORY` or `VOLUNTARY`. | -| Status | `redispatchAnnouncementMessage` | text (multiline) | ✓ | Free-text description from the DSO. | -| Status | `redispatchStartTime` | timestamp | ✓ | Start of the problem period. | -| Status | `redispatchEndTime` | timestamp | ✓ | End of the problem period. | -| Status | `redispatchBidValidityEnd` | timestamp | ✓ | Latest moment a bid can still be submitted for this announcement. | -| Status | `redispatchRequestedPower` | number (kW) | ✓ | Remaining problem profile, written as predicted data points (15-min ISP grid, 7-day retention). | -| Status | `redispatchEanEffectivity` | text | ✓ | Effectivity category in which the contracted EAN was matched (e.g. `THREE_PHASE_NETWORK_REDUCE`). | -| Status | `redispatchRequestAreaBuy` | text | ✓ | DSO-supplied area description for buy orders. | -| Status | `redispatchRequestAreaSell` | text | ✓ | DSO-supplied area description for sell orders. | -| Status | `redispatchLastPoll` | timestamp | ✓ | Timestamp of the last completed poll cycle (only updated when the API responded). | +| Announcement | `redispatchAnnouncementId` | text | ✓ | ID of the currently selected announcement, if any. | +| Announcement | `redispatchComplianceType` | text | ✓ | `MANDATORY` or `VOLUNTARY`. | +| Announcement | `redispatchAnnouncementMessage` | text (multiline) | ✓ | Free-text description from the DSO. | +| Announcement | `redispatchStartTime` | timestamp | ✓ | Start of the problem period. | +| Announcement | `redispatchEndTime` | timestamp | ✓ | End of the problem period. | +| Announcement | `redispatchBidValidityEnd` | timestamp | ✓ | Latest moment a bid can still be submitted for this announcement. | +| Announcement | `redispatchRequestedPower` | number (kW) | ✓ | Remaining problem profile, written as predicted data points (15-min ISP grid, 7-day retention). | +| Announcement | `redispatchEanEffectivity` | text | ✓ | Effectivity category in which the contracted EAN was matched (e.g. `THREE_PHASE_NETWORK_REDUCE`). | +| Announcement | `redispatchRequestAreaBuy` | text | ✓ | DSO-supplied area description for buy orders. | +| Announcement | `redispatchRequestAreaSell` | text | ✓ | DSO-supplied area description for sell orders. | +| Announcement | `redispatchLastPoll` | timestamp | ✓ | Timestamp of the last completed poll cycle (only updated when the API responded). | +| Bid | `redispatchBidPrice` | number (EUR/MWh) | | Operator-supplied bid price. | | Bid | `redispatchSuggestedPower` | number (kW) | ✓ | _Not yet populated — pending bid pricing strategy follow-up._ | | Bid | `redispatchSuggestedVolume` | number (kWh) | ✓ | _Not yet populated — pending bid pricing strategy follow-up._ | -| Bid | `redispatchBidPrice` | number (EUR/MWh) | | Operator-supplied bid price. | | Workflow | `redispatchConfirmBid` | boolean | | Operator toggles to `true` to confirm the active bid; handler resets it after processing. | | Workflow | `redispatchBidStatus` | text | ✓ | State machine — see below. | | History | `redispatchAnnouncementHistory` | JSON object | ✓ | One data point on first sight of each polled announcement, plus a richer entry (with effectivity details) when one is selected (90-day retention). | From 88f1a564929e40aec024af44a05ade3c54b75e64 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 6 May 2026 14:02:12 +0200 Subject: [PATCH 2/4] Reorganise EmsGOPACSAsset UI panels by flow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .../resources/ems/config/asset-types.json | 66 ++++++++++++++++--- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/ems/src/main/resources/ems/config/asset-types.json b/ems/src/main/resources/ems/config/asset-types.json index a8b8d69..9982519 100644 --- a/ems/src/main/resources/ems/config/asset-types.json +++ b/ems/src/main/resources/ems/config/asset-types.json @@ -144,14 +144,13 @@ }, "attributes": { "include": [ - "contractedEAN", - "redispatchEnabled" + "contractedEAN" ] } }, { "type": "info", - "title": "UFTP / Day-Ahead", + "title": "Intraday — Flex Request", "properties": { "include": [] }, @@ -159,7 +158,18 @@ "include": [ "currentPowerFlexRequest", "powerMaximumFlexRequest", - "powerMinimumFlexRequest", + "powerMinimumFlexRequest" + ] + } + }, + { + "type": "info", + "title": "Intraday — Flex Order", + "properties": { + "include": [] + }, + "attributes": { + "include": [ "powerLimitMaximumProfileFlexOrder", "powerLimitMinimumProfileFlexOrder" ] @@ -167,7 +177,19 @@ }, { "type": "info", - "title": "Redispatch Status", + "title": "Redispatch — Configuration", + "properties": { + "include": [] + }, + "attributes": { + "include": [ + "redispatchEnabled" + ] + } + }, + { + "type": "info", + "title": "Redispatch — Announcement", "properties": { "include": [] }, @@ -189,17 +211,41 @@ }, { "type": "info", - "title": "Redispatch Bid", + "title": "Redispatch — Bid", "properties": { "include": [] }, "attributes": { "include": [ - "redispatchSuggestedPower", - "redispatchSuggestedVolume", "redispatchBidPrice", - "redispatchBidStatus", - "redispatchConfirmBid" + "redispatchSuggestedPower", + "redispatchSuggestedVolume" + ] + } + }, + { + "type": "info", + "title": "Redispatch — Workflow", + "properties": { + "include": [] + }, + "attributes": { + "include": [ + "redispatchConfirmBid", + "redispatchBidStatus" + ] + } + }, + { + "type": "info", + "title": "Redispatch — History", + "properties": { + "include": [] + }, + "attributes": { + "include": [ + "redispatchAnnouncementHistory", + "redispatchBidHistory" ] } }, From 8c0b899f95db3498c135f9a0f995c83797e5d4cf Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 6 May 2026 14:49:18 +0200 Subject: [PATCH 3/4] 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. --- .../resources/ems/config/asset-types.json | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/ems/src/main/resources/ems/config/asset-types.json b/ems/src/main/resources/ems/config/asset-types.json index 9982519..c21ac28 100644 --- a/ems/src/main/resources/ems/config/asset-types.json +++ b/ems/src/main/resources/ems/config/asset-types.json @@ -136,6 +136,36 @@ "EmsGOPACSAsset": { "viewerStyles": {}, "panels": [ + { + "type": "info", + "hideOnMobile": true, + "properties": { + "include": [] + }, + "attributes": { + "include": [ + "notes" + ] + } + }, + { + "type": "info", + "column": 1, + "title": "location", + "properties": { + "include": [] + }, + "attributes": { + "include": [ + "location" + ], + "itemConfig": { + "location": { + "label": "" + } + } + } + }, { "type": "info", "title": "Configuration", @@ -252,6 +282,10 @@ { "type": "history", "column": 1 + }, + { + "type": "linkedUsers", + "column": 1 } ] } From d6b6a4a1d7598d935ab8c5892dda5aeb7625390e Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 6 May 2026 15:14:28 +0200 Subject: [PATCH 4/4] Moved some redispatched panels to column 1 --- ems/src/main/resources/ems/config/asset-types.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ems/src/main/resources/ems/config/asset-types.json b/ems/src/main/resources/ems/config/asset-types.json index c21ac28..c1f026f 100644 --- a/ems/src/main/resources/ems/config/asset-types.json +++ b/ems/src/main/resources/ems/config/asset-types.json @@ -207,6 +207,7 @@ }, { "type": "info", + "column" : 1, "title": "Redispatch — Configuration", "properties": { "include": [] @@ -219,6 +220,7 @@ }, { "type": "info", + "column" : 1, "title": "Redispatch — Announcement", "properties": { "include": []