Anvende relevante elementer fra OS2sandbox/gps-connector #34

Closed
opened 2026-05-05 11:51:11 +00:00 by JakobNoerby · 5 comments
JakobNoerby commented 2026-05-05 11:51:11 +00:00 (Migrated from github.com)

Kilde: [PM5]

Ansvarlig: Projektgruppen / JN

Deadline: I det videre arbejde

Baggrund

Det blev besluttet, at OS2 AI Heat Control skal anvende relevante elementer fra OS2sandbox/gps-connector som inspiration og mulige byggeklodser. GPS-connector-projektet er en FIWARE-baseret stack med fokus på IoT-dataproducenter.

Opgave

Undersøg hvilke elementer fra OS2sandbox/gps-connector der kan genbruges eller inspirere arkitektur og datainfrastruktur i OS2 AI Heat Control.

Afklaringen bør som minimum omfatte:

  • Hvilke komponenter i gps-connector der er relevante
  • Om FIWARE-elementer kan anvendes i OS2 AI Heat Control
  • Om arkitekturprincipper kan genbruges
  • Om integrationsmønstre kan genbruges
  • Om projektets dokumentation, struktur eller kode kan anvendes som reference
  • Hvilke tilpasninger der i givet fald vil være nødvendige

Definition of Done

  • OS2sandbox/gps-connector er gennemgået
  • Relevante komponenter og principper er identificeret
  • Mulighed for genbrug er vurderet
  • Anbefaling er dokumenteret
  • Eventuelle konkrete genbrugs- eller arkitekturopgaver er oprettet som nye issues
