🏆
Eliona
German
German
  • 💡Vorwort
    • Willkommen!
    • Über dieses Dokument
    • Typographische Konventionen
    • Das Interface
    • Bedienelemente
    • Glossar
    • FAQ
  • 🎉Neue Funktionen
    • Changelog – Aktuelle Version: v14.0.4
  • 🎓Academy
    • Eliona als Ticketing Plattform
      • Anleitung aus Sicht Admin
      • Anleitung aus Sicht Service
      • Anleitung aus Sicht Kunde
    • Einführung in Ontologien
      • Einführung in die Haystack Ontologie
      • Einführung in die Brick Ontologie
      • Einführung in die RealEstateCore Ontologie
      • Wie deckt Eliona Ontologien ab
    • Einen Zählerwechsel konfigurieren
    • Aggregationen in Eliona
    • White-Labeling
    • Ein Projekt erstellen
    • Einen Benutzer erstellen
    • Benutzer zu einem Projekt hinzufügen
    • Eine Rolle erstellen
    • Einem Benutzer eine Rolle zuordnen
    • Ein Asset erstellen und konfigurieren
    • Ein Dashboard erstellen
    • Eine Analytic erstellen und konfigurieren
    • Einen Alarm konfigurieren
    • Einen Digitalen Zwilling anlegen
    • Wie “Wayfinding” funktioniert
    • Werte-Mapping in Eliona
    • Twig-Templating in Eliona
    • Einführung und Tour durch die Benutzeroberfläche
  • 📚Dokumentation
    • 🗺️Wayfinding
      • Ein neues Wayfinding-Gebäude mit Stockwerken erstellen
      • Ein bestehendes Gebäude bearbeiten
      • Ein bestehendes Stockwerk öffnen
      • Ein Wayfinding Stockwerk konfigurieren
      • QR-Code generieren
      • Wayfinding in der Nuzung
    • 📊Dashboard
      • Ein neues Dashboard erstellen
      • Widgets zum Dashboard hinzufügen
      • Zwischen Dashboards wechseln
      • Layout von Dashboards anpassen
      • Dashboards organisieren
      • Dashboards an Benutzer kopieren
      • Globale Dashboards
      • Dashboard Templates
    • 🧊Widgets
      • Widgets bedienen
      • Vordefinierte Widgets
        • Alarm
        • Alarmübersicht
        • Analog Eingabe
        • Analoger Trend
        • Analyse
        • Asset Tracking
        • Behaglichkeit
        • Bereichsdiagramm
        • Bild
        • Buchung
        • Digitaler Trend
        • Donut
        • Einfache Anzeige
        • Eingabe Auswahl
        • Eingabe Schalter
        • Fahrplan
        • Fortschritt Radial
        • Fortschritt Vertikal
        • Heatmap
        • HLK KPI
        • iFrame
        • Kalender
        • Karte
        • Kombinierte Trends
        • Lichtsteuerung
        • Links
        • Radar-Diagramm
        • Reporttabelle
        • Sankey-Diagramm
        • Schalter
        • Slider
        • Stockwerk
        • Temperaturbereiche
        • Ticketübersicht
        • Tracking heatmap
        • Trend mit Balken
        • Trigger
        • Wetter
        • Zwei analoge Trends
        • Zwei digitale Trends
      • Benutzerdefinierte Widgets
        • Detaillierte Liste der Alarme
        • Liste der Alarme
        • Module
          • Alarm
          • Bereich
          • Bild
          • Custom Stockwerk
          • Donut
          • Eingaben & Schalter
          • Fortschritt
          • Heatmap
          • Icon
          • iFrame
          • Kalender
          • Karte
          • Komfort
          • Links
          • Radar
          • Sankey
          • Tabelle
          • Ticket
          • Tracking
          • Trend
          • Uhrzeit
          • Wert
          • Wetter
    • 🎈Assets
      • Assets erstellen
      • Asset-Details
      • Ein Asset konfigurieren
      • QR-Codes generieren
      • Bewertungen
      • Asset Daten
      • Dokumente an Assets anhängen
      • Einem Asset Links hinzufügen
      • Asset-Status: Aktive / Inaktive / Nicht Überwachte Assets
      • Assets auf einer Karte platzieren
      • Assets strukturieren
      • Assets archivieren
      • Asset-Modellierung: Templates erstellen
        • Ein neues Template erstellen
        • Ein neues Asset-Charakteristik-Template erstellen
      • ❤️Die Template-Bibliothek
        • Ein Template importieren
        • Ein Template Exportieren
    • 🎛️Smart Views
      • Eine neue Smart View erstellen
      • Eine bestehende Smart View öffnen
      • Eine Smart View konfigurieren
      • Eine Smart View bereitstellen
      • Slider Gruppen
      • Smart Assist
    • ⏰Alarme, Regeln und Eskalationen
      • 🚦Regeln
        • Eine Regel erstellen
      • 🚨Alarme
        • Quittierpflichtige und Gehende Alarme
        • Alarmstatistik
      • ↗️Eskalationen
        • Eine Neue Eskalationen erstellen
        • Eine Eskalation konfigurieren
        • Nutzer für Eskalationen konfigurieren
        • Notification Provider
          • Mail
          • Google Chat
          • SMS
          • Slack
          • eCall-Services
          • Job diagnostic
        • Allgemeinen Kalender erstellen
        • Eskalationen gruppieren
      • ⛓️Regelketten
        • Die Regelketten Seite öffnen
        • Eine neue Regelkette erstellen
        • Die Konfiguration einer bestehenden Regelkette öffnen
        • Regelkette konfigurieren
    • 🎟️Tickets
      • Tickets erstellen
      • Ticket Einstellungen
      • Ticket konfigurieren
      • Ticket-Details
      • Tasks erstellen
      • Task starten und abschliessen
      • Tickets schliessen
    • 📈Analytics & Reports
      • Analytics Nutzen
      • Reports Nutzen
    • 🌍Karte und Stockwerk
      • Karte
      • Stockwerk
        • Ein Stockwerk erstellen
        • Assets auf einem Stockwerk platzieren
        • Räume erstellen
        • Localino Anker konfigurieren
    • 🏛️BIM
      • Ein BIM öffnen
      • In einem BIM navigieren
      • Ein neues BIM erstellen
      • Assets in einem BIM platzieren
    • 📫Benachrichtigungen
      • Interne Benachrichtigungen
      • Benachrichtigungen Stumm Schalten
      • Push-Benachrichtigungen
      • Benachrichtigungen anpassen
    • 👥Digitaler Zwilling
    • ⚙️Engineering
      • Skript Engine
        • Skripte konfigurieren
        • Python Skripte schreiben
          • Output Logging und Fehlerbehandlung
          • Vorinstallierte Python-Bibliotheken im Eliona-System
          • Erstellen und Lesen von Dateien
        • PL/PgSQL-Skripte schreiben
      • Asset-Modellierung / Templates
        • Ein neues Template erstellen
        • Ein neues Asset-Charakteristik-Template erstellen
    • 🔧Einstellungen
      • Apps
        • Asset-Filter
      • Audit Trail
      • Lizenz
        • Lizenz läuft ab
      • System
      • API-Schlüssel
    • 🚩Tags
    • 🔮Systeme und Projekte
      • Ein neues Projekt erstellen
      • Benutzer zu einem Projekt hinzufügen
      • Aussehen eines Projekts anpassen
      • Startseite
      • Zwischen Projekten wechseln
    • 🧑‍💻Benutzer
      • Einen neuen Nutzer anlegen
      • Einen Nutzer einem Projekt zuweisen
      • Rolle eines Nutzers ändern
      • Zugriffsrechte von Nutzern verwalten
      • Benutzer archivieren und wiederherstellen
      • Benutzerdaten anpassen
    • 🎭Rollen
      • Warum sind Rollen so wichtig?
      • Das Rollen-Menü
      • Systemrollen
      • Projektrollen
    • 👾Weitere Funktionen
      • 📑Attribut Funktionen
        • ➗Werte berechnen: Der Calculator
        • 🕵️Filter
        • 📈Gerätesimulator
      • 🪃Lesezeichen
      • Tracking
      • 👀Monitoring
        • Monitoring mit Grafana
        • HDD Monitor
      • 🤳Augmented Reality
      • 🚢Bulk Import
  • 📶connectivity as a service
    • Geräte mit Eliona verbinden
      • Geräte per Modbus verbinden
        • Neue Modbus-Verbindung erstellen
        • Jobs lesen
      • Geräte per MQTT verbinden
        • Neuen Client erstellen
        • Client konfigurieren
        • Eine Subscription konfigurieren
        • Eine Publication konfigurieren
        • Eliona Broker
      • Geräte per RESTful verbinden
        • RESTful Verbindung konfigurieren
        • RESTful Request konfigurieren
      • Geräte per Webhook verbinden
      • ...mit Kafka
        • Eine neue Verbindung aufbauen
        • Verbindung konfigurieren
        • Abonnement konfigurieren
        • Publication konfigurieren
      • Geräte per OPC UA verbinden
        • Einen Endpunkt erstellen und konfigurieren
        • Endpunkt-Details
        • Verbindungs-Details
      • Ein Format konfigurieren
        • Format Konventionen und Beispiele
      • Funktionen
  • Edge Nodes
    • Was sind Edge Nodes?
    • EdgeNodes in Eliona
      • Control Edge einrichten
        • Eliona-Module für Niagara
  • 🍎Apps
    • Apps
      • ABB free@home
      • Akenza
      • Buchung
      • CoffeeCloud
      • Correlation App
      • Device simulator
      • Exchange-App
      • Forecast
        • Was ist Forecasting
        • Forecast App einfach nutzen
        • Parameter richtig Wählen
          • Alle Parameter auf einem Blick
        • Ablauf der Forecast App
        • Was sind Hyperparameter?
        • Parameter Konfiguration
        • Training Parameter einstellen
        • Binäre und Mehrklassen-Prognosen
        • Automatische Parameter
        • API-Dokumentation
        • Use Cases
      • Glutz
      • GP Joule
      • Hailo
      • Kentix
      • KentixONE
      • Kontakt.io
      • Localino
        • Geofencing-Funktion im Localino-System
      • Loriot.io
      • Microsoft 365
      • Microsoft ADFS
      • myStrom App
      • Niagara
      • OpenBOS
      • Renzbox
      • ROOMZ
      • SAML SSO
      • Signify
      • Spread Sheet
      • Stoppuhr
      • Thingdust
      • Xovis
      • Xovis People Counter
      • Zevvy
    • App SDK
  • 📢Feedback
    • 🐛Einen Bug melden
    • 💝Verbesserungsvorschlag senden / Feature wünschen
  • 👩‍💻Für Entwickler
    • REST API
    • Engineering
