# OpenBOS

> Die OpenBOS App ermöglicht die Integration und Synchronisierung zwischen BuildingPro Suites und [ABB Ability™ Building Edge](https://new.abb.com/low-voltage/products/building-automation/building-edge) (unter Verwendung der OpenBOS-Software).

#### Übersicht

Dieses Handbuch enthält Anweisungen zur Konfiguration, Installation und Verwendung der OpenBOS App zur Verwaltung von Ressourcen und zur Synchronisierung von Daten zwischen BuildingPro Suites und OpenBOS Edge.

#### Erforderliche Schritte in OpenBOS Building Edge

Die vollständige Dokumentation zur Verwendung des Edge Editor, eines in Building Edge integrierten Tools zur Konfiguration, ist verfügbar [hier](https://library.abb.com/d/9AKK108467A9325). Im Folgenden wird darauf verwiesen als die **Edge Editor-Dokumentation**, und der Inhalt entspricht Revision G der englischen Version.

#### Topologie und Dienste

Gebäudedaten werden vom Building Edge erfasst, Assets zugewiesen und an die ABB Ability Cloud gesendet. Von dort werden die Assets über die BuildingPro Suites App abgerufen und automatisch erstellt.

![Beispiel für das Building Edge-Schema](https://raw.githubusercontent.com/eliona-smart-building-assistant/open-bos-app/refs/heads/develop/user_guide/building_edge_schema.png)

#### Erstinstallation

Die folgenden Konfigurationen müssen während der Erstinstallation vorgenommen werden:

**Lokale Konfiguration**

Sobald der Building Edge eingeschaltet ist, kann über einen Browser über LAN-Port 1 oder 2 darauf zugegriffen werden.

Befolgen Sie die weiteren Schritte gemäß der **Edge Editor-Dokumentation** (Seiten 23–32).

**Cloud-Konfiguration**

Damit der Edge mit der Cloud verbunden werden kann, muss er sich in einem Netzwerk mit Internetzugang befinden. Passen Sie die IP-Adresse entsprechend an (siehe **Edge Editor-Dokumentation**, Seite 43).

Für den Zugriff auf die ABB Cloud muss ein personalisierter Login erstellt werden. Folgen Sie dann den Schritten in der **Edge Editor-Dokumentation** (Seiten 33–40).

**Allgemeine Einrichtung**

Prüfen Sie als Nächstes die allgemeinen Einstellungen und passen Sie sie bei Bedarf an oder vervollständigen Sie sie gemäß der **Edge Editor-Dokumentation**, Seiten 42–81.

#### Integration von Felddaten

Um Datenpunkte aus einem Bussystem abzurufen, muss unter "Field Network" ein neues Netzwerk für das entsprechende Protokoll erstellt werden.

Die **Ability Cloud** ist erreichbar unter: <https://buildings.ability.abb>

Befolgen Sie die Schritte gemäß der **Edge Editor-Dokumentation** (Seiten 112–123).

#### Hinzufügen von Geräten und Datenpunkten

Zum Hinzufügen von Geräten und Datenpunkten kann der **CSV-Import** verwendet werden. Es wird empfohlen, zunächst eine (leere) CSV-Datei zu exportieren und sie mit Daten zu füllen.

#### Zugriff über API erlauben

Damit BuildingPro Suites Aktualisierungen von Datenpunkten erhält, muss jeder Datenpunkt für API-Abonnements konfiguriert werden:

1. In der **Bibliothek/Asset-Vorlage**:
2. Wählen Sie Ihr Asset aus.
3. Vorlage bearbeiten: **Bleistift-Symbol zum Bearbeiten**.
4. Gehen Sie zu **API-Abonnement**.
5. Aktivieren Sie das gewünschte Abonnement.
6. Vergessen Sie nicht, auf **Speichern** zu klicken (oben rechts in der Leiste neben "API Subscription").

![API-Abonnement aktivieren](https://raw.githubusercontent.com/eliona-smart-building-assistant/open-bos-app/refs/heads/develop/user_guide/api_subscription.png)

#### Registrierung der App in OpenBOS

Um BuildingPro Suites mit Ihrem OpenBOS Edge zu verbinden, muss der Edge so konfiguriert sein, dass API-Verbindungen zugelassen werden. Kontaktieren Sie den ABB-Support für weitere Informationen. Sie müssen die öffentliche API-URL von BuildingPro Suites angeben: `https://{your-eliona-domain.io}/apps-public/open-bos`.

BuildingPro Suites benötigt die **Gateway-ID, Client-ID und Client Secret** zur Authentifizierung.

#### Installation

Installieren Sie die OpenBOS App über den BuildingPro Suites App Store.

#### Konfiguration

Die OpenBOS App erfordert eine Konfiguration über die Einstellungsoberfläche von BuildingPro Suites. Die folgenden Schritte sind erforderlich, um die App zu konfigurieren.

#### OpenBOS App konfigurieren

Konfigurationen können in BuildingPro Suites unter `Einstellungen > Apps > OpenBOS`, wodurch die App- [Generic Frontend](https://doc.eliona.io/collection/v/eliona-english/manuals/settings/apps). Hier können Sie den `\configs` -Endpunkt mit der POST-Methode verwenden. Jede Konfiguration erfordert die folgenden Daten:

| Attribut          | Beschreibung                                                                                                                                                                                                                                                         |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gwid`            | Die ID des Gateway-Geräts, das in den API-Anfragen verwendet wird.                                                                                                                                                                                                   |
| `clientID`        | Die Client-ID für die OAuth-2.0-Authentifizierung.                                                                                                                                                                                                                   |
| `clientSecret`    | Das Client Secret für die OAuth-2.0-Authentifizierung.                                                                                                                                                                                                               |
| `appPublicAPIURL` | URL der öffentlichen API dieser App. Wird automatisch aus der Anfrage abgeleitet. Beispiel: "https\://{your-eliona-instance.io}/apps-public/open-bos".                                                                                                               |
| `enable`          | Kennzeichen zum Aktivieren oder Deaktivieren des Abrufs über diese API. Standard: `wahr`.                                                                                                                                                                            |
| `refreshInterval` | Intervall in Sekunden für den Abruf von Daten aus der API. Standard: `24`.                                                                                                                                                                                           |
| `requestTimeout`  | Timeout für API-Abfragen in Sekunden. Standard: `120`.                                                                                                                                                                                                               |
| `active`          | Wird gesetzt auf `wahr` durch die App, wenn sie läuft, und auf `falsch` wenn es gestoppt ist. Schreibgeschützt.                                                                                                                                                      |
| `tenantIDs`       | Liste der Mandanten-IDs von BuildingPro Suites für die Datenerfassung. Für jede Mandanten-ID werden alle Smart Devices automatisch als Assets in BuildingPro Suites erstellt, wobei die Zuordnungen in der OpenBOS-App gespeichert werden. Beispiel: `["42", "99"]`. |

Beispiel einer vollständigen Konfigurationsdatei im JSON-Format:

```json
{
  "gwid": "1234acbd-3faa-ab32-ab32-21c3876ba",
  "clientID": "4321dcba-3faa-ab32-ab32-21c3876ba",
  "clientSecret": "your-client-secret",
  "appPublicAPIURL": "https://{your-eliona-instance.io}/apps-public/open-bos",
  "enable": true,
  "refreshInterval": 24,
  "requestTimeout": 120,
  "tenantIDs": [
    "42",
    "99"
  ]
}
```

Einige Felder haben Standardwerte, daher kann eine minimalistische Konfigurationsdatei so aussehen:

```json
{
  "gwid": "1234acbd-3faa-ab32-ab32-21c3876ba",
  "clientID": "4321dcba-3faa-ab32-ab32-21c3876ba",
  "clientSecret": "your-client-secret",
  "tenantIDs": [
    "42"
  ]
}
```

### Kontinuierliche Asset-Erstellung

Nach der Konfiguration startet die App die Continuous Asset Creation (CAC). Erkannte Ressourcen werden automatisch als Assets in BuildingPro Suites erstellt, und der Benutzer, der die App konfiguriert hat, wird über das Benachrichtigungssystem von BuildingPro Suites informiert.

Assets strukturieren

Nach der Erstellung werden die Assets in BuildingPro Suites in derselben Struktur wie in OpenBOS organisiert. Diese Struktur bleibt synchronisiert, und Änderungen in BuildingPro Suites (z. B. Umbenennung eines Assets oder Verschieben eines Raums in ein anderes Gebäude) werden beim nächsten Ontologie-Update überschrieben.

Die einzige Ausnahme sind die Root-Assets. Diese werden im obersten Verzeichnis erstellt und entsprechen der obersten Ebene der OpenBOS-Standortstruktur. In der Regel gibt es in dieser Rolle einen "Site". Ein weiteres Root-Asset ist das "OpenBOS unassigned", das nicht zugewiesene Assets und Datenpunkte enthält.

Sie können die Root-Assets nach Belieben umbenennen oder verschieben, wobei die gesamte Ontologie ebenfalls verschoben wird.

Es ist nicht möglich, GAIs in BuildingPro Suites für Assets zu ändern.

#### Asset-Filterung

Wenn nicht alle Assets aus OpenBOS in BuildingPro Suites importiert werden sollen, kann ein Asset-Filter definiert werden, um nur bestimmte Assets einzuschließen. Die App kann Assets nach ID, Name und templateID filtern (für Assets und Räume). Anweisungen zum Erstellen eines Filters finden Sie in der [Dokumentation zum Asset-Filter](https://doc.eliona.io/collection/dokumentation/einstellungen/apps/asset-filter).

#### Asset-Typen

Asset-Typen werden automatisch aus den OpenBOS-Asset-Vorlagen erstellt und synchronisiert.

| BuildingPro Suites | OpenBOS                                                     |
| ------------------ | ----------------------------------------------------------- |
| Asset-Typ          | Asset-Vorlage                                               |
| Attribut - Eingang | Datenpunkt mit Richtung "Feedback"                          |
| Attribut - Ausgang | Datenpunkt mit Richtung "Command" oder "CommandAndFeedback" |
| Attribut - Info    | Eigenschaft                                                 |
| Grenzwerte         | Min/Max                                                     |
| Einheit            | Einheit                                                     |
| Wertzuordnung      | Enums                                                       |

Komplexe Datentypen aus OpenBOS werden in BuildingPro Suites in separate Attribute aufgeteilt.

#### Verwaiste Datenpunkte

Wenn ein Asset in OpenBOS gelöscht wird, aber ein Alarm weiterhin mit diesem Datenpunkt verknüpft ist, bleibt dieser Datenpunkt in der Ontologie erhalten. BuildingPro Suites übernimmt dieses Verhalten und weist solche Datenpunkte dem Asset "OpenBOS unassigned" zu.

### Alarme

In OpenBOS ausgelöste Alarme werden mit BuildingPro Suites synchronisiert. Sie werden in BuildingPro Suites als Alarmregeln des Typs "External" erstellt und durch Aktualisierungen aus OpenBOS gesteuert. Wenn ein Alarm in OpenBOS ausgelöst wird, erscheint er auch in BuildingPro Suites und wird entsprechend entfernt, wenn er in OpenBOS endet.

> Externe Alarme sind Alarme, die nicht von BuildingPro Suites verwaltet werden. Alarmregeln werden angezeigt, damit Benutzer sie markieren und kategorisieren können, aber BuildingPro Suites ist nicht dafür verantwortlich zu prüfen, ob ein Alarm ausgelöst werden sollte. Ein externes System (in diesem Fall OpenBOS) ist für die Alarmsteuerung verantwortlich.

Wenn ein Alarm eine Bestätigung erfordert, kann er in BuildingPro Suites bestätigt werden, und diese Bestätigung wird mit OpenBOS synchronisiert.

### Überwachung des App-Status

Zusammen mit der Asset-Erstellung wird auch ein Asset mit dem Namen "OpenBOS app" erstellt. Es dient dazu, Benutzer über den Status der App zu informieren – es signalisiert, ob die App läuft (Asset-Status -> Aktiv/Inaktiv) und wie ihr Status ist – das Statusattribut. Wenn der App-Status nicht "OK" ist, bedeutet das, dass die App möglicherweise nicht korrekt funktioniert. Wenn der Fehlerstatus bestehen bleibt, teilen Sie uns dies bitte mit, indem Sie einen Fehlerbericht einreichen.
