From ae995083e06f0b962209b3c27c04e56efdfe241f Mon Sep 17 00:00:00 2001 From: oscgonfer Date: Fri, 18 Jul 2025 01:03:06 +0200 Subject: [PATCH] Only disable SEN5X if enough time after reading. --- src/modules/Telemetry/AirQualityTelemetry.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/Telemetry/AirQualityTelemetry.cpp b/src/modules/Telemetry/AirQualityTelemetry.cpp index 192285d9c..ccfc08a2d 100644 --- a/src/modules/Telemetry/AirQualityTelemetry.cpp +++ b/src/modules/Telemetry/AirQualityTelemetry.cpp @@ -132,8 +132,16 @@ int32_t AirQualityTelemetryModule::runOnce() pmsa003iSensor.sleep(); #endif /* PMSA003I_ENABLE_PIN */ - if (sen5xSensor.hasSensor() && sen5xSensor.isActive() ) - sen5xSensor.idle(); + if (sen5xSensor.hasSensor() && sen5xSensor.isActive()) { + if (SEN5X_WARMUP_MS_2 < Default::getConfiguredOrDefaultMsScaled( + moduleConfig.telemetry.air_quality_interval, + default_telemetry_broadcast_interval_secs, numOnlineNodes)) { + LOG_DEBUG("SEN5X: Disabling sensor until next period"); + sen5xSensor.idle(); + } else { + LOG_DEBUG("SEN5X: Sensor stays enabled due to warm up period"); + } + } } return min(sendToPhoneIntervalMs, result); }