Compare commits

...

2 Commits

Author SHA1 Message Date
Christoph Hagen
69a8f32179 Update dependency 2023-11-04 11:14:55 +01:00
Christoph Hagen
e99474c3cf Reset wifi and socket once per day 2023-11-04 11:14:40 +01:00
5 changed files with 20 additions and 1 deletions

View File

@ -20,6 +20,8 @@ struct WifiConfiguration {
// The interval to reconnect to WiFi if the connection is broken
uint32_t reconnectInterval;
uint32_t periodicReconnectInterval;
};
struct KeyConfiguration {
@ -76,4 +78,6 @@ private:
void prepareResponseBuffer(SesameEvent event, uint8_t deviceId = 0);
void sendPreparedLocalResponse(AsyncWebServerRequest *request);
void sendPreparedServerResponse();
void periodicallyReconnectWifiAndSocket(uint32_t millis);
};

View File

@ -49,6 +49,9 @@ constexpr const char* networkName = "Sesame-Device";
// The interval to reconnect to WiFi if the connection is broken
constexpr uint32_t wifiReconnectInterval = 10000;
// The interval to reconnect to WiFi if the connection is broken
constexpr uint32_t wifiPeriodicReconnectInterval = 86400;
/* Local server */
// The port for the local server to directly receive messages over WiFi

View File

@ -14,6 +14,6 @@ board = az-delivery-devkit-v4
framework = arduino
lib_deps =
links2004/WebSockets@^2.3.7
madhephaestus/ESP32Servo@^0.13.0
madhephaestus/ESP32Servo@^1.1.0
ottowinter/ESPAsyncWebServer-esphome@^3.0.0
monitor_speed = 115200

View File

@ -46,6 +46,7 @@ void SesameController::loop(uint32_t millis) {
server.loop();
servo.loop(millis);
periodicallyReconnectWifiAndSocket(millis);
ensureWiFiConnection(millis);
ensureWebSocketConnection();
}
@ -214,3 +215,13 @@ bool SesameController::convertHexMessageToBinary(const char* str) {
};
return true;
}
void SesameController::periodicallyReconnectWifiAndSocket(uint32_t millis) {
static uint32_t nextWifiReconnect = wifiConfig.periodicReconnectInterval;
if (millis > nextWifiReconnect) {
nextWifiReconnect += wifiConfig.periodicReconnectInterval;
server.disconnect();
WiFi.disconnect();
}
}

View File

@ -49,6 +49,7 @@ void setup() {
.password = wifiPassword,
.networkName = networkName,
.reconnectInterval = wifiReconnectInterval,
.periodicReconnectInterval = wifiPeriodicReconnectInterval,
};
KeyConfiguration keyConfig {