Merge pull request #2535 from MichaelDvP/dev

show console log with ISO date/time, #2533
This commit is contained in:
Proddy
2025-04-25 09:18:06 +02:00
committed by GitHub
9 changed files with 58 additions and 33 deletions

View File

@@ -24,4 +24,4 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
## Changed
-
- show console log with ISO date/time [#2533](https://github.com/emsesp/EMS-ESP32/discussions/2533)

View File

@@ -36,7 +36,7 @@
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-icons": "^5.5.0",
"react-router": "^7.5.1",
"react-router": "^7.5.2",
"react-toastify": "^11.0.5",
"typesafe-i18n": "^5.26.2",
"typescript": "^5.8.3"
@@ -47,7 +47,7 @@
"@preact/compat": "^18.3.1",
"@preact/preset-vite": "^2.10.1",
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
"@types/node": "^22.14.1",
"@types/node": "^22.15.1",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"concurrently": "^9.1.2",
@@ -57,7 +57,7 @@
"rollup-plugin-visualizer": "^5.14.0",
"terser": "^5.39.0",
"typescript-eslint": "8.31.0",
"vite": "^6.3.2",
"vite": "^6.3.3",
"vite-plugin-imagemin": "^0.6.1",
"vite-tsconfig-paths": "^5.1.4"
},

View File

@@ -1399,7 +1399,7 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:^22.14.1":
"@types/node@npm:*":
version: 22.14.1
resolution: "@types/node@npm:22.14.1"
dependencies:
@@ -1408,6 +1408,15 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:^22.15.1":
version: 22.15.1
resolution: "@types/node@npm:22.15.1"
dependencies:
undici-types: "npm:~6.21.0"
checksum: 10c0/80bd7fff7d6f4058875feb2c980fa066266b02ffde51e794cf4b7bea5f1316c08baa135fa7cbffa677efb999b0945b2697b318e84af4563c1ab8d3392a17bf9a
languageName: node
linkType: hard
"@types/parse-json@npm:^4.0.0":
version: 4.0.2
resolution: "@types/parse-json@npm:4.0.2"
@@ -1594,7 +1603,7 @@ __metadata:
"@preact/preset-vite": "npm:^2.10.1"
"@table-library/react-table-library": "npm:4.1.15"
"@trivago/prettier-plugin-sort-imports": "npm:^5.2.2"
"@types/node": "npm:^22.14.1"
"@types/node": "npm:^22.15.1"
"@types/react": "npm:^19.1.2"
"@types/react-dom": "npm:^19.1.2"
alova: "npm:3.2.10"
@@ -1610,14 +1619,14 @@ __metadata:
react: "npm:^19.1.0"
react-dom: "npm:^19.1.0"
react-icons: "npm:^5.5.0"
react-router: "npm:^7.5.1"
react-router: "npm:^7.5.2"
react-toastify: "npm:^11.0.5"
rollup-plugin-visualizer: "npm:^5.14.0"
terser: "npm:^5.39.0"
typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.8.3"
typescript-eslint: "npm:8.31.0"
vite: "npm:^6.3.2"
vite: "npm:^6.3.3"
vite-plugin-imagemin: "npm:^0.6.1"
vite-tsconfig-paths: "npm:^5.1.4"
languageName: unknown
@@ -3303,7 +3312,7 @@ __metadata:
languageName: node
linkType: hard
"fdir@npm:^6.4.3, fdir@npm:^6.4.4":
"fdir@npm:^6.4.4":
version: 6.4.4
resolution: "fdir@npm:6.4.4"
peerDependencies:
@@ -5572,9 +5581,9 @@ __metadata:
languageName: node
linkType: hard
"react-router@npm:^7.5.1":
version: 7.5.1
resolution: "react-router@npm:7.5.1"
"react-router@npm:^7.5.2":
version: 7.5.2
resolution: "react-router@npm:7.5.2"
dependencies:
cookie: "npm:^1.0.1"
set-cookie-parser: "npm:^2.6.0"
@@ -5585,7 +5594,7 @@ __metadata:
peerDependenciesMeta:
react-dom:
optional: true
checksum: 10c0/54e9f77ede0bf36c12685a59c5d965f77f2223d01cd922ce7b6ef4f8fa5435e66c796f9f5da3487bde0cb98dadd64f5a406696d4f52e031af812857aaab0f76b
checksum: 10c0/5972ecb783e0ac0512c500b84bd4ff475665ba49c67b69e13b79dc24c7ee0496d523858058bb43c70147367688e0cc0d6d6d0f51cabfdebfbc5556d559bff457
languageName: node
linkType: hard
@@ -6492,7 +6501,7 @@ __metadata:
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.12":
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13":
version: 0.2.13
resolution: "tinyglobby@npm:0.2.13"
dependencies:
@@ -6831,17 +6840,17 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^6.3.2":
version: 6.3.2
resolution: "vite@npm:6.3.2"
"vite@npm:^6.3.3":
version: 6.3.3
resolution: "vite@npm:6.3.3"
dependencies:
esbuild: "npm:^0.25.0"
fdir: "npm:^6.4.3"
fdir: "npm:^6.4.4"
fsevents: "npm:~2.3.3"
picomatch: "npm:^4.0.2"
postcss: "npm:^8.5.3"
rollup: "npm:^4.34.9"
tinyglobby: "npm:^0.2.12"
tinyglobby: "npm:^0.2.13"
peerDependencies:
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: ">=1.21.0"
@@ -6882,7 +6891,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: 10c0/08681e83e8338f3915cee729d8296bb9cfd53f71d6796816445d58cd84a8387396a3f5f3e179c52b09e98ccf7247ec3fabb50b95b0e7f3289a619ef8bf71bd8a
checksum: 10c0/7ea27d2c80a9e0b7ccf6cbd6c251455501286568160e8b632984e5332440f21a6d05f9236408212ba7653f7d2d4790f848956d8a620bbf4dd2ecb792a2fe1ab1
languageName: node
linkType: hard

