diff --git a/.gitignore b/.gitignore index 9a9d7b4c..768987c7 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ .vscode .pio platformio-user.ini -/src/version.h +/lib/AmsConfiguration/include/version.h /src/web/root /src/AmsToMqttBridge.ino.cpp /test diff --git a/src/AmsConfiguration.h b/lib/AmsConfiguration/include/AmsConfiguration.h similarity index 100% rename from src/AmsConfiguration.h rename to lib/AmsConfiguration/include/AmsConfiguration.h diff --git a/src/AmsStorage.h b/lib/AmsConfiguration/include/AmsStorage.h similarity index 100% rename from src/AmsStorage.h rename to lib/AmsConfiguration/include/AmsStorage.h diff --git a/src/hexutils.h b/lib/AmsConfiguration/include/hexutils.h similarity index 100% rename from src/hexutils.h rename to lib/AmsConfiguration/include/hexutils.h diff --git a/src/AmsConfiguration.cpp b/lib/AmsConfiguration/src/AmsConfiguration.cpp similarity index 100% rename from src/AmsConfiguration.cpp rename to lib/AmsConfiguration/src/AmsConfiguration.cpp diff --git a/src/hexutils.cpp b/lib/AmsConfiguration/src/hexutils.cpp similarity index 100% rename from src/hexutils.cpp rename to lib/AmsConfiguration/src/hexutils.cpp diff --git a/src/AmsData.h b/lib/AmsData/include/AmsData.h similarity index 100% rename from src/AmsData.h rename to lib/AmsData/include/AmsData.h diff --git a/src/AmsData.cpp b/lib/AmsData/src/AmsData.cpp similarity index 100% rename from src/AmsData.cpp rename to lib/AmsData/src/AmsData.cpp diff --git a/src/AmsDataStorage.h b/lib/AmsDataStorage/include/AmsDataStorage.h similarity index 100% rename from src/AmsDataStorage.h rename to lib/AmsDataStorage/include/AmsDataStorage.h diff --git a/src/AmsDataStorage.cpp b/lib/AmsDataStorage/src/AmsDataStorage.cpp similarity index 100% rename from src/AmsDataStorage.cpp rename to lib/AmsDataStorage/src/AmsDataStorage.cpp diff --git a/web/application.js b/lib/ClassicUi/html/application.js similarity index 100% rename from web/application.js rename to lib/ClassicUi/html/application.js diff --git a/web/boot.css b/lib/ClassicUi/html/boot.css similarity index 100% rename from web/boot.css rename to lib/ClassicUi/html/boot.css diff --git a/web/configfile.html b/lib/ClassicUi/html/configfile.html similarity index 100% rename from web/configfile.html rename to lib/ClassicUi/html/configfile.html diff --git a/web/data.json b/lib/ClassicUi/html/data.json similarity index 100% rename from web/data.json rename to lib/ClassicUi/html/data.json diff --git a/web/dayplot.json b/lib/ClassicUi/html/dayplot.json similarity index 100% rename from web/dayplot.json rename to lib/ClassicUi/html/dayplot.json diff --git a/web/debugging.html b/lib/ClassicUi/html/debugging.html similarity index 100% rename from web/debugging.html rename to lib/ClassicUi/html/debugging.html diff --git a/web/delete.html b/lib/ClassicUi/html/delete.html similarity index 100% rename from web/delete.html rename to lib/ClassicUi/html/delete.html diff --git a/web/domoticz.html b/lib/ClassicUi/html/domoticz.html similarity index 100% rename from web/domoticz.html rename to lib/ClassicUi/html/domoticz.html diff --git a/web/domoticz.json b/lib/ClassicUi/html/domoticz.json similarity index 100% rename from web/domoticz.json rename to lib/ClassicUi/html/domoticz.json diff --git a/web/energyprice.json b/lib/ClassicUi/html/energyprice.json similarity index 100% rename from web/energyprice.json rename to lib/ClassicUi/html/energyprice.json diff --git a/web/entsoe.html b/lib/ClassicUi/html/entsoe.html similarity index 100% rename from web/entsoe.html rename to lib/ClassicUi/html/entsoe.html diff --git a/web/firmware.html b/lib/ClassicUi/html/firmware.html similarity index 100% rename from web/firmware.html rename to lib/ClassicUi/html/firmware.html diff --git a/web/foot.html b/lib/ClassicUi/html/foot.html similarity index 100% rename from web/foot.html rename to lib/ClassicUi/html/foot.html diff --git a/web/github.svg b/lib/ClassicUi/html/github.svg similarity index 100% rename from web/github.svg rename to lib/ClassicUi/html/github.svg diff --git a/web/gpio.html b/lib/ClassicUi/html/gpio.html similarity index 100% rename from web/gpio.html rename to lib/ClassicUi/html/gpio.html diff --git a/web/ha1.json b/lib/ClassicUi/html/ha1.json similarity index 100% rename from web/ha1.json rename to lib/ClassicUi/html/ha1.json diff --git a/web/ha2.json b/lib/ClassicUi/html/ha2.json similarity index 100% rename from web/ha2.json rename to lib/ClassicUi/html/ha2.json diff --git a/web/ha3.json b/lib/ClassicUi/html/ha3.json similarity index 100% rename from web/ha3.json rename to lib/ClassicUi/html/ha3.json diff --git a/web/hadiscover.json b/lib/ClassicUi/html/hadiscover.json similarity index 100% rename from web/hadiscover.json rename to lib/ClassicUi/html/hadiscover.json diff --git a/web/head.html b/lib/ClassicUi/html/head.html similarity index 100% rename from web/head.html rename to lib/ClassicUi/html/head.html diff --git a/web/index.html b/lib/ClassicUi/html/index.html similarity index 100% rename from web/index.html rename to lib/ClassicUi/html/index.html diff --git a/web/json1.json b/lib/ClassicUi/html/json1.json similarity index 100% rename from web/json1.json rename to lib/ClassicUi/html/json1.json diff --git a/web/json2.json b/lib/ClassicUi/html/json2.json similarity index 100% rename from web/json2.json rename to lib/ClassicUi/html/json2.json diff --git a/web/json3.json b/lib/ClassicUi/html/json3.json similarity index 100% rename from web/json3.json rename to lib/ClassicUi/html/json3.json diff --git a/web/json4.json b/lib/ClassicUi/html/json4.json similarity index 100% rename from web/json4.json rename to lib/ClassicUi/html/json4.json diff --git a/web/jsonprices.json b/lib/ClassicUi/html/jsonprices.json similarity index 100% rename from web/jsonprices.json rename to lib/ClassicUi/html/jsonprices.json diff --git a/web/jsonsys.json b/lib/ClassicUi/html/jsonsys.json similarity index 100% rename from web/jsonsys.json rename to lib/ClassicUi/html/jsonsys.json diff --git a/web/meter.html b/lib/ClassicUi/html/meter.html similarity index 100% rename from web/meter.html rename to lib/ClassicUi/html/meter.html diff --git a/web/meteradvanced.html b/lib/ClassicUi/html/meteradvanced.html similarity index 100% rename from web/meteradvanced.html rename to lib/ClassicUi/html/meteradvanced.html diff --git a/web/monthplot.json b/lib/ClassicUi/html/monthplot.json similarity index 100% rename from web/monthplot.json rename to lib/ClassicUi/html/monthplot.json diff --git a/web/mqtt.html b/lib/ClassicUi/html/mqtt.html similarity index 100% rename from web/mqtt.html rename to lib/ClassicUi/html/mqtt.html diff --git a/web/notfound.html b/lib/ClassicUi/html/notfound.html similarity index 100% rename from web/notfound.html rename to lib/ClassicUi/html/notfound.html diff --git a/web/ntp.html b/lib/ClassicUi/html/ntp.html similarity index 100% rename from web/ntp.html rename to lib/ClassicUi/html/ntp.html diff --git a/web/reset.html b/lib/ClassicUi/html/reset.html similarity index 100% rename from web/reset.html rename to lib/ClassicUi/html/reset.html diff --git a/web/restart.html b/lib/ClassicUi/html/restart.html similarity index 100% rename from web/restart.html rename to lib/ClassicUi/html/restart.html diff --git a/web/restartwait.html b/lib/ClassicUi/html/restartwait.html similarity index 100% rename from web/restartwait.html rename to lib/ClassicUi/html/restartwait.html diff --git a/web/setup.html b/lib/ClassicUi/html/setup.html similarity index 100% rename from web/setup.html rename to lib/ClassicUi/html/setup.html diff --git a/web/temperature.html b/lib/ClassicUi/html/temperature.html similarity index 100% rename from web/temperature.html rename to lib/ClassicUi/html/temperature.html diff --git a/web/tempsensor.json b/lib/ClassicUi/html/tempsensor.json similarity index 100% rename from web/tempsensor.json rename to lib/ClassicUi/html/tempsensor.json diff --git a/web/thresholds.html b/lib/ClassicUi/html/thresholds.html similarity index 100% rename from web/thresholds.html rename to lib/ClassicUi/html/thresholds.html diff --git a/web/upload.html b/lib/ClassicUi/html/upload.html similarity index 100% rename from web/upload.html rename to lib/ClassicUi/html/upload.html diff --git a/web/web.html b/lib/ClassicUi/html/web.html similarity index 100% rename from web/web.html rename to lib/ClassicUi/html/web.html diff --git a/web/wifi.html b/lib/ClassicUi/html/wifi.html similarity index 100% rename from web/wifi.html rename to lib/ClassicUi/html/wifi.html diff --git a/lib/ClassicUi/include/.gitignore b/lib/ClassicUi/include/.gitignore new file mode 100644 index 00000000..1530ce82 --- /dev/null +++ b/lib/ClassicUi/include/.gitignore @@ -0,0 +1 @@ +root/*.h diff --git a/src/web/AmsWebHeaders.h b/lib/ClassicUi/include/AmsWebHeaders.h similarity index 100% rename from src/web/AmsWebHeaders.h rename to lib/ClassicUi/include/AmsWebHeaders.h diff --git a/src/web/AmsWebServer.h b/lib/ClassicUi/include/AmsWebServer.h similarity index 99% rename from src/web/AmsWebServer.h rename to lib/ClassicUi/include/AmsWebServer.h index 0a0ac6b3..19705afd 100644 --- a/src/web/AmsWebServer.h +++ b/lib/ClassicUi/include/AmsWebServer.h @@ -13,7 +13,7 @@ #include "EnergyAccounting.h" #include "Uptime.h" #include "RemoteDebug.h" -#include "entsoe/EntsoeApi.h" +#include "EntsoeApi.h" #if defined(ESP8266) #include diff --git a/scripts/makeweb.py b/lib/ClassicUi/scripts/generate_includes.py similarity index 96% rename from scripts/makeweb.py rename to lib/ClassicUi/scripts/generate_includes.py index 658f4ca4..bb5efbeb 100644 --- a/scripts/makeweb.py +++ b/lib/ClassicUi/scripts/generate_includes.py @@ -25,8 +25,8 @@ except: print("WARN: Unable to load minifier") -webroot = "web" -srcroot = "src/web/root" +webroot = "lib/ClassicUi/html" +srcroot = "lib/ClassicUi/include/root" version = os.environ.get('GITHUB_TAG') if version == None: diff --git a/src/web/AmsWebServer.cpp b/lib/ClassicUi/src/AmsWebServer.cpp similarity index 100% rename from src/web/AmsWebServer.cpp rename to lib/ClassicUi/src/AmsWebServer.cpp diff --git a/src/EnergyAccounting.h b/lib/EnergyAccounting/include/EnergyAccounting.h similarity index 98% rename from src/EnergyAccounting.h rename to lib/EnergyAccounting/include/EnergyAccounting.h index c0c76e32..1a577fc4 100644 --- a/src/EnergyAccounting.h +++ b/lib/EnergyAccounting/include/EnergyAccounting.h @@ -4,7 +4,7 @@ #include "Arduino.h" #include "AmsData.h" #include "AmsDataStorage.h" -#include "entsoe/EntsoeApi.h" +#include "EntsoeApi.h" struct EnergyAccountingPeak { uint8_t day; diff --git a/src/EnergyAccounting.cpp b/lib/EnergyAccounting/src/EnergyAccounting.cpp similarity index 100% rename from src/EnergyAccounting.cpp rename to lib/EnergyAccounting/src/EnergyAccounting.cpp diff --git a/src/entsoe/DnbCurrParser.h b/lib/EntsoePriceApi/include/DnbCurrParser.h similarity index 100% rename from src/entsoe/DnbCurrParser.h rename to lib/EntsoePriceApi/include/DnbCurrParser.h diff --git a/src/entsoe/EntsoeA44Parser.h b/lib/EntsoePriceApi/include/EntsoeA44Parser.h similarity index 100% rename from src/entsoe/EntsoeA44Parser.h rename to lib/EntsoePriceApi/include/EntsoeA44Parser.h diff --git a/src/entsoe/EntsoeApi.h b/lib/EntsoePriceApi/include/EntsoeApi.h similarity index 100% rename from src/entsoe/EntsoeApi.h rename to lib/EntsoePriceApi/include/EntsoeApi.h diff --git a/src/entsoe/DnbCurrParser.cpp b/lib/EntsoePriceApi/src/DnbCurrParser.cpp similarity index 100% rename from src/entsoe/DnbCurrParser.cpp rename to lib/EntsoePriceApi/src/DnbCurrParser.cpp diff --git a/src/entsoe/EntsoeA44Parser.cpp b/lib/EntsoePriceApi/src/EntsoeA44Parser.cpp similarity index 100% rename from src/entsoe/EntsoeA44Parser.cpp rename to lib/EntsoePriceApi/src/EntsoeA44Parser.cpp diff --git a/src/entsoe/EntsoeApi.cpp b/lib/EntsoePriceApi/src/EntsoeApi.cpp similarity index 99% rename from src/entsoe/EntsoeApi.cpp rename to lib/EntsoePriceApi/src/EntsoeApi.cpp index 886e7201..00d25bde 100644 --- a/src/entsoe/EntsoeApi.cpp +++ b/lib/EntsoePriceApi/src/EntsoeApi.cpp @@ -201,7 +201,7 @@ bool EntsoeApi::retrieve(const char* url, Stream* doc) { https.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS); https.setReuse(false); https.setTimeout(50000); - https.setUserAgent("ams2mqtt/" + String(VERSION)); + https.setUserAgent("ams2mqtt"); #if defined(ESP32) if(https.begin(url)) { printD("Connection established"); diff --git a/src/HwTools.h b/lib/HwTools/include/HwTools.h similarity index 100% rename from src/HwTools.h rename to lib/HwTools/include/HwTools.h diff --git a/src/HwTools.cpp b/lib/HwTools/src/HwTools.cpp similarity index 100% rename from src/HwTools.cpp rename to lib/HwTools/src/HwTools.cpp diff --git a/src/Uptime.h b/lib/Uptime/include/Uptime.h similarity index 100% rename from src/Uptime.h rename to lib/Uptime/include/Uptime.h diff --git a/src/Uptime.cpp b/lib/Uptime/src/Uptime.cpp similarity index 100% rename from src/Uptime.cpp rename to lib/Uptime/src/Uptime.cpp diff --git a/platformio.ini b/platformio.ini index 37670bed..b4d27b19 100755 --- a/platformio.ini +++ b/platformio.ini @@ -2,8 +2,14 @@ extra_configs = platformio-user.ini [common] -lib_deps = Timezone@1.2.4, 256dpi/MQTT@2.5.0, OneWireNg@0.10.0, DallasTemperature@3.9.1, EspSoftwareSerial@6.14.1, https://github.com/gskjold/RemoteDebug.git, Time@1.6.1 +lib_deps = EEPROM, LittleFS, DNSServer, 256dpi/MQTT@2.5.0, OneWireNg@0.10.0, DallasTemperature@3.9.1, EspSoftwareSerial@6.14.1, https://github.com/gskjold/RemoteDebug.git, Time@1.6.1, Timezone@1.2.4, AmsConfiguration, AmsData, AmsDataStorage, HwTools, Uptime, EntsoePriceApi, EnergyAccounting, ClassicUi lib_ignore = OneWire +extra_scripts = + pre:scripts/addversion.py + lib/ClassicUi/scripts/generate_includes.py + +[esp32] +lib_deps = WiFi, ESPmDNS, WiFiClientSecure, HTTPClient, FS, Update, HTTPUpdate, WebServer, ${common.lib_deps} [env:esp8266] platform = espressif8266@3.2.0 @@ -11,11 +17,10 @@ framework = arduino board = esp12e board_build.ldscript = eagle.flash.4m2m.ld build_flags = -D WEBSOCKET_DISABLED=1 -lib_deps = ${common.lib_deps} +lib_ldf_mode = off +lib_deps = ESP8266WiFi, ESP8266mDNS, ESP8266WebServer, ESP8266HTTPClient, ESP8266httpUpdate, ${common.lib_deps} lib_ignore = ${common.lib_ignore} -extra_scripts = - pre:scripts/addversion.py - scripts/makeweb.py +extra_scripts = ${common.extra_scripts} # Sticking to v2.0.3 because of #298 @@ -25,11 +30,10 @@ framework = arduino board = esp32dev board_build.f_cpu = 160000000L build_flags = -D WEBSOCKET_DISABLED=1 -fexceptions -lib_deps = ${common.lib_deps} +lib_ldf_mode = off +lib_deps = ${esp32.lib_deps} lib_ignore = ${common.lib_ignore} -extra_scripts = - pre:scripts/addversion.py - scripts/makeweb.py +extra_scripts = ${common.extra_scripts} # Tasmota has pre-built platform for C3, S2, S3 and Solo, more information at: # https://github.com/Jason2866/esp32-arduino-lib-builder @@ -45,11 +49,10 @@ board_build.flash_mode = qio board_build.f_cpu = 160000000L board_build.f_flash = 40000000L build_flags = -D WEBSOCKET_DISABLED=1 -lib_deps = ${common.lib_deps} +lib_ldf_mode = off +lib_deps = ${esp32.lib_deps} lib_ignore = ${common.lib_ignore} -extra_scripts = - pre:scripts/addversion.py - scripts/makeweb.py +extra_scripts = ${common.extra_scripts} [env:esp32solo] platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-solo1-v.2.0.3.zip @@ -57,8 +60,7 @@ framework = arduino board = esp32dev board_build.f_cpu = 160000000L build_flags = -D WEBSOCKET_DISABLED=1 -fexceptions -lib_deps = ${common.lib_deps} +lib_ldf_mode = off +lib_deps = ${esp32.lib_deps} lib_ignore = ${common.lib_ignore} -extra_scripts = - pre:scripts/addversion.py - scripts/makeweb.py +extra_scripts = ${common.extra_scripts} diff --git a/scripts/addversion.py b/scripts/addversion.py index 47fc1d48..b373784c 100644 --- a/scripts/addversion.py +++ b/scripts/addversion.py @@ -2,7 +2,7 @@ import os import subprocess from time import time -FILENAME_VERSION_H = 'src/version.h' +FILENAME_VERSION_H = 'lib/AmsConfiguration/include/version.h' version = os.environ.get('GITHUB_TAG') if version == None: try: diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino index a10be9ac..69f4a5f7 100644 --- a/src/AmsToMqttBridge.ino +++ b/src/AmsToMqttBridge.ino @@ -49,9 +49,9 @@ ADC_MODE(ADC_VCC); #include "hexutils.h" #include "HwTools.h" -#include "entsoe/EntsoeApi.h" +#include "EntsoeApi.h" -#include "web/AmsWebServer.h" +#include "AmsWebServer.h" #include "AmsConfiguration.h" #include "mqtt/AmsMqttHandler.h" diff --git a/src/mqtt/AmsMqttHandler.h b/src/mqtt/AmsMqttHandler.h index e5364e4e..3472e3f6 100644 --- a/src/mqtt/AmsMqttHandler.h +++ b/src/mqtt/AmsMqttHandler.h @@ -7,7 +7,7 @@ #include "AmsConfiguration.h" #include "EnergyAccounting.h" #include "HwTools.h" -#include "entsoe/EntsoeApi.h" +#include "EntsoeApi.h" class AmsMqttHandler { public: diff --git a/src/mqtt/DomoticzMqttHandler.cpp b/src/mqtt/DomoticzMqttHandler.cpp index 11975d34..90cbb182 100644 --- a/src/mqtt/DomoticzMqttHandler.cpp +++ b/src/mqtt/DomoticzMqttHandler.cpp @@ -1,5 +1,5 @@ #include "DomoticzMqttHandler.h" -#include "web/root/domoticz_json.h" +#include "root/domoticz_json.h" bool DomoticzMqttHandler::publish(AmsData* data, AmsData* previousState, EnergyAccounting* ea) { bool ret = false; diff --git a/src/mqtt/HomeAssistantMqttHandler.cpp b/src/mqtt/HomeAssistantMqttHandler.cpp index f8678796..1fe9ead0 100644 --- a/src/mqtt/HomeAssistantMqttHandler.cpp +++ b/src/mqtt/HomeAssistantMqttHandler.cpp @@ -3,12 +3,12 @@ #include "hexutils.h" #include "Uptime.h" #include "version.h" -#include "web/root/ha1_json.h" -#include "web/root/ha2_json.h" -#include "web/root/ha3_json.h" -#include "web/root/jsonsys_json.h" -#include "web/root/jsonprices_json.h" -#include "web/root/hadiscover_json.h" +#include "root/ha1_json.h" +#include "root/ha2_json.h" +#include "root/ha3_json.h" +#include "root/jsonsys_json.h" +#include "root/jsonprices_json.h" +#include "root/hadiscover_json.h" bool HomeAssistantMqttHandler::publish(AmsData* data, AmsData* previousState, EnergyAccounting* ea) { if(topic.isEmpty() || !mqtt->connected()) diff --git a/src/mqtt/JsonMqttHandler.cpp b/src/mqtt/JsonMqttHandler.cpp index 132d8e32..8408b226 100644 --- a/src/mqtt/JsonMqttHandler.cpp +++ b/src/mqtt/JsonMqttHandler.cpp @@ -2,12 +2,12 @@ #include "version.h" #include "hexutils.h" #include "Uptime.h" -#include "web/root/json1_json.h" -#include "web/root/json2_json.h" -#include "web/root/json3_json.h" -#include "web/root/json4_json.h" -#include "web/root/jsonsys_json.h" -#include "web/root/jsonprices_json.h" +#include "root/json1_json.h" +#include "root/json2_json.h" +#include "root/json3_json.h" +#include "root/json4_json.h" +#include "root/jsonsys_json.h" +#include "root/jsonprices_json.h" bool JsonMqttHandler::publish(AmsData* data, AmsData* previousState, EnergyAccounting* ea) { if(topic.isEmpty() || !mqtt->connected())