Powered by GitBook
On this page
  • Überblick
  • Schnittstelle
  • REST API
  • Datenbank
  • App API
  • App Lebenszyklus
  • App Best Practices
  • App SDK Zusammenfassung der Anforderungen
  • App SDK Ressourcen Übersicht

Was this helpful?

  1. Apps

App SDK

PreviousZevvyNextEinen Bug melden

Last updated 11 months ago

Was this helpful?

Apps ermöglichen es Eliona individuell, um neue Funktionen zu erweitern und beliebige weitere Systeme zu steuern und deren Kennzahlen einzubinden. Dazu gibt es bereits eine Vielzahl vorgefertigter Apps, die bei Bedarf genutzt werden können. Mit dem Eliona App SDK existiert ein Werkzeug, mit dem neue und eigene Apps entwickelt werden können und so die Palette verfügbarer Integrationen und Funktionen ausgebaut wird.

Überblick

Für die Entwicklung von Apps mit dem Eliona App SDK sind gewisse Anforderungen und Rahmenbedingungen zu beachten. Zum einen gilt es definierte Schnittstellen zu nutzen und zum anderen definierten Schnittstellen anzubieten. Nur so kann eine App reibungslos in einer Eliona-Umgebung eingesetzt werden. Ausserdem sind technische Voraussetzungen zu erfüllen. Diese dienen primär einer einheitlichen Konfiguration der App sowie der Kompatibilität über alle Apps hinweg.

