最高湿度不会超过99.9%

This commit is contained in:
BBIT-Kai
2026-08-10 09:21:54 +08:00
parent a42d6ceec6
commit b5fa7e1841
3 changed files with 27 additions and 5 deletions
@@ -85,6 +85,12 @@ public class HumidityController extends Control {
needDehumidifyToTarget = false;
needDehumidify = false;
}
// 真实湿度已经接近 100%,禁止自动除湿
if (RoomSensor.getBeforeCalibratedIndoorHumidity() > 99) {
needDehumidify = false;
needDehumidifyToTarget = false;
}
// === 互斥处理 ===
if (needHumidify && needDehumidify) {
// 理论不会发生,保险处理
@@ -201,9 +201,10 @@ public class RoomSensor {
/**
* 获取室内平均湿度
*/
public static double getAverageIndoorHumidity() {
public static double getBeforeCalibratedIndoorHumidity() {
double sumOfHumidities = 0.0;
int numberOfEnabledSensors = 0;
for (THSensor sensor : dynamicTHSensorList) {
if (sensor.humidity == 0 || sensor.humidity == 100) {
continue;
@@ -211,6 +212,7 @@ public class RoomSensor {
sumOfHumidities += sensor.humidity;
numberOfEnabledSensors++;
}
for (GasSensor sensor : dynamicCO2SensorList) {
if (sensor.getHumidity() == 0 || sensor.getHumidity() == 100) {
continue;
@@ -218,6 +220,7 @@ public class RoomSensor {
sumOfHumidities += sensor.getHumidity();
numberOfEnabledSensors++;
}
for (GasSensor sensor : dynamicAmmoniaSensorList) {
if (sensor.getHumidity() == 0 || sensor.getHumidity() == 100) {
continue;
@@ -225,10 +228,23 @@ public class RoomSensor {
sumOfHumidities += sensor.getHumidity();
numberOfEnabledSensors++;
}
if (numberOfEnabledSensors == 0 || sumOfHumidities == 0) {
if (numberOfEnabledSensors == 0) {
return 0.0;
}
return Math.round((sumOfHumidities / numberOfEnabledSensors + RoomSetting.getBiasHumidity()) * 10.0) / 10.0;
return sumOfHumidities / numberOfEnabledSensors;
}
public static double getAverageIndoorHumidity() {
double averageHumidity = getAverageIndoorHumidity();
if (averageHumidity == 0.0) {
return 0.0;
}
return Math.min(
Math.round((averageHumidity + RoomSetting.getBiasHumidity()) * 10.0) / 10.0,
99.9
);
}
/**