mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-04-01 04:49:18 +03:00
изменения
This commit is contained in:
@@ -3,115 +3,142 @@
|
||||
import Alarm from "../components/Alarm.svelte";
|
||||
|
||||
export let settingsJson;
|
||||
//export let settingsJsonParced;
|
||||
export let errorsJson;
|
||||
//export let errorsJsonParced;
|
||||
export let ssidJson;
|
||||
let mqttConnected = true;
|
||||
//export let ssidJsonParced;
|
||||
|
||||
let promise = 0;
|
||||
let next = (value) => new Promise((resolve) => setTimeout(() => resolve(++value), 500));
|
||||
|
||||
export let ssidDropdownClick = () => {};
|
||||
export let saveSettings = () => {};
|
||||
export let mqttConnect = () => {};
|
||||
export let rebootEsp = () => {};
|
||||
</script>
|
||||
|
||||
<div class="grd-2col1">
|
||||
<Card title="Подключение к WiFi роутеру">
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Название устройства</p>
|
||||
{#await promise}
|
||||
<p>...</p>
|
||||
{:then result}
|
||||
<div class="grd-2col1">
|
||||
<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 class="wgt-w">
|
||||
<input bind:value={settingsJson.name} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
<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.apssid} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Точка доступа</p>
|
||||
<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.appass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.apssid} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
<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={() => ssidDropdownClick()}>
|
||||
{#each Object.entries(ssidJson) as [num, ssid]}
|
||||
<option value={ssid}>
|
||||
{ssid}
|
||||
</option>
|
||||
{/each}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Пароль точки доступа</p>
|
||||
<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>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.appass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
{#if errorsJson.passer === 1}
|
||||
<div class="grd-1col1">
|
||||
<Alarm title="Введен неправильный пароль" />
|
||||
</div>
|
||||
{/if}
|
||||
<button class="btn-lg" on:click={() => (promise = next(result))}>{result}</button>
|
||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
|
||||
</Card>
|
||||
|
||||
<Card title="Подключение к MQTT">
|
||||
<div class="crd-itm-psn">
|
||||
<div class="w-4/6">
|
||||
<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 === 0}
|
||||
<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 === 8}
|
||||
<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="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Название wifi сети</p>
|
||||
<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.mqttServer} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<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 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.mqttPort} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Пароль</p>
|
||||
<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.mqttPrefix} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.routerpass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
<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.mqttUser} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{#if errorsJson.passer === 1}
|
||||
<div class="grd-1col1">
|
||||
<Alarm title="Введен неправильный пароль" />
|
||||
<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>
|
||||
{/if}
|
||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
|
||||
</Card>
|
||||
<Card title="Подключение к MQTT брокеру" cloud={true} cloudColor={mqttConnected === true ? "text-green-500" : "text-red-500"}>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Название сервера</p>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.mqttServer} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Порт</p>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.mqttPort} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Префикс</p>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.mqttPrefix} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="crd-itm-psn">
|
||||
<div class="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Имя пользователя</p>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<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="wgt-dscr-w">
|
||||
<p class="wgt-dscr-stl">Пароль</p>
|
||||
</div>
|
||||
<div class="wgt-w">
|
||||
<input bind:value={settingsJson.mqttPass} class="ipt-rnd text-left focus:border-indigo-500" type="text" />
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить и проверить подключение"}</button>
|
||||
</Card>
|
||||
</div>
|
||||
<div class="grd-1col1">
|
||||
<Card>
|
||||
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
|
||||
</Card>
|
||||
</div>
|
||||
<button class="btn-lg" on:click={() => mqttConnect()}>{"Сохранить"}</button>
|
||||
</Card>
|
||||
</div>
|
||||
<div class="grd-1col1">
|
||||
<Card>
|
||||
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить устройство"}</button>
|
||||
</Card>
|
||||
</div>
|
||||
{/await}
|
||||
|
||||
@@ -73,21 +73,23 @@
|
||||
</Card>
|
||||
<Card title="Системные ошибки">
|
||||
<div class="grd-2col1">
|
||||
<!--Ошибки которые можно сбросить пользователю, связанные с ядром-->
|
||||
{#if errorsJson.wscle === 1}
|
||||
<Alarm title={"Ошибка web sockets"} close={() => cancelAlarm("wscle")}>
|
||||
<Alarm title={"Ошибка web sockets"} cross={true} close={() => cancelAlarm("wscle")}>
|
||||
<p class="break-words text-center">Слишком много клиентов было открыто. Допускается не более четырех.</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.jsbuf === 1}
|
||||
<Alarm title={"Ошибка json"} close={() => cancelAlarm("jsbuf")}>
|
||||
<Alarm title={"Ошибка json"} cross={true} close={() => cancelAlarm("jsbuf")}>
|
||||
<p class="break-words text-center">Недостаточный размер буфера библиотеки Arduino Json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.jserr > 0}
|
||||
<Alarm title={"Ошибка json"} close={() => cancelAlarm("jserr")}>
|
||||
<Alarm title={"Ошибка json"} cross={true} close={() => cancelAlarm("jserr")}>
|
||||
<p class="break-words text-center">Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Количество ошибок: {errorsJson.jserr}. Обратитесь к разработчику.</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
<!--Ошибки которые нельзя сбросить пользователю-->
|
||||
{#if errorsJson.bver != version}
|
||||
<Alarm title={"Ошибка версии"}>
|
||||
<p class="break-words text-center">Версия файловой системы не совпадает с версией прошивки. Вероятно произошла ошибка во время обновления устройства по воздуху.</p>
|
||||
@@ -98,6 +100,62 @@
|
||||
<p class="break-words text-center">Уровень сигнала WiFi предельно низкий, веб интерфейс может работать со сбоями и потерей данных, рекомендуется переместить устройство ближе к роутеру</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
<!--MQTT ошибки-->
|
||||
{#if errorsJson.mqtt === -4}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Нет ответа от сервера</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === -3}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Соединение было разорвано</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === -2}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === -1}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Клиент был отключен</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 1}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Ошибка версии</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 2}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Отклонен идентификатор</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 3}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Не могу установить соединение</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 4}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Неправильное имя пользователя/пароль</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 5}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Не авторизован для подключения</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 6}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Название сервера пустое</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
{#if errorsJson.mqtt === 7}
|
||||
<Alarm title={"MQTT"}>
|
||||
<p class="break-words text-center">Имя пользователя или пароль пустые</p>
|
||||
</Alarm>
|
||||
{/if}
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user