ArduinoOTA funktioniert nicht

Hallo zusammen,
der Netzwerk-Port will nicht auftauchen.
Lokal, also mit Micro-USB Kabel flashen klappt.
Ich arbeite an einem Wemos D1 Mini.
Wir sind beide (Notebook -> Wemos) mit dem selben WLAN verbunden.
Habe den Beispiel-Sketch BasicOTA installiert.
Beide erscheinen in der FritzBox unter "dürfen untereinander kommunizieren".
Im übrigen gibt es im Netzwerk noch einen Wemos, der erscheinen müsste.
Hatte die Windows 10 Firewall testweise mal ganz unten.

Was kann ich noch machen?

P.S. ich arbeite mit der aktuellsten Arduino 1.8.9 (Windows Store 1.8.21.0), aber auch die früher installierte 1.8.5 die noch drauf ist will nicht

Kann ich nicht reproduzieren!
Tuts bei mir.

Obwohl...
Da scheints gerade ein derbes Problem mit der Boardefinition zu geben.

Ich habe auf dem Windows 10 "http://arduino.esp8266.com/stable/package_esp8266com_index.json",
und auf dem virtuellen UbuntuNAS "https://github.com/esp8266/Arduino/releases/download/2.3.0/package_esp8266com_index.json"

Das Ubuntu hatte ich nie dafür genutzt, weiß also nicht, ob da nicht ohnehin noch was falsch läuft.

Also bei http://arduino.esp8266.com/stable/package_esp8266com_index.json stelle ich gerade fest, dass die aktuellste 2.5.1 gar nicht geladen werden kann. Mit der 2.5.0 klappe OTA aber auch nicht.
Mit der aktuellsten von https://github.com/esp8266/Arduino/releases/download/2.3.0/package_esp8266com_index.json auch nicht.

Hast du Python installiert?

Ja 2.7 extra dafür. In einem Tutorial las ich, dass die Extension registriert werden muss. Da war bei der Installation aber keine Rede von. Ich hoffe, dass das ohne Nachfrage automatisch passiert ist.

Stell doch mal den Sketch hier ein....

STASSID und STAPSK stimmen natürlich und eine WLAN-Verbindung kommt zustande.
ArduinoOTA.getCommand() gab es wegen der Board-Definition nicht, weshalb ich es auskommentiert hatte.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

#ifndef STASSID
#define STASSID "..."
#define STAPSK  "...
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

void setup() {
  Serial.begin(115200);
  Serial.println("\n\nBooting");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Connection Failed! Rebooting...");
    delay(5000);
    ESP.restart();
  }

  // Port defaults to 8266
  // ArduinoOTA.setPort(8266);

  // Hostname defaults to esp8266-[ChipID]
  // ArduinoOTA.setHostname("myesp8266");

  // No authentication by default
  // ArduinoOTA.setPassword("admin");

  // Password can be set with it's md5 value as well
  // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
  // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");

  ArduinoOTA.onStart([]() {
    String type;
//    if (ArduinoOTA.getCommand() == U_FLASH) {
//      Serial.println("\ntype = sketch\n");
//      type = "sketch";
//    } else { // U_SPIFFS
//      Serial.println("\ntype = filesystem\n");
      type = "filesystem";
//    }

    // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
    Serial.println("Start updating " + type);
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) {
      Serial.println("Auth Failed");
    } else if (error == OTA_BEGIN_ERROR) {
      Serial.println("Begin Failed");
    } else if (error == OTA_CONNECT_ERROR) {
      Serial.println("Connect Failed");
    } else if (error == OTA_RECEIVE_ERROR) {
      Serial.println("Receive Failed");
    } else if (error == OTA_END_ERROR) {
      Serial.println("End Failed");
    }
  });
  ArduinoOTA.begin();
  Serial.println("Ready");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  ArduinoOTA.handle();
}

Hallo,

Dein Sketch macht hier was er soll, incl. ArduinoOTA.getCommand(), meldet ordentlich type = sketch
Mußte natürlich extra ein anderes terminalprogramm dazu starten, weil die IDE ja nicht OTA und COM als Port gleichzeitig nutzen kann.
IDE 1.8.9 ESP8266 2.4.2 (der 2.5x traue ich noch nicht über den Weg).
Board D1 mini: LOLIN(WEMOS) D1 R2 & mini

Es gab gestern oder vorgestern ohnehin etwas Chaos mit der ESP8266-json bei github, scheint so, als ob sie es wieder repariert haben. Bei den ESP2 unbedingt immer im Boardmanager alte Version deinstallieren und dann neue installieren. Nie updaten, das hat da bei mir immer für Chaos gesorgt.

Gruß aus Berlin
Michael

amithlon:
Hallo,

Dein Sketch macht hier was er soll, incl. ArduinoOTA.getCommand(), meldet ordentlich type = sketch
Mußte natürlich extra ein anderes terminalprogramm dazu starten, weil die IDE ja nicht OTA und COM als Port gleichzeitig nutzen kann.
IDE 1.8.9 ESP8266 2.4.2 (der 2.5x traue ich noch nicht über den Weg).
Board D1 mini: LOLIN(WEMOS) D1 R2 & mini

