diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index 6d9e653..bc272d9 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -613,6 +613,14 @@ static void openAirInit(void) { } else { Serial.println("Found PMS 2 on Serial1"); } + + if (fwMode == FW_MODE_O_1PP) { + int count = (configuration.hasSensorPMS1 ? 1 : 0) + + (configuration.hasSensorPMS2 ? 1 : 0); + if (count == 1) { + fwMode = FW_MODE_O_1P; + } + } } /** update the PMS poll period base on fw mode and sensor available */ @@ -621,7 +629,6 @@ static void openAirInit(void) { pmsSchedule.setPeriod(2000); } } - Serial.printf("Firmware Mode: %s\r\n", AgFirmwareModeName(fwMode)); } diff --git a/src/AgValue.cpp b/src/AgValue.cpp index bf3fe3a..8521b62 100644 --- a/src/AgValue.cpp +++ b/src/AgValue.cpp @@ -105,37 +105,70 @@ String Measurements::toString(bool localServer, AgFirmwareMode fwMode, int rssi, (int)ag->pms5003t_2.humidityCompensated(this->hum_2); } } else { - if (config->hasSensorPMS1) { - root["channels"]["1"]["pm01"] = this->pm01_1; - root["channels"]["1"]["pm02"] = this->pm25_1; - root["channels"]["1"]["pm10"] = this->pm10_1; - if (localServer) { - root["channels"]["1"]["pm003Count"] = this->pm03PCount_1; - } else { - root["channels"]["1"]["pm003_count"] = this->pm03PCount_1; + if (fwMode == FW_MODE_O_1P) { + if (config->hasSensorPMS1) { + root["pm01"] = this->pm01_1; + root["pm02"] = this->pm25_1; + root["pm10"] = this->pm10_1; + if (localServer) { + root["pm003Count"] = this->pm03PCount_1; + } else { + root["pm003_count"] = this->pm03PCount_1; + } + root["atmp"] = ag->round2(this->temp_1); + root["rhum"] = this->hum_1; + root["atmp_compensated"] = + ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_1)); + root["rhum_compensated"] = + (int)ag->pms5003t_1.humidityCompensated(this->hum_1); + } else if (config->hasSensorPMS2) { + root["pm01"] = this->pm01_2; + root["pm02"] = this->pm25_2; + root["pm10"] = this->pm10_2; + if (localServer) { + root["pm003Count"] = this->pm03PCount_2; + } else { + root["pm003_count"] = this->pm03PCount_2; + } + root["atmp"] = ag->round2(this->temp_2); + root["rhum"] = this->hum_2; + root["atmp_compensated"] = + ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_2)); + root["rhum_compensated"] = + (int)ag->pms5003t_1.humidityCompensated(this->hum_2); } - root["channels"]["1"]["atmp"] = ag->round2(this->temp_1); - root["channels"]["1"]["rhum"] = this->hum_1; - root["channels"]["1"]["atmp_compensated"] = - ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_1)); - root["channels"]["1"]["rhum_compensated"] = - (int)ag->pms5003t_1.humidityCompensated(this->hum_1); - } - if (config->hasSensorPMS2) { - root["channels"]["2"]["pm01"] = this->pm01_2; - root["channels"]["2"]["pm02"] = this->pm25_2; - root["channels"]["2"]["pm10"] = this->pm10_2; - if (localServer) { - root["channels"]["2"]["pm003Count"] = this->pm03PCount_2; - } else { - root["channels"]["2"]["pm003_count"] = this->pm03PCount_2; + } else { + if (config->hasSensorPMS1) { + root["channels"]["1"]["pm01"] = this->pm01_1; + root["channels"]["1"]["pm02"] = this->pm25_1; + root["channels"]["1"]["pm10"] = this->pm10_1; + if (localServer) { + root["channels"]["1"]["pm003Count"] = this->pm03PCount_1; + } else { + root["channels"]["1"]["pm003_count"] = this->pm03PCount_1; + } + root["channels"]["1"]["atmp"] = ag->round2(this->temp_1); + root["channels"]["1"]["rhum"] = this->hum_1; + root["channels"]["1"]["atmp_compensated"] = + ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_1)); + root["channels"]["1"]["rhum_compensated"] = + (int)ag->pms5003t_1.humidityCompensated(this->hum_1); + } else if (config->hasSensorPMS2) { + root["channels"]["2"]["pm01"] = this->pm01_2; + root["channels"]["2"]["pm02"] = this->pm25_2; + root["channels"]["2"]["pm10"] = this->pm10_2; + if (localServer) { + root["channels"]["2"]["pm003Count"] = this->pm03PCount_2; + } else { + root["channels"]["2"]["pm003_count"] = this->pm03PCount_2; + } + root["channels"]["2"]["atmp"] = ag->round2(this->temp_2); + root["channels"]["2"]["rhum"] = this->hum_2; + root["channels"]["2"]["atmp_compensated"] = + ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_2)); + root["channels"]["2"]["rhum_compensated"] = + (int)ag->pms5003t_1.humidityCompensated(this->hum_2); } - root["channels"]["2"]["atmp"] = ag->round2(this->temp_2); - root["channels"]["2"]["rhum"] = this->hum_2; - root["channels"]["2"]["atmp_compensated"] = - ag->round2(ag->pms5003t_1.temperatureCompensated(this->temp_2)); - root["channels"]["2"]["rhum_compensated"] = - (int)ag->pms5003t_1.humidityCompensated(this->hum_2); } } }