OpenDTU-old/include/WebApi_database.h
Ralf Bauer 08579b0da8
Database (#2)
* 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
2023-06-30 14:01:47 +02:00

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;
};