New HTTP endpoints: /header and /datasets
This commit is contained in:
parent
2b930a6902
commit
5955ca1a5c
@ -47,7 +47,7 @@
|
||||
// Test chart
|
||||
const ctx = document.getElementById('myChart');
|
||||
const myChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
|
||||
datasets: [{
|
||||
@ -127,6 +127,6 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<canvas id="myChart" width="400" height="400"></canvas>
|
||||
<canvas id="myChart" width="100%" height="400"></canvas>
|
||||
</body>
|
||||
</html>
|
||||
|
46
src/main.cpp
46
src/main.cpp
@ -340,6 +340,41 @@ String sensorAsJSON(void) {
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate JSON with all available sensors
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
String sensorHeader(void) {
|
||||
String buffer;
|
||||
StaticJsonDocument<500> doc;
|
||||
doc.add("milli");
|
||||
doc.add("temp");
|
||||
#ifdef BME680
|
||||
doc.add("gas");
|
||||
doc.add("humidity");
|
||||
#endif
|
||||
doc.add("altitude");
|
||||
doc.add("pressure");
|
||||
doc.add("particle");
|
||||
serializeJson(doc, buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate JSON with all sensor values
|
||||
* Array of JSON with all measured elements until now
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
String sensorDatasets(void) {
|
||||
String buffer;
|
||||
StaticJsonDocument<500> doc;
|
||||
doc["count"] = String(mMeasureIndex);
|
||||
serializeJson(doc, buffer);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Main loop, triggered by the Homie API
|
||||
* All logic needs to be done here.
|
||||
@ -380,6 +415,9 @@ void loopHandler()
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: add the measured data into the big list
|
||||
mMeasureIndex++;
|
||||
|
||||
/* Clean cycles buttons */
|
||||
if ((!mConnectedNonMQTT) && (mButtonPressed <= BUTTON_MIN_ACTION_CYCLE)) {
|
||||
buttonNode.setProperty(NODE_BUTTON).send("0");
|
||||
@ -535,7 +573,13 @@ void setup()
|
||||
request->send(200, "text/plain", String(ESP.getFreeHeap()));
|
||||
});
|
||||
mHttp->on("/sensors", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain", sensorAsJSON());
|
||||
request->send(200, "application/json", sensorAsJSON());
|
||||
});
|
||||
mHttp->on("/header", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "application/json", sensorHeader());
|
||||
});
|
||||
mHttp->on("/datasets", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "application/json", sensorDatasets());
|
||||
});
|
||||
mHttp->serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm");
|
||||
mHttp->begin();
|
||||
|
Loading…
Reference in New Issue
Block a user