mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 15:02:21 +03:00
408
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
||||||
|
|
||||||
<title>IoT Manager</title>
|
<title>IoT Manager 4.0.8</title>
|
||||||
|
|
||||||
<link rel='icon' type='image/png' href='/favicon.ico'>
|
<link rel='icon' type='image/png' href='/favicon.ico'>
|
||||||
<link rel='stylesheet' href='/build/bundle.css'>
|
<link rel='stylesheet' href='/build/bundle.css'>
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<script>
|
<script>
|
||||||
/******************************************************************************************************************************
|
/*
|
||||||
**
|
Svelte IoT Manager app
|
||||||
******************************************************************************************************************************/
|
created by Dmitry Borisenko
|
||||||
|
Sandgasse 46/4, Vienna 1190, Austria
|
||||||
|
*/
|
||||||
|
|
||||||
//******************************************************import section*********************************************************/
|
//******************************************************import section*********************************************************/
|
||||||
//*****************************************************************************************************************************/
|
//*****************************************************************************************************************************/
|
||||||
@@ -27,11 +29,11 @@
|
|||||||
|
|
||||||
//****************************************************constants section*********************************************************/
|
//****************************************************constants section*********************************************************/
|
||||||
//******************************************************************************************************************************/
|
//******************************************************************************************************************************/
|
||||||
let version = 407;
|
let version = 408;
|
||||||
let debug = true;
|
let debug = true;
|
||||||
let LOG_MAX_MESSAGES = 100;
|
let LOG_MAX_MESSAGES = 100;
|
||||||
let reconnectTimeout = 20000;
|
let reconnectTimeout = 20000;
|
||||||
let rebootingTimeout = 20000;
|
let rebootingTimeout = 15000;
|
||||||
let updatingTimeout = 80000;
|
let updatingTimeout = 80000;
|
||||||
let opened = false;
|
let opened = false;
|
||||||
let preventMove = false;
|
let preventMove = false;
|
||||||
@@ -39,7 +41,7 @@
|
|||||||
//****************************************************variable section**********************************************************/
|
//****************************************************variable section**********************************************************/
|
||||||
//******************************************************************************************************************************/
|
//******************************************************************************************************************************/
|
||||||
let myip = document.location.hostname;
|
let myip = document.location.hostname;
|
||||||
//let myip = "192.168.8.128";
|
//let myip = "192.168.88.224";
|
||||||
|
|
||||||
//Flags
|
//Flags
|
||||||
let firstDevListRequest = true;
|
let firstDevListRequest = true;
|
||||||
@@ -281,6 +283,15 @@
|
|||||||
deviceList = combineArrays(deviceList, incDeviceList);
|
deviceList = combineArrays(deviceList, incDeviceList);
|
||||||
}
|
}
|
||||||
firstDevListRequest = false;
|
firstDevListRequest = false;
|
||||||
|
deviceList.sort(function (a, b) {
|
||||||
|
if (a.name < b.name) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (a.name > b.name) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
deviceList = deviceList;
|
deviceList = deviceList;
|
||||||
whenDeviceListWasUpdated();
|
whenDeviceListWasUpdated();
|
||||||
connectToAllDevices();
|
connectToAllDevices();
|
||||||
@@ -1068,7 +1079,7 @@
|
|||||||
<ListPage show={listReady} deviceList={deviceList} showInput={showInput} addDevInList={() => addDevInList()} newDevice={newDevice} sendToAllDevices={(msg) => sendToAllDevices(msg)} />
|
<ListPage show={listReady} deviceList={deviceList} showInput={showInput} addDevInList={() => addDevInList()} newDevice={newDevice} sendToAllDevices={(msg) => sendToAllDevices(msg)} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/system">
|
<Route path="/system">
|
||||||
<SystemPage show={systemReady} errorsJson={errorsJson} settingsJson={settingsJson} saveSett={() => saveSett()} rebootEsp={() => rebootEsp()} cancelAlarm={(alarmKey) => cancelAlarm(alarmKey)} version={version} versionsList={versionsList} bind:choosingVersion startUpdate={() => startUpdate()} coreMessages={coreMessages} />
|
<SystemPage show={systemReady} errorsJson={errorsJson} settingsJson={settingsJson} saveSett={() => saveSett()} rebootEsp={() => rebootEsp()} cancelAlarm={(alarmKey) => cancelAlarm(alarmKey)} versionsList={versionsList} bind:choosingVersion startUpdate={() => startUpdate()} coreMessages={coreMessages} />
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
<!--<Route path="/utilities">-->
|
<!--<Route path="/utilities">-->
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
1: {
|
1: {
|
||||||
descr: "Ошибка json",
|
descr: "Ошибка json",
|
||||||
color: "text-red-500",
|
color: "text-red-500",
|
||||||
txt: "Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",
|
txt: "Ошибка записи/чтения json.",
|
||||||
cancel: true,
|
cancel: true,
|
||||||
num: true,
|
num: true,
|
||||||
},
|
},
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
1: {
|
1: {
|
||||||
descr: "Ошибка json",
|
descr: "Ошибка json",
|
||||||
color: "text-red-500",
|
color: "text-red-500",
|
||||||
txt: "Ошибка чтения файла json с виджетами",
|
txt: "Ошибка чтения json файла с виджетами",
|
||||||
cancel: true,
|
cancel: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -120,7 +120,6 @@
|
|||||||
|
|
||||||
import Card from "../components/Card.svelte";
|
import Card from "../components/Card.svelte";
|
||||||
import Alarm from "../components/Alarm.svelte";
|
import Alarm from "../components/Alarm.svelte";
|
||||||
export let version;
|
|
||||||
|
|
||||||
export let errorsJson;
|
export let errorsJson;
|
||||||
|
|
||||||
@@ -144,19 +143,19 @@
|
|||||||
<!--INFORMATION-->
|
<!--INFORMATION-->
|
||||||
<Card title="Системная информация">
|
<Card title="Системная информация">
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Название прошивки</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Название прошивки</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<p class="text-gray-500 font-bold text-sm">{errorsJson.bn}</p>
|
<p class="text-gray-500 font-bold text-sm text-center truncate">{errorsJson.bn}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Версии прошивки на сервере</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Доступные версии</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<select class="border border-indigo-500 border-4" bind:value={choosingVersion}>
|
<select class="border border-indigo-500 border-4 text-center" bind:value={choosingVersion}>
|
||||||
{#each Object.entries(versionsList) as [key, param]}
|
{#each Object.entries(versionsList) as [key, param]}
|
||||||
<option value={param}>
|
<option value={param}>
|
||||||
{param}
|
{param}
|
||||||
@@ -166,79 +165,87 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Версия прошивки</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Версия прошивки</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<p class="text-gray-500 font-bold text-sm">{errorsJson.bver}</p>
|
<p class="text-gray-500 font-bold text-sm text-center truncate">{errorsJson.bver}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Версия файловой системы</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Uptime устройства</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<p class="text-gray-500 font-bold text-sm">{version}</p>
|
<p class="text-gray-500 font-bold text-sm text-center truncate">{errorsJson.upt}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Uptime устройства</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Uptime сессии mqtt</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<p class="text-gray-500 font-bold text-sm">{errorsJson.upt}</p>
|
<p class="text-gray-500 font-bold text-sm text-center truncate">{errorsJson.uptm}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Uptime сессии mqtt</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Uptime сессии wifi</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3">
|
||||||
<p class="text-gray-500 font-bold text-sm">{errorsJson.uptm}</p>
|
<p class="text-gray-500 font-bold text-sm text-center truncate">{errorsJson.uptw}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Качество WiFi сигнала</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Качество WiFi сигнала</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4 text-xs sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
|
<div class="flex justify-center w-1/3 text-xs sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
|
||||||
{#if errorsJson.rssi === 0}
|
{#if errorsJson.rssi === 0}
|
||||||
<p class="text-red-500 font-bold text-sm">не подключено</p>
|
<p class="text-red-500 font-bold text-sm text-center truncate">не подключено</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 1}
|
{#if errorsJson.rssi === 1}
|
||||||
<p class="text-red-500 font-bold text-sm">нет сигнала</p>
|
<p class="text-red-500 font-bold text-sm text-center truncate">нет сигнала</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 2}
|
{#if errorsJson.rssi === 2}
|
||||||
<p class="text-red-500 font-bold text-sm">очень низкий</p>
|
<p class="text-red-500 font-bold text-sm text-center truncate">очень низкий</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 3}
|
{#if errorsJson.rssi === 3}
|
||||||
<p class="text-yellow-500 font-bold text-sm">низкий</p>
|
<p class="text-yellow-500 font-bold text-sm text-center truncate">низкий</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 4}
|
{#if errorsJson.rssi === 4}
|
||||||
<p class="text-yellow-500 font-bold text-sm">хороший</p>
|
<p class="text-yellow-500 font-bold text-sm text-center truncate">хороший</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 5}
|
{#if errorsJson.rssi === 5}
|
||||||
<p class="text-green-500 font-bold text-sm">очень хороший</p>
|
<p class="text-green-500 font-bold text-sm text-center truncate">очень хороший</p>
|
||||||
{/if}
|
{/if}
|
||||||
{#if errorsJson.rssi === 6}
|
{#if errorsJson.rssi === 6}
|
||||||
<p class="text-green-500 font-bold text-sm">отличный</p>
|
<p class="text-green-500 font-bold text-sm text-center truncate">отличный</p>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Остаток оперативной памяти</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Остаток RAM</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3 text-sm text-center">
|
||||||
<p class="text-green-500 font-bold">{errorsJson.heap}</p>
|
<p class="text-green-500 font-bold text-center truncate">{errorsJson.heap}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-3/4">
|
<div class="w-2/3">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Количество записей на flash</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Кол-во записей на flash</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/3 text-sm">
|
||||||
<p class="text-green-500 font-bold">{errorsJson.fl}</p>
|
<p class="text-green-500 font-bold text-center truncate">{errorsJson.fl}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex mb-2 h-6 items-center">
|
||||||
|
<div class="w-2/3">
|
||||||
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Причина перезагрузки</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-center w-1/3 text-sm">
|
||||||
|
<p class="{errorsJson.rst.includes('Watchdog') || errorsJson.rst.includes('Exception') ? 'text-red-500' : 'text-green-500'} font-bold text-center truncate">{errorsJson.rst}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn-lg" on:click={() => startUpdate()}>{"Обновить прошивку"}</button>
|
<button class="btn-lg" on:click={() => startUpdate()}>{"Обновить прошивку"}</button>
|
||||||
@@ -247,7 +254,7 @@
|
|||||||
<Card title="Системные настройки">
|
<Card title="Системные настройки">
|
||||||
<div class="flex mb-2 h-6 items-center">
|
<div class="flex mb-2 h-6 items-center">
|
||||||
<div class="w-5/6">
|
<div class="w-5/6">
|
||||||
<p class="pr-4 text-gray-500 font-bold text-sm">Включить лог</p>
|
<p class="pr-4 text-gray-500 font-bold text-sm truncate">Включить лог</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/6">
|
<div class="flex justify-center w-1/6">
|
||||||
<input bind:checked={settingsJson.log} on:change={() => saveSett()} type="checkbox" class="form-checkbox h-4 w-4 text-gray-600" />
|
<input bind:checked={settingsJson.log} on:change={() => saveSett()} type="checkbox" class="form-checkbox h-4 w-4 text-gray-600" />
|
||||||
|
|||||||
Reference in New Issue
Block a user