Templates

Dateiname

Der Aufbau der Dateinamen muss folgende Struktur befolgen:

{Eventklasse}(-{Status})(-Extended)-{Sprache}.html

Eventklasse:

Hier wird die Eventklasse eingesetzt, für die die Vorlage gelten soll.

Neben den in der PLC definieren Eventklassen gibt es folgende interne Meldeklassen und zugehörige Status:

Status (optional):

Hier wird definiert, für welchen Status die Vorlage benutzt wird. Mögliche Zustände sind:

Extended (optional):

Ein Nutzer erhält diese Vorlage, wenn die Option "Additional Information" in der HMI-Config bei dem Nutzer für die jeweilige Ereignisklasse gesetzt ist. Dies bietet die Möglichkeit, eine einfache und eine informative Vorlage für das gleiche Ereignis erstellen zu können.

Sprache:

Momentan werden folgende Sprachen unterstützt:

Default

Statt einer expliziten Eventklasse kann auch die "Default"-Vorlage verwendet werden. Diese Vorlage wird automatisch benutzt, wenn keine spezifische Eventklassen-Vorlage gefunden wurde.

Die Default-Vorlagen haben folgenden Aufbau:

  • Default-{Sprache}.html

Wird diese Vorlage auch nicht gefunden, wird der Text und der Betreff statisch generiert.

Ereingnis-Zusammenfassungen

Die Vorlagen Summary-{Sprache}.html und MultiSummary-{Sprache}.html werden benötigt, um Sammelmeldungen übersichtlich verschicken zu können.

Der Platzhalter (siehe Platzhalter / Zusammenfassungen) für die Meldungen beinhaltet alle Events, die als Sammlung verschickt werden sollen in ihren jeweiligen Vorlagen. Es wird folglich für jedes enthaltene Ereignis die zugehörige Vorlage für die Einzelmeldung aufgelöst und die Platzhalter durch die Werte ersetzt.

Eine Zusammenfassung kommt zustande, wenn die Anzahl der Ereignisse den Wert in der Config ("Common settings" → "Notification flood suppression" → "Count of messages overall allowed") oder das Ereignis mehr als einmal in der Config definierten Zeit ("Common settings" → "Notification flood suppression" → "Delay in seconds") übersteigt.

Wenn ein Ereignis wiederholt ausgelöst wird, wird die Vorlage Summary-{Sprache}.html verwendet.

Wenn mehrere Ereignisse wiederholt ausgelöst werden, wird die Vorlage MultiSummary-{Sprache}.html verwendet.

Aufbau einer Vorlage

Die Vorlage besteht aus drei Teilen: dem Betreff, Inhalt und Fußzeile. Diese Teile werden als HTML-Tag voneinander abgegrenzt. Benutzt wird, was innerhalb der Tags steht. Der Betreff und der Inhalt sollten vorhanden sein, sonst werden sie statisch generiert.

Betreff (Subject)

Der E-Mail-Betreff wird zwischen dem Tag <subject> und </subject> definiert.

Bei Sammelmeldungen wird dieser Tag nur von der Vorlage der Sammelmeldung berücksichtigt. Das bedeutet, dass bei einer Sammelmeldung nicht der Betreff der betroffenen Ereignisklassen benutzt wird, sondern der Betreff aus der Vorlage der Sammelmeldung.

Inhalt (Template)

Der E-Mail-Inhalt wird zwischen dem Tag <template> und </template> definiert.

Da E-Mails auf HTML basieren, können simple HTML-Tags benutzt werden.

Ein Guide dazu ist auf der Website von Mailchimp zu finden.

Bei Sammelmeldungen wird dieser Inhalt in der Auflistung verwendet.

Footer

Der E-Mail-Footer wird zwischen dem Tag <footer> und </footer> definiert.

