Code für ansteuerung von Pumpen funktioniert nicht

Lass den erstmal mit Zeiten arbeiten, um überhaupt ein "Erlebnis" zu haben.
Cocktailmaker abzuschreiben ist eines, aber das auch zu verstehn, ein anderes.
Gerade Du bist ja da auch nicht ganz unbeleckt.

@entenking
Ich will GIN!

// Forensketch - kleines Spiel - Basis:
// https://forum.arduino.cc/t/code-fur-ansteuerung-von-pumpen-funktioniert-nicht/900401/6?u=my_xy_projekt
const uint8_t tasterGruen = 12;
const uint8_t tasterRot = 11;
const uint8_t tasterGin = 10;
const uint8_t relaisSchlauch = 9;
const uint8_t relaisLuft = 8;

unsigned int colaTimer;
unsigned int asbachTimer;

unsigned long lastMillis;

void setup()
{
  pinMode(tasterGruen, INPUT_PULLUP);
  pinMode(tasterRot, INPUT_PULLUP);
  pinMode(tasterGin, INPUT_PULLUP);
  pinMode(relaisSchlauch, OUTPUT);
  pinMode(relaisLuft, OUTPUT);
}

void loop()
{
  auswahl();
  if (pumpenAnsteuerung()) pumpenAnsteuerung(); // Da alle Variablen global sind, prüfe ständig den Zustand ob noch was laufen soll...
}
void auswahl()
{
  if (!pumpenAnsteuerung())  // Nur wenn keine Pumpe läuft
  {
    if (!digitalRead(tasterGruen))  // Frage die Taste(n) ab
    {
      asbachTimer = 2000;
      colaTimer = 2000;
      lastMillis = millis();
      // pumpenAnsteuerung();   // Die Zeile kann entfallen, da alle Variablen global sind.
    }
    else if (!digitalRead(tasterRot))
    {
      asbachTimer = 3000;
      colaTimer = 1000;
      lastMillis = millis();
      // pumpenAnsteuerung();
    }
    else if (!digitalRead(tasterGin))
    {
      asbachTimer = 4000;
      colaTimer = 0;
      lastMillis = millis();
      //pumpenAnsteuerung();
    }
  }
}
bool pumpenAnsteuerung()
{
  bool returnWert = false; // Hier definierst du die Variable "returnWert" und setzt sie auf false
  if ((millis() - lastMillis) <= colaTimer)
  {
    digitalWrite(relaisLuft, HIGH);
    returnWert = true; // Wenn die Pumpen laufen setzt du die Variable auf true. Ich vermute um den zustand der Funktion PumpenAnsteuerung abfragen zu können?!
  }
  else
  {
    digitalWrite(relaisLuft, LOW);
  }
  if ((millis() - lastMillis) <= asbachTimer)
  {
    digitalWrite(relaisSchlauch, HIGH);
    returnWert = true;
  }
  else
  {
    digitalWrite(relaisSchlauch, LOW);
  }
  return returnWert; // Wo wird der returnWert denn verarbeitet?
}