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
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+
2429extern State state;
2530extern bool isResetting;
2631extern StaticJsonBuffer<10000 > jsonBuffer;
@@ -57,9 +62,7 @@ unsigned long nextSensorDue = -1;
5762
5863char 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
6467String bridgeURL;
6568
@@ -71,6 +74,7 @@ bool serverError = false;
7174
7275int registerRetry = 0 ;
7376int configRetry = 0 ;
77+ int postSensorDataRetry = 0 ;
7478int sensorCycle = 1 ;
7579
7680bool 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