feat: Make MQTT topic dynamic with device name
This commit is contained in:
parent
7d77c5b051
commit
952a3a9d64
|
@ -18,7 +18,7 @@ String deviceName;
|
||||||
|
|
||||||
const char broker[] = "192.168.69.106";
|
const char broker[] = "192.168.69.106";
|
||||||
int port = 1883;
|
int port = 1883;
|
||||||
const char topic[] = "iot/airmega/speed";
|
String topic; // Changed from const char[]
|
||||||
#define QOS_2 2
|
#define QOS_2 2
|
||||||
|
|
||||||
void (* resetFunc) (void) = 0;
|
void (* resetFunc) (void) = 0;
|
||||||
|
@ -41,6 +41,11 @@ void setup() {
|
||||||
Serial.print("[SYSTEM] Generated device name: ");
|
Serial.print("[SYSTEM] Generated device name: ");
|
||||||
Serial.println(deviceName);
|
Serial.println(deviceName);
|
||||||
|
|
||||||
|
// Construct the dynamic topic string
|
||||||
|
topic = "iot/purifier/" + deviceName + "/speed";
|
||||||
|
Serial.print("[SYSTEM] Using MQTT topic: ");
|
||||||
|
Serial.println(topic);
|
||||||
|
|
||||||
static int error_count = 0;
|
static int error_count = 0;
|
||||||
|
|
||||||
WiFi.hostname(deviceName.c_str());
|
WiFi.hostname(deviceName.c_str());
|
||||||
|
@ -113,7 +118,7 @@ void setup() {
|
||||||
Serial.print("[MQTT] Subscribing to topic: ");
|
Serial.print("[MQTT] Subscribing to topic: ");
|
||||||
Serial.println(topic);
|
Serial.println(topic);
|
||||||
|
|
||||||
mqttClient.subscribe(topic, QOS_2);
|
mqttClient.subscribe(topic.c_str(), QOS_2);
|
||||||
|
|
||||||
Serial.println("[MQTT] Waiting for messages.");
|
Serial.println("[MQTT] Waiting for messages.");
|
||||||
}
|
}
|
||||||
|
@ -136,7 +141,7 @@ void loop() {
|
||||||
|
|
||||||
Serial.print("[MQTT] Subscribing to topic: ");
|
Serial.print("[MQTT] Subscribing to topic: ");
|
||||||
Serial.println(topic);
|
Serial.println(topic);
|
||||||
mqttClient.subscribe(topic, QOS_2);
|
mqttClient.subscribe(topic.c_str(), QOS_2);
|
||||||
} else {
|
} else {
|
||||||
error_count = 0;
|
error_count = 0;
|
||||||
mqttClient.poll();
|
mqttClient.poll();
|
||||||
|
@ -168,7 +173,11 @@ void onMqttMessage(int messageSize) {
|
||||||
Serial.println(message);
|
Serial.println(message);
|
||||||
|
|
||||||
if (msgTopic != topic) {
|
if (msgTopic != topic) {
|
||||||
Serial.println("[MQTT] Invalid topic, returning.");
|
Serial.print("[MQTT] Invalid topic '");
|
||||||
|
Serial.print(msgTopic);
|
||||||
|
Serial.print("', expected '");
|
||||||
|
Serial.print(topic);
|
||||||
|
Serial.println("'. Returning.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user