mirror of
https://github.com/Laxilef/OTGateway.git
synced 2026-04-02 15:45:19 +05:00
Compare commits
1 Commits
ae434b751a
...
eb943dc447
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb943dc447 |
@@ -112,27 +112,6 @@ public:
|
|||||||
return (byte)id == responseId;
|
return (byte)id == responseId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t getResponseMessageTypeId(unsigned long response) {
|
|
||||||
return (response << 1) >> 29;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char* getResponseMessageTypeString(unsigned long response) {
|
|
||||||
uint8_t msgType = getResponseMessageTypeId(response);
|
|
||||||
|
|
||||||
switch (msgType) {
|
|
||||||
case (uint8_t) OpenThermMessageType::READ_ACK:
|
|
||||||
case (uint8_t) OpenThermMessageType::WRITE_ACK:
|
|
||||||
case (uint8_t) OpenThermMessageType::DATA_INVALID:
|
|
||||||
case (uint8_t) OpenThermMessageType::UNKNOWN_DATA_ID:
|
|
||||||
return CustomOpenTherm::messageTypeToString(
|
|
||||||
static_cast<OpenThermMessageType>(msgType)
|
|
||||||
);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return "UNKNOWN";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// converters
|
// converters
|
||||||
template <class T>
|
template <class T>
|
||||||
static unsigned int toFloat(const T val) {
|
static unsigned int toFloat(const T val) {
|
||||||
|
|||||||
@@ -93,13 +93,8 @@ protected:
|
|||||||
this->instance->setAfterSendRequestCallback([this](unsigned long request, unsigned long response, OpenThermResponseStatus status, byte attempt) {
|
this->instance->setAfterSendRequestCallback([this](unsigned long request, unsigned long response, OpenThermResponseStatus status, byte attempt) {
|
||||||
Log.sverboseln(
|
Log.sverboseln(
|
||||||
FPSTR(L_OT),
|
FPSTR(L_OT),
|
||||||
F("ID: %4d Request: %8lx Response: %8lx Msg type: %s Attempt: %2d Status: %s"),
|
F("ID: %4d Request: %8lx Response: %8lx Attempt: %2d Status: %s"),
|
||||||
CustomOpenTherm::getDataID(request),
|
CustomOpenTherm::getDataID(request), request, response, attempt, CustomOpenTherm::statusToString(status)
|
||||||
request,
|
|
||||||
response,
|
|
||||||
CustomOpenTherm::getResponseMessageTypeString(response),
|
|
||||||
attempt,
|
|
||||||
CustomOpenTherm::statusToString(status)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (status == OpenThermResponseStatus::SUCCESS) {
|
if (status == OpenThermResponseStatus::SUCCESS) {
|
||||||
@@ -1190,17 +1185,17 @@ protected:
|
|||||||
|
|
||||||
bool needSetDhwTemp(const float target) {
|
bool needSetDhwTemp(const float target) {
|
||||||
return millis() - this->dhwSetTempTime > this->dhwSetTempInterval
|
return millis() - this->dhwSetTempTime > this->dhwSetTempInterval
|
||||||
|| fabsf(target - vars.slave.dhw.targetTemp) > 0.05f;
|
|| fabsf(target - vars.slave.dhw.targetTemp) > 0.001f;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool needSetHeatingTemp(const float target) {
|
bool needSetHeatingTemp(const float target) {
|
||||||
return millis() - this->heatingSetTempTime > this->heatingSetTempInterval
|
return millis() - this->heatingSetTempTime > this->heatingSetTempInterval
|
||||||
|| fabsf(target - vars.slave.heating.targetTemp) > 0.05f;
|
|| fabsf(target - vars.slave.heating.targetTemp) > 0.001f;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool needSetCh2Temp(const float target) {
|
bool needSetCh2Temp(const float target) {
|
||||||
return millis() - this->ch2SetTempTime > this->ch2SetTempInterval
|
return millis() - this->ch2SetTempTime > this->ch2SetTempInterval
|
||||||
|| fabsf(target - vars.slave.ch2.targetTemp) > 0.05f;
|
|| fabsf(target - vars.slave.ch2.targetTemp) > 0.001f;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool updateSlaveConfig() {
|
bool updateSlaveConfig() {
|
||||||
@@ -1361,7 +1356,7 @@ protected:
|
|||||||
return CustomOpenTherm::getUInt(response) == request;
|
return CustomOpenTherm::getUInt(response) == request;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool setMaxHeatingTemp(const float temperature) {
|
bool setMaxHeatingTemp(const uint8_t temperature) {
|
||||||
const unsigned int request = CustomOpenTherm::temperatureToData(temperature);
|
const unsigned int request = CustomOpenTherm::temperatureToData(temperature);
|
||||||
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
OpenThermMessageType::WRITE_DATA,
|
OpenThermMessageType::WRITE_DATA,
|
||||||
|
|||||||
@@ -342,15 +342,15 @@
|
|||||||
"equitherm": {
|
"equitherm": {
|
||||||
"slope": {
|
"slope": {
|
||||||
"title": "Slope",
|
"title": "Slope",
|
||||||
"note": "Heat loss compensation. Main tuning parameter."
|
"note": ""
|
||||||
},
|
},
|
||||||
"exponent": {
|
"exponent": {
|
||||||
"title": "Exponent",
|
"title": "Exponent",
|
||||||
"note": "Radiator efficiency. Typical values: 1.1 - Floor heating, 1.2 - Cast iron, 1.3 - Panel radiators, 1.4 - Convectors."
|
"note": ""
|
||||||
},
|
},
|
||||||
"shift": {
|
"shift": {
|
||||||
"title": "Shift",
|
"title": "Shift",
|
||||||
"note": "Compensates for additional heat losses (e.g., in pipes) or extra heat sources."
|
"note": ""
|
||||||
},
|
},
|
||||||
"targetDiffFactor": {
|
"targetDiffFactor": {
|
||||||
"title": "T factor",
|
"title": "T factor",
|
||||||
|
|||||||
@@ -342,15 +342,15 @@
|
|||||||
"equitherm": {
|
"equitherm": {
|
||||||
"slope": {
|
"slope": {
|
||||||
"title": "Pendenza",
|
"title": "Pendenza",
|
||||||
"note": "Compensazione delle perdite di calore. Principale parametro di regolazione."
|
"note": ""
|
||||||
},
|
},
|
||||||
"exponent": {
|
"exponent": {
|
||||||
"title": "Esponente",
|
"title": "Esponente",
|
||||||
"note": "Efficienza del radiatore. Valori tipici: 1.1 - Riscaldamento a pavimento, 1.2 - Radiatori in ghisa, 1.3 - Radiatori a pannelli, 1.4 - Convetttori."
|
"note": ""
|
||||||
},
|
},
|
||||||
"shift": {
|
"shift": {
|
||||||
"title": "Spostare",
|
"title": "Spostare",
|
||||||
"note": "Compensa le perdite di calore aggiuntive (ad esempio, nelle tubature) o fonti di calore extra."
|
"note": ""
|
||||||
},
|
},
|
||||||
"targetDiffFactor": {
|
"targetDiffFactor": {
|
||||||
"title": "Fattore T",
|
"title": "Fattore T",
|
||||||
|
|||||||
@@ -342,15 +342,15 @@
|
|||||||
"equitherm": {
|
"equitherm": {
|
||||||
"slope": {
|
"slope": {
|
||||||
"title": "Наклон",
|
"title": "Наклон",
|
||||||
"note": "Компенсация теплопотерь. Основной параметр настройки."
|
"note": ""
|
||||||
},
|
},
|
||||||
"exponent": {
|
"exponent": {
|
||||||
"title": "Экспонента",
|
"title": "Экспонента",
|
||||||
"note": "Эффективность радиатора. Типичные значения: 1.1 - Тёплый пол, 1.2 - Чугунные радиаторы, 1.3 - Панельные радиаторы, 1.4 - Конвекторы."
|
"note": ""
|
||||||
},
|
},
|
||||||
"shift": {
|
"shift": {
|
||||||
"title": "Смещение",
|
"title": "Смещение",
|
||||||
"note": "Компенсирует дополнительные теплопотери (например, в трубах) или дополнительные источники тепла."
|
"note": ""
|
||||||
},
|
},
|
||||||
"targetDiffFactor": {
|
"targetDiffFactor": {
|
||||||
"title": "Коэффициент T",
|
"title": "Коэффициент T",
|
||||||
|
|||||||
Reference in New Issue
Block a user