Skip to content

Commit e63cb0c

Browse files
committed
Fix IOS 18 Safari webUI Bug
1 parent a8b0bb6 commit e63cb0c

2 files changed

Lines changed: 50 additions & 68 deletions

File tree

platformio.ini

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
platform = espressif8266@4.2.1
1313
framework = arduino
1414
monitor_speed = 115200
15-
custom_prog_version = 2.14.0
15+
custom_prog_version = 2.14.1
1616
build_flags =
1717
-DVERSION=${this.custom_prog_version}
1818
-DPIO_SRC_NAM="Daly2MQTT"
@@ -23,15 +23,11 @@ extra_scripts = pre:tools/mini_html.py
2323
lib_deps =
2424
knolleary/PubSubClient @ ^2.8
2525
bblanchon/ArduinoJson @ ^6.21.3
26-
;need replaced by this:
27-
;https://github.com/mathieucarbou/ESPAsyncWebServer
28-
;because this:
29-
;https://github.com/esphome/ESPAsyncWebServer/issues/42
30-
ottowinter/ESPAsyncTCP-esphome @ ^1.2.3
31-
ottowinter/ESPAsyncWebServer-esphome @ ^3.0.0
26+
esphome/ESPAsyncTCP-esphome @ 2.0.0
27+
mathieucarbou/ESPAsyncWebServer @ 3.3.7
28+
mathieucarbou/WebSerialLite@^6.2.0
3229
alanswx/ESPAsyncWiFiManager @ ^0.31.0
3330
plerup/EspSoftwareSerial @ ^8.0.3
34-
asjdf/WebSerialLite@^2.2.0
3531
paulstoffregen/OneWire@^2.3.7
3632
milesburton/DallasTemperature@^3.11.0
3733

src/main.cpp

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ DeviceAddress tempDeviceAddress;
7575

7676
ADC_MODE(ADC_VCC);
7777

78+
const char *PARAM_MESSAGE PROGMEM = "message";
79+
7880
//----------------------------------------------------------------------
7981
void saveConfigCallback()
8082
{
@@ -509,67 +511,51 @@ void setup()
509511
server.on("/set", HTTP_GET, [](AsyncWebServerRequest *request)
510512
{
511513
if(strlen(_settings.data.httpUser) > 0 && !request->authenticate(_settings.data.httpUser, _settings.data.httpPass)) return request->requestAuthentication();
512-
AsyncWebParameter *p = request->getParam(0);
513-
if (p->name() == "chargefet")
514-
{
515-
writeLog("<WEBS> Webcall: charge fet to: %s", p->value());
516-
if(p->value().toInt() == 1){
517-
bms.setChargeMOS(true);
518-
bms.get.chargeFetState = true;
519-
}
520-
if(p->value().toInt() == 0){
521-
bms.setChargeMOS(false);
522-
bms.get.chargeFetState = false;
523-
}
524-
}
525-
if (p->name() == "dischargefet")
526-
{
527-
writeLog("<WEBS> Webcall: discharge fet to: %s", p->value());
528-
if(p->value().toInt() == 1){
529-
bms.setDischargeMOS(true);
530-
bms.get.disChargeFetState = true;
531-
}
532-
if(p->value().toInt() == 0){
533-
bms.setDischargeMOS(false);
534-
bms.get.disChargeFetState = false;
535-
}
536-
}
537-
if (p->name() == "soc")
538-
{
539-
writeLog("<WEBS> Webcall: setsoc SOC set to: %s", p->value());
540-
if(p->value().toInt() >= 0 && p->value().toInt() <= 100 ){
541-
bms.setSOC(p->value().toInt());
514+
String message;
515+
516+
if (request->hasParam("chargefet")) {
517+
message = request->getParam("chargefet")->value();
518+
writeLog("<WEBS> Webcall: charge fet to: %s", message);
519+
bms.setChargeMOS((message == "1") ? true:false);
520+
bms.get.chargeFetState = (message == "1") ? true:false;
521+
}
522+
if (request->hasParam("dischargefet")) {
523+
message = request->getParam("dischargefet")->value();
524+
writeLog("<WEBS> Webcall: discharge fet to: %s", message);
525+
bms.setDischargeMOS((message == "1") ? true:false);
526+
bms.get.disChargeFetState = (message == "1") ? true:false;
527+
}
528+
if (request->hasParam("soc")) {
529+
message = request->getParam("soc")->value();
530+
writeLog("<WEBS> Webcall: setsoc SOC set to: %s", message);
531+
if(message.toInt() >= 0 && message.toInt() <= 100 ){
532+
bms.setSOC(message.toInt());
542533
}
534+
}
535+
if (request->hasParam("relais")) {
536+
message = request->getParam("relais")->value();
537+
writeLog("<WEBS> Webcall: set relais to: %s", message);
538+
relaisComparsionResult = (message == "1") ? true:false;
539+
}
540+
if (request->hasParam("bmsreset")) {
541+
message = request->getParam("bmsreset")->value();
542+
if(message.toInt() == 1){
543+
writeLog("<WEBS> Webcall: reset BMS");
544+
bms.setBmsReset();
543545
}
544-
if (p->name() == "relais")
545-
{
546-
writeLog("<WEBS> Webcall: set relais to: %s", p->value());
547-
if(p->value().toInt() == 1){
548-
relaisComparsionResult = true;
549-
}
550-
if(p->value().toInt() == 0){
551-
relaisComparsionResult = false;
552-
}
546+
}
547+
if (request->hasParam("bmswake")) {
548+
message = request->getParam("bmswake")->value();
549+
writeLog("<WEBS> wakeup manual from Web");
550+
if(message.toInt() == 1){
551+
wakeupHandler(true);
552+
writeLog("<WEBS> wakeup manual from Web");
553553
}
554-
if (p->name() == "bmsreset")
555-
{
556-
writeLog("<WEBS> Webcall: reset BMS");
557-
if(p->value().toInt() == 1){
558-
bms.setBmsReset();
559-
}
560-
}
561-
if (p->name() == "bmswake")
562-
{
563-
if(p->value().toInt() == 1){
564-
wakeupHandler(true);
565-
writeLog("<WEBS> wakeup manual from Web");
566-
}
567-
}
568-
if (p->name() == "ha")
569-
{
570-
haDiscTrigger = true;
571-
}
572-
request->send(200, "text/plain", "message received"); });
554+
}
555+
if (request->hasParam("ha")) {
556+
haDiscTrigger = true;
557+
}
558+
request->send(200, "text/plain", "message received"); });
573559

574560
server.on(
575561
"/update", HTTP_POST, [](AsyncWebServerRequest *request)
@@ -622,7 +608,7 @@ void setup()
622608
{ request->send(418, "text/plain", "418 I'm a teapot"); });
623609

624610
// set the device name
625-
611+
626612
if (MDNS.begin(_settings.data.deviceName))
627613
{
628614
writeLog("<SYS > mDNS running...");
@@ -651,7 +637,7 @@ void setup()
651637
// end void setup
652638
void loop()
653639
{
654-
MDNS.update();
640+
MDNS.update();
655641
if (Update.isRunning())
656642
{
657643
workerCanRun = false; // lockout, atfer true need reboot

0 commit comments

Comments
 (0)