Reset wifi and socket once per day
This commit is contained in:
parent
684df16eb1
commit
e99474c3cf
@ -20,6 +20,8 @@ struct WifiConfiguration {
|
|||||||
|
|
||||||
// The interval to reconnect to WiFi if the connection is broken
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
uint32_t reconnectInterval;
|
uint32_t reconnectInterval;
|
||||||
|
|
||||||
|
uint32_t periodicReconnectInterval;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct KeyConfiguration {
|
struct KeyConfiguration {
|
||||||
@ -76,4 +78,6 @@ private:
|
|||||||
void prepareResponseBuffer(SesameEvent event, uint8_t deviceId = 0);
|
void prepareResponseBuffer(SesameEvent event, uint8_t deviceId = 0);
|
||||||
void sendPreparedLocalResponse(AsyncWebServerRequest *request);
|
void sendPreparedLocalResponse(AsyncWebServerRequest *request);
|
||||||
void sendPreparedServerResponse();
|
void sendPreparedServerResponse();
|
||||||
|
|
||||||
|
void periodicallyReconnectWifiAndSocket(uint32_t millis);
|
||||||
};
|
};
|
@ -49,6 +49,9 @@ constexpr const char* networkName = "Sesame-Device";
|
|||||||
// The interval to reconnect to WiFi if the connection is broken
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
constexpr uint32_t wifiReconnectInterval = 10000;
|
constexpr uint32_t wifiReconnectInterval = 10000;
|
||||||
|
|
||||||
|
// The interval to reconnect to WiFi if the connection is broken
|
||||||
|
constexpr uint32_t wifiPeriodicReconnectInterval = 86400;
|
||||||
|
|
||||||
/* Local server */
|
/* Local server */
|
||||||
|
|
||||||
// The port for the local server to directly receive messages over WiFi
|
// The port for the local server to directly receive messages over WiFi
|
||||||
|
@ -46,6 +46,7 @@ void SesameController::loop(uint32_t millis) {
|
|||||||
server.loop();
|
server.loop();
|
||||||
servo.loop(millis);
|
servo.loop(millis);
|
||||||
|
|
||||||
|
periodicallyReconnectWifiAndSocket(millis);
|
||||||
ensureWiFiConnection(millis);
|
ensureWiFiConnection(millis);
|
||||||
ensureWebSocketConnection();
|
ensureWebSocketConnection();
|
||||||
}
|
}
|
||||||
@ -213,4 +214,14 @@ bool SesameController::convertHexMessageToBinary(const char* str) {
|
|||||||
receivedMessageBuffer[pos/2] = (uint8_t)(hashmap[idx0] << 4) | hashmap[idx1];
|
receivedMessageBuffer[pos/2] = (uint8_t)(hashmap[idx0] << 4) | hashmap[idx1];
|
||||||
};
|
};
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SesameController::periodicallyReconnectWifiAndSocket(uint32_t millis) {
|
||||||
|
static uint32_t nextWifiReconnect = wifiConfig.periodicReconnectInterval;
|
||||||
|
if (millis > nextWifiReconnect) {
|
||||||
|
nextWifiReconnect += wifiConfig.periodicReconnectInterval;
|
||||||
|
|
||||||
|
server.disconnect();
|
||||||
|
WiFi.disconnect();
|
||||||
|
}
|
||||||
}
|
}
|
@ -49,6 +49,7 @@ void setup() {
|
|||||||
.password = wifiPassword,
|
.password = wifiPassword,
|
||||||
.networkName = networkName,
|
.networkName = networkName,
|
||||||
.reconnectInterval = wifiReconnectInterval,
|
.reconnectInterval = wifiReconnectInterval,
|
||||||
|
.periodicReconnectInterval = wifiPeriodicReconnectInterval,
|
||||||
};
|
};
|
||||||
|
|
||||||
KeyConfiguration keyConfig {
|
KeyConfiguration keyConfig {
|
||||||
|
Loading…
Reference in New Issue
Block a user