Xirgo-mqtt protocol

Integration level: params + settings
Parse and decode Xirgo Global binary messages into JSON. Get the parsed data from Xirgo Global devices via MQTT. Forward normalized data from Xirgo Global trackers to cloud platforms (AWS, Azure, etc.).
flespi parses the Xirgo-mqtt protocol messages into a JSON object with the fields listed below in the Parameters tab.

Xirgo Global devices working over "xirgo-mqtt" protocol connect to the MQTT broker to send messages and receive commands. Below is a detailed manual on how to configure the physical Xirgo Global device and the flespi channel to make them interact properly.

Configuration on the device side

a) MQTT topic configuration. The MQTT topics defined on the device side determine where the corresponding data will be saved. You have to subscribe to a certain topic (see Configuration on the flespi side below) to receive the necessary information on your end.

b) MQTT session parameters. Basic parameters for telemetry data sending to broker and connection timeouts.

c) MQTT broker address. Destination address where the data will be sent (depends on the broker).

d) MQTT authorization parameters. You have to define Client ID, Username, and Password in order to successfully authorize with the broker.

Note: if using the flespi broker, populate the Username field with the valid flespi token and leave the Password field blank. 

You can generate a valid flespi token with the required set of permissions in the Tokens section of the flespi panel:

mqtt pub sub acl token

Note: on the screenshot above we specified the minimal permissions necessary for correct device operation — permission to publish the data received by the device and permission to accept configuration commands sent to the device. You can extend these permissions at your discretion if necessary.

Configuration on the flespi side

To start receiving data from the Xirgo MQTT device, first, we need a valid token with proper access permissions (inverse to the ones given to the device — see above):

mqtt sub pub flespi acl token

Flespi needs to be able to subscribe to the data updates from the device and needs to able to send (publish) commands to the device to change its configuration.

Then we create a channel of "xirgo-mqtt" type. The channel configuration should be as follows:

create flespi channel xirgo-mqtt

As you may have noticed, the topics in the flespi channel configuration and the Xirgo device configuration should be identical to ensure seamless operability.

Note: you only need a valid flespi token to configure the flespi MQTT broker (suggested by default); to stick to another broker, pick the "arbitrary broker" option from the MQTT broker drop-down and configure appropriately.

Then you can create a flespi device for each tracker sending the data to the "xirgo-mqtt" channel to benefit from dedicated long-term storage, access to telemetry, analytics, and more.

absolute.acceleration
number
g
Module of accelerometer vector
armed.status
boolean
Armed/disarmed status
battery.voltage
number
volts
Internal battery voltage
can.airbag.fired.status
boolean
CAN airbag fired status
can.ambient.air.temperature
number
celsius
CAN ambient air temperature
can.check.engine.status
boolean
CAN check engine warning is on
can.driver.door.status
boolean
CAN driver door is opened
can.driver.seatbelt.indicator.status
boolean
CAN driver seatbelt indicator is on
can.engine.coolant.temperature
number
celsius
Engine coolant temperature read from CAN
can.engine.motorhours
number
hours
Total engine motorhours read from CAN
can.engine.rpm
number
rpm
Engine RPM read from CAN
can.esp.status
boolean
CAN ESP warning is on
can.fuel.consumed
number
liters
Fuel volume totally consumed by vehicle read from CAN
can.fuel.consumption
number
liters/h
Engine fuel rate read from CAN
can.passenger.door.status
boolean
CAN passenger door is opened
can.passenger.seatbelt.indicator.status
boolean
CAN passenger seatbelt indicator is on
can.pedal.brake.status
boolean
CAN brake pedal pressed
can.rear.left.door.status
boolean
CAN rear left door is opened
can.rear.right.door.status
boolean
CAN rear right door is opened
can.tire.pressure.status
boolean
CAN tire pressure warning is on
can.vehicle.mileage
number
km
Total vehicle mileage read from CAN
can.wheel.speed
number
km/h
Vehicle wheel based speed, read from CAN
channel.id
number
ID of channel that received a message
device.firmware.version
string
Firmware revision
device.id
number
ID of device that received a message
device.name
string
Name of device that received a message
device.type.id
number
ID of device type of device that received a message
din
number
Digital inputs bitmask
dout
number
Digital outputs bitmask
event.enum
number
Protocol-specific event code
event.function
number
Event function
external.powersource.voltage
number
volts
External power voltage
fuel.sensor.value
number
Value reported by fuel sensor
geofence.status
boolean
Geofence entered status
gsm.cellid
number
GSM base station ID
gsm.jamming.alarm.status
boolean
Alarm status for GSM jamming
gsm.lac
number
GSM location area code
gsm.mcc
string
GSM mobile country code
gsm.signal.dbm
number
dbm
Strength of GSM signal
headlight.status
boolean
Headlights status
ident
string
Device unique identifier like serial number, IMEI, etc
locked.status
boolean
Locked/unlocked status
movement.status
boolean
Current movement state
onewire.sensor.temperature
number
celsius
External 1-Wire temperature sensor value
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.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.speed
number
km/h
Instant speed at position detection moment
protocol.id
number
ID of protocol
sensor.boolean.value
boolean
User-defined sensor boolean value
sensor.float.value
number
User-defined sensor float value
sensor.string.value
string
User-defined sensor string value
sensor.uint32.value
number
User-defined sensor uint32 value
sensor.uint8.value
number
User-defined sensor uint8 value
server.timestamp
number
seconds
Timestamp when server received a message
tacho.slot.activity
number
Slot activity from tachograph
tacho.vehicle.mileage
number
km
Total mileage calculated by tacho
timestamp
number
seconds
Message timestamp
vehicle.mileage
number
km
Total calculated mileage
Properties
Custom command
custom
Send custom command to device
ttl: Command time to live in seconds
output: Output ID
payload: Hex data to be sent to the device