exclude disabled sensors from dashboard

This commit is contained in:
MichaelDvP
2025-11-17 13:57:30 +01:00
parent 5df82b7e2c
commit f112e6f6cc

View File

@@ -435,41 +435,39 @@ void WebDataService::dashboard_data(AsyncWebServerRequest * request) {
JsonArray nodes = obj["nodes"].to<JsonArray>(); JsonArray nodes = obj["nodes"].to<JsonArray>();
uint8_t count = 0; uint8_t count = 0;
for (const auto & sensor : EMSESP::analogsensor_.sensors()) { for (const auto & sensor : EMSESP::analogsensor_.sensors()) {
// ignore system sensors // ignore system and disabled sensors
if (sensor.is_system()) { if (sensor.is_system() || sensor.type() == AnalogSensor::AnalogType::NOTUSED || sensor.gpio() == 99) {
continue; continue;
} }
if (sensor.type() != AnalogSensor::AnalogType::NOTUSED) { // ignore disabled JsonObject node = nodes.add<JsonObject>();
JsonObject node = nodes.add<JsonObject>(); node["id"] = (EMSdevice::DeviceTypeUniqueID::ANALOGSENSOR_UID * 100) + count++;
node["id"] = (EMSdevice::DeviceTypeUniqueID::ANALOGSENSOR_UID * 100) + count++;
JsonObject dv = node["dv"].to<JsonObject>(); JsonObject dv = node["dv"].to<JsonObject>();
dv["id"] = "00" + sensor.name(); dv["id"] = "00" + sensor.name();
#if CONFIG_IDF_TARGET_ESP32 #if CONFIG_IDF_TARGET_ESP32
if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT && (sensor.gpio() == 25 || sensor.gpio() == 26)) { if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT && (sensor.gpio() == 25 || sensor.gpio() == 26)) {
obj["v"] = Helpers::transformNumFloat(sensor.value()); obj["v"] = Helpers::transformNumFloat(sensor.value());
} else } else
#elif CONFIG_IDF_TARGET_ESP32S2 #elif CONFIG_IDF_TARGET_ESP32S2
if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT && (sensor.gpio() == 17 || sensor.gpio() == 18)) { if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT && (sensor.gpio() == 17 || sensor.gpio() == 18)) {
obj["v"] = Helpers::transformNumFloat(sensor.value()); obj["v"] = Helpers::transformNumFloat(sensor.value());
} else } else
#endif #endif
if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT || sensor.type() == AnalogSensor::AnalogType::DIGITAL_IN if (sensor.type() == AnalogSensor::AnalogType::DIGITAL_OUT || sensor.type() == AnalogSensor::AnalogType::DIGITAL_IN
|| sensor.type() == AnalogSensor::AnalogType::PULSE) { || sensor.type() == AnalogSensor::AnalogType::PULSE) {
char s[12]; char s[12];
dv["v"] = Helpers::render_boolean(s, sensor.value() != 0, true); dv["v"] = Helpers::render_boolean(s, sensor.value() != 0, true);
JsonArray l = dv["l"].to<JsonArray>(); JsonArray l = dv["l"].to<JsonArray>();
l.add(Helpers::render_boolean(s, false, true)); l.add(Helpers::render_boolean(s, false, true));
l.add(Helpers::render_boolean(s, true, true)); l.add(Helpers::render_boolean(s, true, true));
} else { } else {
dv["v"] = Helpers::transformNumFloat(sensor.value()); dv["v"] = Helpers::transformNumFloat(sensor.value());
dv["u"] = sensor.uom(); dv["u"] = sensor.uom();
} }
if (sensor.type() == AnalogSensor::AnalogType::COUNTER if (sensor.type() == AnalogSensor::AnalogType::COUNTER
|| (sensor.type() >= AnalogSensor::AnalogType::DIGITAL_OUT && sensor.type() <= AnalogSensor::AnalogType::PWM_2) || (sensor.type() >= AnalogSensor::AnalogType::DIGITAL_OUT && sensor.type() <= AnalogSensor::AnalogType::PWM_2)
|| sensor.type() == AnalogSensor::AnalogType::RGB || sensor.type() == AnalogSensor::AnalogType::PULSE) { || sensor.type() == AnalogSensor::AnalogType::RGB || sensor.type() == AnalogSensor::AnalogType::PULSE) {
dv["c"] = sensor.name(); dv["c"] = sensor.name();
}
} }
} }
} }