> 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 sajter — detaljer nedan. **Siemens Desigo CC** är den äldre lokala plattformen, som fortfarande stöds men kräver manuell uppsättning av virtuella signaler i BMS:en; sammanfattas i slutet. De två vägarna har inga förkunskapskrav gemensamma.

## Siemens Building X (BPCloud)

### Vad integrationen gör

myCoreAI ansluter till en Building X-tenant via dess publika JSON:API för att identifiera 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-typ:** JSON:API över HTTPS
* **Autentisering:** OAuth2-klientuppgifter
* **Bas-URL:** `https://api.bpcloud.siemens.com/`

### Nödvändiga uppgifter

Per byggnad:

| Egenskap                      | Beskrivning                                                      |
| ----------------------------- | ---------------------------------------------------------------- |
| `ClientId`                    | OAuth2-klient-ID för tjänstekontot                               |
| `ClientSecret`                | OAuth2-klienthemlighet (behandla som en autentiseringsuppgift)   |
| `SiemensBuildingXPartitionId` | UUID för Building X-partition — tenant-omfång 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 det 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

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

Skrivskyddad åtkomst räcker för analys och rapportering. Skrivåtkomst 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; tolkning sker i en separat passering. Resultatet är granskbart och reproducerbart mellan körningar.

**Fas 1 — insamling av ögonblicksbild**

1. Hämta listan över utrustning och katalogen över utrustningstyper för partitionen.
2. Lös byggnadens platsomfång och filtrera utrustning till den byggnaden.
3. Bygg en mappning mellan enhet och utrustning från `isControlledBy` relationer.
4. Hämta enheter på 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 avgör vilken utrustning som äger dem.

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

### Punktgrupper och reservstrategi

Building X punktgrupper 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 denna endpoint och returnerar HTTP 403; integrationen upptäcker detta automatiskt och faller tillbaka till per-entitetstestning. Ingen konfiguration krävs.

### Läsa och skriva värden

**Aktuella värden** läses med en reservkedja i tre nivåer per signal:

1. Punktgränssnitt för punktgrupp (batchat — minst antal förfrågningar)
2. Batch-endpoint för punktvärden
3. Historik-endpoint per punkt (senaste värdet, sista utväg)

Värdetolken 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-dataintervall. Sidnumrering sker automatiskt.

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

### Stödda utrustnings- och signaltyper

Signalmappningen styrs av en regelkatalog som nycklas på utrustningstyp-GUID:er och semantiska taggar.

| Utrustningsfamilj             | Myrspoven-system | Exempel på signalpositioner                                        |
| ----------------------------- | ---------------- | ------------------------------------------------------------------ |
| Luftbehandlingsaggregat (AHU) | Ventilation      | Tillufts-/returluftstemperatur, tryck, flöde, CO₂, börvärden       |
| Rumsenhet (VAV/CAV)           | Ventilation      | Zonstyrning, komfortobservationer, spjällposition                  |
| Hydronisk krets               | Värme            | Tillufts-/returtemperaturer, börvärden, ventilposition, pumpstatus |
| Kyla (kylmaskin, kyltorn)     | Kyla             | Temperaturer för kylmaskin, kondensorvatten, signaler för kyltorn  |
| Värmeväxlare                  | Värme / Kyla     | Positioner för tillopp/retur, bypass- och avstängningsventiler     |
| 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 bindas inte automatiskt och kan behöva en regelutökning. Diagnostikfilen är startpunkten för den utökningen.

### Checklista för onboarding

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

## Äldre version: Desigo CC (lokalt)

Äldre Siemens-installationer använder lokalt 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 inne i själva BMS:en.

Denna väg stöds fortfarande men rekommenderas inte längre för nya sajter. Desigo CC-sajter ombordstigas 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.

Steg på hög nivå:

1. Kör upptäckt mot BMS:en för att lista tillgängliga signaler.
2. Välj signaler att läsa och skriva.
3. Skapa de nödvändiga virtuella signalerna inne i BMS:en (engångsmanuell konfiguration per byggnad).
4. Kör upptäckten igen för att fånga upp de virtuella signalerna.
5. Bekräfta den resulterande strukturen i Myrspoven.

Mappning av mappstruktur för virtuella signaler, hantering av watchdog och fallback-beteende samordnas från fall till fall med Myrspoven för att undvika störningar i den aktiva BMS:en.


---

# 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:

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

The question should be specific, self-contained, and written in natural language.
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.