Zentrale Anlaufstelle für das Eliona App SDK und alle notwendigen Ressourcen für die Entwicklung von Apps sind bei GitHub zu finden.

Schnittstelle

Zugriffe auf das Eliona-Kernsystem erfolgen ausschliesslich über die Eliona-API. Für eigene Daten, beispielsweise zur Konfiguration, ist eine Datenbank zur dauerhaften Persistierung zu verwenden. Auf diese Daten sowie auf mögliche Funktionen der App kann von extern nur über eine eigene API zugegriffen werden.

REST API

Damit Apps auf Funktionen und Daten des Eliona-Kernsystems zugreifen können, stellt Eliona eine umfangreiche REST-API sowie WebSockets zur Verfügung. Die Erreichbarkeit dieser API muss über die Umgebungsvariablen API_ENDPOINT und API_TOKEN konfiguriert werden können.

Für den Zugriff auf die REST API und die WebSockets können vorgefertigte Bibliotheken verwendet werden, die bereits alle notwendigen Voraussetzungen berücksichtigen.

Für die Entwicklung kann ein Mock verwendet werden, der den Zugriff über die API ermöglicht, ohne eine vollständige Eliona-Umgebung zu nutzen.

Datenbank

Apps benötigen in der Regel eigene Daten. Das sind beispielsweise:

  • Konfigurationsdaten (allg. Einstellungen, Timeouts, Poll-Intervalle usw.)

  • Daten für den Zugriff auf externe Systeme (Passwörter, API-Endpunkte usw.)

  • Mapping zwischen Eliona-Objekten und externen Einheiten (Assets, Devices usw.)

