Add configurable device name API

This commit is contained in:
2026-06-04 03:45:20 -06:00
parent 799dd2ad95
commit cb7a98080c
2 changed files with 37 additions and 0 deletions
+14
View File
@@ -36,6 +36,14 @@ Relay display names are configurable. Firmware and API clients should not assume
Returns saved configuration.
### POST /config/device
Example:
{
"device_name": "Overland Controller"
}
### POST /config/relay
Example:
@@ -89,6 +97,12 @@ Line ending:
save
factory reset
## Device Configuration Commands
devicename Overland Controller
Run `save` after changing the device name.
## Log Level Commands
log quiet
@@ -310,6 +310,12 @@ void handleDebugSerial() {
return;
}
if (command.startsWith("devicename ")) {
appConfig.deviceName = command.substring(11);
Serial.println("OK device name updated");
return;
}
if (command.startsWith("relayname ")) {
int firstSpace = command.indexOf(' ');
int secondSpace = command.indexOf(' ', firstSpace + 1);
@@ -458,6 +464,22 @@ void handleGetConfig() {
sendConfigJson();
}
void handleUpdateDeviceConfig() {
DynamicJsonDocument doc(512);
DeserializationError error = deserializeJson(doc, server.arg("plain"));
if (error) {
server.send(400, "application/json", "{\"ok\":false,\"error\":\"invalid_json\"}");
return;
}
if (doc["device_name"].is<String>()) {
appConfig.deviceName = doc["device_name"].as<String>();
}
sendOkConfig();
}
void handleUpdateRelayConfig() {
DynamicJsonDocument doc(1024);
DeserializationError error = deserializeJson(doc, server.arg("plain"));
@@ -616,6 +638,7 @@ void setup() {
server.on("/relay/relay_2/off", HTTP_GET, handleGenericRelayRoute);
server.on("/config", HTTP_GET, handleGetConfig);
server.on("/config/device", HTTP_POST, handleUpdateDeviceConfig);
server.on("/config/relay", HTTP_POST, handleUpdateRelayConfig);
server.on("/config/bms", HTTP_POST, handleUpdateBmsConfig);
server.on("/config/temp", HTTP_POST, handleUpdateTempSensorConfig);