Node MCU/ PubSubClient Fehlermeldung rc=-2

Hallo Miteinander

Ich habe schon seit mehreren Tagen das Problem, dass mein Node MCU mit dem ESP 8266 board sich nicht mit meinem Broker verbinden will.

Wenn ich das Programm auf den Node lade, dann stellt er die Verbindung zum WLan her aber danach kommt der Fehler.

Woran könnte das Liegen?

Mein Code basiert auf dem Examlple-Code vom PubSubClient für mqtt_esp8266

Am Mosquitto kanns nicht liegen weil über MQTT.fx kann ich zugreifen

Vielen Dank für eure Hilfe

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

// Update these with values suitable for your network.

const char* ssid = "XXXX";
const char* password = "mXXXX";
const char* mqtt_server = "XXXX";



WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE	(50)
char msg[MSG_BUFFER_SIZE];
int value = 0;

void setup_wifi() {

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  randomSeed(micros());

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

  // Switch on the LED if an 1 was received as first character
  if ((char)payload[0] == '1') {
    digitalWrite(BUILTIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level
    // but actually the LED is on; this is because
    // it is active low on the ESP-01)
  } else {
    digitalWrite(BUILTIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH
  }

}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    // Attempt to connect
    if (client.connect(clientId.c_str())) {
      Serial.println("connected");
      // Once connected, publish an announcement...
      client.publish("/Status_Arduino1", "hello world");
      // ... and resubscribe
      client.subscribe("/Weichen_Status1");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
}

void loop() {

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

  unsigned long now = millis();
  if (now - lastMsg > 2000) {
    lastMsg = now;
    ++value;
    snprintf (msg, MSG_BUFFER_SIZE, "hello world #%ld", value);
    Serial.print("Publish message: ");
    Serial.println(msg);
    client.publish("/Status_Arduino1", msg);
  }
}

Hallo
nimm eine Suchmaschine Deiner Wahl und nehme die Fehlermeldung und befrage damit das weltweite Netz

Hallo Paul

Das habe ich bereits gemacht, allerdings verstehe ich die Tipps, welche dort manchmal gegeben werden nicht.

Deshalb verfasste ich diesen Eintrag

Trotzdem danke für deine Antwort

Und warum zeigst du uns deinen aktuellen Sketch nicht ?

Poste den bitte, aber nicht als Bild, sondern in Code-Tags.

Hallo Dieter

Habe jetzt den Code angehangen.

Es hängt doch an deinem Server oder deiner WLAN Verbindung, bei mit funktioniert dein Sketch ohne Probleme...

Komisch habe es jetzt sowohl mit dem WLan, wie auch mit einem Handy-Hotspot probiert und kriege bei beiden immer noch die selbe Fehlermeldung aber danke für die Info, dass es nicht am Code liegt.

Ich hab das Problem gefunden.

Vielen Dank für all eure Hilfe.

Woran lag es?

Gruß Tommy

Das würde nicht nur Tommy und mich interessieren sondern auch bestimmt viele Andere die in Zukunft das gleiche Problem bekommen....

Gruß

Es lag an der IP-Addresse ich habe alled bei gemüsse auch eingegeben also: http:// Xxxxxx:1883 dabei hätte ich nur die reine IP des MQTT servers eingeben müssen.

Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);

Die Portnummer wird separat angegeben.