**Kilde**: [[PM5]](https://github.com/OS2sandbox/ai-heatcontrol/blob/main/projektadministration/m%C3%B8der/pm5.md) **Ansvarlig**: Projektgruppen / JN **Deadline**: I det videre arbejde ### Baggrund Det blev besluttet, at OS2 AI Heat Control skal anvende relevante elementer fra OS2sandbox/gps-connector som inspiration og mulige byggeklodser. GPS-connector-projektet er en FIWARE-baseret stack med fokus på IoT-dataproducenter. ### Opgave Undersøg hvilke elementer fra OS2sandbox/gps-connector der kan genbruges eller inspirere arkitektur og datainfrastruktur i OS2 AI Heat Control. Afklaringen bør som minimum omfatte: - Hvilke komponenter i gps-connector der er relevante - Om FIWARE-elementer kan anvendes i OS2 AI Heat Control - Om arkitekturprincipper kan genbruges - Om integrationsmønstre kan genbruges - Om projektets dokumentation, struktur eller kode kan anvendes som reference - Hvilke tilpasninger der i givet fald vil være nødvendige ### Definition of Done - [ ] OS2sandbox/gps-connector er gennemgået - [ ] Relevante komponenter og principper er identificeret - [ ] Mulighed for genbrug er vurderet - [ ] Anbefaling er dokumenteret - [ ] Eventuelle konkrete genbrugs- eller arkitekturopgaver er oprettet som nye issues
JakobNoerby commented 2026-05-05 11:52:39 +00:00 (Migrated from github.com)

Se også Issue #9

Se også Issue #9
JakobNoerby commented 2026-05-06 07:05:01 +00:00 (Migrated from github.com)

@janhalen: Could we start looking at redefining GPS Connector to meet the requirements in OS2 AI Heat Control? I want a mermaid diagram I can use for market dialogue purposes. Mermaid diagram from GPS Connector:
flowchart TD
GPS-device([GPS Device])

subgraph k8s[Kubernetes Cluster]
LB[Load Balancer]
Mosquitto[MQTT Broker]
Bento[Bento]
Redis[(Redis)]
IoTAgent[IoT Agent JSON]
mongoDB[(MongoDB)]
OrionLD[Orion-LD]
QuantumLeap[QuantumLeap]
CrateDB[(CrateDB)]
KeyCloak[KeyCloak]
Traefik[Proxy / Gateway]
Frontend[Frontend]
APILayer[API Layer]
ColdStorage[(Cold Storage)]
CSE[Cold Storage Extractor]
end

FleetOptimiser([External consumer])
User([User])

GPS-device -->|Publish on own topic| LB
LB -->|Raw MQTT| Mosquitto
Bento -->|Subscribe raw| Mosquitto
Bento -->|Publish normalized data| Mosquitto
Bento -->|Lookup IMEI tenant| Redis
IoTAgent -->|Subscribe tenant/device| Mosquitto
IoTAgent --- mongoDB
IoTAgent -->|NGSI-LD| OrionLD
OrionLD -->|Device state persistence| mongoDB
QuantumLeap -->|Subscribe| OrionLD
QuantumLeap -->|SQL| CrateDB
CrateDB -->|data| QuantumLeap
mongoDB --> Redis

CrateDB -->|Pull non-active data| CSE
CSE -->|Store cold data| ColdStorage
APILayer -->|Fetch cold storage| ColdStorage

FleetOptimiser -->|Auth| KeyCloak:::green
KeyCloak -->|org-service-token| FleetOptimiser:::green
FleetOptimiser -->|With org-service-token| Traefik:::green
Traefik -->|Request| QuantumLeap:::green
QuantumLeap -->|Request tenant data| CrateDB:::green
QuantumLeap -->|Response| Traefik:::green
Traefik -->|Response| FleetOptimiser:::green

User -->|Authenticate| KeyCloak:::blue
KeyCloak -->|org-token| User:::blue
User --> Traefik:::blue
Traefik --> Frontend:::blue
Frontend -->|Register new device| Traefik:::blue
Traefik -->|Route| APILayer:::blue
APILayer -->|Cache| Redis:::blue
APILayer -->|Provision device| IoTAgent:::blue

APILayer -->|Create subscription| QuantumLeap:::red
APILayer -->|New tenant| IoTAgent:::red

Frontend -->|Request cold data| Traefik:::orange
Traefik -->|Route cold data req| APILayer:::orange
APILayer --> ColdStorage:::orange
ColdStorage -->|Serve cold data| APILayer:::orange

classDef green color:#2e7d32,stroke:#43a047,fill:#e8f5e9
classDef blue color:#1565c0,stroke:#1e88e5,fill:#e3f2fd
classDef red color:#b71c1c,stroke:#e53935,fill:#ffebee
classDef orange color:#e65100,stroke:#fb8c00,fill:#fff3e0

@janhalen: Could we start looking at redefining GPS Connector to meet the requirements in OS2 AI Heat Control? I want a mermaid diagram I can use for market dialogue purposes. Mermaid diagram from GPS Connector: flowchart TD GPS-device([GPS Device]) subgraph k8s[Kubernetes Cluster] LB[Load Balancer] Mosquitto[MQTT Broker] Bento[Bento] Redis[(Redis)] IoTAgent[IoT Agent JSON] mongoDB[(MongoDB)] OrionLD[Orion-LD] QuantumLeap[QuantumLeap] CrateDB[(CrateDB)] KeyCloak[KeyCloak] Traefik[Proxy / Gateway] Frontend[Frontend] APILayer[API Layer] ColdStorage[(Cold Storage)] CSE[Cold Storage Extractor] end FleetOptimiser([External consumer]) User([User]) GPS-device -->|Publish on own topic| LB LB -->|Raw MQTT| Mosquitto Bento -->|Subscribe raw| Mosquitto Bento -->|Publish normalized data| Mosquitto Bento -->|Lookup IMEI tenant| Redis IoTAgent -->|Subscribe tenant/device| Mosquitto IoTAgent --- mongoDB IoTAgent -->|NGSI-LD| OrionLD OrionLD -->|Device state persistence| mongoDB QuantumLeap -->|Subscribe| OrionLD QuantumLeap -->|SQL| CrateDB CrateDB -->|data| QuantumLeap mongoDB --> Redis CrateDB -->|Pull non-active data| CSE CSE -->|Store cold data| ColdStorage APILayer -->|Fetch cold storage| ColdStorage FleetOptimiser -->|Auth| KeyCloak:::green KeyCloak -->|org-service-token| FleetOptimiser:::green FleetOptimiser -->|With org-service-token| Traefik:::green Traefik -->|Request| QuantumLeap:::green QuantumLeap -->|Request tenant data| CrateDB:::green QuantumLeap -->|Response| Traefik:::green Traefik -->|Response| FleetOptimiser:::green User -->|Authenticate| KeyCloak:::blue KeyCloak -->|org-token| User:::blue User --> Traefik:::blue Traefik --> Frontend:::blue Frontend -->|Register new device| Traefik:::blue Traefik -->|Route| APILayer:::blue APILayer -->|Cache| Redis:::blue APILayer -->|Provision device| IoTAgent:::blue APILayer -->|Create subscription| QuantumLeap:::red APILayer -->|New tenant| IoTAgent:::red Frontend -->|Request cold data| Traefik:::orange Traefik -->|Route cold data req| APILayer:::orange APILayer --> ColdStorage:::orange ColdStorage -->|Serve cold data| APILayer:::orange classDef green color:#2e7d32,stroke:#43a047,fill:#e8f5e9 classDef blue color:#1565c0,stroke:#1e88e5,fill:#e3f2fd classDef red color:#b71c1c,stroke:#e53935,fill:#ffebee classDef orange color:#e65100,stroke:#fb8c00,fill:#fff3e0
janhalen commented 2026-05-07 06:07:37 +00:00 (Migrated from github.com)

Hey @JakobNoerby!

I will look into drafting a reference architecture for heatcontrol, starting with shared infrastructure..

The reference architecture will reuse some open-source components that are also used in the gps-connector project. This means both projects draw from the same shared building blocks in the Open Source ecosystem — rather than heatcontrol reusing components "from" gps-connector, we reuse the same external components together.

The benefit for us: we can learn from how gps-connector configured these components, and any solutions we figure out can flow both ways. No need to solve everything from scratch.

This is an iterative process, so once you get closer to capturing functional requirements from the end-user's view as user-stories I can adapt the architecture with reuse of relevant open-source components.


---
config:
  theme: neutral
---
flowchart RL
 subgraph subGraph0["OS2 Organisations"]
        n2["Shared<br>configuration<br>templates"]
  end
 subgraph subGraph1["FOSS Organisations"]
        n1["Shared<br>Open Source components"]
  end
    n1 --- D["heatctrl"]
    C["gpsconn"] --- n1 & n2
    n2 --- D

    n2@{ shape: docs}
    n1@{ shape: procs}
    D@{ shape: rounded}
    C@{ shape: rounded}

Hey @JakobNoerby! I will look into drafting a reference architecture for heatcontrol, starting with shared infrastructure.. The reference architecture will reuse some open-source components that are also used in the gps-connector project. This means both projects draw from the same shared building blocks in the Open Source ecosystem — rather than heatcontrol reusing components "from" gps-connector, we reuse the same external components together. The benefit for us: we can learn from how gps-connector configured these components, and any solutions we figure out can flow both ways. No need to solve everything from scratch. This is an iterative process, so once you get closer to capturing functional requirements from the end-user's view as user-stories I can adapt the architecture with reuse of relevant open-source components. ```mermaid --- config: theme: neutral --- flowchart RL subgraph subGraph0["OS2 Organisations"] n2["Shared<br>configuration<br>templates"] end subgraph subGraph1["FOSS Organisations"] n1["Shared<br>Open Source components"] end n1 --- D["heatctrl"] C["gpsconn"] --- n1 & n2 n2 --- D n2@{ shape: docs} n1@{ shape: procs} D@{ shape: rounded} C@{ shape: rounded} ```
janhalen commented 2026-05-20 17:05:01 +00:00 (Migrated from github.com)

@JakobNoerby: I have a first draft of a reference architecure ready here in the https://github.com/OS2sandbox/ai-heatcontrol/blob/34-reusable-architecture-proposal/docs/content/architecture.md 34-branch.

Its prepared to be rendered as a webpage and included in the docs site if you wish, for your market dialogue.

I can present it and we can discuss it when you have a timeslot, maybe allready next week?

If you accept it, Ill make a PR for you to accept and merge to the main docs site!

Lets meet and discuss, or take a quick video call...

@ChatBotBerg you can join too, to stay in the loop with the work!

@JakobNoerby: I have a first draft of a reference architecure ready here in the https://github.com/OS2sandbox/ai-heatcontrol/blob/34-reusable-architecture-proposal/docs/content/architecture.md 34-branch. Its prepared to be rendered as a webpage and included in the docs site if you wish, for your market dialogue. I can present it and we can discuss it when you have a timeslot, maybe allready next week? If you accept it, Ill make a PR for you to accept and merge to the main docs site! Lets meet and discuss, or take a quick video call... @ChatBotBerg you can join too, to stay in the loop with the work!
janhalen commented 2026-09-11 07:50:08 +00:00 (Migrated from github.com)

@JakobNoerby: A version targeted at dessicion makers with a technical understanding, architects and potential suppliers have been added to the presentation site at: https://os2sandbox.github.io/ai-heatcontrol/architecture/

For now its a "hidden" direct link with no links from the frontpage.

@JakobNoerby: A version targeted at dessicion makers with a technical understanding, architects and potential suppliers have been added to the presentation site at: https://os2sandbox.github.io/ai-heatcontrol/architecture/ For now its a "hidden" direct link with no links from the frontpage.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
OS2/ai-heatcontrol#34
No description provided.