diff --git a/src/mqtt.h b/src/mqtt.h index f48d8bb68..2f759c8fe 100644 --- a/src/mqtt.h +++ b/src/mqtt.h @@ -178,12 +178,20 @@ class Mqtt { return ha_climate_format_; } + // nested_format is 1 if nested, otherwise 2 for single topics static uint8_t nested_format() { - return nested_format_; // nested_format is 1 if nested, otherwise 2 for single topics + return nested_format_; + } + static void nested_format(uint8_t nested_format) { + nested_format_ = nested_format; } - static void nested_format(uint8_t nested_format) { - nested_format_ = nested_format; // nested_format is 1 if nested, otherwise 2 for single topics + // subscribe_format is 0 for General topics, 1 for individual with main heating circuit or 2 for individual topics with all heating circuits + static uint8_t subscribe_format() { + return subscribe_format_; + } + static void subscribe_format(uint8_t subscribe_format) { + subscribe_format_ = subscribe_format; } static bool ha_enabled() { diff --git a/src/test/test.cpp b/src/test/test.cpp index 9870fc10e..efd651587 100644 --- a/src/test/test.cpp +++ b/src/test/test.cpp @@ -471,6 +471,18 @@ void Test::run_test(uuid::console::Shell & shell, const std::string & cmd) { shell.invoke_command("call boiler entities"); } + if (command == "mqtt_individual") { + shell.printfln(F("Testing individual MQTT")); + Mqtt::ha_enabled(false); // turn off HA Discovery to stop the chatter + Mqtt::subscribe_format(1); // individual topics + + run_test("boiler"); + run_test("thermostat"); + + shell.invoke_command("show mqtt"); + EMSESP::mqtt_.incoming("ems-esp/boiler/wwcircpump", "off"); + } + if (command == "mqtt_nested") { shell.printfln(F("Testing nested MQTT")); Mqtt::ha_enabled(false); // turn off HA Discovery to stop the chatter diff --git a/src/test/test.h b/src/test/test.h index 120e3060f..c776c21b2 100644 --- a/src/test/test.h +++ b/src/test/test.h @@ -33,7 +33,7 @@ namespace emsesp { // #define EMSESP_DEBUG_DEFAULT "general" // #define EMSESP_DEBUG_DEFAULT "boiler" // #define EMSESP_DEBUG_DEFAULT "mqtt2" -#define EMSESP_DEBUG_DEFAULT "mqtt_nested" +// #define EMSESP_DEBUG_DEFAULT "mqtt_nested" // #define EMSESP_DEBUG_DEFAULT "ha" // #define EMSESP_DEBUG_DEFAULT "board_profile" // #define EMSESP_DEBUG_DEFAULT "shower_alert" @@ -41,6 +41,7 @@ namespace emsesp { // #define EMSESP_DEBUG_DEFAULT "render" // #define EMSESP_DEBUG_DEFAULT "api" // #define EMSESP_DEBUG_DEFAULT "crash" +#define EMSESP_DEBUG_DEFAULT "mqtt_individual" class Test { public: