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 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/12-bmp280.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/12-bmp280.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 13 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/13-bme280.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/13-bme280.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 14 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/14-dallas.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/14-dallas.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 15 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/15-termostat.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/15-termostat.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 16 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/16-level.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/16-level.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 17 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/17-moution.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/17-moution.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 18 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/18-moution.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/18-moution.s.txt " , 2048 ) ) ;
2020-06-11 22:51:34 +02:00
}
if ( value = = " 19 " ) {
2020-06-12 15:34:30 +02:00
writeFile ( " firmware.c.txt " , readFile ( " configs/19-stepper.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/19-stepper.s.txt " , 2048 ) ) ;
}
if ( value = = " 20 " ) {
writeFile ( " firmware.c.txt " , readFile ( " configs/20-servo.c.txt " , 2048 ) ) ;
writeFile ( " firmware.s.txt " , readFile ( " configs/20-servo.s.txt " , 2048 ) ) ;
}
if ( value = = " 21 " ) {
2020-06-11 22:51:34 +02:00
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
# ifdef logging_enable
2020-06-12 15:34:30 +02:00
if ( request - > hasArg ( " cleanlog " ) ) {
2020-05-28 00:33:26 +02:00
clean_log_date ( ) ;
2020-06-12 15:34:30 +02:00
request - > send ( 200 , " text/text " , " OK " ) ;
2020-05-28 00:33:26 +02:00
}
2020-06-12 15:34:30 +02:00
# endif
2020-05-28 00:33:26 +02:00
//==============================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 " ) ;
}
2020-06-12 15:34:30 +02:00
//--------------------------------------------------------------------------------
if ( request - > hasArg ( " blink " ) ) {
value = request - > getParam ( " blink " ) - > value ( ) ;
if ( value = = " 0 " ) {
jsonWriteStr ( configSetupJson , " blink " , value ) ;
saveConfig ( ) ;
}
if ( value = = " 1 " ) {
jsonWriteStr ( configSetupJson , " blink " , value ) ;
saveConfig ( ) ;
}
request - > send ( 200 , " text/text " , " OK " ) ;
}
2020-06-11 22:51:34 +02:00
//==============================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-06-12 15:34:30 +02:00
saveConfig ( ) ;
request - > send ( 200 , " text/text " , " ok " ) ;
2020-05-28 00:33:26 +02:00
}
2020-06-11 22:51:34 +02:00
# 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 = " {} " ;
2020-06-12 15:34:30 +02:00
int case_of_update ;
if ( WiFi . status ( ) ! = WL_CONNECTED ) last_version = " nowifi " ;
if ( ! mb_4_of_memory ) last_version = " less " ;
if ( last_version = = firmware_version ) case_of_update = 1 ;
if ( last_version ! = firmware_version ) case_of_update = 2 ;
if ( last_version = = " error " ) case_of_update = 3 ;
if ( last_version = = " " ) case_of_update = 4 ;
if ( last_version = = " less " ) case_of_update = 5 ;
if ( last_version = = " nowifi " ) case_of_update = 6 ;
if ( last_version = = " notsupported " ) case_of_update = 7 ;
switch ( case_of_update ) {
case 1 : {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Последняя версия прошивки уже установлена. " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
break ;
case 2 : {
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 " ) ;
}
break ;
case 3 : {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Ошибка... Cе р ве р не найден. Попробуйте позже... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
}
break ;
case 4 : {
2020-05-28 00:33:26 +02:00
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Нажмите на кнопку \" обновить прошивку \" повторно... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
2020-06-12 15:34:30 +02:00
break ;
}
case 5 : {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Обновление по воздуху не поддерживается, модуль имеет меньше 4 мб памяти... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
break ;
}
case 6 : {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Устройство не подключено к роутеру... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
break ;
}
case 7 : {
jsonWriteStr ( tmp , " title " , " <button class= \" close \" onclick= \" toggle('my-block') \" >× </button>Обновление на новую версию возможно только через usb... " ) ;
jsonWriteStr ( tmp , " class " , " pop-up " ) ;
break ;
2020-05-28 00:33:26 +02:00
}
}
request - > send ( 200 , " text/text " , tmp ) ;
} ) ;
2020-06-12 15:34:30 +02:00
2020-05-28 00:33:26 +02:00
server . on ( " /upgrade " , HTTP_GET , [ ] ( AsyncWebServerRequest * request ) {
upgrade = true ;
String tmp = " {} " ;
request - > send ( 200 , " text/text " , " ok " ) ;
} ) ;
}