diff --git a/data_esp/config.json b/data_esp/config.json index 88ca3689..6684c7f5 100644 --- a/data_esp/config.json +++ b/data_esp/config.json @@ -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" -} \ No newline at end of file + "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" +} diff --git a/data_esp/dashboard/build/bundle.css b/data_esp/dashboard/build/bundle.css new file mode 100644 index 00000000..5c79bfd0 --- /dev/null +++ b/data_esp/dashboard/build/bundle.css @@ -0,0 +1 @@ +.svelte-tabs__tab-list{display:flex;justify-content:space-evenly;flex-wrap:wrap}.svelte-tabs li.svelte-tabs__tab{color:gray}.svelte-tabs li.svelte-tabs__selected{color:green}.red.svelte-wlhn5k.svelte-wlhn5k{color:crimson}.letter.svelte-wlhn5k.svelte-wlhn5k{color:grey;font-size:60%;padding-left:15px;opacity:0.8}progress.svelte-wlhn5k.svelte-wlhn5k{height:4px}input.svelte-wlhn5k.svelte-wlhn5k{text-align:right;border:1px solid #6699ff;width:100%}body.light-mode{background-color:white}body.dark-mode{background-color:#1d3040;color:#bfc2c7}body.dark-mode span.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode div.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode input.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode select.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:10px;padding-left:20px}select.svelte-wlhn5k.svelte-wlhn5k{padding:10px;border-radius:10px;padding-left:20px}.Shutter.svelte-wlhn5k.svelte-wlhn5k{background-color:hsl(200, 16%, 96%);color:blak;padding:10px;border-radius:5px}body.dark-mode .Shutter.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:5px}.btn.svelte-wlhn5k.svelte-wlhn5k{display:inline-block;box-sizing:border-box;padding:1px;margin:0 0px 5px 0;outline:none;border:1px solid #63b8ff;border-radius:10px;height:36px;line-height:0;font-size:14px;font-weight:500;text-decoration:none;color:#fff;background-color:#fff;position:relative;overflow:hidden;vertical-align:top;cursor:pointer;user-select:none;appearance:none;touch-action:manipulation}.btn.svelte-wlhn5k span.svelte-wlhn5k{box-shadow:7px 7px 5px rgba(0, 0, 0, 0.5);display:block;box-sizing:border-box;padding:0 8px;height:32px;line-height:33px;border:1px solid #63b8ff;border-radius:8px;font-size:14px;color:black;text-align:center;font-weight:600}.btnoff.svelte-wlhn5k.svelte-wlhn5k{display:inline-block;box-sizing:border-box;padding:1px;margin:0 0px 5px 0;outline:none;border:1px solid rgb(85, 84, 84);border-radius:10px;height:36px;line-height:0;font-size:14px;font-weight:500;text-decoration:none;color:#fff;background-color:#fff;position:relative;overflow:hidden;vertical-align:top;cursor:pointer;user-select:none;appearance:none;touch-action:manipulation}.btnoff.svelte-wlhn5k span.svelte-wlhn5k{box-shadow:7px 7px 5px rgba(0, 0, 0, 0.5);display:block;box-sizing:border-box;padding:0 8px;height:32px;line-height:33px;border:1px solid rgb(85, 84, 84);border-radius:8px;font-size:14px;color:black;text-align:center;font-weight:600}button.svelte-wlhn5k.svelte-wlhn5k{color:gray;background-color:#fff;border-bottom-style:solid;border-bottom-width:1px;border-top-width:0px;border-left-width:0px;border-right-width:0px;padding-left:4px;padding-right:4px;padding-top:1px;padding-bottom:1px}body.dark-mode button.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}.tabs__link.svelte-wlhn5k.svelte-wlhn5k{padding:0.5rem 0.75rem;text-decoration:none;color:gray;text-align:center;flex-shrink:0;flex-grow:1;border:0px;background-color:#fff}.tabs__link_active.svelte-wlhn5k.svelte-wlhn5k{color:black;cursor:default;border-bottom-style:solid;border-bottom-width:1px}.tabs__link.svelte-wlhn5k.svelte-wlhn5k:not(.tabs__link_active):hover,.tabs__link.svelte-wlhn5k.svelte-wlhn5k:not(.tabs__link_active):focus{border-bottom-style:solid;border-bottom-width:0px}.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)}}label.svelte-1y1be9d{display:block;margin-bottom:0.25rem;font-size:0.75rem}.hideLabel.svelte-1y1be9d{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);white-space:nowrap}button.svelte-1y1be9d{position:relative;padding:0 0.25rem;border:0;border-radius:1rem;height:1.25rem;width:2.5rem;font:inherit;color:inherit;line-height:inherit}button.svelte-1y1be9d:not([disabled]){cursor:pointer}button[disabled].svelte-1y1be9d{cursor:not-allowed;opacity:0.6}button.svelte-1y1be9d:before{position:absolute;content:"";top:0;bottom:0;left:0.125rem;margin:auto;height:1rem;width:1rem;text-align:center;border-radius:50%;background-color:currentColor;transition:transform 150ms ease-out}button[aria-checked="true"].svelte-1y1be9d:before{transform:translateX(1.25rem)}button.small.svelte-1y1be9d{height:1rem;width:1.75rem}button.small.svelte-1y1be9d:before{height:0.75rem;width:0.75rem}button.small[aria-checked="true"].svelte-1y1be9d:before{transform:translateX(0.75rem)}div.svelte-1y1be9d{display:flex;align-items:center}span.svelte-1y1be9d{margin-left:0.5rem} \ No newline at end of file diff --git a/data_esp/dashboard/build/bundle.js.gz b/data_esp/dashboard/build/bundle.js.gz new file mode 100644 index 00000000..0f62fe36 Binary files /dev/null and b/data_esp/dashboard/build/bundle.js.gz differ diff --git a/data_esp/dashboard/global.css b/data_esp/dashboard/global.css new file mode 100644 index 00000000..bb28a941 --- /dev/null +++ b/data_esp/dashboard/global.css @@ -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; +} diff --git a/data_esp/dashboard/index.html b/data_esp/dashboard/index.html new file mode 100644 index 00000000..cca0daaf --- /dev/null +++ b/data_esp/dashboard/index.html @@ -0,0 +1,104 @@ + + + + + + + LiveControl v 0.3.2 + + + + + + + + + + + + + + +