Das kann ich so bestätigen, am Sketch liegt es nicht und auch ArduinoOTA.getCommand() geht mit einer zweiten portablen IDE.

OTA funktioniert bei mir mit allen Core Versionen, auch mit 2.5.0 und 2.5.1.

Win10 nutze ich schon lange ohne Probleme mit der Arduino IDE.

Ich würde dir empfehlen, dich bei der Fehlersuche auf das Zusammenspiel Python <-> Arduino IDE zu konzentrieren.

Gruß Fips

Bei mir geht es auch. Aber nicht immer :confused:
Oft sehe ich den Netzwerk-Port nicht in den Einstellungen, dann hilft bei mir, wenn ich mich kurz mit einem anderen Netzwerk (meinem Gastzugang) verbinde und dann wieder zurück auf das "richtige" gehe.

Wenn es denn am Python läge, würde dann nicht wenigstens der Port erscheinen?

amithlon:
Mußte natürlich extra ein anderes terminalprogramm dazu starten, weil die IDE ja nicht OTA und COM als Port gleichzeitig nutzen kann.

Das heißt, wenn ich den Wemos per USB angeschlossen habe, und er unter COM6 richtig funktioniert, KANN er unter OTA gar nicht auftauchen??
Habe ihn jetzt abgestöpselt und extern versorgt: klappt immer noch nicht.

amithlon:
Nie updaten, das hat da bei mir immer für Chaos gesorgt.

Ok, habe C:\Users<user>\AppData\Local\Arduino15\packages\esp8266 gelöscht und installiere esp8266 neu.
Getestet: klappt immer noch nicht.

Wie teste ich denn ob ArduinoIDE mit Python arbeitet?

uk1408:
Bei mir geht es auch. Aber nicht immer :confused:
Oft sehe ich den Netzwerk-Port nicht in den Einstellungen, dann hilft bei mir, wenn ich mich kurz mit einem anderen Netzwerk (meinem Gastzugang) verbinde und dann wieder zurück auf das "richtige" gehe.

Habe ich gerade getestet: auch erfolglos. Aber Danke :wink:

Derfips:
Ich würde dir empfehlen, dich bei der Fehlersuche auf das Zusammenspiel Python <-> Arduino IDE zu konzentrieren.

Ich habe das gerade gemacht und Windows neu gestartet:

Seitdem wird python immer aus der cmd gefunden was vorher nicht der Fall war.

Vermutlich hast Du bei der Installation von Python den Haken "Add Python to Path" (oder so ähnlich) nicht gesetzt gehabt.

Moko:
Vermutlich hast Du bei der Installation von Python den Haken "Add Python to Path" (oder so ähnlich) nicht gesetzt gehabt.

Den hatte ich ja gesucht laut Tutorial. Aber nicht gefunden.

ChristianKnorr:
Das heißt, wenn ich den Wemos per USB angeschlossen habe, und er unter COM6 richtig funktioniert, KANN er unter OTA gar nicht auftauchen??
Habe ihn jetzt abgestöpselt und extern versorgt: klappt immer noch nicht.

Heißt es nicht!
Ota funktioniert auch wenn der Esp.... am COM Port hängt, nur der Serielle Monitor dieser IDE lässt sich dann nicht nutzen.

Ich habe mehrere portable Arduino IDE. Nur um im seriellen Monitor der einen, das OTA Sketcht Update zu sehen. Muss das Ota Update von einer zweiten aus erfolgen.

ChristianKnorr:
Ok, habe C:\Users<user>\AppData\Local\Arduino15\packages\esp8266 gelöscht und installiere esp8266 neu.
Getestet: klappt immer noch nicht.

Das war nur auf den Esp32 bezogen.

amithlon:
Bei den ESP2 unbedingt immer im Boardmanager alte Version deinstallieren und dann neue installieren

ChristianKnorr:
Wie teste ich denn ob ArduinoIDE mit Python arbeitet?

Keine Ahnung, bei mir klappt es ja schon immer.

Gruß Fips

Ich habe gerade mal das alte Netbook reanimiert und siehe da: beide Wemos erscheinen unter Port/Netzwerk-Schnittstellen.
Arduino IDE 1.8.5, kein Python installiert (glaube ich :wink: ). Zumindest wird bei "python --version" nix gefunden.
Die Krücke kompiliert gerade noch, dann rechne ich mit einem Fehler dank fehlendem Python.

und jetzt geht es ?

Ich habe gerade auch nochmals probiert, in einem Netzwerk ging es immer, im anderen nur mit Problemen. Ich habe dann mal in der IDE unter Werkzeuge - erase Flash - All Flash Contents eingestellt und hochgeladen (nachher zurückstellen nicht vergessen). Der Start des Programmes dauert dann erst mal wesentlich länger, aber dann ging es auch mit OTA im "Problem"-WLAN.