2020-05-28 00:33:26 +02:00
void web_init ( ) {
server . on ( " /set " , HTTP_GET , [ ] ( AsyncWebServerRequest * request ) {
String value ;
//============================device settings=====================================
2020-06-11 22:51:34 +02:00
if ( request - > hasArg ( " preset " ) ) {
//--------------------------------------------------------------------------------
String value ;
value = request - > getParam ( " preset " ) - > value ( ) ;
if ( value = = " 1 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/1-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/1-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 2 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/2-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/2-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 3 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/3-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/3-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 4 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/4-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/4-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 5 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/5-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/5-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 6 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/6-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/6-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 7 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/7-relay.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/7-relay.s.txt " , 2048 ) ) ;
}
if ( value = = " 8 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/8-pwm.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/8-pwm.s.txt " , 2048 ) ) ;
}
if ( value = = " 9 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/9-dht11.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/9-dht11.s.txt " , 2048 ) ) ;
}
if ( value = = " 10 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/10-dht22.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/10-dht22.s.txt " , 2048 ) ) ;
}
if ( value = = " 11 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/11-analog.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/11-analog.s.txt " , 2048 ) ) ;
}
if ( value = = " 12 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/12-dallas.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/12-dallas.s.txt " , 2048 ) ) ;
}
if ( value = = " 13 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/13-termostat.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/13-termostat.s.txt " , 2048 ) ) ;
}
if ( value = = " 14 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/14-level.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/14-level.s.txt " , 2048 ) ) ;
}
if ( value = = " 15 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/15-moution.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/15-moution.s.txt " , 2048 ) ) ;
}
if ( value = = " 16 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/16-moution.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/16-moution.s.txt " , 2048 ) ) ;
}
if ( value = = " 17 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/17-stepper.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/17-stepper.s.txt " , 2048 ) ) ;
}
if ( value = = " 18 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/18-servo.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/18-servo.s.txt " , 2048 ) ) ;
}
if ( value = = " 19 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/firmware.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/firmware.s.txt " , 2048 ) ) ;
}
Device_init ( ) ;
Scenario_init ( ) ;
request - > redirect ( " /?set.device " ) ;
}
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " devinit " ) ) {
Device_init ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " scen " ) ) {
value = request - > getParam ( " scen " ) - > value ( ) ;
if ( value = = " 0 " ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " scen " , value ) ;
2020-05-28 00:33:26 +02:00
saveConfig ( ) ;
Scenario_init ( ) ;
}
if ( value = = " 1 " ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " scen " , value ) ;
2020-05-28 00:33:26 +02:00
saveConfig ( ) ;
Scenario_init ( ) ;
}
request - > send ( 200 , " text/text " , " OK " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " sceninit " ) ) {
Scenario_init ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " cleanlog " ) ) {
# ifdef logging_enable
clean_log_date ( ) ;
# endif
}
//==============================udp settings=============================================
if ( request - > hasArg ( " udponoff " ) ) {
value = request - > getParam ( " udponoff " ) - > value ( ) ;
if ( value = = " 0 " ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " udponoff " , value ) ;
2020-05-28 00:33:26 +02:00
saveConfig ( ) ;
Scenario_init ( ) ;
}
if ( value = = " 1 " ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " udponoff " , value ) ;
2020-05-28 00:33:26 +02:00
saveConfig ( ) ;
Scenario_init ( ) ;
}
request - > send ( 200 , " text/text " , " OK " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " updatelist " ) ) {
SPIFFS . remove ( " /dev.csv " ) ;
addFile ( " dev.csv " , " device id;device name;ip address " ) ;
request - > redirect ( " /?set.udp " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " updatepage " ) ) {
request - > redirect ( " /?set.udp " ) ;
}
2020-06-11 22:51:34 +02:00
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " devname " ) ) {
jsonWriteStr ( configSetupJson , " name " , request - > getParam ( " devname " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//==============================wifi settings=============================================
if ( request - > hasArg ( " routerssid " ) ) {
jsonWriteStr ( configSetupJson , " routerssid " , request - > getParam ( " routerssid " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
if ( request - > hasArg ( " routerpass " ) ) {
jsonWriteStr ( configSetupJson , " routerpass " , request - > getParam ( " routerpass " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " apssid " ) ) {
jsonWriteStr ( configSetupJson , " apssid " , request - > getParam ( " apssid " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
if ( request - > hasArg ( " appass " ) ) {
jsonWriteStr ( configSetupJson , " appass " , request - > getParam ( " appass " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " weblogin " ) ) {
jsonWriteStr ( configSetupJson , " weblogin " , request - > getParam ( " weblogin " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
if ( request - > hasArg ( " webpass " ) ) {
jsonWriteStr ( configSetupJson , " webpass " , request - > getParam ( " webpass " ) - > value ( ) ) ;
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//--------------------------------------------------------------------------------
2020-05-28 00:33:26 +02:00
if ( request - > hasArg ( " timezone " ) ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " timezone " , request - > getParam ( " timezone " ) - > value ( ) ) ;
saveConfig ( ) ;
reconfigTime ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
2020-05-28 00:33:26 +02:00
}
if ( request - > hasArg ( " ntp " ) ) {
2020-06-11 22:51:34 +02:00
jsonWriteStr ( configSetupJson , " ntp " , request - > getParam ( " ntp " ) - > value ( ) ) ;
saveConfig ( ) ;
reconfigTime ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " device " ) ) {
if ( request - > getParam ( " device " ) - > value ( ) = = " ok " ) ESP . restart ( ) ;
request - > send ( 200 , " text/text " , " OK " ) ;
}
//==============================mqtt settings=============================================
if ( request - > hasArg ( " mqttServer " ) ) {
jsonWriteStr ( configSetupJson , " mqttServer " , request - > getParam ( " mqttServer " ) - > value ( ) ) ;
saveConfig ( ) ;
mqtt_connection = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
if ( request - > hasArg ( " mqttPort " ) ) {
int port = ( request - > getParam ( " mqttPort " ) - > value ( ) ) . toInt ( ) ;
jsonWriteInt ( configSetupJson , " mqttPort " , port ) ;
saveConfig ( ) ;
mqtt_connection = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
if ( request - > hasArg ( " mqttPrefix " ) ) {
jsonWriteStr ( configSetupJson , " mqttPrefix " , request - > getParam ( " mqttPrefix " ) - > value ( ) ) ;
saveConfig ( ) ;
mqtt_connection = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
if ( request - > hasArg ( " mqttUser " ) ) {
jsonWriteStr ( configSetupJson , " mqttUser " , request - > getParam ( " mqttUser " ) - > value ( ) ) ;
saveConfig ( ) ;
mqtt_connection = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
if ( request - > hasArg ( " mqttPass " ) ) {
jsonWriteStr ( configSetupJson , " mqttPass " , request - > getParam ( " mqttPass " ) - > value ( ) ) ;
saveConfig ( ) ;
mqtt_connection = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " mqttsend " ) ) {
mqtt_send_settings_to_udp = true ;
request - > send ( 200 , " text/text " , " ok " ) ;
}
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " mqttcheck " ) ) {
String tmp = " {} " ;
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button> " + stateMQTT ( ) ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
request - > send ( 200 , " text/text " , tmp ) ;
}
//==============================push settings=============================================
# ifdef push_enable
if ( request - > hasArg ( " pushingboxid " ) ) {
jsonWriteStr ( configSetupJson , " pushingboxid " , request - > getParam ( " pushingboxid " ) - > value ( ) ) ;
2020-05-28 00:33:26 +02:00
}
saveConfig ( ) ;
2020-06-11 22:51:34 +02:00
request - > send ( 200 , " text/text " , " ok " ) ;
# endif
//==============================utilities settings=============================================
if ( request - > hasArg ( " itoc " ) ) {
i2c_scanning = true ;
request - > redirect ( " /?set.utilities " ) ;
}
2020-05-28 00:33:26 +02:00
} ) ;
2020-06-11 22:51:34 +02:00
//==============================upgrade settings=============================================
2020-05-28 00:33:26 +02:00
server . on ( " /check " , HTTP_GET , [ ] ( AsyncWebServerRequest * request ) {
upgrade_url = true ;
Serial . print ( " [i] Last firmware version: " ) ;
Serial . println ( last_version ) ;
String tmp = " {} " ;
if ( WiFi . status ( ) = = WL_CONNECTED ) {
if ( mb_4_of_memory ) {
if ( last_version ! = " " ) {
if ( last_version ! = " error " ) {
if ( last_version = = firmware_version ) {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Последняя версия прошивки уже установлена. " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
} else {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Имеется новая версия прошивки<a href= \" # \" class= \" btn btn-block btn-danger \" onclick= \" send_request(this, '/upgrade');setTimeout(function(){ location.href='/'; }, 120000);html('my-block','<span class=loader></span>Идет обновление прошивки, после обновления страница перезагрузится автоматически...') \" >Установить</a> " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
} else {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Ошибка... Cе р ве р не найден. Попробуйте позже... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
} else {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Нажмите на кнопку \" обновить прошивку \" повторно... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
} else {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
} else {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Устройство не подключен к роутеру... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
request - > send ( 200 , " text/text " , tmp ) ;
} ) ;
server . on ( " /upgrade " , HTTP_GET , [ ] ( AsyncWebServerRequest * request ) {
upgrade = true ;
String tmp = " {} " ;
request - > send ( 200 , " text/text " , " ok " ) ;
} ) ;
}