diff --git a/html/favicon.ico b/html/favicon.ico
new file mode 100644
index 0000000..17b8ff3
Binary files /dev/null and b/html/favicon.ico differ
diff --git a/html/index/index.html b/html/index/index.html
new file mode 100755
index 0000000..02eb5f2
--- /dev/null
+++ b/html/index/index.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+ be1.ru
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+ ATE0004
+ Honeywell Retractable Landing Light CMM 33-42-07 P/N 45-0351-X Motor Test Box by
+ @rick_professor
+
+
+
+
+
ONBOARD LED GPIO2
+
+
State: %s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/html/index/index_script.js b/html/index/index_script.js
new file mode 100644
index 0000000..f3b85ce
--- /dev/null
+++ b/html/index/index_script.js
@@ -0,0 +1,40 @@
+var gateway = `ws://${window.location.hostname}/ws`;
+var websocket;
+window.addEventListener('load', onLoad);
+function initWebSocket() {
+ console.log('Trying to open a WebSocket connection...');
+ websocket = new WebSocket(gateway);
+ websocket.onopen = onOpen;
+ websocket.onclose = onClose;
+ websocket.onmessage = onMessage; // <-- add this line
+}
+function onOpen(event) {
+ console.log('Connection opened');
+}
+function onClose(event) {
+ console.log('Connection closed');
+ setTimeout(initWebSocket, 2000);
+}
+function onMessage(event) {
+ var state;
+ console.log(event.data);
+ if (event.data == "1") {
+ state = "ON";
+ }
+ else {
+ state = "OFF";
+ }
+ document.getElementById('state').innerHTML = state;
+}
+function onLoad(event) {
+ initWebSocket();
+ initButton();
+}
+
+function initButton() {
+ document.getElementById('button').addEventListener('click', toggle);
+}
+function toggle() {
+ console.log('Click');
+ websocket.send('toggle');
+}
\ No newline at end of file
diff --git a/html/index/index_style.css b/html/index/index_style.css
new file mode 100644
index 0000000..ec62bf2
--- /dev/null
+++ b/html/index/index_style.css
@@ -0,0 +1,456 @@
+ .aligncenter {
+ text-align: center;
+ }
+
+ * {
+ box-sizing: border-box;
+ }
+
+ body {
+ /* max-width: 320px; */
+ /* background: #bcc5c3; */
+ background: #16a085;
+ /* Максимальная ширина страницы в пикселах */
+ }
+
+ .no-select {
+ -webkit-touch-callout: none;
+ -moz-user-select: none;
+ -o-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ .button {
+ width: 250px;
+ height: 70px;
+ padding: 15px 50px;
+ font-size: 24px;
+ text-align: center;
+ outline: 1px solid #666;
+ color: #fff;
+ background-color: #0ffa6d;
+ border: #0ffa6d;
+ border-radius: 5px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ }
+
+ .button:active {
+ background-color: #fa0f0f;
+ transform: translateY(2px);
+ }
+
+ .nav {
+ /* ширна произвольная, не стесняйтесь экспериментировать */
+ width: 320px;
+ min-width: 320px;
+ /* фиксируем и выставляем высоту панели на максимум */
+ height: 100%;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ margin: 0;
+ /* сдвигаем (прячем) панель относительно левого края страницы */
+ left: -320px;
+ /* внутренние отступы */
+ padding: 15px 20px;
+ /* плавный переход смещения панели */
+ -webkit-transition: left 0.3s;
+ -moz-transition: left 0.3s;
+ transition: left 0.3s;
+ /* определяем цвет фона панели */
+ background: #16a085;
+ /* background: #bcc5c3; */
+ /* поверх других элементов */
+ z-index: 2000;
+ }
+
+
+ /**
+ * Кнопка переключения панели
+ * тег