Hallo, ich möchte für meinen Epsolar einen Sketch auf den Wemos D1 Mini machen.
Leider bekomme ich immer eine Fehlermeldung.
Woran könnte das liegen?`Bei anderen scheint es ja zu funktionieren.
Im englischen Teil des Forum m'ssen die Beitryge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
Bitte keine Bildschirmfotos - das kann keiner lesen.
Du hast am oberen Rand des Ausgabefensters einen Button: "Fehlermeldung kopieren" Den drücken und dann hier in Codetags (Das Symbol </> benutzen) einfügen.
Evtl. haben andere ja alles und richtig installiert.
Bei dir sieht es nach einer fehlerhaften Installation aus.
Bitte deinen Sketch und die Fehlermeldung hier in Code-Tags posten.
Sehe ich auch so!
Ein SimpleTimer ist nicht wie der andere.
Und meiner ist auch anders, als alle anderen. (es ist der simpelste von allen)
Okay, hier noch mal der Fehlercode.
Arduino: 1.8.19 (Windows Store 1.8.57.0) (Windows 10), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
C:\Users\User\Downloads\EPSolar-master\EPSolar\EPSolar.ino: In function 'void setup()':
EPSolar:216:57: error: no matching function for call to 'SimpleTimer::setInterval(int, void (&)())'
216 | timerTask2 = timer.setInterval(10000, doRegistryNumber);
| ^
In file included from C:\Users\User\Downloads\EPSolar-master\EPSolar\EPSolar.ino:24:
C:\Users\User\OneDrive\Documents\Arduino\libraries\SimpleTimer/SimpleTimer.h:23:10: note: candidate: 'void SimpleTimer::setInterval(uint64_t)'
23 | void setInterval(uint64_t interval);
| ^~~~~~~~~~~
C:\Users\User\OneDrive\Documents\Arduino\libraries\SimpleTimer/SimpleTimer.h:23:10: note: candidate expects 1 argument, 2 provided
EPSolar:217:59: error: no matching function for call to 'SimpleTimer::setInterval(int, void (&)())'
217 | timerTask3 = timer.setInterval(10000, nextRegistryNumber);
| ^
In file included from C:\Users\User\Downloads\EPSolar-master\EPSolar\EPSolar.ino:24:
C:\Users\User\OneDrive\Documents\Arduino\libraries\SimpleTimer/SimpleTimer.h:23:10: note: candidate: 'void SimpleTimer::setInterval(uint64_t)'
23 | void setInterval(uint64_t interval);
| ^~~~~~~~~~~
C:\Users\User\OneDrive\Documents\Arduino\libraries\SimpleTimer/SimpleTimer.h:23:10: note: candidate expects 1 argument, 2 provided
C:\Users\User\Downloads\EPSolar-master\EPSolar\EPSolar.ino: In function 'void loop()':
EPSolar:275:9: error: 'class SimpleTimer' has no member named 'run'
275 | timer.run();
| ^~~
exit status 1
no matching function for call to 'SimpleTimer::setInterval(int, void (&)())'
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Das solltest beherzigen.
welche simpleTimer-lib benutzt Du? (link)
Und dann lesen: Second value EasyTimer error · Issue #5 · dpoulson/EPSolar · GitHub
Hast du dir mal die Doku zu SimpleTimer durchgelesen ?
In der Fehlermeldung steht doch, welche Fehler du gemacht hast.
Und ich vermisse noch deinen Sketch.
Ich verstehe nicht, wie man das ignorieren kann.
Außer, man ist gar nicht daran interessiert, was da alles passiert, oder wo der Fehler ist.
Weiterhin:
Wer eine falsche lib benutzt, kann in der Doku lesen was er will und den Fehler nicht finden.
Hat er doch in #1 angegeben.
Sonst wäre ich nicht drauf gekommen, seine Fehlermeldung mit den issues zu vergleichen...
und damit er nicht viel suchen muss hier
https://github.com/schinken/ SimpleTimer
Diesen nutze ich
Der ist für das Projekt ungeeignet, da er die Funktionen nicht beinhaltet, die Du brauchst - ich hab Dir oben alles geliefert. Bitte da nachlesen - Du warst nicht der Erste der das Problem hatte -, dann hast Du auch schon mal eine Idee, wie Du bei anderen Projekten an die Fehlersuche gehst.
na dann.
Viel Erfolg.
Versuchen kostet nix nur den alten aus libraries verschieben sonst gibts Probleme
Man sollte auch Dokus lesen, dann erkennt man schon viele seiner Fehler.
Woher weiß ich denn, welche Librarie die richtige ist?
Falsche Frage!
Denn der Ersteller eines Tutorials sollte klar benennen, welche Libs er da verwendet.
Die Antwort auf deine (falsche) Frage lautet also:
Aus dem Turorial.
Wenn es issues gibt - und diese gelöst sind - dann gehört da ein erster Blick hinein.
Habe ich geschrieben?
So, mit der richtigen Timerlib geht oder geht nicht?
Die habe ich vom Author selbst bekommen gestern.
Ich glaube ja, aber nun habe ich neue Fehlermeldungen.
Arduino: 1.8.15 (Windows 10), Board: "LOLIN(WEMOS) D1 mini Lite, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 1MB (FS:64KB OTA:~470KB), v2 Lower Memory, Disabled, None, Only Sketch, 921600"
C:\EPSolar-master\EPSolar\EPSolar.ino: In function 'void setup()':
EPSolar:99:14: error: 'class ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>' has no member named 'setHostname'
99 | ArduinoOTA.setHostname(OTA_HOSTNAME);
| ^~~~~~~~~~~
EPSolar:104:14: error: 'class ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>' has no member named 'onStart'
104 | ArduinoOTA.onStart([]() {
| ^~~~~~~
EPSolar:107:14: error: 'class ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>' has no member named 'onEnd'
107 | ArduinoOTA.onEnd([]() {
| ^~~~~
EPSolar:110:14: error: 'class ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>' has no member named 'onProgress'
110 | ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
| ^~~~~~~~~~
EPSolar:113:25: error: 'ota_error_t' has not been declared
113 | ArduinoOTA.onError([](ota_error_t error) {
| ^~~~~~~~~~~
C:\EPSolar-master\EPSolar\EPSolar.ino: In lambda function:
EPSolar:115:18: error: 'OTA_AUTH_ERROR' was not declared in this scope
115 | if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
| ^~~~~~~~~~~~~~
EPSolar:116:23: error: 'OTA_BEGIN_ERROR' was not declared in this scope
116 | else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
| ^~~~~~~~~~~~~~~
EPSolar:117:23: error: 'OTA_CONNECT_ERROR' was not declared in this scope
117 | else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
| ^~~~~~~~~~~~~~~~~
EPSolar:118:23: error: 'OTA_RECEIVE_ERROR' was not declared in this scope
118 | else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
| ^~~~~~~~~~~~~~~~~
EPSolar:119:23: error: 'OTA_END_ERROR' was not declared in this scope
119 | else if (error == OTA_END_ERROR) Serial.println("End Failed");
| ^~~~~~~~~~~~~
C:\EPSolar-master\EPSolar\EPSolar.ino: In function 'void setup()':
EPSolar:120:4: error: invalid user-defined conversion from 'setup()::<lambda(int)>' to 'void (*)(int, const char*)' [-fpermissive]
120 | });
| ^
C:\EPSolar-master\EPSolar\EPSolar.ino:113:22: note: candidate is: 'constexpr setup()::<lambda(int)>::operator void (*)(int)() const' (near match)
113 | ArduinoOTA.onError([](ota_error_t error) {
| ^
C:\EPSolar-master\EPSolar\EPSolar.ino:113:22: note: no known conversion from 'void (*)(int)' to 'void (*)(int, const char*)'
In file included from C:\Users\tkb\Documents\Arduino\libraries\ArduinoOTA\src/ArduinoOTA.h:22,
from C:\EPSolar-master\EPSolar\EPSolar.ino:23:
C:\Users\tkb\Documents\Arduino\libraries\ArduinoOTA\src/WiFiOTA.h:49:23: note: initializing argument 1 of 'void WiFiOTAClass::onError(void (*)(int, const char*))'
49 | void onError(void (*fn)(int code, const char* msg)) {
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EPSolar:121:20: error: no matching function for call to 'ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>::begin()'
121 | ArduinoOTA.begin();
| ^
In file included from C:\EPSolar-master\EPSolar\EPSolar.ino:23:
C:\Users\tkb\Documents\Arduino\libraries\ArduinoOTA\src/ArduinoOTA.h:87:8: note: candidate: 'void ArduinoOTAMdnsClass<NetServer, NetClient, NetUDP>::begin(IPAddress, const char*, const char*, OTAStorage&) [with NetServer = WiFiServer; NetClient = WiFiClient; NetUDP = WiFiUDP]'
87 | void begin(IPAddress localIP, const char* name, const char* password, OTAStorage& storage) {
| ^~~~~
C:\Users\tkb\Documents\Arduino\libraries\ArduinoOTA\src/ArduinoOTA.h:87:8: note: candidate expects 4 arguments, 0 provided
exit status 1
'class ArduinoOTAMdnsClass<WiFiServer, WiFiClient, WiFiUDP>' has no member named 'setHostname'
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Mach das doch mal in deiner IDE.
Dann postest du nochmal die Fehlermeldung. Zuvor lösche die unnötigen Leerzeilen raus.