Skip to content

Commit df69110

Browse files
Added Wifi Auto Fix
1 parent 2a84890 commit df69110

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

src/communication/WiFiManager.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ void checkWiFiStatus() {
146146
display->drawString(0, 21, String(ssidChars));
147147
}
148148

149+
Serial.println("softAPdisconnect()");
149150
WiFi.softAPdisconnect (true);
150151

151152
Serial.println("Connected, IP address: ");
@@ -401,6 +402,8 @@ void startDNS() {
401402
}
402403

403404
void shutDownWiFi() {
405+
Serial.println("shutDownWiFi()");
406+
404407
yield();
405408
delay(1000);
406409

src/controller/Bridge.cpp

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
SOURCE: https://github.com/sensate-io/firmware-esp8266.git
1212
1313
@section HISTORY
14+
v36 - Added WiFi-Fix Auto-reboot
1415
v35 - Added Support for VEML6075 and SI1145 UVI Sensors
1516
v34 - Added Generic Analog Sensor Support
1617
v33 - Added Digital Sensor Switch Support
@@ -21,6 +22,10 @@
2122

2223
#include "Bridge.h"
2324

25+
#define ssl_fingerprint_prod "E9 A9 3D E2 AD AB C2 96 FA 3C A7 A8 57 DE 8E A0 95 59 9B 7A" //hub.sensate.cloud
26+
#define ssl_fingerprint_test "E3 19 E5 F3 DA 1A BD 01 EB BC 08 E6 49 18 7D 54 66 BD 2B 12" //test.sensate.cloud
27+
#define maxSensorCount 25
28+
2429
extern State state;
2530
extern bool isResetting;
2631
extern StaticJsonBuffer<10000> jsonBuffer;
@@ -57,9 +62,7 @@ unsigned long nextSensorDue = -1;
5762

5863
char pwdHash[41] = "";
5964

60-
#define ssl_fingerprint_prod "E9 A9 3D E2 AD AB C2 96 FA 3C A7 A8 57 DE 8E A0 95 59 9B 7A" //hub.sensate.cloud
61-
#define ssl_fingerprint_test "E3 19 E5 F3 DA 1A BD 01 EB BC 08 E6 49 18 7D 54 66 BD 2B 12" //test.sensate.cloud
62-
#define maxSensorCount 25
65+
6366

6467
String bridgeURL;
6568

@@ -71,6 +74,7 @@ bool serverError = false;
7174

7275
int registerRetry = 0;
7376
int configRetry = 0;
77+
int postSensorDataRetry = 0;
7478
int sensorCycle = 1;
7579

7680
bool registerBridge()
@@ -85,6 +89,9 @@ bool registerBridge()
8589
String uuid = getUUID();
8690
String networkIP = WiFi.localIP().toString();
8791

92+
Serial.print("HEAP 1: ");
93+
Serial.println(ESP.getFreeHeap());
94+
8895
if (uuid.length() > 0 && networkIP.length() > 0)
8996
{
9097
Serial.println("Registering Bridge " + uuid + " to Bridge located at " + bridgeURL);
@@ -104,6 +111,9 @@ bool registerBridge()
104111
httpClient.addHeader("Content-Type", "application/json");
105112
httpClient.setTimeout(5000);
106113

114+
Serial.print("HEAP 2: ");
115+
Serial.println(ESP.getFreeHeap());
116+
107117
String pwdHashString = "";
108118

109119
if(pwdHash[0]!=0xff)
@@ -115,6 +125,9 @@ bool registerBridge()
115125

116126
int httpCode = httpClient.POST(message);
117127

128+
Serial.print("HEAP 3: ");
129+
Serial.println(ESP.getFreeHeap());
130+
118131
if (httpCode == HTTP_CODE_OK)
119132
{
120133
String payload = httpClient.getString();
@@ -135,7 +148,9 @@ bool registerBridge()
135148
else
136149
{
137150
registerRetry++;
151+
138152
Serial.println("Register failed..? - HTTP:" + String(httpCode));
153+
Serial.println("Retry #"+String(registerRetry)+", restart at 25");
139154
if(registerRetry>=10)
140155
{
141156
if(powerMode==2)
@@ -151,6 +166,7 @@ bool registerBridge()
151166
restart();
152167
return false;
153168
}
169+
154170
}
155171
}
156172

@@ -405,11 +421,20 @@ bool getBridgeConfig() {
405421
httpClient.end();
406422

407423
configRetry++;
424+
Serial.println("Retry #"+String(configRetry)+", restart at 25");
425+
408426
if(configRetry>=10 && powerMode==2)
409427
{
410428
Serial.println("Fetching configuration not possible, going back to Deep Sleep for 5 minutes.");
411429
trySleep(300000000);
412430
}
431+
else if(configRetry>=25)
432+
{
433+
configRetry=0;
434+
restart();
435+
}
436+
437+
413438
return false;
414439

415440
}
@@ -1125,6 +1150,16 @@ boolean postSensorData(Data* data[], int dataCount)
11251150
Serial.println(WiFi.status());
11261151

11271152
httpClient.end();
1153+
1154+
postSensorDataRetry++;
1155+
1156+
if(postSensorDataRetry>=25)
1157+
{
1158+
postSensorDataRetry=0;
1159+
restart();
1160+
}
1161+
1162+
Serial.println("Retry #"+String(postSensorDataRetry)+", restart at 25");
11281163
}
11291164
return false;
11301165
}

0 commit comments

Comments
 (0)