Eliona verwendet , 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"
}
}
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 }}"
Achten Sie darauf das der Link unverändert bleibt um die Funktionalität bei 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)
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: .