Fleet Freedom
Main Site
Overview
WebSocket
JavaScript
Behaviours
Provisioning
Pictures
Reports
Events
Return to site

Writing better notifications

New Feature
New in 4.5
Monday, May 1, 2017
By Alex Lein

Back in the middle of last year, we implemented a new feature in the notifications system to allow for dates and times to be transformed from UTC to the receiving user's local timezone. This week we are expanding on this system to provide even more flexibility to script authors for converting dates, times, and numbers.

Replacement format

When writing a script, the Notification object contains a dictionary where the key matches a specifically formatted pattern in the subject and/or body. That pattern should be formatted as either {name} for dates, or {name:hint} for dates and numbers. Both the name and hint should follow the codified format.

Replacement context hints for dates

One of the new features is the ability for the script author to add a specific context to the dates as they are changed.

Using the following replacements as an example: { "dts": new Date(), "dts:date": new Date(2008,5,4), "position": asset.position.dts }
All dates and times are given as UTC.

  1. This template will replace the {dts} with a time if the value of dts is "today", or the full date and time string if not.
  2. This template will replace the {dts:time} with a time no matter what day it is "today", and {dts:date} will be the specified date from June 2008.
  3. This template will not replace the {dts:time} at all because the key "dts:time" is not in the replacements, but {position} will be replaced.
  4. This template will replace the {dts:iso} as a UTC ISO-8601 format good for computers to parse, and {dts:utc} as the date/time in UTC (instead of the user's chosen timezone) based on the user's preferred format.

Context hints reference for dates

iso
ISO-8601 formatted UTC date string
utc
UTC date string formatted based on receiving user's preferences
date
Date string in local time for the receiving user
time
Time string in local time for the receiving user
datetime
Full date and time string in local time for the receiving user

For all others context hints (including not specified) the date is compared against the receiving user's current local time, and when the dates are the same, a time string is used, otherwise the full date and time.

Replacement context hints for numbers

First off, all numbers in the Notification replacements are converted to double-precision floating point numbers, even if the value given by the script is an integer. Your next consideration is that numbers can mean any number of things, but we've done our best to include all relevant or necessary conversions. And lastly, the system assumes all numbers to be metric until conversion.

Distance

Using the following replacements as an example: { "num": 838345.29 }
All distances are assumed to be given in kilometres (Km).

  1. This template will replace the {num:distance} with the user's preferred measurement system, rounded to one decimal place, a space, then the unit suffix. ie; "838345.3 Km" or "520923.6 mi".
  2. This template will replace the {num:km} with the metric value rounded to one decimal place, and {num:mi} as the US Standard value rounded to one decimal place.

Speed

Using the following replacements as an example: { "num": 45.29 }
All speeds are assumed to be given in kilometres per hour (Km/h).

  1. This template will replace the {num:speed} with the user's preferred measurement system, rounded top the nearest integer value, a space, then the unit suffix. ie; "45.3 Km/h" or "28.1 mph".
  2. This template will replace the {num:kmh} with the metric (Km/h) value rounded to the nearest integer, and {num:mph} as the US Standard (mph) value rounded to the nearest integer.

Temperature

Using the following replacements as an example: { "num": 36.71 }
All temperatures are assumed to be given in degrees Celcius (°C).

  1. This template will replace the {num:temperature} with the user's preferred measurement system, where metric (Celcius) values are rounded to one decimal place, and US Standard (Fahrenheit) values are rounded to the nearest integer. ie: "36.7 °C" or "98 °F".
  2. This template will replace the {num:c} with the metric (Celcius) values are rounded to one decimal place, and {num:f} as the US Standard (Fahrenheit) values are rounded to the nearest degree.

Weight

Using the following replacements as an example: { "num": 99.7185 }
All weights are assumed to be given in kilograms (Kg).

  1. This template will replace the {num:weight} with the user's preferred measurement system, where metric (kilogram) values are rounded to two decimal places, and US Standard (lbs) values are rounded to one decimal place. Ie: "99.72 Kg" or "219.8 lbs".
  2. This template will replace the {num:kg} with the metric (Kg) values are rounded to two decimal places, and {num:lbs} as the US Standard (lbs) values are rounded to one decimal place.

Volume

Using the following replacements as an example: { "num": 12.55 }
All volumes are assumed to be given in litres (L).

  1. This template will replace the {num:volume} with the user's preferred measurement system, where metric (litres) values are rounded to one decimal place, and US Standard/British (gallons/imperial gallons) values are rounded to two decimal places. Ie: "12.6 L" or "3.32 gal" or "2.76 IG".
  2. This template will replace the {num:l} with the metric (litre) values are rounded to two decimal places, {num:gal} as the US Standard (gallon) values are rounded to one decimal place, and {num:ig} as the British (imperial gallon) values are rounded to one decimal place.

Fuel Economy

Using the following replacements as an example: { "num": 4.539 }
All volumes are assumed to be given in litres per 100 kilometers (L/100Km).

  1. This template will replace the {num:fuel} with the user's preferred measurement system, where metric (L/100Km) values are rounded to two decimal places, and US Standard (mpg) values are rounded to one decimal place. Ie: "4.54 L/100Km" or "51.8 mpg".
  2. This template will replace the {num:l100km} with the metric (L/100Km) values are rounded to two decimal places, {num:mpg} as the US Standard (mpg) values are rounded to one decimal place, and {num:mpig} as the British (mpig) values are rounded to one decimal place.

Context hints reference for numbers

distance
Formats the number as a distance in the user's preferred measurement system.
km or kms
Formats the number as a distance in kilometers.
mi or mile or miles
Formats the number as a distance in miles.
speed
Formats the number as a speed in the user's preferred measurement system.
kmh or km-h or kph
Formats the number as a speed in kilometers per hour.
mph or mih
Formats the number as a speed in miles per hour.
temp or temperature
Formats the number as a temperature in the user's preferred measurement system.
c or celsius
Formats the number as a temperature in degrees celsius.
f or fahrenheit
Formats the number as a temperature in degrees fahrenheit.
weight
Formats the number as a weight in the user's preferred measurement system.
kg or kgs
Formats the number as a weight in kilograms.
lb or lbs
Formats the number as a weight in pounds.
volume
Formats the number as a volume in the user's preferred measurement system.
l or litre or litres or liter or liters
Formats the number as a volume in litres.
gal or gals or gallon or gallons
Formats the number as a volume in US (standard) gallons.
ig or igs
Formats the number as a volume in British (imperial) gallons.
fuel or economy
Formats the number as a fuel economy in the user's preferred measurement system.
l100km or l-100km
Formats the number as a fuel economy in litres per 100 kilometers (L/100Km).
mpg
Formats the number as a fuel economy in miles per US (standard) gallon.
mpig
Formats the number as a fuel economy in miles per British (imperial) gallon.

For all others context hints (including not specified) the number will be put into the notification unchanged and with all decimal places.

  • Back to Behaviours Articles
  • Full Behaviours Reference
Trak iT® Wireless and Fleet Freedom® are Trademarks of Trak iT® Wireless Inc.
All content contained within this site is the property of Trak iT® Wireless unless otherwise stated.