diff --git a/src/mqtt/hasp_mqtt_ha.cpp b/src/mqtt/hasp_mqtt_ha.cpp index 190105f8..9ec642e4 100644 --- a/src/mqtt/hasp_mqtt_ha.cpp +++ b/src/mqtt/hasp_mqtt_ha.cpp @@ -16,9 +16,14 @@ #define RETAINED true -// extern char mqttNodeName[16]; +#if defined(WINDOWS) || defined(POSIX) extern std::string mqttNodeTopic; extern std::string mqttGroupTopic; +#else +extern char mqttNodeTopic[]; +extern char mqttGroupTopic[]; +#endif + extern bool mqttEnabled; extern bool mqttHAautodiscover; diff --git a/src/mqtt/hasp_mqtt_pubsubclient.cpp b/src/mqtt/hasp_mqtt_pubsubclient.cpp index dba3f1c1..1b7ffefb 100644 --- a/src/mqtt/hasp_mqtt_pubsubclient.cpp +++ b/src/mqtt/hasp_mqtt_pubsubclient.cpp @@ -99,13 +99,12 @@ 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(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); - return res; }