Twig-Templating in Eliona

Einführung in Twig Templating

Eliona verwendet -> [Externer Link] Twig, eine leistungsfähige und flexible Templating-Engine für JavaScript und PHP, zur dynamischen Erzeugung von Nachrichteninhalten. Twig ermöglicht es, Templates zu definieren, die von externen Nachrichtendiensten wie SMS, Google Chat, Slack oder E-Mail verwendet werden.

Twig.js Version

Die aktuelle implementierte Version von Twig.js in Eliona ist 1.17.1. Die vollständige Dokumentation und Implementierungsnotizen sind unter folgenden Links verfügbar:


Twig-Syntax und Funktionen

Twig-Syntax ermöglicht es, dynamische Inhalte in Vorlagen einzufügen und zu verarbeiten. Einige häufig verwendete Funktionen sind:

Variablen ausgeben

{{ alarm.val }}  {# Gibt den Wert des Alarms aus #}
{{ asset.name }}  {# Zeigt den Namen des betroffenen Assets an #}

Bedingungen verwenden

{% if alarm.prio == 1 %}
    Achtung: Hohe Priorität!
{% else %}
    Normaler Alarm.
{% endif %}

Schleifen nutzen

{% for tag in alarm.tags %}
    - {{ tag }}
{% endfor %}

Zeichenketten formatieren

{{ alarm.message.come.de | upper }}  {# Gibt den Alarmtext in Grossbuchstaben aus #}

Verfügbare Templates und Variablen in Eliona

Eliona bietet verschiedene Template-Typen für unterschiedliche Anwendungsfälle:

Jedes dieser Templates unterstützt spezifische Variablen, die dynamisch mit den jeweiligen Daten befüllt werden.


Ticket-Template

Verfügbare Variablen

Das Ticket-Template kann zur automatisierten Generierung von Ticket-Benachrichtigungen verwendet werden. Folgende Variablen stehen zur Verfügung:

{
  "ticket": {
    "ticket_id": "Eindeutige ID des Tickets",
    "parent_id": "ID des übergeordneten Tickets, falls vorhanden",
    "title": "Titel des Tickets",
    "description": "Beschreibung des Tickets",
    "priority": "Priorität des Tickets",
    "reason": "Grund oder Ursache des Tickets",
    "state": "Aktueller Status des Tickets",
    "created_by": "Ersteller des Tickets",
    "created_at": "Erstellungszeitpunkt des Tickets",
    "assigned_to": "Zugewiesene Person oder Gruppe",
    "assigned_at": "Zeitpunkt der Zuweisung",
    "closed_at": "Zeitpunkt der Schließung",
    "proj_id": "Projekt-ID",
    "asset_id": "Asset-ID",
    "alarm_id": "Alarm-ID, falls mit einem Alarm verbunden",
    "alarm": "Details zum verknüpften Alarm",
    "modified_by": "Letzter Bearbeiter",
    "modified_at": "Zeitpunkt der letzten Änderung",
    "contact": "Kontaktinformationen",
    "tags": "Liste von Tags, die mit dem Ticket verbunden sind"
  }
}

Beispiel für ein Ticket-Template

Neues Ticket: {{ ticket.title }}

Nachricht:
Ticket-ID: {{ ticket.ticket_id }}
Erstellt von: {{ ticket.created_by }}
Priorität: {{ ticket.priority }}
Beschreibung: {{ ticket.description }}

Alarm-Template

Verfügbare Variablen

Das Alarm-Template basiert auf einem Testdatensatz und enthält umfangreiche Details zu Alarmen und deren zugehörigen Assets.

{
  "alarm": {
    "low": "Unterer Grenzwert",
    "high": "Oberer Grenzwert",
    "tags": "Liste von Tags, die mit dem Alarm verbunden sind",
    "prio": "Prioritätsstufe des Alarms",
    "ack_p": "Gibt an, ob der Alarm bestätigt werden muss",
    "equal": "Gibt an, ob ein Gleichheitscheck durchgeführt wird",
    "enable": "Aktivierungsstatus des Alarms",
    "urldoc": "Dokumentations-URL",
    "func_id": "Funktionale ID des Alarms",
    "msg": "Die aufgelöste Alarm Nachricht,
    "message": {
      "come": {
        "de": "{{asset.name}} ({{alarm.val}})",
        "en": "{{asset.name}} ({{alarm.val}})",
        "fr": "{{asset.name}} ({{alarm.val}})",
        "it": "{{asset.name}} ({{alarm.val}})"
      },
      "gone": "Nachricht bei Ende des Alarms"
    },
    "subject": "Betreff des Alarms",
    "subtype": "Untertyp des Alarms",
    "alarm_id": "Eindeutige Alarm-ID",
    "asset_id": "ID des betroffenen Assets",
    "attribute": "Betroffenes Attribut des Assets",
    "dont_mask": "Maskierungsstatus des Alarms",
    "notify_on": "Benachrichtigungstrigger (z. B. 'R' für Reminder)",
    "check_type": "Typ der Alarmüberprüfung",
    "created_at": "Erstellungszeitpunkt des Alarms",
    "created_by": "Ersteller des Alarms",
    "auto_ticket": "Gibt an, ob automatisch ein Ticket erstellt wird",
    "modified_at": "Zeitpunkt der letzten Änderung",
    "modified_by": "Letzter Bearbeiter",
    "ts": "Zeitstempel des Alarms",
    "val": "Wert des betroffenen Parameters",
    "multi": "Multiplikator für den Alarmwert",
    "ack_ts": "Zeitpunkt der Bestätigung",
    "gone_ts": "Zeitpunkt des Verschwindens des Alarms",
    "ack_text": "Bestätigungstext",
    "ack_user_id": "ID des bestätigenden Benutzers"
  },
  "locale":"Die Sprach- und Regionseinstellung",
  "domain_name": "Der Domainname der Umgebung",
  "asset": {
    "ar": "Aktivierungsstatus",
    "gai": "Globale Asset-ID",
    "lat": "Latitude des Assets",
    "lon": "Longitude des Assets",
    "name": "Name des Assets",
    "tags": "Liste der Tags des Assets",
    "expert": "Expertenmodus aktiviert",
    "storey": "Stockwerk des Assets",
    "urldoc": "Dokumentations-URL des Assets",
    "proj_id": "Projekt-ID",
    "archived": "Archivierungsstatus",
    "asset_id": "Eindeutige Asset-ID",
    "acl_access": "Zugriffsstatus",
    "asset_type": "Typ des Assets",
    "tracker_id": "Tracker-ID",
    "description": "Beschreibung des Assets",
    "acl_permissions": "Zugriffsberechtigungen"
  }
}

Beispiel für ein Alarm-Template

twigKopierenBearbeitenAlarm für {{ asset.name }}

Nachricht:
Der Alarm "{{ alarm.message.come.de }}" wurde ausgelöst.
Attribut: {{ alarm.attribute }}
Wert: {{ alarm.val }}

Passwort-Reset-Template

Verfügbare Variablen

Das Passwort-Reset-Template wird in Eliona verwendet, um Benutzern eine E-Mail mit einem Link zum Zurücksetzen ihres Passworts zu senden.

{
    "host": "Domain der Umgebung, in der das System betrieben wird",
    "password_reset_token": "Einzigartiger Token zum Zurücksetzen des Passworts"
}

Beispiel für ein Passwort-Reset-Template

Hallo,  

um Ihr Passwort zurückzusetzen, klicken Sie bitte auf den folgenden Link:  

<a href="https://{{ host }}/password-reset/{{ password_reset_token }}">Passwort zurücksetzen</a>  

Falls Sie diese Anfrage nicht gestellt haben, können Sie diese E-Mail ignorieren.  

Achten Sie darauf, dass der Link unverändert bleibt, um die Funktionalität zu behalten:  
href="https://{{ host }}/password-reset/{{ password_reset_token }}"

yAxis Formatter

Der yAxis Formatter bestimmt die Darstellung der Achsenbeschriftung in Diagrammen. Er zeigt den aktuellen Wert der Datenreihe zusammen mit zusätzlichen Attributinformationen an.

Verfügbare Variablen für den yAxis Formatter

  • {{unit}} – Einheit des Wertes (z. B. °C, %, kWh)

  • {{value}} – Der aktuelle Wert der Datenreihe

  • {{attribute}} – Name des Attributs

  • {{gai}} – Globale Asset-ID

  • {{aggregatedDataField}} – Datenfeld für die Aggregation

  • {{aggregatedDataRaster}} – Raster, mit dem die Daten aggregiert wurden

  • {{aggregatedDataType}} – Typ der Aggregation (z. B. Durchschnitt, Summe)

Beispiel für einen yAxis Formatter

twigKopierenBearbeiten{{value}} {{unit}} ({{attribute}})

Ergebnis für Temperaturdaten:22.5 °C (Raumtemperatur)


Legend-Template

Das Legend-Template bestimmt die Darstellung der Legendenbeschriftung in Diagrammen. Es beschreibt die Datenreihe, indem es den Namen des Assets oder der Datenreihe mit Attributinformationen kombiniert.

Verfügbare Variablen für das Legend-Template

  • {{unit}} – Einheit des Wertes (z. B. °C, %, kWh)

  • {{attribute}} – Name des Attributs

  • {{gai}} – Globale Asset-ID

  • {{name}} – Name des Assets oder der Datenreihe

  • {{aggregatedDataField}} – Datenfeld für die Aggregation

  • {{aggregatedDataRaster}} – Raster, mit dem die Daten aggregiert wurden

  • {{aggregatedDataType}} – Typ der Aggregation (z. B. Durchschnitt, Summe)

Beispiel für ein Legend-Template

{{name}} - {{attribute}} ({{unit}})

Ergebnis für einen Temperatursensor:Klimaanlage Büro 1 - Raumtemperatur (°C)


Fazit

Twig.js ermöglicht eine flexible und effiziente Nutzung von Templates in Eliona. Durch die Verwendung von Twig-Variablen und -Funktionen können personalisierte Inhalte für Tickets, Alarme und E-Mails generiert werden. Weitere Informationen zur Twig-Syntax sind in der offiziellen Dokumentation verfügbar: -> [Externer Link] Twig.js Wiki.

Last updated

Was this helpful?