Vehicle Telemetry & Tracking
Vehicle telemetry is the real-time data stream from your fleet's IoT devices. This guide covers how telemetry works, what data is available, and how to use it for fleet management.
What is Vehicle Telemetry?
Telemetry refers to the automated collection and transmission of data from your vehicles to the Levy Fleets platform. Each vehicle's IoT device continuously reports:
- Location - GPS coordinates
- Battery levels - Both vehicle and IoT battery
- Lock state - Whether the vehicle is locked or unlocked
- Motion status - Moving or stationary
- Speed - Current velocity
- Odometer - Total distance traveled
- Error codes - Any device or vehicle faults
- Signal strength - Cellular connectivity quality
How Telemetry Works
Data Flow
Vehicle IoT Device → Cellular Network → Levy Servers → Dashboard
↓ ↓
Sends data Stores & processes
every 10-60s Updates in real-time
Update Frequency
Telemetry update intervals vary by device type and state:
| State | Typical Interval | Notes |
|---|---|---|
| In ride | 5-10 seconds | Frequent updates during active rentals |
| Stationary | 30-60 seconds | Reduced frequency to save battery |
| Sleep mode | 5-15 minutes | Minimal updates when inactive |
| Charging | 1-5 minutes | Moderate updates during charging |
Device Variations
Different IoT devices have different update frequencies and capabilities. Check your specific device documentation for exact specifications.
Viewing Telemetry Data
Vehicle List View
The vehicle list shows key telemetry at a glance:
| Column | Data Source | Updates |
|---|---|---|
| Battery | battery_level from IoT | Real-time |
| Location | Latest GPS coordinates | Real-time |
| Odometer | vehicle_odometer | Per-ride |
| Last Signal | Most recent telemetry timestamp | Real-time |
Vehicle Detail Page
The detail page provides comprehensive telemetry:
Status & Telemetry Card:
- Vehicle battery percentage with color coding
- IoT battery percentage (separate from vehicle battery)
- Charging indicator
- Lock/unlock status
- Current GPS coordinates with timestamp
- Signal strength indicator
- Error codes (if any)
Location Map:
- Current position marker
- Historical location trail
- Zone overlays
Real-Time Updates
Telemetry updates automatically via WebSocket subscriptions:
- When you open a vehicle detail page, a subscription is created
- New telemetry pushes to your browser instantly
- Status badges, battery levels, and location update without refresh
- Leaving the page closes the subscription
GPS Tracking
Location Data
Each GPS update includes:
| Field | Description | Example |
|---|---|---|
latitude | North-South position | 40.7128 |
longitude | East-West position | -74.0060 |
gps_accuracy | Accuracy in meters | 5.2 |
heading | Direction of travel (degrees) | 180 |
speed | Current speed (km/h) | 15.5 |
altitude | Elevation (meters) | 25 |
Location Accuracy
GPS accuracy varies by conditions:
| Condition | Typical Accuracy |
|---|---|
| Clear sky | 3-5 meters |
| Urban area | 10-30 meters |
| Indoor/underground | 50+ meters or no signal |
| Near tall buildings | 15-50 meters |
Indoor Limitations
GPS signals cannot penetrate buildings well. Vehicles parked indoors may show last known outdoor location or no location at all.
Historical Tracking
View where a vehicle has been:
- Open the vehicle detail page
- View the location map
- Historical breadcrumb trail shows recent positions
- Hover over points to see timestamps
Battery Monitoring
Two Battery Types
Most vehicles report two battery levels:
| Battery | Purpose | Typical Range |
|---|---|---|
| Vehicle Battery | Powers the motor, lights | 0-100% |
| IoT Battery | Powers the tracking device | 0-100% |
Battery Level Indicators
Color coding helps quickly assess battery health:
| Level | Color | Action |
|---|---|---|
| 51-100% | Green | Good - no action needed |
| 21-50% | Yellow | Monitor - consider charging soon |
| 0-20% | Red | Low - needs charging |
Charging Detection
The is_charging field indicates when a vehicle is plugged in:
- Shows charging icon on vehicle list
- Useful for tracking charging station usage
- Helps verify chargers are working
Lock State Monitoring
Lock Status
Vehicles report their current lock state:
| State | Description | Throttle |
|---|---|---|
| Locked | Vehicle secured | Disabled |
| Unlocked | Ready to ride | Enabled |
| Unknown | No recent status | Check device |
Lock/Unlock Events
Every lock state change is logged:
- Who initiated the change (customer, staff, system)
- Timestamp of the change
- Command success/failure
- Useful for auditing and troubleshooting
Signal & Connectivity
Cellular Signal
Telemetry includes signal quality indicators:
| Signal Level | Quality | Expected Behavior |
|---|---|---|
| Strong | Excellent | Real-time updates |
| Moderate | Good | Minor delays possible |
| Weak | Poor | Updates may be delayed |
| None | No signal | Device offline |
Last Signal Time
The "Last Signal" timestamp shows when the device last communicated:
| Time Since Signal | Interpretation |
|---|---|
| < 5 minutes | Normal operation |
| 5-30 minutes | May be in sleep mode |
| 30 min - 24 hours | Investigate location/battery |
| > 24 hours | Likely dead battery or device issue |
Error Codes
Understanding Error Codes
IoT devices report error codes when issues occur:
| Category | Examples |
|---|---|
| Battery | Low voltage, overcharge protection |
| Motor | Hall sensor error, overcurrent |
| Controller | Communication error, firmware issue |
| GPS | No fix, antenna error |
Viewing Errors
Errors appear in:
- Vehicle detail page (Status section)
- Recent telemetry feed
- Alert notifications (if configured)
Common Error Codes
| Code | Meaning | Action |
|---|---|---|
E01 | Low battery | Charge vehicle |
E02 | Motor overload | Check for obstructions |
E03 | Controller error | Restart device |
E04 | GPS error | Check antenna connection |
E05 | Communication timeout | Check cellular coverage |
Device-Specific Codes
Error codes vary by IoT device manufacturer. Check your specific device documentation for detailed error code meanings.
Telemetry Feed
Raw Telemetry View
On the vehicle detail page, expand "Show Commands" to see raw telemetry:
- Last 30 messages displayed
- Click entries to expand full payload
- Copy raw data for debugging
- Message types indicated (status, heartbeat, ack)
Message Types
| Type | Description |
|---|---|
| Status | Regular telemetry update |
| Heartbeat | Keep-alive signal |
| Ack | Command acknowledgment |
| Alert | Error or warning notification |
| Event | Lock/unlock, trip start/end |
Using Telemetry for Fleet Management
Finding Low Battery Vehicles
- Go to Vehicles page
- Click More Filters
- Set Battery Level (Max %) to 20
- View all vehicles needing charging
Locating Offline Vehicles
- Click the Offline status card
- Review last known locations
- Check last signal timestamps
- Prioritize investigation by duration offline
Monitoring Active Rides
During a ride, telemetry shows:
- Real-time location updates
- Speed monitoring
- Battery drain rate
- Distance traveled
Detecting Anomalies
Watch for unusual patterns:
- Sudden location jumps (GPS glitch or transport)
- Rapid battery drain (potential issue)
- Extended periods without movement (may be abandoned)
- Lock state not matching expected (command failure)
Telemetry Storage
Data Retention
Telemetry data is stored for:
| Data Type | Retention | Notes |
|---|---|---|
| Current state | Indefinite | Latest readings always available |
| Location history | 90 days | Per-vehicle GPS trail |
| Raw telemetry | 30 days | Full message payloads |
| Ride telemetry | Indefinite | Tied to ride records |
Accessing Historical Data
- Vehicle detail page shows recent history
- Export via API for longer analysis
- Ride detail pages include ride-specific telemetry
API Access
Get Vehicle Telemetry
GET /api/vehicles/{id}
Returns current telemetry state:
{
"id": "vehicle-uuid",
"vehicle_number": "VH-001",
"battery_level": 85,
"iot_battery_pct": 92,
"is_charging": false,
"lock_status": "locked",
"latitude": 40.7128,
"longitude": -74.0060,
"last_location_update": "2025-01-15T12:30:00Z",
"vehicle_odometer": "1234.5",
"gps_signal": 4,
"error_code": null
}
Subscribe to Real-Time Updates
Use Supabase real-time subscriptions:
const subscription = supabase
.channel('vehicle-telemetry')
.on('postgres_changes',
{ event: 'UPDATE', schema: 'public', table: 'vehicles', filter: `id=eq.${vehicleId}` },
(payload) => {
console.log('Telemetry update:', payload.new)
}
)
.subscribe()
Troubleshooting
No Telemetry Updates
- Check vehicle battery level (may be dead)
- Verify IoT device is properly linked
- Check cellular coverage in vehicle location
- Review last known position for clues
- May need physical inspection
Inaccurate GPS
- Check GPS accuracy field in telemetry
- Vehicle may be indoors or in poor coverage
- Allow time for GPS fix after device wake
- Check for antenna issues on device
Battery Reading Incorrect
- Compare vehicle vs IoT battery readings
- Check if charging indicator matches reality
- Battery calibration may be needed
- Check for battery connection issues
Delayed Updates
- Verify cellular signal strength
- Check if device is in sleep mode
- Review IoT device configuration
- May indicate network congestion
Need Help?
For telemetry issues or IoT device troubleshooting, contact support@levyelectric.com.