Erm protocol

Integration level: params + settings
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.
accident.direction
number
Direction of accident
accident.direction.description
string
Description of accident direction
accident.event
boolean
Accident event detected
ain
number
volts
Voltage on the analog input
ain.voltage.low.status
boolean
Analog input's voltage is below the threshold
alarm.event
boolean
Alarm event triggered
battery.health
number
percentage
Battery health level (SoH)
battery.level
number
percentage
Internal battery level
battery.low.status
boolean
Battery low status
battery.voltage
number
volts
Internal battery voltage
can.param
number
CAN parameter value
channel.id
number
ID of channel that received a message
current.satellites.visible
number
Current number of visible satellites
destination.number
number
Selected destination number
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
device.type.id
number
ID of device type of device that received a message
din
number
Digital inputs bitmask
door.open.status
boolean
Door open status
dout
number
Digital outputs bitmask
driver.id
string
Driver identification card id
engine.ignition.on.duration
number
seconds
Duration when engine is on
engine.ignition.status
boolean
Engine ignition status
engine.motorhours
number
hours
Total calculated engine motorhours
error.info
string
Additional information about error sent by device
error.level
number
Error level number
error.level.description
string
Error level description string
error.type
number
Error type identification number
error.type.description
string
Error description string
event.code
string
Unique event identifier string
external.device.id
number
External device ID
external.powersource.status
boolean
External power source connection status
external.powersource.voltage
number
volts
External power voltage
geofence.id
number
Geofence ID
geofence.status
boolean
Geofence entered status
gnss.signal.level
number
Current average signal level of visible satellites
gsm.cellid
number
GSM base station ID
gsm.jamming.alarm.status
boolean
Alarm status for GSM jamming
gsm.jamming.event
boolean
GSM signal jamming detected
gsm.lac
number
GSM location area code
gsm.mcc
string
GSM mobile country code
gsm.mnc
string
GSM mobile network code
gsm.network.name
string
GSM operator name
gsm.network.roaming.status
boolean
GSM network in roaming mode
gsm.signal.level
number
percentage
GSM signal strength level
hood.open.status
boolean
Hood open status
ibutton.code
string
Hexadecimal code of connected iButton
ident
string
Device unique identificator and optional password
idle.status
boolean
Vehicle is in idling state
immobilizer.data
string
Immobilizer rule associated data
immobilizer.rule
number
Immobilizer rule number
immobilizer.state
string
Immobilizer state: armed, disarmed, wrong code, violation
immobilizer.trigger.input
number
Input switches bitmask, that triggered immobilizer violation event
lca.alarm.armed.status
boolean
Armed state
lca.alarm.connection.status
boolean
Communication state
lca.alarm.serial.number
number
Alarm serial number
lca.alarm.siren.status
boolean
Sirene activate state
lca.alarm.timestamp
number
Lca alarm timestamp
lca.alarm.version
number
Alarm version
location.accuracy
number
meters
Location accuracy
location.filter.reason
number
Location filter reason
location.source
number
Location source: 0 - location is invalid, 1 - GNSS location, 2 - Cellular location, 3 - Static location
max.position.speed
number
km/h
Maximum speed on segment
motorcycle.accident.event
boolean
Motorcycle accident event
motorcycle.alarm
boolean
Motorcycle alarm event
motorcycle.alarm.reason.enum
number
Motorcycle alarm event reason: 1 - ignition switch, 2 - tilt sensor, 3 - shck sensor, 4 - port E
motorcycle.alarm.status
boolean
Motorcycle alarm status: true - armed, false - disarmed
motorcycle.fall.angle
number
degrees
Motorcycle fall angle
motorcycle.fall.event
boolean
Motorcycle fall event
motorcycle.valet.mode.event
boolean
Motorcycle enters valet mode event
movement.status
boolean
Current movement state
next.message
number
minutes
Estimated time until the next transmission
overspeeding.event
boolean
Overspeeding detected
payload.text
string
Text Payload received from device
peer
string
IP:port from which device connecting to the channel
position.altitude
number
meters
Altitude value for position
position.direction
number
degrees
Heading angle at position detection moment
position.gnss.signal.level
number
Average GNSS satellite signal level at the last GPS fix
position.hdop
number
Horizontal dilution of precision
position.latitude
number
degrees
Latitude coordinate value
position.longitude
number
degrees
Longitude coordinate value
position.satellites
number
Quantity of satellites used to calculate coordinates for given position information
position.satellites.visible
number
The number of visible GPS satellites at the time the location was received
position.speed
number
km/h
Instant speed at position detection moment
position.timestamp
number
seconds
Timestamp when coordinates where calculated
protocol.id
number
ID of protocol
protocol.version
string
Protocol version string
sensor.humidity
number
percentage
Humidity sensor value, i.e. relative air humidity level
sensor.id
string
Sensor ID
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
sensor.temperature
number
celsius
Temperature sensor value
server.timestamp
number
seconds
Timestamp when server received a message
software.version
string
Software version string
timestamp
number
seconds
Message timestamp
total.idle.seconds
number
seconds
Total time that vehicle was in idling state
towing.event
boolean
Towing event detected
vehicle.mileage
number
km
Total calculated mileage
x.acceleration
number
g
Accelerometer value X
y.acceleration
number
g
Accelerometer value Y
z.acceleration
number
g
Accelerometer value Z
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

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#.