Dieser dient dazu, Informationen nur einmal in der E-Mail anzuzeigen auch bei Sammelmeldungen. Das bedeutet, dass in einer Sammelmeldung dieses Tag nur aus dem Template der Sammelmeldung benutzt wird.

Der Tag aus den einzelnen Ereignisvorlagen wird ignoriert.

Platzhalter

Für alle Ereignisse

Platzhalter

Bedeutung

EventClass

Die Eventklasse.

Description

Die Beschreibung der Eventklasse.

DeviceName

Name des Gerätes, auf dem das Ereignis ausgelöst wurde.

DeviceAddress

Adresse des Gerätes, auf dem das Ereignis ausgelöst wurde.

DevicePort

Port der Anwendung des Gerätes, auf dem das Ereignis ausgelöst wurde.

DeviceProjectName

Name des Projektes, in dem das Ereignis ausgelöst wurde.

Device

Informationen über das Gerät in folgender Syntax: ${deviceName} - ${deviceProjectName} (${deviceAddress}:${devicePort})

Date

Datum des Ereignisses im Format "D" (siehe Microsoft Dokumentation „standard-date-and-time-format-strings#LongDate“).

Time

Zeit des Ereignisses im Format "T" (siehe Microsoft Dokumentation „the-long-time-t-format-specifier“).

DateTime

Datum und Zeit des Ereignisses in dem Standard-Format der jeweiligen Sprache (siehe Microsoft Dokumentation „how-standard-format-strings-work“).

HmiLink

Der Link zur HMI. Wird in der Config-Seite des HMI-Servers konfiguriert.

SubscribedEventClassId

Die Eventklasse, weshalb der Nutzer benachrichtigt wird. Diese kann abweichen, wenn der Benutzer unter der Eventklasse -99: "Alle empfangen" / "Receive all" eingetragen ist. Dann ist dieser Wert beispielsweise -99.

SubscribedEventClassDescription

Die Beschreibung der Eventklasse, weshalb der Nutzer benachrichtigt wird.

State

Der Status des Events. Beispielsweise Present, Present|Ack, Gone, Gone|Ack.

Symbol

Das Symbol, welches das Event ausgelöst hat.

TimeCaptured

Eine Auflistung von allen Zeitpunkten, an denen dieses Ereignis aufgetreten ist. Wenn es keine Zusammenfassung einer Meldeflut ist, wird dieser Platzhalter mit einem Datum ersetzt mit dem Format "O" ersetzt. Bei einer Sammelmeldung wird der Platzhalter mit einer Auflistung der Daten im Format "O" ersetzt.

Errors

Wenn unerwartete Betriebsverhalten aufgetreten sind, werden diese als aufzählender Text eingefügt.

Subject

Eine kurze Beschreibung des Ereignisses

Interne Events:

  1. Verbindung
    Diese Vorlage sollte Informationen beinhalten, um die Verbindung wiederherzustellen (siehe Tabelle oben).
  2. HMI-Extensions:

Platzhalter

Bedeutung

HMI.ConfigVersion

Config-Version der HMI-Erweiterung, die das Ereignis ausgelöst hat

HMI.DebuggerAttached

Gibt an, ob ein Debugger an der HMI-Erweiterung angehangen ist. Sprachabhängig.

HMI.Error

Gibt Informationen zu dem Property "Error" der HMI-Erweiterung an, die das Ereignis ausgelöst hat.

HMI.ExtensionName

Name der HMI-Erweiterung, die das Ereignis ausgelöst hat.

HMI.Guid

Guid der HMI-Erweiterung, die das Ereignis ausgelöst hat.

HMI.Licensed

Gibt an, ob die HMI-Erweiterung lizenziert ist. Sprachabhängig.

HMI.PackageVersion

Package-Version der HMI-Erweiterung, die das Ereignis ausgelöst hat.

HMI.Remote

Gibt an, ob die HMI-Erweiterung "Remote" ist. Sprachabhängig.

HMI.Required

Gibt an, ob die HMI-Erweiterung "Required" ist. Sprachabhängig.

HMI.State

Der State der HMI-Erweiterung, die das Ereignis ausgelöst hat.

HMI.ThirdParty

Gibt an, ob die HMI-Erweiterung von einem Drittanbieter ist. Sprachabhängig.

HMI.Updated

Gibt an, wann die HMI-Erweiterung aktualisiert wurde.

HMI.Version

Die Version der HMI-Erweiterung, die das Ereignis ausgelöst hat.

HMI.Visibility

Gibt die Sichtbarkeit der HMI-Erweiterung an, die das Ereignis ausgelöst hat.

  1. Wartung

Platzhalter

Bedeutung

Maintenance.ShutoffDate

Das Datum und Uhrzeit, bei dem sich der Wartungsmodus automatisch deaktiviert im Format der jeweiligen Sprache.

PLC Events

Platzhalter

Bedeutung

TF8040.ObjectName

Objektname des Symbols, das das Ereignis ausgelöst hat.

TF8040.ObjectDescription

Objektbeschreibung des Symbols, das das Ereignis ausgelöst hat.

TF8040.MessageEventTexts

"MessageEventText" des Symbols, das das Ereignis ausgelöst hat.

TF8040.StatusFlags

"Status flags" des Symbols, das das Ereignis ausgelöst hat.

TF8040.SymbolPath

Symbolpfad des Symbols, das das Ereignis ausgelöst hat.

TF8040.LockPrio

"Lock prio" des Symbols, das das Ereignis ausgelöst hat.

TF8040.Versions

Versionen der Runtime des Symbols, das das Ereignis ausgelöst hat. Diese werden in tabellarischer Form ausgegeben. Der Stil ist nicht veränderbar.

TF8040.BuildingName

Gebäudename, der dem Gerät in der Konfiguration zugeordnet wurde.

PLC-Events tragen die Nummern 0-254.

Zusammenfassungen

Basis

Platzhalter

Bedeutung

Summary.Counter

Wie oft wurde das Ereignis ausgelöst?

Summary.LastRisen

Wann das Ereignis das letzte Mal ausgelöst wurde. Wird als Datum mit dem Format "O" angegeben.

Summary.Events

Ersetzt diesen Platzhalter mit den/der Vorlage(n) für das/die Event (s), die wiederholt ausgelöst wurden.

Zusammenfassung von einer Eventklasse-Status-Kombination

Platzhalter

Bedeutung

Summary.FirstOccurrence

Das Datum in der jeweiligen Sprache, an dem das Ereignis das erste Mal in dieser Folge ausgelöst wurde.

Summary.LastOccurrence

Das Datum in der jeweiligen Sprache, an dem das Ereignis das letzte Mal in dieser Folge ausgelöst wurde.

Multiple Ereigniszusammenfassungen

Platzhalter

Bedeutung

Summary.EventClasses

Alle Ereignisklassen der zusammengefassten Ereignisse, sortiert aufgelistet.

Speicherort der Vorlagen

Die Vorlagen werden als Bestandteil des NuGet-Paketes ausgeliefert.

Diese werden unter {HMI-Projekt-Ordner}\BaMessageSystem\Templates ausgeliefert und in das Projekt eingehängt.

Zudem wird ein Ordner 'UserTemplates' angelegt. Dieser wird bei der Auswahl von Vorlagen priorisiert. In diesen können Vorlagen kopiert und verändert werden.
Änderungen in diesem Ordner bleiben auch bestehen, wenn das NuGet-Paket entfernt oder aktualisiert wird.

Vorlagen im 'Template'-Ordner sollten nicht bearbeitet werden, da Änderungen hier nur bis zu einer Änderung des Paketes bestehen bleiben.

Beispiel Auflösung der Dateinamen

Eventklasse 30, Present, Extended Information und Deutsch

Die Abarbeitung erfolgt chronologisch nach den folgenden Punkten: