Okai ES400

Okai ES400 is a swappable IoT scooter head for sharing operations. The IoT head features an aluminum alloy frame, solid honeycomb tires, built-in IoT, 16Ah battery, IP67 rating, illegal scooter movement alert, topple alert, geofencing, audible voice prompts and alarm sounds through the onboard speaker, 

Usage specifics
Parameters (116)
Settings (22)
Commands (1)
Okai ES400
Flespi parses telemetry data from your Okai ES400 into a standardized JSON and lets you send commands to Okai ES400 via API.

Here’s the like of JSON you get

{
    "ident": "352625333222111",
    "position.altitude": 273.61,
    "position.hdop": 0.7,
    "position.latitude": 49.069782,
    "position.longitude": 28.632826,
    "position.satellites": 18,
    "server.timestamp": 1650636570.426424,
    "timestamp": 1650636570.426424,
    "device.type.id": "Okai ES400",
    "channel.id": 1111,
    "protocol.id": "okai"
    "engine.ignition.status": true
    ...
}

How to consume this nice JSON

The easiest way is to make a REST API request like this
curl -X GET  --header 'Authorization: FlespiToken XXX' 'https://flespi.io/gw/devices/<device id>/messages'

How to send commands to Okai ES400?

You can send a specific command. Show all commands
You can use pre-defined settings to send instructions more conveniently. Show all settings

You can also

Modify messages

Add or remove parameters, inject data from LBS and reverse-geocoding services, etc.
Learn what plugins can do

Aggregate data

