• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Создание своего персонального интерфейса

glory24

Member
На юний энергичный друг Виталий :) , зала вопрос: 1591607958192.png


На что уже получил отвел: 1591607886499.png

Далее по этому вопросу прошу общаться в этой теме.
Меня кстати это тоже интересует.
 

valeraba

Moderator
Команда форума
Вот пример оформления странички, которую можно вставить в iframe
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
</head>
<body>

<input id="myCheckbox" type="checkbox" disabled onchange="handler()">
<input id="myTemperature" disabled readonly style="width:50px">

<script>

  //--------это не трогаем----------
  (function () {
    parent.postMessage({cmd: 'start'}, '*');
    var signals = [];
    window.mgt = {
      attach: function (name, callback) {
        var index = signals.length;
        var signal = {
          callback: callback,
          write: function(value) {
            parent.postMessage({cmd: 'write', index: index, value: value}, '*');
          }
        };
        signals.push(signal);
        parent.postMessage({cmd: 'attach', name: name, deviceNum: 0}, '*');
        return signal;
      }
    };
    window.addEventListener("message", function(event) {
      if (event.data.cmd == 'data') {
        signals[event.data.index].callback(event.data.value);
      }
    });
  })();
  //----------------------------------


  var myCheckbox = document.getElementById('myCheckbox');
  var myTemperature = document.getElementById('myTemperature');

  var param_1 = mgt.attach('relay_1', function(value, time) {
    if (value == null) {
      myCheckbox.disabled = true; // запретим
    }
    else if (value == true) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = true;
    }
    else if (value == false) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = false;
    }
  });

  function handler() {
    if (myCheckbox.checked)
      param_1.write(true);
    else
      param_1.write(false);
    myCheckbox.disabled = true; // запретим
  }


  mgt.attach('sensor_1', function(value, time) {
    if (value == null)
      myTemperature.disabled = true; // запретим
    else {
      myTemperature.disabled = false; // разрешим
      myTemperature.value = value;
    }
  });


</script>

</body>
</html>
 

glory24

Member
Вот пример оформления странички, которую можно вставить в iframe
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
</head>
<body>

<input id="myCheckbox" type="checkbox" disabled onchange="handler()">
<input id="myTemperature" disabled readonly style="width:50px">

<script>

  //--------это не трогаем----------
  (function () {
    parent.postMessage({cmd: 'start'}, '*');
    var signals = [];
    window.mgt = {
      attach: function (name, callback) {
        var index = signals.length;
        var signal = {
          callback: callback,
          write: function(value) {
            parent.postMessage({cmd: 'write', index: index, value: value}, '*');
          }
        };
        signals.push(signal);
        parent.postMessage({cmd: 'attach', name: name, deviceNum: 0}, '*');
        return signal;
      }
    };
    window.addEventListener("message", function(event) {
      if (event.data.cmd == 'data') {
        signals[event.data.index].callback(event.data.value);
      }
    });
  })();
  //----------------------------------


  var myCheckbox = document.getElementById('myCheckbox');
  var myTemperature = document.getElementById('myTemperature');

  var param_1 = mgt.attach('relay_1', function(value, time) {
    if (value == null) {
      myCheckbox.disabled = true; // запретим
    }
    else if (value == true) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = true;
    }
    else if (value == false) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = false;
    }
  });

  function handler() {
    if (myCheckbox.checked)
      param_1.write(true);
    else
      param_1.write(false);
    myCheckbox.disabled = true; // запретим
  }


  mgt.attach('sensor_1', function(value, time) {
    if (value == null)
      myTemperature.disabled = true; // запретим
    else {
      myTemperature.disabled = false; // разрешим
      myTemperature.value = value;
    }
  });


</script>

</body>
</html>
О нет. Чем еще и это осваивать, я лучше стандартным редактором буду пользоваться :LOL:
 

glory24

Member
На юний энергичный друг Виталий :) , зала вопрос: Посмотреть вложение 9303
Кстати, вопрос к Виталию: А что Вы пытаетесь сделать? Может задачу можно решить имеющимися средствами?

И вопрос к Валере: возможно ли, что бы тексту можно было присвоить переменную, к примеру relay@?
Снимок.JPG
У меня пока не получилось.
 

