Cleanup MQTT_TOPIC defines

This commit is contained in:
fvanroie 2021-05-07 01:27:13 +02:00
parent 75f76a7f3e
commit f80cd90d94
6 changed files with 103 additions and 148 deletions

View File

@ -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));

View File

@ -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

View File

@ -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);

View File

@ -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);
}

View File

@ -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__);
}

View File

@ -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