2626#include " ping/ping_sock.h"
2727#include < Preferences.h>
2828#include < regex>
29+ #if !CONFIG_IDF_TARGET_ESP32C3
2930#include < SD_MMC.h>
31+ #endif
3032#include < LittleFS.h>
3133#include < sstream>
3234#include < Update.h>
3335#include < WiFi.h>
3436#include < HTTPClient.h>
37+ // //#include <NetworkClient.h> // v3.x only
38+ // //#include <NetworkClientSecure.h> // v3.x only
3539#include < WiFiClient.h>
3640#include < WiFiClientSecure.h>
3741#include < esp_http_server.h>
5761#define CSS_EXT " .css"
5862#define ICO_EXT " .ico"
5963#define SVG_EXT " .svg"
64+ #define JPG_EXT " .jpg"
6065#define CONFIG_FILE_PATH DATA_DIR " /configs" TEXT_EXT
6166#define LOG_FILE_PATH DATA_DIR " /log" TEXT_EXT
6267#define OTA_FILE_PATH DATA_DIR " /OTA" HTML_EXT
8085#define NULL_TEMP -127
8186#define OneMHz 1000000
8287#define USECS 1000000
88+ #define MAGIC_NUM 987654321
89+ #define MAX_FAIL 5
8390
8491// global mandatory app specific functions, in appSpecific.cpp
8592bool appDataFiles ();
@@ -89,7 +96,7 @@ void appSpecificWsBinHandler(uint8_t* wsMsg, size_t wsMsgLen);
8996void appSpecificWsHandler (const char * wsMsg);
9097void appSpecificTelegramTask (void * p);
9198void buildAppJsonString (bool filter);
92- bool updateAppStatus (const char * variable, const char * value);
99+ bool updateAppStatus (const char * variable, const char * value, bool fromUser = true );
93100
94101// global general utility functions in utils.cpp / utilsFS.cpp / peripherals.cpp
95102void buildJsonString (uint8_t filter);
@@ -151,7 +158,8 @@ float readTemperature(bool isCelsius, bool onlyDS18 = false);
151158float readVoltage ();
152159void remote_log_init ();
153160void remoteServerClose (WiFiClientSecure& sclient);
154- bool remoteServerConnect (WiFiClientSecure& sclient, const char * serverName, uint16_t serverPort, const char * serverCert);
161+ bool remoteServerConnect (WiFiClientSecure& sclient, const char * serverName, uint16_t serverPort, const char * serverCert, uint8_t connIdx);
162+ void remoteServerReset ();
155163void removeChar (char * s, char c);
156164void replaceChar (char * s, char c, char r);
157165void reset_log ();
@@ -173,7 +181,7 @@ bool startWifi(bool firstcall = true);
173181void stopPing ();
174182void syncToBrowser (uint32_t browserUTC);
175183bool updateConfigVect (const char * variable, const char * value);
176- void updateStatus (const char * variable, const char * _value);
184+ void updateStatus (const char * variable, const char * _value, bool fromUser = true );
177185esp_err_t uploadHandler (httpd_req_t *req);
178186void urlDecode (char * inVal);
179187bool urlEncode (const char * inVal, char * encoded, size_t maxSize);
@@ -184,6 +192,7 @@ void wsAsyncSend(const char* wsData);
184192void startMqttClient ();
185193void stopMqttClient ();
186194void mqttPublish (const char * payload);
195+ void mqttPublishPath (const char * suffix, const char * payload);
187196// telegram.cpp
188197bool getTgramUpdate (char * response);
189198bool sendTgramMessage (const char * info, const char * item, const char * parseMode);
@@ -258,13 +267,6 @@ extern char mqtt_user[];
258267extern char mqtt_user_Pass[];
259268extern char mqtt_topic_prefix[];
260269
261- // External Heartbeat
262- extern bool external_heartbeat_active;
263- extern char external_heartbeat_domain[]; // External Heartbeat domain/IP
264- extern char external_heartbeat_uri[]; // External Heartbeat uri (i.e. /myesp32-cam-hub/index.php)
265- extern char external_heartbeat_port[]; // External Heartbeat server port to connect.
266- extern char external_heartbeat_token[]; // External Heartbeat server auth token.
267-
268270// control sending alerts
269271extern size_t alertBufferSize;
270272extern byte* alertBuffer;
@@ -347,6 +349,8 @@ extern bool formatIfMountFailed ; // Auto format the file system if mount failed
347349 (method == HTTP_UNLINK) ? " UNLINK" : \
348350 " UNKNOWN"
349351
352+ enum RemoteFail {SETASSIST, GETEXTIP, TGRAMCONN, FSFTP, EMAILCONN, EXTERNALHB, BLOCKLIST, REMFAILCNT}; // REMFAILCNT always last
353+
350354/* ********************** Log formatting ************************/
351355
352356// #define USE_LOG_COLORS // uncomment to colorise log messages (eg if using idf.py, but not arduino)
0 commit comments