* added new card to LiveView page with chart for last 25 hours * fixed formatting of the DatabaseChart * fixed delayed load of google libraries after page refresh * GChart * Delete database.png * removed serial number from screenshot * use vue-google-charts wrapper * fixed wromg position of chart * updated screenshot * updated webapp * added calendar chart * added calendar chart * updated screenshot * used new interface * Fixed problem that charts are not shown after page refresh. * made Vue compile * changed chart options * fixed height * updated webapp * changed chart options * updated webapp * updated Webapp and screenshot * new screenshot * create database when it does not exist * fixed name of days in calendar chart * added debug messages * added more debugging messages * hooked to LiveView instead of MQTT * moved loop handler * fixed time handling * fixed first datapoint * fix hanging of GUI * updated Webapp * some cosmetic changes * updated Webapp * used chunked data transfer * used chunked data transfer * fixed loading flag * removed lambda function * RaBa * fixed chart refresh after reload * fixed wrong time for first database entry on a day * added autorefresh every hour * optimized autorefresh * fixed formatting of card * html change * fixed date comparison * new screenshot * Update README.md
34 lines
952 B
C++
34 lines
952 B
C++
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
#pragma once
|
|
|
|
#include <Arduino.h>
|
|
#include <ESPAsyncWebServer.h>
|
|
|
|
#define DATABASE_FILENAME "/database.bin"
|
|
|
|
class WebApiDatabaseClass {
|
|
public:
|
|
void init(AsyncWebServer* server);
|
|
void loop();
|
|
bool write(float energy);
|
|
|
|
struct pvData {
|
|
uint8_t tm_year;
|
|
uint8_t tm_mon;
|
|
uint8_t tm_mday;
|
|
uint8_t tm_hour;
|
|
float energy;
|
|
};
|
|
|
|
private:
|
|
void onDatabase(AsyncWebServerRequest* request);
|
|
void onDatabaseHour(AsyncWebServerRequest* request);
|
|
void onDatabaseDay(AsyncWebServerRequest* request);
|
|
static size_t readchunk(uint8_t* buffer, size_t maxLen, size_t index);
|
|
static size_t readchunk_log(uint8_t* buffer, size_t maxLen, size_t index);
|
|
static size_t readchunkHour(uint8_t* buffer, size_t maxLen, size_t index);
|
|
static size_t readchunkDay(uint8_t* buffer, size_t maxLen, size_t index);
|
|
|
|
AsyncWebServer* _server;
|
|
};
|