Diese Daten sind durch die App dauerhaft in einer Datenbank zu persistieren. Diese Datenbank muss über die Umgebungsvariable CONNECTION_STRING konfiguriert werden können. Innerhalb der Datenbank sind diese Daten in einem App-eigenen Schema, typischerweise mit dem Namen der App, abzulegen. Zur Sicherstellung einer übergreifenden Kompatibilität aller Apps müssen die Datenbankzugriffe reibungslos und vollständig mit einem PostgreSQL DMBS funktionieren.

Für den Zugriff auf die Datenbank können vorgefertigte Bibliotheken verwendet werden, die bereits alle notwendigen Voraussetzungen berücksichtigen.

Für die Entwicklung kann ein Mock verwendet werden, der den Zugriff auf eine geeignete Datenbank ermöglicht, ohne eine vollständige Eliona-Umgebung zu nutzen.

App API

Sofern eine App separate Funktionen oder eigene Daten anbietet bzw. benötigt, müssen diese extern durch eine eigene API aufgerufen oder modifiziert werden können. Somit ist es unter anderem möglich, dass die Eliona für die App eigene Konfigurationsoberflächen anbietet.

Die Definition dieser Schnittstelle ist über eine OpenAPI-Beschreibungsdatei mit dem Namen openapi.yaml zu definieren. Dadurch soll eine einheitliche und exakte Beschreibung der Schnittstelle sichergestellt werden. Die Erreichbarkeit der API muss über die Umgebungsvariable API_SERVER_PORT (Standardwert 3000) einstellbar sein.

Die API muss zusammen mit der Funktion der App verfügbar sein. Das bedeutet, dass beim Start einer App auch immer gleichzeitig die API gestartet sein muss.

App Lebenszyklus

Eine erstellte App durchläuft einen Lebenszyklus innerhalb einer Eliona-Umgebung.

  1. Freischaltung

  2. Installation

  3. Initialisierung

  4. Weiterentwicklung

  5. Deinstallation

Damit eine App für einer Eliona-Umgebung zur Verfügung steht bzw. genutzt werden kann, muss die App freigeschaltet werden. Dazu muss der Administrator die App unter ihrem Namen registrieren. Dazu gehört, dass die App innerhalb Eliona versioniert werden kann und dass der für den Zugriff notwendige Token für die Eliona-API generiert und bekannt gegeben wird.

Die Installation stellt sicher, dass eine lauffähige Version der App zur Verfügung steht. In der Regel ist dies ein Docker-Image, das notwendigen Komponenten der App enthält und startet.

Die Initialisierung der App erfolgt im Rahmen des ersten Starts der App innerhalb einer Eliona-Umgebung. Dabei wird dieser Start der App in Eliona registriert und die App selbst kann, sofern erforderlich, ihr Datenbankschema sowie notwendige Datenbankobjekte anlegen und mit Initialwerten befüllen.

Nach dem ersten Start der App können mehrere Weiterentwicklungen die App modifizieren und eine Migration bestehende Strukturen oder Daten erfordern. Dazu können Patches in einer Eliona-Umgebung registriert und die notwendigen Schritte durchgeführt werden.

Wird eine App nicht weiter benötigt, kann sie wieder aus einer Eliona-Umgebung entfernt werden. Das bedeutet, dass die App gestoppt und die lauffähige Version entfernt wird.

Installation

Für die Installation einer App muss auch als Docker Image zur Verfügung stehen, um letztendlich modular in einer Eliona-Umgebung integriert und gestartet werden zu können. Demnach benötigt jede App ein passendes Dockerfile, über das ein Image mit einer lauffähigen Version der App erstellt werden kann. Das Image muss dann alle notwendigen Komponenten der App (funktional, App-API usw.) starten.

Initialisierung

Die Initialisierung der App muss von dieser in Eliona registriert werden. Damit wird der Eliona-Umgebung mitgeteilt, dass die App eingerichtet und verfügbar ist. Voraussetzung ist, dass die App vorher in Eliona freigeschaltet wurde. Folgende Aufgaben sind typisch im Rahmen einer Initialisierung:

  • Registrierung über Eliona-API

  • Anlage Datenbankschema für App

  • Erstellung Datenbankobjekte

  • Anlage Standarddaten

