Streamax protocol

Protocol used by MDVR devices manufactured by Streamax headquartered in China.
flespi parses the Streamax protocol messages into a JSON object with the fields listed below in the Parameters tab.

Step-by-step guide on how to obtain video data from any Streamax device via API.

Streamax provides a dedicated mobile app available for both iOS and Android. This app will assist you not only with basic device setup but also with custom expert features and options.

To configure your device, you'll need to connect your mobile to its Wi-Fi network. When you power on the device, its Wi-Fi module starts in 'client' mode for 180 seconds. During this time, open the app, tap 'Search' on the main screen, and locate the device's Wi-Fi network in the list. If you're not quick enough, simply restart the device and try again.

When connected successfully, you log in with your credentials and proceed to Preferences > Network > Server1. Here fill in the ‘Register Server IP’ and ‘Register Server port’ fields with your flespi channel ‘Host’ and ‘Port’ values correspondingly.

Create a device instance for your tracker, using the serial number or the 'ident' value (look up in the channel's Logs & Messages) to fill in the ‘Serial Number as ident’ field.

Use the Logs & Messages tab on the device screen to check if the messages are coming.

Get access and manage your media in the dashboard and via API.

To ensure that video features work properly, please verify that the timezone set on the device matches that cached in the Configuration=>Time Zone settings.

If the timezone differs, simply refresh that setting (red circle icon) when your device is connected to the platform.

Troubleshooting

In case you receive command response "LACK OF RESOURCE OR TASK FULL" for the request_video or playback_video command with a substream quality on a dashcam device with SD card storage - try to configure your device as shown on the screenshot below:

Choose Sub-Record value in the SDRecord Mode option on the General tab of the Surveillance/Record section on the Preferences tab.

accident.event
boolean
Accident event detected
OPERATION SENDALARMINFO ALARMTYPE 18
alarm.panic.status
boolean
Panic alarm event occured
OPERATION UPDATEIOSTATUS
alarm.subtype
number
Alarm sub-type
OPERATION SENDALARMINFO
alarm.type
number
Alarm type
OPERATION SENDALARMINFO
average.fuel.consumption
number
liters/100km
Average fuel consumption
CSRC 2
can.battery.voltage
number
volts
Battery voltage read from CAN
CSRC 2
can.drive.gear.status
boolean
CAN drive gear is on
CSRC 2
can.driver.seatbelt.status
boolean
Driver's seatbelt fastened status, read from CAN
CSRC 2
can.dtc.number
number
Number of diagnostic trouble codes
CSRC 2
can.engine.coolant.temperature
number
celsius
Engine coolant temperature read from CAN
CSRC 2
can.engine.ignition.status
boolean
CAN engine ignition status
CSRC 2
can.engine.load.level
number
percentage
Calculated engine load level read from CAN
CSRC 2
can.engine.motorhours
number
hours
Total engine motorhours (engine work time) read from CAN
CSRC 2
can.engine.oil.level
number
percentage
Engine oil level read from CAN
CSRC 2
can.engine.rpm
number
rpm
Engine RPM read from CAN
CSRC 2
can.engine.temperature
number
celsius
Engine temperature read from CAN
CSRC 2
can.fuel.consumed
number
liters
Fuel volume totally consumed by vehicle read from CAN
CSRC 2
can.fuel.consumption
number
liters/h
Engine fuel rate read from CAN
CSRC 2
can.fuel.volume
number
liters
CAN fuel volume
CSRC 2
can.high.beam.status
boolean
CAN high beams are on
CSRC 2
can.hydraulics.pressure
number
kPa
Hydraulics pressure read from CAN bus
CSRC 2
can.left.steering.status
boolean
Left steering event read from CAN bus
CSRC 2
can.maf.air.flow.rate
number
g/sec
MAF air flow rate read from CAN
CSRC 2
can.neutral.gear.status
boolean
CAN neutral gear is on
CSRC 2
can.park.gear.status
boolean
CAN park gear is on
CSRC 2
can.pedal.brake.status
boolean
CAN brake pedal pressed
CSRC 2
can.pedal.clutch.status
boolean
CAN clutch pedal pressed
CSRC 2
can.reverse.gear.status
boolean
CAN reverse gear is on
CSRC 2
can.right.steering.status
boolean
Right steering event read from CAN bus
CSRC 2
can.steering.angle
number
degrees
Steering angle read from CAN bus
CSRC 2
can.throttle.position
number
percentage
Absolute throttle position for corresponding throttle position sensor read from CAN
CSRC 2
can.vehicle.mileage
number
km
Total vehicle mileage read from CAN
CSRC 2
can.vehicle.speed
number
km/h
Vehicle speed read from CAN
CSRC 2
channel.id
number
ID of channel that received a message
crash.direction.enum
number
Crash direction - front, rear, left, right etc.
OPERATION SENDALARMINFO ALARMTYPE 18
crash.event
boolean
Crash event detected
OPERATION SENDALARMINFO ALARMTYPE 18
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
OPERATION SPI
device.type.id
number
ID of device type of device that received a message
driver.alarm.type
string
Alarm description related to driver
OPERATION SENDALARMINFO ALARMTYPE 56
driver.card.id
string
Driver card number
CSRC 2
driver.id
string
Driver identification card id
OPERATION UPLOADMDVRDRVINFO
driver.name
string
Driver name
OPERATION UPLOADMDVRDRVINFO
driver.physical.card.id
string
Driver physical card number
CSRC 2
driver.status.enum
number
Driver status
OPERATION UPLOADMDVRDRVINFO
drum.direction
string
Drum direction
CSRC 2
drum.rotation.speed
number
Drum rotation speed
CSRC 2
engine.ignition.status
boolean
Engine ignition or ACC status
CSRC 2,
OPERATION SPI,
OPERATION UPDATEIOSTATUS
event.code
string
Protocol-specific event code string
OPERATION SENDALARMINFO ALARMTYPE 0,
OPERATION SENDALARMINFO ALARMTYPE 1,
OPERATION SENDALARMINFO ALARMTYPE 18,
OPERATION SENDALARMINFO ALARMTYPE 8
event.seqnum
number
Unique event sequence number
OPERATION SENDALARMINFO
event.uuid
string
Event UUID
OPERATION SENDALARMINFO
expanded.data
string
Expanded data HEX encoded payload
CSRC 2
fatigue.driving.status
boolean
Fatigue driving
OPERATION SENDALARMINFO ALARMTYPE 56
gnss.status
boolean
GNSS receiver on/off status
CSRC 2
gsm.signal.dbm
number
dbm
Strength of the Mobile network (GSM, 3G, 4G, LTE, 5G, ...) signal
CSRC 2
gsm.signal.level
number
percentage
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) signal strength level
OPERATION SPI
gsm.state.enum
number
Mobile network module state
OPERATION SPI
harsh.acceleration.event
boolean
Harsh acceleration detected
OPERATION SENDALARMINFO ALARMTYPE 18
harsh.braking.event
boolean
Harsh braking detected
OPERATION SENDALARMINFO ALARMTYPE 18
harsh.turn.left.event
boolean
Harsh left turn detected
OPERATION SENDALARMINFO ALARMTYPE 18
harsh.turn.right.event
boolean
Harsh right turn detected,
OPERATION SENDALARMINFO ALARMTYPE 18
ident
string
Device unique identifier like serial number, IMEI, etc
io.enable.bitmask
number
Io enable is expressed in bits. A bit value of 0 means close, 1 means open.
CSRC 2
io.level.bitmask
number
IO Trigger mode within IO level mode, bit value 0 indicates low level trigger, 1 indicates high level trigger.
CSRC 2
io.mode.bitmask
number
The IO trigger mode is represented by bits. A bit value of 0 indicates level triggering and a 1 indicates pulse trigger.
CSRC 2
io.state.bitmask
number
The IO status is represented by a bit, where a bit value of 0 indicates a low state and 1 indicates a high state.
CSRC 2
media
boolean
Message contain media file
media.image
object
Image file in media storage
media.video
object
Video file in media storage
message.buffered.status
boolean
Black box message
CSRC 2
message.detail
string
Message detail
OPERATION SENDALARMINFO
message.type
string
Message type
OPERATION SENDALARMINFO
network.type
string
Network connection type
OPERATION UPDATENETTYPE
operation.errorcause
string
Operation ERRORCAUSE
OPERATION UPTIMESHIFTRES,
OPERATION UPUPGRADESTATUS
operation.errorcode
number
Operation ERRORCODE
OPERATION UPTIMESHIFTRES,
OPERATION UPUPGRADESTATUS
overspeeding.event
boolean
Overspeeding detected
OPERATION SENDALARMINFO ALARMTYPE 8
peer
string
IP:port from which device connecting to the channel
position.altitude
number
meters
Altitude value for position
CSRC 2
position.direction
number
degrees
Heading angle at position detection moment
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
position.hdop
number
Horizontal dilution of precision
CSRC 2
position.latitude
number
degrees
Latitude coordinate value
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
position.longitude
number
degrees
Longitude coordinate value
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
position.satellites
number
Quantity of satellites used to calculate coordinates for given position information
CSRC 2
position.speed
number
km/h
Instant speed at position detection moment
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
position.timestamp
number
seconds
Timestamp when coordinates where calculated
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
position.valid
boolean
Is position information accurate and valid for given timestamp
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION SPI,
OPERATION UPLOADMDVRDRVINFO
power.cut.alarm
boolean
External power cut-off alarm event
OPERATION SENDALARMINFO ALARMTYPE 38
protocol.id
number
ID of protocol
report.code
string
Report code
OPERATION SENDALARMINFO
report.reason
number
Transmission reason code
OPERATION SENDALARMINFO
rollover.event
boolean
Roll over event detected
OPERATION SENDALARMINFO ALARMTYPE 18
segment.vehicle.mileage
number
km
Segment mileage
CSRC 2
server.timestamp
number
seconds
Timestamp when server received a message
storage.error.code
string
Storage error code
OPERATION SENDALARMINFO ALARMTYPE 3
storage.id
number
Storage index
OPERATION SENDALARMINFO ALARMTYPE 3
storage.type.id
number
Storage type enum id
OPERATION SENDALARMINFO ALARMTYPE 3
timestamp
number
seconds
Message timestamp
CSRC 2,
OPERATION SENDALARMINFO,
OPERATION UPLOADMDVRDRVINFO
vehicle.mileage
number
km
Total calculated mileage
CSRC 2,
OPERATION SPI
vehicle.registration.number
string
Vehicle registration number
OPERATION UPLOADMDVRDRVINFO
video.channel.bitmask
number
Video stream channel mask. 1 indicates that the channel's alarm is valid, otherwise it is invalid
OPERATION SENDALARMINFO ALARMTYPE 0
video.loss.event
boolean
Video loss alarm event
OPERATION SENDALARMINFO ALARMTYPE 0,
OPERATION SENDALARMINFO ALARMTYPE 1
wash.status
boolean
Wash I/O status
CSRC 2
water.value
number
liters
Water added value
CSRC 2
wifi.module.status
boolean
Wi-Fi module status
OPERATION SPI
wifi.signal.level
number
percentage
WiFi signal level, percentage
OPERATION SPI
x.acceleration
number
g
Accelerometer value X
CSRC 2
x.acceleration.angle
number
X axis angle data
CSRC 2
y.acceleration
number
g
Accelerometer value Y
CSRC 2
y.acceleration.angle
number
Y axis angle data
CSRC 2
z.acceleration
number
g
Accelerometer value Z
CSRC 2
z.acceleration.angle
number
Z axis angle data
CSRC 2
Properties
Custom
custom
Send custom command with json payload
payload: JSON formatted payload
Get all the version information of the device
{"payload":"{\"MODULE\":\"DEVEMM\",\"OPERATION\":\"GETDEVALLVERSIONS\"}"}
Custom command defined by operation and module fields
directive
JSON strucutre will be formed and Session field will be added automatically
module: MODULE field
wait_ack: Wait ACK
operation: OPERATION field
parameter: PARAMETER field
Acquire UTC of the current equipment
{"module":"DEVEMM","operation":"GETCTRLUTC"}
Playback video
playback_video
Start video playback from device
from: Time from
channel: Camera channel
duration: Duration
streamtype: Stream type
Request video
request_video
Request video file upload from device
from: Time from
channel: Camera channel
duration: Duration
streamtype: Stream type
Start videostream
start_videostream
Start videostream
audio: Audio
channel: Camera channel
streamtype: Stream type
mediastream: Mediastream type
Take a photo
take_photo
Take a photo
channel: Camera channel
quality: Quality
resolution: Resolution
Video timeline
video_timeline
Request timeline with intervals of available video data
to: Timeline to
from: Timeline from
filter_channels: Channels filter
filter_streamtype: Stream type filter