diff --git a/src/helpers/mqtt/MQTTUplink.cpp b/src/helpers/mqtt/MQTTUplink.cpp index 9ef874cc..e0479427 100644 --- a/src/helpers/mqtt/MQTTUplink.cpp +++ b/src/helpers/mqtt/MQTTUplink.cpp @@ -1,6 +1,8 @@ #include "MQTTUplink.h" #include "MQTTCaCerts.h" -#include "WebPanelCert.h" +#if defined(WITH_WEB_PANEL) && WITH_WEB_PANEL + #include "WebPanelCert.h" +#endif #ifdef WITH_MQTT_UPLINK @@ -75,6 +77,7 @@ void freeScratchBuffer(void* ptr) { } } +#if WITH_WEB_PANEL const char kWebPanelHtml[] PROGMEM = R"HTML( @@ -418,6 +421,7 @@ const char kWebPanelHtml[] PROGMEM = R"HTML( )HTML"; +#endif const char* getWifiStateLabel(const MQTTPrefs& prefs, bool wifi_started) { if (prefs.wifi_ssid[0] == 0) { @@ -447,10 +451,16 @@ MQTTUplink::MQTTUplink(mesh::RTCClock& rtc, mesh::LocalIdentity& identity) : _fs(nullptr), _rtc(&rtc), _identity(&identity), _running(false), _wifi_started(false), _sntp_started(false), _have_time_sync(false), _wifi_sta_started_at(0), _last_wifi_attempt(0), _last_status_publish(0), _last_status{}, _node_name(nullptr), - _web_runner(nullptr), _web_server(nullptr) { + _web_runner(nullptr) +#if WITH_WEB_PANEL + , _web_server(nullptr) +#endif + { memset(_device_id, 0, sizeof(_device_id)); +#if WITH_WEB_PANEL memset(_web_token, 0, sizeof(_web_token)); _web_route_context.self = this; +#endif MQTTPrefsStore::setDefaults(_prefs); for (size_t i = 0; i < 3; ++i) { memset(&_brokers[i], 0, sizeof(_brokers[i])); @@ -837,6 +847,7 @@ void MQTTUplink::handleMqttEvent(void* handler_args, esp_event_base_t, int32_t e } } +#if WITH_WEB_PANEL esp_err_t MQTTUplink::handleWebIndex(httpd_req_t* req) { auto* ctx = static_cast(req->user_ctx); if (ctx == nullptr || ctx->self == nullptr) { @@ -846,7 +857,9 @@ esp_err_t MQTTUplink::handleWebIndex(httpd_req_t* req) { httpd_resp_set_hdr(req, "Cache-Control", "no-store"); return httpd_resp_send(req, kWebPanelHtml, HTTPD_RESP_USE_STRLEN); } +#endif +#if WITH_WEB_PANEL esp_err_t MQTTUplink::handleWebLogin(httpd_req_t* req) { auto* ctx = static_cast(req->user_ctx); if (ctx == nullptr || ctx->self == nullptr || ctx->self->_web_runner == nullptr) { @@ -876,7 +889,9 @@ esp_err_t MQTTUplink::handleWebLogin(httpd_req_t* req) { httpd_resp_set_hdr(req, "Cache-Control", "no-store"); return httpd_resp_sendstr(req, ctx->self->_web_token); } +#endif +#if WITH_WEB_PANEL esp_err_t MQTTUplink::handleWebCommand(httpd_req_t* req) { auto* ctx = static_cast(req->user_ctx); if (ctx == nullptr || ctx->self == nullptr || ctx->self->_web_runner == nullptr) { @@ -909,7 +924,9 @@ esp_err_t MQTTUplink::handleWebCommand(httpd_req_t* req) { freeScratchBuffer(reply); return rc; } +#endif +#if WITH_WEB_PANEL bool MQTTUplink::readRequestBody(httpd_req_t* req, char* buffer, size_t buffer_size) const { if (req == nullptr || buffer == nullptr || buffer_size == 0 || req->content_len <= 0 || req->content_len >= static_cast(buffer_size)) { @@ -998,6 +1015,10 @@ void MQTTUplink::ensureWebServer() { } startWebServer(); } +#else +void MQTTUplink::ensureWebServer() { } +void MQTTUplink::stopWebServer() { } +#endif void MQTTUplink::ensureWifi() { if (_prefs.wifi_ssid[0] == 0) { @@ -1178,7 +1199,9 @@ void MQTTUplink::begin(FILESYSTEM* fs) { _fs = fs; MQTTPrefsStore::load(_fs, _prefs); refreshIdentityStrings(); +#if WITH_WEB_PANEL refreshWebToken(); +#endif _running = true; _last_status_publish = millis(); MQTT_LOG("begin iata=%s enabled_mask=0x%02X wifi_ssid=%s", _prefs.iata, _prefs.enabled_mask, _prefs.wifi_ssid); @@ -1301,6 +1324,7 @@ void MQTTUplink::formatStatusReply(char* reply, size_t reply_size) const { } void MQTTUplink::formatWebStatusReply(char* reply, size_t reply_size) const { +#if WITH_WEB_PANEL if (_web_runner == nullptr) { snprintf(reply, reply_size, "> web:off"); return; @@ -1318,6 +1342,10 @@ void MQTTUplink::formatWebStatusReply(char* reply, size_t reply_size) const { snprintf(reply, reply_size, "> web:up url:https://%s/ auth:%s", WiFi.localIP().toString().c_str(), _web_token[0] ? "unlocked" : "locked"); +#else + (void)reply_size; + snprintf(reply, reply_size, "> web:unsupported"); +#endif } bool MQTTUplink::setEndpointEnabled(uint8_t bit, bool enabled) { @@ -1355,6 +1383,7 @@ bool MQTTUplink::setTxEnabled(bool enabled) { } bool MQTTUplink::setWebEnabled(bool enabled) { +#if WITH_WEB_PANEL _prefs.web_enabled = enabled ? 1 : 0; bool ok = savePrefs(); if (_prefs.web_enabled == 0) { @@ -1363,6 +1392,10 @@ bool MQTTUplink::setWebEnabled(bool enabled) { ensureWebServer(); } return ok; +#else + (void)enabled; + return false; +#endif } bool MQTTUplink::setIata(const char* iata) { diff --git a/src/helpers/mqtt/MQTTUplink.h b/src/helpers/mqtt/MQTTUplink.h index ee930f1f..2492d433 100644 --- a/src/helpers/mqtt/MQTTUplink.h +++ b/src/helpers/mqtt/MQTTUplink.h @@ -11,7 +11,12 @@ #if defined(ESP_PLATFORM) #include -#include +#if !defined(WITH_WEB_PANEL) + #define WITH_WEB_PANEL 1 +#endif +#if WITH_WEB_PANEL + #include +#endif #include #endif @@ -105,9 +110,11 @@ private: char offline_payload[256]; }; +#if WITH_WEB_PANEL struct WebRouteContext { MQTTUplink* self; }; +#endif #endif FILESYSTEM* _fs; @@ -133,20 +140,26 @@ private: static const BrokerSpec kBrokerSpecs[3]; BrokerState _brokers[3]; +#if WITH_WEB_PANEL httpd_handle_t _web_server; char _web_token[33]; WebRouteContext _web_route_context; +#endif static void handleMqttEvent(void* handler_args, esp_event_base_t base, int32_t event_id, void* event_data); +#if WITH_WEB_PANEL static esp_err_t handleWebIndex(httpd_req_t* req); static esp_err_t handleWebLogin(httpd_req_t* req); static esp_err_t handleWebCommand(httpd_req_t* req); +#endif void ensureWebServer(); void stopWebServer(); bool startWebServer(); +#if WITH_WEB_PANEL bool isWebAuthorized(httpd_req_t* req) const; bool readRequestBody(httpd_req_t* req, char* buffer, size_t buffer_size) const; void refreshWebToken(); +#endif void ensureWifi(); void updateTimeSync(); bool hasEnabledBroker() const; diff --git a/variants/eastmesh_mqtt/platformio.ini b/variants/eastmesh_mqtt/platformio.ini index 5e689723..ac425f1c 100644 --- a/variants/eastmesh_mqtt/platformio.ini +++ b/variants/eastmesh_mqtt/platformio.ini @@ -8,7 +8,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -33,7 +33,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -54,7 +54,7 @@ build_flags = -D PERSISTANT_GPS=1 -D ENV_SKIP_GPS_DETECT=1 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -79,7 +79,8 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + -D WITH_WEB_PANEL=0 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -100,7 +101,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -123,7 +124,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -146,7 +147,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -169,7 +170,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -194,7 +195,7 @@ build_flags = -D MAX_NEIGHBOURS=50 -D PERSISTANT_GPS=1 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -217,7 +218,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -243,7 +244,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -269,7 +270,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -287,7 +288,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -310,7 +311,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -334,7 +335,7 @@ build_flags = -D MESH_PACKET_LOGGING=1 -D SX126X_RX_BOOSTED_GAIN=1 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -357,7 +358,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -387,7 +388,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -413,7 +414,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -433,7 +434,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -458,7 +459,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -483,7 +484,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -508,7 +509,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -533,7 +534,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -557,7 +558,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -581,7 +582,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -607,7 +608,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -628,7 +629,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -649,7 +650,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -670,7 +671,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -689,7 +690,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -714,7 +715,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -740,7 +741,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=8 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -762,7 +763,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=8 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -781,7 +782,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -810,7 +811,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -835,7 +836,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -856,7 +857,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -881,7 +882,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -906,7 +907,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"' @@ -931,7 +932,7 @@ build_flags = -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 -D WITH_MQTT_UPLINK=1 - -D MQTT_DEBUG=1 + ; -D MQTT_DEBUG=1 -D WIFI_SSID='"myssid"' -D WIFI_PWD='"mypwd"' -D MQTT_DEFAULT_IATA='"MEL"'