diff --git a/src/WifiManager.cpp b/src/WifiManager.cpp
index d845f83..871b2d8 100644
--- a/src/WifiManager.cpp
+++ b/src/WifiManager.cpp
@@ -11,27 +11,28 @@ void WifiManager::init() {
boolean result = WiFi.softAP("PumpenSteuerung-Heiligenbrunner", "1qayxsw2");
if (result == true) {
Serial.println("Wifi Ready");
- Serial.println( WiFi.softAPIP());
+ Serial.println(WiFi.softAPIP());
- server.on("/", HTTP_GET, [this](){
+ server.on("/", HTTP_GET, [this]() {
handleRoot();
});
- server.on("/get", [this](){
+ server.on("/get", [this]() {
handleGet();
});
- server.onNotFound([this](){
+ server.onNotFound([this]() {
handleNotFound();
});
+ // server available at 192.168.2.1
server.begin();
} else {
Serial.println("Wifi Setup failed!");
}
}
-WifiManager::WifiManager() : server(80) {}
+WifiManager::WifiManager() : server(80), lastPumpTime(0), lastWaterOutage(0), lastPumpDuration(0) {}
void WifiManager::handleRoot() {
Serial.println("HomePage called");
@@ -41,16 +42,58 @@ void WifiManager::handleRoot() {
EEPROM.get(0, value);
EEPROM.end(); // stop the eeprom communication
- const String index_html = "
\n"
- " Wastinfoboard-ConfigurationPage\n"
- " \n"
- " \n"
- " Aktuelle Zeit: "+ String(value / 60) +" Minuten
\n"
- "
\n"
- "";
+ bool pumptimeset = this->lastPumpTime != 0;
+ bool wateroutageset = this->lastWaterOutage != 0;
+ bool pumpdurationset = this->lastPumpDuration != 0;
+
+ unsigned long pumptime = pumptimeset ? (millis() - this->lastPumpTime) / 1000 : 0; // in sec
+ unsigned long wateroutagetime = wateroutageset ? (millis() - this->lastWaterOutage) / 1000 : 0; // in sec
+ unsigned long pumpduration = pumpdurationset ? (this->lastPumpDuration) / 1000 : 0; // in sec
+
+
+ String index_html = "\n"
+ " Wastinfoboard-ConfigurationPage\n"
+ " \n"
+ " \n"
+ " Aktuelle Zeit: " + String(value / 60) +
+ " Minuten
\n"
+ "
\n";
+ if (pumptimeset) {
+ index_html += "Zeit seit letztem einschalten: " +
+ String(pumptime / (60 * 60)) + "Stunden " +
+ String((pumptime % 3600) / 60) + "Minuten " +
+ String((pumptime % 60)) + "Sekunden
";
+ } else {
+ index_html += "Zeit seit letztem einschalten: -
";
+ }
+
+ if (wateroutageset) {
+ index_html += "Zeit seit letzem Wasserausfall: " +
+ String(wateroutagetime / (60 * 60 * 24)) + "Tage " +
+ String((wateroutagetime % 86400) / (60 * 60)) + "Stunden " +
+ String((wateroutagetime % 3600) / 60) + "Minuten
";
+ } else {
+ index_html += "Zeit seit letzem Wasserausfall: -
";
+ }
+
+ if (pumpdurationset) {
+ index_html += "Pumpe lief zuletzt: " +
+ String(pumpduration / 60) + "Minuten " +
+ String((pumpduration % 60)) + "Sekunden
";
+ } else {
+ index_html += "Pumpe lief zuletzt: -
";
+ }
+ unsigned long currtime = millis() / 1000;
+
+ index_html += "Chip laeuft seit: " +
+ String(currtime / (60 * 60 * 24)) + "Tage " +
+ String((currtime % 86400) / (60 * 60)) + "Stunden " +
+ String((currtime % 3600) / 60) + "Minuten " +
+ String((currtime % 60)) + "Sekunden
" +
+ "";
server.send(200, "text/html", index_html);
}
@@ -98,3 +141,15 @@ int WifiManager::getWaitTime() {
EEPROM.end(); // stop the eeprom communication
return value;
}
+
+void WifiManager::setlastPumpTime(unsigned long lastPumpTime) {
+ this->lastPumpTime = lastPumpTime;
+}
+
+void WifiManager::setlastWaterOutage(unsigned long lastWaterOutage) {
+ this->lastWaterOutage = lastWaterOutage;
+}
+
+void WifiManager::setPumpDuration(unsigned long lastPumpDuration) {
+ this->lastPumpDuration = lastPumpDuration;
+}
diff --git a/src/WifiManager.h b/src/WifiManager.h
index 47a9140..177b6d9 100644
--- a/src/WifiManager.h
+++ b/src/WifiManager.h
@@ -17,6 +17,11 @@ public:
void holdAlive();
int getWaitTime();
+
+ void setlastPumpTime(unsigned long lastPumpTime);
+ void setlastWaterOutage(unsigned long lastWaterOutage);
+ void setPumpDuration(unsigned long lastPumpDuration);
+
private:
ESP8266WebServer server;
@@ -25,4 +30,6 @@ private:
void handleNotFound();
void handleGet();
+
+ unsigned long lastPumpTime, lastWaterOutage, lastPumpDuration;
};
diff --git a/src/main.cpp b/src/main.cpp
index ebb278c..4f2db88 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -25,12 +25,14 @@ Ticker pumpendauer;
WifiManager mang;
-int turnontime = -1;
+long turnontime = -1;
void pumpeSchalten(bool on) {
// digitalWrite(4,on);
if (on) {
Serial.println("versuche Pumpe EIN zuschalten");
+ // refresh last pump counter
+ mang.setlastPumpTime(millis());
} else {
Serial.println("versuche Pumpe AUS zuschalten");
}
@@ -45,8 +47,11 @@ void pumpeSchalten(bool on) {
error = true;
}
});
+
+ turnontime = millis();
+ }else{
+ mang.setPumpDuration(millis() - turnontime);
}
- turnontime = millis();
digitalWrite(SchuetzPin, on);
Serial.println("[Erfolg] pumpe wird geschalten");
} else {
@@ -82,6 +87,9 @@ void WasserSensorCheck() {
Serial.println("Wasser Sensor AUS");
//kein Wasser dh timer auf 10min stellen
+ // refresh wateroutage counter
+ mang.setlastWaterOutage(millis());
+
allow = false;
Serial.println("Schalte pumpe aus");
pumpeSchalten(false);