Report on air DHT22 errors

This commit is contained in:
Nigreon 2025-12-30 22:33:22 +01:00
parent 9a715056f1
commit 9f477a61de
1 changed files with 16 additions and 8 deletions

View File

@ -77,14 +77,19 @@ JsonDocument analyzeTH_type1(JsonArray payloadrh) {
JsonDocument analyzeTH_type2(JsonArray payloadrh) {
JsonDocument doc;
int16_t payloadtemp = payloadrh[2].as<unsigned char>();
payloadtemp += payloadrh[1].as<unsigned char>() << 8;
doc["temperature_C"] = payloadtemp / 100.0;
uint8_t payloadhumidity = payloadrh[3].as<unsigned char>();
doc["humidity"] = payloadhumidity;
uint8_t errcode = payloadrh[1].as<unsigned char>();
doc["errcode"] = errcode;
if(errcode == 0) {
int16_t payloadtemp = payloadrh[3].as<unsigned char>();
payloadtemp += payloadrh[2].as<unsigned char>() << 8;
doc["temperature_C"] = payloadtemp / 100.0;
uint8_t payloadhumidity = payloadrh[4].as<unsigned char>();
doc["humidity"] = payloadhumidity;
}
return doc;
}
void logJson(JsonDocument jsondata) {
if(jsondata["model"].is<String>())
{
@ -107,11 +112,14 @@ void logJson(JsonDocument jsondata) {
jsondata["battery_V"] = adoc["battery_V"];
jsondata["battery_percent"] = adoc["battery_percent"];
jsondata["temperature_C"] = adoc["temperature_C"];
} else if(jsondata["len"].as<int>() == 4 && ((payloadrh[0].as<unsigned char>() & 0b00100000 ) > 0)) {
} else if(jsondata["len"].as<int>() == 5 && ((payloadrh[0].as<unsigned char>() & 0b00100000 ) > 0)) {
treatrh = true;
JsonDocument adoc = analyzeTH_type2(payloadrh);
jsondata["temperature_C"] = adoc["temperature_C"];
jsondata["humidity"] = adoc["humidity"];
jsondata["errcode"] = adoc["errcode"];
if(jsondata["errcode"] == 0) {
jsondata["temperature_C"] = adoc["temperature_C"];
jsondata["humidity"] = adoc["humidity"];
}
}
if(treatrh == true) {
jsondata.remove("from");