OK, nachmal, es handelt sich um einen Wemos D1 mini. Also ESP8266.
Und ja ich raff das gerade nicht.
Klar, mag sein das mein Projekt eventuell nicht so den Programmiercharme at, aber wie gesagt fange ich erst an und dies ist so mein erstes komlexes Projekt. Darum auch bitte keine Veruteiungen.
LightuC:
An den Fehlermeldungen kannst du erkennen, was nicht stimmt:
error: invalid conversion from 'byte* {aka unsigned char*}' to 'char*' [-fpermissive]
Das sagt dir, dass der Compiler irgendeiner Stelle vom Datentyp byte* (entspricht unsigned char*) zum Datentyp char* konvertieren muss. Das ist mit -fpermissive nicht zulässig (gibt ansonsten nur eine Warnung).
Jetzt fehlt nur noch wo:
error: initializing argument 1 of 'char* strtok(char*, const char*)' [-fpermissive]
Also beim Aufruf von 'strtok'. Das ergibt ja auch Sinn, schließlich übergibst du als Parameter die Variable 'payload' und die ist vom Datentype byte*.
// Diese Zeile muss also geändert werden
char* hours = strtok(payload, ":");
// Und zwar zu
char* hours = strtok((char*)payload, ":");
Ich würde allerdings deine ganze callback Funktion ändern, die ist viel zu lang und nur schwer lesbar. Außerdem solltest du wirklich auf jegliche Benutzung von String verzichten.
Das habe ich nun eingebunden und er meckert jetzt nicht mehr und kompiliert durch. Aber in einem anderen Absatz versende ich das wieder. Der Absatz sieht so aus, jedoch kann ich hier nichts einfügen, ohne das es meckert. Hab nun sämtliche konstellationen durch die ich kenne:
void refreshDisplay(){
if (valueChanged || pageChanged || wifiChanged) {
digitalWrite(BUILTIN_LED, LOW); // Turn ON internal LED
if (currentPage == PAGE_HEIZ) {
zTemperatur.setValue(calculateGauge_Temperatur_Value(gaugeTemperatur));
zFeuchte.setValue(calculateGauge_Feuchte_Value(gaugeFeuchte));
//zTop.setValue(calculateTopGaugeValue(gaugeTop));
//tTop.setText(String(gaugeTop, DEC).c_str());
tTemperatur_Soll.setText(String(Temperatur_SOLL).c_str());
tTemperatur_IST.setText(String(Temperatur_IST).c_str());
tFeuchte.setText(String(Feuchte).c_str());
}
else if (currentPage == PAGE_HOME) {
if (wifiState == WIFI_CONNECTED) {
pWifi.setPic(6);
} else if (wifiState == WIFI_DISCONNECTED) {
pWifi.setPic(5);
}
tUhrzeit.setText(String(Uhrzeit).c_str());
}
}
Ich weis, Ich und meine String..... soll aber nicht heißen das ich so etwas trage 