Squarell protocol

Parse and decode Squarell devices' binary messages into JSON. Get parsed data from Squarell devices via REST API and MQTT. Forward normalized data from Squarell trackers to AWS, Azure, Google IoT Cloud.
flespi parses the Squarell protocol messages into a JSON object with the fields listed below in the Parameters tab.

To connect your tracker using the Squarell protocol, you need to have a squarell 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.

acceleration.threshold.exceeded.duration
number
seconds
Duration of accerelation exceeding the threshold
$FMS4 message
can.accelerator.pedal.kickdown.indicator.status
boolean
Accelerator pedal kickdown switch status, read from CAN
$FMS1 message
can.accelerator.pedal.position
number
percentage
Accelerator pedal position read from CAN, index 1 - sensor D, index 2 - sensor E, etc
$FMS1 message
can.axle.weight
number
kg
Weight on the axle read from CAN
$FMS1 message
can.cruise.status
boolean
CAN cruise control is active
$FMS1 message
can.eco.mode.enabled.status
boolean
ECO mode enabled/disabled status
$FMSEV1 message
can.engine.motorhours
number
hours
Total engine motorhours (engine work time) read from CAN
$FMS1 message
can.engine.rpm
number
rpm
Engine RPM read from CAN
$FMS1 message,
$FMSEV1 message
can.engine.temperature
number
celsius
Engine temperature read from CAN
$FMS1 message,
$FMSEV1 message
can.engine.torque.level
number
percentage
Engine torque level, read from CAN
$FMS1 message,
$FMSEV1 message
can.ev.brake.regeneration.mileage
number
km
Total distance covered during brake regeneration
$FMSEV4 message
can.ev.brake.regeneration.time
number
seconds
Total time spent in brake regeneration
$FMSEV4 message
can.ev.total.charged.energy
number
kWh
Total energy charged to EV battery
$FMSEV4 message
can.ev.total.discharged.energy
number
kWh
Total discharged energy
$FMSEV4 message
can.ev.total.driving.discharged.energy
number
kWh
Total discharged energy driving
$FMSEV4 message
can.ev.total.idle.time
number
hours
Total time vehicle was idle with speed=0
$FMSEV4 message
can.ev.total.ignition.on.time
number
hours
Total time with ignition on
$FMSEV4 message
can.ev.total.ignition.time.park
number
hours
Total time with ignition on while in park
$FMSEV4 message
can.ev.total.regenerated.charge.energy
number
kWh
Total regenerated charge
$FMSEV4 message
can.fuel.consumed
number
liters
Fuel volume totally consumed by vehicle read from CAN
$FMS1 message,
$FMS3 message
can.fuel.idle.consumed
number
liters
Fuel volume totally consumed during idling state of the vehicle read from CAN
$FMS4 message
can.fuel.level
number
percentage
Fuel level in tank read from CAN
$FMS1 message
can.intake.map
number
kPa
Intake manifold absolute pressure
$FMS1 message
can.pedal.brake.status
boolean
CAN brake pedal pressed
$FMS1 message
can.pedal.clutch.status
boolean
CAN clutch pedal pressed
$FMS1 message
can.pto.state
number
Power take-off state, read from CAN
$FMS1 message
can.service.mileage
number
km
Service distance read from CAN
$FMS1 message
can.total.brake.applications
number
Total count of brake applications, read from CAN
$FMS4 message
can.total.brake.threshold.exceeded.applications
number
Total count of break pedal application exceeding the threshold, read from CAN
$FMS4 message
can.total.clutch.applications
number
Total count clutch pedal applications, read from CAN
$FMS4 message
can.total.cruise.control.time
number
hours
Total driving time when cruise control is ON, read from CAN
$FMS4 message
can.total.driving.time
number
hours
Engine run time read from CAN
$FMS4 message
can.total.engine.idle.time
number
hours
Time of engine running in idling status (vehicle stopped) since vehicle manufacture, read from CAN
$FMS4 message
can.vehicle.battery.charge.remaining.time
number
minutes
Battery charging remaining time read from CAN
$FMSEV1 message
can.vehicle.battery.charging.cable.connected.status
boolean
Vehicle battery charging cable connected/disconnected status, read from CAN
$FMSEV1 message
can.vehicle.battery.charging.status
boolean
Vehicle battery charging status get from CAN Bus
$FMSEV1 message
can.vehicle.battery.current
number
amperes
Vehicle battery current, read from CAN
$FMSEV1 message
can.vehicle.battery.level
number
percentage
CAN-bus reported vehicle battery level for EV or HEV
$FMSEV1 message
can.vehicle.battery.power.consumption
number
kWh/100km
Vehicle battery power consumption read from CAN
$FMSEV1 message
can.vehicle.battery.remaining.range
number
km
Vehicle battery remaining range, read from CAN
$FMSEV1 message
can.vehicle.battery.remaining.time
number
minutes
Vehicle battery remaining range, read from CAN
$FMSEV1 message
can.vehicle.battery.voltage
number
volts
Vehicle battery voltage, read from CAN
$FMSEV1 message
can.vehicle.mileage
number
km
Total vehicle mileage read from CAN
$FMS1 message
can.vehicle.speed
number
km/h
Vehicle speed read from CAN
$FMS1 message
channel.id
number
ID of channel that received a message
dcf.firmware.version
string
DCF firmware version
$POWERON message
device.firmware.version
string
Firmware revision
$POWERON message
device.id
number
ID of device that received a message
device.name
string
Name of device that received a message
device.profile
string
Device profile
$POWERON message
device.serial.number
string
Device serial number
CONNECTION message
device.type.id
number
ID of device type of device that received a message
engine.torque.threshold.exceeded.duration
number
seconds
Duration of engine torque exceeding the threshold
$FMS4 message
envelope.version
string
Envelope protocol version
Envelope header
fota.state
number
FOTA status
$FOTASTATUS message
gsm.network.name
string
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) operator name
CONNECTION message
gsm.network.type
string
The type of the Mobile network the device is currently registered to
CONNECTION message
gsm.sim.iccid
string
Integrated Circuit Card Id of SIM card of the Mobile network (GSM, 3G, 4G, LTE, 5G, ...)
ident
string
Device unique identifier like serial number, IMEI, etc
idle.threshold.exceeded.duration
number
seconds
Duration of idle state exceeding the threshold
$FMS4 message
last.fota.timestamp
number
seconds
Last FOTA time
$FOTASTATUS message
message.buffered.status
boolean
Black box message
Envelope header
modem.firmware.version
string
Firmware version of the modem
$POWERON message
next.fota.timestamp
number
seconds
Next planned FOTA time
$FOTASTATUS message
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
Message header
position.direction
number
degrees
Heading angle at position detection moment
Message header
position.hdop
number
Horizontal dilution of precision
Message header
position.latitude
number
degrees
Latitude coordinate value
Message header
position.longitude
number
degrees
Longitude coordinate value
Message header
position.satellites
number
Quantity of satellites used to calculate coordinates for given position information
Message header
position.speed
number
km/h
Instant speed at position detection moment
Message header
power.off.reason
string
Power off reason
$SHUTDOWN message
power.on.reason
string
Power on reason
$POWERON message
protocol.id
number
ID of protocol
protocol.version
string
Protocol version string
Message header
record.seqnum
number
Registered record sequence number
Envelope header
report.code
string
Report code
rpm.threshold.exceeded.duration
number
seconds
Duration of RPM exceeding the threshold
$FMS4 message
server.timestamp
number
seconds
Timestamp when server received a message
speed.threshold.exceeded.duration
number
seconds
Duration of speed exceeding the threshold
$FMS4 message
tacho.diagnose.test.state
number
Diagnose test performed by tachograph
$FMS3 message
tacho.driver.card.code
string
Driver identification card id for tacho
$FMS3 message
tacho.driver.card.status
boolean
Tacho driver card presence
$FMS3 message
tacho.drive.recognize.status
boolean
Tacho recognized vehicle drive
$FMS3 message
tacho.driver.time.state
string
Tacho driver time related states
$FMS3 message
tacho.driver.time.state.enum
number
Tacho driver time related states
$FMS3 message
tacho.driver.work.state.enum
number
Protocol-specific driver work state value
$FMS3 message
tacho.driving.direction
number
Tacho driving direction, 0 - forward, 1 - reverse, 2 - error, 3 - not available
$FMS3 message
tacho.handling.info.status
boolean
Tachograp is handling information
$FMS3 message
tacho.overspeed.status
boolean
Tachograph overspeed status
$FMS3 message
tacho.position.speed
number
km/h
Instant speed reported by tacho
$FMS3 message
tacho.system.event.status
boolean
Tacho system event occurred
$FMS3 message
tacho.vehicle.mileage
number
km
Total mileage calculated by tacho
$FMS3 message
timestamp
number
seconds
Message timestamp
Message header
updater.firmware.version
string
Updater firmware version
$POWERON message
vehicle.interface.firmware.version
string
Vehicle interace firmware version
$POWERON message
vehicle.registration.number
string
Vehicle registration number
$FMS2 message
vehicle.vin
string
VIN of vehicle
$FMS2 message
Properties
Custom Command
custom
Send custom command to device
payload: Command payload
Get IMEI
{"payload":"$STATUS,8"}
Get location
{"payload":"$STATUS,16"}
Turn the RELAY ON
{"payload":"$CONTROL,4,1"}
Turn the RELAY OFF
{"payload":"$CONTROL,4,0"}