Forum: Haus & Smart Home MQTT Nachricht vom ESP8266 zu Node-Red "Fehler -2"


von Dshing S. (dshing)


Angehängte Dateien:

Lesenswert?

Hallo

ich versuche gerade eine MQTT Nachricht mit einem ESP8266 an meinen 
Node-red Server/Brocker abzusetzen. Leider schaffe ich es einfach nicht 
mich zu verbinden.

Als Beispielcodes verwende ich die DHT Geschichten, die man über all 
findet, z.B.:
Hier
https://www.arduino.cc/en/Tutorial/MKRConnectorDHTOLED
oder hier:
https://randomnerdtutorials.com/esp8266-and-node-red-with-mqtt/

Nur ohne DHT-Sensor. Entsprechend abgespeckt ist mein Code. Mit dem WLAN 
verbindet er sich noch Problemlos, das klappt, aber die Verbindung zum 
MQTT Server scheitert mit dem Fehler -2 (rc=-2).

Den Node-Red Flow hab ich mal in Bildern Angehangen (1-4). Ich hab auch 
gecheckt, ob der Server an sich läuft (Bild 5).
Findet jemand den Fehler, was ich falsch mache, oder hat eine Idee?
1
#include <ESP8266WiFi.h>
2
#include <PubSubClient.h>
3
4
const char* ssid = "NAME";
5
const char* password = "PASSWORT";
6
const char* mqtt_server = "123.456.789.0";
7
8
WiFiClient espClient;
9
PubSubClient client(espClient);
10
11
void setup_wifi() {
12
   delay(100);
13
    Serial.print("Connecting to ");
14
    Serial.println(ssid);
15
    WiFi.begin(ssid, password);
16
    while (WiFi.status() != WL_CONNECTED) 
17
    {
18
      delay(500);
19
      Serial.print(".");
20
    }
21
  randomSeed(micros());
22
  Serial.println("");
23
  Serial.println("WiFi connected");
24
  Serial.println("IP address: ");
25
  Serial.println(WiFi.localIP());
26
}
27
28
void reconnect() 
29
{
30
  // Loop until we're reconnected
31
  while (!client.connected()) {
32
    Serial.print("Attempting MQTT connection...");
33
    if (client.connect("ESP8266Client")) {
34
      Serial.println("connected");  
35
      client.subscribe("room/value");
36
    } 
37
    else {
38
      Serial.print("failed, rc=");
39
      Serial.print(client.state());
40
      Serial.println(" try again in 5 seconds");
41
      delay(5000);
42
    }
43
  }
44
}
45
46
void setup() 
47
{
48
  Serial.begin(115200);
49
  setup_wifi();
50
  client.setServer(mqtt_server, 1883);
51
}
52
53
void loop() 
54
{
55
  if (!client.connected()) {
56
    reconnect();
57
  }
58
  if(!client.loop())
59
    client.connect("ESP8266Client");        
60
    client.publish("room/value", "77");
61
    delay(1000);
62
}

: Bearbeitet durch User
von Dirk B. (dirkb2)


Lesenswert?

Zahlendreher im ersten Teil der IP-Adresse

von TR.OLL (Gast)


Lesenswert?

Qos ist falsch, weil es beim ESP null ist und bei nodered 2.
(Im ersten Bild.)

von Dshing S. (dshing)


Lesenswert?

Hallo, danke schon mal für die Tipps, den Zahlendreher, hab ich leider 
nur hier im Post eingebaut, schade :(

Das Qos hab ich gerade probiert bei Node-Red auf 0 oder 1 zusetzen, 
ändert aber leider auch nichts :(

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Dshing S. schrieb:
> Hallo, danke schon mal für die Tipps, den Zahlendreher, hab ich
> leider
> nur hier im Post eingebaut, schade :(

Hast du an Copy&Paste irgend etwas falsch verstanden?

Das geht direkt auf dem PC ohne einen Xerox-Kopierer mit der alten 
Software ...

von Chris K. (Gast)


Lesenswert?

Hast du den Port für den Server in der Firewall vielleicht blockiert?
Netstat auf dem Localhost macht da sicherlich keine Probleme. Aber 
vielleicht kommst du von außen ja gar nicht auf den Port?

von Dirk B. (dirkb2)


Lesenswert?

Hast du schon mal mit MQTT-Explorer oder MQTT-Box (beides Apps aus dem 
Windows-Store) probiert ob du überhaupt eine Verbindung bekommst?

von Günter (Gast)


Lesenswert?

Node Red ist kein MQTT Broker
So wie mir das scheint hast du keinen broker?
Ich hoffe die ip ist nicht die die du wirklich versuchst ;)

von Günter (Gast)


Lesenswert?

Mqtt broker ist zb mosquitto

von Dshing S. (dshing)


Lesenswert?

Chris K. schrieb:
> Hast du den Port für den Server in der Firewall vielleicht blockiert?
> Netstat auf dem Localhost macht da sicherlich keine Probleme. Aber
> vielleicht kommst du von außen ja gar nicht auf den Port?

Haha, das war's! Danke!

Die Pis aus den Beispielen immer haben keine Firewall oder wie?

von 50c (Gast)


Lesenswert?

Dshing S. schrieb:
> Die Pis aus den Beispielen immer haben keine Firewall oder wie?

nein

von Dshing S. (dshing)


Lesenswert?

Ahja, wieder was gelernt, dann danke für die Hilfe an Alle.

von Dirk B. (dirkb2)


Lesenswert?

Dshing S. schrieb:
> Die Pis aus den Beispielen immer haben keine Firewall oder wie?

Die haben Linux.

Die werden i.A. hinter einer Firewall (Router) betrieben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.