diff --git a/src/main.cpp b/src/main.cpp index 0b0b613..4692071 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,8 +22,10 @@ Ticker status; //pumpendauer maximum ticker Ticker pumpendauer; +int turnontime = -1; + void pumpeSchalten(bool on) { -// digitalWrite(4,on); + // digitalWrite(4,on); if (on) { Serial.println("versuche Pumpe EIN zuschalten"); } else { @@ -32,8 +34,8 @@ void pumpeSchalten(bool on) { if (allow && !error) { if (on) { - pumpendauer.once(maxpumpdauer, []() { //erlaube keine einschaltung von mehr als 60 sek - if (digitalRead(DruckSensorPin)) { + pumpendauer.once(maxpumpdauer + 1, []() { //erlaube keine einschaltung von mehr als 60 sek + if (millis() - turnontime >= maxpumpdauer * 1000 && turnontime != -1) { //error zu lange Serial.println("\n\npumpe lief mehr als 10 Minuten durchgaengig"); pumpeSchalten(false); @@ -41,11 +43,12 @@ void pumpeSchalten(bool on) { } }); } + turnontime = millis(); digitalWrite(SchuetzPin, on); Serial.println("[Erfolg] pumpe wird geschalten"); } else { - Serial.println( - "[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n"); + Serial.println("[FEHLGESCHLAGEN] Schalten des Schütz gesperrt durch Timeout oder Fehler-- sofortiges ausschalten der pumpe\n"); + turnontime = -1; digitalWrite(SchuetzPin, LOW); }