Für die Initialisierung können vorgefertigte Bibliotheken verwendet werden, die bereits alle notwendigen Voraussetzungen berücksichtigen.

Weiterentwicklung und Migration

Für neuere Version einer App müssen diese jeweils in Eliona registriert werden. Dies dient gleichzeitig der Erkennung, welche Version bisher installiert ist und somit ob und welche Migrationsschritte eventuell zu erledigen sind.

Für die Migration können vorgefertigte Bibliotheken verwendet werden, die bereits alle notwendigen Voraussetzungen berücksichtigen.

App Best Practices

Continuous Asset Creation (CAC)

Das Continuous Asset Creation (CAC) ermöglicht es Apps, automatisch neue Geräte und Sensoren zu erkennen und Assets in Eliona anzulegen, einschliesslich des Mappings zwischen ihnen. Hierarchische Beziehungen und vorhandene Bezeichnungen können berücksichtigt werden, während der Benutzer entscheidet, wie er die automatisch erstellten Assets in Eliona verwendet. Das CAC unterstützt auch das Löschen von Assets und ermöglicht die Erstellung von Vorlagen für Dashboards, die die automatisch generierten Assets angemessen darstellen.

App SDK Zusammenfassung der Anforderungen

Die technischen und systemischen Anforderungen für eine App mit dem Eliona App SDK können wie folgt zusammengefasst werden:

  • Die Entwicklung von Apps erfolgt in Go

  • Einsatz der Versionsverwaltung Git

  • App muss registriert und ein Zugriffstoken muss erstellt sein

  • Für Zugriffe Nutzung der Eliona-API über Zugriffstoken

  • Zur Persistierung Nutzung eines eigenen Datenbankschemas

  • Datenbankobjekte und Zugriffe kompatibel für PostgreSQL

  • Datenzugriff und Funktionen von extern nur über eigene API

Die App muss mindestens folgende Umgebungsvariablen unterstützen:

  • API_ENDPOINT: Endpunkt der Eliona-API

  • API_TOKEN: Zugriffstoken auf die Eliona-API

  • CONNECTION_STRING: Datenbank für die Ablage eigener Daten (PostgreSQL)

  • API_SERVER_PORT: Erreichbarkeit der App-eigenen API

Folgende Dateien werden erwartet:

  • Dockerfile: Erstellen eines lauffähigen Images

  • openapi.yaml: Definition und Dokumentation der App-eigenen API

App SDK Ressourcen Übersicht

Für die Entwicklung von Eliona Apps stehen etliche Ressourcen und Bibliotheken zur Verfügung. Diese befinden sich im Eliona Profil auf GitHub.

Im Einzelnen sind folgende Ressourcen zu nennen:

Eliona bei GitHub:

Eliona-API:

Dokumentation Eliona-API:

Eliona Mock:

Template für neue Apps:

Go-Client für Eliona:

Go-Client für API:

Utilities für Go:

🍎
https://github.com/eliona-smart-building-assistant
https://github.com/eliona-smart-building-assistant/eliona-api
https://api.eliona.io
https://github.com/eliona-smart-building-assistant/eliona-mock
https://github.com/eliona-smart-building-assistant/app-template
https://github.com/eliona-smart-building-assistant/go-eliona
https://github.com/eliona-smart-building-assistant/go-eliona-api-client
https://github.com/eliona-smart-building-assistant/go-utils
Eliona by Leicom ITEC AGGitHub
Eliona bei GitHub
GitHub - eliona-smart-building-assistant/go-eliona: Go library for accessing eliona resourcesGitHub
Eliona-Client
GitHub - eliona-smart-building-assistant/go-eliona: Go library for accessing eliona resourcesGitHub
App-Handling
GitHub - eliona-smart-building-assistant/go-eliona: Go library for accessing eliona resourcesGitHub
App-Handling
GitHub - eliona-smart-building-assistant/go-eliona-api-client: Go client library to access Eliona APIGitHub
Client
GitHub - eliona-smart-building-assistant/eliona-mock: Mocks an Eliona environmentGitHub
Eliona Mock
GitHub - eliona-smart-building-assistant/eliona-mock: Mocks an Eliona environmentGitHub
Eliona Mock
GitHub - eliona-smart-building-assistant/go-utils: Go utils library for Eliona App SDKGitHub
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo