This commit is contained in:
avaksru
2021-12-13 16:40:44 +03:00
parent d083fbf9cf
commit 32350ddaf1
31 changed files with 860 additions and 149 deletions

View File

@@ -1,37 +1,37 @@
{
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "rise",
"routerpass": "hostel3333",
"timezone": 1,
"ntp": "pool.ntp.org",
"mqttServer": "M2.WQTT.RU",
"mqttPort": 8021,
"mqttPrefix": "/iotTest3",
"mqttUser": "rise",
"mqttPass": "hostel3333",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo",
"telegonof": "0",
"teleginput": "0",
"autos": "1",
"weblogin": "admin",
"webpass": "admin",
"MqttIn": "0",
"MqttOut": "0",
"blink": "0",
"oneWirePin": "2",
"serverip": "http://206.189.49.244",
"uart": "0",
"uartS": "9600",
"uartTX": "12",
"uartRX": "13",
"grafmax": "0"
}
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "Mikro",
"routerpass": "4455667788",
"timezone": 3,
"ntp": "pool.ntp.org",
"mqttServer": "live-control.ru",
"mqttPort": 1883,
"mqttPrefix": "/IotManager",
"mqttUser": "IotManager:guest",
"mqttPass": "guest",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "",
"telegonof": "0",
"teleginput": "0",
"autos": "1",
"weblogin": "admin",
"webpass": "admin",
"MqttIn": "0",
"MqttOut": "0",
"blink": "0",
"oneWirePin": "2",
"serverip": "http://206.189.49.244",
"uart": "0",
"uartS": "9600",
"uartTX": "12",
"uartRX": "13",
"grafmax": "0"
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>LiveControl v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/dashboard/global.css" />
<link rel="stylesheet" href="/dashboard/build/bundle.css" />
<script defer src="/dashboard/build/bundle.js" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

Binary file not shown.

View File

@@ -1 +1,5 @@
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
0;output-value;ip;anydata;IoTManager;IP;9
0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11
1 Удалить Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета Тип элемента Id Виджет Имя вкладки Имя виджета Позиция виджета
2 0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
3 0;output-value;ip;anydata;IoTManager;IP;9
4 0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
5 0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11

View File

@@ -1 +1,5 @@
//
timenow > 0
weekday %weekday%
ip %IP%
time %date%
end

View File

@@ -0,0 +1 @@
.letter.svelte-1ls9om6{color:grey;font-size:60%;padding-left:0px;opacity:0.5}table.svelte-1ls9om6{margin:0px;background-color:#fafafa;line-height:1}td.svelte-1ls9om6{text-align:left;padding-left:1px}input[type="text"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}.letter1.svelte-1ls9om6{color:grey;font-size:80%;padding-left:20px}.letter2.svelte-1ls9om6{text-align:left;padding-left:0px}select.svelte-1ls9om6{padding:10px;border-radius:10px;padding-left:20px;height:40px;font-size:13px}input[type="password"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}input.svelte-1ls9om6:required:invalid:not(:placeholder-shown){border-color:crimson}.red.svelte-1ls9om6{border-color:crimson}progress.svelte-1ls9om6{height:4px}textarea.svelte-1ls9om6{width:100%}button.svelte-1ls9om6{height:30px;border-radius:4px;line-height:0}body.light-mode{background-color:white}body.dark-mode{background-color:#1d3040;color:#bfc2c7}body.dark-mode textarea.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode input.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode select.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode div.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode span.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}.Shutter.svelte-1ls9om6{background-color:hsl(200, 16%, 96%);color:blak;padding:10px;border-radius:5px}body.dark-mode .Shutter.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:5px}body.dark-mode table.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode .letter1.svelte-1ls9om6{color:#bfc2c7}body.dark-mode .letter2.svelte-1ls9om6{color:#bfc2c7}body.dark-mode b.svelte-1ls9om6{color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}h5.svelte-1ls9om6{display:inline}.box.svelte-hp9es9{width:93%;border:1px solid #aaa;border-radius:10px;box-shadow:10px 10px 8px rgba(0, 0, 0, 0.1);padding:1em;margin:0 0 1em 0}.tooltip.svelte-1vepdvs{border:1px solid #ddd;box-shadow:1px 1px 1px #ddd;background:rgb(185, 238, 241);border-radius:4px;padding:4px;position:absolute;color:black}.modal-background.svelte-10j5cq5{position:fixed;top:0;left:0;width:100%;height:100%;background:gray;opacity:0.8}.modal.svelte-10j5cq5{position:absolute;left:50%;top:50%;width:calc(100vw - 4em);max-width:32em;max-height:calc(100vh - 4em);overflow:auto;transform:translate(-50%, -50%);padding:1em;border-radius:0.2em;background:white}button.svelte-10j5cq5{display:block}.rotate-shadows.svelte-tks6xu{width:220px;height:220px;position:relative}.rotate-shadows.svelte-tks6xu:after,.rotate-shadows.svelte-tks6xu:before{content:"";border-radius:150%;position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:center center}.rotate-shadows.svelte-tks6xu:before{box-shadow:inset 0 20px 0 rgba(0, 250, 250, 0.2), inset 20px 0 0 rgba(0, 200, 200, 0.2), inset 0 -20px 0 rgba(0, 150, 200, 0.2), inset -20px 0 0 rgba(0, 200, 250, 0.2);animation:svelte-tks6xu-rotate-before 9s -0.5s linear infinite}.rotate-shadows.svelte-tks6xu:after{box-shadow:inset 0 20px 0 rgba(250, 250, 0, 0.2), inset 20px 0 0 rgba(250, 200, 0, 0.2), inset 0 -20px 0 rgba(250, 150, 0, 0.2), inset -20px 0 0 rgba(250, 100, 0, 0.2);animation:svelte-tks6xu-rotate-after 9s -0.5s linear infinite}@keyframes svelte-tks6xu-rotate-after{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(180deg) scaleX(0.82) scaleY(0.95)}100%{transform:rotateZ(360deg) scaleX(1) scaleY(1)}}@keyframes svelte-tks6xu-rotate-before{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(-180deg) scaleX(0.95) scaleY(0.85)}100%{transform:rotateZ(-360deg) scaleX(1) scaleY(1)}}

Binary file not shown.

63
data_esp/setup/global.css Normal file
View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

103
data_esp/setup/index.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>IotManager v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/setup/global.css" />
<link rel="stylesheet" href="/setup/build/bundle.css?0.3" />
<script defer src="/setup/build/bundle.js?0.3" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

BIN
data_esp/setup/progress.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,34 +1,35 @@
{
"undef": "Ошибка",
"toggleBtn": "Кнопка переключатель",
"range": "Ползунок",
"inputDate": "Окно ввода даты",
"inputTime": "Окно ввода времени 1",
"inputTimeClock": "Окно ввода времени 2",
"inputDigit": "Окно ввода цифры",
"inputDigitTemp": "Окно ввода температуры",
"inputText": "Окно ввода текста",
"select": "Выпадающий список",
"chart": "График без точек",
"chart2": "График с точками",
"chart3": "График дневного расхода (столбики)",
"chart4": "График дневного расхода (плавный)",
"fillgauge": "Бочка",
"progress-line": "Линия",
"progress-round": "Круг",
"anydata": "Текст",
"anydataHum": "Влажность (%)",
"anydataPress": "Давление (mm)",
"anydataTemp": "Температура (°С)",
"anydataPpb": "Части на миллиард (ppb)",
"anydataPpm": "Части на миллион (ppm)",
"anydataVlt": "Напряжение (Vlt)",
"anydataAmp": "Сила тока (Amp)",
"anydataWtt": "Мощность (Wtt)",
"anydataWhr": "Энергия (Whr)",
"anydataHtz": "Частота (Htz)",
"anydataTime": "Манометр",
"alarm": "Тревожное сообщение 1",
"anydataAlarm": "Тревожное сообщение 2",
"na": "Без виджета"
}
{
"undef": "Ошибка",
"toggleBtn": "Переключатель",
"btn": "Кнопка",
"select": "Кнопка переключатель",
"range": "Ползунок",
"inputDate": "Окно ввода даты",
"inputTime": "Окно ввода времени 1",
"inputTimeClock": "Окно ввода времени 2",
"inputDigit": "Окно ввода цифры",
"inputDigitTemp": "Окно ввода температуры",
"inputText": "Окно ввода текста",
"chart": "График без точек",
"chart2": "График с точками",
"chart3": "График дневного расхода (столбики)",
"chart4": "График дневного расхода (плавный)",
"fillgauge": "Бочка",
"progress-line": "Линия",
"progress-round": "Круг",
"anydata": "Текст",
"anydataHum": "Влажность (%)",
"anydataPress": "Давление (mm)",
"anydataTemp": "Температура (°С)",
"anydataPpb": "Части на миллиард (ppb)",
"anydataPpm": "Части на миллион (ppm)",
"anydataVlt": "Напряжение (Vlt)",
"anydataAmp": "Сила тока (Amp)",
"anydataWtt": "Мощность (Wtt)",
"anydataWhr": "Энергия (Whr)",
"anydataHtz": "Частота (Htz)",
"anydataTime": "Манометр",
"alarm": "Тревожное сообщение 1",
"anydataAlarm": "Тревожное сообщение 2",
"na": "Без виджета"
}

View File

@@ -1,5 +1,6 @@
{
"widget": "anydata",
"after": "%",
"icon": "water"
}
"icon": "water",
"color": "#88AADF"
}