+ + + diff --git a/data_esp/index.json.gz b/data_esp/index.json.gz index 25eebb26..3f7227ac 100644 Binary files a/data_esp/index.json.gz and b/data_esp/index.json.gz differ diff --git a/data_esp/s.conf.csv b/data_esp/s.conf.csv index 40b35ae1..d3f8d5ff 100644 --- a/data_esp/s.conf.csv +++ b/data_esp/s.conf.csv @@ -1 +1,5 @@ -Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета \ No newline at end of file +Удалить;Тип элемента;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 \ No newline at end of file diff --git a/data_esp/s.scen.txt b/data_esp/s.scen.txt index ab0c0141..c0539394 100644 --- a/data_esp/s.scen.txt +++ b/data_esp/s.scen.txt @@ -1 +1,5 @@ -// \ No newline at end of file +timenow > 0 +weekday %weekday% +ip %IP% +time %date% +end \ No newline at end of file diff --git a/data_esp/setup/build/bundle.css b/data_esp/setup/build/bundle.css new file mode 100644 index 00000000..b88b58fb --- /dev/null +++ b/data_esp/setup/build/bundle.css @@ -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)}} \ No newline at end of file diff --git a/data_esp/setup/build/bundle.js.gz b/data_esp/setup/build/bundle.js.gz new file mode 100644 index 00000000..ea276b21 Binary files /dev/null and b/data_esp/setup/build/bundle.js.gz differ diff --git a/data_esp/setup/global.css b/data_esp/setup/global.css new file mode 100644 index 00000000..bb28a941 --- /dev/null +++ b/data_esp/setup/global.css @@ -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; +} diff --git a/data_esp/setup/index.html b/data_esp/setup/index.html new file mode 100644 index 00000000..890c5342 --- /dev/null +++ b/data_esp/setup/index.html @@ -0,0 +1,103 @@ + + + + + + + IotManager v 0.3.2 + + + + + + + + + + + + + +

