Failed with state -2The client esp8266-client-84F3EB52FB33 connects to the public MQTT broker

Everything was working well but suddenly I have faced this issue where the it’s not connecting to mqtt and this is the message that appear in the output Failed with state -2The client esp8266-client-84F3EB52FB33 connects to the public MQTT broker

Here is the code
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Servo.h>

const char *ssid = “1078704”; // Enter your WiFi name
const char *password = “Noor”; // Enter WiFi password

// MQTT Broker settings
const char* mqtt_server = “172.20.10.2”;
const char *topic_env = “home/environment”;
const char *topic_ac = “home/ac_control”;
const int mqtt_port = 1883;
const char *mqtt_username = “Noor”;
const char *mqtt_password = “Fatema”;

WiFiClient espClient;
PubSubClient client(espClient);
Servo servoMotor; // Servo motor object

// Define the Servo pin
const int servoPin = D2; // GPIO pin for the Servo

void setup() {
servoMotor.attach(servoPin); // Attach servo motor to its pin
Serial.begin(115200);

// Connecting to a WiFi network
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.println("Connecting to WiFi..");
}
Serial.println("Connected to the WiFi network");

// Connecting to an MQTT broker
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);

// Attempt to connect to the MQTT broker
reconnect();

// Subscribe to the MQTT topics
client.subscribe(topic_ac);

}

String getClientID() {
// Get the MAC address of the ESP8266
String mac = WiFi.macAddress();
// Create a unique client ID by appending the MAC address
String clientId = “esp8266-client-”;
clientId += mac;
// Remove colons from the MAC address
clientId.replace(“:”, “”);
return clientId;
}

void reconnect() {
while (!client.connected()) {
String client_id = getClientID();
Serial.printf(“The client %s connects to the public MQTT broker\n”, client_id.c_str());
if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) {
Serial.println(“Public MQTT broker connected”);
} else {
Serial.print("Failed with state ");
Serial.print(client.state());
delay(2000);
}
}
}

void callback(char *topic, byte payload, unsigned int length) {
payload[length] = ‘\0’; // Null terminate the string
String message = String((char
)payload);
Serial.print("Message arrived in topic: ");
Serial.println(topic);
Serial.print("Message: ");
Serial.println(message);

// Control Servo based on the message received
if (message == "AC_ON") {
    servoMotor.write(90);  // Adjust angle as needed to press the AC ON button
} else if (message == "AC_OFF") {
    servoMotor.write(0);  // Adjust angle as needed to press the AC OFF button
}

}

void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
}

Hope anyone can help as soon as possible

Hey,

Maybe someone with specific experience of this MQTT client lib can help or maybe the libs own docs/issue tracker? No idea what state -2 means.

Should also look at the OpenRemote manager logs and can always try increasing the logging verbosity if needed to indicate any MQTT failures.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.