8 Commits

Author SHA1 Message Date
Yurii
14b1eac732 chore: bump version to 1.5.5 2025-06-05 05:40:09 +03:00
Yurii
d16f56d280 fix: build for ESP32 C6 2025-05-23 00:42:29 +03:00
Yurii
8b50ed48c1 fix: revert default value of slave max modulation; always set max modulation level
Baxi Ampera resets the maximum modulation level to 0 when the heating is turned off
2025-05-21 01:17:43 +03:00
Yurii
f212d9d9a8 fix: changed default value of slave max modulation to 0 2025-05-20 00:05:29 +03:00
Yurii
0e78e71493 refactor: more logs 2025-05-19 23:39:15 +03:00
Yurii
655313562d fix: typo 2025-05-19 23:28:55 +03:00
Yurii
c8e7724da8 refactor: cosmetic changes 2025-05-19 23:26:44 +03:00
Yurii
f986129c72 fix: set month of date to OT fixed 2025-05-19 23:16:34 +03:00
3 changed files with 52 additions and 27 deletions

View File

@@ -14,7 +14,7 @@ extra_configs = secrets.default.ini
core_dir = .pio core_dir = .pio
[env] [env]
version = 1.5.4 version = 1.5.5
framework = arduino framework = arduino
lib_deps = lib_deps =
bblanchon/ArduinoJson@^7.3.0 bblanchon/ArduinoJson@^7.3.0
@@ -291,6 +291,11 @@ framework = arduino, espidf
platform_packages = ${esp32_defaults.platform_packages} platform_packages = ${esp32_defaults.platform_packages}
board = esp32-c6-devkitm-1 board = esp32-c6-devkitm-1
board_build.partitions = ${esp32_defaults.board_build.partitions} board_build.partitions = ${esp32_defaults.board_build.partitions}
board_build.embed_txtfiles =
managed_components/espressif__esp_insights/server_certs/https_server.crt
managed_components/espressif__esp_rainmaker/server_certs/rmaker_mqtt_server.crt
managed_components/espressif__esp_rainmaker/server_certs/rmaker_claim_service_server.crt
managed_components/espressif__esp_rainmaker/server_certs/rmaker_ota_server.crt
lib_deps = ${esp32_defaults.lib_deps} lib_deps = ${esp32_defaults.lib_deps}
lib_ignore = lib_ignore =
${esp32_defaults.lib_ignore} ${esp32_defaults.lib_ignore}

View File

