mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 10:44:29 +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>
|
<th scope="row">Exhaust temp:</th>
|
||||||
<td><b class="exhaust-temp"></b> <span class="temp-unit"></span></td>
|
<td><b class="exhaust-temp"></b> <span class="temp-unit"></span></td>
|
||||||
</tr>
|
</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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Binary file not shown.
@@ -425,6 +425,13 @@ protected:
|
|||||||
Log.swarningln(FPSTR(L_OT), F("Set master version failed"));
|
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()) {
|
if (this->updateSlaveConfig()) {
|
||||||
Log.straceln(FPSTR(L_OT), F("Slave member id: %u, flags: %u"), vars.parameters.slaveMemberId, vars.parameters.slaveFlags);
|
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"]["heatingSetpoint"] = src.parameters.heatingSetpoint;
|
||||||
dst["parameters"]["dhwMinTemp"] = src.parameters.dhwMinTemp;
|
dst["parameters"]["dhwMinTemp"] = src.parameters.dhwMinTemp;
|
||||||
dst["parameters"]["dhwMaxTemp"] = src.parameters.dhwMaxTemp;
|
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) {
|
bool jsonToVars(const JsonVariantConst src, Variables& dst) {
|
||||||
|
|||||||
@@ -575,11 +575,24 @@ async function loadVars() {
|
|||||||
setValue('.indoor-temp', result.temperatures.indoor);
|
setValue('.indoor-temp', result.temperatures.indoor);
|
||||||
setValue('.outdoor-temp', result.temperatures.outdoor);
|
setValue('.outdoor-temp', result.temperatures.outdoor);
|
||||||
setValue('.heating-temp', result.temperatures.heating);
|
setValue('.heating-temp', result.temperatures.heating);
|
||||||
setValue('.heating-setpoint-temp', result.parameters.heatingSetpoint);
|
|
||||||
setValue('.heating-return-temp', result.temperatures.heatingReturn);
|
setValue('.heating-return-temp', result.temperatures.heatingReturn);
|
||||||
setValue('.dhw-temp', result.temperatures.dhw);
|
setValue('.dhw-temp', result.temperatures.dhw);
|
||||||
setValue('.exhaust-temp', result.temperatures.exhaust);
|
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);
|
setBusy('.ot-busy', '.ot-table', false);
|
||||||
|
|
||||||
setValue('.temp-unit', tempUnitStr);
|
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) {
|
function form2json(data) {
|
||||||
let method = function (object, pair) {
|
let method = function (object, pair) {
|
||||||
let keys = pair[0].replace(/\]/g, '').split('[');
|
let keys = pair[0].replace(/\]/g, '').split('[');
|
||||||
|
|||||||
Reference in New Issue
Block a user