View File

@@ -1,5 +1,16 @@
{
"widget": "anydata",
"after": "°С",
"icon": "thermometer"
}
"icon": "thermometer",
"font": "OCR A Std",
"color": [
{ "level": -20, "value": "#0000CC" },
{ "level": -10, "value": "#0000CC" },
{ "level": 0, "value": "#0000CC" },
{ "level": 12, "value": "#3366FF" },
{ "level": 16, "value": "#33CCFF" },
{ "level": 18, "value": "#009933" },
{ "level": 30, "value": "#FF9900" },
{ "level": 40, "value": "red" }
]
}

View File

@@ -1,38 +1,37 @@
{
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "rise2",
"routerpass": "hostel3333",
"timezone": 1,
"ntp": "pool.ntp.org",
"mqttServer": "91.204.228.124",
"mqttPort": 1883,
"mqttPrefix": "/iotTest4",
"mqttUser": "rise",
"mqttPass": "23ri22se32",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "1416711569:AAEI0j83GmXqwzb_gnK1B0Am0gDwZoJt5xo",
"telegonof": "0",
"teleginput": "0",
"autos": "1",
"weblogin": "admin",
"webpass": "admin",
"MqttIn": "0",
"MqttOut": "0",
"blink": "0",
"oneWirePin": "2",
"serverip": "http://206.189.49.244",
"uart": "0",
"uartS": "9600",
"uartTX": "12",
"uartRX": "13",
"grafmax": "0",
"gateAuto": "0"
}
"name": "IoTmanager",
"chipID": "",
"apssid": "IoTmanager",
"appass": "",
"routerssid": "Mikro",
"routerpass": "4455667788",
"timezone": 3,
"ntp": "pool.ntp.org",
"mqttServer": "live-control.ru",
"mqttPort": 1883,
"mqttPrefix": "/IotManager",
"mqttUser": "IotManager:guest",
"mqttPass": "guest",
"mqttServer2": "",
"mqttPort2": 0,
"mqttPrefix2": "",
"mqttUser2": "",
"mqttPass2": "",
"scen": "1",
"telegramApi": "",
"telegonof": "0",
"teleginput": "0",
"autos": "1",
"weblogin": "admin",
"webpass": "admin",
"MqttIn": "0",
"MqttOut": "0",
"blink": "0",
"oneWirePin": "2",
"serverip": "http://206.189.49.244",
"uart": "0",
"uartS": "9600",
"uartTX": "12",
"uartRX": "13",
"grafmax": "0"
}

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