@@ -554,6 +554,9 @@ protected:
Sensors::Type::OT_BURNER_STARTS, vars.slave.stats.burnerStarts, Sensors::Type::OT_BURNER_STARTS, vars.slave.stats.burnerStarts,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive burner starts"));
} }
} }
@@ -566,6 +569,9 @@ protected:
Sensors::Type::OT_DHW_BURNER_STARTS, vars.slave.stats.dhwBurnerStarts, Sensors::Type::OT_DHW_BURNER_STARTS, vars.slave.stats.dhwBurnerStarts,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive DHW burner starts"));
} }
} }
@@ -578,6 +584,9 @@ protected:
Sensors::Type::OT_HEATING_PUMP_STARTS, vars.slave.stats.heatingPumpStarts, Sensors::Type::OT_HEATING_PUMP_STARTS, vars.slave.stats.heatingPumpStarts,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive heating pump starts"));
} }
} }
@@ -590,6 +599,9 @@ protected:
Sensors::Type::OT_DHW_PUMP_STARTS, vars.slave.stats.dhwPumpStarts, Sensors::Type::OT_DHW_PUMP_STARTS, vars.slave.stats.dhwPumpStarts,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive DHW pump starts"));
} }
} }
@@ -602,6 +614,9 @@ protected:
Sensors::Type::OT_BURNER_HOURS, vars.slave.stats.burnerHours, Sensors::Type::OT_BURNER_HOURS, vars.slave.stats.burnerHours,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive burner hours"));
} }
} }
@@ -614,6 +629,9 @@ protected:
Sensors::Type::OT_DHW_BURNER_HOURS, vars.slave.stats.dhwBurnerHours, Sensors::Type::OT_DHW_BURNER_HOURS, vars.slave.stats.dhwBurnerHours,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive DHW burner hours"));
} }
} }
@@ -626,6 +644,9 @@ protected:
Sensors::Type::OT_HEATING_PUMP_HOURS, vars.slave.stats.heatingPumpHours, Sensors::Type::OT_HEATING_PUMP_HOURS, vars.slave.stats.heatingPumpHours,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive heating pump hours"));
} }
} }
@@ -638,6 +659,9 @@ protected:
Sensors::Type::OT_DHW_PUMP_HOURS, vars.slave.stats.dhwPumpHours, Sensors::Type::OT_DHW_PUMP_HOURS, vars.slave.stats.dhwPumpHours,
Sensors::ValueType::PRIMARY, true, true Sensors::ValueType::PRIMARY, true, true
); );
} else {
Log.swarningln(FPSTR(L_OT), F("Failed receive DHW pump hours"));
} }
} }
@@ -663,19 +687,17 @@ protected:
targetMaxModulation = settings.dhw.maxModulation; targetMaxModulation = settings.dhw.maxModulation;
} }
if (vars.slave.modulation.max != targetMaxModulation) { if (this->setMaxModulationLevel(targetMaxModulation)) {
if (this->setMaxModulationLevel(targetMaxModulation)) { Log.snoticeln(
Log.snoticeln( FPSTR(L_OT), F("Set max modulation: %hhu%% (response: %hhu%%)"),
FPSTR(L_OT), F("Set max modulation: %hhu%% (response: %hhu%%)"), targetMaxModulation, vars.slave.modulation.max
targetMaxModulation, vars.slave.modulation.max );
);
} else { } else {
Log.swarningln( Log.swarningln(
FPSTR(L_OT), F("Failed set max modulation: %hhu%% (response: %hhu%%)"), FPSTR(L_OT), F("Failed set max modulation: %hhu%% (response: %hhu%%)"),
targetMaxModulation, vars.slave.modulation.max targetMaxModulation, vars.slave.modulation.max
); );
}
} }
// Update modulation level // Update modulation level
@@ -1418,9 +1440,8 @@ protected:
} }
bool setDayAndMonth(const struct tm *ptm) { bool setDayAndMonth(const struct tm *ptm) {
const unsigned int request = ((ptm->tm_mon + 1) & 0xFF << 8) const uint8_t month = (ptm->tm_mon + 1) & 0xFF;
| (ptm->tm_mday & 0xFF); const unsigned int request = (month << 8) | (ptm->tm_mday & 0xFF);
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest( const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
OpenThermRequestType::WRITE_DATA, OpenThermRequestType::WRITE_DATA,
OpenThermMessageID::Date, OpenThermMessageID::Date,

View File

@@ -261,16 +261,16 @@
<details> <details>
<summary><b data-i18n>dashboard.section.diag</b></summary> <summary><b data-i18n>dashboard.section.diag</b></summary>
<pre><b>Vendor:</b> <span class="sVendor"></span> <pre><b>Vendor:</b> <span class="sVendor"></span>
<b>Member ID:</b> <span class="sMemberId"></span> <b>Member ID:</b> <span class="sMemberId"></span>
<b>Flags:</b> <span class="sFlags"></span> <b>Flags:</b> <span class="sFlags"></span>
<b>Type:</b> <span class="sType"></span> <b>Type:</b> <span class="sType"></span>
<b>AppVersion:</b> <span class="sAppVersion"></span> <b>AppVersion:</b> <span class="sAppVersion"></span>
<b>OT version:</b> <span class="sProtocolVersion"></span> <b>OT version:</b> <span class="sProtocolVersion"></span>
<b>Modulation limits:</b> <span class="sModMin"></span>...<span class="sAbsModMax"></span> %, curr. max: <span class="sModMax"></span> % <b>Modulation:</b> min: <span class="sModMin"></span> %, curr. max: <span class="sModMax"></span> %
<b>Power limits:</b> <span class="sPowerMin"></span>...<span class="sPowerMax"></span> kW <b>Power limits:</b> <span class="sPowerMin"></span>...<span class="sPowerMax"></span> kW
<b>Heating limits:</b> <span class="sHeatMinTemp"></span>...<span class="sHeatMaxTemp"></span> <span class="tempUnit"></span> <b>Heating limits:</b> <span class="sHeatMinTemp"></span>...<span class="sHeatMaxTemp"></span> <span class="tempUnit"></span>
<b>DHW limits:</b> <span class="sDhwMinTemp"></span>...<span class="sDhwMaxTemp"></span> <span class="tempUnit"></span></pre> <b>DHW limits:</b> <span class="sDhwMinTemp"></span>...<span class="sDhwMaxTemp"></span> <span class="tempUnit"></span></pre>
</details> </details>
</div> </div>
</article> </article>
@@ -508,7 +508,6 @@
setValue('.tempUnit', temperatureUnit(unitSystem)); setValue('.tempUnit', temperatureUnit(unitSystem));
setValue('.pressureUnit', pressureUnit(unitSystem)); setValue('.pressureUnit', pressureUnit(unitSystem));
setValue('.volumeUnit', volumeUnit(unitSystem)); setValue('.volumeUnit', volumeUnit(unitSystem));
setValue('.sAbsModMax', result.opentherm.maxModulation);
} catch (error) { } catch (error) {
console.log(error); console.log(error);