mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 23:12:34 +03:00
исправил слетающий конфиг
This commit is contained in:
120
src/App.svelte
120
src/App.svelte
@@ -8,16 +8,16 @@
|
|||||||
import Alarm from "./components/Alarm.svelte";
|
import Alarm from "./components/Alarm.svelte";
|
||||||
import Progress from "./components/Progress.svelte";
|
import Progress from "./components/Progress.svelte";
|
||||||
|
|
||||||
import Modal from "./components/Modal.svelte";
|
//import Modal from "./components/Modal.svelte";
|
||||||
import DashboardPage from "./pages/Dashboard.svelte";
|
import DashboardPage from "./pages/Dashboard.svelte";
|
||||||
import ConfigPage from "./pages/Config.svelte";
|
import ConfigPage from "./pages/Config.svelte";
|
||||||
import ConnectionPage from "./pages/Connection.svelte";
|
import ConnectionPage from "./pages/Connection.svelte";
|
||||||
import ListPage from "./pages/List.svelte";
|
import ListPage from "./pages/List.svelte";
|
||||||
import SystemPage from "./pages/System.svelte";
|
import SystemPage from "./pages/System.svelte";
|
||||||
|
|
||||||
import UtilitiesPage from "./pages/Utilities.svelte";
|
//import UtilitiesPage from "./pages/Utilities.svelte";
|
||||||
import LogPage from "./pages/Log.svelte";
|
//import LogPage from "./pages/Log.svelte";
|
||||||
import AboutPage from "./pages/About.svelte";
|
//import AboutPage from "./pages/About.svelte";
|
||||||
|
|
||||||
import CloudIcon from "./svg/Cloud.svelte";
|
import CloudIcon from "./svg/Cloud.svelte";
|
||||||
|
|
||||||
@@ -33,8 +33,8 @@
|
|||||||
|
|
||||||
//****************************************************variable section**********************************************************/
|
//****************************************************variable section**********************************************************/
|
||||||
//******************************************************************************************************************************/
|
//******************************************************************************************************************************/
|
||||||
//let myip = document.location.hostname;
|
let myip = document.location.hostname;
|
||||||
let myip = "192.168.88.235";
|
//let myip = "192.168.88.235";
|
||||||
|
|
||||||
//Flags
|
//Flags
|
||||||
let showInput = false;
|
let showInput = false;
|
||||||
@@ -48,29 +48,22 @@
|
|||||||
//configuration
|
//configuration
|
||||||
let configJson = [];
|
let configJson = [];
|
||||||
let configJsonFlag = false;
|
let configJsonFlag = false;
|
||||||
let configJsonParced = false;
|
|
||||||
|
|
||||||
let widgetsJson = [];
|
let widgetsJson = [];
|
||||||
let widgetsJsonFlag = false;
|
let widgetsJsonFlag = false;
|
||||||
let widgetsJsonParced = false;
|
|
||||||
|
|
||||||
let itemsJson = [];
|
let itemsJson = [];
|
||||||
let itemsJsonFlag = false;
|
let itemsJsonFlag = false;
|
||||||
let itemsJsonParced = false;
|
|
||||||
|
|
||||||
let layoutJson = [];
|
let layoutJson = [];
|
||||||
let layoutJsonFlag = false;
|
let layoutJsonFlag = false;
|
||||||
let layoutJsonParced = false;
|
|
||||||
|
|
||||||
let settingsJson = {};
|
let settingsJson = {};
|
||||||
let settingsJsonFlag = false;
|
let settingsJsonFlag = false;
|
||||||
let settingsJsonParced = false;
|
|
||||||
|
|
||||||
let errorsJson = {};
|
let errorsJson = {};
|
||||||
let errorsJsonParced = false;
|
|
||||||
|
|
||||||
let ssidJson = {};
|
let ssidJson = {};
|
||||||
let ssidJsonParced = false;
|
|
||||||
|
|
||||||
//web sockets
|
//web sockets
|
||||||
let socket = [];
|
let socket = [];
|
||||||
@@ -243,8 +236,8 @@
|
|||||||
let statusJson = JSON.parse(data);
|
let statusJson = JSON.parse(data);
|
||||||
udatelayoutJson(statusJson);
|
udatelayoutJson(statusJson);
|
||||||
wigetsUpdate();
|
wigetsUpdate();
|
||||||
//if (debug) console.log(statusJson);
|
|
||||||
if (debug) console.log("✔", "statusJson parced");
|
if (debug) console.log("✔", "statusJson parced");
|
||||||
|
onParced("status");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//сборщик paramsJson сообщений======================================
|
//сборщик paramsJson сообщений======================================
|
||||||
@@ -254,23 +247,22 @@
|
|||||||
//udatelayoutJson(statusJson);
|
//udatelayoutJson(statusJson);
|
||||||
//wigetsUpdate();
|
//wigetsUpdate();
|
||||||
if (debug) console.log("✔", "paramsJson parced");
|
if (debug) console.log("✔", "paramsJson parced");
|
||||||
|
onParced("params");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//сборщик ssidJson сообщений======================================
|
//сборщик ssidJson сообщений======================================
|
||||||
if (data.includes("ssid")) {
|
if (data.includes("ssid")) {
|
||||||
if (IsJsonParse(data)) {
|
if (IsJsonParse(data)) {
|
||||||
ssidJson = JSON.parse(data);
|
ssidJson = JSON.parse(data);
|
||||||
//delete ssidJson.ssid;
|
|
||||||
ssidJson = ssidJson;
|
ssidJson = ssidJson;
|
||||||
ssidJsonParced = true;
|
|
||||||
if (debug) console.log("✔", "ssidJson parced");
|
if (debug) console.log("✔", "ssidJson parced");
|
||||||
|
onParced("ssid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//сборщик deviceList сообщений======================================
|
//сборщик deviceList сообщений======================================
|
||||||
if (data.includes("devicelist")) {
|
if (data.includes("devicelist")) {
|
||||||
if (IsJsonParse(data)) {
|
if (IsJsonParse(data)) {
|
||||||
incDeviceList = JSON.parse(data);
|
incDeviceList = JSON.parse(data);
|
||||||
//delete incDeviceList.devicelist;
|
|
||||||
incDeviceList = incDeviceList;
|
incDeviceList = incDeviceList;
|
||||||
incDeviceListParced = true;
|
incDeviceListParced = true;
|
||||||
deviceList = combineArrays(deviceList, incDeviceList);
|
deviceList = combineArrays(deviceList, incDeviceList);
|
||||||
@@ -278,26 +270,24 @@
|
|||||||
whenDeviceListWasUpdated();
|
whenDeviceListWasUpdated();
|
||||||
connectToAllDevices();
|
connectToAllDevices();
|
||||||
if (debug) console.log("✔", "incDeviceList json parced");
|
if (debug) console.log("✔", "incDeviceList json parced");
|
||||||
|
onParced("devicelist");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//сборщик errorsJson сообщений======================================
|
//сборщик errorsJson сообщений======================================
|
||||||
if (data.includes("errors")) {
|
if (data.includes("errors")) {
|
||||||
if (IsJsonParse(data)) {
|
if (IsJsonParse(data)) {
|
||||||
errorsJson = JSON.parse(data);
|
errorsJson = JSON.parse(data);
|
||||||
//delete errorsJson.errors;
|
|
||||||
errorsJson = errorsJson;
|
errorsJson = errorsJson;
|
||||||
errorsJsonParced = true;
|
|
||||||
promiseResolve();
|
|
||||||
if (debug) console.log("✔", "errorsJson json parced");
|
if (debug) console.log("✔", "errorsJson json parced");
|
||||||
|
//dataReceived();
|
||||||
|
onParced("errors");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//сборщик configJson пакетов========================================
|
//сборщик configJson пакетов========================================
|
||||||
if (data === "/st/config.json") {
|
if (data === "/st/config.json") {
|
||||||
//if (debug) console.log("[i]", "configJson start!");
|
|
||||||
configJsonFlag = true;
|
configJsonFlag = true;
|
||||||
}
|
}
|
||||||
if (data === "/end/config.json") {
|
if (data === "/end/config.json") {
|
||||||
//if (debug) console.log("[i]", "configJson end!");
|
|
||||||
configJsonFlag = false;
|
configJsonFlag = false;
|
||||||
var bb = configJsonBlob.getBlob();
|
var bb = configJsonBlob.getBlob();
|
||||||
let configJsonReader = new FileReader();
|
let configJsonReader = new FileReader();
|
||||||
@@ -307,18 +297,16 @@
|
|||||||
if (IsJsonParse(configJsonResult)) {
|
if (IsJsonParse(configJsonResult)) {
|
||||||
configJson = JSON.parse(configJsonResult);
|
configJson = JSON.parse(configJsonResult);
|
||||||
configJson = configJson;
|
configJson = configJson;
|
||||||
configJsonParced = true;
|
|
||||||
if (debug) console.log("✔", "configJson parced");
|
if (debug) console.log("✔", "configJson parced");
|
||||||
|
onParced("config");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
//сборщик widgetsJson пакетов========================================
|
//сборщик widgetsJson пакетов========================================
|
||||||
if (data === "/st/widgets.json") {
|
if (data === "/st/widgets.json") {
|
||||||
//if (debug) console.log("[i]", "widgetsJson start!");
|
|
||||||
widgetsJsonFlag = true;
|
widgetsJsonFlag = true;
|
||||||
}
|
}
|
||||||
if (data === "/end/widgets.json") {
|
if (data === "/end/widgets.json") {
|
||||||
//if (debug) console.log("[i]", "widgetsJson end!");
|
|
||||||
widgetsJsonFlag = false;
|
widgetsJsonFlag = false;
|
||||||
var bb = widgetsJsonBlob.getBlob();
|
var bb = widgetsJsonBlob.getBlob();
|
||||||
let widgetsJsonReader = new FileReader();
|
let widgetsJsonReader = new FileReader();
|
||||||
@@ -328,18 +316,16 @@
|
|||||||
if (IsJsonParse(widgetsJsonResult)) {
|
if (IsJsonParse(widgetsJsonResult)) {
|
||||||
widgetsJson = JSON.parse(widgetsJsonResult);
|
widgetsJson = JSON.parse(widgetsJsonResult);
|
||||||
widgetsJson = widgetsJson;
|
widgetsJson = widgetsJson;
|
||||||
widgetsJsonParced = true;
|
|
||||||
if (debug) console.log("✔", "widgetsJson parced");
|
if (debug) console.log("✔", "widgetsJson parced");
|
||||||
|
onParced("widgets");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
//сборщик itemsJson пакетов========================================
|
//сборщик itemsJson пакетов========================================
|
||||||
if (data === "/st/items.json") {
|
if (data === "/st/items.json") {
|
||||||
//if (debug) console.log("[i]", "itemsJson start!");
|
|
||||||
itemsJsonFlag = true;
|
itemsJsonFlag = true;
|
||||||
}
|
}
|
||||||
if (data === "/end/items.json") {
|
if (data === "/end/items.json") {
|
||||||
//if (debug) console.log("[i]", "itemsJson end!");
|
|
||||||
itemsJsonFlag = false;
|
itemsJsonFlag = false;
|
||||||
var bb = itemsJsonBlob.getBlob();
|
var bb = itemsJsonBlob.getBlob();
|
||||||
let itemsJsonReader = new FileReader();
|
let itemsJsonReader = new FileReader();
|
||||||
@@ -349,18 +335,16 @@
|
|||||||
if (IsJsonParse(itemsJsonResult)) {
|
if (IsJsonParse(itemsJsonResult)) {
|
||||||
itemsJson = JSON.parse(itemsJsonResult);
|
itemsJson = JSON.parse(itemsJsonResult);
|
||||||
itemsJson = itemsJson;
|
itemsJson = itemsJson;
|
||||||
itemsJsonParced = true;
|
|
||||||
if (debug) console.log("✔", "itemsJson parced");
|
if (debug) console.log("✔", "itemsJson parced");
|
||||||
|
onParced("items");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
//сборщик layoutJson пакетов========================================
|
//сборщик layoutJson пакетов========================================
|
||||||
if (data === "/st/layout.json") {
|
if (data === "/st/layout.json") {
|
||||||
//if (debug) console.log("[i]", "layoutJson start!");
|
|
||||||
layoutJsonFlag = true;
|
layoutJsonFlag = true;
|
||||||
}
|
}
|
||||||
if (data === "/end/layout.json") {
|
if (data === "/end/layout.json") {
|
||||||
//if (debug) console.log("[i]", "layoutJson end!");
|
|
||||||
layoutJsonFlag = false;
|
layoutJsonFlag = false;
|
||||||
var bb = layoutJsonBlob.getBlob();
|
var bb = layoutJsonBlob.getBlob();
|
||||||
let layoutJsonReader = new FileReader();
|
let layoutJsonReader = new FileReader();
|
||||||
@@ -371,18 +355,16 @@
|
|||||||
layoutJson = JSON.parse(layoutJsonResult);
|
layoutJson = JSON.parse(layoutJsonResult);
|
||||||
layoutJson = layoutJson;
|
layoutJson = layoutJson;
|
||||||
wigetsUpdate();
|
wigetsUpdate();
|
||||||
layoutJsonParced = true;
|
|
||||||
if (debug) console.log("✔", "layoutJson parced");
|
if (debug) console.log("✔", "layoutJson parced");
|
||||||
|
onParced("layout");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
//сборщик settingsJson пакетов========================================
|
//сборщик settingsJson пакетов========================================
|
||||||
if (data === "/st/settings.json") {
|
if (data === "/st/settings.json") {
|
||||||
//if (debug) console.log("[i]", "settingsJson start!");
|
|
||||||
settingsJsonFlag = true;
|
settingsJsonFlag = true;
|
||||||
}
|
}
|
||||||
if (data === "/end/settings.json") {
|
if (data === "/end/settings.json") {
|
||||||
//if (debug) console.log("[i]", "settingsJson end!");
|
|
||||||
settingsJsonFlag = false;
|
settingsJsonFlag = false;
|
||||||
var bb = settingsJsonBlob.getBlob();
|
var bb = settingsJsonBlob.getBlob();
|
||||||
let settingsJsonReader = new FileReader();
|
let settingsJsonReader = new FileReader();
|
||||||
@@ -393,9 +375,9 @@
|
|||||||
settingsJson = JSON.parse(settingsJsonResult);
|
settingsJson = JSON.parse(settingsJsonResult);
|
||||||
settingsJson = settingsJson;
|
settingsJson = settingsJson;
|
||||||
wigetsUpdate();
|
wigetsUpdate();
|
||||||
settingsJsonParced = true;
|
|
||||||
updateThisDeviceInList();
|
updateThisDeviceInList();
|
||||||
if (debug) console.log("✔", "settingsJson parced");
|
if (debug) console.log("✔", "settingsJson parced");
|
||||||
|
onParced("settings");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -428,13 +410,32 @@
|
|||||||
sendCurrentPageName();
|
sendCurrentPageName();
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveSettings() {
|
function saveSett() {
|
||||||
console.log("[i]", settingsJson);
|
var size = Object.keys(settingsJson).length;
|
||||||
wsSendMsg(selectedWs, "/sgnittes|" + JSON.stringify(settingsJson));
|
console.log("[i]", "settingsJson length: " + size);
|
||||||
|
if (size > 5) {
|
||||||
|
wsSendMsg(selectedWs, "/sgnittes|" + JSON.stringify(settingsJson));
|
||||||
|
} else {
|
||||||
|
window.alert("Ошибка");
|
||||||
|
}
|
||||||
clearData();
|
clearData();
|
||||||
sendCurrentPageName();
|
sendCurrentPageName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveMqtt() {
|
||||||
|
var size = Object.keys(settingsJson).length;
|
||||||
|
console.log("[i]", "settingsJson length: " + size);
|
||||||
|
if (size > 5) {
|
||||||
|
wsSendMsg(selectedWs, "/sgnittes|" + JSON.stringify(settingsJson));
|
||||||
|
} else {
|
||||||
|
window.alert("Ошибка");
|
||||||
|
}
|
||||||
|
clearData();
|
||||||
|
sendCurrentPageName();
|
||||||
|
wsSendMsg(selectedWs, "/mqtt|");
|
||||||
|
errorsJson.mqtt = "e13";
|
||||||
|
}
|
||||||
|
|
||||||
function generateLayout() {
|
function generateLayout() {
|
||||||
let layout = [];
|
let layout = [];
|
||||||
for (let i = 0; i < configJson.length; i++) {
|
for (let i = 0; i < configJson.length; i++) {
|
||||||
@@ -490,13 +491,6 @@
|
|||||||
|
|
||||||
errorsJson = {};
|
errorsJson = {};
|
||||||
|
|
||||||
configJsonParced = false;
|
|
||||||
widgetsJsonParced = false;
|
|
||||||
itemsJsonParced = false;
|
|
||||||
layoutJsonParced = false;
|
|
||||||
settingsJsonParced = false;
|
|
||||||
ssidJsonParced = false;
|
|
||||||
|
|
||||||
if (debug) console.log("[i]", "all app data cleared");
|
if (debug) console.log("[i]", "all app data cleared");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -618,7 +612,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function devListSave() {
|
function addDevInList() {
|
||||||
//createDefaultDevice();
|
//createDefaultDevice();
|
||||||
if (!showInput) {
|
if (!showInput) {
|
||||||
if (newDevice.name !== undefined && newDevice.ip !== undefined && newDevice.id !== undefined) {
|
if (newDevice.name !== undefined && newDevice.ip !== undefined && newDevice.id !== undefined) {
|
||||||
@@ -772,7 +766,7 @@
|
|||||||
|
|
||||||
//************************************************elements and presets dropdown************************************************************/
|
//************************************************elements and presets dropdown************************************************************/
|
||||||
|
|
||||||
function ssidDropdownClick() {
|
function ssidClick() {
|
||||||
wsSendMsg(selectedWs, "/scan|");
|
wsSendMsg(selectedWs, "/scan|");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -786,16 +780,6 @@
|
|||||||
myTimeout = setTimeout(rebootingTask, rebootingTimeout);
|
myTimeout = setTimeout(rebootingTask, rebootingTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
function mqttConnect() {
|
|
||||||
errorsJson.mqtt = 8;
|
|
||||||
console.log("[i]", settingsJson);
|
|
||||||
wsSendMsg(selectedWs, "/sgnittes|" + JSON.stringify(settingsJson));
|
|
||||||
//wsSendMsg(selectedWs, '/rorre|{"mqtt":8}');
|
|
||||||
wsSendMsg(selectedWs, "/mqtt|");
|
|
||||||
clearData();
|
|
||||||
sendCurrentPageName();
|
|
||||||
}
|
|
||||||
|
|
||||||
function rebootingTask() {
|
function rebootingTask() {
|
||||||
clearTimeout(myTimeout);
|
clearTimeout(myTimeout);
|
||||||
connectToAllDevices();
|
connectToAllDevices();
|
||||||
@@ -808,23 +792,7 @@
|
|||||||
wsSendMsg(selectedWs, '/rorre|{"' + alarmKey + '":0}');
|
wsSendMsg(selectedWs, '/rorre|{"' + alarmKey + '":0}');
|
||||||
}
|
}
|
||||||
|
|
||||||
//*******************************************************awaiting********************************************************************/
|
function onParced(file) {}
|
||||||
|
|
||||||
let promiseResolve;
|
|
||||||
let myPromise = 0;
|
|
||||||
|
|
||||||
async function connect() {
|
|
||||||
console.log("connect start");
|
|
||||||
saveSettings();
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
setTimeout(() => reject(), 10000);
|
|
||||||
promiseResolve = resolve;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function activate() {
|
|
||||||
myPromise = connect();
|
|
||||||
}
|
|
||||||
|
|
||||||
//*******************************************************initialisation********************************************************************/
|
//*******************************************************initialisation********************************************************************/
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
@@ -907,7 +875,7 @@
|
|||||||
<ConfigPage configJson={configJson} widgetsJson={widgetsJson} itemsJson={itemsJson} saveConfig={() => saveConfig()} />
|
<ConfigPage configJson={configJson} widgetsJson={widgetsJson} itemsJson={itemsJson} saveConfig={() => saveConfig()} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/connection">
|
<Route path="/connection">
|
||||||
<ConnectionPage settingsJson={settingsJson} errorsJson={errorsJson} myPromise={myPromise} activate={() => activate()} ssidJson={ssidJson} rebootEsp={() => rebootEsp()} ssidDropdownClick={() => ssidDropdownClick()} saveSettings={() => saveSettings()} mqttConnect={() => mqttConnect()} />
|
<ConnectionPage rebootEsp={() => rebootEsp()} ssidClick={() => ssidClick()} saveSett={() => saveSett()} saveMqtt={() => saveMqtt()} settingsJson={settingsJson} errorsJson={errorsJson} ssidJson={ssidJson} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="/system">
|
<Route path="/system">
|
||||||
<SystemPage settingsJson={settingsJson} errorsJson={errorsJson} rebootEsp={() => rebootEsp()} cancelAlarm={(alarmKey) => cancelAlarm(alarmKey)} version={version} />
|
<SystemPage settingsJson={settingsJson} errorsJson={errorsJson} rebootEsp={() => rebootEsp()} cancelAlarm={(alarmKey) => cancelAlarm(alarmKey)} version={version} />
|
||||||
@@ -924,7 +892,7 @@
|
|||||||
<!--</Route>-->
|
<!--</Route>-->
|
||||||
{/if}
|
{/if}
|
||||||
<Route path="/list">
|
<Route path="/list">
|
||||||
<ListPage deviceList={deviceList} showInput={showInput} devListSave={() => devListSave()} newDevice={newDevice} />
|
<ListPage deviceList={deviceList} showInput={showInput} addDevInList={() => addDevInList()} newDevice={newDevice} />
|
||||||
</Route>
|
</Route>
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -6,141 +6,129 @@
|
|||||||
export let errorsJson;
|
export let errorsJson;
|
||||||
export let ssidJson;
|
export let ssidJson;
|
||||||
|
|
||||||
export let myPromise;
|
export let ssidClick = () => {};
|
||||||
|
export let saveSett = () => {};
|
||||||
export let activate = () => {};
|
export let saveMqtt = () => {};
|
||||||
|
|
||||||
export let ssidDropdownClick = () => {};
|
|
||||||
export let saveSettings = () => {};
|
|
||||||
export let mqttConnect = () => {};
|
|
||||||
export let rebootEsp = () => {};
|
export let rebootEsp = () => {};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#await myPromise}
|
<div class="grd-2col1">
|
||||||
<p>Connecting...</p>
|
<Card title="Подключение к WiFi">
|
||||||
<!--<button class="btn-lg" on:click={() => promiseResolve()}>resolve</button>-->
|
<div class="crd-itm-psn">
|
||||||
{:then}
|
<div class="w-4/6">
|
||||||
<div class="grd-2col1">
|
<p class="wgt-dscr-stl">Название устройства</p>
|
||||||
<Card title="Подключение к WiFi">
|
|
||||||
<div class="crd-itm-psn">
|
|
||||||
<div class="w-4/6">
|
|
||||||
<p class="wgt-dscr-stl">Название устройства</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.name} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="flex justify-end w-3/6">
|
||||||
<div class="w-4/6">
|
<input bind:value={settingsJson.name} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
<p class="wgt-dscr-stl">Точка доступа</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.apssid} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
</div>
|
||||||
<div class="w-4/6">
|
<div class="crd-itm-psn">
|
||||||
<p class="wgt-dscr-stl">Пароль точки доступа</p>
|
<div class="w-4/6">
|
||||||
</div>
|
<p class="wgt-dscr-stl">Точка доступа</p>
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.appass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="flex justify-end w-3/6">
|
||||||
<div class="w-4/6">
|
<input bind:value={settingsJson.apssid} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
<p class="wgt-dscr-stl">Название wifi сети</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<select class="ipt-rnd text-left focus:border-indigo-500" bind:value={settingsJson.routerssid} on:click={() => ssidDropdownClick()}>
|
|
||||||
{#each Object.entries(ssidJson) as [num, ssid]}
|
|
||||||
<option value={ssid}>
|
|
||||||
{ssid}
|
|
||||||
</option>
|
|
||||||
{/each}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
</div>
|
||||||
<div class="w-4/6">
|
<div class="crd-itm-psn">
|
||||||
<p class="wgt-dscr-stl">Пароль</p>
|
<div class="w-4/6">
|
||||||
</div>
|
<p class="wgt-dscr-stl">Пароль точки доступа</p>
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.routerpass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{#if errorsJson.passer === 1}
|
<div class="flex justify-end w-3/6">
|
||||||
<div class="grd-1col1">
|
<input bind:value={settingsJson.appass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
<Alarm title="Введен неправильный пароль" />
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
<div class="crd-itm-psn">
|
||||||
|
<div class="w-4/6">
|
||||||
|
<p class="wgt-dscr-stl">Название wifi сети</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end w-3/6">
|
||||||
|
<select class="ipt-rnd text-left focus:border-indigo-500" bind:value={settingsJson.routerssid} on:click={() => ssidClick()}>
|
||||||
|
{#each Object.entries(ssidJson) as [num, ssid]}
|
||||||
|
<option value={ssid}>
|
||||||
|
{ssid}
|
||||||
|
</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="w-4/6">
|
||||||
|
<p class="wgt-dscr-stl">Пароль</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end w-3/6">
|
||||||
|
<input bind:value={settingsJson.routerpass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{#if errorsJson.passer === 1}
|
||||||
|
<div class="grd-1col1">
|
||||||
|
<Alarm title="Введен неправильный пароль" />
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<button class="btn-lg" on:click={() => activate()}>try</button>
|
<button class="btn-lg" on:click={() => saveSett()}>{"Сохранить"}</button>
|
||||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
|
</Card>
|
||||||
</Card>
|
|
||||||
|
|
||||||
<Card title="Подключение к MQTT">
|
<Card title="Подключение к MQTT">
|
||||||
<div class="crd-itm-psn">
|
<div class="crd-itm-psn">
|
||||||
<div class="w-4/6">
|
<div class="w-4/6">
|
||||||
<p class="wgt-dscr-stl">Состояние подключения</p>
|
<p class="wgt-dscr-stl">Состояние подключения</p>
|
||||||
</div>
|
|
||||||
<div class="flex justify-center w-3/6 align-baseline text-sm sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
|
|
||||||
{#if errorsJson.mqtt === "e5"}
|
|
||||||
<p class="text-green-500 font-bold h-8 bg-green-50 border-2 border-gray-200 rounded w-full text-center">Подключено</p>
|
|
||||||
{:else if errorsJson.mqtt === "e13"}
|
|
||||||
<p class="text-yellow-500 font-bold h-8 bg-yellow-50 border-2 border-gray-200 rounded w-full text-center">Подключение</p>
|
|
||||||
{:else}
|
|
||||||
<p class="text-red-500 font-bold h-8 bg-red-50 border-2 border-gray-200 rounded w-full text-center">Ошибка</p>
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="flex justify-center w-3/6 align-baseline text-sm sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words">
|
||||||
<div class="w-4/6">
|
{#if errorsJson.mqtt === "e5"}
|
||||||
<p class="wgt-dscr-stl">Название сервера</p>
|
<p class="text-green-500 font-bold h-8 bg-green-50 border-2 border-gray-200 rounded w-full text-center">Подключено</p>
|
||||||
</div>
|
{:else if errorsJson.mqtt === "e13"}
|
||||||
<div class="flex justify-end w-3/6">
|
<p class="text-yellow-500 font-bold h-8 bg-yellow-50 border-2 border-gray-200 rounded w-full text-center">Подключение</p>
|
||||||
<input bind:value={settingsJson.mqttServer} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
{:else}
|
||||||
</div>
|
<p class="text-red-500 font-bold h-8 bg-red-50 border-2 border-gray-200 rounded w-full text-center">Ошибка</p>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
</div>
|
||||||
<div class="w-4/6">
|
<div class="crd-itm-psn">
|
||||||
<p class="wgt-dscr-stl">Порт</p>
|
<div class="w-4/6">
|
||||||
</div>
|
<p class="wgt-dscr-stl">Название сервера</p>
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.mqttPort} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="flex justify-end w-3/6">
|
||||||
<div class="w-4/6">
|
<input bind:value={settingsJson.mqttServer} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
<p class="wgt-dscr-stl">Префикс</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.mqttPrefix} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
</div>
|
||||||
<div class="w-4/6">
|
<div class="crd-itm-psn">
|
||||||
<p class="wgt-dscr-stl">Имя пользователя</p>
|
<div class="w-4/6">
|
||||||
</div>
|
<p class="wgt-dscr-stl">Порт</p>
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.mqttUser} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="flex justify-end w-3/6">
|
||||||
<div class="w-4/6">
|
<input bind:value={settingsJson.mqttPort} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
<p class="wgt-dscr-stl">Пароль</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end w-3/6">
|
|
||||||
<input bind:value={settingsJson.mqttPass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<button class="btn-lg" on:click={() => mqttConnect()}>{"Сохранить"}</button>
|
</div>
|
||||||
</Card>
|
<div class="crd-itm-psn">
|
||||||
</div>
|
<div class="w-4/6">
|
||||||
<div class="grd-1col1">
|
<p class="wgt-dscr-stl">Префикс</p>
|
||||||
<Card>
|
</div>
|
||||||
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
|
<div class="flex justify-end w-3/6">
|
||||||
</Card>
|
<input bind:value={settingsJson.mqttPrefix} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
</div>
|
</div>
|
||||||
{:catch}
|
</div>
|
||||||
<p>error</p>
|
<div class="crd-itm-psn">
|
||||||
{/await}
|
<div class="w-4/6">
|
||||||
|
<p class="wgt-dscr-stl">Имя пользователя</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end w-3/6">
|
||||||
|
<input bind:value={settingsJson.mqttUser} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="w-4/6">
|
||||||
|
<p class="wgt-dscr-stl">Пароль</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end w-3/6">
|
||||||
|
<input bind:value={settingsJson.mqttPass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button class="btn-lg" on:click={() => saveMqtt()}>{"Сохранить"}</button>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
<div class="grd-1col1">
|
||||||
|
<Card>
|
||||||
|
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
export let showInput;
|
export let showInput;
|
||||||
export let newDevice = {};
|
export let newDevice = {};
|
||||||
|
|
||||||
export let devListSave = () => {};
|
export let addDevInList = () => {};
|
||||||
|
|
||||||
let debug = true;
|
let debug = true;
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<button class="btn-lg" on:click={() => ((showInput = !showInput), devListSave())}>{showInput ? "Сохранить" : "Добавить устройство"}</button>
|
<button class="btn-lg" on:click={() => ((showInput = !showInput), addDevInList())}>{showInput ? "Сохранить" : "Добавить устройство"}</button>
|
||||||
</Card>
|
</Card>
|
||||||
<Alarm>
|
<Alarm>
|
||||||
<p>Список устройств будет обновляться автоматически. Подключенные к одному роутеру устройства будут появляться в списке в течении двух минут. Ручное добавление сделано в целях проверки для разработчика.</p>
|
<p>Список устройств будет обновляться автоматически. Подключенные к одному роутеру устройства будут появляться в списке в течении двух минут. Ручное добавление сделано в целях проверки для разработчика.</p>
|
||||||
|
|||||||
@@ -139,12 +139,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="crd-itm-psn">
|
||||||
<div class="w-3/4">
|
<div class="w-3/4">
|
||||||
<p class="wgt-dscr-stl">Время работы устройства</p>
|
<p class="wgt-dscr-stl">Uptime устройства</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-center w-1/4">
|
<div class="flex justify-center w-1/4">
|
||||||
<p class="text-gray-500 font-bold">{errorsJson.upt}</p>
|
<p class="text-gray-500 font-bold">{errorsJson.upt}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="w-3/4">
|
||||||
|
<p class="wgt-dscr-stl">Uptime сессии mqtt</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-center w-1/4">
|
||||||
|
<p class="text-gray-500 font-bold">{errorsJson.uptm}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="crd-itm-psn">
|
<div class="crd-itm-psn">
|
||||||
<div class="w-3/4">
|
<div class="w-3/4">
|
||||||
<p class="wgt-dscr-stl">Качество WiFi сигнала</p>
|
<p class="wgt-dscr-stl">Качество WiFi сигнала</p>
|
||||||
|
|||||||
29
src/training/await.svelte
Normal file
29
src/training/await.svelte
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<script>
|
||||||
|
let dataReceived;
|
||||||
|
let awaiting = 0;
|
||||||
|
|
||||||
|
async function awaitingData() {
|
||||||
|
console.log("Awaiting Data start...");
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
setTimeout(() => reject(), 10000);
|
||||||
|
dataReceived = resolve;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function startAwaiting() {
|
||||||
|
awaiting = awaitingData();
|
||||||
|
}
|
||||||
|
|
||||||
|
function onReceive() {
|
||||||
|
dataReceived();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#await awaiting}
|
||||||
|
<p>Connecting...</p>
|
||||||
|
<button on:click={() => onReceive()}>Resolve</button>
|
||||||
|
{:then}
|
||||||
|
<button on:click={() => startAwaiting()}>Start</button>
|
||||||
|
{:catch}
|
||||||
|
<p>error</p>
|
||||||
|
{/await}
|
||||||
Reference in New Issue
Block a user