From a18c29b8459d6ad015c9f4d66424253b8ebe5b13 Mon Sep 17 00:00:00 2001 From: Robert-Schimanek Date: Mon, 23 Sep 2024 12:34:44 +0200 Subject: [PATCH] Feature: OneMoreThing Step II Feature: OneMoreThing Step II --- .gitignore | 1 + Hoywei-Turbo | 2 +- include/WebApi.h | 15 +- src/WebApi.cpp | 14 +- src/WebApi_Huawei.cpp | 2 +- src/WebApi_battery.cpp | 2 +- src/WebApi_config.cpp | 2 +- src/WebApi_device.cpp | 2 +- src/WebApi_devinfo.cpp | 2 +- src/WebApi_dtu.cpp | 2 +- src/WebApi_eventlog.cpp | 2 +- src/WebApi_firmware.cpp | 2 +- src/WebApi_gridprofile.cpp | 2 +- src/WebApi_inverter.cpp | 2 +- src/WebApi_limit.cpp | 2 +- src/WebApi_maintenance.cpp | 2 +- src/WebApi_mqtt.cpp | 2 +- src/WebApi_network.cpp | 2 +- src/WebApi_ntp.cpp | 2 +- src/WebApi_power.cpp | 2 +- src/WebApi_powerlimiter.cpp | 2 +- src/WebApi_powermeter.cpp | 2 +- src/WebApi_prometheus.cpp | 2 +- src/WebApi_security.cpp | 2 +- src/WebApi_sysstatus.cpp | 2 +- src/WebApi_vedirect.cpp | 2 +- src/WebApi_ws_Huawei.cpp | 2 +- src/WebApi_ws_battery.cpp | 2 +- src/WebApi_ws_console.cpp | 2 +- src/WebApi_ws_live.cpp | 2 +- src/WebApi_ws_vedirect_live.cpp | 2 +- src/main.cpp | 4 +- webapp/index.html | 2 +- webapp/package-lock.json | 117 ++++- webapp/package.json | 4 +- webapp/src/components/NavBar.vue | 25 +- webapp/src/router/index.ts | 16 +- webapp/src/types/PriceProviderConfig.ts | 4 + .../src/views/PowerMeterChargerAdminView.vue | 417 ------------------ .../src/views/PowerMeterInverterAdminView.vue | 417 ------------------ webapp/src/views/PowerMeterSolarAdminView.vue | 417 ------------------ webapp/vite.config.ts | 8 +- webapp/yarn.lock | 217 ++++----- webapp_dist/index.html.gz | Bin 400 -> 391 bytes webapp_dist/js/app.js.gz | Bin 216356 -> 407477 bytes 45 files changed, 296 insertions(+), 1438 deletions(-) create mode 100644 webapp/src/types/PriceProviderConfig.ts delete mode 100644 webapp/src/views/PowerMeterChargerAdminView.vue delete mode 100644 webapp/src/views/PowerMeterInverterAdminView.vue delete mode 100644 webapp/src/views/PowerMeterSolarAdminView.vue diff --git a/.gitignore b/.gitignore index c7792f09a..5a4ba1e62 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ logs/device-monitor*.log platformio_override.ini .DS_Store platformio_override.ini +/webapp/src/Hoywei-Turbo-WebApp diff --git a/Hoywei-Turbo b/Hoywei-Turbo index 0f0560966..ebe4a5309 160000 --- a/Hoywei-Turbo +++ b/Hoywei-Turbo @@ -1 +1 @@ -Subproject commit 0f0560966e4fa26c32dbf40a5bdaa149ed9ec16c +Subproject commit ebe4a530922b996d1293df45f31016e24da9c7a2 diff --git a/include/WebApi.h b/include/WebApi.h index df092c41a..36d81f422 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -34,7 +34,12 @@ #include #include +#include "WebApi_PriceProvider.h" + class WebApiClass { + + friend class HoyweiWebApiClass; + public: WebApiClass(); void init(Scheduler& scheduler); @@ -69,9 +74,6 @@ class WebApiClass { WebApiNtpClass _webApiNtp; WebApiPowerClass _webApiPower; WebApiPowerMeterClass _webApiPowerMeter; - WebApiPowerMeterClass _webApiPowerMeterInverter; - WebApiPowerMeterClass _webApiPowerMeterCharger; - WebApiPowerMeterClass _webApiPowerMeterSolar; WebApiPowerLimiterClass _webApiPowerLimiter; WebApiPrometheusClass _webApiPrometheus; WebApiSecurityClass _webApiSecurity; @@ -84,6 +86,11 @@ class WebApiClass { WebApiHuaweiClass _webApiHuaweiClass; WebApiWsHuaweiLiveClass _webApiWsHuaweiLive; WebApiWsBatteryLiveClass _webApiWsBatteryLive; + + //WebApiPowerMeterClass _webApiPowerMeterInverter; + //WebApiPowerMeterClass _webApiPowerMeterCharger; + //WebApiPowerMeterClass _webApiPowerMeterSolar; + //WebApiPriceProviderClass _webApiPriceProvider; }; -extern WebApiClass WebApi; +// extern WebApiClass WebApi; diff --git a/src/WebApi.cpp b/src/WebApi.cpp index f8d8ad9da..7ed10d74d 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -10,10 +10,7 @@ WebApiClass::WebApiClass() : _server(HTTP_PORT), - _webApiPowerMeter(PowerMeterSource::HOME,"/api/powermeter"), - _webApiPowerMeterInverter(PowerMeterSource::INVERTER_BATTERY,"/api/powermeterinverter"), - _webApiPowerMeterCharger(PowerMeterSource::CHARGER,"/api/powermetercharger"), - _webApiPowerMeterSolar(PowerMeterSource::INVERTER_PV,"/api/powermetersolar") + _webApiPowerMeter(PowerMeterSource::HOME,"/api/powermeter") { } @@ -41,9 +38,6 @@ void WebApiClass::init(Scheduler& scheduler) _webApiWsLive.init(_server, scheduler); _webApiBattery.init(_server, scheduler); _webApiPowerMeter.init(_server, scheduler); - _webApiPowerMeterInverter.init(_server, scheduler); - _webApiPowerMeterCharger.init(_server, scheduler); - _webApiPowerMeterSolar.init(_server, scheduler); _webApiPowerLimiter.init(_server, scheduler); _webApiWsVedirectLive.init(_server, scheduler); _webApiVedirect.init(_server, scheduler); @@ -109,7 +103,7 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp if (!request->hasParam("data", true)) { retMsg["message"] = "No values found!"; retMsg["code"] = WebApiError::GenericNoValueFound; - WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); + sendJsonResponse(request, response, __FUNCTION__, __LINE__); return false; } @@ -118,7 +112,7 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp if (error) { retMsg["message"] = "Failed to parse data!"; retMsg["code"] = WebApiError::GenericParseError; - WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); + sendJsonResponse(request, response, __FUNCTION__, __LINE__); return false; } @@ -155,4 +149,4 @@ bool WebApiClass::sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResp return ret_val; } -WebApiClass WebApi; +//WebApiClass WebApi; diff --git a/src/WebApi_Huawei.cpp b/src/WebApi_Huawei.cpp index ca7ad059b..1ead0ab75 100644 --- a/src/WebApi_Huawei.cpp +++ b/src/WebApi_Huawei.cpp @@ -7,7 +7,7 @@ #include #include "MessageOutput.h" #include "HoyweiPinMapping.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include #include diff --git a/src/WebApi_battery.cpp b/src/WebApi_battery.cpp index 40c9884e0..71d6c455a 100644 --- a/src/WebApi_battery.cpp +++ b/src/WebApi_battery.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_battery.h" #include "WebApi_errors.h" #include "helper.h" diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index 0943b8816..8e5ba8493 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -5,7 +5,7 @@ #include "WebApi_config.h" #include #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include #include diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index ca1056348..2b530a9b6 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -7,7 +7,7 @@ #include "Display_Graphic.h" #include "HoyweiPinMapping.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include diff --git a/src/WebApi_devinfo.cpp b/src/WebApi_devinfo.cpp index 449cd1772..cc44625e3 100644 --- a/src/WebApi_devinfo.cpp +++ b/src/WebApi_devinfo.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2022-2024 Thomas Basler and others */ #include "WebApi_devinfo.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include #include #include diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index 86030a00d..4812e39dc 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -4,7 +4,7 @@ */ #include "WebApi_dtu.h" #include -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include #include diff --git a/src/WebApi_eventlog.cpp b/src/WebApi_eventlog.cpp index ec8b78c30..2caaecc58 100644 --- a/src/WebApi_eventlog.cpp +++ b/src/WebApi_eventlog.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2022-2024 Thomas Basler and others */ #include "WebApi_eventlog.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include #include diff --git a/src/WebApi_firmware.cpp b/src/WebApi_firmware.cpp index 01ec76605..98cf32bc5 100644 --- a/src/WebApi_firmware.cpp +++ b/src/WebApi_firmware.cpp @@ -6,7 +6,7 @@ #include #include "Update.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "helper.h" #include #include "esp_partition.h" diff --git a/src/WebApi_gridprofile.cpp b/src/WebApi_gridprofile.cpp index 9fc05b032..9daa5ef54 100644 --- a/src/WebApi_gridprofile.cpp +++ b/src/WebApi_gridprofile.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2022-2024 Thomas Basler and others */ #include "WebApi_gridprofile.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include #include diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 2a2947be3..59653c967 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -5,7 +5,7 @@ #include "WebApi_inverter.h" #include #include "MqttHandleHass.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "defaults.h" #include "helper.h" diff --git a/src/WebApi_limit.cpp b/src/WebApi_limit.cpp index 6a6c90ca4..6c802401b 100644 --- a/src/WebApi_limit.cpp +++ b/src/WebApi_limit.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2022-2024 Thomas Basler and others */ #include "WebApi_limit.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "defaults.h" #include "helper.h" diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index 1504f9d75..49a6f3cc9 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -5,7 +5,7 @@ #include "WebApi_maintenance.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include diff --git a/src/WebApi_mqtt.cpp b/src/WebApi_mqtt.cpp index 2536dc610..30a9c7084 100644 --- a/src/WebApi_mqtt.cpp +++ b/src/WebApi_mqtt.cpp @@ -13,7 +13,7 @@ #include "MqttHandleVedirectHass.h" #include "MqttHandleVedirect.h" #include "MqttSettings.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include "PowerLimiter.h" diff --git a/src/WebApi_network.cpp b/src/WebApi_network.cpp index c12670558..e07089f8d 100644 --- a/src/WebApi_network.cpp +++ b/src/WebApi_network.cpp @@ -5,7 +5,7 @@ #include "WebApi_network.h" #include #include "NetworkSettings.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include diff --git a/src/WebApi_ntp.cpp b/src/WebApi_ntp.cpp index d8cea3024..9c21f0679 100644 --- a/src/WebApi_ntp.cpp +++ b/src/WebApi_ntp.cpp @@ -6,7 +6,7 @@ #include #include "NtpSettings.h" #include "SunPosition.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include diff --git a/src/WebApi_power.cpp b/src/WebApi_power.cpp index b2b2ce42e..2f0d7b9bb 100644 --- a/src/WebApi_power.cpp +++ b/src/WebApi_power.cpp @@ -3,7 +3,7 @@ * Copyright (C) 2022-2024 Thomas Basler and others */ #include "WebApi_power.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include #include diff --git a/src/WebApi_powerlimiter.cpp b/src/WebApi_powerlimiter.cpp index f7132cbaf..572af5f02 100644 --- a/src/WebApi_powerlimiter.cpp +++ b/src/WebApi_powerlimiter.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "helper.h" #include "WebApi_errors.h" diff --git a/src/WebApi_powermeter.cpp b/src/WebApi_powermeter.cpp index 2fdfd5875..3257fed8e 100644 --- a/src/WebApi_powermeter.cpp +++ b/src/WebApi_powermeter.cpp @@ -14,7 +14,7 @@ #include #include "PowerMeterHttpJson.h" #include "PowerMeterHttpSml.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "helper.h" diff --git a/src/WebApi_prometheus.cpp b/src/WebApi_prometheus.cpp index d7570f3f3..85e426ef9 100644 --- a/src/WebApi_prometheus.cpp +++ b/src/WebApi_prometheus.cpp @@ -7,7 +7,7 @@ #include #include "MessageOutput.h" #include "NetworkSettings.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include #include "__compiled_constants.h" diff --git a/src/WebApi_security.cpp b/src/WebApi_security.cpp index 17aa99414..aaa1586f4 100644 --- a/src/WebApi_security.cpp +++ b/src/WebApi_security.cpp @@ -4,7 +4,7 @@ */ #include "WebApi_security.h" #include -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include diff --git a/src/WebApi_sysstatus.cpp b/src/WebApi_sysstatus.cpp index 7792a1b98..c331fbe70 100644 --- a/src/WebApi_sysstatus.cpp +++ b/src/WebApi_sysstatus.cpp @@ -6,7 +6,7 @@ #include #include "NetworkSettings.h" #include "HoyweiPinMapping.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "__compiled_constants.h" #include #include diff --git a/src/WebApi_vedirect.cpp b/src/WebApi_vedirect.cpp index d91aec494..af31946fd 100644 --- a/src/WebApi_vedirect.cpp +++ b/src/WebApi_vedirect.cpp @@ -7,7 +7,7 @@ #include "ArduinoJson.h" #include "AsyncJson.h" #include -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "WebApi_errors.h" #include "helper.h" #include diff --git a/src/WebApi_ws_Huawei.cpp b/src/WebApi_ws_Huawei.cpp index 5960a1e17..214c6dd93 100644 --- a/src/WebApi_ws_Huawei.cpp +++ b/src/WebApi_ws_Huawei.cpp @@ -8,7 +8,7 @@ #include #include "MessageOutput.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "defaults.h" WebApiWsHuaweiLiveClass::WebApiWsHuaweiLiveClass() diff --git a/src/WebApi_ws_battery.cpp b/src/WebApi_ws_battery.cpp index d34b922e6..edb8ae121 100644 --- a/src/WebApi_ws_battery.cpp +++ b/src/WebApi_ws_battery.cpp @@ -7,7 +7,7 @@ #include #include #include "MessageOutput.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "defaults.h" #include "Utils.h" diff --git a/src/WebApi_ws_console.cpp b/src/WebApi_ws_console.cpp index fa35efc7a..486933e2e 100644 --- a/src/WebApi_ws_console.cpp +++ b/src/WebApi_ws_console.cpp @@ -5,7 +5,7 @@ #include "WebApi_ws_console.h" #include #include "MessageOutput.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "defaults.h" WebApiWsConsoleClass::WebApiWsConsoleClass() diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index c32b26d45..062ef3686 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -6,7 +6,7 @@ #include "Datastore.h" #include "MessageOutput.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include #include #include diff --git a/src/WebApi_ws_vedirect_live.cpp b/src/WebApi_ws_vedirect_live.cpp index 2ed9f2665..fab937083 100644 --- a/src/WebApi_ws_vedirect_live.cpp +++ b/src/WebApi_ws_vedirect_live.cpp @@ -7,7 +7,7 @@ #include #include "MessageOutput.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "defaults.h" #include #include "VictronMppt.h" diff --git a/src/main.cpp b/src/main.cpp index 94fe9ade7..3d89817c7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,7 +30,7 @@ #include "Scheduler.h" #include "SunPosition.h" #include "Utils.h" -#include "WebApi.h" +#include "HoyweiWebApi.h" #include "PowerMeter.h" #include #include @@ -207,7 +207,7 @@ void setup() Battery.init(scheduler); - //OneMoreThing.init(scheduler); If you want to test one more thing you must uncomment this + OneMoreThing.init(scheduler); // If you want to test one more thing you must uncomment this } void loop() diff --git a/webapp/index.html b/webapp/index.html index bbb68b549..555820089 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -7,7 +7,7 @@ - OpenDTU-OnBattery + Hoywei-Turbo