# Zevvy

### Übersicht

Diese Anleitung bietet Anweisungen zur Konfiguration, Installation und Nutzung der Zevvy-App zur Verwaltung von Ressourcen und zur Synchronisation von Daten zwischen Eliona und Zevvy-Diensten.

### Installation

Installieren Sie die Zevvy-App über den Eliona App Store.

### Konfiguration

Die Zevvy-App erfordert eine Konfiguration über die Eliona-Einstellungsoberfläche. Nachfolgend sind die allgemeinen Schritte und Details aufgeführt, die erforderlich sind, um die App effektiv zu konfigurieren.

#### Registrierung der App im Zevvy-Dienst

Erstellen Sie Anmeldeinformationen im Zevvy-Dienst, um die Zevvy-Dienste von Eliona aus zu verbinden. Alle erforderlichen Anmeldeinformationen sind unten im Konfigurationsabschnitt aufgeführt.

Melden Sie sich in der Zevvy-Konsole an und gehen Sie zur Einstellungsseite. Erstellen Sie eine neue Client-ID und ein Geheimnis.

#### Konfigurieren der Zevvy-App

Konfigurationen können in Eliona unter `Apps > Zevvy > Einstellungen` erstellt werden, was die [generische Benutzeroberfläche](https://doc.eliona.io/collection/v/eliona-english/manuals/settings/apps) der App öffnet. Hier können Sie den entsprechenden Endpunkt mit der POST-Methode verwenden. Jede Konfiguration erfordert die folgenden Daten:

| Attribut          | Beschreibung                                                   |
| ----------------- | -------------------------------------------------------------- |
| `authRootUrl`     | Root-URL für den Authentifizierungsprozess.                    |
| `apiRootUrl`      | Root-URL für den API-Zugriff.                                  |
| `clientId`        | In der Zevvy-Konsole erstellte Client-ID für den API-Zugriff.  |
| `clientSecret`    | In der Zevvy-Konsole erstelltes Geheimnis für den API-Zugriff. |
| `enable`          | Flag zum Aktivieren oder Deaktivieren dieser Konfiguration.    |
| `refreshInterval` | Intervall in Sekunden für die Datensynchronisation.            |
| `requestTimeout`  | Zeitüberschreitung für API-Abfragen in Sekunden.               |

Beispiel-Konfigurations-JSON:

```json
{
  "authRootUrl": "https://iam.zevvy.org/realms/zevvy-prod",
  "apiRootUrl": "https://api.zevvy.org",
  "clientId": "123abc",
  "clientSecret": "s3cr3t",
  "enable": true,
  "refreshInterval": 60,
  "requestTimeout": 120
}
```

Nach der technischen Grundkonfiguration der App benötigt die App weitere Informationen darüber, welche Metriken an Zevvy gemeldet werden sollen. Hierzu ist es erforderlich, die Assets und das entsprechende Messattribut zu konfigurieren.

Dies kann mit dem entsprechenden Endpunkt und der POST-Methode erfolgen. Jede Asset-Definition erfordert die folgenden Daten:

| Attribut            | Beschreibung                                                                                              |
| ------------------- | --------------------------------------------------------------------------------------------------------- |
| `configId`          | Die Messung wird mit dieser Konfiguration gesendet.                                                       |
| `assetId`           | Die Messung wird von diesem Asset entnommen.                                                              |
| `subtype`           | Messdaten haben diesen Subtyp.                                                                            |
| `attributeName`     | Name des Messattributs.                                                                                   |
| `deviceReference`   | Name der Geräte-Referenz der Messung in Zevvy. (Optional, Standardgeräte-Referenz ist die GAI des Assets) |
| `registerReference` | Name der Register-Referenz der Messung in Zevvy. (Optional, Register-Referenz ist der Attributname)       |

Beispiel-JSON zur Konfiguration eines Messdatensatzes für Zevvy

```json
{
  "configId": 1,
  "assetId": 4711,
  "subtype": "input",
  "attributeName": "power"
}
```

### Zevvy

Sobald die Konfiguration abgeschlossen ist, beginnt die App regelmäßig Messwerte von den konfigurierten Assets und Attributen an Zevvy zu senden.
