mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
fixes to restart
This commit is contained in:
@@ -137,7 +137,7 @@ const Customizations = () => {
|
|||||||
|
|
||||||
const doRestart = async () => {
|
const doRestart = async () => {
|
||||||
setRestarting(true);
|
setRestarting(true);
|
||||||
await sendAPI({ device: 'system', cmd: 'restart', id: -1 }).catch(
|
await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch(
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
toast.error(error.message);
|
toast.error(error.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ const ApplicationSettings = () => {
|
|||||||
|
|
||||||
const doRestart = async () => {
|
const doRestart = async () => {
|
||||||
setRestarting(true);
|
setRestarting(true);
|
||||||
await sendAPI({ device: 'system', cmd: 'restart', id: -1 }).catch(
|
await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch(
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
toast.error(error.message);
|
toast.error(error.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ const DownloadUpload = () => {
|
|||||||
|
|
||||||
const doRestart = async () => {
|
const doRestart = async () => {
|
||||||
setRestarting(true);
|
setRestarting(true);
|
||||||
await sendAPI({ device: 'system', cmd: 'restart', id: -1 }).catch(
|
await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch(
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
toast.error(error.message);
|
toast.error(error.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ const NetworkSettings = () => {
|
|||||||
|
|
||||||
const doRestart = async () => {
|
const doRestart = async () => {
|
||||||
setRestarting(true);
|
setRestarting(true);
|
||||||
await sendAPI({ device: 'system', cmd: 'restart', id: -1 }).catch(
|
await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch(
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
toast.error(error.message);
|
toast.error(error.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ const SystemStatus = () => {
|
|||||||
const doRestart = async () => {
|
const doRestart = async () => {
|
||||||
setConfirmRestart(false);
|
setConfirmRestart(false);
|
||||||
setRestarting(true);
|
setRestarting(true);
|
||||||
await sendAPI({ device: 'system', cmd: 'restart', id: -1 }).catch(
|
await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch(
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
toast.error(error.message);
|
toast.error(error.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ void UploadFileService::uploadComplete(AsyncWebServerRequest * request) {
|
|||||||
request->_tempFile.close(); // close the file handle as the upload is now done
|
request->_tempFile.close(); // close the file handle as the upload is now done
|
||||||
AsyncWebServerResponse * response = request->beginResponse(200);
|
AsyncWebServerResponse * response = request->beginResponse(200);
|
||||||
request->send(response);
|
request->send(response);
|
||||||
emsesp::EMSESP::system_.restart_pending(true); // will be handled by the main loop
|
emsesp::EMSESP::system_.restart_pending(true); // will be handled by the main loop. We use pending for the Web's RestartMonitor
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ void UploadFileService::uploadComplete(AsyncWebServerRequest * request) {
|
|||||||
if (_is_firmware && !request->_tempObject) {
|
if (_is_firmware && !request->_tempObject) {
|
||||||
AsyncWebServerResponse * response = request->beginResponse(200);
|
AsyncWebServerResponse * response = request->beginResponse(200);
|
||||||
request->send(response);
|
request->send(response);
|
||||||
emsesp::EMSESP::system_.restart_pending(true); // will be handled by the main loop
|
emsesp::EMSESP::system_.restart_pending(true); // will be handled by the main loop. We use pending for the Web's RestartMonitor
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ def on_upload(source, target, env):
|
|||||||
"password": password
|
"password": password
|
||||||
}
|
}
|
||||||
|
|
||||||
response = requests.post(signon_url, json=username_password, headers=signon_headers, auth=None)
|
response = requests.post(signon_url, json=username_password, headers=signon_headers)
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
print_fail("Authentication failed (code " + str(response.status_code) + ")")
|
print_fail("Authentication failed (code " + str(response.status_code) + ")")
|
||||||
@@ -116,7 +116,7 @@ def on_upload(source, target, env):
|
|||||||
|
|
||||||
upload_url = f"{emsesp_url}/rest/uploadFile"
|
upload_url = f"{emsesp_url}/rest/uploadFile"
|
||||||
|
|
||||||
response = requests.post(upload_url, data=monitor, headers=post_headers, auth=None)
|
response = requests.post(upload_url, data=monitor, headers=post_headers)
|
||||||
|
|
||||||
bar.close()
|
bar.close()
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
@@ -126,7 +126,22 @@ def on_upload(source, target, env):
|
|||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
print_fail("Upload failed (code " + response.status.code + ").")
|
print_fail("Upload failed (code " + response.status.code + ").")
|
||||||
else:
|
else:
|
||||||
print_success("Upload successful.")
|
print_success("Upload successful. Rebooting device.")
|
||||||
|
restart_headers = {
|
||||||
|
'Host': host_ip,
|
||||||
|
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/118.0',
|
||||||
|
'Accept': '*/*',
|
||||||
|
'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',
|
||||||
|
'Accept-Encoding': 'gzip, deflate',
|
||||||
|
'Referer': f'{emsesp_url}',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'Authorization': 'Bearer ' + f'{access_token}'
|
||||||
|
}
|
||||||
|
restart_url = f"{emsesp_url}/api/system/restart"
|
||||||
|
response = requests.get(restart_url, headers=restart_headers)
|
||||||
|
if response.status_code != 200:
|
||||||
|
print_fail("Restart failed (code " + str(response.status_code) + ")")
|
||||||
|
|
||||||
print()
|
print()
|
||||||
|
|
||||||
|
|||||||
@@ -1673,8 +1673,8 @@ void EMSESP::loop() {
|
|||||||
|
|
||||||
// force a query on the EMS devices to fetch latest data at a set interval (1 min)
|
// force a query on the EMS devices to fetch latest data at a set interval (1 min)
|
||||||
scheduled_fetch_values();
|
scheduled_fetch_values();
|
||||||
} else {
|
} else if (!system_.uploadFirmwareURL()) { // start an upload from a URL. This is blocking.
|
||||||
emsesp::EMSESP::system_.uploadFirmwareURL(); // start an upload from a URL. This is blocking.
|
system_.upload_status(false); // abort the upload
|
||||||
}
|
}
|
||||||
|
|
||||||
uuid::loop();
|
uuid::loop();
|
||||||
|
|||||||
@@ -1754,15 +1754,16 @@ bool System::command_format(const char * value, const int8_t id) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// restart command - perform a hard reset
|
// restart command - perform a hard reset (system reboot)
|
||||||
bool System::command_restart(const char * value, const int8_t id) {
|
bool System::command_restart(const char * value, const int8_t id) {
|
||||||
if (id != 0) {
|
if (id == 0) {
|
||||||
// if it has an id then it's a web call and we need to queue the restart
|
// if it has an id then it's a web call and we need to queue the restart
|
||||||
|
// default id is -1 when calling /api/system/restart directly for example
|
||||||
LOG_INFO("Preparing to restart system");
|
LOG_INFO("Preparing to restart system");
|
||||||
EMSESP::system_.restart_pending(true);
|
EMSESP::system_.restart_pending(true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
LOG_INFO("Restarting system");
|
LOG_INFO("Restarting system immediately");
|
||||||
EMSESP::system_.restart_requested(true); // will be handled by the main loop
|
EMSESP::system_.restart_requested(true); // will be handled by the main loop
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user