> 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/integrationer/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 uppsättning 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 offentliga 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. Upptäckten mappar automatiskt Building X-utrustning, enheter och punkter till Myrspovens system, komponenter och signaler.

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

### Nödvändiga inloggningsuppgifter

Per byggnad:

| Egenskap                      | Beskrivning                                                      |
| ----------------------------- | ---------------------------------------------------------------- |
| `ClientId`                    | OAuth2-klient-ID för tjänstekontot                               |
| `ClientSecret`                | OAuth2-klienthemlighet (behandlas som en inloggningsuppgift)     |
| `SiemensBuildingXPartitionId` | UUID för Building X-partitionen — tenantscope för alla API-anrop |
| `ExternalBuildingId`          | Byggnadens plats-GUID i Building X:s struktur-API                |

{% 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 på nytt.
{% endhint %}

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

* **Struktur-API (läs):** `equipment`, `equipment-types`, `locations`, `point-groups`, `point-groups/{id}/points`
* **Operations-API (läs):** `devices`, `devices/{id}/points`, `points/{id}`, `point-value-resource` (aktuellt och historik)
* **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.

### Upptäckt

Upptäckten körs i två deterministiska faser. Rådata hämtas först; tolkningen sker i en separat genomgång. Resultatet är granskbart och reproducerbart mellan körningar.

**Fas 1 — insamling av ögonblicksbild**

1. Hämta utrustningslistan och utrustningstypkatalogen för partitionen.
2. Fastställ byggnadens platsomfång och filtrera utrustningen till den byggnaden.
3. Bygg en enhets-till-utrustning-karta från `isControlledBy` relationerna.
4. Hämta enheter på byggnadens plats.
5. Bygg berikningskartor för point-groups (taggar, utrustnings-ID:n, enhets-ID:n per punkt-ID).
6. För varje enhet, hämta dess punkter och fastställ ägande utrustning.

**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 point-group-taggar.
3. Matcha mot regelkatalogen (GUID för utrustningstyp + obligatoriska/förbjudna taggar) för att tilldela signalposition och komponenttyp.
4. Falla tillbaka på utrustningens standardbindning för komponenten när ingen regel matchar.
5. Efterbearbeta: slå ihop dubbletter, avduplicera signalnamn, ta bort inkompatibla tilldelningar.

### Point-groups och fallback-strategi

Building X point-groups binder punkter till utrustning deterministiskt. Ett point-group-ID kodar entitetstypen — `Equipment-{id}` eller `Device-{id}`.

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

### Läsa och skriva värden

**Aktuella värden** läses med en trestegs-fallback per signal:

1. Point-group-endpoint (batchad — färst förfrågningar)
2. Batchad point-values-endpoint
3. Historikendpoint per punkt (sista 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 nekas.

**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      | Tillufts-/frånluftstemperatur, tryck, flöde, CO₂, börvärden        |
| Terminalenhet (VAV/CAV)       | Ventilation      | Zonstyrning, komfortobservationer, spjälläge                       |
| Hydronisk krets               | Värme            | Tillufts-/returtemperaturer, börvärden, ventilposition, pumpstatus |
| Kyla (kylmaskin, kyltorn)     | Kyla             | Temperaturer för kylmaskin, kondensorvatten, kyltornssignaler      |
| Värmeväxlare                  | Värme / Kyla     | Tilluft/retur, bypass- och avstängningsventilpositioner            |
| Energimätare                  | Energi           | Punkter för energiförbrukning                                      |
| Observerbara sensorer         | Observationer    | Väder, rumskomfort, CO₂, beläggning                                |

Utrustning utanför denna lista slutför fortfarande upptäckten; omatchade punkter binds inte automatiskt och kan behöva en regelutökning. Diagnostikfilen är utgångspunkten för den utökningen.

### Checklista för onboarding

* Tillhandahåll ett OAuth2-tjänstkonto (grant-typen client credentials) i Building X-/Auth0-tenanten.
* 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.

## Äldre: Desigo CC (lokal)

Ä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 metadata för utrustning kommunicerar myCoreAI via virtuella signaler som skapas inne i 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 upptäckten mot BMS:et för att lista tillgängliga signaler.
2. Välj signaler att läsa och skriva.
3. Skapa de nödvändiga virtuella signalerna i BMS:et (engångsmanuell uppsättning per byggnad).
4. Kör upptäckten igen för att få med de virtuella signalerna.
5. Bekräfta den resulterande strukturen i Myrspoven.

Mappstrukturen för virtuella signaler, hantering av watchdog och fallback-beteende samordnas från fall till fall med Myrspoven för att undvika att störa det livegående 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/integrationer/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.
