2.4 KiB
2.4 KiB
Xterra Overland Dashboard API Specification
Overview
The ESP32 acts as the system controller and provides status and control endpoints.
Primary communication is UART over CAT5. WiFi HTTP API is the backup communication path.
WiFi HTTP API is provided for:
- Web dashboard
- Mobile access
- Configuration
- Future Home Assistant integration
GET /status
Returns complete current system status.
Example:
{
"timestamp": 1748910000,
"battery": {
"soc": 82,
"voltage": 13.2,
"current": -6.4,
"remaining_ah": 82.5,
"runtime_hours": 11.2,
"temperature_f": 77.4
},
"temps": {
"fridge_zone_1": 35.8,
"fridge_zone_2": 12.1,
"rear_seat": 78.0,
"outside": 88.4
},
"relays": {
"starlink": false,
"fridge": true
},
"network": {
"wifi_enabled": false,
"uart_connected": true
}
}
GET /battery
Returns detailed battery information.
Example:
{
"soc": 82,
"voltage": 13.2,
"current": -6.4,
"power_w": -84.5,
"remaining_ah": 82.5,
"runtime_hours": 11.2,
"temperature_f": 77.4,
"cells": [
3.299,
3.301,
3.300,
3.298
],
"cell_delta_mv": 3
}
GET /temps
Returns all temperature sensors.
Example:
{
"fridge_zone_1": 35.8,
"fridge_zone_2": 12.1,
"rear_seat": 78.0,
"outside": 88.4
}
GET /relays
Returns relay states.
Example:
{
"starlink": false,
"fridge": true
}
POST /relay/starlink
Request:
{
"state": true
}
Response:
{
"success": true,
"starlink": true
}
POST /relay/fridge
Request:
{
"state": true
}
Response:
{
"success": true,
"fridge": true
}
GET /network
Returns network status.
Example:
{
"wifi_enabled": false,
"uart_connected": true,
"starlink_enabled": false
}
POST /network/wifi
Enable WiFi temporarily.
Request:
{
"minutes": 10
}
Response:
{
"success": true,
"expires_minutes": 10
}
Future Endpoints
Vehicle Data
GET /vehicle
{
"speed_mph": 62,
"rpm": 2200,
"coolant_temp_f": 192,
"fuel_percent": 48
}
GPS
GET /gps
{
"lat": 43.6629,
"lon": -116.6874,
"speed_mph": 0,
"heading": 0
}
Historical Data
GET /history
GET /history/temps
GET /history/battery
Home Assistant
MQTT integration planned.