Projektvorstellung: Spritpreis von deiner Heimtankstelle mit ESP32 auf Display anzeigen

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 :wink: - Ich hab Variante statisch genommen - war einfacher :slight_smile: und ich hoffe es passt...