mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-25 09:33:35 +05:00
Compare commits
5 Commits
b17ecd5ae8
...
a2ffdb93a5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2ffdb93a5 | ||
|
|
7c2059d7c6 | ||
|
|
66ced5f8d0 | ||
|
|
ba255c1bd1 | ||
|
|
4457e16a8f |
@@ -44,30 +44,16 @@ public:
|
||||
private:
|
||||
unsigned short _minOut = 20, _maxOut = 90;
|
||||
|
||||
// температура контура отопления в зависимости от наружной температуры
|
||||
// datatype getResultN() {
|
||||
// Kntemp = Kn*3.3; //Подгонка под типовые кривые
|
||||
// float tempDiff = targetTemp - outdoorTemp;
|
||||
// if (tempDiff < 0) tempDiff = 0;
|
||||
// float T_rad = targetTemp + pow(Kntemp * tempDiff, 1.0 / Ke);
|
||||
// return T_rad;
|
||||
// }
|
||||
datatype getResultN() {
|
||||
float tempDiff = targetTemp - outdoorTemp;
|
||||
if (tempDiff < 0) {
|
||||
tempDiff = 0;
|
||||
}
|
||||
float minOutside = targetTemp - (_maxOut - targetTemp) / Kn;
|
||||
float c1 = (_maxOut - targetTemp) / pow(targetTemp - minOutside, 1.0 / Ke);
|
||||
float T_rad = targetTemp + c1 * pow(tempDiff, 1.0 / Ke) ;
|
||||
if (T_rad > _maxOut) {
|
||||
T_rad = _maxOut;
|
||||
}
|
||||
datatype getResultN()
|
||||
{
|
||||
float tempDelta = targetTemp - outdoorTemp,
|
||||
maxPoint = targetTemp - (_maxOut - targetTemp) / Kn,
|
||||
sf = (_maxOut - targetTemp) / pow(targetTemp - maxPoint, 1.0 / Ke),
|
||||
T_rad = targetTemp + sf * (tempDelta >= 0 ? pow(tempDelta, 1.0 / Ke) : -pow(-tempDelta, 1.0 / Ke));
|
||||
return T_rad > _maxOut ? _maxOut : T_rad;
|
||||
}
|
||||
|
||||
return T_rad;
|
||||
}
|
||||
|
||||
// Расчет поправки (ошибки) термостата
|
||||
// Реакция на разницу с целевой температурой
|
||||
datatype getResultT() {
|
||||
return constrain((targetTemp - indoorTemp), -3, 3) * Kt;
|
||||
}
|
||||
|
||||
@@ -214,7 +214,12 @@ protected:
|
||||
);
|
||||
}
|
||||
|
||||
if (!vars.slave.connected && millis() - this->lastSuccessResponse < 1325) {
|
||||
// 5 request retries
|
||||
// 1000ms maximum response waiting time
|
||||
// 100ms delay between requests
|
||||
// +15%
|
||||
// 5 * (1000 + 100) * 1.15 = 6325 ms
|
||||
if (!vars.slave.connected && millis() - this->lastSuccessResponse < 6325) {
|
||||
Log.sinfoln(
|
||||
FPSTR(L_OT),
|
||||
F("Connected, downtime: %lu s."),
|
||||
@@ -224,7 +229,7 @@ protected:
|
||||
this->connectedTime = millis();
|
||||
vars.slave.connected = true;
|
||||
|
||||
} else if (vars.slave.connected && millis() - this->lastSuccessResponse > 1325) {
|
||||
} else if (vars.slave.connected && millis() - this->lastSuccessResponse > 6325) {
|
||||
Log.swarningln(
|
||||
FPSTR(L_OT),
|
||||
F("Disconnected, uptime: %lu s."),
|
||||
|
||||
@@ -1143,10 +1143,17 @@
|
||||
updateChart(formData);
|
||||
});
|
||||
|
||||
// инициализируем
|
||||
initChart();
|
||||
|
||||
//Следим за изменениями в полях
|
||||
document.querySelectorAll('#equitherm-settings input').forEach(input => {
|
||||
input.addEventListener('change', () => {
|
||||
const form = document.getElementById('equitherm-settings');
|
||||
const formData = new FormData(form);
|
||||
updateChart(formData);
|
||||
});
|
||||
});
|
||||
|
||||
// инициализируем график
|
||||
initChart();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user