diff --git a/data/index.html b/data/index.html index ae9b4a8..d431514 100644 --- a/data/index.html +++ b/data/index.html @@ -206,6 +206,21 @@ Exhaust temp: + + + + Slave parameters: + +
Vendor:          
+Member ID:       
+Flags:           
+Type:            
+Version:         
+OT version:      
+Heating limits:  ... 
+DHW limits:      ... 
+ + diff --git a/data/static/app.js.gz b/data/static/app.js.gz index c1dc8fe..1b62381 100644 Binary files a/data/static/app.js.gz and b/data/static/app.js.gz differ diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index 304e8fe..4a4922c 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -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); diff --git a/src/utils.h b/src/utils.h index 991b18b..3064355 100644 --- a/src/utils.h +++ b/src/utils.h @@ -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) { diff --git a/src_data/static/app.js b/src_data/static/app.js index f7063b8..0af1818 100644 --- a/src_data/static/app.js +++ b/src_data/static/app.js @@ -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('[');