diff --git a/src/dallassensor.h b/src/dallassensor.h index 107804278..ee5cea68c 100644 --- a/src/dallassensor.h +++ b/src/dallassensor.h @@ -68,6 +68,10 @@ class DallasSensor { return sensorfails_; } + bool dallas_enabled() { + return (dallas_gpio_ != 0); + } + private: static constexpr uint8_t MAX_SENSORS = 20; diff --git a/src/emsesp.cpp b/src/emsesp.cpp index 0f31a6751..cf1cd49bf 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -511,6 +511,10 @@ void EMSESP::publish_other_values() { } void EMSESP::publish_sensor_values(const bool time, const bool force) { + if (!dallas_enabled()) { + return; + } + if (dallassensor_.updated_values() || time || force) { dallassensor_.publish_values(force); } diff --git a/src/emsesp.h b/src/emsesp.h index 44f8e67f7..da3fee712 100644 --- a/src/emsesp.h +++ b/src/emsesp.h @@ -128,6 +128,10 @@ class EMSESP { return dallassensor_.fails(); } + static bool dallas_enabled() { + return (dallassensor_.dallas_enabled()); + } + enum Watch : uint8_t { WATCH_OFF, WATCH_ON, WATCH_RAW, WATCH_UNKNOWN }; static void watch_id(uint16_t id); static uint16_t watch_id() { diff --git a/src/system.cpp b/src/system.cpp index 31765afb6..d74e3441f 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -446,15 +446,20 @@ void System::send_heartbeat() { if (!ethernet_connected_) { doc["rssi"] = rssi; } - doc["uptime"] = uuid::log::format_timestamp_ms(uuid::get_uptime_ms(), 3); - doc["uptime_sec"] = uuid::get_uptime_sec(); - doc["mqttfails"] = Mqtt::publish_fails(); - doc["rxreceived"] = EMSESP::rxservice_.telegram_count(); - doc["rxfails"] = EMSESP::rxservice_.telegram_error_count(); - doc["txread"] = EMSESP::txservice_.telegram_read_count(); - doc["txwrite"] = EMSESP::txservice_.telegram_write_count(); - doc["txfails"] = EMSESP::txservice_.telegram_fail_count(); - doc["dallasfails"] = EMSESP::sensor_fails(); + doc["uptime"] = uuid::log::format_timestamp_ms(uuid::get_uptime_ms(), 3); + doc["uptime_sec"] = uuid::get_uptime_sec(); + + doc["rxreceived"] = EMSESP::rxservice_.telegram_count(); + doc["rxfails"] = EMSESP::rxservice_.telegram_error_count(); + doc["txread"] = EMSESP::txservice_.telegram_read_count(); + doc["txwrite"] = EMSESP::txservice_.telegram_write_count(); + doc["txfails"] = EMSESP::txservice_.telegram_fail_count(); + if (Mqtt::enabled()) { + doc["mqttfails"] = Mqtt::publish_fails(); + } + if (EMSESP::dallas_enabled()) { + doc["dallasfails"] = EMSESP::sensor_fails(); + } #ifndef EMSESP_STANDALONE doc["freemem"] = ESP.getFreeHeap(); #endif @@ -878,9 +883,13 @@ bool System::command_info(const char * value, const int8_t id, JsonObject & json node["#tx fails"] = EMSESP::txservice_.telegram_fail_count(); node["rx line quality"] = EMSESP::rxservice_.quality(); node["tx line quality"] = EMSESP::txservice_.quality(); - node["#MQTT publish fails"] = Mqtt::publish_fails(); - node["#dallas sensors"] = EMSESP::sensor_devices().size(); - node["#dallas fails"] = EMSESP::sensor_fails(); + if (Mqtt::enabled()) { + node["#MQTT publish fails"] = Mqtt::publish_fails(); + } + if (EMSESP::dallas_enabled()) { + node["#dallas sensors"] = EMSESP::sensor_devices().size(); + node["#dallas fails"] = EMSESP::sensor_fails(); + } } JsonArray devices2 = json.createNestedArray("Devices");