View File

@@ -106,7 +106,15 @@ void Shell::output_logs() {
}
while (1) {
print(uuid::log::format_timestamp_ms(message.content_->uptime_ms, 3));
time_t offset = time(nullptr) - uuid::get_uptime_sec();
if (offset < 1500000000L) {
print(uuid::log::format_timestamp_ms(message.content_->uptime_ms, 3));
} else {
time_t t1 = offset + (time_t)(message.content_->uptime_ms / 1000);
char timestr[25];
strftime(timestr, 25, "%FT%T", localtime(&t1));
printf("%s.%03d", timestr, (uint16_t)(message.content_->uptime_ms % 1000));
}
printf(" %c %lu: [%s] ", uuid::log::format_level_char(message.content_->level), message.id_, message.content_->name);
if ((message.content_->level == uuid::log::Level::ERR) || (message.content_->level == uuid::log::Level::WARNING)) {

View File

@@ -670,9 +670,9 @@ void EMSESPShell::end_of_transmission() {
void EMSESPShell::main_help_function(Shell & shell, const std::vector<std::string> & arguments) {
shell.println();
#if defined(EMSESP_DEBUG)
shell.printfln("%s%sEMS-ESP version %s%s", COLOR_BRIGHT_GREEN, COLOR_BOLD_ON, EMSESP_APP_VERSION, COLOR_RESET);
#else
shell.printfln("%s%sEMS-ESP version %s%s (DEBUG)", COLOR_BRIGHT_GREEN, COLOR_BOLD_ON, EMSESP_APP_VERSION, COLOR_RESET);
#else
shell.printfln("%s%sEMS-ESP version %s%s", COLOR_BRIGHT_GREEN, COLOR_BOLD_ON, EMSESP_APP_VERSION, COLOR_RESET);
#endif
shell.println();
shell.print_all_available_commands();

View File

@@ -1059,12 +1059,12 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
register_device_value(DeviceValueTAG::TAG_DHW1, &wwWorkM_, DeviceValueType::TIME, FL_(wwWorkM), DeviceValueUOM::MINUTES);
// fetch some initial data
EMSESP::send_read_request(0x10, device_id); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0x11, device_id); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0x15, device_id); // read maintenance data on start (only published on change)
EMSESP::send_read_request(0x1C, device_id); // read maintenance status on start (only published on change)
EMSESP::send_read_request(0xC2, device_id); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0xC6, device_id); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0x10, device_id, 0, 11); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0x11, device_id, 0, 11); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0x15, device_id); // read maintenance data on start (only published on change)
EMSESP::send_read_request(0x1C, device_id); // read maintenance status on start (only published on change)
EMSESP::send_read_request(0xC2, device_id, 0, 20); // read last errorcode on start (not broadcasted)
EMSESP::send_read_request(0xC6, device_id, 0, 21); // read last errorcode on start (not broadcasted)
if (model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) {
@@ -1835,8 +1835,8 @@ void Boiler::process_UBAMaintenanceStatus(std::shared_ptr<const Telegram> telegr
// 0xBF
void Boiler::process_ErrorMessage(std::shared_ptr<const Telegram> telegram) {
EMSESP::send_read_request(0xC2, device_id()); // read last errorcode
EMSESP::send_read_request(0xC6, device_id()); // read last errorcode
EMSESP::send_read_request(0xC2, device_id(), 0, 20); // read last errorcode
EMSESP::send_read_request(0xC6, device_id(), 0, 21); // read last errorcode
}
// 0x10, 0x11

View File

@@ -194,8 +194,9 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i
register_telegram_type(0x269, "RC300Holiday", true, MAKE_PF_CB(process_RC300Holiday));
}
register_telegram_type(0x16E, "Absent", true, MAKE_PF_CB(process_Absent));
register_telegram_type(0xBF, "ErrorMessage", false, MAKE_PF_CB(process_ErrorMessageBF));
register_telegram_type(0xC0, "RCErrorMessage", false, MAKE_PF_CB(process_RCErrorMessage2));
EMSESP::send_read_request(0xC0, device_id); // read last errorcode on start (only published on errors)
EMSESP::send_read_request(0xC0, device_id, 0, 20); // read last errorcode on start (only published on errors)
// JUNKERS/HT3
} else if (model == EMSdevice::EMS_DEVICE_FLAG_JUNKERS) {
@@ -1757,6 +1758,12 @@ void Thermostat::process_RCErrorMessage(std::shared_ptr<const Telegram> telegram
}
}
}
// 0xBF
void Thermostat::process_ErrorMessageBF(std::shared_ptr<const Telegram> telegram) {
EMSESP::send_read_request(0xC0, device_id(), 0, 20); // read last errorcode
}
// 0xC0 error log for RC300
void Thermostat::process_RCErrorMessage2(std::shared_ptr<const Telegram> telegram) {
if (telegram->offset > 0 || telegram->message_length < 20) {

View File

@@ -412,6 +412,7 @@ class Thermostat : public EMSdevice {
void process_RCError(std::shared_ptr<const Telegram> telegram);
void process_RCErrorMessage(std::shared_ptr<const Telegram> telegram);
void process_RCErrorMessage2(std::shared_ptr<const Telegram> telegram);
void process_ErrorMessageBF(std::shared_ptr<const Telegram> telegram);
void process_RC35wwSettings(std::shared_ptr<const Telegram> telegram);
void process_RC35wwTimer(std::shared_ptr<const Telegram> telegram);
void process_RC35Monitor(std::shared_ptr<const Telegram> telegram);

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.7.3-dev.9"
#define EMSESP_APP_VERSION "3.7.3-dev.10"