mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-23 22:06:11 +02:00
0.8.55
* merge PR: fix reboot problem with deactivated power graph #1360 * changed scope of variables and member functions inside display classes * removed automatically "minimal" builds * fix include of "settings.h" (was already done in #1360) * merge PR: Enhancement: Add info about compiled modules to version string #1357 * add info about installed binary to `/update` #1353 * fix lang in `/system` #1346
This commit is contained in:
parent
201c96ec3b
commit
6c4e6f9d90
10 changed files with 87 additions and 40 deletions
|
@ -23,18 +23,33 @@ def readVersion(path):
|
||||||
|
|
||||||
today = date.today()
|
today = date.today()
|
||||||
search = ["_MAJOR", "_MINOR", "_PATCH"]
|
search = ["_MAJOR", "_MINOR", "_PATCH"]
|
||||||
version = today.strftime("%y%m%d") + "_ahoy_"
|
|
||||||
ver = ""
|
ver = ""
|
||||||
for line in lines:
|
for line in lines:
|
||||||
if(line.find("VERSION_") != -1):
|
if(line.find("VERSION_") != -1):
|
||||||
for s in search:
|
for s in search:
|
||||||
p = line.find(s)
|
p = line.find(s)
|
||||||
if(p != -1):
|
if(p != -1):
|
||||||
version += line[p+13:].rstrip() + "."
|
|
||||||
ver += line[p+13:].rstrip() + "."
|
ver += line[p+13:].rstrip() + "."
|
||||||
return ver[:-1]
|
return ver[:-1]
|
||||||
|
|
||||||
def htmlParts(file, header, nav, footer, version, lang):
|
def readVersionFull(path):
|
||||||
|
f = open(path, "r")
|
||||||
|
lines = f.readlines()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
today = date.today()
|
||||||
|
search = ["_MAJOR", "_MINOR", "_PATCH"]
|
||||||
|
version = today.strftime("%y%m%d") + "_ahoy_"
|
||||||
|
for line in lines:
|
||||||
|
if(line.find("VERSION_") != -1):
|
||||||
|
for s in search:
|
||||||
|
p = line.find(s)
|
||||||
|
if(p != -1):
|
||||||
|
version += line[p+13:].rstrip() + "."
|
||||||
|
version = version[:-1] + "_" + get_git_sha()
|
||||||
|
return version
|
||||||
|
|
||||||
|
def htmlParts(file, header, nav, footer, versionPath, lang):
|
||||||
p = "";
|
p = "";
|
||||||
f = open(file, "r")
|
f = open(file, "r")
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
|
@ -59,8 +74,10 @@ def htmlParts(file, header, nav, footer, version, lang):
|
||||||
p += line
|
p += line
|
||||||
|
|
||||||
#placeholders
|
#placeholders
|
||||||
|
version = readVersion(versionPath);
|
||||||
link = '<a target="_blank" href="https://github.com/lumapu/ahoy/commits/' + get_git_sha() + '">GIT SHA: ' + get_git_sha() + ' :: ' + version + '</a>'
|
link = '<a target="_blank" href="https://github.com/lumapu/ahoy/commits/' + get_git_sha() + '">GIT SHA: ' + get_git_sha() + ' :: ' + version + '</a>'
|
||||||
p = p.replace("{#VERSION}", version)
|
p = p.replace("{#VERSION}", version)
|
||||||
|
p = p.replace("{#VERSION_FULL}", readVersionFull(versionPath))
|
||||||
p = p.replace("{#VERSION_GIT}", link)
|
p = p.replace("{#VERSION_GIT}", link)
|
||||||
|
|
||||||
# remove if - endif ESP32
|
# remove if - endif ESP32
|
||||||
|
@ -120,7 +137,7 @@ def translate(file, data, lang="de"):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def convert2Header(inFile, version, lang):
|
def convert2Header(inFile, versionPath, lang):
|
||||||
fileType = inFile.split(".")[1]
|
fileType = inFile.split(".")[1]
|
||||||
define = inFile.split(".")[0].upper()
|
define = inFile.split(".")[0].upper()
|
||||||
define2 = inFile.split(".")[1].upper()
|
define2 = inFile.split(".")[1].upper()
|
||||||
|
@ -140,7 +157,7 @@ def convert2Header(inFile, version, lang):
|
||||||
f.close()
|
f.close()
|
||||||
else:
|
else:
|
||||||
if fileType == "html":
|
if fileType == "html":
|
||||||
data = htmlParts(inFile, "includes/header.html", "includes/nav.html", "includes/footer.html", version, lang)
|
data = htmlParts(inFile, "includes/header.html", "includes/nav.html", "includes/footer.html", versionPath, lang)
|
||||||
else:
|
else:
|
||||||
f = open(inFile, "r")
|
f = open(inFile, "r")
|
||||||
data = f.read()
|
data = f.read()
|
||||||
|
@ -193,7 +210,6 @@ for files in types:
|
||||||
Path("h").mkdir(exist_ok=True)
|
Path("h").mkdir(exist_ok=True)
|
||||||
Path("tmp").mkdir(exist_ok=True) # created to check if webpages are valid with all replacements
|
Path("tmp").mkdir(exist_ok=True) # created to check if webpages are valid with all replacements
|
||||||
shutil.copyfile("style.css", "tmp/style.css")
|
shutil.copyfile("style.css", "tmp/style.css")
|
||||||
version = readVersion("../../defines.h")
|
|
||||||
|
|
||||||
# get language from environment
|
# get language from environment
|
||||||
lang = "en"
|
lang = "en"
|
||||||
|
@ -202,4 +218,4 @@ if env['PIOENV'][-3:] == "-de":
|
||||||
|
|
||||||
# go throw the array
|
# go throw the array
|
||||||
for val in files_grabbed:
|
for val in files_grabbed:
|
||||||
convert2Header(val, version, lang)
|
convert2Header(val, "../../defines.h", lang)
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
* changed scope of variables and member functions inside display classes
|
* changed scope of variables and member functions inside display classes
|
||||||
* removed automatically "minimal" builds
|
* removed automatically "minimal" builds
|
||||||
* fix include of "settings.h" (was already done in #1360)
|
* fix include of "settings.h" (was already done in #1360)
|
||||||
|
* merge PR: Enhancement: Add info about compiled modules to version string #1357
|
||||||
|
* add info about installed binary to `/update` #1353
|
||||||
|
* fix lang in `/system` #1346
|
||||||
|
|
||||||
## 0.8.54 - 2024-01-13
|
## 0.8.54 - 2024-01-13
|
||||||
* added minimal version (without: MqTT, Display, History), WebUI is not changed!
|
* added minimal version (without: MqTT, Display, History), WebUI is not changed!
|
||||||
|
|
|
@ -465,8 +465,8 @@ void app:: zeroIvValues(bool checkAvail, bool skipYieldDay) {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void app::resetSystem(void) {
|
void app::resetSystem(void) {
|
||||||
snprintf(mVersion, sizeof(mVersion), "%d.%d.%d%s", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH,
|
snprintf(mVersion, sizeof(mVersion), "%d.%d.%d", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH);
|
||||||
"-"
|
snprintf(mVersionModules, sizeof(mVersionModules), "%s",
|
||||||
#ifdef ENABLE_PROMETHEUS_EP
|
#ifdef ENABLE_PROMETHEUS_EP
|
||||||
"P"
|
"P"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -188,6 +188,10 @@ class app : public IApp, public ah::Scheduler {
|
||||||
return mVersion;
|
return mVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *getVersionModules() {
|
||||||
|
return mVersionModules;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t getSunrise() {
|
uint32_t getSunrise() {
|
||||||
return mSunrise;
|
return mSunrise;
|
||||||
}
|
}
|
||||||
|
@ -386,7 +390,8 @@ class app : public IApp, public ah::Scheduler {
|
||||||
CmtRadio<> mCmtRadio;
|
CmtRadio<> mCmtRadio;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char mVersion[23];
|
char mVersion[12];
|
||||||
|
char mVersionModules[12];
|
||||||
settings mSettings;
|
settings mSettings;
|
||||||
settings_t *mConfig;
|
settings_t *mConfig;
|
||||||
bool mSavePending;
|
bool mSavePending;
|
||||||
|
|
|
@ -27,6 +27,7 @@ class IApp {
|
||||||
virtual bool getShouldReboot() = 0;
|
virtual bool getShouldReboot() = 0;
|
||||||
virtual void setRebootFlag() = 0;
|
virtual void setRebootFlag() = 0;
|
||||||
virtual const char *getVersion() = 0;
|
virtual const char *getVersion() = 0;
|
||||||
|
virtual const char *getVersionModules() = 0;
|
||||||
|
|
||||||
#if !defined(ETHERNET)
|
#if !defined(ETHERNET)
|
||||||
virtual void scanAvailNetworks() = 0;
|
virtual void scanAvailNetworks() = 0;
|
||||||
|
|
|
@ -252,6 +252,7 @@ class RestApi {
|
||||||
obj[F("ts_uptime")] = mApp->getUptime();
|
obj[F("ts_uptime")] = mApp->getUptime();
|
||||||
obj[F("ts_now")] = mApp->getTimestamp();
|
obj[F("ts_now")] = mApp->getTimestamp();
|
||||||
obj[F("version")] = String(mApp->getVersion());
|
obj[F("version")] = String(mApp->getVersion());
|
||||||
|
obj[F("modules")] = String(mApp->getVersionModules());
|
||||||
obj[F("build")] = String(AUTO_GIT_HASH);
|
obj[F("build")] = String(AUTO_GIT_HASH);
|
||||||
obj[F("env")] = String(ENV_NAME);
|
obj[F("env")] = String(ENV_NAME);
|
||||||
obj[F("menu_prot")] = mApp->getProtection(request);
|
obj[F("menu_prot")] = mApp->getProtection(request);
|
||||||
|
@ -325,7 +326,9 @@ class RestApi {
|
||||||
void getHtmlSystem(AsyncWebServerRequest *request, JsonObject obj) {
|
void getHtmlSystem(AsyncWebServerRequest *request, JsonObject obj) {
|
||||||
getSysInfo(request, obj.createNestedObject(F("system")));
|
getSysInfo(request, obj.createNestedObject(F("system")));
|
||||||
getGeneric(request, obj.createNestedObject(F("generic")));
|
getGeneric(request, obj.createNestedObject(F("generic")));
|
||||||
obj[F("html")] = F("<a href=\"/factory\" class=\"btn\">AhoyFactory Reset</a><br/><br/><a href=\"/reboot\" class=\"btn\">Reboot</a>");
|
char tmp[100];
|
||||||
|
snprintf(tmp, 100, "<a href=\"/factory\" class=\"btn\">%s</a><br/><br/><a href=\"/reboot\" class=\"btn\">%s</a>", FACTORY_RESET, BTN_REBOOT);
|
||||||
|
obj[F("html")] = String(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void getHtmlLogout(AsyncWebServerRequest *request, JsonObject obj) {
|
void getHtmlLogout(AsyncWebServerRequest *request, JsonObject obj) {
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
const data = ["sdk", "cpu_freq", "chip_revision",
|
const data = ["sdk", "cpu_freq", "chip_revision",
|
||||||
"chip_model", "chip_cores", "esp_type", "mac", "wifi_rssi", "ts_uptime",
|
"chip_model", "chip_cores", "esp_type", "mac", "wifi_rssi", "ts_uptime",
|
||||||
"flash_size", "sketch_used", "heap_total", "heap_free", "heap_frag",
|
"flash_size", "sketch_used", "heap_total", "heap_free", "heap_frag",
|
||||||
"max_free_blk", "version", "core_version", "reboot_reason"];
|
"max_free_blk", "version", "modules", "env", "core_version", "reboot_reason"];
|
||||||
|
|
||||||
lines = [];
|
lines = [];
|
||||||
for (const [key, value] of Object.entries(obj)) {
|
for (const [key, value] of Object.entries(obj)) {
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend class="des">{#SELECT_FILE} (*.bin)</legend>
|
<legend class="des">{#SELECT_FILE} (*.bin)</legend>
|
||||||
|
<p>{#INSTALLED_VERSION}: <span id="version" style="background-color: var(--input-bg); padding: 7px;"></span></p>
|
||||||
<form id="form" method="POST" action="/update" enctype="multipart/form-data" accept-charset="utf-8">
|
<form id="form" method="POST" action="/update" enctype="multipart/form-data" accept-charset="utf-8">
|
||||||
<input type="file" name="update">
|
<input type="file" name="update">
|
||||||
<input type="button" class="btn my-4" value="{#BTN_UPDATE}" onclick="hide()">
|
<input type="button" class="btn my-4" value="{#BTN_UPDATE}" onclick="hide()">
|
||||||
|
@ -26,6 +27,7 @@
|
||||||
parseNav(obj);
|
parseNav(obj);
|
||||||
parseESP(obj);
|
parseESP(obj);
|
||||||
parseRssi(obj);
|
parseRssi(obj);
|
||||||
|
document.getElementById("version").innerHTML = "{#VERSION_FULL}_" + obj.env + ".bin"
|
||||||
}
|
}
|
||||||
|
|
||||||
function hide() {
|
function hide() {
|
||||||
|
|
|
@ -72,4 +72,16 @@
|
||||||
#define INV_NOT_FOUND "inverter not found!"
|
#define INV_NOT_FOUND "inverter not found!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef LANG_DE
|
||||||
|
#define FACTORY_RESET "Ahoy Factory Reset"
|
||||||
|
#else /*LANG_EN*/
|
||||||
|
#define FACTORY_RESET "Ahoy auf Werkseinstellungen zurücksetzen"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef LANG_DE
|
||||||
|
#define BTN_REBOOT "Reboot"
|
||||||
|
#else /*LANG_EN*/
|
||||||
|
#define BTN_REBOOT "Ahoy neustarten"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /*__LANG_H__*/
|
#endif /*__LANG_H__*/
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
{
|
{
|
||||||
"token": "WELCOME",
|
"token": "WELCOME",
|
||||||
"en": "Welcome to AhoyDTU",
|
"en": "Welcome to AhoyDTU",
|
||||||
"de": "Willkommen zu AhoyDTU"
|
"de": "Willkommen bei AhoyDTU"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"token": "NETWORK_SETUP",
|
"token": "NETWORK_SETUP",
|
||||||
|
@ -1043,6 +1043,11 @@
|
||||||
"en": "Download latest Release and Development versions (without login)",
|
"en": "Download latest Release and Development versions (without login)",
|
||||||
"de": "Lade die letzte Releaseversion oder Entwicklerversion herunter (ohne Login)"
|
"de": "Lade die letzte Releaseversion oder Entwicklerversion herunter (ohne Login)"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"token": "INSTALLED_VERSION",
|
||||||
|
"en": "installed version (original filename)",
|
||||||
|
"de": "aktuell installierte Version"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"token": "UPDATE_STARTED",
|
"token": "UPDATE_STARTED",
|
||||||
"en": "update started",
|
"en": "update started",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue