Message Templates

Message templates controls the content of messages sent as Alarms/Restores or periodic exports.

A template can include static text as well as dynamic data using the 'tags' defined below.

Every destination type (email, SMS etc..) comes with a default message template.

For example, the default template for emails looks like this:

[ACTIONMESSAGE]
Message generated [ISODATE] [ISOTIME]

The default template for SMS messages looks like this:

[ACTIONMESSAGE] @ [ISOTIME]

Because SMS messages are typically limited in size, the default template contains less text and no additional line breaks.

When an alarm is generated, and the action is to send a message, the system will fetch the “Message” of the alarm action, and insert this in place of the [ACTIONMESSAGE] tag in the default template. Any tags in the Action Message are also substituted.

For example, the alarm's action message may look like this:

It is [FV<TEMPERATURE>] [FU<TEMPERATURE>] now!

When this is sent as an email using the default template, the result will be something like:

It is 25.6 °C now!
Message generated 2022-12-31 15:00:02

The templates for each destination can be changed directly under Destination List settings.

Message Templates Tags

The following tags are available in message templates:

Tag Purpose Example
[MESSAGEID] A unique message id ABC123-2-14-7474
[ZULUTIME] Zulu/UTC time when message was triggered 2019-12-31T23:59:52Z
[ISODATE] Date when message was triggered, in controller time zone, ISO format 2019-12-31
[USDATE] Date when message was triggered, in controller time zone, US format 12/31/19
[ISOTIME] Time when message was triggered, in controller time zone, ISO format 23:59:59
[USTIME] Time when message was triggered, in controller time zone, US format 11:59:59 PM
[UNIXTIME] Time when message was triggered, UTC, as seconds since 1970-01-01 1676675802
[UNIXTIMEMS] Time when message was triggered, UTC, as milliseconds since 1970-01-01 1676675802000
[WEEKDAY] Weekday when message was triggered, in controller time zone Mon .. Sun
[MONTH] Month when message was triggered, in controller time zone Jan .. Dec
[DAY] Day when message was triggered, in controller time zone 31
[EZEID] ezeio serial number ABC-987
[EZENAME] ezeio name From Configure→System→Name
[EZENAME#] ezeio partial name, #=1-5 From Configure→System→Name, split by comma, semicolon or pipe
[EZENOTE] ezeio note From Configure→System→Note
[EZENOTE#] ezeio note line, #=1-5 From Configure→System→Note, split by line
[TYPE] Message type ALARM, REALARM, RESTORE, INFO, EXPORT
[SOURCE] Message source SEND, LOG, SCRIPT
[GROUPNAME] Name of the group where the ezeio is assigned From Group Settings→Group Name
[GROUPNAME#] Partial name of the group, #=1-5 From Group Settings→Group Name, split by comma, semicolon or pipe
[SOURCENAME] Name of the source alarm From Configure→Alarms→Name
[SOURCENAME#] Partial name of the source alarm, #=1-5 From Configure→Alarms→Name, split by comma, semicolon or pipe
[ACTIONNAME] Name of the action source action From Configure→Alarms→Alarm action→Name
[ACTIONNAME#] Partial name of the action source action, #=1-5 From Configure→Alarms→Alarm action→Name, split by comma, semicolon or pipe
[GPS] GPS coordinates (if available) Lat:38.671447, Lng-121.152385:, Ele:105.2
[GPSLINK] GPS coordinates Google maps link https://maps.google.com/maps?q=
[GPSSIGNAL] Signal quality of the GPS receiver 14
[RSSI] Cellular signal RSSI 0 (no signal) .. 31 (full signal)
[P#] Message (#=1-4) parameters as integers (see script command “Event”)
[PD#] Message (#=1-4) parameters as floats (see script command “Event”)
[FV#] Field value, #=1-90 formatted 318.2
[FR#] Field value, #=1-90 unformatted 318.2
[FU#] Field unit, #=1-90 psi
[FN#] Field name, #=1-90 Pressure
[FT#] Field asset tag (first only), #=1-90 PRESSURE
[F#] Field status, #=1-90, as “Field name: Value Unit”, same as [FN#]: [FV#] [FU#] Pressure: 318.2 psi
<AssetTag> Can be used in place of the Field number, Example: [FV<outsidetemp>]
<AssetTag:SUM> Works with FV and FR. Returns the sum of all field values with the given AssetTag, Example: [FV<outsidetemp:SUM>] 172.2
<AssetTag:MAX> Works with FV and FR. Returns the highest value of all field values with the given AssetTag, Example: [FV<outsidetemp:MAX>] 45.6
<AssetTag:MIN> Works with FV and FR. Returns the lowest value of all field values with the given AssetTag, Example: [FV<outsidetemp:MIN>] 38.2
<AssetTag:AVG> Works with FV and FR. Returns the mean (average) value of all field values with the given AssetTag, Example: [FV<outsidetemp:AVG>] 43.02
<AssetTag:BOR> Works with FV and FR. Returns the binary OR value of all field values with the given AssetTag, Example: [FV<outsidetemp:BOR>] 47
<AssetTag:ALL> Works with FV and FR. Returns all field values with the given AssetTag separated by comma, Example: [FV<outsidetemp:ALL>] 38.2, 44.1, 44.3, 45.6
[TEXT] Event text (see script command “Event”)
[ACTIONMESSAGE] The message/template from the action (typically used in the destination list)
[RECIPIENT] The name of the destination (recipient) for this message (from Destination→Name)
[DESTINATION] The address of the destination (from Destination→Address)
[DESTINATIONTOKEN] The token of the destination (from Destination→Token)
[DVC#COMMSTAT] Device communication status, #=1-40 n/a, ERROR, WARNING, WARNING2, WARNING3, OK, OK2, OK3
[DVC#OPSTAT] Device operational status, #=1-40 n/a, ERROR, WARNING, OK
[DVC#APPSTAT] Device application status, #=1-40 n/a, ERROR, WARNING, OK, OK2, OK3, OK4, OK5
[DVC#STATUS] Device overall status, #=1-40 OK or if there's an issue COMM:ERROR
[DVCSTATUS] List all devices overall status #1 Pressure sensor: OK
#2 Energy meter: OP WARNING
#3 Geiger counter: APP ERROR
[DVCWARNINGS] List all device warnings and errors (if any) #2 Energy meter: OP WARNING
#3 Geiger counter: APP ERROR
[DVCERRORS] List all device errors (if any) #3 Geiger counter: APP ERROR

Template automation

It is also possible to create simple loops to search for field asset tags using the special [FORTAG tag delimiter]…[FORTAG] syntax. This is best explained with an example of template code:

Fieldname,Value,Unit
[FORTAG MYTAG \n][FN],[FV],[FU][FORTAG]

The [FORTAG MYTAG \n] construct will iterate over all fields, selecting those that match the asset tag “MYTAG”. For each matched field, Field name ([FN]), Field value ([FV]) and Field unit ([FU]) is added, followed by the delimiter \n (new line).

Note that no field number is necessary for the Fx-tags, as the field number is automatic from the tag-search loop.

The output of the above will be in CSV format, thus something like this:

Fieldname,Value,Unit
Temperature,53.2,C
Pressure,12.1,psi

Within a FORTAG loop, the following tags are valid:

[FV] Field value formatted 318.2
[FR] Field value unformatted 318.2
[FU] Field unit psi
[FN] Field name Pressure
[FT] Field asset tag (first only) PRESSURE
[F] Field status, as “Field name: Value Unit”, shorthand for [FN]: [FV] [FU]