Question Как включить на втором ESP8266 реле?

Доброго времени суток. Вопрос такой, как включить реле на второй ESP8266 не заходя на ее web страницу?

Если я так прописываю путь то я попадаю на web страницу второй esp, а в идеале надо запустить реле и остаться на первой esp.

Часть кода:
//WEB БЛОК РОЗЕТКА
            client.println("<div class=\"nudersamolamis\">");
            client.println("<div class=\"elesazantyqtabkug\">РОЗЕТКА</div>");
           
                 
            if (output16State=="on") {
              client.println("<p><a href=//192.168.1.222/16/off\"><button class=\"button button2\">O</button></a></p>");
             
            } else {
              client.println("<a href=//192.168.1.222/16/on\"><button class=\"button\">I</button></a></p>");
 

Attachments

Last edited by a moderator:

NikitOS

Alien
Administrator
Moderator
Developer
Wiki Editor
Не вижу причин не работать, если все сделано верно.
В тэги <head></head> нужно добавить: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
Для каждой ссылки (<а></a>) нужно добавить класс command-btn, по которому JS будет отслеживать кнопку.

Получается вот это:
client.println("<p><a href=//192.168.1.222/16/off\"><button class=\"button button2\">O</button></a></p>");
Будет таким:
client.println("<p><a class=\"command-btn\" href=//192.168.1.222/16/off\"><button class=\"button button2\">O</button></a></p>");

Перед </body> вставляем:
Code:
$('.command-btn').click(function() {
  var link = $(this).attr('href');
  
  $.get(link, function(r) {
    console.log(r);
  });
  
  return false;
});
Edit fiddle - JSFiddle - Code Playground
 
Не работает, все равно
Не вижу причин не работать, если все сделано верно.
В тэги <head></head> нужно добавить: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
Для каждой ссылки (<а></a>) нужно добавить класс command-btn, по которому JS будет отслеживать кнопку.

Получается вот это:

Будет таким:
client.println("<p><a class=\"command-btn\" href=//192.168.1.222/16/off\"><button class=\"button button2\">O</button></a></p>");

Перед </body> вставляем:
Code:
$('.command-btn').click(function() {
  var link = $(this).attr('href');
 
  $.get(link, function(r) {
    console.log(r);
  });
 
  return false;
});
Edit fiddle - JSFiddle - Code Playground
Не работает должным образом. Все равно переходит на следующую страницу
 

NikitOS

Alien
Administrator
Moderator
Developer
Wiki Editor
Установите href="#" и посмотрите в консоль браузера после нажатия на ссылку. Есть что-то?
 
Установите href="#" и посмотрите в консоль браузера после нажатия на ссылку. Есть что-то?
Я все вернул обратно и там где я буду пользоваться esp будет только роутер без интернета.
 

NikitOS

Alien
Administrator
Moderator
Developer
Wiki Editor
Тогда JS заменяем этим:
JavaScript:
var btn = document.querySelector('.command-btn');

btn.addEventListener('click', function(evt) {
    evt.preventDefault();

    var link = btn.href;
    var request = new XMLHttpRequest();

    request.open('GET', link);
    request.send();
});
 
Значит я подставляю это
Тогда JS заменяем этим:
JavaScript:
var btn = document.querySelector('.command-btn');

btn.addEventListener('click', function(evt) {
    evt.preventDefault();

    var link = btn.href;
    var request = new XMLHttpRequest();

    request.open('GET', link);
    request.send();
});
вместо этого
Code:
$('.command-btn').click(function() {
  var link = $(this).attr('href');
  
  $.get(link, function(r) {
    console.log(r);
  });
  
  return false;
});
И убераю строчку в HTML
Code:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
А все остальное остается, правильно?
 

ZAZ-965

Десептикон
@Геннадий, у меня еще по первой вашей теме (кстати, куда она пропала?) осталось ощущение, что вы выбрали сложный (и тупиковый) путь. Какую архитектуру умного дома вы планируете?
 
@Геннадий, у меня еще по первой вашей теме (кстати, куда она пропала?) осталось ощущение, что вы выбрали сложный (и тупиковый) путь. Какую архитектуру умного дома вы планируете?
Предыдущую тему я удалил т.к. мне электрик порекомендовал реле заменить на симистор. А кто сказал что если что-то делать без особых навыков то что интересует это просто, я увлекаюсь микроконтроллерами только пол года и мне приходиться информацию собирать по крупинкам. Архитектура с виду простая, главная чтоб была надежная (освещение, управление розетками и водонагревателем). Хотелось бы сделать главную web-страницу на ESP с которой можно управлять всеми ESP и по отдельности через другие web-страницы esp (например комната к которой могу отдельно подключиться и управлять ей). Примерно будет 8 ESP и все они сходятся на роутер(без интернета), на даче.
 

ZAZ-965

Десептикон
Управление всем этим планируете с мобильного? Система сильно упростится, если к роутеру добавить Raspberry (Orange и т.д.) с готовым программным обеспечением (Domoticz, openHAB, Home Assistant). В простейшем случае часть программного обеспечения можно перенесни на роутер, если он поддерживает OpenWrt. Модель роутера не помните?
 
Управление всем этим планируете с мобильного? Система сильно упростится, если к роутеру добавить Raspberry (Orange и т.д.) с готовым программным обеспечением (Domoticz, openHAB, Home Assistant). В простейшем случае часть программного обеспечения можно перенесни на роутер, если он поддерживает OpenWrt. Модель роутера не помните?
Управление будет осуществляться с планшета, по мне так удобно. А роутер на чем щас все тестирую ZyXEL P-330EE
 

ZAZ-965

Десептикон
Характеристики роутера ZyXEL P-330W v1 - DeviWiki (ex WikiDevi) не позволяют ничего в него добавить. Была мысль поставить на роутер MQTT брокер, для ESP8266 есть готовые констукторы с поддержкой MQTT, а управлять с планшета через приложение (на выбор MQTT - Android Apps on Google Play)
MQTT практически стандарт для самостоятельно разрабатываемой домашней автоматизации.
 
Top