From 45a21178585ccaccf1c01c672e2a2c00d2072d0a Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Mon, 1 Jul 2024 13:34:42 -0600 Subject: [PATCH] Restart Arduino weekly, but not if triggered --- water-sensor.ino | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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) {