ESP8266 HTTP Get Local IP

Hallo Zusammen,
ich habe mal mein “Problemcode” aus meinem Projekt herausgebastelt, sodass es übersichtlicher ist.
Ich möchte eigentlich nur einen HTTP Request durchführen, worauf ein weiterer Controller in meiner Wohnung eine Aktion ausführt.

Gebe ich folgende URL in meinen Browser ein, wird die Aktion ausgeführt:
http://192.168.0.25/ir?code=551489775

Eigentlich sollte der Beispielsketch unten das selbe bewirken. Erhalte als httpCode allerdings immer nur die “-1”, was laut Github (Link) bedeutet, dass die Verbindung abgelehnt wurde.

Weiss jemand weiter?

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

#define WIFI_SSID "..."
#define WIFI_PASS "..."

void setup() {

    delay(10);
    Serial.begin(115200);
    
    WiFi.mode(WIFI_STA);
 
    // Connect
    Serial.printf("[WIFI] Verbunden mit %s ", WIFI_SSID);
    WiFi.begin(WIFI_SSID, WIFI_PASS);
 
    // Wait
    while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(100);
    }
    Serial.println();
    
    HTTPClient http;  //Declare an object of class HTTPClient
 
    http.begin("http://192.168.0.25/ir?code=551489775");  //Specify request destination
    int httpCode = http.GET();                                                                  //Send the request

    Serial.println(httpCode);
    Serial.println("Code wird gesendet...");
    
    if (httpCode > 0) { //Check the returning code
 
      String payload = http.getString();      //Get the request response payload
      Serial.println(payload);                //Sollte "OK" zurückgeben
      Serial.println(""); 
 
    }
 
    http.end(); 
    
}

void loop() {
  

}

Ich kann Dir bei Deinem eigentlichen Problem nicht helfen. Ich kenne die ESP-Dinger nicht.

Worüber ich gestolpert bin, ist ...

magie004: ...    // Connect    Serial.printf("[WIFI] Verbunden mit %s ", WIFI_SSID);    WiFi.begin(WIFI_SSID, WIFI_PASS); ...

... wo Du, wenn ich das richtig verstehe, eine Erfolgsmeldung ausgibst, obwohl WiFi-mäßig noch überhaupt nichts geschah.

Verstehe ich das nur faclsh?

Gruß

Gregor

Soll wahrscheinlich heißen "Verbinden mit ...."

Lass Dir doch mal nach der Anmeldung am WLAN Deine IP ausgeben (WiFi.localIP()) und schaue, ob die Netze passen. Lass Dir zum Vergleich auch mal die IP vom PC mit ausgeben.

Gruß Tommy

Zuerst einmal: Ja da sollte stehen Verbinden mit... :) Gut aufgepasst!

Die IP passt ins Netzwerk. Die eigene IP ist die 192.168.0.27

Ich habe Deinen Sketch mal hier gegen die Startseite von meinem NAS laufen lassen, das funktioniert. Mit Parametern habe ich lokal gerade nichts laufen.

http.begin("http://192.168.178.5/"); Da kommt 200 und der HTML-Quelltext.

Der Code kann also nicht grundlegend falsch sein.

Gruß Tommy

Vielleicht muss ich die Antwort meines Servers anpassen. Sende derzeit keine saubere Antwort mit Header, sondern ein simples "ok".

Danke fürs testen :)

Das reicht auch, ist sogar einfacher zum auswerten. Arduino ist ja schliesslich kein Browser.

Dann kann man aber keinen HTTP-Client benutzen. Der will mindestens denn 200 OK Header, evtl. auch den Mimetype.

Gruß Tommy

Tommy56: Dann kann man aber keinen HTTP-Client benutzen. Der will mindestens denn 200 OK Header, evtl. auch den Mimetype.

Gruß Tommy

Deswegen progammiert man sowas von Hand, dann weiß ich wenigstens was ich tue

Ja. Das war aber nicht die Frage des TO.

Gruß Tommy

Das Problem ist ja, dass -1 kommt. Und das wird die client lib fabrizieren, wenn kein korrektes html als Antwort kommt

Genau. Da muss 200 kommen.

Also so etwa:

webserver.send(200, "text/plain","ok");

Gruß Tommy

Mein anderer Controller Antwort mit:

void reqAnswer() {
 server.send(200, "text/html", "Ok");
}

Der Code 200 ist es also nicht :/

probier mal text/plain

Gruß Tommy

Habe ich getestet. Leider kein Unterschied :(

Gibt es in dem Forum eine Möglichkeit eine Notification zu bekommen, sobald man eine Antwort bekommen hat? Weder in meinem "privaten Forenbereich" noch sonst wo bekomme ich eine Mitteilung. Muss immer alle Themen öffnen und nachschauen

wenn du eingeloggt bist, hast du unterhalb der Beiträge 4 Buttons

"Reply" "Mark" "unread Print" "4. Button"

Drücke auf den rechten Button, und du kannst es auswählen

Danke :)