From e4d1ba7d7ba4bb930a3bbc7bce82ccdae5debe5b Mon Sep 17 00:00:00 2001 From: Yurii Date: Mon, 26 Jan 2026 01:03:26 +0300 Subject: [PATCH] refactor: added different timeouts for wired and wireless sensors --- src/MainTask.h | 2 -- src/SensorsTask.h | 17 +++++++++++------ src/utils.h | 19 ++++++++----------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/MainTask.h b/src/MainTask.h index fcd0c28..689438f 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -135,8 +135,6 @@ protected: tMqtt->disable(); } - Sensors::setConnectionStatusByType(Sensors::Type::MANUAL, !settings.mqtt.enabled || vars.mqtt.connected, false); - } else { if (this->ntpStarted) { this->ntpStarted = false; diff --git a/src/SensorsTask.h b/src/SensorsTask.h index 0a8801b..156842b 100644 --- a/src/SensorsTask.h +++ b/src/SensorsTask.h @@ -66,7 +66,8 @@ public: } protected: - const unsigned int disconnectedTimeout = 120000; + const unsigned int wiredDisconnectTimeout = 180000u; + const unsigned int wirelessDisconnectTimeout = 600000u; const unsigned short dallasSearchInterval = 60000; const unsigned short dallasPollingInterval = 10000; const unsigned short globalPollingInterval = 15000; @@ -1004,12 +1005,16 @@ protected: } else if (rSensor.connected && sSensor.purpose == Sensors::Purpose::NOT_CONFIGURED) { Sensors::setConnectionStatusById(sensorId, false, false); - } else if (sSensor.type != Sensors::Type::MANUAL && rSensor.connected && (millis() - rSensor.activityTime) > this->disconnectedTimeout) { - Sensors::setConnectionStatusById(sensorId, false, false); + } else if (rSensor.connected) { + if (sSensor.type == Sensors::Type::MANUAL || sSensor.type == Sensors::Type::BLUETOOTH) { + if ((millis() - rSensor.activityTime) > this->wirelessDisconnectTimeout) { + Sensors::setConnectionStatusById(sensorId, false, false); + } - }/* else if (!rSensor.connected) { - rSensor.connected = true; - }*/ + } else if ((millis() - rSensor.activityTime) > this->wiredDisconnectTimeout) { + Sensors::setConnectionStatusById(sensorId, false, false); + } + } } } diff --git a/src/utils.h b/src/utils.h index f52f2ba..a47339c 100644 --- a/src/utils.h +++ b/src/utils.h @@ -2109,21 +2109,18 @@ bool jsonToSensorResult(const uint8_t sensorId, const JsonVariantConst src) { return false; } - auto& dst = Sensors::results[sensorId]; - bool changed = false; - // value if (!src[FPSTR(S_VALUE)].isNull()) { - float value = src[FPSTR(S_VALUE)].as(); - - uint8_t vType = static_cast(Sensors::ValueType::PRIMARY); - if (fabsf(value - dst.values[vType]) > 0.0001f) { - dst.values[vType] = roundf(value, 2); - changed = true; - } + return Sensors::setValueById( + sensorId, + src[FPSTR(S_VALUE)].as(), + Sensors::ValueType::PRIMARY, + true, + true + ); } - return changed; + return false; } void varsToJson(const Variables& src, JsonVariant dst) {