add support for web server

This commit is contained in:
Nicu Hodos 2025-08-05 20:40:30 +02:00
parent 10721cfe52
commit 9fa610c7bf
4 changed files with 52 additions and 1 deletions

View File

@ -113,6 +113,8 @@ struct EasyHomeSwitch : Switch {
}
};
auto switchHomebox = new PollinSwitch{"00011", 4, "homebox"};
Command* commands[] = {
HaESP::restartButton()
.asDevice(gatewayDevice)
@ -140,7 +142,7 @@ Command* commands[] = {
new PollinSwitch{"00001", 2, "Fire Tv", "Living room"},
new PollinSwitch{"00001", 3, "Diningroom player", "Dining room"},
new PollinSwitch{"00001", 4},
new PollinSwitch{"00011", 4, "homebox"},
switchHomebox,
new PollinSwitch{"11111", 4, "Train", "Playroom"}
};

View File

@ -11,6 +11,7 @@ Scheduler ts;
#include "mqtt.h"
#include "ota.h"
#include "wifi.h"
#include "webserver.h"
namespace Board {
@ -46,10 +47,12 @@ namespace Board {
[] {
Ota::tLoop.enable();
Mqtt::tReConnect.enable();
WebServer::setup();
},
[] {
Ota::tLoop.disable();
Mqtt::tReConnect.disable();
WebServer::stop();
}
);
Ota::setup(

View File

@ -0,0 +1,45 @@
#ifdef ESP32
#include <AsyncTCP.h>
#elif defined(ESP8266)
#include <ESPAsyncTCP.h>
#endif
#include <ESPAsyncWebServer.h>
#include "devices.h"
AsyncWebServer server(80);
namespace WebServer {
void notFound(AsyncWebServerRequest *request) {
request->send(404, "text/plain", "Not found");
}
void setup() {
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(200, "text/plain", "Hello, world");
});
server.on("/switch/homebox", HTTP_GET, [](AsyncWebServerRequest *request) {
if (request->hasParam("state")) {
AsyncWebParameter* switchState = request->getParam("state");
switchHomebox->onCommand(switchState->value().c_str());
request->send(200, "text/plain", switchState->value().c_str());
} else {
request->send(200, "text/plain", "No parameters provided");
}
});
server.on("/restart", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(200, "text/plain");
ESP.restart();
});
server.onNotFound(notFound);
server.begin();
}
void stop() {
server.end();
}
}

View File

@ -35,6 +35,7 @@ lib_deps =
arkhipenko/TaskScheduler@^3.8.5
https://git.hodos.ro/libraries/ha-mqtt.git@^1.7.0
https://git.hodos.ro/libraries/wifi.git@^2.0.0
esphome/ESPAsyncWebServer-esphome@^3.4.0
upload_port = 192.168.6.161
upload_protocol = espota
upload_flags =