mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-10 18:24:27 +05:00
feat: added slave parameters to index page on portal; added poll ID125 (opentherm protocol version)
This commit is contained in:
@@ -206,6 +206,21 @@
|
||||
<th scope="row">Exhaust temp:</th>
|
||||
<td><b class="exhaust-temp"></b> <span class="temp-unit"></span></td>
|
||||
</tr>
|
||||
|
||||
<!-- Diag -->
|
||||
<tr>
|
||||
<th scope="row">Slave parameters:</th>
|
||||
<td>
|
||||
<pre><b>Vendor:</b> <span class="slave-vendor"></span>
|
||||
<b>Member ID:</b> <span class="slave-member-id"></span>
|
||||
<b>Flags:</b> <span class="slave-flags"></span>
|
||||
<b>Type:</b> <span class="slave-type"></span>
|
||||
<b>Version:</b> <span class="slave-version"></span>
|
||||
<b>OT version:</b> <span class="slave-ot-version"></span>
|
||||
<b>Heating limits:</b> <span class="heating-min-temp"></span>...<span class="heating-max-temp"></span> <span class="temp-unit"></span>
|
||||
<b>DHW limits:</b> <span class="dhw-min-temp"></span>...<span class="dhw-max-temp"></span> <span class="temp-unit"></span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Binary file not shown.
@@ -425,6 +425,13 @@ protected:
|
||||
Log.swarningln(FPSTR(L_OT), F("Set master version failed"));
|
||||
}
|
||||
|
||||
if (this->updateSlaveOtVersion()) {
|
||||
Log.straceln(FPSTR(L_OT), F("Slave OT version: %f"), vars.parameters.slaveOtVersion);
|
||||
|
||||
} else {
|
||||
Log.swarningln(FPSTR(L_OT), F("Get slave OT version failed"));
|
||||
}
|
||||
|
||||
if (this->updateSlaveConfig()) {
|
||||
Log.straceln(FPSTR(L_OT), F("Slave member id: %u, flags: %u"), vars.parameters.slaveMemberId, vars.parameters.slaveFlags);
|
||||
|
||||
|
||||
@@ -1137,6 +1137,12 @@ void varsToJson(const Variables& src, JsonVariant dst) {
|
||||
dst["parameters"]["heatingSetpoint"] = src.parameters.heatingSetpoint;
|
||||
dst["parameters"]["dhwMinTemp"] = src.parameters.dhwMinTemp;
|
||||
dst["parameters"]["dhwMaxTemp"] = src.parameters.dhwMaxTemp;
|
||||
|
||||
dst["parameters"]["slaveMemberId"] = src.parameters.slaveMemberId;
|
||||
dst["parameters"]["slaveFlags"] = src.parameters.slaveFlags;
|
||||
dst["parameters"]["slaveType"] = src.parameters.slaveType;
|
||||
dst["parameters"]["slaveVersion"] = src.parameters.slaveVersion;
|
||||
dst["parameters"]["slaveOtVersion"] = src.parameters.slaveOtVersion;
|
||||
}
|
||||
|
||||
bool jsonToVars(const JsonVariantConst src, Variables& dst) {
|
||||
|
||||
@@ -575,11 +575,24 @@ async function loadVars() {
|
||||
setValue('.indoor-temp', result.temperatures.indoor);
|
||||
setValue('.outdoor-temp', result.temperatures.outdoor);
|
||||
setValue('.heating-temp', result.temperatures.heating);
|
||||
setValue('.heating-setpoint-temp', result.parameters.heatingSetpoint);
|
||||
setValue('.heating-return-temp', result.temperatures.heatingReturn);
|
||||
setValue('.dhw-temp', result.temperatures.dhw);
|
||||
setValue('.exhaust-temp', result.temperatures.exhaust);
|
||||
|
||||
setValue('.heating-min-temp', result.parameters.heatingMinTemp);
|
||||
setValue('.heating-max-temp', result.parameters.heatingMaxTemp);
|
||||
setValue('.heating-setpoint-temp', result.parameters.heatingSetpoint);
|
||||
setValue('.dhw-min-temp', result.parameters.dhwMinTemp);
|
||||
setValue('.dhw-max-temp', result.parameters.dhwMaxTemp);
|
||||
|
||||
setValue('.slave-member-id', result.parameters.slaveMemberId);
|
||||
setValue('.slave-vendor', memberIdToVendor(result.parameters.slaveMemberId));
|
||||
|
||||
setValue('.slave-flags', result.parameters.slaveFlags);
|
||||
setValue('.slave-type', result.parameters.slaveType);
|
||||
setValue('.slave-version', result.parameters.slaveVersion);
|
||||
setValue('.slave-ot-version', result.parameters.slaveOtVersion);
|
||||
|
||||
setBusy('.ot-busy', '.ot-table', false);
|
||||
|
||||
setValue('.temp-unit', tempUnitStr);
|
||||
@@ -670,6 +683,36 @@ function setInputValue(selector, value) {
|
||||
}
|
||||
|
||||
|
||||
function memberIdToVendor(memberId) {
|
||||
// https://github.com/Jeroen88/EasyOpenTherm/blob/main/src/EasyOpenTherm.h
|
||||
// https://github.com/Evgen2/SmartTherm/blob/v0.7/src/Web.cpp
|
||||
const vendorList = {
|
||||
1: "Baxi Fourtech/Luna 3",
|
||||
2: "AWB/Brink",
|
||||
4: "ATAG/Brötje/ELCO/GEMINOX",
|
||||
5: "Itho Daalderop",
|
||||
6: "IDEAL",
|
||||
8: "Buderus/Bosch/Hoval",
|
||||
9: "Ferroli",
|
||||
11: "Remeha/De Dietrich",
|
||||
16: "Unical",
|
||||
24: "Vaillant/Bulex",
|
||||
27: "Baxi",
|
||||
29: "Itho Daalderop",
|
||||
33: "Viessmann",
|
||||
56: "Baxi Luna Duo-Tec",
|
||||
131: "Nefit",
|
||||
148: "Navien",
|
||||
173: "Intergas",
|
||||
247: "Baxi Ampera",
|
||||
248: "Zota Lux-X"
|
||||
};
|
||||
|
||||
return (memberId in vendorList)
|
||||
? vendorList[memberId]
|
||||
: "unknown vendor";
|
||||
}
|
||||
|
||||
function form2json(data) {
|
||||
let method = function (object, pair) {
|
||||
let keys = pair[0].replace(/\]/g, '').split('[');
|
||||
|
||||
Reference in New Issue
Block a user