added http API
This commit is contained in:
@@ -24,6 +24,8 @@ DallasTemperature sensor(&oneWire);
|
||||
|
||||
float temperature;
|
||||
String metrics;
|
||||
float reqTemp = 21.5;
|
||||
float offset = 0.25;
|
||||
|
||||
//=================================
|
||||
|
||||
@@ -74,26 +76,61 @@ void setup() {
|
||||
|
||||
//========== Web server setup ==========
|
||||
|
||||
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain; charset=utf-8", "ESP termostat, tady se bude posílat aplikace z flash paměti");
|
||||
});
|
||||
if(METRICS_EXPORT){
|
||||
server.on("/metrics", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain; charset=utf-8", metrics);
|
||||
});
|
||||
}
|
||||
if(METRICS_EXPORT && !THERMOSTAT){
|
||||
server.on("/relay", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
boolean state;
|
||||
if (request->hasParam("set")) {
|
||||
state = request->getParam("set")->value() == "1";
|
||||
server.on("/set", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
//nutno nastavit maxima a minima
|
||||
if(THERMOSTAT){
|
||||
if (request->hasParam("increaseReqTemp")) {
|
||||
reqTemp += request->getParam("increaseReqTemp")->value().toFloat();
|
||||
request->send(200, "text/plain; charset=utf-8", String(reqTemp));
|
||||
}else if (request->hasParam("decreaseReqTemp")) {
|
||||
reqTemp -= request->getParam("decreaseReqTemp")->value().toFloat();
|
||||
request->send(200, "text/plain; charset=utf-8", String(reqTemp));
|
||||
}else if (request->hasParam("increaseOffset")) {
|
||||
offset += request->getParam("increaseOffset")->value().toFloat();
|
||||
request->send(200, "text/plain; charset=utf-8", String(offset));
|
||||
}else if (request->hasParam("decreaseOffset")) {
|
||||
offset -= request->getParam("decreaseOffset")->value().toFloat();
|
||||
request->send(200, "text/plain; charset=utf-8", String(offset));
|
||||
}else{
|
||||
request->send(200, "text/plain; charset=utf-8", "no known parameter");
|
||||
}
|
||||
}else{
|
||||
if (request->hasParam("relay")) {
|
||||
boolean state = request->getParam("set")->value() == "1";
|
||||
digitalWrite(RELAY_PIN, state);
|
||||
request->send(200, "text/plain; charset=utf-8", "success");
|
||||
}else{
|
||||
request->send(200, "text/plain; charset=utf-8", String(digitalRead(RELAY_PIN)));
|
||||
request->send(200, "text/plain; charset=utf-8", "no known parameter");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
server.on("/get", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
//nutno vyřešit dotazy na více parametrů najednou
|
||||
String repply;
|
||||
|
||||
if(request->hasParam("temp")) {
|
||||
repply = temperature;
|
||||
}else if(request->hasParam("relay")){
|
||||
repply = digitalRead(RELAY_PIN);
|
||||
}else if(THERMOSTAT && request->hasParam("reqtemp")){
|
||||
repply = reqTemp;
|
||||
}else if(THERMOSTAT && request->hasParam("offset")) {
|
||||
repply = offset;
|
||||
}else{
|
||||
repply = "no known parameter";
|
||||
}
|
||||
|
||||
request->send(200, "text/plain; charset=utf-8", repply);
|
||||
});
|
||||
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain; charset=utf-8", "ESP termostat, tady se bude posílat aplikace z flash paměti");
|
||||
});
|
||||
|
||||
server.onNotFound(notFound);
|
||||
server.begin();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user