> For the complete documentation index, see [llms.txt](https://docs.myrspoven.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.myrspoven.com/myrspoven-docs/myrspoven-docs-sv/integrations/overview/bms-integrations/siemens.md).

# Siemens

Siemens-integrationen omfattar två plattformar. **Siemens Building X (BPCloud)** är molnplattformen och den rekommenderade vägen för nya anläggningar — detaljeras nedan. **Siemens Desigo CC** är den äldre lokala plattformen, som fortfarande stöds men kräver manuell konfiguration av virtuella signaler i BMS; sammanfattas i slutet. De två vägarna delar inga förutsättningar.

## Siemens Building X (BPCloud)

### Vad integrationen gör

myCoreAI ansluter till en Building X-tenant via dess publika JSON:API för att upptäcka utrustning och punkter, läsa aktuella och historiska värden samt skriva numeriska börvärden där det är tillåtet. Vid upptäckt mappas Building X-utrustning, enheter och punkter automatiskt till Myrspovens system, komponenter och signaler.

* **API-typ:** JSON:API över HTTPS
* **Auth:** OAuth2-klientuppgifter
* **Bas-URL:** `https://api.bpcloud.siemens.com/`

### Nödvändiga inloggningsuppgifter

Per byggnad:

| Fält                          | Beskrivning                                                                    |
| ----------------------------- | ------------------------------------------------------------------------------ |
| `ClientId`                    | OAuth2-klient-ID för tjänstekontot                                             |
| `ClientSecret`                | OAuth2-klienthemlighet (hantera som en inloggningsuppgift)                     |
| `SiemensBuildingXPartitionId` | UUID för Building X-partitionen — tenantspecifik omfattning för alla API-anrop |
| `ExternalBuildingId`          | Byggnadens plats-GUID i Building X-struktur-API:t                              |

{% hint style="warning" %}
**Säkerhet.** `ClientSecret` delas endast via en överenskommen säker kanal (delning via lösenordshanterare eller krypterad överlämning). Om den exponeras i chatt, e-post eller ett ärende roteras hemligheten i Building X / Auth0 och delas igen.
{% endhint %}

### Nödvändiga API-behörigheter

* **Struktur-API (läs):** `utrustning`, `utrustningstyper`, `platser`, `punktgrupper`, `punktgrupper/{id}/punkter`
* **Operations-API (läs):** `enheter`, `enheter/{id}/punkter`, `punkter/{id}`, `punktvärdesresurs` (aktuella och historiska värden)
* **Operations-API (skriv):** `POST points/{id}` — endast när myCoreAI skriver börvärden

Läsbehörighet räcker för analys och rapportering. Skrivbehörighet krävs endast när myCoreAI aktivt optimerar byggnaden.

### Identifiering

Identifieringen körs i två deterministiska faser. Rådata hämtas först; tolkningen sker i ett separat steg. Resultatet är granskningsbart och reproducerbart från körning till körning.

**Fas 1 — insamling av ögonblicksbild**

1. Hämta listan över utrustning och katalogen över utrustningstyper för partitionen.
2. Bestäm byggnadens platsomfattning och filtrera utrustningen till den byggnaden.
3. Skapa en mappning från enhet till utrustning utifrån `isControlledBy` relationer.
4. Hämta enheter i byggnadens plats.
5. Bygg berikningskartor för punktgrupper (taggar, utrustnings-ID:n, enhets-ID:n per punkt-ID).
6. För varje enhet, hämta dess punkter och identifiera den ägande utrustningen.

**Fas 2 — signal- och komponenttaggning**

1. Initiera komponenter från utrustning med hjälp av de kända mappningarna för utrustningstyper.
2. Konvertera varje punkt till en signal och normalisera dess punktgruppstaggar.
3. Matcha mot regelkatalogen (GUID för utrustningstyp + obligatoriska/förbjudna taggar) för att tilldela en signalposition och komponenttyp.
4. Falla tillbaka på utrustningens standardbindning för komponenten när ingen regel matchar.
5. Efterbearbeta: slå samman dubbletter, avduplicera signalnamn, ta bort inkompatibla tilldelningar.

### Punktgrupper och reservstrategi

Punktgrupper i Building X binder punkter till utrustning deterministiskt. Ett punktgrupps-ID kodar entitetstypen — `Equipment-{id}` eller `Device-{id}`.

Den föredragna vägen är `GET /structure/partitions/{partitionId}/point-groups`. Vissa tenants begränsar detta endpoint och returnerar HTTP 403; integrationen upptäcker detta automatiskt och faller tillbaka till en kontroll per entitet. Ingen konfiguration krävs.

### Läsning och skrivning av värden

**Aktuella värden** läses med en tredelad reservstrategi per signal:

1. Endpoint för punktgrupper (batchad — minst antal anrop)
2. Batch-endpoint för punktvärden
3. Historik-endpoint per punkt (senaste värdet, sista utvägen)

Värdeparsern hanterar strängar, tal, booleska värden och JSON-element. `"på"/"av"` och `"öppen"/"stängd"` normaliseras till 1/0. NaN och oändlighet avvisas.

**Historiska värden** hämtas via endpointen point-value-resource med ett UTC-datumintervall. Sidindelning sker automatiskt.

**Skrivningar** accepteras endast för ändliga numeriska värden.

### Stödda utrustnings- och signaltyper

Signalmappningen styrs av en regelkatalog som nycklas på GUID:er för utrustningstyper och semantiska taggar.

| Utrustningsfamilj             | Myrspoven-system       | Exempel på signalpositioner                                             |
| ----------------------------- | ---------------------- | ----------------------------------------------------------------------- |
| Luftbehandlingsaggregat (AHU) | Ventilation            | Till- och frånluftstemperatur, tryck, flöde, CO₂, börvärden             |
| Terminalenhet (VAV/CAV)       | Ventilation            | Zonstyrning, komfortvariabler, spjälläge                                |
| Hydronisk krets               | Uppvärmning            | Till- och frånledningstemperaturer, börvärden, ventilposition, pumpläge |
| Kyla (kylmaskin, kyltorn)     | Kyla                   | Kylmaskinstemperaturer, kondensorvatten, kyltornssignaler               |
| Värmeväxlare                  | Uppvärmning / kyla     | Till-/frånledning, bypass- och avstängningsventilernas lägen            |
| Energimätare                  | Energi                 | Energiförbrukningspunkter                                               |
| Observerbara sensorer         | Observerbara variabler | Väder, rumskomfort, CO₂, beläggning                                     |

Utrustning utanför denna lista slutför ändå identifieringen; punkter utan matchning binds inte automatiskt och kan behöva en regelutökning. Diagnostikfilen är utgångspunkten för den utökningen.

### Onboardingschecklista

* Skapa ett OAuth2-tjänstekonto (client credentials grant) i Building X / Auth0-tenantet.
* Ge läsåtkomst — och skrivåtkomst om tillämpligt — till den relevanta partitionen.
* Dela `ClientId`, `ClientSecret`, `SiemensBuildingXPartitionId`, och `ExternalBuildingId` med Myrspoven via den överenskomna säkra kanalen.

## Legacy: Desigo CC (lokalt)

Äldre Siemens-installationer använder lokal Desigo CC i stället för Building X. Integrationsmodellen skiljer sig fundamentalt: i stället för ett moln-API med strukturerad utrustningsmetadata kommunicerar myCoreAI via virtuella signaler som skapas inuti själva BMS:et.

Denna väg stöds fortfarande men rekommenderas inte längre för nya anläggningar. Desigo CC-anläggningar onboardas från fall till fall tillsammans med Myrspoven, eftersom den exakta layouten för de virtuella signalerna beror på vilka signaler som läses respektive skrivs.

Övergripande steg:

1. Kör identifiering mot BMS:et för att lista tillgängliga signaler.
2. Välj signaler att läsa och skriva.
3. Skapa de virtuella signaler som krävs inne i BMS:et (engångsmanuell konfiguration per byggnad).
4. Kör identifieringen igen för att fånga upp de virtuella signalerna.
5. Bekräfta den resulterande strukturen i Myrspoven.

Mappning av mappar för virtuella signaler, hantering av watchdog och reservbeteende samordnas från fall till fall med Myrspoven för att undvika störningar i det livekörande BMS:et.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.myrspoven.com/myrspoven-docs/myrspoven-docs-sv/integrations/overview/bms-integrations/siemens.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
