add new ticker to check after 500ms if water outage is correct.

This commit is contained in:
lukas 2021-04-03 17:16:24 +02:00
parent 6adfb3c09e
commit 697ed69d95
2 changed files with 41 additions and 34 deletions

View File

@ -16,6 +16,6 @@
#define TempSensorPin D4
// version info
#define VERSION "v1.2.4-Alpa1"
#define VERSION "v1.2.4-Alpha2"
#endif //PUMPENSTEUERUNG_PINS_H

View File

@ -15,7 +15,7 @@ bool error = false;
Ticker status;
//pumpendauer maximum ticker
Ticker pumpendauer;
Ticker pumpendauer, wasserSensorDoubleCheck;
//WifiManager mang;
Heating mHeat;
@ -47,7 +47,8 @@ void pumpeSchalten(bool on) {
pumpendauer.once((float) settingsservice.getSettings()->maxpumpduration + 1, []() {
//erlaube keine einschaltung von mehr als 60 sek
if (Timer::getSystemSeconds() - turnontime >= (unsigned)settingsservice.getSettings()->maxpumpduration && turnontime != 0) {
if (Timer::getSystemSeconds() - turnontime >=
(unsigned) settingsservice.getSettings()->maxpumpduration && turnontime != 0) {
//error zu lange
Serial.println("\n\npumpe lief mehr als 10 Minuten durchgaengig");
pumpeSchalten(false);
@ -64,7 +65,8 @@ void pumpeSchalten(bool on) {
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);
}
@ -92,6 +94,9 @@ ICACHE_RAM_ATTR void DruckschalterInt() {
int wateroutagewaitduration;
void WasserSensorCheck() {
if (digitalRead(WasserSensorPin) == LOW) {
// check if water sensor is also low after 500ms and lock it then
wasserSensorDoubleCheck.once_ms(500, []() {
if (digitalRead(WasserSensorPin) == LOW) {
Serial.println("Wasser Sensor AUS");
//kein Wasser dh timer auf 10min stellen
@ -130,6 +135,8 @@ void WasserSensorCheck() {
}
}
});
}
});
} else {
Serial.println("Wasser Sensor EIN");
}