# Skript Engine

Die Skript Engine bietet Ihnen die Möglichkeit, Daten in Eliona mittels Python- und SQL-Skripten zu bearbeiten.

Das besondere an Skripten ist, dass Skripte wiederholt und zu regelmässigen Zeitpunkten auf die Daten angewandt werden.

{% hint style="info" %}
Für einfache Datenmanipulationen, z.B. das Addieren von Werten, kann der ↗ Calculator benutzt werden.
{% endhint %}

## Anwendungsszenarien

Hier sind einige typische und erweiterte Anwendungsfälle, in denen Skripte effektiv eingesetzt werden können:

* #### Zähler auswerten und zurücksetzen

  Zähler, wie beispielsweise Personenzähler, müssen regelmäßig zurückgesetzt werden, um genaue Werte zu gewährleisten. Skripte können so programmiert werden, dass sie diese Zähler zu festgelegten Zeiten automatisch zurücksetzen.
* #### Maximalwerte bestimmen

  Skripte können verwendet werden, um aus einer Reihe von Werten den höchsten Wert zu ermitteln und diesen hervorzuheben oder weiter zu verarbeiten.
* #### Machine Learning Modelle und Vorhersagen

  Ein erweitertes Anwendungsszenario beinhaltet die Integration von Machine Learning Modellen. Skripte können verwendet werden, um Vorhersagen basierend auf historischen Daten zu treffen, Optimierungen durchzuführen oder Korrelationen zwischen verschiedenen Datensätzen zu erkennen.
* #### Verarbeitung von Anhängen

  Skripte können so programmiert werden, dass sie beim Hochladen von Anhängen diese automatisch scannen und die extrahierten Daten direkt in das entsprechende Asset schreiben.
* #### Plausibilitätsprüfungen

  Eine weitere Anwendung ist die Plausibilitätsprüfung von Daten. Ein Skript kann überprüfen, ob die Daten innerhalb bestimmter Grenzen liegen. Sind die Daten plausibel, wird der Wert 0 gesetzt, andernfalls 1.

## Akzeptierte Sprachen

Skripts können in *Python* oder *SQL* geschrieben werden.

## Skript-Übersicht öffnen

<div data-full-width="true"><figure><img src="https://content.gitbook.com/content/Nyvwhz1kEMXcHf4HLuZ8/blobs/imImeb474XcgH2XZECYj/Docs%20ScriptEngine%201.png" alt=""><figcaption></figcaption></figure></div>

1. Klicken Sie auf **Engineering** **\[A]**
2. Klicken Sie auf **Script Engine** **\[B]** \
   ▷Die Skript-Übersicht öffnet sich

{% hint style="info" %}
Eliona kommt von Haus aus mit integrierten Skripten, sog. *Systemskripten*.&#x20;

Diese Skripte sind ausschliesslich für [System-Owner](https://docs.buildings.ability.abb/collection/german-14.2-freezed/rollen#systemrollen) sichtbar.&#x20;

Für alle anderen Benutzer erscheinen diese Systemskripte nicht in der Skript-Übersicht. System-Skripte sind daran zu erkennen, dass die Option zum Bearbeiten **\[Q]** ausgegraut und nicht verfügbar ist.
{% endhint %}

### Details

In der Skript-Engine haben Sie folgende Möglichkeiten:

<table data-full-width="true"><thead><tr><th>Element</th><th>Titel</th><th>Details</th></tr></thead><tbody><tr><td><strong>[C]</strong></td><td>Abschnitt Skripte</td><td>Zeigt eine Übersicht aller bereits erstellter Skripte</td></tr><tr><td><strong>[D]</strong></td><td>Suche</td><td>Öffnet die Seitenleiste «Suchen». Dort können Sie gezielt nach einzelnen Skripten suchen</td></tr><tr><td><strong>[E]</strong></td><td>Neues Skript erstellen</td><td>Klicken, um ein neues Skript zu erstellen</td></tr><tr><td><strong>[F]</strong></td><td>Skript pausieren/aktivieren</td><td>Klicken, um ein laufendes Skript zu pausieren bzw. ein pausiertes Skript wieder zu aktivieren</td></tr><tr><td><strong>[G]</strong></td><td>Skript-Status</td><td>Zeigt an, ob ein Skript aktiviert ist («Aktiv») oder pausiert («Inaktiv»)ist</td></tr><tr><td><strong>[H]</strong></td><td>Name</td><td>Zeigt den Namen des Skripts an. Der Name des Skripts wird vom Nutzer vergeben, wenn das Skript wird. Der Name kann nachträglich geändert werden.</td></tr><tr><td><strong>[I]</strong></td><td>Zeigt die Beschreibung des Skripts an.</td><td>Die Bezeichnung des Skripts wird vom Nutzer vergeben, wenn er das Skript erstellt. Der Name kann nachträglich geändert werden.</td></tr><tr><td><strong>[J]</strong></td><td>Typ</td><td>Zeigt an, ob das Skript in SQL oder in Python angelegt wurde.</td></tr><tr><td><strong>[K]</strong></td><td>Fehler</td><td>Zeigt an, ob beim Skript Fehler vorliegen</td></tr><tr><td><strong>[L]</strong></td><td>Wiederholen</td><td>Zeigt das <a href="skripte-konfigurieren#raster">↗ Raster</a> an, das für dieses Skript ausgewählt wurde.</td></tr><tr><td><strong>[M]</strong></td><td>Letzter Durchgang</td><td>Zeigt an, wann das Skript das letzte mal durchgelaufen ist.</td></tr><tr><td><strong>[N]</strong></td><td>Nächster Durchgang</td><td>Zeigt an, wann das Skript das nächste mal durchlaufen wird.</td></tr><tr><td><strong>[O]</strong></td><td>Dauer</td><td>Zeigt an, wie lange der letzte Durchlauf gedauert hat.</td></tr><tr><td><strong>[P]</strong></td><td>Löschen</td><td>Das ausgewählte Skript löschen.</td></tr><tr><td><strong>[Q]</strong></td><td>Bearbeiten</td><td>Klicken, um das Skript zu bearbeiten. Ruft das Menü <a href="skript-engine/skripte-konfigurieren">↗ Skript konfigurieren</a> auf.</td></tr><tr><td><strong>[R]</strong></td><td>Fehler</td><td>Zeigt an, dass mit dem Skript ein Fehler vorliegt.</td></tr></tbody></table>

## Neues Skript erstellen

1. Öffnen Sie die Skript-Übersicht wie in [↗ Skript-Übersicht öffnen](#skript-uebersicht-oeffnen) beschrieben
2. Klicken auf **\[E]** \
   ▷ Das Fenster **\[S]** öffnet sich
3. Geben Sie dem Skript in Feld **\[T]** einen Namen. \
   ◈ Dieser Name wird später in Feld **\[H]** angezeigt
4. Wählen Sie in Feld **\[U]**, ob das Skript in Python oder SQL geschrieben wird
5. Klicken Sie auf **\[V]**, um das Skript zu erstellen \
   ▷Das Menü «Skript Konfigurieren» öffnet sich
6. Fahren Sie fort wie in Kapitel [↗ Skripte konfigurieren](https://docs.buildings.ability.abb/collection/german-14.2-freezed/dokumentation/engineering/skript-engine/skripte-konfigurieren) beschrieben
