Vorschlag:
if (millis() - lastmillis > 5000) // Zeit auflösen
{
lastmillis = millis(); // und merken
//for (const auto& tanke : tankstellenListe)
static byte zaehler = 0; // interner Zaehler - Inhalt darf nicht verloren gehen
{
//Serial.print(tanke.stationName);
Serial.println(tankstellenListe[zaehler].stationName); // Auslösen des Stationsnamen über den Index
//JsonObject station = prices[tanke.stationId];
JsonObject station = prices[tankstellenListe[zaehler].stationId]; // JsonObjekt über den Index zuordnen
if (station["status"] == "closed")
{
Serial.println(F(" ist geschlossen."));
continue;
}
if (station["status"] == "no prices")
{
Serial.println(F(": keine Preise verfügbar."));
continue;
}
Serial.println();
float stationE5 = station["e5"];
float stationE10 = station["e10"];
float stationDiesel = station["diesel"];
Serial.print(F("\tSuper E5 : "));
Serial.println(stationE5, 3);
Serial.print(F("\tSuper E10: "));
Serial.println(stationE10, 3);
Serial.print(F("\tDiesel : "));
Serial.println(stationDiesel, 3);
if (stationDiesel <= preisalarmDiesel)
{
Serial.println(F("Mein Auto tanken!"));
}
if (stationE5 <= preisalarmE5)
{
Serial.println(F("Familienautos tanken!"));
}
}
zaehler++; // Zaehler erhöhen
if (zaehler >= sizeof(tankstellenListe) / sizeof(Tanke)) zaehler = 0; // und auf die maximalen Einträge begrenzen
}
ungetestet - ich habe die Hardware nicht. Aber die originalen Zeilen an der Stelle drin gelassen, wo sie waren, damit man sieht, was sich ändert.
Bitte Kommentare beachten
@wno158 warst ein wenig schneller
- Ich hab Variante statisch genommen - war einfacher
und ich hoffe es passt...