From f80cd90d94829c8e29b05192cee03499f31cb511 Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Fri, 7 May 2021 01:27:13 +0200 Subject: [PATCH] Cleanup MQTT_TOPIC defines --- src/hasp/hasp_dispatch.cpp | 8 ++-- src/mqtt/hasp_mqtt.h | 51 +++++++++++++++++++++--- src/mqtt/hasp_mqtt_ha.cpp | 31 ++++++++------- src/mqtt/hasp_mqtt_paho_async.cpp | 46 ++++------------------ src/mqtt/hasp_mqtt_paho_single.cpp | 54 +++++++------------------ src/mqtt/hasp_mqtt_pubsubclient.cpp | 61 ++++++++--------------------- 6 files changed, 103 insertions(+), 148 deletions(-) diff --git a/src/hasp/hasp_dispatch.cpp b/src/hasp/hasp_dispatch.cpp index f25a822c..16e73965 100644 --- a/src/hasp/hasp_dispatch.cpp +++ b/src/hasp/hasp_dispatch.cpp @@ -256,12 +256,12 @@ void dispatch_command(const char* topic, const char* payload, bool update) // Strip command/config prefix from the topic and process the payload void dispatch_topic_payload(const char* topic, const char* payload, bool update) { - if(!strcmp_P(topic, PSTR(HASP_TOPIC_COMMAND))) { + if(!strcmp_P(topic, PSTR(MQTT_TOPIC_COMMAND))) { dispatch_text_line((char*)payload); return; } - if(topic == strstr_P(topic, PSTR(HASP_TOPIC_COMMAND "/"))) { // startsWith command/ + if(topic == strstr_P(topic, PSTR(MQTT_TOPIC_COMMAND "/"))) { // startsWith command/ topic += 8u; dispatch_command(topic, (char*)payload, update); return; @@ -832,10 +832,10 @@ void dispatch_send_discovery(const char*, const char*) size_t len = serializeJson(doc, data); switch(mqtt_send_discovery(data, len)) { case MQTT_ERR_OK: - LOG_TRACE(TAG_MQTT_PUB, F("discovery => %s"), data); + LOG_TRACE(TAG_MQTT_PUB, F(MQTT_TOPIC_DISCOVERY " => %s"), data); break; case MQTT_ERR_PUB_FAIL: - LOG_ERROR(TAG_MQTT_PUB, F(D_MQTT_FAILED " discovery => %s"), data); + LOG_ERROR(TAG_MQTT_PUB, F(D_MQTT_FAILED " " MQTT_TOPIC_DISCOVERY " => %s"), data); break; case MQTT_ERR_NO_CONN: LOG_ERROR(TAG_MQTT, F(D_MQTT_NOT_CONNECTED)); diff --git a/src/mqtt/hasp_mqtt.h b/src/mqtt/hasp_mqtt.h index c341d9b4..52e08715 100644 --- a/src/mqtt/hasp_mqtt.h +++ b/src/mqtt/hasp_mqtt.h @@ -39,10 +39,49 @@ bool mqttGetConfig(const JsonObject& settings); bool mqttSetConfig(const JsonObject& settings); #endif -#define HASP_TOPIC_COMMAND "command" - -// #ifndef WINDOWS -// String mqttGetNodename(void); -// #endif - +#ifndef MQTT_PREFIX +#define MQTT_PREFIX "hasp" #endif + +#ifndef MQTT_TOPIC_STATE +#define MQTT_TOPIC_STATE "state" +#endif + +#ifndef MQTT_TOPIC_COMMAND +#define MQTT_TOPIC_COMMAND "command" +#endif + +#ifndef MQTT_TOPIC_DISCOVERY +#define MQTT_TOPIC_DISCOVERY "discovery" +#endif + +#ifndef MQTT_TOPIC_BROADCAST +#define MQTT_TOPIC_BROADCAST "broadcast" +#endif + +#define MQTT_TOPIC_LWT "LWT" + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// These defaults may be overwritten with values saved by the web interface + +#ifndef MQTT_GROUPNAME +#define MQTT_GROUPNAME "plates"; +#endif + +#ifndef MQTT_HOST +#define MQTT_HOST ""; +#endif + +#ifndef MQTT_PORT +#define MQTT_PORT 1883; +#endif + +#ifndef MQTT_USER +#define MQTT_USER ""; +#endif + +#ifndef MQTT_PASSW +#define MQTT_PASSW ""; +#endif + +#endif // HASP_MQTT_H \ No newline at end of file diff --git a/src/mqtt/hasp_mqtt_ha.cpp b/src/mqtt/hasp_mqtt_ha.cpp index 02793e3c..a4adbd41 100644 --- a/src/mqtt/hasp_mqtt_ha.cpp +++ b/src/mqtt/hasp_mqtt_ha.cpp @@ -106,7 +106,7 @@ void mqtt_ha_register_button(uint8_t page, uint8_t id) char buffer[128]; snprintf_P(buffer, sizeof(buffer), PSTR(HASP_OBJECT_NOTATION), page, id); doc[F("stype")] = buffer; // subtype = "p0b0" - snprintf_P(buffer, sizeof(buffer), PSTR("~state/" HASP_OBJECT_NOTATION), page, id); + snprintf_P(buffer, sizeof(buffer), PSTR("~" MQTT_TOPIC_STATE "/" HASP_OBJECT_NOTATION), page, id); doc[F("t")] = buffer; // topic doc[F("atype")] = "trigger"; // automation_type @@ -148,7 +148,7 @@ void mqtt_ha_register_switch(uint8_t page, uint8_t id) char buffer[128]; snprintf_P(buffer, sizeof(buffer), PSTR(HASP_OBJECT_NOTATION), page, id); doc[F("stype")] = buffer; // subtype = "p0b0" - snprintf_P(buffer, sizeof(buffer), PSTR("~state/" HASP_OBJECT_NOTATION), page, id); + snprintf_P(buffer, sizeof(buffer), PSTR("~" MQTT_TOPIC_STATE "/" HASP_OBJECT_NOTATION), page, id); doc[F("t")] = buffer; // topic doc[F("atype")] = F("binary_sensor"); // automation_type @@ -169,7 +169,7 @@ void mqtt_ha_register_connectivity() // start from static keys and values that do not change deserializeJson(doc, F("{\"device_class\":\"connectivity\",\"stat_t\":\"~LWT\",\"pl_on\":\"online\",\"pl_off\":" - "\"offline\",\"json_attr_t\":\"~state/statusupdate\"}")); + "\"offline\",\"json_attr_t\":\"~" MQTT_TOPIC_STATE "/statusupdate\"}")); mqtt_ha_add_device_ids(doc); mqtt_ha_add_unique_id(doc, item); @@ -187,13 +187,13 @@ void mqtt_ha_register_backlight() // start from static keys and values that do not change deserializeJson(doc, F("{" - "\"cmd_t\":\"~" HASP_TOPIC_COMMAND "/light\"," - "\"stat_t\":\"~state/light\"," + "\"cmd_t\":\"~" MQTT_TOPIC_COMMAND "/light\"," + "\"stat_t\":\"~" MQTT_TOPIC_STATE "/light\"," "\"pl_on\":\"on\"," "\"pl_off\":\"off\"," "\"avty_t\":\"~LWT\"," - "\"bri_stat_t\":\"~state/dim\"," - "\"bri_cmd_t\":\"~" HASP_TOPIC_COMMAND "/dim\"," + "\"bri_stat_t\":\"~" MQTT_TOPIC_STATE "/dim\"," + "\"bri_cmd_t\":\"~" MQTT_TOPIC_COMMAND "/dim\"," "\"bri_scl\":100}")); mqtt_ha_add_device_ids(doc); mqtt_ha_add_unique_id(doc, item); @@ -215,8 +215,8 @@ void mqtt_ha_register_moodlight() // start from static keys and values that do not change deserializeJson(doc, F("{" - "\"cmd_t\":\"~" HASP_TOPIC_COMMAND "/moodlight\"," - "\"stat_t\":\"~state/moodlight\"," + "\"cmd_t\":\"~" MQTT_TOPIC_COMMAND "/moodlight\"," + "\"stat_t\":\"~" MQTT_TOPIC_STATE "/moodlight\"," "\"platform\":\"mqtt\"," "\"schema\":\"json\"," "\"rgb\":true," @@ -225,12 +225,12 @@ void mqtt_ha_register_moodlight() /* deserializeJson(doc, F("{" "\"cmd_t\":\"~command/moodlight\"," - // "\"stat_t\":\"~state/moodlight\"," + // "\"stat_t\":\"~" MQTT_TOPIC_STATE "/moodlight\"," "\"avty_t\":\"~LWT\"," - "\"bri_stat_t\":\"~state/moodlight/dim\"," + "\"bri_stat_t\":\"~" MQTT_TOPIC_STATE "/moodlight/dim\"," "\"bri_cmd_t\":\"~command/moodlight/dim\"," "\"bri_scl\":100," - "\"rgb_stat_t\":\"~state/moodlight/rgb\"," + "\"rgb_stat_t\":\"~" MQTT_TOPIC_STATE "/moodlight/rgb\"," "\"rgb_cmd_t\":\"~command/moodlight/rgb\"}")); */ mqtt_ha_add_device_ids(doc); @@ -256,7 +256,8 @@ void mqtt_ha_register_idle() snprintf_P(item, sizeof(item), PSTR("idle")); // start from static keys and values that do not change - deserializeJson(doc, F("{\"stat_t\":\"~state/idle\",\"avty_t\":\"~LWT\",\"json_attr_t\":\"~state/statusupdate\"}")); + deserializeJson(doc, F("{\"stat_t\":\"~" MQTT_TOPIC_STATE + "/idle\",\"avty_t\":\"~LWT\",\"json_attr_t\":\"~" MQTT_TOPIC_STATE "/statusupdate\"}")); mqtt_ha_add_device_ids(doc); mqtt_ha_add_unique_id(doc, item); @@ -273,8 +274,8 @@ void mqtt_ha_register_activepage() snprintf_P(item, sizeof(item), PSTR("page")); // start from static keys and values that do not change - deserializeJson(doc, - F("{\"cmd_t\":\"~" HASP_TOPIC_COMMAND "/page\",\"stat_t\":\"~state/page\",\"avty_t\":\"~LWT\"}")); + deserializeJson(doc, F("{\"cmd_t\":\"~" MQTT_TOPIC_COMMAND "/page\",\"stat_t\":\"~" MQTT_TOPIC_STATE + "/page\",\"avty_t\":\"~LWT\"}")); mqtt_ha_add_device_ids(doc); mqtt_ha_add_unique_id(doc, item); diff --git a/src/mqtt/hasp_mqtt_paho_async.cpp b/src/mqtt/hasp_mqtt_paho_async.cpp index e50f6df0..609af505 100644 --- a/src/mqtt/hasp_mqtt_paho_async.cpp +++ b/src/mqtt/hasp_mqtt_paho_async.cpp @@ -63,36 +63,6 @@ const char* mqttGroupTopic = TOPIC; bool mqttEnabled = false; bool mqttHAautodiscover = true; -//////////////////////////////////////////////////////////////////////////////////////////////////// -// These defaults may be overwritten with values saved by the web interface -#ifndef MQTT_HOST -#define MQTT_HOST ""; -#endif - -#ifndef MQTT_PORT -#define MQTT_PORT 1883; -#endif - -#ifndef MQTT_USER -#define MQTT_USER ""; -#endif - -#ifndef MQTT_PASSW -#define MQTT_PASSW ""; -#endif -#ifndef MQTT_NODENAME -#define MQTT_NODENAME ""; -#endif -#ifndef MQTT_GROUPNAME -#define MQTT_GROUPNAME ""; -#endif - -#ifndef MQTT_PREFIX -#define MQTT_PREFIX "hasp" -#endif - -#define LWT_TOPIC "LWT" - std::recursive_mutex dispatch_mtx; std::recursive_mutex publish_mtx; @@ -164,12 +134,12 @@ static void mqtt_message_cb(char* topic, char* payload, size_t length) } // catch a dangling LWT from a previous connection if it appears - if(!strcmp_P(topic, PSTR(LWT_TOPIC))) { // endsWith LWT + if(!strcmp_P(topic, PSTR(MQTT_TOPIC_LWT))) { // endsWith LWT if(!strcasecmp_P((char*)payload, PSTR("offline"))) { { char msg[8]; char tmp_topic[strlen(mqttNodeTopic) + 8]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" LWT_TOPIC), mqttNodeTopic); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_LWT), mqttNodeTopic); snprintf_P(msg, sizeof(msg), PSTR("online")); // /*bool res =*/mqttClient.publish(tmp_topic, msg, true); @@ -254,12 +224,12 @@ void onConnect(void* context, MQTTAsync_successData* response) printf("Successful connection\n"); - mqtt_subscribe(context, TOPIC HASP_TOPIC_COMMAND "/#"); - mqtt_subscribe(context, TOPIC HASP_TOPIC_COMMAND); + mqtt_subscribe(context, TOPIC MQTT_TOPIC_COMMAND "/#"); + mqtt_subscribe(context, TOPIC MQTT_TOPIC_COMMAND); mqtt_subscribe(context, TOPIC "light"); mqtt_subscribe(context, TOPIC "dim"); - mqttPublish(TOPIC LWT_TOPIC, "online", false); + mqttPublish(TOPIC MQTT_TOPIC_LWT, "online", false); mqtt_send_object_state(0, 0, "connected"); std::cout << std::endl; @@ -340,15 +310,15 @@ bool mqttIsConnected() void mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload) { char tmp_topic[strlen(mqttNodeTopic) + 20]; - printf(("%sstate/%s\n"), mqttNodeTopic, subtopic); - snprintf_P(tmp_topic, sizeof(tmp_topic), ("%sstate/%s"), mqttNodeTopic, subtopic); + printf(("%s" MQTT_TOPIC_STATE "/%s\n"), mqttNodeTopic, subtopic); + snprintf_P(tmp_topic, sizeof(tmp_topic), ("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic, subtopic); mqttPublish(tmp_topic, payload, false); } void mqtt_send_object_state(uint8_t pageid, uint8_t btnid, const char* payload) { char tmp_topic[strlen(mqttNodeTopic) + 20]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/p%ub%u"), mqttNodeTopic, pageid, btnid); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_STATE "/p%ub%u"), mqttNodeTopic, pageid, btnid); mqttPublish(tmp_topic, payload, false); } diff --git a/src/mqtt/hasp_mqtt_paho_single.cpp b/src/mqtt/hasp_mqtt_paho_single.cpp index 46069000..7ec6409e 100644 --- a/src/mqtt/hasp_mqtt_paho_single.cpp +++ b/src/mqtt/hasp_mqtt_paho_single.cpp @@ -63,34 +63,6 @@ uint32_t mqttPublishCount; uint32_t mqttReceiveCount; uint32_t mqttFailedCount; -//////////////////////////////////////////////////////////////////////////////////////////////////// -// These defaults may be overwritten with values saved by the web interface -#ifndef MQTT_HOST -#define MQTT_HOST "10.1.0.208"; -#endif - -#ifndef MQTT_PORT -#define MQTT_PORT 1883; -#endif - -#ifndef MQTT_USER -#define MQTT_USER "hasp"; -#endif - -#ifndef MQTT_PASSW -#define MQTT_PASSW "hasp"; -#endif - -#ifndef MQTT_GROUPNAME -#define MQTT_GROUPNAME "plates"; -#endif - -#ifndef MQTT_PREFIX -#define MQTT_PREFIX "hasp" -#endif - -#define LWT_TOPIC "LWT" - std::string mqttServer = MQTT_HOST; std::string mqttUser = MQTT_USER; std::string mqttPassword = MQTT_PASSW; @@ -143,10 +115,11 @@ static void mqtt_message_cb(char* topic, char* payload, size_t length) return; #ifdef HASP_USE_BROADCAST - } else if(topic == strstr_P(topic, PSTR(MQTT_PREFIX "/broadcast/"))) { // broadcast discovery topic + } else if(topic == strstr_P(topic, PSTR(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST + "/"))) { // /" MQTT_TOPIC_BROADCAST "/ discovery topic - // broadcast topic - topic += strlen(MQTT_PREFIX "/broadcast/"); // shorten topic + // /" MQTT_TOPIC_BROADCAST "/ topic + topic += strlen(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/"); // shorten topic dispatch_topic_payload(topic, (const char*)payload, length > 0); return; #endif @@ -167,7 +140,7 @@ static void mqtt_message_cb(char* topic, char* payload, size_t length) } // catch a dangling LWT from a previous connection if it appears - if(!strcmp_P(topic, PSTR(LWT_TOPIC))) { // endsWith LWT + if(!strcmp_P(topic, PSTR(MQTT_TOPIC_LWT))) { // endsWith LWT if(!strcasecmp_P((char*)payload, PSTR("offline"))) { { char msg[8]; @@ -251,22 +224,23 @@ bool mqttIsConnected() int mqtt_send_state(const __FlashStringHelper* subtopic, const char* payload) { char tmp_topic[mqttNodeTopic.length() + 20]; - // printf(("%sstate/%s\n"), mqttNodeTopic, subtopic); - snprintf_P(tmp_topic, sizeof(tmp_topic), ("%sstate/%s"), mqttNodeTopic.c_str(), subtopic); + // printf(("%s" MQTT_TOPIC_STATE "/%s\n"), mqttNodeTopic, subtopic); + snprintf_P(tmp_topic, sizeof(tmp_topic), ("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic.c_str(), subtopic); return mqttPublish(tmp_topic, payload, strlen(payload), false); } int mqtt_send_discovery(const char* payload, size_t len) { char tmp_topic[20]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR(MQTT_PREFIX "/discovery")); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR(MQTT_PREFIX "/" MQTT_TOPIC_DISCOVERY)); return mqttPublish(tmp_topic, payload, len, false); } int mqtt_send_object_state(uint8_t pageid, uint8_t btnid, const char* payload) { char tmp_topic[mqttNodeTopic.length() + 20]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/p%ub%u"), mqttNodeTopic.c_str(), pageid, btnid); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_STATE "/p%ub%u"), mqttNodeTopic.c_str(), pageid, + btnid); return mqttPublish(tmp_topic, payload, strlen(payload), false); } @@ -278,10 +252,10 @@ static void onConnect(void* context) LOG_VERBOSE(TAG_MQTT, D_MQTT_CONNECTED, mqttServer.c_str(), haspDevice.get_hostname()); - topic = mqttGroupTopic + HASP_TOPIC_COMMAND "/#"; + topic = mqttGroupTopic + MQTT_TOPIC_COMMAND "/#"; mqtt_subscribe(mqtt_client, topic.c_str()); - topic = mqttNodeTopic + HASP_TOPIC_COMMAND "/#"; + topic = mqttNodeTopic + MQTT_TOPIC_COMMAND "/#"; mqtt_subscribe(mqtt_client, topic.c_str()); topic = mqttGroupTopic + "config/#"; @@ -291,7 +265,7 @@ static void onConnect(void* context) mqtt_subscribe(mqtt_client, topic.c_str()); #ifdef HASP_USE_BROADCAST - topic = MQTT_PREFIX "/broadcast/" HASP_TOPIC_COMMAND "/#"; + topic = MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/" MQTT_TOPIC_COMMAND "/#"; mqtt_subscribe(mqtt_client, topic.c_str()); #endif @@ -412,7 +386,7 @@ void mqttSetup() printf("%s %d\n", __FILE__, __LINE__); mqttLwtTopic = mqttNodeTopic; - mqttLwtTopic += LWT_TOPIC; + mqttLwtTopic += MQTT_TOPIC_LWT; printf("%s %d\n", __FILE__, __LINE__); } diff --git a/src/mqtt/hasp_mqtt_pubsubclient.cpp b/src/mqtt/hasp_mqtt_pubsubclient.cpp index 4b24efae..229e02be 100644 --- a/src/mqtt/hasp_mqtt_pubsubclient.cpp +++ b/src/mqtt/hasp_mqtt_pubsubclient.cpp @@ -54,36 +54,6 @@ uint32_t mqttPublishCount; uint32_t mqttReceiveCount; uint32_t mqttFailedCount; -//////////////////////////////////////////////////////////////////////////////////////////////////// -// These defaults may be overwritten with values saved by the web interface -#ifndef MQTT_HOST -#define MQTT_HOST ""; -#endif - -#ifndef MQTT_PORT -#define MQTT_PORT 1883; -#endif - -#ifndef MQTT_USER -#define MQTT_USER ""; -#endif - -#ifndef MQTT_PASSW -#define MQTT_PASSW ""; -#endif -#ifndef MQTT_NODENAME -#define MQTT_NODENAME ""; -#endif -#ifndef MQTT_GROUPNAME -#define MQTT_GROUPNAME ""; -#endif - -#ifndef MQTT_PREFIX -#define MQTT_PREFIX "hasp" -#endif - -#define LWT_TOPIC "LWT" - char mqttServer[16] = MQTT_HOST; char mqttUser[23] = MQTT_USER; char mqttPassword[32] = MQTT_PASSW; @@ -130,8 +100,8 @@ bool mqtt_send_lwt(bool online) char tmp_payload[8]; char tmp_topic[strlen(mqttNodeTopic) + 4]; strncpy(tmp_topic, mqttNodeTopic, sizeof(tmp_topic)); - strncat_P(tmp_topic, PSTR(LWT_TOPIC), sizeof(tmp_topic)); - // snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" LWT_TOPIC), mqttNodeTopic); + strncat_P(tmp_topic, PSTR(MQTT_TOPIC_LWT), sizeof(tmp_topic)); + // snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_LWT), mqttNodeTopic); size_t len = snprintf_P(tmp_payload, sizeof(tmp_payload), online ? PSTR("online") : PSTR("offline")); bool res = mqttPublish(tmp_topic, tmp_payload, len, true); @@ -142,21 +112,22 @@ bool mqtt_send_lwt(bool online) int mqtt_send_object_state(uint8_t pageid, uint8_t btnid, const char* payload) { char tmp_topic[strlen(mqttNodeTopic) + 16]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/" HASP_OBJECT_NOTATION), mqttNodeTopic, pageid, btnid); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_STATE "/" HASP_OBJECT_NOTATION), mqttNodeTopic, + pageid, btnid); return mqttPublish(tmp_topic, payload, false); } int mqtt_send_state(const char* subtopic, const char* payload) { char tmp_topic[strlen(mqttNodeTopic) + 20]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/%s"), mqttNodeTopic, subtopic); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_STATE "/%s"), mqttNodeTopic, subtopic); return mqttPublish(tmp_topic, payload, false); } int mqtt_send_discovery(const char* payload, size_t len) { char tmp_topic[20]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR(MQTT_PREFIX "/discovery")); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR(MQTT_PREFIX "/" MQTT_TOPIC_DISCOVERY)); return mqttPublish(tmp_topic, payload, len, false); } @@ -188,10 +159,10 @@ static void mqtt_message_cb(char* topic, byte* payload, unsigned int length) return; #ifdef HASP_USE_BROADCAST - } else if(topic == strstr_P(topic, PSTR(MQTT_PREFIX "/broadcast/"))) { // broadcast discovery topic + } else if(topic == strstr_P(topic, PSTR(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/"))) { // broadcast topic // Broadcast topic - topic += strlen_P(PSTR(MQTT_PREFIX "/broadcast/")); // shorten topic + topic += strlen_P(PSTR(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/")); // shorten topic dispatch_topic_payload(topic, (const char*)payload, length > 0); return; #endif @@ -212,12 +183,12 @@ static void mqtt_message_cb(char* topic, byte* payload, unsigned int length) } // catch a dangling LWT from a previous connection if it appears - /* if(!strcmp_P(topic, PSTR(LWT_TOPIC))) { // endsWith LWT + /* if(!strcmp_P(topic, PSTR(MQTT_TOPIC_LWT))) { // endsWith LWT if(!strcasecmp_P((char*)payload, PSTR("offline"))) { { char msg[8]; char tmp_topic[strlen(mqttNodeTopic) + 8]; - snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" LWT_TOPIC), mqttNodeTopic); + snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%s" MQTT_TOPIC_LWT), mqttNodeTopic); snprintf_P(msg, sizeof(msg), PSTR("online")); // bool res = @@ -266,8 +237,8 @@ void mqttStart() } // Attempt to connect and set LWT and Clean Session - snprintf_P(buffer, sizeof(buffer), PSTR("%s" LWT_TOPIC), mqttNodeTopic); // lastWillTopic - snprintf_P(lastWillPayload, sizeof(lastWillPayload), PSTR("offline")); // lastWillPayload + snprintf_P(buffer, sizeof(buffer), PSTR("%s" MQTT_TOPIC_LWT), mqttNodeTopic); // lastWillTopic + snprintf_P(lastWillPayload, sizeof(lastWillPayload), PSTR("offline")); // lastWillPayload haspProgressMsg(F(D_MQTT_CONNECTING)); haspProgressVal(mqttReconnectCount * 5); @@ -320,16 +291,16 @@ void mqttStart() // Subscribe to our incoming topics char topic[64]; - snprintf_P(topic, sizeof(topic), PSTR("%s" HASP_TOPIC_COMMAND "/#"), mqttGroupTopic); + snprintf_P(topic, sizeof(topic), PSTR("%s" MQTT_TOPIC_COMMAND "/#"), mqttGroupTopic); mqttSubscribeTo(topic); - snprintf_P(topic, sizeof(topic), PSTR("%s" HASP_TOPIC_COMMAND "/#"), mqttNodeTopic); + snprintf_P(topic, sizeof(topic), PSTR("%s" MQTT_TOPIC_COMMAND "/#"), mqttNodeTopic); mqttSubscribeTo(topic); // F_topic = F("%sconfig/#"); // mqttSubscribeTo(F_topic, mqttGroupTopic); - // mqttSubscribeTo(F("%s"LWT_TOPIC), mqttNodeTopic); + // mqttSubscribeTo(F("%s"MQTT_TOPIC_LWT), mqttNodeTopic); #ifdef HASP_USE_BROADCAST - snprintf_P(topic, sizeof(topic), PSTR(MQTT_PREFIX "/broadcast/" HASP_TOPIC_COMMAND "/#")); + snprintf_P(topic, sizeof(topic), PSTR(MQTT_PREFIX "/" MQTT_TOPIC_BROADCAST "/" MQTT_TOPIC_COMMAND "/#")); mqttSubscribeTo(topic); #endif