From dce94b0f9834bc0b5b109fd7a240dc9d93359ba7 Mon Sep 17 00:00:00 2001 From: Yurii Date: Sun, 10 Dec 2023 01:26:14 +0300 Subject: [PATCH] added headers for setup page --- lib/WiFiManagerParameters/HeaderParameter.h | 27 ++++++++ src/WifiManagerTask.h | 74 +++++++++++++-------- 2 files changed, 73 insertions(+), 28 deletions(-) create mode 100644 lib/WiFiManagerParameters/HeaderParameter.h diff --git a/lib/WiFiManagerParameters/HeaderParameter.h b/lib/WiFiManagerParameters/HeaderParameter.h new file mode 100644 index 0000000..1722866 --- /dev/null +++ b/lib/WiFiManagerParameters/HeaderParameter.h @@ -0,0 +1,27 @@ +#pragma once +#include + + +class HeaderParameter : public WiFiManagerParameter { +public: + HeaderParameter(const char* title) { + WiFiManagerParameter(""); + byte size = strlen(title) + strlen(this->tpl) + 1; + this->buffer = new char[size]; + this->title = title; + } + + ~HeaderParameter() { + delete[] this->buffer; + } + + const char* getCustomHTML() const override { + sprintf(this->buffer, this->tpl, title); + return this->buffer; + } + +protected: + const char* title; + char* buffer; + const char* tpl = "
%s
"; +}; \ No newline at end of file diff --git a/src/WifiManagerTask.h b/src/WifiManagerTask.h index 1564b47..2cbe003 100644 --- a/src/WifiManagerTask.h +++ b/src/WifiManagerTask.h @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include WiFiManager wm; @@ -35,11 +35,16 @@ UnsignedShortParameter* wmExtPumpPostCirculationTime; UnsignedIntParameter* wmExtPumpAntiStuckInterval; UnsignedShortParameter* wmExtPumpAntiStuckTime; -SeparatorParameter* wmSep; +HeaderParameter* wmMqttHeader; +HeaderParameter* wmOtHeader; +HeaderParameter* wmOtFlagsHeader; +HeaderParameter* wmSensorsHeader; +HeaderParameter* wmExtPumpHeader; + extern EEManager eeSettings; #if USE_TELNET - extern BufferedTelnetStream TelnetStream; + extern ESPTelnetStream TelnetStream; #endif const char S_WIFI[] PROGMEM = "WIFI"; @@ -79,6 +84,12 @@ protected: wm.setDebugOutput(settings.debug, (wm_debuglevel_t) WM_DEBUG_MODE); wm.setTitle(PROJECT_NAME); + wm.setCustomHeadElement(PSTR( + "" + )); wm.setCustomMenuHTML(PSTR( "" "
" @@ -90,62 +101,68 @@ protected: std::vector menu = {"custom", "wifi", "param", "sep", "info", "update", "restart"}; wm.setMenu(menu); - wmSep = new SeparatorParameter(); - wmHostname = new WiFiManagerParameter("hostname", "Hostname", settings.hostname, 80); wm.addParameter(wmHostname); - wmMqttServer = new WiFiManagerParameter("mqtt_server", "MQTT server", settings.mqtt.server, 80); + wmMqttHeader = new HeaderParameter("MQTT"); + wm.addParameter(wmMqttHeader); + + wmMqttServer = new WiFiManagerParameter("mqtt_server", "Server", settings.mqtt.server, 80); wm.addParameter(wmMqttServer); - wmMqttPort = new UnsignedIntParameter("mqtt_port", "MQTT port", settings.mqtt.port, 6); + wmMqttPort = new UnsignedIntParameter("mqtt_port", "Port", settings.mqtt.port, 6); wm.addParameter(wmMqttPort); - wmMqttUser = new WiFiManagerParameter("mqtt_user", "MQTT username", settings.mqtt.user, 32); + wmMqttUser = new WiFiManagerParameter("mqtt_user", "Username", settings.mqtt.user, 32); wm.addParameter(wmMqttUser); - wmMqttPassword = new WiFiManagerParameter("mqtt_password", "MQTT password", settings.mqtt.password, 32, "type=\"password\""); + wmMqttPassword = new WiFiManagerParameter("mqtt_password", "Password", settings.mqtt.password, 32, "type=\"password\""); wm.addParameter(wmMqttPassword); - wmMqttPrefix = new WiFiManagerParameter("mqtt_prefix", "MQTT prefix", settings.mqtt.prefix, 32); + wmMqttPrefix = new WiFiManagerParameter("mqtt_prefix", "Prefix", settings.mqtt.prefix, 32); wm.addParameter(wmMqttPrefix); - wmMqttPublishInterval = new UnsignedIntParameter("mqtt_publish_interval", "MQTT publish interval", settings.mqtt.interval, 5); + wmMqttPublishInterval = new UnsignedIntParameter("mqtt_publish_interval", "Publish interval", settings.mqtt.interval, 5); wm.addParameter(wmMqttPublishInterval); - wm.addParameter(wmSep); + wmOtHeader = new HeaderParameter("OpenTherm"); + wm.addParameter(wmOtHeader); - wmOtInPin = new UnsignedIntParameter("ot_in_pin", "Opentherm GPIO IN", settings.opentherm.inPin, 2); + wmOtInPin = new UnsignedIntParameter("ot_in_pin", "GPIO IN", settings.opentherm.inPin, 2); wm.addParameter(wmOtInPin); - wmOtOutPin = new UnsignedIntParameter("ot_out_pin", "Opentherm GPIO OUT", settings.opentherm.outPin, 2); + wmOtOutPin = new UnsignedIntParameter("ot_out_pin", "GPIO OUT", settings.opentherm.outPin, 2); wm.addParameter(wmOtOutPin); - wmOtMemberIdCode = new UnsignedIntParameter("ot_member_id_code", "Opentherm Master Member ID", settings.opentherm.memberIdCode, 5); + wmOtMemberIdCode = new UnsignedIntParameter("ot_member_id_code", "Master Member ID", settings.opentherm.memberIdCode, 5); wm.addParameter(wmOtMemberIdCode); - wmOtDhwPresent = new CheckboxParameter("ot_dhw_present", "Opentherm DHW present", settings.opentherm.dhwPresent); + wmOtFlagsHeader = new HeaderParameter("OpenTherm flags"); + wm.addParameter(wmOtFlagsHeader); + + wmOtDhwPresent = new CheckboxParameter("ot_dhw_present", "DHW present", settings.opentherm.dhwPresent); wm.addParameter(wmOtDhwPresent); - wmOtSummerWinterMode = new CheckboxParameter("ot_summer_winter_mode", "Opentherm summer/winter mode", settings.opentherm.summerWinterMode); + wmOtSummerWinterMode = new CheckboxParameter("ot_summer_winter_mode", "Summer/winter mode", settings.opentherm.summerWinterMode); wm.addParameter(wmOtSummerWinterMode); - wmOtHeatingCh2Enabled = new CheckboxParameter("ot_heating_ch2_enabled", "Opentherm CH2 enabled", settings.opentherm.heatingCh2Enabled); + wmOtHeatingCh2Enabled = new CheckboxParameter("ot_heating_ch2_enabled", "CH2 enabled", settings.opentherm.heatingCh2Enabled); wm.addParameter(wmOtHeatingCh2Enabled); - wmOtHeatingCh1ToCh2 = new CheckboxParameter("ot_heating_ch1_to_ch2", "Opentherm heating CH1 to CH2", settings.opentherm.heatingCh1ToCh2); + wmOtHeatingCh1ToCh2 = new CheckboxParameter("ot_heating_ch1_to_ch2", "Heating CH1 to CH2", settings.opentherm.heatingCh1ToCh2); wm.addParameter(wmOtHeatingCh1ToCh2); - wmOtDhwToCh2 = new CheckboxParameter("ot_dhw_to_ch2", "Opentherm DHW to CH2", settings.opentherm.dhwToCh2); + wmOtDhwToCh2 = new CheckboxParameter("ot_dhw_to_ch2", "DHW to CH2", settings.opentherm.dhwToCh2); wm.addParameter(wmOtDhwToCh2); - wmOtDhwBlocking = new CheckboxParameter("ot_dhw_blocking", "Opentherm DHW blocking", settings.opentherm.dhwBlocking); + wmOtDhwBlocking = new CheckboxParameter("ot_dhw_blocking", "DHW blocking", settings.opentherm.dhwBlocking); wm.addParameter(wmOtDhwBlocking); wmOtModSyncWithHeating = new CheckboxParameter("ot_mod_sync_with_heating", "Modulation sync with heating", settings.opentherm.modulationSyncWithHeating); wm.addParameter(wmOtModSyncWithHeating); - wm.addParameter(wmSep); + wmSensorsHeader = new HeaderParameter("Sensors"); + wm.addParameter(wmSensorsHeader); wmOutdoorSensorPin = new UnsignedIntParameter("outdoor_sensor_pin", "Outdoor sensor GPIO", settings.sensors.outdoor.pin, 2); wm.addParameter(wmOutdoorSensorPin); @@ -153,21 +170,22 @@ protected: wmIndoorSensorPin = new UnsignedIntParameter("indoor_sensor_pin", "Indoor sensor GPIO", settings.sensors.indoor.pin, 2); wm.addParameter(wmIndoorSensorPin); - wm.addParameter(wmSep); + wmExtPumpHeader = new HeaderParameter("External pump"); + wm.addParameter(wmExtPumpHeader); - wmExtPumpUse = new CheckboxParameter("ext_pump_use", "Use external pump", settings.externalPump.use); + wmExtPumpUse = new CheckboxParameter("ext_pump_use", "Use external pump
", settings.externalPump.use); wm.addParameter(wmExtPumpUse); - wmExtPumpPin = new UnsignedIntParameter("ext_pump_pin", "External pump GPIO", settings.externalPump.pin, 2); + wmExtPumpPin = new UnsignedIntParameter("ext_pump_pin", "Relay GPIO", settings.externalPump.pin, 2); wm.addParameter(wmExtPumpPin); - wmExtPumpPostCirculationTime = new UnsignedShortParameter("ext_pump_ps_time", "External pump post circulation time", settings.externalPump.postCirculationTime, 5); + wmExtPumpPostCirculationTime = new UnsignedShortParameter("ext_pump_ps_time", "Post circulation time", settings.externalPump.postCirculationTime, 5); wm.addParameter(wmExtPumpPostCirculationTime); - wmExtPumpAntiStuckInterval = new UnsignedIntParameter("ext_pump_as_interval", "External pump anti stuck interval", settings.externalPump.antiStuckInterval, 7); + wmExtPumpAntiStuckInterval = new UnsignedIntParameter("ext_pump_as_interval", "Anti stuck interval", settings.externalPump.antiStuckInterval, 7); wm.addParameter(wmExtPumpAntiStuckInterval); - wmExtPumpAntiStuckTime = new UnsignedShortParameter("ext_pump_as_time", "External pump anti stuck time", settings.externalPump.antiStuckTime, 5); + wmExtPumpAntiStuckTime = new UnsignedShortParameter("ext_pump_as_time", "Anti stuck time", settings.externalPump.antiStuckTime, 5); wm.addParameter(wmExtPumpAntiStuckTime); //wm.setCleanConnect(true);