Settings can now be changed:

* Via HTTP POST request to /settings, providing key=<key_to_change> and value=<new_value>.
  * Via MQTT at <MQTT_TOPIC>/settings.<key>.
This commit is contained in:
Fabian Schlenz 2019-10-04 12:11:05 +02:00
parent 0f1d4abe04
commit ef57c5ea2e
2 changed files with 21 additions and 2 deletions

View File

@ -69,6 +69,20 @@ void http_server_setup() {
message += "</table></body></html>"; message += "</table></body></html>";
http_server.send(200, "text/html", message); http_server.send(200, "text/html", message);
}); });
http_server.on("/settings", HTTP_POST, [&]() {
if (!http_server.hasArg("key") || !http_server.hasArg("value")) {
http_server.send(400, "text/plain", "Missing argument.");
return;
}
String name = http_server.arg("key");
uint16_t value = http_server.arg("value").toInt();
if (change_setting(name.c_str(), value)) {
http_server.send(200, "text/plain", "OK");
} else {
http_server.send(400, "text/plain", "Could not change setting.");
}
});
http_server.on("/delete", HTTP_GET, [&]() { http_server.on("/delete", HTTP_GET, [&]() {
LOGln("HTTP * GET /delete"); LOGln("HTTP * GET /delete");
if (http_server.args()==0) { if (http_server.args()==0) {

View File

@ -71,10 +71,15 @@ void mqtt_callback(char* original_topic, byte* pl, unsigned int length) {
tests::run(); tests::run();
return; return;
} }
long value = payload.toInt(); long value = payload.toInt();
LOGln("MQTT * Payload as number: %d", value); LOGln("MQTT * Payload as number: %d", value);
if (topic.compareTo("brightness")==0) { if (topic.startsWith("settings.")) {
topic.remove(0, 9);
change_setting(topic.c_str(), value);
return;
} else if (topic.compareTo("brightness")==0) {
if (value > 0 && value <= 255) { if (value > 0 && value <= 255) {
LOGln("MQTT * Changing brightness..."); LOGln("MQTT * Changing brightness...");
FastLED.setBrightness(value); FastLED.setBrightness(value);