diff --git a/sonoff/xdrv_01_webserver.ino b/sonoff/xdrv_01_webserver.ino
index 2dbeeaa0d..7c69405ad 100644
--- a/sonoff/xdrv_01_webserver.ino
+++ b/sonoff/xdrv_01_webserver.ino
@@ -241,14 +241,14 @@ const char HTTP_HEAD_STYLE1[] PROGMEM =
"div,fieldset,input,select{padding:5px;font-size:1em;}"
"fieldset{background-color:#f2f2f2;}" // Also update HTTP_TIMER_STYLE
"p{margin:0.5em 0;}"
- "input{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;}"
+ "input{width:100%%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;}"
"input[type=checkbox],input[type=radio]{width:1em;margin-right:6px;vertical-align:-1px;}"
- "select{width:100%;}"
- "textarea{resize:none;width:98%;height:318px;padding:5px;overflow:auto;}"
+ "select{width:100%%;}"
+ "textarea{resize:none;width:98%%;height:318px;padding:5px;overflow:auto;}"
"body{text-align:center;font-family:verdana;}"
"td{padding:0px;}";
const char HTTP_HEAD_STYLE2[] PROGMEM =
- "button{border:0;border-radius:0.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%;-webkit-transition-duration:0.4s;transition-duration:0.4s;cursor:pointer;}"
+ "button{border:0;border-radius:0.3rem;background-color:#1fa3ec;color:#fff;line-height:2.4rem;font-size:1.2rem;width:100%%;-webkit-transition-duration:0.4s;transition-duration:0.4s;cursor:pointer;}"
"button:hover{background-color:#0e70a4;}"
".bred{background-color:#d43535;}"
".bred:hover{background-color:#931f1f;}"
@@ -403,7 +403,7 @@ const char HTTP_FORM_CMND[] PROGMEM =
"";
const char HTTP_TABLE100[] PROGMEM =
- "
// }2 = |
- WSContentSend(FPSTR(HTTP_SCRIPT_INFO_BEGIN));
+ WSContentSend_P(HTTP_SCRIPT_INFO_BEGIN);
WSContentSend_P(PSTR(""));
WSContentSend_P(PSTR(D_PROGRAM_VERSION "}2%s%s"), my_version, my_image);
WSContentSend_P(PSTR("}1" D_BUILD_DATE_AND_TIME "}2%s"), GetBuildDateAndTime().c_str());
@@ -1659,13 +1662,13 @@ void HandleInformation(void)
WSContentSend_P(PSTR("}1" D_FREE_MEMORY "}2%dkB"), freeMem / 1024);
WSContentSend_P(PSTR(" |
---|
"));
- WSContentSend(FPSTR(HTTP_SCRIPT_INFO_END));
+ WSContentSend_P(HTTP_SCRIPT_INFO_END);
WSContentSendStyle();
- // WSContentSend(F(""));
+ WSContentSend_P(HTTP_BTN_MAIN);
WSContentEnd();
}
#endif // Not FIRMWARE_MINIMAL
@@ -1678,11 +1681,11 @@ void HandleUpgradeFirmware(void)
AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, S_FIRMWARE_UPGRADE);
- WSContentStart(FPSTR(S_FIRMWARE_UPGRADE));
+ WSContentStart_P(S_FIRMWARE_UPGRADE);
WSContentSendStyle();
WSContentSend_P(HTTP_FORM_UPG, Settings.ota_url);
WSContentSend_P(HTTP_FORM_RST_UPG, D_UPGRADE);
- WSContentSend(FPSTR(HTTP_BTN_MAIN));
+ WSContentSend_P(HTTP_BTN_MAIN);
WSContentEnd();
upload_error = 0;
@@ -1705,12 +1708,12 @@ void HandleUpgradeFirmwareStart(void)
ExecuteWebCommand(command, SRC_WEBGUI);
}
- WSContentStart(FPSTR(S_INFORMATION));
- WSContentSend(FPSTR(HTTP_SCRIPT_RELOAD_OTA));
+ WSContentStart_P(S_INFORMATION);
+ WSContentSend_P(HTTP_SCRIPT_RELOAD_OTA);
WSContentSendStyle();
- WSContentSend(F("" D_UPGRADE_STARTED " ... "));
- WSContentSend(FPSTR(HTTP_MSG_RSTRT));
- WSContentSend(FPSTR(HTTP_BTN_MAIN));
+ WSContentSend_P(PSTR("" D_UPGRADE_STARTED " ... "));
+ WSContentSend_P(HTTP_MSG_RSTRT);
+ WSContentSend_P(HTTP_BTN_MAIN);
WSContentEnd();
snprintf_P(command, sizeof(command), PSTR(D_CMND_UPGRADE " 1"));
@@ -1729,14 +1732,14 @@ void HandleUploadDone(void)
restart_flag = 0;
MqttRetryCounter(0);
- WSContentStart(FPSTR(S_INFORMATION));
+ WSContentStart_P(S_INFORMATION);
if (!upload_error) {
- WSContentSend(FPSTR(HTTP_SCRIPT_RELOAD_OTA)); // Refesh main web ui after OTA upgrade
+ WSContentSend_P(HTTP_SCRIPT_RELOAD_OTA); // Refesh main web ui after OTA upgrade
}
WSContentSendStyle();
- WSContentSend(F("" D_UPLOAD " " D_UPLOAD " " D_FAILED "
"));
+ WSContentSend_P(PSTR("red'>" D_FAILED "
"));
#ifdef USE_RF_FLASH
if (upload_error < 14) {
#else
@@ -1746,18 +1749,18 @@ void HandleUploadDone(void)
} else {
snprintf_P(error, sizeof(error), PSTR(D_UPLOAD_ERROR_CODE " %d"), upload_error);
}
- WSContentSend(error);
+ WSContentSend_P(error);
AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_UPLOAD ": %s"), error);
stop_flash_rotate = Settings.flag.stop_flash_rotate;
} else {
- WSContentSend(F("green'>" D_SUCCESSFUL " "));
- WSContentSend(FPSTR(HTTP_MSG_RSTRT));
+ WSContentSend_P(PSTR("green'>" D_SUCCESSFUL " "));
+ WSContentSend_P(HTTP_MSG_RSTRT);
ShowWebSource(SRC_WEBGUI);
restart_flag = 2; // Always restart to re-enable disabled features during update
}
SettingsBufferFree();
- WSContentSend(F(" "));
- WSContentSend(FPSTR(HTTP_BTN_MAIN));
+ WSContentSend_P(PSTR(" "));
+ WSContentSend_P(HTTP_BTN_MAIN);
WSContentEnd();
}
@@ -2032,11 +2035,11 @@ void HandleConsole(void)
AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, S_CONSOLE);
- WSContentStart(FPSTR(S_CONSOLE));
+ WSContentStart_P(S_CONSOLE);
WSContentSend_P(HTTP_SCRIPT_CONSOL, Settings.web_refresh);
WSContentSendStyle();
- WSContentSend(FPSTR(HTTP_FORM_CMND));
- WSContentSend(FPSTR(HTTP_BTN_MAIN));
+ WSContentSend_P(HTTP_FORM_CMND);
+ WSContentSend_P(HTTP_BTN_MAIN);
WSContentEnd();
}
diff --git a/sonoff/xdrv_02_mqtt.ino b/sonoff/xdrv_02_mqtt.ino
index 450ff252b..b79f6a866 100644
--- a/sonoff/xdrv_02_mqtt.ino
+++ b/sonoff/xdrv_02_mqtt.ino
@@ -917,7 +917,7 @@ void HandleMqttConfiguration(void)
char str[sizeof(Settings.mqtt_client)];
- WSContentStart(FPSTR(S_CONFIGURE_MQTT));
+ WSContentStart_P(S_CONFIGURE_MQTT);
WSContentSendStyle();
WSContentSend_P(HTTP_FORM_MQTT1,
Settings.mqtt_host,
@@ -930,8 +930,8 @@ void HandleMqttConfiguration(void)
Settings.mqtt_topic,
MQTT_FULLTOPIC, MQTT_FULLTOPIC,
Settings.mqtt_fulltopic);
- WSContentSend(FPSTR(HTTP_FORM_END));
- WSContentSend(FPSTR(HTTP_BTN_CONF));
+ WSContentSend_P(HTTP_FORM_END);
+ WSContentSend_P(HTTP_BTN_CONF);
WSContentEnd();
}
@@ -980,7 +980,7 @@ bool Xdrv02(uint8_t function)
switch (function) {
#ifdef USE_WEBSERVER
case FUNC_WEB_ADD_BUTTON:
- WSContentSend(FPSTR(HTTP_BTN_MENU_MQTT));
+ WSContentSend_P(HTTP_BTN_MENU_MQTT);
break;
case FUNC_WEB_ADD_HANDLER:
WebServer->on("/" WEB_HANDLE_MQTT, HandleMqttConfiguration);
diff --git a/sonoff/xdrv_07_domoticz.ino b/sonoff/xdrv_07_domoticz.ino
index 4c660998e..490c2e00d 100644
--- a/sonoff/xdrv_07_domoticz.ino
+++ b/sonoff/xdrv_07_domoticz.ino
@@ -460,9 +460,9 @@ void HandleDomoticzConfiguration(void)
char stemp[32];
- WSContentStart(FPSTR(S_CONFIGURE_DOMOTICZ));
+ WSContentStart_P(S_CONFIGURE_DOMOTICZ);
WSContentSendStyle();
- WSContentSend(FPSTR(HTTP_FORM_DOMOTICZ));
+ WSContentSend_P(HTTP_FORM_DOMOTICZ);
for (int i = 0; i < MAX_DOMOTICZ_IDX; i++) {
if (i < devices_present) {
WSContentSend_P(HTTP_FORM_DOMOTICZ_RELAY,
@@ -480,9 +480,9 @@ void HandleDomoticzConfiguration(void)
i +1, GetTextIndexed(stemp, sizeof(stemp), i, kDomoticzSensors), i, i, Settings.domoticz_sensor_idx[i]);
}
WSContentSend_P(HTTP_FORM_DOMOTICZ_TIMER, Settings.domoticz_update_timer);
- WSContentSend(F(""));
- WSContentSend(FPSTR(HTTP_FORM_END));
- WSContentSend(FPSTR(HTTP_BTN_CONF));
+ WSContentSend_P(PSTR(""));
+ WSContentSend_P(HTTP_FORM_END);
+ WSContentSend_P(HTTP_BTN_CONF);
WSContentEnd();
}
@@ -533,7 +533,7 @@ bool Xdrv07(uint8_t function)
switch (function) {
#ifdef USE_WEBSERVER
case FUNC_WEB_ADD_BUTTON:
- WSContentSend(FPSTR(HTTP_BTN_MENU_DOMOTICZ));
+ WSContentSend_P(HTTP_BTN_MENU_DOMOTICZ);
break;
case FUNC_WEB_ADD_HANDLER:
WebServer->on("/" WEB_HANDLE_DOMOTICZ, HandleDomoticzConfiguration);
diff --git a/sonoff/xdrv_09_timers.ino b/sonoff/xdrv_09_timers.ino
index e80f5bc01..e8de5effa 100644
--- a/sonoff/xdrv_09_timers.ino
+++ b/sonoff/xdrv_09_timers.ino
@@ -538,7 +538,7 @@ const char HTTP_TIMER_SCRIPT2[] PROGMEM =
"if(m==0){" // Time is set
"so(0);" // Hide offset span and allow Hour 00..23
"q=Math.floor(p/60);if(q<10){q='0'+q;}qs('#ho').value=q;" // Set hours
- "q=p%60;if(q<10){q='0'+q;}qs('#mi').value=q;" // Set minutes
+ "q=p%%60;if(q<10){q='0'+q;}qs('#mi').value=q;" // Set minutes
"}"
"if((m==1)||(m==2)){" // Sunrise or sunset is set
"so(1);" // Show offset span and allow Hour 00..11
@@ -546,7 +546,7 @@ const char HTTP_TIMER_SCRIPT2[] PROGMEM =
"if(q>=12){q-=12;qs('#dr').selectedIndex=1;}" // Negative offset
"else{qs('#dr').selectedIndex=0;}"
"if(q<10){q='0'+q;}qs('#ho').value=q;" // Set offset hours
- "q=p%60;if(q<10){q='0'+q;}qs('#mi').value=q;" // Set offset minutes
+ "q=p%%60;if(q<10){q='0'+q;}qs('#mi').value=q;" // Set offset minutes
"}"
"}"
"function so(b){" // Hide or show offset items
@@ -648,7 +648,7 @@ const char HTTP_TIMER_SCRIPT6[] PROGMEM =
"}"
"window.onload=it;";
const char HTTP_TIMER_STYLE[] PROGMEM =
- ".tl{float:left;border-radius:0;border:1px solid #f2f2f2;padding:1px;width:6.25%;}"; // Border color needs to be the same as Fieldset background color from HTTP_HEAD_STYLE1 (transparent won't work)
+ ".tl{float:left;border-radius:0;border:1px solid #f2f2f2;padding:1px;width:6.25%%;}"; // Border color needs to be the same as Fieldset background color from HTTP_HEAD_STYLE1 (transparent won't work)
const char HTTP_FORM_TIMER1[] PROGMEM =
""
""
@@ -698,29 +698,29 @@ void HandleTimerConfiguration(void)
return;
}
- WSContentStart(FPSTR(S_CONFIGURE_TIMER));
- WSContentSend(FPSTR(HTTP_TIMER_SCRIPT1));
+ WSContentStart_P(S_CONFIGURE_TIMER);
+ WSContentSend_P(HTTP_TIMER_SCRIPT1);
#ifdef USE_SUNRISE
- WSContentSend(FPSTR(HTTP_TIMER_SCRIPT2));
+ WSContentSend_P(HTTP_TIMER_SCRIPT2);
#endif // USE_SUNRISE
WSContentSend_P(HTTP_TIMER_SCRIPT3, devices_present);
WSContentSend_P(HTTP_TIMER_SCRIPT4, devices_present);
WSContentSend_P(HTTP_TIMER_SCRIPT5, devices_present);
WSContentSend_P(HTTP_TIMER_SCRIPT6, devices_present);
- WSContentSendStyle(FPSTR(HTTP_TIMER_STYLE));
+ WSContentSendStyle_P(HTTP_TIMER_STYLE);
WSContentSend_P(HTTP_FORM_TIMER1, (Settings.flag3.timers_enable) ? " checked" : "");
for (uint8_t i = 0; i < MAX_TIMERS; i++) {
WSContentSend_P(PSTR("%s%u"), (i > 0) ? "," : "", Settings.timer[i].data);
}
- WSContentSend(FPSTR(HTTP_FORM_TIMER2));
+ WSContentSend_P(HTTP_FORM_TIMER2);
#ifdef USE_SUNRISE
WSContentSend_P(HTTP_FORM_TIMER3, 100 + (strlen(D_SUNSET) *12), GetSun(0).c_str(), GetSun(1).c_str());
#else
- WSContentSend(FPSTR(HTTP_FORM_TIMER3));
+ WSContentSend_P(HTTP_FORM_TIMER3);
#endif // USE_SUNRISE
- WSContentSend(FPSTR(HTTP_FORM_TIMER4));
- WSContentSend(FPSTR(HTTP_FORM_END));
- WSContentSend(FPSTR(HTTP_BTN_CONF));
+ WSContentSend_P(HTTP_FORM_TIMER4);
+ WSContentSend_P(HTTP_FORM_END);
+ WSContentSend_P(HTTP_BTN_CONF);
WSContentEnd();
}
@@ -764,9 +764,9 @@ bool Xdrv09(uint8_t function)
#ifdef USE_TIMERS_WEB
case FUNC_WEB_ADD_BUTTON:
#ifdef USE_RULES
- WSContentSend(FPSTR(HTTP_BTN_MENU_TIMER));
+ WSContentSend_P(HTTP_BTN_MENU_TIMER);
#else
- if (devices_present) { WSContentSend(FPSTR(HTTP_BTN_MENU_TIMER)); }
+ if (devices_present) { WSContentSend_P(HTTP_BTN_MENU_TIMER); }
#endif // USE_RULES
break;
case FUNC_WEB_ADD_HANDLER:
diff --git a/sonoff/xdrv_11_knx.ino b/sonoff/xdrv_11_knx.ino
index af23ab220..6f4a5b96d 100644
--- a/sonoff/xdrv_11_knx.ino
+++ b/sonoff/xdrv_11_knx.ino
@@ -762,7 +762,7 @@ const char HTTP_FORM_KNX2[] PROGMEM =
""
"" D_KNX_GROUP_ADDRESS_TO_WRITE " "
- " |
---|