antenna-krsk

Active member
мой мудрый друг Вячеслав, я еще молод и могу позволить себе загнуть пару извилин , если конечно смогу). просто думаю я от этого ничего не потеряю, попытка - пытка)))))))))))
 

valeraba

Moderator
Команда форума
Кстати, вопрос к Виталию: А что Вы пытаетесь сделать? Может задачу можно решить имеющимися средствами?

И вопрос к Валере: возможно ли, что бы тексту можно было присвоить переменную, к примеру relay@?
Посмотреть вложение 9310
У меня пока не получилось.
Да, можно. Булевые сигналы, будут отображены как "true" и "false". Если сигналы типа float, то отобразятся как обычное число.
 

antenna-krsk

Active member
Вот пример оформления странички, которую можно вставить в iframe
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
</head>
<body>

<input id="myCheckbox" type="checkbox" disabled onchange="handler()">
<input id="myTemperature" disabled readonly style="width:50px">

<script>

  //--------это не трогаем----------
  (function () {
    parent.postMessage({cmd: 'start'}, '*');
    var signals = [];
    window.mgt = {
      attach: function (name, callback) {
        var index = signals.length;
        var signal = {
          callback: callback,
          write: function(value) {
            parent.postMessage({cmd: 'write', index: index, value: value}, '*');
          }
        };
        signals.push(signal);
        parent.postMessage({cmd: 'attach', name: name, deviceNum: 0}, '*');
        return signal;
      }
    };
    window.addEventListener("message", function(event) {
      if (event.data.cmd == 'data') {
        signals[event.data.index].callback(event.data.value);
      }
    });
  })();
  //----------------------------------


  var myCheckbox = document.getElementById('myCheckbox');
  var myTemperature = document.getElementById('myTemperature');

  var param_1 = mgt.attach('relay_1', function(value, time) {
    if (value == null) {
      myCheckbox.disabled = true; // запретим
    }
    else if (value == true) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = true;
    }
    else if (value == false) {
      myCheckbox.disabled = false; // разрешим
      myCheckbox.checked = false;
    }
  });

  function handler() {
    if (myCheckbox.checked)
      param_1.write(true);
    else
      param_1.write(false);
    myCheckbox.disabled = true; // запретим
  }


  mgt.attach('sensor_1', function(value, time) {
    if (value == null)
      myTemperature.disabled = true; // запретим
    else {
      myTemperature.disabled = false; // разрешим
      myTemperature.value = value;
    }
  });


</script>

</body>
</html>
ничего не пойму, выбрал iframe в редакторе, появился квадрат, а воткнуть то и некуда)
 

glory24

Member
ничего не пойму, выбрал iframe в редакторе, появился квадрат, а воткнуть то и некуда)
Ща разберемся :)
Я так понимаю, что тот текст нужно сохранить как html файл, далее запостить его на какой-то удаленный сервер, типа Гугледиска, и получить оттуда страничку примерно такого вида https://storage.googleapis.com/mgt24/switches.html
Только я не знаю как именно это сделать :)
 

valeraba

Moderator
Команда форума
Ща разберемся :)
Я так понимаю, что тот текст нужно сохранить как html файл, далее запостить его на какой-то удаленный сервер, типа Гугледиска, и получить оттуда страничку примерно такого вида https://storage.googleapis.com/mgt24/switches.html
Только я не знаю как именно это сделать :)
Да, страничку нужно хостить, где-нибудь в облаке, на чужом сервере. Я не могу на своём сервере хранить ваши html странички, это не безопасно, так как можно создать фиктивную страничку, которая украдёт ваши пароли. Кто-нибудь подсунет вам ссылку на такую страницу, вы увидите, что она с mgt24.ru и поверите ей, а там вас попросят снова набрать пароль. Читать про фишинг
 

glory24

Member
Хостить файлы можно, где угодно, полно всяких сервисов. Главное, чтобы, там была поддержка https протокола. Яндекс облако, гугл облако и прочее.
Я уже дважды подступался к гугл облаку, но так как внятной инструкции нигде не нашел как это делается, снова забрасывал.
 
Сверху Снизу