Determine trips and stops, catch events, detect geofence ins/outs, and more.
Learn about flespi analytics capabilities
acceleration.array
array
g
Array of objects with acceleration data by x, y, and z axis
alive.status
boolean
Scooter alive status: true - riding enabled, false - riding disabled
backup.battery.level
number
percentage
Backup battery level
backup.battery.low.status
boolean
Backup battery low
backup.battery.status
boolean
Backup battery usage status
backup.battery.voltage
number
volts
Backup battery voltage
battery.capacity.full
number
Ah
Full battery capacity
battery.capacity.remaining
number
Ah
Remaining battery capacity
battery.charging.status
boolean
Battery charging status
battery.health
number
percentage
Battery health level (SoH)
battery.level
number
percentage
Internal battery level
battery.lock.firmware.version
string
Battery lock firmware version
battery.lock.hardware.version
string
Battery lock hardware version
battery.lock.position.status
boolean
Battery lock position status
battery.lock.status
boolean
Battery lock locked/unlocked status
battery.pack.number
number
Primary or Secondary battery pack number
battery.parallel.number
number
Number of batteries in parallel
battery.serial
string
Scooter battery serial number
battery.series.number
number
Number of batteries in series
battery.voltage
number
volts
Internal battery voltage
ble.beacons
array
Array with all detected BLE beacons data objects. Each object contain list of assosiated parameteres sent by appropriate beacon. Standard parameter names used: *id* - beacon identification string. Usually it is beacon's UUID or MAC-address *local_name* - Beacons's Local Name *rssi* - BLE signal level. Units = dBm *battery.voltage* - Beacon's battery voltage. Units = volts *battery.level* - Beacon's battery level. Units = percentage *temperature* - Beacon's temperature. Units = celsius
bluetooth.version
string
Bluetooth version
channel.id
number
ID of channel that received a message
condition.limit
string
Current restrictions on using scooters
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.self.name
string
Device name reported by the device
device.type.id
number
ID of device type of device that received a message
ecu.battery.charging.status
boolean
Scooter battery charging status, read from ECU
ecu.battery.lock.door.status
boolean
Battery lock door opened/closed status, read from ECU
ecu.battery.lock.status
boolean
Battery lock locked/unlocked status, read from ECU
ecu.bell.button.status
boolean
Bell button pressed/released status read from ECU
ecu.charging.status
boolean
Scooter battery charging status read from ECU: true - charging, false - not charging
ecu.current.mileage
number
km
Current mileage read from ECU
ecu.error.code
string
ECU error code
ecu.error.type
number
ECU error type
ecu.firmware.version
string
ECU firmware version
ecu.hardware.version
string
ECU hardware version
ecu.head.light.status
boolean
Head light status read from ECU: true - ON, false - OFF
ecu.key.status
boolean
Key status read from ECU: true - pressed, false - not pressed
ecu.lock.status
boolean
ECU lock status: true - locked, false - unlocked
ecu.rear.light.status
boolean
Rear light status read from ECU: true - ON, false - OFF
ecu.remaining.mileage
number
km
Remaining mileage read from ECU
ecu.ride.time
number
seconds
Time of riding read from ECU
ecu.speed
number
km/h
Current speed read from ECU
ecu.total.mileage
number
km
Total mileage read from ECU
external.powersource.voltage
number
volts
External power voltage
file.upload.state
number
File upload result code
firmware.update.code
number
Firmware update confirmation code
frames.count
number
The number of acceleration data frames contained in the message
geofence.id
number
Geofence ID
gps.module.version
string
GPS module version
gsm.cellid
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) base station ID
gsm.lac
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) location area code
gsm.mcc
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) country code
gsm.mnc
number
Mobile network (GSM, 3G, 4G, LTE, 5G, ...) code
gsm.network.type
string
The type of the Mobile network the device is currently registered to
gsm.signal.quality
number
The quality (bit error rate) of the Mobile network (GSM, 3G, 4G, LTE, 5G, ...) signal
gsm.sim.iccid
string
Integrated Circuit Card Id of SIM card of the Mobile network (GSM, 3G, 4G, LTE, 5G, ...)
hardware.version
string
Hardware version
helmet.box.door.status
boolean
Helmet box door opened status
helmet.box.lock.firmware.version
string
Helmet box lock firmware version
helmet.box.lock.hardware.version
string
Helmet box lock hardware version
helmet.box.lock.status
boolean
Helmet box locked status
helmet.exists.status
boolean
Helmet exists status
helmet.id
string
Helmet ID
helmet.recognition.status
boolean
Helmet ID recognition status, true - the same, false - not the same
horseshoe.lock.status
boolean
Horseshoe lock status
hub.lock.status
boolean
Hub lock status
ident
string
Device unique identifier like serial number, IMEI, etc
left.brake
number
Left brake value
max.battery.temperature
number
celsius
Maximum battery temperature
mechanical.lock.event
number
Mechanical lock event type
mechanical.lock.status
boolean
Mechanical lock state: true - locked, false - unlocked
mechanical.lock.type
number
Type of mechanical lock
min.battery.temperature
number
celsius
Minimum battery temperature
modem.firmware.version
string
Firmware version of the modem
modem.hardware.version
string
Firmware hardware of the modem
motion.data.count
number
Motion data samples count
movement.status
boolean
Current movement state
mqtt.will.message
string
MQTT Will message
network.signal.rssi
number
dbm
Network signal strength
nfc.code
string
NFC card code (UID)
peak.battery.current
number
amperes
Peal battery current
peer
string
IP:port from which device connecting to the channel
pile.lock.firmware.version
string
Pile lock firmware version
pile.lock.hardware.version
string
Pile lock hardware version
pile.lock.status
boolean
Pile lock status
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.speed
number
km/h
Instant speed at position detection moment
position.timestamp
number
seconds
Timestamp when coordinates where calculated
power.on.status
boolean
Power-on device status
protocol.id
number
ID of protocol
protocol.version
string
Protocol version string
qr.code
string
QR code of the device
report.code
string
Report code
report.reason
number
Transmission reason code
right.brake
number
Right brake value
scooter.battery.level
number
percentage
Scooter battery level
scooter.firmware.version
string
Scooter firmware version
scooter.hardware.version
string
Scooter hardware version
sensor.temperature
number
celsius
Temperature sensor value
server.timestamp
number
seconds
Timestamp when server received a message
shutdown.alarm
boolean
Shutdown alarm event
spare.lock.firmware.version
string
Spare lock firmware version
spare.lock.hardware.version
string
Spare lock hardware version
speed.handle
number
Speed handle value
task.code
string
Task code
throttle.status
boolean
Throttle status
timestamp
number
seconds
Message timestamp
vehicle.vin
string
VIN of vehicle
Properties
Battery Lock
battery_lock
Lock/unlock the battery lock
state: Lock
Electronic Bell
electronic_bell
Play the electronic bell audio
Fixed Report
fixed_report
Configuration of fixed report GTFRI
mode: Enable
without_gps: Report Without GPS
lock_interval: Lock Send Interval
backup_interval: Backup Battery Interval
unlock_interval: Unlock Send Interval
gps_optimization: Enable GPS Optimization
Continuous Vibration Alarm
gtalm
alarm_interval: Alarm Interval
six_axis_sensor: Six-axis sensor direction
continuous_vibration_alarm: Continuous vibration alarm
Battery Manager Information
gtbmi
mode: Report Mode enable
lock_send_interval: Lock send interval
unlock_send_interval: Unlock send interval
Scooter initialization Configuration
gtcic
push_mode: Push mode
motor_lock: Moror lock
ecu_throttle: ECU throttle
parking_gear: Parking gear
overspeed_alarm: Overspeed alarm
wireless_charging: Wireless charging
dashboard_charging: Dashboard chaging auto off time
ECU Parameters Configuration
gtecc
mode: Speed up mode
brake_force: Brake force
speed_limit: Maximum speed limit
display_unit: Display unit
rear_lamp_mode: Rear lamp working mode
keenetic_recovery_level: Kinetic energy recovery level
Network Configuration
gtqss
apn: APN
host: Main Server IP/Domain Name
port: Main Server Port
region: Region
lte_mode: LTE mode
heartbeat: Enable heartbeat
enable_sack: Enable SACK
report_mode: Report mode
apn_password: APN password
apn_username: APN username
network_mode: Network mode
enable_buffer: Enable buffer
enable_ble_unlock: Enable BLE Unlock
ble_broadcast_name: BLE Broadcast name
Mode switch
gtxwm
mode: Working mode
test_mode_usb: Report to USB debug channel in test mode
normal_mode_usb: Report to USB debug channel in normal mode
test_mode_server: Report to server in test mode
normal_mode_server: Report to server in normal mode
test_mode_bluetooth: Report to Bluetooth in test mode
normal_mode_bluetooth: Report to Bluetooth in normal mode
Turn off the head lamp
hloff
Turn on the head lamp
hlon
LED
led
rgb: RGB ambient lighting
status: Status light
headlight: Headlight auto on/off
turn_signal: Turn signal
center_console: Center console LED
animation_interval: Animation interval
Lock the ECU Lock
lock
Power Off
power_off
Power off the device remotely
Reboot
reboot
Reboot the device remotely
Turn off the rear lamp
rloff
Turn on the rear lamp (even if the ECU-Lock is locked)
rlonen
Turn off the throttle
spdoff
Turn on the throttle
spdon
Unlock the mechanical lock
ulkmec
type: Mechanical-Lock type
Unlock the ECU Lock
unlock
Illegal use of scooter warning
warn
Properties
AT Command
custom
Send custom AT command to device
cmd: Command to send, after AT+
payload: Command payload after password and up to count number: ',FFFF$' will be appended automatically by server
password: Device password
wait_ack: Wait ACK
Reboot the device
{"cmd":"GTRTO","payload":"3,,,0,,,,","password":"mypass"}