Skip to content

Add GOPACS integration documentation - #14

Merged
MartinaeyNL merged 3 commits into
mainfrom
feature/gopacs-documentation
Mar 10, 2026
Merged

MartinaeyNL merged 3 commits into
mainfrom
feature/gopacs-documentation

Conversation

@Miggets7

@Miggets7 Miggets7 commented Mar 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a GOPACS.md file alongside the GOPACS source code with high-level documentation
  • Covers: what GOPACS is, user setup requirements, developer component overview, UFTP data flow, and testing references
  • Links to official GOPACS documentation rather than duplicating content

Resolves #10

@Miggets7
Miggets7 requested review from a team March 4, 2026 11:40
@wborn
wborn requested a review from Copilot March 5, 2026 11:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds high-level documentation for the EMS GOPACS integration, colocated with the GOPACS manager implementation, to address issue #10 and provide setup + developer orientation without duplicating upstream GOPACS docs.

Changes:

  • Introduces GOPACS.md describing GOPACS/UFTP context and linking to official GOPACS documentation.
  • Documents user setup requirements and OpenRemote manager configuration (env vars, asset setup).
  • Summarizes internal components, message/data flow, inbound endpoint, auth/signing, and testing references.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACS.md Outdated
Comment thread ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACS.md Outdated
@MartinaeyNL
MartinaeyNL requested review from MartinaeyNL and removed request for a team March 9, 2026 10:34

@MartinaeyNL MartinaeyNL left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are some of my findings of the GOPACS.md file you've created.
I don't have a lot of prior GOPACS knowledge, therefore I was able to assess "if people with less knowledge could understand this".

Please take a look at my comments, the ones from Copilot,
and I would recommend taking a second look yourself, to make sure everything is described correctly, and can be understood by people like me 👍

Comment thread ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACS.md Outdated
Comment thread ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACS.md Outdated
Comment thread ems/src/main/java/org/openremote/extension/ems/manager/gopacs/GOPACS.md Outdated
|<─── 3. FlexOffer ─────────────────────────-| Sent after flex offer delay
| | (mirrors request, price EUR 0.00)
| |
|──── 4. FlexOfferResponse ─────────────────>| DSO accepts or rejects the offer

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume it should be "We accept or reject the offer from the DSO" ?
Because, from my understanding, Step 3 sends an offer, and we can either reject/accept it by "responding" in Step 4.
Then in Step 5 we can "order" based on the offer that we agreed upon earlier.

And if I misunderstand this, then the docs are not clear enough 😂

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We send the offer, as AGR to the DSO. They accept/reject it by sending a FlexOfferResponse

@MartinaeyNL MartinaeyNL Mar 10, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We send the offer, as AGR to the DSO.

I have no clue what an AGR is. 😂

They accept/reject it by sending a FlexOfferResponse

Wait, then the direction of the arrows in the diagram don't make sense right?
(if they send a Response, instead of us responding)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it says it here:

OpenRemote acts as an AGR (Aggregator) in the UFTP protocol.

It starts with a FlexRequest from the DSO. We respond with a FlexRequestResponse
Then we send a FlexOffer to the DSO. They respond with a FlexOfferResponse
Then they send a FlexOrder and we respond back with a FlexOrderResponse

So I think the lines are correct. Maybe read it once again? #

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OOOHHH I've indeed read it the wrong way around.
I assumed that the left column was OpenRemote, and the right one the DSO.
Maybe because I tend to think from the perspective of the OpenRemote integration.

I think I understand it now.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was able to understand most of the documentation without much prior knowledge of GOPACS.
Although it might be worth taking a second look yourself @Miggets7 to make sure everything is described
correctly, and can be understood by people like me. 👍

@Miggets7
Miggets7 requested a review from MartinaeyNL March 10, 2026 10:06

@MartinaeyNL MartinaeyNL left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@MartinaeyNL
MartinaeyNL merged commit 9f501d4 into main Mar 10, 2026
1 check passed
@MartinaeyNL
MartinaeyNL deleted the feature/gopacs-documentation branch March 10, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create GOPACS documentation

3 participants