Erm protocol

Protocol used by Starlink GPS tracking devices manufactured by ERM Advanced Telematics headquartered in Israel.
flespi parses the Erm protocol messages into a JSON object with the fields listed below in the Parameters tab.

To connect your tracker using the ERM protocol, you need to have a erm channel created first.

Point your tracker to the channel's domain name:port via SMS or configuration tool provided by the vendor.

Then create a device instance for your tracker and use a 15-character IMEI (usually specified on the tracker casing) in the ident field.

Use the Toolbox tab on the device screen to check if the messages are coming.

Parsing note: to make sure Starlink messages are parsed correctly, the fields in the dynamic event structure (parameter 0177) should be separated by commas, e.g. #EDT#,#EID#,#PDT#,#LAT#,#LONG#,#SPD#,#HEAD#,#ODO#,#LAC#,#CID#,#VIN#,#VBAT#.

accident.direction
number
Direction of accident
Message Type 6 with Event code 41
accident.direction.description
string
Description of accident direction
Message Type 6 with Event code 41
accident.event
boolean
Accident event detected
Message Type 6 with Event code 41
ain
number
volts
Voltage on the analog input
Message Type 6 with Event code 12,
Message Type 6 with Event code 13,
Message Type 7,
Parameter #V3#,
Parameter #V4#
ain.voltage.low.status
boolean
Analog input's voltage is below the threshold
Message Type 6 with Event code 12,
Message Type 6 with Event code 13
alarm.event
boolean
Alarm event triggered
Message Type 6 with Event code 36
battery.health
number
percentage
Battery health level (SoH)
Parameter #BATH#
battery.level
number
percentage
Internal battery level
Parameter #BATC#
battery.low.status
boolean
Battery low status
Message Type 6 with Event code 11
battery.voltage
number
volts
Internal battery voltage
Parameter #V2#,
Parameter #VBAT#
can.param
number
CAN parameter value
Parameter #CV1#,
Parameter #CV2#,
Parameter #CV3#,
Parameter #CV4#
channel.id
number
ID of channel that received a message
current.satellites.visible
number
Current number of visible satellites
Parameter #SATN#
destination.number
number
Selected destination number
Message Type 6 with Event code 34,
Parameter #DEST#
device.id
number
ID of device that received a message
device.name
string
Name of device that received a message
device.temperature
number
celsius
Temperature of device
Parameter #TVI#
device.type.id
number
ID of device type of device that received a message
din
number
Digital inputs bitmask
Message Type 16,
Message Type 6 with Event code 14,
Message Type 6 with Event code 15,
Parameter #IN1#,
Parameter #IN2#,
Parameter #IN3#,
Parameter #IN4#,
Parameter #INC#,
Parameter #IND#,
Parameter #INE#,
Parameter #INF#
door.open.status
boolean
Door open status
Message Type 20
dout
number
Digital outputs bitmask
Message Type 12,
Parameter #OUT1#,
Parameter #OUT2#,
Parameter #OUT3#,
Parameter #OUT4#,
Parameter #OUTA#,
Parameter #OUTB#,
Parameter #OUTC#,
Parameter #OUTD#
driver.id
string
Driver identification card id
Parameter #DID#
engine.ignition.on.duration
number
seconds
Duration when engine is on
Message Type 6 with Event code 5
engine.ignition.status
boolean
Engine ignition or ACC status
Message Type 20,
Message Type 6 with Event code 1,
Message Type 6 with Event code 14,
Message Type 6 with Event code 15,
Message Type 6 with Event code 24,
Message Type 6 with Event code 25,
Message Type 6 with Event code 4,
Message Type 6 with Event code 5,
Parameter #ENG#,
Parameter #IGN#
engine.motorhours
number
hours
Total calculated engine motorhours
Parameter #TDUR#
engine.rpm
number
rpm
Engine RPM read
Parameter #RPM#
error.info
string
Additional information about error sent by device
Message Type 6 with Event code 2
error.level
number
Protocol-specific error level
Message Type 6 with Event code 2
error.level.description
string
Protocol-specific error level description
Message Type 6 with Event code 2
error.type
number
Protocol-specific error identification number
Message Type 6 with Event code 2
error.type.description
string
Protocol-specific error error description string
Message Type 6 with Event code 2
event.code
string
Protocol-specific event code string
Parameter #EDSC#
event.enum
number
Protocol-specific event code
Parameter #EID#
external.device.id
number
External device ID
Message Type 6 with Event code 33
external.powersource.status
boolean
External power source connection status
Message Type 6 with Event code 10,
Message Type 6 with Event code 9
external.powersource.voltage
number
volts
External power voltage
Parameter #V1#,
Parameter #VIN#
fuel.level
number
percentage
Fuel level percentage
Parameter #CFL#,
Parameter #CFL2#
geofence.id
number
Geofence ID
Message Type 6 with Event code 7,
Message Type 6 with Event code 8
geofence.status
boolean
Geofence entered status
Message Type 6 with Event code 7,
Message Type 6 with Event code 8
gnss.signal.level
number
Current average signal level of visible satellites
Parameter #GSSN#
gsm.cellid
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) base station ID
Parameter #CID#
gsm.jamming.alarm.status
boolean
Alarm status for the Mobile network (GSM, 3G, 4G, LTE, 5G, ...) jamming
Parameter #JAM#
gsm.jamming.event
boolean
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) signal jamming detected
Message Type 6 with Event code 42,
Message Type 6 with Event code 43
gsm.lac
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) location area code
Parameter #LAC#
gsm.mcc
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) country code
Parameter #NC#
gsm.mnc
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) code
Parameter #NC#
gsm.network.name
string
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) operator name
Message Type 6 with Event code 23
gsm.network.roaming.status
boolean
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) in roaming mode
Message Type 6 with Event code 23
gsm.network.type
string
The type of the Mobile network the device is currently registered to
Parameter #NT#
gsm.operator.code
string
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) operator code, which is MCC joined with MNC
Parameter #NC#
gsm.signal.dbm
number
dbm
Strength of the Mobile network (GSM, 3G, 4G, LTE, 5G, ...) signal
Parameter #CSS#
hood.open.status
boolean
Hood open status
Message Type 20
ibutton.code
string
Hexadecimal code of connected iButton
Message Type 6 with Event code 16,
Parameter #DAL#
ident
string
Device unique identifier like serial number, IMEI, etc
idle.status
boolean
Vehicle is in idling state
Message Type 6 with Event code 22,
Message Type 6 with Event code 79
idle.status.duration
number
seconds
Duration of vehicle being in the last idling state
Parameter #IDL#
immobilizer.data
string
Immobilizer rule associated data
Message Type 6 with Event code 20,
Message Type 6 with Event code 21
immobilizer.rule
number
Immobilizer rule number
Message Type 6 with Event code 20
immobilizer.state
string
Immobilizer state
Message Type 6 with Event code 19,
Message Type 6 with Event code 20,
Message Type 6 with Event code 21,
Message Type 6 with Event code 35,
Parameter #IARM#
immobilizer.trigger.input
number
Input switches bitmask, that triggered immobilizer violation event
Message Type 6 with Event code 35
lca.alarm.armed.status
boolean
Armed state
Message Type 20
lca.alarm.connection.status
boolean
Communication state
Message Type 20
lca.alarm.serial.number
number
Alarm serial number
Message Type 20
lca.alarm.siren.status
boolean
Sirene activate state
Message Type 20
lca.alarm.timestamp
number
Lca alarm timestamp
Message Type 20
lca.alarm.version
number
Alarm version
Message Type 20
location.filter.reason
number
Location filter reason
Parameter #LOCF#
location.source
number
Location source: 0 - location is invalid, 1 - GNSS location, 2 - Cellular location, 3 - Static location
Parameter #LOCS#
max.position.speed
number
km/h
Maximum speed on segment
Message Type 6 with Event code 6
motorcycle.accident.event
boolean
Motorcycle accident event
Message Type 6 with Event code 32
motorcycle.alarm
boolean
Motorcycle alarm event
Message Type 6 with Event code 27
motorcycle.alarm.reason.enum
number
Motorcycle alarm event reason: 1 - ignition switch, 2 - tilt sensor, 3 - shck sensor, 4 - port E
Message Type 6 with Event code 27
motorcycle.alarm.status
boolean
Motorcycle alarm status: true - armed, false - disarmed
Message Type 6 with Event code 28,
Message Type 6 with Event code 29
motorcycle.fall.angle
number
degrees
Motorcycle fall angle
Message Type 6 with Event code 31,
Message Type 6 with Event code 32
motorcycle.fall.event
boolean
Motorcycle fall event
Message Type 6 with Event code 31
motorcycle.valet.mode.event
boolean
Motorcycle enters valet mode event
Message Type 6 with Event code 30
movement.status
boolean
Current movement state
Message Type 6 with Event code 44,
Message Type 6 with Event code 45,
Message Type 6 with Event code 58,
Message Type 6 with Event code 59,
Parameter #DRV#
next.message
number
minutes
Estimated time until the next transmission
Parameter #NXT#
overspeeding.event
boolean
Overspeeding detected
Message Type 6 with Event code 6
payload.text
string
Text Payload received from device
Message Type 6 with Event code 33
peer
string
IP:port from which device connecting to the channel
position.accuracy
number
meters
Position data accuracy in meters
Parameter #LOCA#
position.altitude
number
meters
Altitude value for position
Parameter #ALT#,
Parameter #ALTD#
position.direction
number
degrees
Heading angle at position detection moment
Parameter #HEAD#
position.fix.type
number
GNSS fix type enum (0 = "not fixed", 1 = "2D", 2 = "3D", null = "unknown")
Parameter #FIX#
position.gnss.signal.level
number
Average GNSS satellite signal level at the last GPS fix
Parameter #GSS#
position.hdop
number
Horizontal dilution of precision
Parameter #HDOP#
position.latitude
number
degrees
Latitude coordinate value
Parameter #LAT#,
Parameter #LTDD#
position.longitude
number
degrees
Longitude coordinate value
Parameter #LGDD#,
Parameter #LONG#
position.pdop
number
Position dilution of precision
Parameter #PDOP#
position.satellites
number
Quantity of satellites used to calculate coordinates for given position information
Parameter #SATU#
position.satellites.visible
number
The number of visible GPS satellites at the time the location was received
Parameter #SAT#
position.speed
number
km/h
Instant speed at position detection moment
Parameter #SPD#,
Parameter #SPDK#
position.timestamp
number
seconds
Timestamp when coordinates where calculated
Parameter #PDI#,
Parameter #PDT#
position.vdop
number
Vertical dilution of precision
Parameter #VDOP#
protocol.id
number
ID of protocol
protocol.version
string
Protocol version string
Message Type 1
report.reason
number
Transmission reason code
Message Type 6 with Event code 18
sensor.humidity
number
percentage
Humidity sensor value, i.e. relative air humidity level
Parameter #TH1#,
Parameter #TH2#,
Parameter #TH3#,
Parameter #TH4#
sensor.id
string
Sensor ID
Parameter #TI1#,
Parameter #TI2#,
Parameter #TI3#,
Parameter #TI4#
sensor.state
number
Sensor state code: 0 - sensor error, 1 - temperature is valid, 2 - temperature is below valid range, 3 - temperature is above valid range
Parameter #TS1#,
Parameter #TS2#,
Parameter #TS3#,
Parameter #TS4#
sensor.temperature
number
celsius
Temperature sensor value
Message Type 6 with Event code 56,
Parameter #TV1#,
Parameter #TV2#,
Parameter #TV3#,
Parameter #TV4#
server.timestamp
number
seconds
Timestamp when server received a message
software.version
string
Software version string
Message Type 1,
Parameter #VER#
starter.duration
number
seconds
Time used to run engine by starter
Parameter #STRT#
timestamp
number
seconds
Message timestamp
Parameter #EDI#,
Parameter #EDT#
total.idle.time
number
seconds
Total time that vehicle was in idling state
Message Type 6 with Event code 22,
Message Type 6 with Event code 79
towing.event
boolean
Towing event detected
Message Type 6 with Event code 26
transmition.channel
string
Transmition channel
Parameter #CU#
trip.engine.motorhours
number
hours
Engine hours for current trip
Parameter #DUR#
vehicle.mileage
number
km
Total calculated mileage
Parameter #ODO#,
Parameter #ODOD#
x.acceleration
number
g
Accelerometer value X
Message Type 6 with Event code 41
y.acceleration
number
g
Accelerometer value Y
Message Type 6 with Event code 41
z.acceleration
number
g
Accelerometer value Z
Message Type 6 with Event code 41
Properties
Custom
custom
Execute custom command
command: Command number
payload: Payload
Request immobilizer rule
{"command":23,"payload":"1"}
Request geo-zone configuration
{"command":10,"payload":"02"}
Request location (with 10 sec timeout to wait GNSS fix)
{"command":5,"payload":"10"}
Get param
getparam
Get configuration param value
param: Param number
Output off
output_off
Output off
outnum: Number/id of output
Output on
output_on
Output on
outnum: Number/id of output
Set param
setparam
Set configuration param value
param: Param number
value: Param value