4.3 KiB
ESP32 API and Serial Commands
HTTP API
Base URL while connected to the ESP32 access point:
http://192.168.4.1
Status
GET /status
Returns full controller status.
Includes:
- Battery/BMS telemetry
- Cell voltages
- Temperature readings
- Sensor health
- Relay states
- Vehicle state
- Network state
- Alarm state
- System info
- Current configuration
Relay states use generic relay IDs:
relay_1
relay_2
Temperature sensors use generic sensor IDs:
temp_1
temp_2
temp_3
temp_4
temp_5
temp_6
temp_7
temp_8
Relay Control API
GET /relay/relay_1/on
Turns relay 1 on.
GET /relay/relay_1/off
Turns relay 1 off.
GET /relay/relay_2/on
Turns relay 2 on.
GET /relay/relay_2/off
Turns relay 2 off.
Relay display names are configurable. The firmware should not assume what a relay controls.
Deprecated Relay Aliases
These legacy routes may still exist for compatibility during development, but should not be used by new clients:
/relay/starlink/on
/relay/starlink/off
/relay/fridge/on
/relay/fridge/off
Future work should remove these aliases after the Pico/dashboard clients use generic relay IDs.
Configuration API
GET /config
Returns saved configuration.
POST /config/relay
Updates relay config.
Example body:
{
"id": "relay_1",
"name": "Aux Power",
"enabled": true
}
Valid IDs:
- relay_1
- relay_2
POST /config/bms
Updates BMS config.
Example body:
{
"enabled": true,
"name": "House Battery",
"address": "aa:bb:cc:dd:ee:ff",
"address_type": "public"
}
POST /config/temp
Updates temperature sensor config.
Example body:
{
"id": "temp_1",
"name": "Cabin",
"address": "",
"enabled": true
}
Valid IDs:
- temp_1
- temp_2
- temp_3
- temp_4
- temp_5
- temp_6
- temp_7
- temp_8
POST /config/factory-reset
Clears saved config and restores generic defaults.
Serial Monitor
Baud:
115200
Line ending:
Newline
Status and Config Commands
status
Prints full JSON status to Serial.
config
Prints current configuration to Serial.
save
Saves current in-memory configuration to NVS.
factory reset
Clears saved config and restores defaults.
Log Level Commands
log quiet
Minimizes serial output.
log info
Normal serial output.
log debug
Enables recurring debug output.
Relay Control Commands
Legacy relay control commands may still exist during development:
relay starlink on
relay starlink off
relay fridge on
relay fridge off
Future work should replace these with generic serial relay commands.
Relay Configuration Commands
relayname 1 Aux Power
Sets relay 1 display name.
relayname 2 Accessory Power
Sets relay 2 display name.
Run save after changing names.
Temperature Sensor Configuration Commands
tempname 1 Cabin
Sets temp sensor 1 display name.
tempname 2 Outside Air
Sets temp sensor 2 display name.
Run save after changing names.
BMS Configuration Commands
bmsname House Battery
Sets BMS display name.
bmsaddr aa:bb:cc:dd:ee:ff
Sets BMS BLE address.
Run save after changing BMS config manually.
BMS Setup Mode Commands
enter setup
Enters BMS setup mode.
Effects:
- Disconnects BMS client
- Pauses BMS reconnect
- Allows repeated BLE scans
scan ble
Scans for BLE devices.
Notes:
- Some BMS modules advertise intermittently.
- Multiple scans may be required.
select bms 1
Selects BLE scan result 1 as the configured BMS.
This saves:
- BMS name
- BMS address
- BMS enabled state
exit setup
Leaves BMS setup mode and allows BMS reconnect.
Typical First-Time Setup Flow
log info
enter setup
scan ble
scan ble
select bms 1
relayname 1 Aux Power
relayname 2 Accessory Power
tempname 1 Cabin
tempname 2 Outside Air
save
config
Known Notes
- BMS telemetry is reliable once a BMS address is configured.
- BLE discovery depends on how often the BMS advertises.
- DS18B20 sensors require a 4.7kΩ pull-up resistor on the 1-Wire data bus.
- Some legacy relay names still exist internally and should be removed in a future cleanup.