+ + + diff --git a/data_esp/setup/progress.gif b/data_esp/setup/progress.gif new file mode 100644 index 00000000..ff6bbcff Binary files /dev/null and b/data_esp/setup/progress.gif differ diff --git a/data_esp/widgets.json b/data_esp/widgets.json index acf59ff9..70801da1 100644 --- a/data_esp/widgets.json +++ b/data_esp/widgets.json @@ -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": "Без виджета" -} \ No newline at end of file +{ + "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": "Без виджета" +} diff --git a/data_esp/widgets/anydataHum.json b/data_esp/widgets/anydataHum.json index ebc5b5af..966c6ba5 100644 --- a/data_esp/widgets/anydataHum.json +++ b/data_esp/widgets/anydataHum.json @@ -1,5 +1,6 @@ { "widget": "anydata", "after": "%", - "icon": "water" -} \ No newline at end of file + "icon": "water", + "color": "#88AADF" +} diff --git a/data_esp/widgets/anydataTemp.json b/data_esp/widgets/anydataTemp.json index 112da222..0f063a71 100644 --- a/data_esp/widgets/anydataTemp.json +++ b/data_esp/widgets/anydataTemp.json @@ -1,5 +1,16 @@ { "widget": "anydata", "after": "°С", - "icon": "thermometer" -} \ No newline at end of file + "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" } + ] +} diff --git a/data_ms/config.json b/data_ms/config.json index c9b7441c..6684c7f5 100644 --- a/data_ms/config.json +++ b/data_ms/config.json @@ -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" -} \ No newline at end of file + "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" +} diff --git a/data_ms/dashboard/build/bundle.css b/data_ms/dashboard/build/bundle.css new file mode 100644 index 00000000..5c79bfd0 --- /dev/null +++ b/data_ms/dashboard/build/bundle.css @@ -0,0 +1 @@ +.svelte-tabs__tab-list{display:flex;justify-content:space-evenly;flex-wrap:wrap}.svelte-tabs li.svelte-tabs__tab{color:gray}.svelte-tabs li.svelte-tabs__selected{color:green}.red.svelte-wlhn5k.svelte-wlhn5k{color:crimson}.letter.svelte-wlhn5k.svelte-wlhn5k{color:grey;font-size:60%;padding-left:15px;opacity:0.8}progress.svelte-wlhn5k.svelte-wlhn5k{height:4px}input.svelte-wlhn5k.svelte-wlhn5k{text-align:right;border:1px solid #6699ff;width:100%}body.light-mode{background-color:white}body.dark-mode{background-color:#1d3040;color:#bfc2c7}body.dark-mode span.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode div.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode input.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}body.dark-mode select.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:10px;padding-left:20px}select.svelte-wlhn5k.svelte-wlhn5k{padding:10px;border-radius:10px;padding-left:20px}.Shutter.svelte-wlhn5k.svelte-wlhn5k{background-color:hsl(200, 16%, 96%);color:blak;padding:10px;border-radius:5px}body.dark-mode .Shutter.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7;padding:10px;border-radius:5px}.btn.svelte-wlhn5k.svelte-wlhn5k{display:inline-block;box-sizing:border-box;padding:1px;margin:0 0px 5px 0;outline:none;border:1px solid #63b8ff;border-radius:10px;height:36px;line-height:0;font-size:14px;font-weight:500;text-decoration:none;color:#fff;background-color:#fff;position:relative;overflow:hidden;vertical-align:top;cursor:pointer;user-select:none;appearance:none;touch-action:manipulation}.btn.svelte-wlhn5k span.svelte-wlhn5k{box-shadow:7px 7px 5px rgba(0, 0, 0, 0.5);display:block;box-sizing:border-box;padding:0 8px;height:32px;line-height:33px;border:1px solid #63b8ff;border-radius:8px;font-size:14px;color:black;text-align:center;font-weight:600}.btnoff.svelte-wlhn5k.svelte-wlhn5k{display:inline-block;box-sizing:border-box;padding:1px;margin:0 0px 5px 0;outline:none;border:1px solid rgb(85, 84, 84);border-radius:10px;height:36px;line-height:0;font-size:14px;font-weight:500;text-decoration:none;color:#fff;background-color:#fff;position:relative;overflow:hidden;vertical-align:top;cursor:pointer;user-select:none;appearance:none;touch-action:manipulation}.btnoff.svelte-wlhn5k span.svelte-wlhn5k{box-shadow:7px 7px 5px rgba(0, 0, 0, 0.5);display:block;box-sizing:border-box;padding:0 8px;height:32px;line-height:33px;border:1px solid rgb(85, 84, 84);border-radius:8px;font-size:14px;color:black;text-align:center;font-weight:600}button.svelte-wlhn5k.svelte-wlhn5k{color:gray;background-color:#fff;border-bottom-style:solid;border-bottom-width:1px;border-top-width:0px;border-left-width:0px;border-right-width:0px;padding-left:4px;padding-right:4px;padding-top:1px;padding-bottom:1px}body.dark-mode button.svelte-wlhn5k.svelte-wlhn5k{background-color:#1d3040;color:#bfc2c7}.tabs__link.svelte-wlhn5k.svelte-wlhn5k{padding:0.5rem 0.75rem;text-decoration:none;color:gray;text-align:center;flex-shrink:0;flex-grow:1;border:0px;background-color:#fff}.tabs__link_active.svelte-wlhn5k.svelte-wlhn5k{color:black;cursor:default;border-bottom-style:solid;border-bottom-width:1px}.tabs__link.svelte-wlhn5k.svelte-wlhn5k:not(.tabs__link_active):hover,.tabs__link.svelte-wlhn5k.svelte-wlhn5k:not(.tabs__link_active):focus{border-bottom-style:solid;border-bottom-width:0px}.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)}}label.svelte-1y1be9d{display:block;margin-bottom:0.25rem;font-size:0.75rem}.hideLabel.svelte-1y1be9d{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);white-space:nowrap}button.svelte-1y1be9d{position:relative;padding:0 0.25rem;border:0;border-radius:1rem;height:1.25rem;width:2.5rem;font:inherit;color:inherit;line-height:inherit}button.svelte-1y1be9d:not([disabled]){cursor:pointer}button[disabled].svelte-1y1be9d{cursor:not-allowed;opacity:0.6}button.svelte-1y1be9d:before{position:absolute;content:"";top:0;bottom:0;left:0.125rem;margin:auto;height:1rem;width:1rem;text-align:center;border-radius:50%;background-color:currentColor;transition:transform 150ms ease-out}button[aria-checked="true"].svelte-1y1be9d:before{transform:translateX(1.25rem)}button.small.svelte-1y1be9d{height:1rem;width:1.75rem}button.small.svelte-1y1be9d:before{height:0.75rem;width:0.75rem}button.small[aria-checked="true"].svelte-1y1be9d:before{transform:translateX(0.75rem)}div.svelte-1y1be9d{display:flex;align-items:center}span.svelte-1y1be9d{margin-left:0.5rem} \ No newline at end of file diff --git a/data_ms/dashboard/build/bundle.js.gz b/data_ms/dashboard/build/bundle.js.gz new file mode 100644 index 00000000..0f62fe36 Binary files /dev/null and b/data_ms/dashboard/build/bundle.js.gz differ diff --git a/data_ms/dashboard/global.css b/data_ms/dashboard/global.css new file mode 100644 index 00000000..bb28a941 --- /dev/null +++ b/data_ms/dashboard/global.css @@ -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; +} diff --git a/data_ms/dashboard/index.html b/data_ms/dashboard/index.html new file mode 100644 index 00000000..cca0daaf --- /dev/null +++ b/data_ms/dashboard/index.html @@ -0,0 +1,104 @@ + + + + + + + LiveControl v 0.3.2 + + + + + + + + + + + + + + +

