diff --git a/water-sensor.ino b/water-sensor.ino index d2da26a..44b5c27 100644 --- a/water-sensor.ino +++ b/water-sensor.ino @@ -15,7 +15,8 @@ #define WATER_THRESHOLD 750 #define SENSE_THRESHOLD 100 -#define MESSAGE_INTERVAL 1000 * 60 * 50 // 50 minutes +#define MESSAGE_INTERVAL 1000 * 60 * 20 // 20 minutes +#define RESTART_INTERVAL 1000 * 60 * 60 * 24 * 7 // 7 days WiFiClient wifiClient; MqttClient mqttClient(wifiClient); @@ -144,15 +145,24 @@ void loop() { static unsigned long last_pos_message = 0; static unsigned long last_neg_message = 0; static unsigned long last_sense_message = 0; + static bool hasTriggered = false; bool leakDetected = sampleWater(); bool cableDetected = senseCable(); if (leakDetected) { relayOff(); + hasTriggered = true; Serial.println("Leak detected!"); } + + if (!hasTriggered && millis() > RESTART_INTERVAL) { + Serial.println("Weekly restarting Arduino..."); + relayOff(); + ESP.restart(); + } + mqttClient.poll(); if (WiFi.status() != WL_CONNECTED) {