# Xovis

> Bitte beachten Sie, dass dies die Dokumentation für die Xovis-App ist, den Nachfolger der [Xovis People Counter-App](https://doc.eliona.io/collection/apps/apps/xovis-people-counter).

### Überblick

Dieses Handbuch bietet Anleitungen zur Konfiguration, Installation und Nutzung der Xovis-App zur Verwaltung von Ressourcen und Synchronisierung von Daten zwischen Eliona und Xovis People Countern.

### Installation

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

### Konfiguration

Die Xovis-App muss über die Einstellungsoberfläche von Eliona konfiguriert werden. Nachfolgend finden Sie die allgemeinen Schritte und Details zur Konfiguration der App.

### Xovis-App-Konfiguration und Sensor-Discovery-Workflow

Konfigurationen können in Eliona unter `Einstellungen > Apps > Xovis` erstellt werden, wodurch die App-Oberfläche [Generic Frontend](https://doc.eliona.io/collection/v/manuals/settings/apps) geöffnet wird. Nachfolgend finden Sie den gesamten Workflow zur Konfiguration von Xovis-Geräten.

#### Schritt 1: Erstellen einer Xovis-App-Konfiguration

Zunächst muss eine Konfiguration erstellt werden, die definiert, wie Eliona mit dem Xovis-Gerät interagiert. Diese Konfiguration enthält wichtige Details wie die Zertifikatsprüfung des Geräts, die Häufigkeit der Datenerfassung und API-Timeouts.

**Endpoint**: `/configs`

**Methode**: `POST`

**Erforderliche Daten**:

| Attribut           | Beschreibung                                                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `checkCertificate` | Gibt an, ob das Gerätezertifikat geprüft werden soll (`true` für öffentlich zugängliche Geräte, `false` für nicht öffentlich zugängliche Geräte).          |
| `enable`           | Aktiviert oder deaktiviert die Datensynchronisation für diese Konfiguration.                                                                               |
| `refreshInterval`  | Intervall in Sekunden für die Datenerfassung vom Xovis-Gerät (Standard: 60 Sekunden). Kann reduziert werden, wenn Datapush genutzt wird.                   |
| `requestTimeout`   | Timeout in Sekunden für API-Anfragen an das Xovis-Gerät (Standard: 120 Sekunden).                                                                          |
| `projectIDs`       | Liste von Eliona-Projekt-IDs, für die dieses Gerät Daten sammeln soll. Für jede Projekt-ID werden automatisch smarte Geräte als Assets in Eliona erstellt. |

#### Beispiel-Konfigurationsanfrage:

```json
{
  "checkCertificate": true,
  "enable": true,
  "refreshInterval": 60,
  "requestTimeout": 120,
  "projectIDs": ["10"]
}
```

#### Antwort:

Nach erfolgreicher Erstellung der Konfiguration erhalten Sie eine Antwort mit der internen ID (`id`) der neu erstellten Konfiguration. Diese ID wird für die Konfiguration von Sensoren im nächsten Schritt benötigt.

#### Schritt 2: Hinzufügen von Xovis-Sensoren mit der Konfigurations-ID

Mit der in Schritt 1 erhaltenen Konfigurations-ID (z. B. `"id": 1`) können Sie nun Xovis-Sensoren konfigurieren. Jeder Sensor ist mit einer Konfiguration verknüpft und unterstützt Discovery-Methoden wie Layer 2 (L2) oder Layer 3 (L3).

**Endpoint**: `/sensors`

**Methode**: `POST`

**Erforderliche Daten**:

| Attribut           | Beschreibung                                                                                                   |
| ------------------ | -------------------------------------------------------------------------------------------------------------- |
| `configuration_id` | Die ID der in Schritt 1 erstellten Konfiguration. Dies verknüpft den Sensor mit der Konfiguration.             |
| `username`         | Xovis-Sensor-Benutzername.                                                                                     |
| `password`         | Xovis-Sensor-Passwort.                                                                                         |
| `hostname`         | Hostname oder IP-Adresse des Xovis-Sensors.                                                                    |
| `port`             | Netzwerkport zur Kommunikation mit dem Sensor (z. B. 443 für HTTPS).                                           |
| `discovery_mode`   | Modus zur Sensor-Erkennung (`disabled`, `L2` oder `L3`).                                                       |
| `l3_first_ip`      | (Optional) Start-IP-Adresse für die Layer 3 (L3) Discovery, um Sensoren in einem bestimmten Bereich zu finden. |
| `l3_count`         | (Optional) Anzahl der zu scannenden IP-Adressen im L3-Discovery-Modus.                                         |

#### Beispiel-Sensoranfrage:

```json
{
  "configuration_id": 1,
  "username": "sensor_user",
  "password": "securepassword123",
  "hostname": "sensor1.local",
  "port": 8080,
  "discovery_mode": "L3",
  "l3_first_ip": "192.168.1.10",
  "l3_count": 50
}
```

#### Continuous Asset Creation (CAC)

Nach Abschluss der Konfiguration und Sensor-Discovery startet Eliona die Continuous Asset Creation (CAC). Die entdeckten Sensoren werden automatisch als Assets in Eliona hinzugefügt:

* **Sensor-Discovery**: Identifizierte Sensoren werden als Assets hinzugefügt.
* **Automatische Asset-Erstellung**: Konfigurierte Logiken auf den Sensoren werden in Eliona als Assets hinterlegt.
* **Benachrichtigungen**: Der Benutzer erhält über das Eliona-Benachrichtigungssystem eine Nachricht, wenn neue Assets erstellt wurden.

#### Datapush

Für eine kontinuierliche Datenübermittlung (damit Daten sofort übertragen werden, wenn sich Personen unter den Sensoren bewegen, anstatt auf das `refreshInterval` zu warten), kann Datapush konfiguriert werden:

1. Gehen Sie zur Konfigurationsoberfläche des Sensors
2. Navigieren Sie zu `Einstellungen > Singlesensor > Date Push`
3. Richten Sie eine neue HTTPS-Verbindung mit Ziel `https://{ihre-eliona-instanz}/apps-public/xovis/{configuration_id}/datapush`, Port 443 ein
4. Erstellen Sie einen neuen Agent -> Live Data Push:
   * Datenfilterung: nach Wunsch
   * Format: JSON
   * Zeitformat: Unix-Zeit MS
   * Leere Frames: Leere Frames auslassen
   * Normalisierung: Level 1
   * Vollständige Paketinfos: aus
   * Vollständige Sensorinfos: aus
   * Pretty-Format: au
