Document ESP32 API and serial commands

This commit is contained in:
2026-06-04 02:52:35 -06:00
parent 8ba881bae6
commit dbc40ee2c1
+324
View File
@@ -0,0 +1,324 @@
# ESP32 API and Serial Commands
## HTTP API
Base URL while connected to ESP32 AP:
http://192.168.4.1
---
## Status
### GET /status
Returns full controller status.
Example:
http://192.168.4.1/status
Includes:
- Battery/BMS telemetry
- Cell voltages
- Temperature readings
- Sensor health
- Relay states
- Vehicle state
- Network state
- Alarm state
- System info
- Current configuration
---
## Relay Control
### GET /relay/starlink/on
Turns relay 1 on.
### GET /relay/starlink/off
Turns relay 1 off.
### GET /relay/fridge/on
Turns relay 2 on.
### GET /relay/fridge/off
Turns relay 2 off.
Current legacy names:
- starlink = relay 1 / GPIO16
- fridge = relay 2 / GPIO17
Future goal:
- Replace legacy names with generic relay IDs.
---
## Configuration API
### GET /config
Returns saved configuration.
Example:
http://192.168.4.1/config
---
### POST /config/relay
Updates relay config.
Example body:
{
"id": "relay_1",
"name": "Starlink",
"enabled": true
}
Valid IDs:
- relay_1
- relay_2
---
### POST /config/bms
Updates BMS config.
Example body:
{
"enabled": true,
"name": "Greta",
"address": "a5:c2:37:2c:05:dc",
"address_type": "public"
}
---
### POST /config/temp
Updates temperature sensor config.
Example body:
{
"id": "temp_1",
"name": "Fridge Zone 1",
"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 defaults.
---
## Serial Monitor Commands
Serial baud:
115200
Line ending:
Newline
---
## Status and Config
### 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
### log quiet
Minimizes serial output.
### log info
Normal serial output.
### log debug
Enables recurring debug output such as BMS and sensor updates.
---
## Relay Control
### relay starlink on
Turns legacy Starlink relay on.
### relay starlink off
Turns legacy Starlink relay off.
### relay fridge on
Turns legacy Fridge relay on.
### relay fridge off
Turns legacy Fridge relay off.
---
## Relay Configuration
### relayname 1 Starlink
Sets relay 1 display name.
### relayname 2 Fridge
Sets relay 2 display name.
Run `save` after changing names.
---
## Temperature Sensor Configuration
### tempname 1 Fridge Zone 1
Sets temp sensor 1 display name.
### tempname 2 Fridge Zone 2
Sets temp sensor 2 display name.
### tempname 3 Rear Seat Area
Sets temp sensor 3 display name.
### tempname 4 Outside Air
Sets temp sensor 4 display name.
Run `save` after changing names.
---
## BMS Configuration
### bmsname Greta
Sets BMS display name.
### bmsaddr a5:c2:37:2c:05:dc
Sets BMS BLE address.
Run `save` after changing BMS config manually.
---
## BMS Setup Mode
### enter setup
Enters BMS setup mode.
Effects:
- Disconnects BMS client
- Pauses BMS reconnect
- Allows repeated BLE scans
### scan ble
Scans for BLE devices.
Notes:
- JBD/Xiaoxiang BMS advertising can be intermittent.
- Multiple scans may be required.
- Greta may not appear every scan.
### 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
scan ble
select bms 1
relayname 1 Starlink
relayname 2 Fridge
tempname 1 Fridge Zone 1
tempname 2 Fridge Zone 2
tempname 3 Rear Seat Area
tempname 4 Outside Air
save
config
---
## Known Notes
- BMS telemetry works reliably once the address is configured.
- BLE scan works, but JBD/Xiaoxiang advertising is intermittent.
- DS18B20 sensors require a 4.7kΩ pull-up resistor on the 1-Wire data bus.
- Relay API still uses legacy names internally.
- Future work should move relay runtime commands to generic relay IDs.