+ + + diff --git a/data_ms/index.json.gz b/data_ms/index.json.gz index 25eebb26..3f7227ac 100644 Binary files a/data_ms/index.json.gz and b/data_ms/index.json.gz differ diff --git a/data_ms/s.conf.csv b/data_ms/s.conf.csv index 40b35ae1..d3f8d5ff 100644 --- a/data_ms/s.conf.csv +++ b/data_ms/s.conf.csv @@ -1 +1,5 @@ -Удалить;Тип элемента;Id;Виджет;Имя вкладки;Имя виджета;Позиция виджета \ No newline at end of file +Удалить;Тип элемента;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 \ No newline at end of file diff --git a/data_ms/s.scen.txt b/data_ms/s.scen.txt index ab0c0141..c0539394 100644 --- a/data_ms/s.scen.txt +++ b/data_ms/s.scen.txt @@ -1 +1,5 @@ -// \ No newline at end of file +timenow > 0 +weekday %weekday% +ip %IP% +time %date% +end \ No newline at end of file diff --git a/data_ms/setup/build/bundle.css b/data_ms/setup/build/bundle.css new file mode 100644 index 00000000..b88b58fb --- /dev/null +++ b/data_ms/setup/build/bundle.css @@ -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)}} \ No newline at end of file diff --git a/data_ms/setup/build/bundle.js.gz b/data_ms/setup/build/bundle.js.gz new file mode 100644 index 00000000..ea276b21 Binary files /dev/null and b/data_ms/setup/build/bundle.js.gz differ diff --git a/data_ms/setup/global.css b/data_ms/setup/global.css new file mode 100644 index 00000000..bb28a941 --- /dev/null +++ b/data_ms/setup/global.css @@ -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; +} diff --git a/data_ms/setup/index.html b/data_ms/setup/index.html new file mode 100644 index 00000000..890c5342 --- /dev/null +++ b/data_ms/setup/index.html @@ -0,0 +1,103 @@ + + + + + + + IotManager v 0.3.2 + + + + + + + + + + + + + +

+ + + diff --git a/data_ms/setup/progress.gif b/data_ms/setup/progress.gif new file mode 100644 index 00000000..ff6bbcff Binary files /dev/null and b/data_ms/setup/progress.gif differ diff --git a/data_ms/widgets.json b/data_ms/widgets.json index 8b9190e1..70801da1 100644 --- a/data_ms/widgets.json +++ b/data_ms/widgets.json @@ -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": "Без виджета" -} \ No newline at end of file + "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": "Без виджета" +} diff --git a/data_ms/widgets/anydataTemp.json b/data_ms/widgets/anydataTemp.json index 112da222..0f063a71 100644 --- a/data_ms/widgets/anydataTemp.json +++ b/data_ms/widgets/anydataTemp.json @@ -1,5 +1,16 @@ { "widget": "anydata", "after": "°С", - "icon": "thermometer" -} \ No newline at end of file + "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" } + ] +}