View File

@@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>LiveControl v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/dashboard/global.css" />
<link rel="stylesheet" href="/dashboard/build/bundle.css" />
<script defer src="/dashboard/build/bundle.js" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

Binary file not shown.

View File

@@ -1 +1,5 @@
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета
0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
0;output-value;ip;anydata;IoTManager;IP;9
0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11
1 Удалить Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета Тип элемента Id Виджет Имя вкладки Имя виджета Позиция виджета
2 0;uptime;upt;anydataTime;IoTManager;%name%#uptime;8;int[60]
3 0;output-value;ip;anydata;IoTManager;IP;9
4 0;output-value;time;anydata;IoTManager;Время#на#устройстве;10
5 0;output-value;weekday;anydata;IoTManager;День#недели#на#устройстве ;11

View File

@@ -1 +1,5 @@
//
timenow > 0
weekday %weekday%
ip %IP%
time %date%
end

View File

@@ -0,0 +1 @@
.letter.svelte-1ls9om6{color:grey;font-size:60%;padding-left:0px;opacity:0.5}table.svelte-1ls9om6{margin:0px;background-color:#fafafa;line-height:1}td.svelte-1ls9om6{text-align:left;padding-left:1px}input[type="text"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}.letter1.svelte-1ls9om6{color:grey;font-size:80%;padding-left:20px}.letter2.svelte-1ls9om6{text-align:left;padding-left:0px}select.svelte-1ls9om6{padding:10px;border-radius:10px;padding-left:20px;height:40px;font-size:13px}input[type="password"].svelte-1ls9om6{width:100%;padding:10px;border:1;box-shadow:0 0 15px 10px rgba(0, 0, 0, 0.06);border-radius:1px}input.svelte-1ls9om6:required:invalid:not(:placeholder-shown){border-color:crimson}.red.svelte-1ls9om6{border-color:crimson}progress.svelte-1ls9om6{height:4px}textarea.svelte-1ls9om6{width:100%}button.svelte-1ls9om6{height:30px;border-radius:4px;line-height:0}body.light-mode{background-color:white}body.dark-mode{background-color:#1d3040;color:#bfc2c7}body.dark-mode textarea.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode input.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode select.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode div.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode span.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}.Shutter.svelte-1ls9om6{background-color:hsl(200, 16%, 96%);color:blak;padding:10px;border-radius:5px}body.dark-mode .Shutter.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:5px}body.dark-mode table.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}body.dark-mode .letter1.svelte-1ls9om6{color:#bfc2c7}body.dark-mode .letter2.svelte-1ls9om6{color:#bfc2c7}body.dark-mode b.svelte-1ls9om6{color:#bfc2c7}body.dark-mode button.svelte-1ls9om6{background-color:#1d3040;color:#bfc2c7}h5.svelte-1ls9om6{display:inline}.box.svelte-hp9es9{width:93%;border:1px solid #aaa;border-radius:10px;box-shadow:10px 10px 8px rgba(0, 0, 0, 0.1);padding:1em;margin:0 0 1em 0}.tooltip.svelte-1vepdvs{border:1px solid #ddd;box-shadow:1px 1px 1px #ddd;background:rgb(185, 238, 241);border-radius:4px;padding:4px;position:absolute;color:black}.modal-background.svelte-10j5cq5{position:fixed;top:0;left:0;width:100%;height:100%;background:gray;opacity:0.8}.modal.svelte-10j5cq5{position:absolute;left:50%;top:50%;width:calc(100vw - 4em);max-width:32em;max-height:calc(100vh - 4em);overflow:auto;transform:translate(-50%, -50%);padding:1em;border-radius:0.2em;background:white}button.svelte-10j5cq5{display:block}.rotate-shadows.svelte-tks6xu{width:220px;height:220px;position:relative}.rotate-shadows.svelte-tks6xu:after,.rotate-shadows.svelte-tks6xu:before{content:"";border-radius:150%;position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:center center}.rotate-shadows.svelte-tks6xu:before{box-shadow:inset 0 20px 0 rgba(0, 250, 250, 0.2), inset 20px 0 0 rgba(0, 200, 200, 0.2), inset 0 -20px 0 rgba(0, 150, 200, 0.2), inset -20px 0 0 rgba(0, 200, 250, 0.2);animation:svelte-tks6xu-rotate-before 9s -0.5s linear infinite}.rotate-shadows.svelte-tks6xu:after{box-shadow:inset 0 20px 0 rgba(250, 250, 0, 0.2), inset 20px 0 0 rgba(250, 200, 0, 0.2), inset 0 -20px 0 rgba(250, 150, 0, 0.2), inset -20px 0 0 rgba(250, 100, 0, 0.2);animation:svelte-tks6xu-rotate-after 9s -0.5s linear infinite}@keyframes svelte-tks6xu-rotate-after{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(180deg) scaleX(0.82) scaleY(0.95)}100%{transform:rotateZ(360deg) scaleX(1) scaleY(1)}}@keyframes svelte-tks6xu-rotate-before{0%{transform:rotateZ(0deg) scaleX(1) scaleY(1)}50%{transform:rotateZ(-180deg) scaleX(0.95) scaleY(0.85)}100%{transform:rotateZ(-360deg) scaleX(1) scaleY(1)}}

Binary file not shown.

63
data_ms/setup/global.css Normal file
View File

@@ -0,0 +1,63 @@
html, body {
position: relative;
width: 100%;
height: 100%;
}
body {
color: #333;
margin: 0;
padding: 8px;
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
a {
color: rgb(0,100,200);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: rgb(0,80,160);
}
label {
display: block;
}
input, button, select, textarea {
font-family: inherit;
font-size: inherit;
-webkit-padding: 0.4em 0;
padding: 0.4em;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 2px;
}
input:disabled {
color: #ccc;
}
button {
color: #333;
background-color: #f4f4f4;
outline: none;
}
button:disabled {
color: #999;
}
button:not(:disabled):active {
background-color: #ddd;
}
button:focus {
border-color: #666;
}

103
data_ms/setup/index.html Normal file
View File

@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>IotManager v 0.3.2</title>
<link rel="icon" type="image/png" href="/favicon.ico" />
<link rel="stylesheet" href="/setup/global.css" />
<link rel="stylesheet" href="/setup/build/bundle.css?0.3" />
<script defer src="/setup/build/bundle.js?0.3" onload="loadPage()"></script>
<script>
function get_cookie ( cookie_name ){
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
if (get_cookie("darktheme") == "true"){
var myColor = "#1d3040";
document.write('\
<style>\
body{\
background-color: '+myColor+';\
}\
</style>\
');
}
function loadPage() {
document.getElementById("status").style.display = "none";
}
</script>
<style>
.rotate-shadows {
width: 220px;
height: 220px;
margin:0 auto;
position: relative;
}
.rotate-shadows:after,
.rotate-shadows:before {
content: "";
border-radius: 150%;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform-origin: center center;
}
.rotate-shadows:before {
box-shadow: inset 0 20px 0 rgba(0, 250, 250, 0.2),
inset 20px 0 0 rgba(0, 200, 200, 0.2),
inset 0 -20px 0 rgba(0, 150, 200, 0.2),
inset -20px 0 0 rgba(0, 200, 250, 0.2);
animation: rotate-before 9s -0.5s linear infinite;
}
.rotate-shadows:after {
box-shadow: inset 0 20px 0 rgba(250, 250, 0, 0.2),
inset 20px 0 0 rgba(250, 200, 0, 0.2),
inset 0 -20px 0 rgba(250, 150, 0, 0.2),
inset -20px 0 0 rgba(250, 100, 0, 0.2);
animation: rotate-after 9s -0.5s linear infinite;
}
@keyframes rotate-after {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(180deg) scaleX(0.82) scaleY(0.95);
}
100% {
transform: rotateZ(360deg) scaleX(1) scaleY(1);
}
}
@keyframes rotate-before {
0% {
transform: rotateZ(0deg) scaleX(1) scaleY(1);
}
50% {
transform: rotateZ(-180deg) scaleX(0.95) scaleY(0.85);
}
100% {
transform: rotateZ(-360deg) scaleX(1) scaleY(1);
}
}
</style>
</head>
<body>
<p><div id="status" class="rotate-shadows"></div></p>
</body>
</html>

BIN
data_ms/setup/progress.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,33 +1,35 @@
{
"toggleBtn": "Кнопка переключатель",
"range": "Ползунок",
"inputDate": "Окно ввода даты",
"inputTime": "Окно ввода времени 1",
"inputTimeClock": "Окно ввода времени 2",
"inputDigit": "Окно ввода цифры",
"inputDigitTemp": "Окно ввода температуры",
"inputText": "Окно ввода текста",
"select": "Выпадающий список",
"chart": "График без точек",
"chart2": "График с точками",
"chart3": "График дневного расхода (столбики)",
"chart4": "График дневного расхода (плавный)",
"fillgauge": "Бочка",
"progress-line": "Линия",
"progress-round": "Круг",
"anydata": "Текст",
"anydataHum": "Влажность (%)",
"anydataPress": "Давление (mm)",
"anydataTemp": "Температура (°С)",
"anydataPpb": "Части на миллиард (ppb)",
"anydataPpm": "Части на миллион (ppm)",
"anydataVlt": "Напряжение (Vlt)",
"anydataAmp": "Сила тока (Amp)",
"anydataWtt": "Мощность (Wtt)",
"anydataWhr": "Энергия (Whr)",
"anydataHtz": "Частота (Htz)",
"anydataTime": "Манометр",
"alarm": "Тревожное сообщение 1",
"anydataAlarm": "Тревожное сообщение 2",
"na": "Без виджета"
}
"undef": "Ошибка",
"toggleBtn": "Переключатель",
"btn": "Кнопка",
"select": "Кнопка переключатель",
"range": "Ползунок",
"inputDate": "Окно ввода даты",
"inputTime": "Окно ввода времени 1",
"inputTimeClock": "Окно ввода времени 2",
"inputDigit": "Окно ввода цифры",
"inputDigitTemp": "Окно ввода температуры",
"inputText": "Окно ввода текста",
"chart": "График без точек",
"chart2": "График с точками",
"chart3": "График дневного расхода (столбики)",
"chart4": "График дневного расхода (плавный)",
"fillgauge": "Бочка",
"progress-line": "Линия",
"progress-round": "Круг",
"anydata": "Текст",
"anydataHum": "Влажность (%)",
"anydataPress": "Давление (mm)",
"anydataTemp": "Температура (°С)",
"anydataPpb": "Части на миллиард (ppb)",
"anydataPpm": "Части на миллион (ppm)",
"anydataVlt": "Напряжение (Vlt)",
"anydataAmp": "Сила тока (Amp)",
"anydataWtt": "Мощность (Wtt)",
"anydataWhr": "Энергия (Whr)",
"anydataHtz": "Частота (Htz)",
"anydataTime": "Манометр",
"alarm": "Тревожное сообщение 1",
"anydataAlarm": "Тревожное сообщение 2",
"na": "Без виджета"
}

View File

@@ -1,5 +1,16 @@
{
"widget": "anydata",
"after": "°С",
"icon": "thermometer"
}
"icon": "thermometer",
"font": "OCR A Std",
"color": [
{ "level": -20, "value": "#0000CC" },
{ "level": -10, "value": "#0000CC" },
{ "level": 0, "value": "#0000CC" },
{ "level": 12, "value": "#3366FF" },
{ "level": 16, "value": "#33CCFF" },
{ "level": 18, "value": "#009933" },
{ "level": 30, "value": "#FF9900" },
{ "level": 40, "value": "red" }
]
}