Wenn ich das Ganze dann auf einen ESP8266 Mini lade, kommt immer die folgende Fehlermeldung:
/Users/username/Documents/Arduino/libraries/Dusk2Dawn/Dusk2Dawn.cpp:293:65: error: cannot declare member function 'static bool Dusk2Dawn::zeroPadTime(char*, byte)' to have static linkage [-fpermissive]
293 | static bool Dusk2Dawn::zeroPadTime(char *str, byte timeComponent) {
| ^
Bibliothek Dusk2Dawn in Version 1.0.1 im Ordner: /Users/usewrname/Documents/Arduino/libraries/Dusk2Dawn wird verwendet
exit status 1
Was genau heißt das und wie kann nicht das Problem lösen? Habe schon nach der Fehlermeldung gegoogelt, aber die angebotenen Lösungen nicht verstanden, bzw. ihre Umsetzung hat nicht geholfen
Wundert mich, dass das auf einem UNO funktioniert. Öffne die Datei Dusk2Dawn.cpp in dem Library-Verzeichnis und entferne das Schlüsselwort "static" vor den Methodendefinitionen von "min2str(char*, int);" und "zeroPadTime(char*, byte);".
Dann lässt sich der Code kompilieren. Es reicht, dass die Methoden bei der Deklaration im Headerfile als static ausgewiesen sind. Das noch einmal bei der Definition in der CPP Datei zu machen ist eigentlich falsch.
In der akt. Github Version ist das auch "korrekt" . Aber anscheinend wird über den Bibliotheksmanager noch eine andere geladen.
Ich würde dir auch empfehlen, eher auf den ESP32 umzusteigen. Der ESP32-C3 ist zu ähnlichen Preisen zu haben und ist viel moderner. Ich hatte mit dem ESP8266 viele Probleme. der ESP32 ist m.E. ausgereifter, ebenso die Bibliotheken.
Also meine ESP8266 funktionieren genausogut wie die ESP32, man muss nur drauf achten, dass es kleine UNterschiede in der Wifi-Lib gibt und beim Kompilieren in der IDE die Warning/Error-Behandlung unterschiedlich ist. Was bei dem einen durchgeht, wird beim anderen als Compiler-Fehler ausgegeben. Hängt von der C++-Konvention ab. Habe festgestellen müssen, dass meine C++ -Gebilde von vor 30 Jahren heutzutage nicht mehr salon-fähig sind. Vor allem, was Deklarationen angeht.
Wenn der @TO genau diese Bibliothek verwenden will, ist es wurscht ob er einen ESP32 oder einen ESP8266 verwendet. Der Fehler bleibt der gleiche.
Auch wenn das Release 1.0.1 mit Bug Fix gekennzeichnet ist, ist es fehlerhaft. Und aus der Version, die diesen "static" Bug nicht mehr hat, wurde offensichtlich kein Release erstellt.
Ich bestreite ja nicht, dass da schon das ein oder andere coole feature dazugekommen ist, aber ich hasse es, wenn mir Software vorgibt, wie ich zu programmieren habe...
Danke. Mit einem ESP32 S2 hat es auch nicht funktioniert (gleicher Fehler).
Ich habe jetzt ein anderes Script verwendet, welches funktioniert.
Eventuell mache ich es am Ende auch mit der OpenWheaterMap API ..